From 2959261122f78a6cdc7d8f1e5af06b465f66da4c Mon Sep 17 00:00:00 2001
From: Chris Glein <26607885+chrisglein@users.noreply.github.com>
Date: Mon, 27 Mar 2023 16:18:54 -0700
Subject: [PATCH 01/15] Try adding FURN
---
.vscode/.react/debuggerWorker.js | 202 ------------
package.json | 1 +
yarn.lock | 522 ++++++++++++++++++++++++++++++-
3 files changed, 518 insertions(+), 207 deletions(-)
delete mode 100644 .vscode/.react/debuggerWorker.js
diff --git a/.vscode/.react/debuggerWorker.js b/.vscode/.react/debuggerWorker.js
deleted file mode 100644
index 1a794d4..0000000
--- a/.vscode/.react/debuggerWorker.js
+++ /dev/null
@@ -1,202 +0,0 @@
-
-// Initialize some variables before react-native code would access them
-var onmessage=null, self=global;
-// Cache Node's original require as __debug__.require
-global.__debug__={require: require};
-// Prevent leaking process.versions from debugger process to
-// worker because pure React Native doesn't do that and some packages as js-md5 rely on this behavior
-Object.defineProperty(process, "versions", {
- value: undefined
-});
-// TODO: Replace by url.fileURLToPath method when Node 10 LTS become deprecated
-function fileUrlToPath(url) {
- if (process.platform === 'win32') {
- return url.toString().replace('file:///', '');
- } else {
- return url.toString().replace('file://', '');
- }
-}
-function getNativeModules() {
- var NativeModules;
- try {
- // This approach is for old RN versions
- NativeModules = global.require('NativeModules');
- } catch (err) {
- // ignore error and try another way for more recent RN versions
- try {
- var nativeModuleId;
- var modules = global.__r.getModules();
- var ids = Object.keys(modules);
- for (var i = 0; i < ids.length; i++) {
- if (modules[ids[i]].verboseName) {
- var packagePath = new String(modules[ids[i]].verboseName);
- if (packagePath.indexOf('Libraries/BatchedBridge/NativeModules.js') > 0 || packagePath.indexOf('Libraries\\BatchedBridge\\NativeModules.js') > 0) {
- nativeModuleId = parseInt(ids[i], 10);
- break;
- }
- }
- }
- if (nativeModuleId) {
- NativeModules = global.__r(nativeModuleId);
- }
- }
- catch (err) {
- // suppress errors
- }
- }
- return NativeModules;
-}
-// Originally, this was made for iOS only
-var vscodeHandlers = {
- 'vscode_reloadApp': function () {
- var NativeModules = getNativeModules();
- if (NativeModules && NativeModules.DevSettings) {
- NativeModules.DevSettings.reload();
- }
- },
- 'vscode_showDevMenu': function () {
- var NativeModules = getNativeModules();
- if (NativeModules && NativeModules.DevMenu) {
- NativeModules.DevMenu.show();
- }
- }
-};
-process.on("message", function (message) {
- if (message.data && vscodeHandlers[message.data.method]) {
- vscodeHandlers[message.data.method]();
- } else if(onmessage) {
- onmessage(message);
- }
-});
-var postMessage = function(message){
- process.send(message);
-};
-if (!self.postMessage) {
- self.postMessage = postMessage;
-}
-var importScripts = (function(){
- var fs=require('fs'), vm=require('vm');
- return function(scriptUrl){
- scriptUrl = fileUrlToPath(scriptUrl);
- var scriptCode = fs.readFileSync(scriptUrl, 'utf8');
- // Add a 'debugger;' statement to stop code execution
- // to wait for the sourcemaps to be processed by the debug adapter
- vm.runInThisContext('debugger;' + scriptCode, {filename: scriptUrl});
- };
-})();
-
-// Worker is ran as nodejs process, so console.trace() writes to stderr and it leads to error in native app
-// To avoid this console.trace() is overridden to print stacktrace via console.log()
-// Please, see Node JS implementation: https://github.com/nodejs/node/blob/master/lib/internal/console/constructor.js
-console.trace = (function() {
- return function() {
- try {
- var err = {
- name: 'Trace',
- message: require('util').format.apply(null, arguments)
- };
- // Node uses 10, but usually it's not enough for RN app trace
- Error.stackTraceLimit = 30;
- Error.captureStackTrace(err, console.trace);
- console.log(err.stack);
- } catch (e) {
- console.error(e);
- }
- };
-})();
-
-// As worker is ran in node, it breaks broadcast-channels package approach of identifying if itβs ran in node:
-// https://github.com/pubkey/broadcast-channel/blob/master/src/util.js#L64
-// To avoid it if process.toString() is called if will return empty string instead of [object process].
-var nativeObjectToString = Object.prototype.toString;
-Object.prototype.toString = function() {
- if (this === process) {
- return '';
- } else {
- return nativeObjectToString.call(this);
- }
-};
-
-
-"use strict";
-
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
-
-/* global __fbBatchedBridge, self, importScripts, postMessage, onmessage: true */
-/* eslint no-unused-vars: 0 */
-
-onmessage = function () {
- var visibilityState;
- var showVisibilityWarning = function () {
- var hasWarned = false;
- return function () {
- // Wait until `YellowBox` gets initialized before displaying the warning.
- if (hasWarned || console.warn.toString().includes('[native code]')) {
- return;
- }
- hasWarned = true;
- console.warn('Remote debugger is in a background tab which may cause apps to ' + 'perform slowly. Fix this by foregrounding the tab (or opening it in ' + 'a separate window).');
- };
- }();
- var messageHandlers = {
- executeApplicationScript: function (message, sendReply) {
- for (var key in message.inject) {
- self[key] = JSON.parse(message.inject[key]);
- }
- var error;
- try {
- importScripts(message.url);
- } catch (err) {
- error = err.message;
- }
- sendReply(null /* result */, error);
- },
- setDebuggerVisibility: function (message) {
- visibilityState = message.visibilityState;
- }
- };
- return function (message) {
- if (visibilityState === 'hidden') {
- showVisibilityWarning();
- }
- var object = message.data;
- var sendReply = function (result, error) {
- postMessage({
- replyID: object.id,
- result: result,
- error: error
- });
- };
- var handler = messageHandlers[object.method];
- if (handler) {
- // Special cased handlers
- handler(object, sendReply);
- } else {
- // Other methods get called on the bridge
- var returnValue = [[], [], [], 0];
- var error;
- try {
- if (typeof __fbBatchedBridge === 'object') {
- returnValue = __fbBatchedBridge[object.method].apply(null, object.arguments);
- } else {
- error = 'Failed to call function, __fbBatchedBridge is undefined';
- }
- } catch (err) {
- error = err.message;
- } finally {
- sendReply(JSON.stringify(returnValue), error);
- }
- }
- };
-}();
-
-//# sourceMappingURL=debuggerWorker.js.map
-// Notify debugger that we're done with loading
-// and started listening for IPC messages
-postMessage({workerLoaded:true});
\ No newline at end of file
diff --git a/package.json b/package.json
index 532abed..e930b69 100644
--- a/package.json
+++ b/package.json
@@ -12,6 +12,7 @@
"postinstall": "patch-package"
},
"dependencies": {
+ "@fluentui/react-native": "^0.36.20",
"@react-native-async-storage/async-storage": "^1.17.11",
"@react-native-clipboard/clipboard": "^1.12.1",
"@react-native-picker/picker": "^2.5.1",
diff --git a/yarn.lock b/yarn.lock
index 4db89db..27eb4b1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1257,6 +1257,457 @@
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.52.0.tgz#78fe5f117840f69dc4a353adf9b9cd926353378c"
integrity sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==
+"@fluentui-react-native/adapters@>=0.10.2 <1.0.0", "@fluentui-react-native/adapters@^0.10.2":
+ version "0.10.2"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/adapters/-/adapters-0.10.2.tgz#f627969a32bae4fc9921f5904499b3160251a64f"
+ integrity sha512-dHmPFgnHehkMc1y7UwrHUy+toQciHaD7M2+uHrZREs+O5/mHGHjhMKTrynnt6ZzPFOmvJTc1EnN8+wCTAsPbWg==
+
+"@fluentui-react-native/button@0.32.48", "@fluentui-react-native/button@^0.32.48":
+ version "0.32.48"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/button/-/button-0.32.48.tgz#d4925707a8fe2529a888d69af29f2067ad7040f5"
+ integrity sha512-VJevvzS+5lgay1lvZxeQb51s7ditTcBJ4JuBBS368ofioM1seiMLG5Uai6Gd8Xvoa7D4ErzFk4jmPnW4QYGshQ==
+ dependencies:
+ "@fluentui-react-native/adapters" ">=0.10.2 <1.0.0"
+ "@fluentui-react-native/experimental-activity-indicator" "^0.7.25"
+ "@fluentui-react-native/experimental-shadow" "0.2.79"
+ "@fluentui-react-native/framework" "0.9.8"
+ "@fluentui-react-native/icon" "0.17.24"
+ "@fluentui-react-native/interactive-hooks" ">=0.22.28 <1.0.0"
+ "@fluentui-react-native/pressable" ">=0.9.67 <1.0.0"
+ "@fluentui-react-native/styling-utils" ">=0.4.4 <1.0.0"
+ "@fluentui-react-native/text" ">=0.19.30 <1.0.0"
+ "@fluentui-react-native/theme-tokens" ">=0.24.5 <1.0.0"
+ "@fluentui-react-native/theme-types" ">=0.31.0 <1.0.0"
+ "@fluentui-react-native/theming-utils" ">=0.23.10 <1.0.0"
+ "@fluentui-react-native/tokens" ">=0.20.14 <1.0.0"
+ "@fluentui-react-native/use-styling" ">=0.9.4 <1.0.0"
+ "@uifabricshared/foundation-composable" ">=0.11.3 <1.0.0"
+ "@uifabricshared/foundation-compose" "^1.13.8"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+ tslib "^2.3.1"
+
+"@fluentui-react-native/callout@0.23.11", "@fluentui-react-native/callout@>=0.23.11 <1.0.0":
+ version "0.23.11"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/callout/-/callout-0.23.11.tgz#451c06672dcb3b97ae350ad01343cf0b1441ea19"
+ integrity sha512-RILUYbVExSw2h/1yQoITNfao7nHmBeTwuNsuBHwzBmTtnQhsFHbUc4oBKcsOW1P88Zv1fmFCghUL+apWqTPDiA==
+ dependencies:
+ "@fluentui-react-native/adapters" "^0.10.2"
+ "@fluentui-react-native/component-cache" "^1.4.4"
+ "@fluentui-react-native/interactive-hooks" ">=0.22.28 <1.0.0"
+ "@fluentui-react-native/tokens" ">=0.20.14 <1.0.0"
+ "@uifabricshared/foundation-composable" ">=0.11.3 <1.0.0"
+ "@uifabricshared/foundation-compose" "^1.13.8"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+
+"@fluentui-react-native/checkbox@0.19.31":
+ version "0.19.31"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/checkbox/-/checkbox-0.19.31.tgz#e3a74317c146d790a15b070e1e784341cc59a6d3"
+ integrity sha512-eSTQM4USQPHYwyYMPkCPf2Dqg9lwdBa9LOhWBvt981urQ8NttMkjbGxOI0mD2R7kYzj8xaaKW0YQ/TmARtpq7Q==
+ dependencies:
+ "@fluentui-react-native/adapters" ">=0.10.2 <1.0.0"
+ "@fluentui-react-native/framework" "0.9.8"
+ "@fluentui-react-native/interactive-hooks" ">=0.22.28 <1.0.0"
+ "@fluentui-react-native/pressable" ">=0.9.67 <1.0.0"
+ "@fluentui-react-native/styling-utils" ">=0.4.4 <1.0.0"
+ "@fluentui-react-native/text" ">=0.19.30 <1.0.0"
+ "@fluentui-react-native/theme-tokens" "^0.24.5"
+ "@fluentui-react-native/theming-utils" ">=0.23.10 <1.0.0"
+ "@fluentui-react-native/tokens" ">=0.20.14 <1.0.0"
+ "@fluentui-react-native/use-styling" ">=0.9.4 <1.0.0"
+ "@uifabricshared/foundation-composable" ">=0.11.3 <1.0.0"
+ "@uifabricshared/foundation-compose" "^1.13.8"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+ tslib "^2.3.1"
+
+"@fluentui-react-native/component-cache@^1.4.4":
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/component-cache/-/component-cache-1.4.4.tgz#bec7de8722c90fd4ab2e16c56ae5faa2dee39401"
+ integrity sha512-f8X5EzMreo5NbO28tfoUwgSJjP7D2dnjHpmX+YtB4cLqPBENNVqm6hum/MZY7zPK1t8tcBv/14swKYi+eVhtpA==
+
+"@fluentui-react-native/composition@>=0.8.4 <1.0.0":
+ version "0.8.4"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/composition/-/composition-0.8.4.tgz#7bbb7a1968efd65d605c4e332fbfed4d4ca58664"
+ integrity sha512-XiYEaHNMYMY8oVpeBI9zpOrosXDoXLvilM6DPh1wPgWPMO8H7O2VWpF2DbqEgRDrUSgSxN26hHdBfKwn6fpw3Q==
+ dependencies:
+ "@fluentui-react-native/immutable-merge" "^1.1.8"
+ "@fluentui-react-native/use-slot" ">=0.3.4 <1.0.0"
+ "@fluentui-react-native/use-slots" ">=0.7.4 <1.0.0"
+ "@fluentui-react-native/use-styling" ">=0.9.4 <1.0.0"
+
+"@fluentui-react-native/contextual-menu@0.21.40", "@fluentui-react-native/contextual-menu@^0.21.40":
+ version "0.21.40"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/contextual-menu/-/contextual-menu-0.21.40.tgz#d7ddb231e6515fa0af15d58e77777122930f1e2f"
+ integrity sha512-tth3Y8Y0Yc9SCqna7S1cv57jgdmKQrOSwP0oEh6eGjeBg5moUpEOZKZBT7SqUkUJla1+QEWerEQGRZcgThoY9w==
+ dependencies:
+ "@fluentui-react-native/adapters" "^0.10.2"
+ "@fluentui-react-native/callout" ">=0.23.11 <1.0.0"
+ "@fluentui-react-native/focus-zone" "^0.11.40"
+ "@fluentui-react-native/icon" "0.17.24"
+ "@fluentui-react-native/interactive-hooks" ">=0.22.28 <1.0.0"
+ "@fluentui-react-native/text" ">=0.19.30 <1.0.0"
+ "@fluentui-react-native/tokens" ">=0.20.14 <1.0.0"
+ "@uifabricshared/foundation-composable" ">=0.11.3 <1.0.0"
+ "@uifabricshared/foundation-compose" "^1.13.8"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+
+"@fluentui-react-native/default-theme@>=0.18.2 <1.0.0":
+ version "0.18.2"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/default-theme/-/default-theme-0.18.2.tgz#40df405992f26c751a62208cf855096bc97c88e0"
+ integrity sha512-b/0ntpW44iIM4zdf5nXLwjhH8uXRHI8P9LNmvrBLCckxGrFuSMLKDr/wtb+6QGzi3vDv1FDn5gi5lR/452l7Ow==
+ dependencies:
+ "@fluentui-react-native/memo-cache" "^1.1.8"
+ "@fluentui-react-native/theme" ">=0.8.3 <1.0.0"
+ "@fluentui-react-native/theme-tokens" "^0.24.5"
+ "@fluentui-react-native/theme-types" ">=0.31.0 <1.0.0"
+ "@fluentui-react-native/theming-utils" ">=0.23.10 <1.0.0"
+ assert-never "^1.2.1"
+
+"@fluentui-react-native/design-tokens-android@^0.43.0":
+ version "0.43.0"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/design-tokens-android/-/design-tokens-android-0.43.0.tgz#e8dbd668ff86716d11c37a93408f721e88bf64e3"
+ integrity sha512-33W/1MRSYW8fKHHBcf0XsZp551thsY1tV40WclNai0JZW0er7CwBx4+s1/Vv2VSm6MVFotQjAFGmyQaVDzKpqQ==
+
+"@fluentui-react-native/design-tokens-ios@^0.42.0":
+ version "0.42.0"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/design-tokens-ios/-/design-tokens-ios-0.42.0.tgz#3639e67b7749a504e6b27215d31257f469f460bd"
+ integrity sha512-qAvVfQtrpx71B0RM7W2I8BazBlYWIXExmcCqSvBoUhRlNCfKSLz4Ry1cecm1ldtEnykhnMTYrNtBwzRJ/99CEA==
+
+"@fluentui-react-native/design-tokens-win32@^0.42.0":
+ version "0.42.0"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/design-tokens-win32/-/design-tokens-win32-0.42.0.tgz#b67bc3474bcaab4aa69affcb297b37999379b29c"
+ integrity sha512-JU5HH2XmM2qhgqS4Onws1Wq6zgt9L+WEllXAwq0/QEeiLciKWlF4PQ5WIcxqFfrvTeC4ogImuslMAbsHeTSI9Q==
+
+"@fluentui-react-native/design-tokens-windows@^0.42.0":
+ version "0.42.0"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/design-tokens-windows/-/design-tokens-windows-0.42.0.tgz#6b7ca87ed30a92634e72cbe8fc1280fd21db50b8"
+ integrity sha512-hBPCikSDJ3Rgw+mAbTgnNB83dn3SeSKPo4XNli22tbV08fN8P5mEaEg8Uw0cbVMN3D138ykNeAaK/lZjO9KIqA==
+
+"@fluentui-react-native/experimental-activity-indicator@^0.7.25":
+ version "0.7.25"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/experimental-activity-indicator/-/experimental-activity-indicator-0.7.25.tgz#6598077832335761e2679bd5773a8b2f1a6e9e16"
+ integrity sha512-QWfrDNQGx2CufdreUVLvDzJp5KMYqQtZXWuRlLV86Fwd6gMZMjy9Zj5isSaMjCgqEklu0HRPb7+Eh6d6sA6E2g==
+ dependencies:
+ "@fluentui-react-native/framework" "0.9.8"
+ assert-never "^1.2.1"
+
+"@fluentui-react-native/experimental-native-font-metrics@^0.3.2":
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/experimental-native-font-metrics/-/experimental-native-font-metrics-0.3.2.tgz#243fce5cd864b937090dbadce6fa1b4bd729a4b5"
+ integrity sha512-jxJRYNU3pVWMLteqlJkPlD+Cdg60mG98lrLYSQw91B7hHFuKOd0FzXeYlf8D0NZPAI93VdJ54WFB7OFnkmF2jQ==
+
+"@fluentui-react-native/experimental-shadow@0.2.79":
+ version "0.2.79"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/experimental-shadow/-/experimental-shadow-0.2.79.tgz#3c46728e3669bc922ea9f19ec88e33483197e7c2"
+ integrity sha512-oqs8M8TIL1BxeE61+sR1nlh+9WSJ9Z7YzGSU8YwV+tjHmSMcN52SSUoyZu8PZtD0IezXJ1dHMolAvHZEhSgkVQ==
+ dependencies:
+ "@fluentui-react-native/framework" "0.9.8"
+ "@fluentui-react-native/pressable" "0.9.67"
+ "@fluentui-react-native/theme-types" "0.31.0"
+
+"@fluentui-react-native/focus-trap-zone@0.9.69":
+ version "0.9.69"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/focus-trap-zone/-/focus-trap-zone-0.9.69.tgz#3ad4c260a9f112784b0ea85fbd81296fc16e6bb7"
+ integrity sha512-D0eHTuBgGwci27phZH4PIMxeE4o8mADVrZMgecGNTMuogtigMu70P6H+ThPoI0d4zTo+KaYCciCDjzw0zn0DRQ==
+ dependencies:
+ "@fluentui-react-native/adapters" ">=0.10.2 <1.0.0"
+ "@fluentui-react-native/component-cache" "^1.4.4"
+ "@fluentui-react-native/interactive-hooks" ">=0.22.28 <1.0.0"
+ "@uifabricshared/foundation-composable" ">=0.11.3 <1.0.0"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+
+"@fluentui-react-native/focus-zone@0.11.40", "@fluentui-react-native/focus-zone@>=0.11.40 <1.0.0", "@fluentui-react-native/focus-zone@^0.11.40":
+ version "0.11.40"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/focus-zone/-/focus-zone-0.11.40.tgz#6cb5060f44b18e9c417fd371cda472310e748d93"
+ integrity sha512-rYOppDJt3vbgJwrkwDh3or0N4pWuK3UkzlWgtPgew57cE7VDksulAs75GEicmc6al4BjETlVlDmBWRtPgY3yBQ==
+ dependencies:
+ "@fluentui-react-native/component-cache" "^1.4.4"
+ "@fluentui-react-native/interactive-hooks" ">=0.22.28 <1.0.0"
+ "@uifabricshared/foundation-composable" ">=0.11.3 <1.0.0"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+
+"@fluentui-react-native/framework@0.9.8", "@fluentui-react-native/framework@>=0.9.8 <1.0.0":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/framework/-/framework-0.9.8.tgz#0a50c7683e94756a7e9bd2eaec7a6ab61dfdbdca"
+ integrity sha512-0Jv8PQl0qDtdWk+m9NYgddGxtAKyW5BvuH6fzjJaBDp8o8jUDn9tVWc9C+pw4+SXs40AHO74OfAGib4R1XRfFQ==
+ dependencies:
+ "@fluentui-react-native/composition" ">=0.8.4 <1.0.0"
+ "@fluentui-react-native/default-theme" ">=0.18.2 <1.0.0"
+ "@fluentui-react-native/immutable-merge" "^1.1.8"
+ "@fluentui-react-native/memo-cache" "^1.1.8"
+ "@fluentui-react-native/merge-props" ">=0.5.3 <1.0.0"
+ "@fluentui-react-native/theme-types" ">=0.31.0 <1.0.0"
+ "@fluentui-react-native/tokens" ">=0.20.14 <1.0.0"
+ "@fluentui-react-native/use-slot" ">=0.3.4 <1.0.0"
+ "@fluentui-react-native/use-slots" ">=0.7.4 <1.0.0"
+ "@fluentui-react-native/use-styling" ">=0.9.4 <1.0.0"
+ "@fluentui-react-native/use-tokens" ">=0.3.4 <1.0.0"
+ tslib "^2.3.1"
+
+"@fluentui-react-native/icon@0.17.24", "@fluentui-react-native/icon@^0.17.24":
+ version "0.17.24"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/icon/-/icon-0.17.24.tgz#c1568002afed271b4e7d7e031cf17b4f20445693"
+ integrity sha512-rWxql3lqQ8Fr/nGyWLAXFEfjp205nSYbLsrDttV04CCm9Wdn67a4/RD5KD65aYEqC6fH4UVuYxx9mO3kdPTa7A==
+ dependencies:
+ "@fluentui-react-native/adapters" "^0.10.2"
+ "@fluentui-react-native/framework" ">=0.9.8 <1.0.0"
+ "@fluentui-react-native/text" "^0.19.30"
+
+"@fluentui-react-native/immutable-merge@^1.1.8":
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/immutable-merge/-/immutable-merge-1.1.8.tgz#9de28bec1667f3d3cc84ea356c36b3bfd6bdabf4"
+ integrity sha512-UpBGLQyt13oDa+z5SFv7cqvnRgf1eoUhFDzX8LIZEs7OnpOIAmPSOD0F52UhTmGCmDi726v3j4Js/IFmMZiosg==
+ dependencies:
+ tslib "^2.3.1"
+
+"@fluentui-react-native/interactive-hooks@0.22.28", "@fluentui-react-native/interactive-hooks@>=0.22.28 <1.0.0":
+ version "0.22.28"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/interactive-hooks/-/interactive-hooks-0.22.28.tgz#9c2971cad31556eb7a04b81ce76f26a57f3d885c"
+ integrity sha512-ZUj7cEoc1iZQOReazF5wkl6ZpyWkEHXzsGYtJ+ovxD59o6V6hnCFaGfOnFEa9RJ6FJvJSmTDMWaxj20AK/fpng==
+ dependencies:
+ "@fluentui-react-native/adapters" "^0.10.2"
+ "@fluentui-react-native/framework" ">=0.9.8 <1.0.0"
+ "@fluentui-react-native/memo-cache" "^1.1.8"
+ invariant "^2.2.0"
+ tslib "^2.3.1"
+
+"@fluentui-react-native/link@0.18.25":
+ version "0.18.25"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/link/-/link-0.18.25.tgz#c359d066363289fc71c24e76f95611a1e6883fc7"
+ integrity sha512-oXTtjtMHN8odaOrYctErttKMhEXhRHM4grjCcFX2OgXyPHntB8d0tQr/0ZIESMKZMQW1cDvKfIUAEae5VP4bgQ==
+ dependencies:
+ "@fluentui-react-native/adapters" ">=0.10.2 <1.0.0"
+ "@fluentui-react-native/framework" ">=0.9.8 <1.0.0"
+ "@fluentui-react-native/interactive-hooks" ">=0.22.28 <1.0.0"
+ "@fluentui-react-native/text" ">=0.19.30 <1.0.0"
+ "@fluentui-react-native/tokens" ">=0.20.14 <1.0.0"
+ "@fluentui-react-native/use-styling" "^0.9.4"
+ "@uifabricshared/foundation-composable" ">=0.11.3 <1.0.0"
+ "@uifabricshared/foundation-compose" "^1.13.8"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+ tslib "^2.3.1"
+
+"@fluentui-react-native/memo-cache@^1.1.8":
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/memo-cache/-/memo-cache-1.1.8.tgz#46cf0a45bc76aa5443ac2b88b920f31418cff725"
+ integrity sha512-Yx8MNMY3xlw2U+mfzkWbOPxmRV4yOwLuJOULcmwrISDwO1wdaiFrEUnKrWMx3ouroCwGWpqBxeDaYJJTEL7G0g==
+
+"@fluentui-react-native/menu-button@0.10.47":
+ version "0.10.47"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/menu-button/-/menu-button-0.10.47.tgz#62b042f6c5bee7e51cd6591c1639688ef9d3a8aa"
+ integrity sha512-rIsF1eILHF50whGa+KvyVX0cCiOOgktZqiRJgoFcgVFmQ/2uN75HzxNr5YR0nEa7U4Fq3z6oQReTmzWeoADHvg==
+ dependencies:
+ "@fluentui-react-native/button" "^0.32.48"
+ "@fluentui-react-native/component-cache" "^1.4.4"
+ "@fluentui-react-native/contextual-menu" "^0.21.40"
+ "@fluentui-react-native/icon" "^0.17.24"
+ "@fluentui-react-native/tokens" "^0.20.14"
+ "@uifabricshared/foundation-composable" ">=0.11.3 <1.0.0"
+ "@uifabricshared/foundation-compose" "^1.13.8"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+
+"@fluentui-react-native/merge-props@>=0.5.3 <1.0.0":
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/merge-props/-/merge-props-0.5.3.tgz#8ea1686daf973807a089f5c541a0c7ce800046fc"
+ integrity sha512-XMVNaLaDIKLPFveV+3G4d6F/8bNt8H9IJUmGwbI3q9WTtXh1tmPzQyBKeNFf2vuNQELhkp9bB4QX/fNITvjplA==
+ dependencies:
+ "@fluentui-react-native/immutable-merge" "^1.1.8"
+ "@fluentui-react-native/memo-cache" "^1.1.8"
+ tslib "^2.3.1"
+
+"@fluentui-react-native/persona-coin@0.12.30", "@fluentui-react-native/persona-coin@>=0.12.30 <1.0.0":
+ version "0.12.30"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/persona-coin/-/persona-coin-0.12.30.tgz#e9cb5d9f97ba6a272ef860f25909501cb8d10e34"
+ integrity sha512-7KpgWBRFfbRlI1jiO9+MmjT1NfdnosTO/K+JWNlwadY6FYDm01g+X6jjd2E2qBsFuvBKYcex3DEei/7+NPUHyA==
+ dependencies:
+ "@fluentui-react-native/adapters" ">=0.10.2 <1.0.0"
+ "@fluentui-react-native/framework" ">=0.9.8 <1.0.0"
+ "@fluentui-react-native/theme-tokens" ">=0.24.5 <1.0.0"
+ "@fluentui-react-native/tokens" ">=0.20.14 <1.0.0"
+ "@uifabricshared/foundation-composable" ">=0.11.3 <1.0.0"
+ "@uifabricshared/foundation-compose" "^1.13.8"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+ "@uifabricshared/foundation-tokens" ">=0.12.31 <1.0.0"
+
+"@fluentui-react-native/persona@0.13.49":
+ version "0.13.49"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/persona/-/persona-0.13.49.tgz#36df355627a559999f30f3b6ed60d0edcee04a89"
+ integrity sha512-a2PIwjx93bSNihQ/sHJONh287PZ71/iEjK47PAnR1CUx89Hbr7qJ3oB5Fpg42DuAfPmEHVbIq2W6oNBl2yqprQ==
+ dependencies:
+ "@fluentui-react-native/adapters" ">=0.10.2 <1.0.0"
+ "@fluentui-react-native/framework" ">=0.9.8 <1.0.0"
+ "@fluentui-react-native/persona-coin" ">=0.12.30 <1.0.0"
+ "@fluentui-react-native/tokens" ">=0.20.14 <1.0.0"
+ "@uifabricshared/foundation-composable" ">=0.11.3 <1.0.0"
+ "@uifabricshared/foundation-compose" "^1.13.8"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+ "@uifabricshared/foundation-tokens" ">=0.12.31 <1.0.0"
+
+"@fluentui-react-native/pressable@0.9.67", "@fluentui-react-native/pressable@>=0.9.67 <1.0.0":
+ version "0.9.67"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/pressable/-/pressable-0.9.67.tgz#8459cd38748304a0edbed8fc0a92129ca29b3793"
+ integrity sha512-s0rpO5HBHicCKmDl0cvUFb9X7hrk/S0n8OSezJmi2CHtTrWKF5bdU5/zC1TSM9dM2/BtxqPDpQcOrzriX3O0Uw==
+ dependencies:
+ "@fluentui-react-native/adapters" ">=0.10.2 <1.0.0"
+ "@fluentui-react-native/interactive-hooks" ">=0.22.28 <1.0.0"
+ "@uifabricshared/foundation-composable" ">=0.11.3 <1.0.0"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+
+"@fluentui-react-native/radio-group@0.16.44":
+ version "0.16.44"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/radio-group/-/radio-group-0.16.44.tgz#01cb98e87cd52a86a1651cc3db7bb73398d0b3d4"
+ integrity sha512-G0F809qh60J37yoOJIf6FZzShyqfJmUI1IOJN9o1wSmsnX/9F1Z/zPahuiH0/fDEfiY/CHepZholuTrXPumuYw==
+ dependencies:
+ "@fluentui-react-native/adapters" ">=0.10.2 <1.0.0"
+ "@fluentui-react-native/component-cache" "^1.4.4"
+ "@fluentui-react-native/focus-zone" ">=0.11.40 <1.0.0"
+ "@fluentui-react-native/interactive-hooks" ">=0.22.28 <1.0.0"
+ "@fluentui-react-native/pressable" ">=0.9.67 <1.0.0"
+ "@fluentui-react-native/text" ">=0.19.30 <1.0.0"
+ "@fluentui-react-native/tokens" ">=0.20.14 <1.0.0"
+ "@uifabricshared/foundation-composable" ">=0.11.3 <1.0.0"
+ "@uifabricshared/foundation-compose" "^1.13.8"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+
+"@fluentui-react-native/separator@0.14.22":
+ version "0.14.22"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/separator/-/separator-0.14.22.tgz#727b011c7efe00797e1c7e36609aae42192e04c1"
+ integrity sha512-++Fn2SPaHW0ePQsH55L8FwaOpp/9p+ViFP7+QM2jJcBp2TMRX6lhDw2eYhXYfQrdc2Kg+3ElL/q8t7QHxdTIWw==
+ dependencies:
+ "@fluentui-react-native/framework" ">=0.9.8 <1.0.0"
+ "@fluentui-react-native/theme-tokens" "^0.24.5"
+ "@fluentui-react-native/use-styling" "^0.9.4"
+
+"@fluentui-react-native/styling-utils@>=0.4.4 <1.0.0":
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/styling-utils/-/styling-utils-0.4.4.tgz#6f636a4c7f8532df84548754f82132f638aaf7db"
+ integrity sha512-hlzf6lv0errJpjkE9UogW3YVc6owNuqoyHTuGEb4Xp1IXTE2eiH9+Y+5U8bFn+kjuT2Bihb92UNZE1teonOs6A==
+
+"@fluentui-react-native/tabs@0.11.44":
+ version "0.11.44"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/tabs/-/tabs-0.11.44.tgz#7a146dbafc739e9af14712176885c03ef3c9b62d"
+ integrity sha512-FIFPHbpz9U9cVTK3ko3I51EEWhcb5OMvM33sUEW3KQ+ZM/6BwBb0KtK0m+SxHHAhFmkPHIlqH3d4yzS1je5AXA==
+ dependencies:
+ "@fluentui-react-native/adapters" ">=0.10.2 <1.0.0"
+ "@fluentui-react-native/focus-zone" ">=0.11.40 <1.0.0"
+ "@fluentui-react-native/icon" "0.17.24"
+ "@fluentui-react-native/interactive-hooks" ">=0.22.28 <1.0.0"
+ "@fluentui-react-native/text" ">=0.19.30 <1.0.0"
+ "@fluentui-react-native/tokens" ">=0.20.14 <1.0.0"
+ "@uifabricshared/foundation-composable" ">=0.11.3 <1.0.0"
+ "@uifabricshared/foundation-compose" "^1.13.8"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+
+"@fluentui-react-native/text@0.19.30", "@fluentui-react-native/text@>=0.19.30 <1.0.0", "@fluentui-react-native/text@^0.19.30":
+ version "0.19.30"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/text/-/text-0.19.30.tgz#e4d5b44f24b41ed2a75e7ad40ccd122e093242d7"
+ integrity sha512-tB8EL9xG3c7NcdF2tQo7PJ6QzmNqecFLtL4cuWaBMfH81p5AB92uxtDfGeX5Pyx97KDB8M+DlyIhpLzB6veOCA==
+ dependencies:
+ "@fluentui-react-native/adapters" ">=0.10.2 <1.0.0"
+ "@fluentui-react-native/experimental-native-font-metrics" "^0.3.2"
+ "@fluentui-react-native/framework" "0.9.8"
+ "@fluentui-react-native/interactive-hooks" ">=0.22.28 <1.0.0"
+ "@fluentui-react-native/theme-tokens" ">=0.24.5 <1.0.0"
+ "@fluentui-react-native/tokens" ">=0.20.14 <1.0.0"
+ "@uifabricshared/foundation-compose" "^1.13.8"
+ tslib "^2.3.1"
+
+"@fluentui-react-native/theme-tokens@>=0.24.5 <1.0.0", "@fluentui-react-native/theme-tokens@^0.24.5":
+ version "0.24.5"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/theme-tokens/-/theme-tokens-0.24.5.tgz#a8753cef4e49952636a004d987f33c5c400e4d2f"
+ integrity sha512-oJqa7QxoLBkpZfBtkZ0/gNNTrrE/O9I0wOshmKRgnN8vkmGKFkgsGT2G2eoYexYOdblKy3TpHBOxoPdZp4vWZg==
+ dependencies:
+ "@fluentui-react-native/design-tokens-android" "^0.43.0"
+ "@fluentui-react-native/design-tokens-ios" "^0.42.0"
+ "@fluentui-react-native/design-tokens-win32" "^0.42.0"
+ "@fluentui-react-native/design-tokens-windows" "^0.42.0"
+ "@fluentui-react-native/theme-types" ">=0.31.0 <1.0.0"
+ assert-never "^1.2.1"
+
+"@fluentui-react-native/theme-types@0.31.0", "@fluentui-react-native/theme-types@>=0.31.0 <1.0.0":
+ version "0.31.0"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/theme-types/-/theme-types-0.31.0.tgz#6ebd513446e4be469733a7bd6925a654ae489bf9"
+ integrity sha512-/FdcYnmk/UxpPWDAM7m5luQzs+PoisJ7MVkPY76MO65p4ccPkDww6h6R69Loy5ZJtw4JVCEdG8oLSYG0R8uMYg==
+
+"@fluentui-react-native/theme@>=0.8.3 <1.0.0":
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/theme/-/theme-0.8.3.tgz#236d037ad72bb067d5f893aed9c3c676dc1a61a8"
+ integrity sha512-0BqCwVhrlNBlS/OnAHO8hIStgSoRv4R4BB9MURX8hVNGuD8wIpa5PDRxmDgK8Ktn8mM9g/ZhO4LNnVpr2y0xzA==
+ dependencies:
+ "@fluentui-react-native/immutable-merge" "^1.1.8"
+ "@fluentui-react-native/theme-types" ">=0.31.0 <1.0.0"
+
+"@fluentui-react-native/theming-utils@>=0.23.10 <1.0.0":
+ version "0.23.10"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/theming-utils/-/theming-utils-0.23.10.tgz#620c4938409042bac62bd87027766a06ff69760f"
+ integrity sha512-4iVnjT0QjN68x3A8stv1abwyRyflkzueWMXCgqLnrpOHCeR+g3RjexTw5r/0MM0an6t7FL52j6KV8T2YWohDJw==
+ dependencies:
+ "@fluentui-react-native/theme-types" ">=0.31.0 <1.0.0"
+ "@fluentui-react-native/tokens" ">=0.20.14 <1.0.0"
+
+"@fluentui-react-native/tokens@0.20.14", "@fluentui-react-native/tokens@>=0.20.14 <1.0.0", "@fluentui-react-native/tokens@^0.20.14":
+ version "0.20.14"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/tokens/-/tokens-0.20.14.tgz#e7cdb4487a5fcd7f37c801eefbefa8a31287f98e"
+ integrity sha512-iCtqpN6JKBxS5/k36S7DKq+JHPrIa5nlbQiitMWfm7zn3PC24KmWHI3iB1RLT43h1m1A4prJu/biBh55ibjNjQ==
+ dependencies:
+ "@fluentui-react-native/adapters" ">=0.10.2 <1.0.0"
+ "@fluentui-react-native/theme-types" ">=0.31.0 <1.0.0"
+ tslib "^2.3.1"
+
+"@fluentui-react-native/use-slot@>=0.3.4 <1.0.0":
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/use-slot/-/use-slot-0.3.4.tgz#b06a281587041245383e642acd50fa279cf08648"
+ integrity sha512-mvyYgmHFlRQ20EylZygHlI+Q2LnZV27IMsVxlG435kBF/TF1Vtch6VqpdtWX9srDdDEMgGmgO7Er95Y3Wa4/eg==
+ dependencies:
+ "@fluentui-react-native/merge-props" ">=0.5.3 <1.0.0"
+ tslib "^2.3.1"
+
+"@fluentui-react-native/use-slots@>=0.7.4 <1.0.0":
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/use-slots/-/use-slots-0.7.4.tgz#5005aeed9963cd3ff264531f675bbeb4430704fe"
+ integrity sha512-hOhUpUrsT7kxFik7xxyDC3WmupOC7eOxVjhSYxltim3qTcTwR7GiC6WyJbh7nfovtwL3fA3rOUxYFDy+/1lIcg==
+ dependencies:
+ "@fluentui-react-native/use-slot" ">=0.3.4 <1.0.0"
+
+"@fluentui-react-native/use-styling@>=0.9.4 <1.0.0", "@fluentui-react-native/use-styling@^0.9.4":
+ version "0.9.4"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/use-styling/-/use-styling-0.9.4.tgz#302f9018c0d7580490e8b8099f57944e7695df9e"
+ integrity sha512-6cI7vIelb59hFwFsu4Pj7k4ig5RU5jJmsBWRaWa2jL4gKwFn4z9NOhD5sq9QoIPfhSpsiHWbQZUwublVTiu3RQ==
+ dependencies:
+ "@fluentui-react-native/memo-cache" "^1.1.8"
+ "@fluentui-react-native/use-tokens" "^0.3.4"
+ tslib "^2.3.1"
+
+"@fluentui-react-native/use-tokens@>=0.3.4 <1.0.0", "@fluentui-react-native/use-tokens@^0.3.4":
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/@fluentui-react-native/use-tokens/-/use-tokens-0.3.4.tgz#19712a4596f31a36bd7f73a5146f62ce46d6e979"
+ integrity sha512-P672zu1ZVjp+dZfdZSIcZYxP1lXGsAShj3YBebSNUqTuMRo5zEAoIDYhtmviDnTnZC1TPlxzGyP+Z2kykzmyWw==
+ dependencies:
+ "@fluentui-react-native/immutable-merge" "^1.1.8"
+ "@fluentui-react-native/memo-cache" "^1.1.8"
+ tslib "^2.3.1"
+
+"@fluentui/react-native@^0.36.20":
+ version "0.36.20"
+ resolved "https://registry.yarnpkg.com/@fluentui/react-native/-/react-native-0.36.20.tgz#71750c0d76649b7520837df97a8dc05b711338e4"
+ integrity sha512-LB/HA4RsbqK/aDuGSDds0I5TkLhUzpKEce/HEDny+p9pTdf9Sq1vZtu57ApEhf5pFiYikh1/uIywzfzZDf4bmA==
+ dependencies:
+ "@fluentui-react-native/button" "0.32.48"
+ "@fluentui-react-native/callout" "0.23.11"
+ "@fluentui-react-native/checkbox" "0.19.31"
+ "@fluentui-react-native/contextual-menu" "0.21.40"
+ "@fluentui-react-native/focus-trap-zone" "0.9.69"
+ "@fluentui-react-native/focus-zone" "0.11.40"
+ "@fluentui-react-native/interactive-hooks" "0.22.28"
+ "@fluentui-react-native/link" "0.18.25"
+ "@fluentui-react-native/menu-button" "0.10.47"
+ "@fluentui-react-native/persona" "0.13.49"
+ "@fluentui-react-native/persona-coin" "0.12.30"
+ "@fluentui-react-native/pressable" "0.9.67"
+ "@fluentui-react-native/radio-group" "0.16.44"
+ "@fluentui-react-native/separator" "0.14.22"
+ "@fluentui-react-native/tabs" "0.11.44"
+ "@fluentui-react-native/text" "0.19.30"
+
"@hapi/hoek@^9.0.0":
version "9.3.0"
resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb"
@@ -2686,6 +3137,62 @@
"@typescript-eslint/types" "5.62.0"
eslint-visitor-keys "^3.3.0"
+"@uifabricshared/foundation-composable@>=0.11.3 <1.0.0":
+ version "0.11.3"
+ resolved "https://registry.yarnpkg.com/@uifabricshared/foundation-composable/-/foundation-composable-0.11.3.tgz#6502054a6faa4e1ec3fbebf79478f7f21e243196"
+ integrity sha512-tUrV4ti4fi8YEEn/VYPbdY9nlpuduIa3jajmU6M3wTAReqyp/sa2h/ix8pKu/uyJAE2Wb/zGrEfyLZS+ANxT5A==
+ dependencies:
+ "@fluentui-react-native/merge-props" ">=0.5.3 <1.0.0"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+
+"@uifabricshared/foundation-compose@^1.13.8":
+ version "1.13.8"
+ resolved "https://registry.yarnpkg.com/@uifabricshared/foundation-compose/-/foundation-compose-1.13.8.tgz#f5c06aff24a5a5aed6f61c587d088708977fe86d"
+ integrity sha512-qNYgv+r0hJjAItly2Mwm/JH7meA4a+m4q0MnS5UetYm85hF1u968IkFuPtSbWh1mYgTQOnrbBJgTpAXbtyH/Kw==
+ dependencies:
+ "@fluentui-react-native/default-theme" ">=0.18.2 <1.0.0"
+ "@fluentui-react-native/immutable-merge" "^1.1.8"
+ "@fluentui-react-native/memo-cache" "^1.1.8"
+ "@fluentui-react-native/theme-types" ">=0.31.0 <1.0.0"
+ "@uifabricshared/foundation-composable" ">=0.11.3 <1.0.0"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+ "@uifabricshared/foundation-tokens" ">=0.12.31 <1.0.0"
+ "@uifabricshared/themed-settings" ">=0.9.3 <1.0.0"
+ "@uifabricshared/theming-ramp" ">=0.17.22 <1.0.0"
+
+"@uifabricshared/foundation-settings@>=0.12.3 <1.0.0":
+ version "0.12.3"
+ resolved "https://registry.yarnpkg.com/@uifabricshared/foundation-settings/-/foundation-settings-0.12.3.tgz#8ae0a4d9f0fcae4d308d05a1a147eda2bf3e2997"
+ integrity sha512-si0cZXgAByTMD4tEHLHQNRzjjJgkW0EZ0WPh9JuAVES6Em3uuRsrmPu3b3Cl3XnXi6P0drcTCK/cEFEkBj718A==
+ dependencies:
+ "@fluentui-react-native/immutable-merge" "^1.1.8"
+ "@fluentui-react-native/merge-props" ">=0.5.3 <1.0.0"
+
+"@uifabricshared/foundation-tokens@>=0.12.31 <1.0.0":
+ version "0.12.31"
+ resolved "https://registry.yarnpkg.com/@uifabricshared/foundation-tokens/-/foundation-tokens-0.12.31.tgz#1c858b0b257b6a68b06d88e9eac8d61c7c245fd8"
+ integrity sha512-XJL4lfLGotQtasjk1kGjnL6YgYP883G6ULIa5aqcf63xt6ynRGNclRfwPCGD/uaTILtAU9GgLT41ZIYobfbrqA==
+ dependencies:
+ "@fluentui-react-native/merge-props" ">=0.5.3 <1.0.0"
+ "@fluentui-react-native/tokens" "0.20.14"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+
+"@uifabricshared/themed-settings@>=0.9.3 <1.0.0":
+ version "0.9.3"
+ resolved "https://registry.yarnpkg.com/@uifabricshared/themed-settings/-/themed-settings-0.9.3.tgz#18a29feb90b4308ae94407e4c807b34f243495e6"
+ integrity sha512-hXMdbP1imuUSn7THzTeDrOpN28ivIfaUP6RvgwemtoPtFLqsfej+Eu5zb2pmRQQfOdXF8qVbhI4OBTAI0dcOjA==
+ dependencies:
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+
+"@uifabricshared/theming-ramp@>=0.17.22 <1.0.0":
+ version "0.17.22"
+ resolved "https://registry.yarnpkg.com/@uifabricshared/theming-ramp/-/theming-ramp-0.17.22.tgz#0b305ee94bf8407585f895c19cad8e271545c0b2"
+ integrity sha512-JH+uE1xbEq4p2KAiUm6ZmBID3zMwC6a+NChiKOeiSpuFqBkXSFxFHG9cTI7wYZ783+o103wirP2bQLNt3mT7ww==
+ dependencies:
+ "@fluentui-react-native/immutable-merge" "^1.1.8"
+ "@fluentui-react-native/theme-types" ">=0.31.0 <1.0.0"
+ "@uifabricshared/foundation-settings" ">=0.12.3 <1.0.0"
+
"@ungap/structured-clone@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
@@ -2927,6 +3434,11 @@ asap@~2.0.6:
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==
+assert-never@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/assert-never/-/assert-never-1.2.1.tgz#11f0e363bf146205fb08193b5c7b90f4d1cf44fe"
+ integrity sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==
+
ast-types@0.15.2:
version "0.15.2"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.15.2.tgz#39ae4809393c4b16df751ee563411423e85fb49d"
@@ -4809,7 +5321,7 @@ interpret@^1.0.0:
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
-invariant@*, invariant@^2.2.4:
+invariant@*, invariant@^2.2.0, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@@ -7969,10 +8481,10 @@ tslib@^1.8.1:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-tslib@^2.0.1, tslib@^2.2.0:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
- integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
+tslib@^2.0.1, tslib@^2.2.0, tslib@^2.3.1:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
+ integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
tsutils@^3.21.0:
version "3.21.0"
From d030a508f09fd56c739adc9efd0ab050b3393b82 Mon Sep 17 00:00:00 2001
From: Chris Glein <26607885+chrisglein@users.noreply.github.com>
Date: Thu, 30 Mar 2023 17:38:51 -0700
Subject: [PATCH 02/15] Add fluent-ui-react-native controls - Allows use of
their Button type - Required importing SVG (see
https://github.com/microsoft/fluentui-react-native/issues/2613) - Which in
turn requires importing the Win2D nuget - Also required switching to classic
runtime (see https://github.com/microsoft/fluentui-react-native/issues/1891)
---
babel.config.js | 3 +-
package.json | 1 +
src/Chat.tsx | 17 ++--
src/Settings.tsx | 1 +
windows/artificialChat.sln | 14 ++++
.../AutolinkedNativeModules.g.cpp | 5 ++
.../AutolinkedNativeModules.g.targets | 4 +
windows/artificialChat/artificialChat.vcxproj | 1 +
windows/artificialChat/packages.config | 1 +
windows/artificialChat/packages.lock.json | 48 +++++++++++
yarn.lock | 84 +++++++++++++++++++
11 files changed, 170 insertions(+), 9 deletions(-)
diff --git a/babel.config.js b/babel.config.js
index f7b3da3..1be3da9 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -1,3 +1,4 @@
module.exports = {
- presets: ['module:@react-native/babel-preset'],
+ presets: [['module:metro-react-native-babel-preset', {useTransformReactJSXExperimental:true}]],
+ plugins: [['@babel/plugin-transform-react-jsx', { runtime: 'classic' }]]
};
diff --git a/package.json b/package.json
index e930b69..5449aa4 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
"react-native": "0.73.0-rc.1",
"react-native-content-dialog": "^0.2.0",
"react-native-markdown-display-updated": "^7.0.0",
+ "react-native-svg": "^13.9.0",
"react-native-syntax-highlighter": "^2.1.0",
"react-native-windows": "0.73.10"
},
diff --git a/src/Chat.tsx b/src/Chat.tsx
index 4f52245..26ddf0c 100644
--- a/src/Chat.tsx
+++ b/src/Chat.tsx
@@ -1,6 +1,5 @@
import React from 'react';
import {
- Button,
ScrollView,
TextInput,
View,
@@ -15,6 +14,7 @@ import {
} from './Feedback';
import { PopupsContext } from './Popups';
import { HoverButton } from './Controls';
+import { ButtonV1 as Button } from '@fluentui/react-native';
enum ChatSource {
Human,
@@ -86,13 +86,15 @@ function ChatEntry({submit, defaultText, clearConversation}: ChatEntryProps): JS
onSubmitEditing={submitValue}
value={defaultText ?? value}/>
);
}
@@ -170,11 +172,10 @@ function Chat({entries, humanText, onPrompt, clearConversation}: ChatProps): JSX
}
diff --git a/src/Settings.tsx b/src/Settings.tsx
index 0318dfa..16e028a 100644
--- a/src/Settings.tsx
+++ b/src/Settings.tsx
@@ -16,6 +16,7 @@ import {StylesContext} from './Styles';
import {Picker} from '@react-native-picker/picker';
import {ChatScriptNames} from './ChatScript';
import AsyncStorage from '@react-native-async-storage/async-storage';
+import { ButtonV1 as Button } from '@fluentui/react-native';
const settingsKey = 'settings';
diff --git a/windows/artificialChat.sln b/windows/artificialChat.sln
index 776ba48..18d1a57 100644
--- a/windows/artificialChat.sln
+++ b/windows/artificialChat.sln
@@ -39,6 +39,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Clipboard", "..\node_module
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ReactNativeAsyncStorage", "..\node_modules\@react-native-async-storage\async-storage\windows\ReactNativeAsyncStorage\ReactNativeAsyncStorage.vcxproj", "{4855D892-E16C-404D-8286-0089E0F7F9C4}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RNSVG", "..\node_modules\react-native-svg\windows\RNSVG\RNSVG.vcxproj", "{7ACF84EC-EFBA-4043-8E14-40B159508902}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM64 = Debug|ARM64
@@ -165,6 +167,18 @@ Global
{4855D892-E16C-404D-8286-0089E0F7F9C4}.Release|x64.Build.0 = Release|x64
{4855D892-E16C-404D-8286-0089E0F7F9C4}.Release|x86.ActiveCfg = Release|Win32
{4855D892-E16C-404D-8286-0089E0F7F9C4}.Release|x86.Build.0 = Release|Win32
+ {7ACF84EC-EFBA-4043-8E14-40B159508902}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {7ACF84EC-EFBA-4043-8E14-40B159508902}.Debug|ARM64.Build.0 = Debug|ARM64
+ {7ACF84EC-EFBA-4043-8E14-40B159508902}.Debug|x64.ActiveCfg = Debug|x64
+ {7ACF84EC-EFBA-4043-8E14-40B159508902}.Debug|x64.Build.0 = Debug|x64
+ {7ACF84EC-EFBA-4043-8E14-40B159508902}.Debug|x86.ActiveCfg = Debug|Win32
+ {7ACF84EC-EFBA-4043-8E14-40B159508902}.Debug|x86.Build.0 = Debug|Win32
+ {7ACF84EC-EFBA-4043-8E14-40B159508902}.Release|ARM64.ActiveCfg = Release|ARM64
+ {7ACF84EC-EFBA-4043-8E14-40B159508902}.Release|ARM64.Build.0 = Release|ARM64
+ {7ACF84EC-EFBA-4043-8E14-40B159508902}.Release|x64.ActiveCfg = Release|x64
+ {7ACF84EC-EFBA-4043-8E14-40B159508902}.Release|x64.Build.0 = Release|x64
+ {7ACF84EC-EFBA-4043-8E14-40B159508902}.Release|x86.ActiveCfg = Release|Win32
+ {7ACF84EC-EFBA-4043-8E14-40B159508902}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/windows/artificialChat/AutolinkedNativeModules.g.cpp b/windows/artificialChat/AutolinkedNativeModules.g.cpp
index 0f05d01..b03fdb9 100644
--- a/windows/artificialChat/AutolinkedNativeModules.g.cpp
+++ b/windows/artificialChat/AutolinkedNativeModules.g.cpp
@@ -12,6 +12,9 @@
// Includes from @react-native-picker/picker
#include
+// Includes from react-native-svg
+#include
+
namespace winrt::Microsoft::ReactNative
{
@@ -23,6 +26,8 @@ void RegisterAutolinkedNativeModulePackages(winrt::Windows::Foundation::Collecti
packageProviders.Append(winrt::NativeClipboard::ReactPackageProvider());
// IReactPackageProviders from @react-native-picker/picker
packageProviders.Append(winrt::ReactNativePicker::ReactPackageProvider());
+ // IReactPackageProviders from react-native-svg
+ packageProviders.Append(winrt::RNSVG::ReactPackageProvider());
}
}
diff --git a/windows/artificialChat/AutolinkedNativeModules.g.targets b/windows/artificialChat/AutolinkedNativeModules.g.targets
index 541176e..d8d3762 100644
--- a/windows/artificialChat/AutolinkedNativeModules.g.targets
+++ b/windows/artificialChat/AutolinkedNativeModules.g.targets
@@ -14,5 +14,9 @@
{bedcc600-4541-41f2-aa46-9e058202b6ad}
+
+
+ {7acf84ec-efba-4043-8e14-40b159508902}
+
diff --git a/windows/artificialChat/artificialChat.vcxproj b/windows/artificialChat/artificialChat.vcxproj
index 6977dda..6175f27 100644
--- a/windows/artificialChat/artificialChat.vcxproj
+++ b/windows/artificialChat/artificialChat.vcxproj
@@ -203,6 +203,7 @@
+
diff --git a/windows/artificialChat/packages.config b/windows/artificialChat/packages.config
index 8d69906..686a712 100644
--- a/windows/artificialChat/packages.config
+++ b/windows/artificialChat/packages.config
@@ -2,4 +2,5 @@
+
\ No newline at end of file
diff --git a/windows/artificialChat/packages.lock.json b/windows/artificialChat/packages.lock.json
index 4a89027..4a453d2 100644
--- a/windows/artificialChat/packages.lock.json
+++ b/windows/artificialChat/packages.lock.json
@@ -33,6 +33,11 @@
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
},
+ "Win2D.uwp": {
+ "type": "Transitive",
+ "resolved": "1.26.0",
+ "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
+ },
"clipboard": {
"type": "Project",
"dependencies": {
@@ -87,6 +92,14 @@
"Microsoft.ReactNative": "[1.0.0, )",
"Microsoft.UI.Xaml": "[2.8.0, )"
}
+ },
+ "rnsvg": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.ReactNative": "[1.0.0, )",
+ "Microsoft.UI.Xaml": "[2.8.0, )",
+ "Win2D.uwp": "[1.26.0, )"
+ }
}
},
"native,Version=v0.0/win10-arm": {
@@ -94,6 +107,11 @@
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ },
+ "Win2D.uwp": {
+ "type": "Transitive",
+ "resolved": "1.26.0",
+ "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
}
},
"native,Version=v0.0/win10-arm-aot": {
@@ -101,6 +119,11 @@
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ },
+ "Win2D.uwp": {
+ "type": "Transitive",
+ "resolved": "1.26.0",
+ "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
}
},
"native,Version=v0.0/win10-arm64-aot": {
@@ -108,6 +131,11 @@
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ },
+ "Win2D.uwp": {
+ "type": "Transitive",
+ "resolved": "1.26.0",
+ "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
}
},
"native,Version=v0.0/win10-x64": {
@@ -115,6 +143,11 @@
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ },
+ "Win2D.uwp": {
+ "type": "Transitive",
+ "resolved": "1.26.0",
+ "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
}
},
"native,Version=v0.0/win10-x64-aot": {
@@ -122,6 +155,11 @@
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ },
+ "Win2D.uwp": {
+ "type": "Transitive",
+ "resolved": "1.26.0",
+ "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
}
},
"native,Version=v0.0/win10-x86": {
@@ -129,6 +167,11 @@
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ },
+ "Win2D.uwp": {
+ "type": "Transitive",
+ "resolved": "1.26.0",
+ "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
}
},
"native,Version=v0.0/win10-x86-aot": {
@@ -136,6 +179,11 @@
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ },
+ "Win2D.uwp": {
+ "type": "Transitive",
+ "resolved": "1.26.0",
+ "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
}
}
}
diff --git a/yarn.lock b/yarn.lock
index 27eb4b1..6a2d71c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3654,6 +3654,11 @@ bl@^4.1.0:
inherits "^2.0.4"
readable-stream "^3.4.0"
+boolbase@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+ integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
+
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -4093,6 +4098,17 @@ css-color-keywords@^1.0.0:
resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05"
integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==
+css-select@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
+ integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^6.1.0"
+ domhandler "^5.0.2"
+ domutils "^3.0.1"
+ nth-check "^2.0.1"
+
css-to-react-native@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32"
@@ -4102,6 +4118,19 @@ css-to-react-native@^3.0.0:
css-color-keywords "^1.0.0"
postcss-value-parser "^4.0.2"
+css-tree@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
+ integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
+ dependencies:
+ mdn-data "2.0.14"
+ source-map "^0.6.1"
+
+css-what@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
+ integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
+
csstype@^3.0.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
@@ -4264,6 +4293,36 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
+dom-serializer@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53"
+ integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
+ dependencies:
+ domelementtype "^2.3.0"
+ domhandler "^5.0.2"
+ entities "^4.2.0"
+
+domelementtype@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
+ integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
+
+domhandler@^5.0.1, domhandler@^5.0.2:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31"
+ integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
+ dependencies:
+ domelementtype "^2.3.0"
+
+domutils@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c"
+ integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==
+ dependencies:
+ dom-serializer "^2.0.0"
+ domelementtype "^2.3.0"
+ domhandler "^5.0.1"
+
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
@@ -4303,6 +4362,11 @@ end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
+entities@^4.2.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174"
+ integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==
+
entities@~2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f"
@@ -6415,6 +6479,11 @@ marky@^1.2.2:
resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.5.tgz#55796b688cbd72390d2d399eaaf1832c9413e3c0"
integrity sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==
+mdn-data@2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
+ integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+
mdurl@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
@@ -7002,6 +7071,13 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1:
dependencies:
path-key "^3.0.0"
+nth-check@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
+ integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
+ dependencies:
+ boolbase "^1.0.0"
+
nullthrows@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
@@ -7557,6 +7633,14 @@ react-native-markdown-display-updated@^7.0.0:
prop-types "^15.7.2"
react-native-fit-image "^1.5.5"
+react-native-svg@^13.9.0:
+ version "13.9.0"
+ resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-13.9.0.tgz#8df8a690dd00362601f074dec5d3a86dd0f99c7f"
+ integrity sha512-Ey18POH0dA0ob/QiwCBVrxIiwflhYuw0P0hBlOHeY4J5cdbs8ngdKHeWC/Kt9+ryP6fNoEQ1PUgPYw2Bs/rp5Q==
+ dependencies:
+ css-select "^5.1.0"
+ css-tree "^1.1.3"
+
react-native-syntax-highlighter@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/react-native-syntax-highlighter/-/react-native-syntax-highlighter-2.1.0.tgz#66bdb2cedbe938b291bfe415e5d72d0c275ce353"
From 49cc26343f5e2925261eb04cd72f74aa6ce367c0 Mon Sep 17 00:00:00 2001
From: Chris Glein <26607885+chrisglein@users.noreply.github.com>
Date: Thu, 30 Mar 2023 18:33:10 -0700
Subject: [PATCH 03/15] Try Checkbox and Link
---
src/Settings.tsx | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/Settings.tsx b/src/Settings.tsx
index 16e028a..f4bf8b2 100644
--- a/src/Settings.tsx
+++ b/src/Settings.tsx
@@ -9,14 +9,17 @@ import {
DialogSection,
} from './Popups';
import {
- Hyperlink,
SwitchWithLabel,
} from './Controls';
import {StylesContext} from './Styles';
import {Picker} from '@react-native-picker/picker';
import {ChatScriptNames} from './ChatScript';
import AsyncStorage from '@react-native-async-storage/async-storage';
-import { ButtonV1 as Button } from '@fluentui/react-native';
+import {
+ ButtonV1 as Button,
+ Link,
+ CheckboxV1 as Checkbox,
+} from '@fluentui/react-native';
const settingsKey = 'settings';
@@ -203,11 +206,12 @@ function SettingsPopup({show, close}: SettingsPopupProps): JSX.Element {
style={{flexGrow: 1, minHeight: 32}}
onChangeText={value => setApiKey(value)}
value={apiKey}/>
- setSaveApiKey(value)}/>
- setSaveApiKey(value)}/>
+
From 432a754425b6d1ec38b1c05823bc4d26b9587a92 Mon Sep 17 00:00:00 2001
From: Chris Glein <26607885+chrisglein@users.noreply.github.com>
Date: Fri, 31 Mar 2023 17:12:51 -0700
Subject: [PATCH 04/15] Add corrections to Windows for FURN themes
---
src/App.tsx | 32 +++++++++++++-----------
src/Styles.tsx | 67 +++++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 84 insertions(+), 15 deletions(-)
diff --git a/src/App.tsx b/src/App.tsx
index 805a6f8..3338dcd 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -7,6 +7,7 @@ import { ChatSession } from './ChatSession';
import {
StylesContext,
CreateStyles,
+ createWindowsTheme,
} from './Styles';
import {
SettingsContext,
@@ -14,6 +15,7 @@ import {
} from './Settings';
import { AboutPopup } from './About';
import { PopupsContext } from './Popups';
+import { ThemeProvider } from '@fluentui-react-native/theme';
function App(): JSX.Element {
const [currentTheme, setCurrentTheme] = React.useState(Appearance.getColorScheme());
@@ -25,7 +27,7 @@ function App(): JSX.Element {
const [detectImageIntent, setDetectImageIntent] = React.useState(true);
const [imageResponseCount, setImageResponseCount] = React.useState(1);
const [imageSize, setImageSize] = React.useState(256);
- const [showSettingsPopup, setShowSettingsPopup] = React.useState(false);
+ const [showSettingsPopup, setShowSettingsPopup] = React.useState(true);
const [showAboutPopup, setShowAboutPopup] = React.useState(false);
const isDarkMode = currentTheme === 'dark';
@@ -67,19 +69,21 @@ function App(): JSX.Element {
return (
-
-
-
-
- popups.setShowSettings(false)}/>
- popups.setShowAbout(false)}/>
-
-
-
+
+
+
+
+
+ popups.setShowSettings(false)}/>
+ popups.setShowAbout(false)}/>
+
+
+
+
);
}
diff --git a/src/Styles.tsx b/src/Styles.tsx
index 94f26c2..90f327c 100644
--- a/src/Styles.tsx
+++ b/src/Styles.tsx
@@ -7,6 +7,9 @@ import type {
} from 'react-native';
import { PlatformColor } from 'react-native';
import { StyleSheet } from 'react-native';
+import { ThemeReference } from '@fluentui-react-native/theme';
+import { createDefaultTheme } from '@fluentui-react-native/default-theme';
+import { globalTokens } from '@fluentui-react-native/theme-tokens';
const StylesContext = React.createContext<{
appContent: StyleProp;
@@ -140,4 +143,66 @@ const CreateStyles = (isDarkMode: boolean) => {
});
}
-export { StylesContext, CreateStyles };
\ No newline at end of file
+let windowsThemeReference: ThemeReference;
+
+function createWindowsTheme(): ThemeReference {
+ windowsThemeReference = new ThemeReference(createDefaultTheme(), (t) => {
+ return {
+ components: {
+ Checkbox: {
+ large: {
+ borderRadius: globalTokens.corner.radius40,
+ checkboxBorderRadius: globalTokens.corner.radius40,
+ checkmarkSize: 12,
+ },
+ checkboxBackgroundColor: PlatformColor('ControlAltFillColorSecondaryBrush'),
+ hovered: {
+ checkboxBackgroundColor: PlatformColor('ControlAltFillColorTertiaryBrush'),
+ },
+ pressed: {
+ checkboxBackgroundColor: PlatformColor('ControlAltFillColorQuarternaryBrush'),
+ }
+ }
+ },
+ colors: {
+ link: PlatformColor('AccentTextFillColorPrimaryBrush'),
+ linkHovered: PlatformColor('AccentTextFillColorSecondaryBrush'),
+ linkPressed: PlatformColor('AccentTextFillColorTertiaryBrush'),
+
+ neutralStrokeAccessible: PlatformColor('ControlStrongStrokeColorDefaultBrush'), // border for unchecked checkbox (idle)
+ neutralStrokeAccessibleHover: PlatformColor('ControlStrongStrokeColorDefaultBrush'), // border for unchecked checkbox (hover)
+ neutralStrokeAccessiblePressed: PlatformColor('ControlStrongStrokeColorDisabledBrush'), // border for unchecked checkbox (pressed)
+ neutralStrokeDisabled: PlatformColor('ControlStrongStrokeColorDisabledBrush'), // border for unchecked checkbox (disabled)
+
+ neutralForeground1: PlatformColor('TextFillColorPrimaryBrush'), // foreground for unchecked checkbox (pressed)
+ neutralForeground1Hover: PlatformColor('TextFillColorPrimaryBrush'),
+ neutralForeground1Pressed: PlatformColor('TextFillColorPrimaryBrush'),
+ neutralForegroundDisabled: PlatformColor('TextFillColorDisabledBrush'), // check color for checked/unchecked checkbox (disabled)
+ neutralForeground2: PlatformColor('TextFillColorPrimaryBrush'), // foreground for unchecked checkbox (hover)
+ neutralForeground3: PlatformColor('TextFillColorPrimaryBrush'), // foreground for unchecked checkbox (idle)
+
+ // Used for Button
+ neutralForegroundOnBrand: PlatformColor('TextOnAccentFillColorPrimaryBrush'), // check color for checked checkbox (hover/pressed/idle)
+
+ // Used for Button
+ neutralBackground1: PlatformColor('ControlFillColorDefaultBrush'), // fill for unchecked checkbox (idle/hover/pressed)
+ neutralBackground1Hover: PlatformColor('ControlFillColorSecondaryBrush'),
+ neutralBackground1Pressed: PlatformColor('ControlFillColorTertiaryBrush'),
+ neutralBackgroundDisabled: PlatformColor('ControlFillColorDisabledBrush'), // fill for unchecked checkbox (disabled)
+
+ // Used for Button
+ brandBackground: PlatformColor('AccentFillColorDefaultBrush'),
+ brandBackgroundHover: PlatformColor('AccentFillColorSecondaryBrush'),
+ brandBackgroundPressed: PlatformColor('AccentFillColorTertiaryBrush'),
+ brandBackgroundDisabled: PlatformColor('AccentFillColorDisabledBrush'),
+
+ compoundBrandBackground1: PlatformColor('AccentFillColorDefaultBrush'), // fill and border for checked checkbox (idle)
+ compoundBrandBackground1Pressed: PlatformColor('AccentFillColorTertiaryBrush'), // fill and border for checked checkbox (pressed)
+ compoundBrandBackground1Hover: PlatformColor('AccentFillColorSecondaryBrush'), // fill and border for checked checkbox (hover)
+ }
+ }});
+
+ return windowsThemeReference;
+}
+
+export { StylesContext, CreateStyles, createWindowsTheme };
\ No newline at end of file
From 6aedbe90ee5c4c1eb324a0cee3a6516b66e1d778 Mon Sep 17 00:00:00 2001
From: Chris Glein <26607885+chrisglein@users.noreply.github.com>
Date: Fri, 31 Mar 2023 17:13:02 -0700
Subject: [PATCH 05/15] Add FURN to dependencies readme
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index a9a65f7..a851e75 100644
--- a/README.md
+++ b/README.md
@@ -107,3 +107,4 @@ The app's settings are handled by a `SettingsContext` object, which has dialog U
- Storage via [react-native-async-storage](https://github.com/react-native-async-storage/async-storage)
- Markdown rendering via [react-native-markdown-display-updated](https://github.com/willmac321/react-native-markdown-display)
- Dialogs via [react-native-content-dialog](https://github.com/chrisglein/react-native-content-dialog)
+- Button, Checkbox, Link via [@fluentui/react-native](https://github.com/microsoft/fluentui-react-native)
From 6e2d510172d25c301369451102ec983fc5f0fdbb Mon Sep 17 00:00:00 2001
From: Chris Glein <26607885+chrisglein@users.noreply.github.com>
Date: Fri, 31 Mar 2023 17:13:28 -0700
Subject: [PATCH 06/15] Use large checkbox Fix image size strings coming in
(causing need to double select)
---
src/Settings.tsx | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/Settings.tsx b/src/Settings.tsx
index f4bf8b2..1136dfc 100644
--- a/src/Settings.tsx
+++ b/src/Settings.tsx
@@ -208,6 +208,7 @@ function SettingsPopup({show, close}: SettingsPopupProps): JSX.Element {
value={apiKey}/>
setSaveApiKey(value)}/>
setImageSize(value)}>
+ onValueChange={value => setImageSize(typeof value === 'number' ? value : parseInt(value))}>
{[256, 512, 1024].map(size => )}
From dcbd4c6f8bed6c3f45f8cff642632a0ac461b50b Mon Sep 17 00:00:00 2001
From: Chris Glein <26607885+chrisglein@users.noreply.github.com>
Date: Fri, 31 Mar 2023 17:17:21 -0700
Subject: [PATCH 07/15] More use of checkbox
---
src/App.tsx | 2 +-
src/Settings.tsx | 10 ++++------
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/src/App.tsx b/src/App.tsx
index 3338dcd..4a010de 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -27,7 +27,7 @@ function App(): JSX.Element {
const [detectImageIntent, setDetectImageIntent] = React.useState(true);
const [imageResponseCount, setImageResponseCount] = React.useState(1);
const [imageSize, setImageSize] = React.useState(256);
- const [showSettingsPopup, setShowSettingsPopup] = React.useState(true);
+ const [showSettingsPopup, setShowSettingsPopup] = React.useState(false);
const [showAboutPopup, setShowAboutPopup] = React.useState(false);
const isDarkMode = currentTheme === 'dark';
diff --git a/src/Settings.tsx b/src/Settings.tsx
index 1136dfc..b29d73d 100644
--- a/src/Settings.tsx
+++ b/src/Settings.tsx
@@ -8,9 +8,6 @@ import {
ContentDialog,
DialogSection,
} from './Popups';
-import {
- SwitchWithLabel,
-} from './Controls';
import {StylesContext} from './Styles';
import {Picker} from '@react-native-picker/picker';
import {ChatScriptNames} from './ChatScript';
@@ -216,10 +213,11 @@ function SettingsPopup({show, close}: SettingsPopupProps): JSX.Element {
url="https://platform.openai.com/account/api-keys"/>
- setDetectImageIntent(value)}/>
+ size='large'
+ checked={detectImageIntent}
+ onChange={(event, value) => setDetectImageIntent(value)}/>
Image Count
Date: Mon, 3 Apr 2023 10:17:32 -0700
Subject: [PATCH 08/15] Remove icon from dialogs
---
package.json | 5 +++--
src/Feedback.tsx | 4 ++--
src/Settings.tsx | 1 +
src/Styles.tsx | 9 +--------
yarn.lock | 45 +++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 52 insertions(+), 12 deletions(-)
diff --git a/package.json b/package.json
index 5449aa4..445ffde 100644
--- a/package.json
+++ b/package.json
@@ -39,10 +39,11 @@
"babel-jest": "^29.6.3",
"eslint": "^8.19.0",
"jest": "^29.6.3",
+ "metro-config": "^0.79.1",
+ "metro-react-native-babel-preset": "^0.77.0",
"prettier": "2.8.8",
"react-test-renderer": "18.2.0",
- "typescript": "5.0.4",
- "metro-config": "^0.79.1"
+ "typescript": "5.0.4"
},
"engines": {
"node": ">=18"
diff --git a/src/Feedback.tsx b/src/Feedback.tsx
index cb1f0f9..0cb1c8d 100644
--- a/src/Feedback.tsx
+++ b/src/Feedback.tsx
@@ -50,10 +50,10 @@ function FeedbackPopup({show, close, isPositive, response}: FeedbackPopupProps):
+ {"Your feedback: " + (isPositive ? "π" : "π")}
diff --git a/src/Styles.tsx b/src/Styles.tsx
index 90f327c..bd5cd57 100644
--- a/src/Styles.tsx
+++ b/src/Styles.tsx
@@ -22,7 +22,6 @@ const StylesContext = React.createContext<{
horizontalContainer: StyleProp;
dalleImage: StyleProp;
inlineCard: StyleProp;
- dialogTitleIcon: StyleProp;
dialogTitle: StyleProp;
dialogSectionsContainer: StyleProp;
dialogSection: StyleProp;
@@ -87,12 +86,6 @@ const CreateStyles = (isDarkMode: boolean) => {
borderRadius: 8,
padding: 8,
},
- dialogTitleIcon: {
- backgroundColor: 'gray',
- borderRadius: 4,
- alignSelf: 'center',
- padding: 2,
- },
dialogTitle: {
fontSize: 20,
},
@@ -121,7 +114,7 @@ const CreateStyles = (isDarkMode: boolean) => {
flexDirection: 'row',
flexWrap: 'wrap',
alignItems: 'center',
- gap: 4,
+ gap: 8,
},
codeBlockTitle: {
backgroundColor: isDarkMode ? 'white' : '#444',
diff --git a/yarn.lock b/yarn.lock
index 6a2d71c..ef6b349 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -6666,6 +6666,51 @@ metro-minify-terser@0.80.6:
dependencies:
terser "^5.15.0"
+metro-react-native-babel-preset@^0.77.0:
+ version "0.77.0"
+ resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.77.0.tgz#47457eca8e36b77156afbe790247a70dbb40faaa"
+ integrity sha512-HPPD+bTxADtoE4y/4t1txgTQ1LVR6imOBy7RMHUsqMVTbekoi8Ph5YI9vKX2VMPtVWeFt0w9YnCSLPa76GcXsA==
+ dependencies:
+ "@babel/core" "^7.20.0"
+ "@babel/plugin-proposal-async-generator-functions" "^7.0.0"
+ "@babel/plugin-proposal-class-properties" "^7.18.0"
+ "@babel/plugin-proposal-export-default-from" "^7.0.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0"
+ "@babel/plugin-proposal-numeric-separator" "^7.0.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.20.0"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.20.0"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.0"
+ "@babel/plugin-syntax-export-default-from" "^7.0.0"
+ "@babel/plugin-syntax-flow" "^7.18.0"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.0.0"
+ "@babel/plugin-transform-arrow-functions" "^7.0.0"
+ "@babel/plugin-transform-async-to-generator" "^7.20.0"
+ "@babel/plugin-transform-block-scoping" "^7.0.0"
+ "@babel/plugin-transform-classes" "^7.0.0"
+ "@babel/plugin-transform-computed-properties" "^7.0.0"
+ "@babel/plugin-transform-destructuring" "^7.20.0"
+ "@babel/plugin-transform-flow-strip-types" "^7.20.0"
+ "@babel/plugin-transform-function-name" "^7.0.0"
+ "@babel/plugin-transform-literals" "^7.0.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.0.0"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0"
+ "@babel/plugin-transform-parameters" "^7.0.0"
+ "@babel/plugin-transform-react-display-name" "^7.0.0"
+ "@babel/plugin-transform-react-jsx" "^7.0.0"
+ "@babel/plugin-transform-react-jsx-self" "^7.0.0"
+ "@babel/plugin-transform-react-jsx-source" "^7.0.0"
+ "@babel/plugin-transform-runtime" "^7.0.0"
+ "@babel/plugin-transform-shorthand-properties" "^7.0.0"
+ "@babel/plugin-transform-spread" "^7.0.0"
+ "@babel/plugin-transform-sticky-regex" "^7.0.0"
+ "@babel/plugin-transform-typescript" "^7.5.0"
+ "@babel/plugin-transform-unicode-regex" "^7.0.0"
+ "@babel/template" "^7.0.0"
+ babel-plugin-transform-flow-enums "^0.0.2"
+ react-refresh "^0.4.0"
+
metro-resolver@0.79.1:
version "0.79.1"
resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.79.1.tgz#80e6e27305eb446188009f54374b642f28f49b65"
From b8eea22e5b35d114c662cbfc352d8c99ad4e566c Mon Sep 17 00:00:00 2001
From: Chris Glein <26607885+chrisglein@users.noreply.github.com>
Date: Mon, 3 Apr 2023 11:15:40 -0700
Subject: [PATCH 09/15] Add scrollbar to tall dialogs
---
src/About.tsx | 2 +-
src/Popups.tsx | 1 +
src/Styles.tsx | 3 ++-
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/About.tsx b/src/About.tsx
index b52cc94..d51a153 100644
--- a/src/About.tsx
+++ b/src/About.tsx
@@ -25,7 +25,7 @@ function AboutPopup({show, close}: AboutPopupProps): JSX.Element {
title="About"
defaultButtonIndex={0}>
Version: {VersionInfo.getConstants().appVersion}
-
+
Source code:
{
backgroundColor: isDarkMode ? '#292929' : '#FFFFFF',
padding: 12,
borderRadius: 8,
- minWidth: 300
+ minWidth: 300,
+ gap: 12,
},
dialogButtons: {
marginTop: 12,
From a05ecdea27f2ef7b3027c5b77ff3ab743511522a Mon Sep 17 00:00:00 2001
From: Chris Glein <26607885+chrisglein@users.noreply.github.com>
Date: Mon, 3 Apr 2023 11:42:42 -0700
Subject: [PATCH 10/15] Update dialog visuals to match ContentDialog - added
bottom button area of different color
---
src/Styles.tsx | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/src/Styles.tsx b/src/Styles.tsx
index 866376c..d1668c9 100644
--- a/src/Styles.tsx
+++ b/src/Styles.tsx
@@ -27,6 +27,8 @@ const StylesContext = React.createContext<{
dialogSection: StyleProp;
dialogSectionHeader: StyleProp;
dialogBackground: StyleProp;
+ dialogContentArea: StyleProp;
+ dialogButtonBackground: StyleProp;
dialogButtons: StyleProp;
codeBlockTitle: StyleProp;
codeBlockTitleText: StyleProp;
@@ -87,7 +89,9 @@ const CreateStyles = (isDarkMode: boolean) => {
padding: 8,
},
dialogTitle: {
+ fontWeight: '600',
fontSize: 20,
+ marginBottom: 12,
},
dialogSectionsContainer: {
gap: 12,
@@ -104,10 +108,24 @@ const CreateStyles = (isDarkMode: boolean) => {
},
dialogBackground: {
backgroundColor: isDarkMode ? '#292929' : '#FFFFFF',
+ paddingLeft: 12,
+ paddingRight: 12,
+ paddingTop: 12,
+ borderTopLeftRadius: 8,
+ borderTopRightRadius: 8,
+ minWidth: 320,
+ minHeight: 184,
+ },
+ dialogContentArea: {
+ paddingBottom: 12,
+ },
+ dialogButtonBackground: {
+ borderColor: isDarkMode ? '#1D1D1D': '#E5E5E5',
+ borderTopWidth: 1,
+ backgroundColor: isDarkMode ? '#202020' : '#F3F3F3',
+ borderBottomLeftRadius: 8,
+ borderBottomRightRadius: 8,
padding: 12,
- borderRadius: 8,
- minWidth: 300,
- gap: 12,
},
dialogButtons: {
marginTop: 12,
From 9499316089ee7439363375f59c828e206e4dd976 Mon Sep 17 00:00:00 2001
From: Chris Glein <26607885+chrisglein@users.noreply.github.com>
Date: Mon, 3 Apr 2023 12:27:58 -0700
Subject: [PATCH 11/15] Un-round single corner to make chat look better Fixes
#84
---
src/Styles.tsx | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/Styles.tsx b/src/Styles.tsx
index d1668c9..48b1528 100644
--- a/src/Styles.tsx
+++ b/src/Styles.tsx
@@ -55,14 +55,16 @@ const CreateStyles = (isDarkMode: boolean) => {
marginHorizontal: 12,
paddingHorizontal: 24,
paddingVertical: 12,
- borderRadius: 8,
+ borderRadius: 12,
},
humanSection: {
backgroundColor: isDarkMode ? '#2F2F4A' : '#E8EBFA',
+ borderBottomLeftRadius: 0,
marginRight: 64,
},
AiSection: {
backgroundColor: isDarkMode ? '#292929' : '#FFFFFF',
+ borderBottomRightRadius: 0,
marginLeft: 64,
},
sectionTitle: {
From c8974945d66ec12c9d3b7d05c4a5e2cfa172b78c Mon Sep 17 00:00:00 2001
From: Chris Glein <26607885+chrisglein@users.noreply.github.com>
Date: Tue, 14 Nov 2023 15:59:30 -0800
Subject: [PATCH 12/15] Update to SVG 14.0.0
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 445ffde..f782022 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,7 @@
"react-native": "0.73.0-rc.1",
"react-native-content-dialog": "^0.2.0",
"react-native-markdown-display-updated": "^7.0.0",
- "react-native-svg": "^13.9.0",
+ "react-native-svg": "^14.0.0",
"react-native-syntax-highlighter": "^2.1.0",
"react-native-windows": "0.73.10"
},
diff --git a/yarn.lock b/yarn.lock
index ef6b349..3ca2cc6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7678,10 +7678,10 @@ react-native-markdown-display-updated@^7.0.0:
prop-types "^15.7.2"
react-native-fit-image "^1.5.5"
-react-native-svg@^13.9.0:
- version "13.9.0"
- resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-13.9.0.tgz#8df8a690dd00362601f074dec5d3a86dd0f99c7f"
- integrity sha512-Ey18POH0dA0ob/QiwCBVrxIiwflhYuw0P0hBlOHeY4J5cdbs8ngdKHeWC/Kt9+ryP6fNoEQ1PUgPYw2Bs/rp5Q==
+react-native-svg@^14.0.0:
+ version "14.0.0"
+ resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-14.0.0.tgz#ea1974dec9a91a09c6a38b7bf58d85e857c291f5"
+ integrity sha512-17W/gWXRUMS7p7PSHu/WyGkZUc1NzRTGxxXc0VqBLjzKSchyb0EmgsiWf9aKmfC6gmY0wcsmKZcGV41bCcNfBA==
dependencies:
css-select "^5.1.0"
css-tree "^1.1.3"
From 3d1ad7c7f1b54ef9afdd007be318d31a6993a03b Mon Sep 17 00:00:00 2001
From: Chris Glein <26607885+chrisglein@users.noreply.github.com>
Date: Tue, 12 Mar 2024 17:06:41 -0700
Subject: [PATCH 13/15] Update lock file
---
windows/artificialChat/packages.lock.json | 43 +----------------------
1 file changed, 1 insertion(+), 42 deletions(-)
diff --git a/windows/artificialChat/packages.lock.json b/windows/artificialChat/packages.lock.json
index 4a453d2..377393a 100644
--- a/windows/artificialChat/packages.lock.json
+++ b/windows/artificialChat/packages.lock.json
@@ -33,11 +33,6 @@
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
},
- "Win2D.uwp": {
- "type": "Transitive",
- "resolved": "1.26.0",
- "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
- },
"clipboard": {
"type": "Project",
"dependencies": {
@@ -97,8 +92,7 @@
"type": "Project",
"dependencies": {
"Microsoft.ReactNative": "[1.0.0, )",
- "Microsoft.UI.Xaml": "[2.8.0, )",
- "Win2D.uwp": "[1.26.0, )"
+ "Microsoft.UI.Xaml": "[2.8.0, )"
}
}
},
@@ -107,11 +101,6 @@
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
- },
- "Win2D.uwp": {
- "type": "Transitive",
- "resolved": "1.26.0",
- "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
}
},
"native,Version=v0.0/win10-arm-aot": {
@@ -119,11 +108,6 @@
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
- },
- "Win2D.uwp": {
- "type": "Transitive",
- "resolved": "1.26.0",
- "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
}
},
"native,Version=v0.0/win10-arm64-aot": {
@@ -131,11 +115,6 @@
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
- },
- "Win2D.uwp": {
- "type": "Transitive",
- "resolved": "1.26.0",
- "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
}
},
"native,Version=v0.0/win10-x64": {
@@ -143,11 +122,6 @@
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
- },
- "Win2D.uwp": {
- "type": "Transitive",
- "resolved": "1.26.0",
- "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
}
},
"native,Version=v0.0/win10-x64-aot": {
@@ -155,11 +129,6 @@
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
- },
- "Win2D.uwp": {
- "type": "Transitive",
- "resolved": "1.26.0",
- "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
}
},
"native,Version=v0.0/win10-x86": {
@@ -167,11 +136,6 @@
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
- },
- "Win2D.uwp": {
- "type": "Transitive",
- "resolved": "1.26.0",
- "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
}
},
"native,Version=v0.0/win10-x86-aot": {
@@ -179,11 +143,6 @@
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
- },
- "Win2D.uwp": {
- "type": "Transitive",
- "resolved": "1.26.0",
- "contentHash": "smA/NJWM3ruhWeKPHmCyW8PX8w1ckD9SN7qWEOePe/iuFKvLyC8govCHq/F40hQCRs8zBqHWaWBpekTnQuXx6w=="
}
}
}
From 2d69530f5707fd1c0a48ff854b8215862583c212 Mon Sep 17 00:00:00 2001
From: Chris Glein <26607885+chrisglein@users.noreply.github.com>
Date: Thu, 14 Mar 2024 09:02:09 -0700
Subject: [PATCH 14/15] Patch SVG SDK issues Default to direct debugging
---
package.json | 6 ++---
...-async-storage+async-storage+1.22.3.patch} | 13 ++++------
patches/react-native-svg+15.1.0.patch | 18 ++++++++++++++
windows/artificialChat/App.cpp | 3 +--
yarn.lock | 24 +++++++++----------
5 files changed, 38 insertions(+), 26 deletions(-)
rename patches/{@react-native-async-storage+async-storage+1.19.3.patch => @react-native-async-storage+async-storage+1.22.3.patch} (95%)
create mode 100644 patches/react-native-svg+15.1.0.patch
diff --git a/package.json b/package.json
index f782022..1fea1e5 100644
--- a/package.json
+++ b/package.json
@@ -13,16 +13,16 @@
},
"dependencies": {
"@fluentui/react-native": "^0.36.20",
- "@react-native-async-storage/async-storage": "^1.17.11",
+ "@react-native-async-storage/async-storage": "^1.22.3",
"@react-native-clipboard/clipboard": "^1.12.1",
- "@react-native-picker/picker": "^2.5.1",
+ "@react-native-picker/picker": "^2.6.1",
"patch-package": "^6.5.1",
"postinstall-postinstall": "^2.1.0",
"react": "18.2.0",
"react-native": "0.73.0-rc.1",
"react-native-content-dialog": "^0.2.0",
"react-native-markdown-display-updated": "^7.0.0",
- "react-native-svg": "^14.0.0",
+ "react-native-svg": "^15.1.0",
"react-native-syntax-highlighter": "^2.1.0",
"react-native-windows": "0.73.10"
},
diff --git a/patches/@react-native-async-storage+async-storage+1.19.3.patch b/patches/@react-native-async-storage+async-storage+1.22.3.patch
similarity index 95%
rename from patches/@react-native-async-storage+async-storage+1.19.3.patch
rename to patches/@react-native-async-storage+async-storage+1.22.3.patch
index f8f718d..d0faa41 100644
--- a/patches/@react-native-async-storage+async-storage+1.19.3.patch
+++ b/patches/@react-native-async-storage+async-storage+1.22.3.patch
@@ -1,5 +1,5 @@
diff --git a/node_modules/@react-native-async-storage/async-storage/windows/ReactNativeAsyncStorage/ReactNativeAsyncStorage.vcxproj b/node_modules/@react-native-async-storage/async-storage/windows/ReactNativeAsyncStorage/ReactNativeAsyncStorage.vcxproj
-index fb2a141..82172b0 100644
+index 356e26d..9ad543b 100644
--- a/node_modules/@react-native-async-storage/async-storage/windows/ReactNativeAsyncStorage/ReactNativeAsyncStorage.vcxproj
+++ b/node_modules/@react-native-async-storage/async-storage/windows/ReactNativeAsyncStorage/ReactNativeAsyncStorage.vcxproj
@@ -1,10 +1,10 @@
@@ -20,7 +20,7 @@ index fb2a141..82172b0 100644
Windows Store
10.0
- 10.0
-- 10.0.16299.0
+- 10.0.17763.0
-
@@ -30,7 +30,7 @@ index fb2a141..82172b0 100644
+
+
+ 10.0
-+ 10.0.16299.0
++ 10.0.17763.0
+
@@ -54,12 +54,7 @@ index fb2a141..82172b0 100644
-@@ -136,18 +139,18 @@
-
-
-
--
-+
+@@ -140,14 +143,14 @@
diff --git a/patches/react-native-svg+15.1.0.patch b/patches/react-native-svg+15.1.0.patch
new file mode 100644
index 0000000..4ccf9bf
--- /dev/null
+++ b/patches/react-native-svg+15.1.0.patch
@@ -0,0 +1,18 @@
+diff --git a/node_modules/react-native-svg/windows/RNSVG/RNSVG.vcxproj b/node_modules/react-native-svg/windows/RNSVG/RNSVG.vcxproj
+index 0fdeca0..8ca53fd 100644
+--- a/node_modules/react-native-svg/windows/RNSVG/RNSVG.vcxproj
++++ b/node_modules/react-native-svg/windows/RNSVG/RNSVG.vcxproj
+@@ -26,12 +26,10 @@
+ true
+ Windows Store
+ 10.0
+- 10.0
+- 10.0.22621.0
+
+
+
+- 10.0.18362.0
++ 10.0.18362.0
+ 10.0.16299.0
+
+
\ No newline at end of file
diff --git a/windows/artificialChat/App.cpp b/windows/artificialChat/App.cpp
index 1ce03ac..392bfcd 100644
--- a/windows/artificialChat/App.cpp
+++ b/windows/artificialChat/App.cpp
@@ -22,13 +22,12 @@ App::App() noexcept
{
#if BUNDLE
JavaScriptBundleFile(L"index.windows");
- InstanceSettings().UseWebDebugger(false);
InstanceSettings().UseFastRefresh(false);
#else
JavaScriptBundleFile(L"index");
- InstanceSettings().UseWebDebugger(true);
InstanceSettings().UseFastRefresh(true);
#endif
+ InstanceSettings().UseWebDebugger(false);
#if _DEBUG
InstanceSettings().UseDeveloperSupport(true);
diff --git a/yarn.lock b/yarn.lock
index 3ca2cc6..b5f4412 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2099,10 +2099,10 @@
resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.17.1.tgz#93d219935e967fbb9aa0592cc96b2c0ec817a56f"
integrity sha512-xbR2U+2YjauIuo42qmE8XyJK6dYeRMLJuOlUP5SO4auET4VtOHOzgkRVOq+Ik18N+Xf3YPcqJs9dZMiDddz1eQ==
-"@react-native-async-storage/async-storage@^1.17.11":
- version "1.19.3"
- resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.19.3.tgz#ad5fe3ed0a82d4624aa4500321c1e09c02daeb46"
- integrity sha512-CwGfoHCWdPOTPS+2fW6YRE1fFBpT9++ahLEroX5hkgwyoQ+TkmjOaUxixdEIoVua9Pz5EF2pGOIJzqOTMWfBlA==
+"@react-native-async-storage/async-storage@^1.22.3":
+ version "1.22.3"
+ resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.22.3.tgz#ad490236a9eda8ac68cffc12c738f20b1815464e"
+ integrity sha512-Ov3wjuqxHd62tLYfgTjxj77YRYWra3A4Fi8uICIPcePgNO2WkS5B0ADXt9e/JLzSCNqVlXCq4Fir/gHmZTU9ww==
dependencies:
merge-options "^3.0.4"
@@ -2418,10 +2418,10 @@
prompts "^2.4.2"
semver "^7.5.2"
-"@react-native-picker/picker@^2.5.1":
- version "2.5.1"
- resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.5.1.tgz#dfa13d5b97bfbedf1f7e7c608181a82f1d58b351"
- integrity sha512-/sADUfQsosMRYtrqqL3ZYZSECRygj0fXtpRLqxJfwuMEoqfvfn40756R6B1alzusVvDRZFI0ari0iQid56hA/Q==
+"@react-native-picker/picker@^2.6.1":
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.6.1.tgz#3b20ddd1385fab0487db103dc6519570f8892e6d"
+ integrity sha512-oJftvmLOj6Y6/bF4kPcK6L83yNBALGmqNYugf94BzP0FQGpHBwimVN2ygqkQ2Sn2ZU3pGUZMs0jV6+Gku2GyYg==
"@react-native-windows/cli@0.73.2":
version "0.73.2"
@@ -7678,10 +7678,10 @@ react-native-markdown-display-updated@^7.0.0:
prop-types "^15.7.2"
react-native-fit-image "^1.5.5"
-react-native-svg@^14.0.0:
- version "14.0.0"
- resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-14.0.0.tgz#ea1974dec9a91a09c6a38b7bf58d85e857c291f5"
- integrity sha512-17W/gWXRUMS7p7PSHu/WyGkZUc1NzRTGxxXc0VqBLjzKSchyb0EmgsiWf9aKmfC6gmY0wcsmKZcGV41bCcNfBA==
+react-native-svg@^15.1.0:
+ version "15.1.0"
+ resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-15.1.0.tgz#07c75f29b1d641faba50144c7ccd21604b368420"
+ integrity sha512-p0Sx0EpQNk1nu6UcMEiB8K9P04n3J7s+pNYUwf1d/Yz+v4hk961VjuVqjyndgiEbHZyWiKWLZRVNuvLpwjPY2A==
dependencies:
css-select "^5.1.0"
css-tree "^1.1.3"
From 1cce8c3baf5fc7e6cee251ac46422a122bd9ed19 Mon Sep 17 00:00:00 2001
From: Chris Glein <26607885+chrisglein@users.noreply.github.com>
Date: Thu, 14 Mar 2024 09:25:43 -0700
Subject: [PATCH 15/15] Removed unused styles
---
src/About.tsx | 9 ++++----
src/Controls.tsx | 34 +------------------------------
src/Popups.tsx | 1 -
src/Styles.tsx | 53 ------------------------------------------------
4 files changed, 5 insertions(+), 92 deletions(-)
diff --git a/src/About.tsx b/src/About.tsx
index d51a153..282652d 100644
--- a/src/About.tsx
+++ b/src/About.tsx
@@ -1,10 +1,9 @@
import React from 'react';
import {
- Button,
Text,
View,
} from 'react-native';
-import {Hyperlink} from './Controls';
+import {Link} from '@fluentui/react-native';
import {
ContentDialog,
} from './Popups';
@@ -25,10 +24,10 @@ function AboutPopup({show, close}: AboutPopupProps): JSX.Element {
title="About"
defaultButtonIndex={0}>
Version: {VersionInfo.getConstants().appVersion}
-
+
Source code:
-
diff --git a/src/Controls.tsx b/src/Controls.tsx
index bddd3e0..a90fe13 100644
--- a/src/Controls.tsx
+++ b/src/Controls.tsx
@@ -92,38 +92,6 @@ function ImageSelection({image}: ImageSelectionProps): JSX.Element {
);
}
-type HyperlinkProps = {
- url: string,
- text?: string,
-};
-function Hyperlink({url, text}: HyperlinkProps): JSX.Element {
- const styles = React.useContext(StylesContext);
- const [hovering, setHovering] = React.useState(false);
- const [pressing, setPressing] = React.useState(false);
-
- let displayText = text ?? url;
-
- return (
- Linking.openURL(url)}
- onPressIn={() => setPressing(true)}
- onPressOut={() => setPressing(false)}
- onHoverIn={() => setHovering(true)}
- onHoverOut={() => setHovering(false)}>
-
- {displayText}
-
-
- );
-}
-
function SwitchWithLabel({label, value, onValueChange}: {label: string, value: boolean, onValueChange: (value: boolean) => void}): JSX.Element {
return (
@@ -137,4 +105,4 @@ function SwitchWithLabel({label, value, onValueChange}: {label: string, value: b
);
}
-export { HoverButton, Attribution, ConsentSwitch, ImageSelection, Hyperlink, CodeBlock, SwitchWithLabel };
\ No newline at end of file
+export { HoverButton, Attribution, ConsentSwitch, ImageSelection, CodeBlock, SwitchWithLabel };
\ No newline at end of file
diff --git a/src/Popups.tsx b/src/Popups.tsx
index e4e52e4..452db7c 100644
--- a/src/Popups.tsx
+++ b/src/Popups.tsx
@@ -1,7 +1,6 @@
import React from 'react';
import type { PropsWithChildren } from 'react';
import {
- ScrollView,
Text,
View,
} from 'react-native';
diff --git a/src/Styles.tsx b/src/Styles.tsx
index 48b1528..96f24b8 100644
--- a/src/Styles.tsx
+++ b/src/Styles.tsx
@@ -22,19 +22,11 @@ const StylesContext = React.createContext<{
horizontalContainer: StyleProp;
dalleImage: StyleProp;
inlineCard: StyleProp;
- dialogTitle: StyleProp;
dialogSectionsContainer: StyleProp;
dialogSection: StyleProp;
dialogSectionHeader: StyleProp;
- dialogBackground: StyleProp;
- dialogContentArea: StyleProp;
- dialogButtonBackground: StyleProp;
- dialogButtons: StyleProp;
codeBlockTitle: StyleProp;
codeBlockTitleText: StyleProp;
- hyperlinkIdle: StyleProp;
- hyperlinkPressing: StyleProp;
- hyperlinkHovering: StyleProp;
}>({});
const CreateStyles = (isDarkMode: boolean) => {
@@ -90,11 +82,6 @@ const CreateStyles = (isDarkMode: boolean) => {
borderRadius: 8,
padding: 8,
},
- dialogTitle: {
- fontWeight: '600',
- fontSize: 20,
- marginBottom: 12,
- },
dialogSectionsContainer: {
gap: 12,
},
@@ -108,52 +95,12 @@ const CreateStyles = (isDarkMode: boolean) => {
fontWeight: '600',
marginBottom: 4,
},
- dialogBackground: {
- backgroundColor: isDarkMode ? '#292929' : '#FFFFFF',
- paddingLeft: 12,
- paddingRight: 12,
- paddingTop: 12,
- borderTopLeftRadius: 8,
- borderTopRightRadius: 8,
- minWidth: 320,
- minHeight: 184,
- },
- dialogContentArea: {
- paddingBottom: 12,
- },
- dialogButtonBackground: {
- borderColor: isDarkMode ? '#1D1D1D': '#E5E5E5',
- borderTopWidth: 1,
- backgroundColor: isDarkMode ? '#202020' : '#F3F3F3',
- borderBottomLeftRadius: 8,
- borderBottomRightRadius: 8,
- padding: 12,
- },
- dialogButtons: {
- marginTop: 12,
- alignSelf: 'flex-end',
- flexDirection: 'row',
- flexWrap: 'wrap',
- alignItems: 'center',
- gap: 8,
- },
codeBlockTitle: {
backgroundColor: isDarkMode ? 'white' : '#444',
},
codeBlockTitleText: {
color: isDarkMode ? 'black' : 'white',
},
- hyperlinkIdle: {
- color: PlatformColor("HyperlinkButtonForeground"),
- textDecorationLine: 'underline',
- },
- hyperlinkPressing: {
- color: PlatformColor("HyperlinkButtonForegroundPressed"),
- },
- hyperlinkHovering: {
- color: PlatformColor("HyperlinkButtonForegroundPointerOver"),
- textDecorationLine: 'underline',
- },
});
}