From 5ee0c30efbaa79673e1a32b8654e11a842503617 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 1/3] Try adding FURN --- .vscode/.react/debuggerWorker.js | 202 ------------ package.json | 1 + src/Popups.tsx | 2 +- yarn.lock | 516 ++++++++++++++++++++++++++++++- 4 files changed, 516 insertions(+), 205 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 f85f949..ac19ffa 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.11.2", "@react-native-picker/picker": "^2.2.1", diff --git a/src/Popups.tsx b/src/Popups.tsx index 61bebb9..3500773 100644 --- a/src/Popups.tsx +++ b/src/Popups.tsx @@ -1,11 +1,11 @@ import React, { PropsWithChildren } from 'react'; import { - Button, Text, View, } from 'react-native'; import {Popup} from 'react-native-windows'; import {StylesContext} from './Styles'; +import { Button, IFocusable } from '@fluentui/react-native'; type PopupsContextType = { showAbout: boolean, diff --git a/yarn.lock b/yarn.lock index a297940..b9ada3f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1126,6 +1126,457 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@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" @@ -2112,6 +2563,62 @@ "@typescript-eslint/types" "5.50.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" + "@xmldom/xmldom@^0.7.7": version "0.7.9" resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.9.tgz#7f9278a50e737920e21b297b8a35286e9942c056" @@ -2335,6 +2842,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== + assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -4316,7 +4828,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== @@ -7657,7 +8169,7 @@ 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: +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== From b890ae6fff395d4a627852131f13c611256a4d12 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 2/3] 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/Popups.tsx | 14 ++-- src/Settings.tsx | 14 ++-- windows/artificialChat.sln | 14 ++++ .../AutolinkedNativeModules.g.cpp | 5 ++ .../AutolinkedNativeModules.g.targets | 4 + windows/artificialChat/artificialChat.vcxproj | 8 ++ windows/artificialChat/packages.config | 5 ++ yarn.lock | 84 +++++++++++++++++++ 11 files changed, 144 insertions(+), 25 deletions(-) create mode 100644 windows/artificialChat/packages.config diff --git a/babel.config.js b/babel.config.js index f842b77..1be3da9 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,3 +1,4 @@ module.exports = { - presets: ['module:metro-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 ac19ffa..f3c7bca 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "react": "18.2.0", "react-native": "0.71.0", "react-native-markdown-display": "^7.0.0-alpha.2", + "react-native-svg": "^13.9.0", "react-native-syntax-highlighter": "^2.1.0", "react-native-windows": "0.71.1" }, 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/Popups.tsx b/src/Popups.tsx index 3500773..08de172 100644 --- a/src/Popups.tsx +++ b/src/Popups.tsx @@ -5,7 +5,7 @@ import { } from 'react-native'; import {Popup} from 'react-native-windows'; import {StylesContext} from './Styles'; -import { Button, IFocusable } from '@fluentui/react-native'; +import { ButtonV1 as Button } from '@fluentui/react-native'; type PopupsContextType = { showAbout: boolean, @@ -32,12 +32,12 @@ type DialogFrameType = PropsWithChildren<{ function DialogFrame({children, show, close, isLightDismissEnabled, titleIcon, titleIconStyle, title, buttons}: DialogFrameType) { const styles = React.useContext(StylesContext); - const populatedButtons = buttons ?? []; const buttonList = populatedButtons.map((button, index) => {button}); return ( diff --git a/src/Settings.tsx b/src/Settings.tsx index 728f515..faba8e4 100644 --- a/src/Settings.tsx +++ b/src/Settings.tsx @@ -1,7 +1,5 @@ import React from 'react'; import { - Button, - Switch, Text, TextInput, View, @@ -18,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'; @@ -162,17 +161,14 @@ function SettingsPopup({show, close}: SettingsPopupProps): JSX.Element { const buttons = [ , ]; return ( 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 f913507..ca203b4 100644 --- a/windows/artificialChat/artificialChat.vcxproj +++ b/windows/artificialChat/artificialChat.vcxproj @@ -202,6 +202,7 @@ + false @@ -217,6 +218,7 @@ + @@ -225,4 +227,10 @@ + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + \ No newline at end of file diff --git a/windows/artificialChat/packages.config b/windows/artificialChat/packages.config new file mode 100644 index 0000000..4dda557 --- /dev/null +++ b/windows/artificialChat/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index b9ada3f..063fb37 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3076,6 +3076,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" @@ -3548,6 +3553,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" @@ -3557,6 +3573,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.1" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" @@ -3732,6 +3761,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" @@ -3771,6 +3830,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" @@ -5975,6 +6039,11 @@ markdown-it@^10.0.0: mdurl "^1.0.1" uc.micro "^1.0.5" +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" @@ -6599,6 +6668,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" @@ -7185,6 +7261,14 @@ react-native-markdown-display@^7.0.0-alpha.2: 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 e9b4e527c7e3fe0f51f2bac860b4372c26fc8fbd Mon Sep 17 00:00:00 2001 From: Chris Glein <26607885+chrisglein@users.noreply.github.com> Date: Thu, 30 Mar 2023 17:48:27 -0700 Subject: [PATCH 3/3] onPress -> onClick --- src/Settings.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Settings.tsx b/src/Settings.tsx index faba8e4..649d3ef 100644 --- a/src/Settings.tsx +++ b/src/Settings.tsx @@ -161,7 +161,7 @@ function SettingsPopup({show, close}: SettingsPopupProps): JSX.Element { const buttons = [ ,