From 6b7fb223f54540df88dfad3fdc44e26ebcc476ae Mon Sep 17 00:00:00 2001 From: Amal Nanavati Date: Mon, 8 Jan 2024 19:38:10 -0800 Subject: [PATCH 01/10] [WIP] Implemented getting/setting parameter TODO: - Implement "Try It" along with error handling - Test it --- feedingwebapp/package-lock.json | 1874 ++++++++++++++++- feedingwebapp/package.json | 1 + feedingwebapp/src/Pages/Constants.js | 4 + feedingwebapp/src/Pages/GlobalState.jsx | 66 +- feedingwebapp/src/Pages/Header/Header.jsx | 21 +- .../src/Pages/Settings/BiteTransfer.jsx | 221 ++ feedingwebapp/src/Pages/Settings/Main.jsx | 112 + feedingwebapp/src/Pages/Settings/Settings.jsx | 81 +- feedingwebapp/src/ros/ros_helpers.js | 32 + 9 files changed, 2278 insertions(+), 134 deletions(-) create mode 100644 feedingwebapp/src/Pages/Settings/BiteTransfer.jsx create mode 100644 feedingwebapp/src/Pages/Settings/Main.jsx diff --git a/feedingwebapp/package-lock.json b/feedingwebapp/package-lock.json index e24cb7f9..ac45a777 100644 --- a/feedingwebapp/package-lock.json +++ b/feedingwebapp/package-lock.json @@ -8,6 +8,7 @@ "name": "feedingwebapp", "version": "0.1.0", "dependencies": { + "@fluentui/react-components": "^9.44.1", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.2.0", "@testing-library/user-event": "^13.5.0", @@ -2211,74 +2212,1817 @@ "postcss-selector-parser": "^6.0.10" } }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, "node_modules/@emotion/is-prop-valid": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", "dependencies": { - "@emotion/memoize": "^0.8.1" + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "node_modules/@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.2", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", + "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.3.tgz", + "integrity": "sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q==", + "dependencies": { + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/devtools": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@floating-ui/devtools/-/devtools-0.0.4.tgz", + "integrity": "sha512-lSlvB45PgGS+YmGtOPseYBLwa+u+wPsZ+g/bT5kgzK2zLAKR5m9L5hS3b/OFZhrFWwehRf73RRSZ/WXg4r5WMw==", + "peerDependencies": { + "@floating-ui/dom": ">=1.5.4" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.4.tgz", + "integrity": "sha512-jByEsHIY+eEdCjnTVu+E3ephzTOzkQ8hgUfGwos+bg7NlH33Zc5uO+QHz1mrQUOgIKKDD1RtS201P9NvAfq3XQ==", + "dependencies": { + "@floating-ui/core": "^1.5.3", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" + }, + "node_modules/@fluentui/keyboard-keys": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-keys/-/keyboard-keys-9.0.7.tgz", + "integrity": "sha512-vaQ+lOveQTdoXJYqDQXWb30udSfTVcIuKk1rV0X0eGAgcHeSDeP1HxMy+OgHOQZH3OiBH4ZYeWxb+tmfiDiygQ==", + "dependencies": { + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/keyboard-keys/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/priority-overflow": { + "version": "9.1.11", + "resolved": "https://registry.npmjs.org/@fluentui/priority-overflow/-/priority-overflow-9.1.11.tgz", + "integrity": "sha512-sdrpavvKX2kepQ1d6IaI3ObLq5SAQBPRHPGx2+wiMWL7cEx9vGGM0fmeicl3soqqmM5uwCmWnZk9QZv9XOY98w==", + "dependencies": { + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/priority-overflow/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-accordion": { + "version": "9.3.34", + "resolved": "https://registry.npmjs.org/@fluentui/react-accordion/-/react-accordion-9.3.34.tgz", + "integrity": "sha512-kg6qUmDKFi2hY/HAcRIPpeXafOySHJcU5TguOoX1NCDfd0k9hj6facCD+b3uPt6HXBEALETAg0udcu+qNuSyPQ==", + "dependencies": { + "@fluentui/react-aria": "^9.6.2", + "@fluentui/react-context-selector": "^9.1.46", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-accordion/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-alert": { + "version": "9.0.0-beta.99", + "resolved": "https://registry.npmjs.org/@fluentui/react-alert/-/react-alert-9.0.0-beta.99.tgz", + "integrity": "sha512-2uWDRjAypS3yU6tmr57dqn8YdSAtR+BHE9n+kCsIprO52tBoFTrf27HZAITzLqCNSDf5X43K3k66ijJ7VZPFcw==", + "dependencies": { + "@fluentui/react-avatar": "^9.6.4", + "@fluentui/react-button": "^9.3.61", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-alert/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-aria": { + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-aria/-/react-aria-9.6.2.tgz", + "integrity": "sha512-DMM4l5fMfg7yltqM33TFlEJlua7eAqIdLnKtnQ4szezbG2QZOy+a+qmJOGNcScteuO1/kRfYC+WOXhxtnMeA7g==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-utilities": "^9.15.6", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-aria/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-avatar": { + "version": "9.6.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-avatar/-/react-avatar-9.6.4.tgz", + "integrity": "sha512-ziQ2KshcoV5rccmB1X2Hl0IYWJEor0OEcX2e4ki5BgCEI2JbYtd/rKQvw60kYyddqU3Vb7u9fThtxBu3o806eA==", + "dependencies": { + "@fluentui/react-badge": "^9.2.19", + "@fluentui/react-context-selector": "^9.1.46", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-popover": "^9.8.28", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-tooltip": "^9.4.6", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-avatar/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-badge": { + "version": "9.2.19", + "resolved": "https://registry.npmjs.org/@fluentui/react-badge/-/react-badge-9.2.19.tgz", + "integrity": "sha512-6HjUNeNV1KkSTuft+8YtPd5tfbJKJA5g0HO/8+M7h803cr0zhyyokPOZuKM/tH5r9VCWa+gPoyaHRZUiWyHqIA==", + "dependencies": { + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-badge/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-breadcrumb": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@fluentui/react-breadcrumb/-/react-breadcrumb-9.0.7.tgz", + "integrity": "sha512-/Kmp8CJxpW7ymTHAhSi9e09btPRhZG//oaSP6AGtTR5/0A8N1Kd+rDfmlvTleRWDn8+MMth+azt+amRaenNouQ==", + "dependencies": { + "@fluentui/react-aria": "^9.6.2", + "@fluentui/react-button": "^9.3.61", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-link": "^9.2.4", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-breadcrumb/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-button": { + "version": "9.3.61", + "resolved": "https://registry.npmjs.org/@fluentui/react-button/-/react-button-9.3.61.tgz", + "integrity": "sha512-QYNZj6CxCbOJ0wKwhDx2QaAW4udS+vw4hlLcUUHZGnksYXrJt9vhKcflokShLpOKQikD9cPn+T8b5QzFGy2Skw==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.6.2", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-button/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-card": { + "version": "9.0.60", + "resolved": "https://registry.npmjs.org/@fluentui/react-card/-/react-card-9.0.60.tgz", + "integrity": "sha512-ykohMAPtGor2RXZJeQFjwitVhhu03cq6I79WTgHnQIQvwyZ9RiHHYJ8QKsQzDpdyleSqOcUA6O6yk3oiVKVjNw==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-card/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-checkbox": { + "version": "9.2.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-checkbox/-/react-checkbox-9.2.5.tgz", + "integrity": "sha512-lfodSwu83BeDPaZRHNftqWmIrv8m9SeHdOODuAp1VPDWUCNtZkajZZaHXv77RQRKsF/O4Q60bOy0QtTsRkTqzg==", + "dependencies": { + "@fluentui/react-field": "^9.1.47", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-label": "^9.1.55", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-checkbox/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-combobox": { + "version": "9.5.38", + "resolved": "https://registry.npmjs.org/@fluentui/react-combobox/-/react-combobox-9.5.38.tgz", + "integrity": "sha512-AtvzKYCkzm0zSWSstx+q42HkejmZNfO3iH++fD3Z94e1jDdUD+KSLBpCTumskTvPLWPE6LlqhyYDKPjBK3bbOg==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-context-selector": "^9.1.46", + "@fluentui/react-field": "^9.1.47", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-portal": "^9.4.7", + "@fluentui/react-positioning": "^9.11.0", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-combobox/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-components": { + "version": "9.44.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-components/-/react-components-9.44.1.tgz", + "integrity": "sha512-Qc3ItWXXsE4MdfzCGuzbqfA4StD8zijKOdlgPo7KrJdJ6hcXI7sDmkOMmjRJmcrDMyKPvoIPENr8emGqFbdklA==", + "dependencies": { + "@fluentui/react-accordion": "^9.3.34", + "@fluentui/react-alert": "9.0.0-beta.99", + "@fluentui/react-avatar": "^9.6.4", + "@fluentui/react-badge": "^9.2.19", + "@fluentui/react-breadcrumb": "^9.0.7", + "@fluentui/react-button": "^9.3.61", + "@fluentui/react-card": "^9.0.60", + "@fluentui/react-checkbox": "^9.2.5", + "@fluentui/react-combobox": "^9.5.38", + "@fluentui/react-dialog": "^9.9.3", + "@fluentui/react-divider": "^9.2.55", + "@fluentui/react-drawer": "^9.0.7", + "@fluentui/react-field": "^9.1.47", + "@fluentui/react-image": "^9.1.52", + "@fluentui/react-infobutton": "9.0.0-beta.83", + "@fluentui/react-infolabel": "^9.0.11", + "@fluentui/react-input": "^9.4.57", + "@fluentui/react-label": "^9.1.55", + "@fluentui/react-link": "^9.2.4", + "@fluentui/react-menu": "^9.12.40", + "@fluentui/react-message-bar": "^9.0.12", + "@fluentui/react-overflow": "^9.1.5", + "@fluentui/react-persona": "^9.2.63", + "@fluentui/react-popover": "^9.8.28", + "@fluentui/react-portal": "^9.4.7", + "@fluentui/react-positioning": "^9.11.0", + "@fluentui/react-progress": "^9.1.57", + "@fluentui/react-provider": "^9.13.5", + "@fluentui/react-radio": "^9.2.0", + "@fluentui/react-select": "^9.1.57", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-skeleton": "^9.0.45", + "@fluentui/react-slider": "^9.1.62", + "@fluentui/react-spinbutton": "^9.2.57", + "@fluentui/react-spinner": "^9.3.35", + "@fluentui/react-switch": "^9.1.62", + "@fluentui/react-table": "^9.11.0", + "@fluentui/react-tabs": "^9.4.3", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-tags": "^9.0.17", + "@fluentui/react-text": "^9.4.4", + "@fluentui/react-textarea": "^9.3.57", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-toast": "^9.3.23", + "@fluentui/react-toolbar": "^9.1.62", + "@fluentui/react-tooltip": "^9.4.6", + "@fluentui/react-tree": "^9.4.20", + "@fluentui/react-utilities": "^9.15.6", + "@fluentui/react-virtualizer": "9.0.0-alpha.63", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-components/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-context-selector": { + "version": "9.1.46", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.1.46.tgz", + "integrity": "sha512-CDoGob3p9ZRL7AwzrxAjTPHJIjGvdMOfa+oIFL7O6EHATvU/7BQUPcCRPvhfZK4N4jD1w7AJgYwPPgkOqYbHpw==", + "dependencies": { + "@fluentui/react-utilities": "^9.15.6", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-context-selector/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-dialog": { + "version": "9.9.3", + "resolved": "https://registry.npmjs.org/@fluentui/react-dialog/-/react-dialog-9.9.3.tgz", + "integrity": "sha512-WAQgrbt/I1X0XcLDnMt+qmAx30E3Ol/auJhACLhilkht/uQ6xoeWOjRGBY2k6yMA32QpLqdGbV4UA4EcLLBuSg==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.6.2", + "@fluentui/react-context-selector": "^9.1.46", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-portal": "^9.4.7", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "react-transition-group": "^4.4.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-dialog/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-divider": { + "version": "9.2.55", + "resolved": "https://registry.npmjs.org/@fluentui/react-divider/-/react-divider-9.2.55.tgz", + "integrity": "sha512-WbV5nDhqe+2JXq4Igv7eZHrAB4v+CbICGhJ+sY86uHd9872hjBr9cHUSpBnY8yeffXc/PSmjF+i1NcmCOyHUyg==", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-divider/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-drawer": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@fluentui/react-drawer/-/react-drawer-9.0.7.tgz", + "integrity": "sha512-XKG5m+vFQvBl92R9O6LQOUMPSOqzh1KsR3iZQehfhcticEuShi0uIK9ys0/atYJ890ErWjuXPF7cJHvNU5IYXg==", + "dependencies": { + "@fluentui/react-dialog": "^9.9.3", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-motion-preview": "^0.5.7", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-drawer/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-field": { + "version": "9.1.47", + "resolved": "https://registry.npmjs.org/@fluentui/react-field/-/react-field-9.1.47.tgz", + "integrity": "sha512-FXVjdHkhEVr8bRKoKoZRFvrW5ZAU3ZRq4EUxMvZDOxfeVx0cxo8qIG2BOp2xe4GrVXyfVtq0Fguqx58ttlG5sg==", + "dependencies": { + "@fluentui/react-context-selector": "^9.1.46", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-label": "^9.1.55", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-field/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-icons": { + "version": "2.0.224", + "resolved": "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-2.0.224.tgz", + "integrity": "sha512-ld03dlc1pG7xeTQsK1y5in19jkMtWHNaoktFv+e7NV2xmrgV/SgPyyjEXbMrQHb8Naea/XCoCpNHnUNCy68akw==", + "dependencies": { + "@griffel/react": "^1.0.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-image": { + "version": "9.1.52", + "resolved": "https://registry.npmjs.org/@fluentui/react-image/-/react-image-9.1.52.tgz", + "integrity": "sha512-gKlf1LJXAgvyUrYlskxk58ZHMF05v0tk21G9HMWczEiivThgigsrwIRtGC2jJI66Op8c5VLdZ8/wrNK5s43k2Q==", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-image/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-infobutton": { + "version": "9.0.0-beta.83", + "resolved": "https://registry.npmjs.org/@fluentui/react-infobutton/-/react-infobutton-9.0.0-beta.83.tgz", + "integrity": "sha512-qPY9DSBv70jTl5M6YJMEYDyVPsD5D47GsTmKiuaohm9xMjXs3JUpnmve9E0uTCwQmxKRt57qvMfBSD3PCpdO7Q==", + "dependencies": { + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-label": "^9.1.55", + "@fluentui/react-popover": "^9.8.28", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-infobutton/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-infolabel": { + "version": "9.0.11", + "resolved": "https://registry.npmjs.org/@fluentui/react-infolabel/-/react-infolabel-9.0.11.tgz", + "integrity": "sha512-St74bRh14W+m5ClHIMJTqqut0PCtgo18Of1G9fQBAs7hEQuTMtj8hPWJHJsXAl70CovjaBZg3cADfXGS/WtfYw==", + "dependencies": { + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-label": "^9.1.55", + "@fluentui/react-popover": "^9.8.28", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-infolabel/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-input": { + "version": "9.4.57", + "resolved": "https://registry.npmjs.org/@fluentui/react-input/-/react-input-9.4.57.tgz", + "integrity": "sha512-zWcUzHQitMR6etKn2b0BvqjSiZxyX3LQ5XEdG2VW2QyXyF/sa+NTEOxiyqSo9Gk4wS3TO0WQb/3cPyMiubSWYQ==", + "dependencies": { + "@fluentui/react-field": "^9.1.47", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-input/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-jsx-runtime": { + "version": "9.0.24", + "resolved": "https://registry.npmjs.org/@fluentui/react-jsx-runtime/-/react-jsx-runtime-9.0.24.tgz", + "integrity": "sha512-aWnu04Cfz7RmRYuL/ra2V5vfH0KVjP6dBAy6I+MntxY4m9QwyJ3cS0Z/CzqmexW57w2VjR8+J5uNGATSlwcuuw==", + "dependencies": { + "@fluentui/react-utilities": "^9.15.6", + "@swc/helpers": "^0.5.1", + "react-is": "^17.0.2" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-jsx-runtime/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-label": { + "version": "9.1.55", + "resolved": "https://registry.npmjs.org/@fluentui/react-label/-/react-label-9.1.55.tgz", + "integrity": "sha512-lgWsw0F0g8qa5lHITvWbJpEinvhr5iMlX8/O73ynn2N4tt1Ltqx9HPld/J5E40s3KUZQCgYgTwCu3bw3/AbT5w==", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-label/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-link": { + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-link/-/react-link-9.2.4.tgz", + "integrity": "sha512-zO/DONs1ay5B2VfYH6pfZVsjSanKmMI1S0HqSk7pdGtkp8XhwRFl+G3Xm+v9J4aKfvakJEMemTCRNcHiuCwwsA==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-link/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-menu": { + "version": "9.12.40", + "resolved": "https://registry.npmjs.org/@fluentui/react-menu/-/react-menu-9.12.40.tgz", + "integrity": "sha512-GLjAjTRiO1dByfr5yGPrO7rA3HgwkbVCV4j8t8vh64yi3I0cmnXC7S3Wv2KOD0oIVMDnwEozk3kBvjmy3RfwAw==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.6.2", + "@fluentui/react-context-selector": "^9.1.46", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-portal": "^9.4.7", + "@fluentui/react-positioning": "^9.11.0", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-menu/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-message-bar": { + "version": "9.0.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-message-bar/-/react-message-bar-9.0.12.tgz", + "integrity": "sha512-/ysREhZ0CckNukrRr5S6SNdXJBJWxNlJoYuzYLFxiRV9xj05+EXpuoKxsQwaG5LMkl5I+x+tf3WuPBKJs9FcXA==", + "dependencies": { + "@fluentui/react-button": "^9.3.61", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "react-transition-group": "^4.4.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-message-bar/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-motion-preview": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@fluentui/react-motion-preview/-/react-motion-preview-0.5.7.tgz", + "integrity": "sha512-RODcicznqfrMzHTwrs62JCOi9S+vS/W1VOJ/KQFS7SLh7DgyZuNRz6mqZwbZMy3xHibli4qITMnLrwOzBg7Lhg==", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-motion-preview/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-overflow": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-overflow/-/react-overflow-9.1.5.tgz", + "integrity": "sha512-8qdOL8MSnT0UeXRY9gVnzKgMx/LqmStTqGsY+luKDgmXxkzlc2hqx9SLnByry1ljDPVpI1LtOku9U6YZhGeg4g==", + "dependencies": { + "@fluentui/priority-overflow": "^9.1.11", + "@fluentui/react-context-selector": "^9.1.46", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-overflow/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-persona": { + "version": "9.2.63", + "resolved": "https://registry.npmjs.org/@fluentui/react-persona/-/react-persona-9.2.63.tgz", + "integrity": "sha512-W0eqsXr1M2WhLuxYU1pi/5dsZnM/zF6HPUuU7k/kSZF5Psi+ad9mYSOo6xKVgQ8UCaX5acJpkIYa+ExpgwJP3w==", + "dependencies": { + "@fluentui/react-avatar": "^9.6.4", + "@fluentui/react-badge": "^9.2.19", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-persona/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-popover": { + "version": "9.8.28", + "resolved": "https://registry.npmjs.org/@fluentui/react-popover/-/react-popover-9.8.28.tgz", + "integrity": "sha512-gKehi0BrEyZaRBNMzk6cywU9q3dfz5spKWndA4zuaYv4sFOfwVVaa4NfoHY1nPTd2/6xawLPSxO5JMxCZESuug==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.6.2", + "@fluentui/react-context-selector": "^9.1.46", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-portal": "^9.4.7", + "@fluentui/react-positioning": "^9.11.0", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-popover/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-portal": { + "version": "9.4.7", + "resolved": "https://registry.npmjs.org/@fluentui/react-portal/-/react-portal-9.4.7.tgz", + "integrity": "sha512-4g0vvs+YKmBri24MBi+C3hkgKAEGhbNUi4+u1Oa0olrcGmbtugM0G910raDLJXLV2ssgSO8znzVRmA/4Lg7XYw==", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "use-disposable": "^1.0.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-portal/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-positioning": { + "version": "9.11.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-positioning/-/react-positioning-9.11.0.tgz", + "integrity": "sha512-kLtnAHpHkJLDIFctNfpDDbGBy5jw0n3ydGAvsiGVvcvBp4q0Ecy8d0ELLlwryVTxI8imdmeM/wkPOzz4LqS49A==", + "dependencies": { + "@floating-ui/devtools": "0.0.4", + "@floating-ui/dom": "^1.2.0", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-positioning/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-progress": { + "version": "9.1.57", + "resolved": "https://registry.npmjs.org/@fluentui/react-progress/-/react-progress-9.1.57.tgz", + "integrity": "sha512-QFBz9A9N4lyshev1b/r7OE5ea7/Q60Tav3zVGbfqVGmfA24qemmoDIYU1qWscuScRBmblR6//fvAroHhiK/FrQ==", + "dependencies": { + "@fluentui/react-field": "^9.1.47", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-progress/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-provider": { + "version": "9.13.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-provider/-/react-provider-9.13.5.tgz", + "integrity": "sha512-oxpGS8r5YEKHZy2csH9/kCJBgBMVms+HC0hiIA+J3M2iCdN+y1SuP0Y2zAYg/X/jRb1mXJzXtoWchsYvxVLnOQ==", + "dependencies": { + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/core": "^1.14.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-provider/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" } }, - "node_modules/@emotion/memoize": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + "node_modules/@fluentui/react-radio": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-radio/-/react-radio-9.2.0.tgz", + "integrity": "sha512-TowAnE7aMDq3fxCiouetjs8CN4KogfaarXYep3pXQMW7xRKBfXdOOFElYtQx/WzmikMJpDhhkZcyrqEpM5KGDQ==", + "dependencies": { + "@fluentui/react-field": "^9.1.47", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-label": "^9.1.55", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } }, - "node_modules/@emotion/stylis": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + "node_modules/@fluentui/react-radio/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "node_modules/@fluentui/react-select": { + "version": "9.1.57", + "resolved": "https://registry.npmjs.org/@fluentui/react-select/-/react-select-9.1.57.tgz", + "integrity": "sha512-QGlK+QYDiAzA6f3imGQBQOq9MQVVa88XyaSKWG82mjZfFWbs6vxaIZMXuCOTAsjcXKB4XDYVYOpman3apdLHjQ==", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "@fluentui/react-field": "^9.1.47", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-select/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-shared-contexts": { + "version": "9.13.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-shared-contexts/-/react-shared-contexts-9.13.2.tgz", + "integrity": "sha512-78aEZdff7vaUOmeRyMDPc/Ml+kbwn02BiRLPQhqgYtCyjy0V3YBpmYfqxO8N5hUIZcFTedyOaHWpzVeEYxpNmA==", + "dependencies": { + "@fluentui/react-theme": "^9.1.16", + "@swc/helpers": "^0.5.1" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "@types/react": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node_modules/@fluentui/react-shared-contexts/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "node_modules/@fluentui/react-skeleton": { + "version": "9.0.45", + "resolved": "https://registry.npmjs.org/@fluentui/react-skeleton/-/react-skeleton-9.0.45.tgz", + "integrity": "sha512-toOWQNoqONupLImvbkE4vf+ECq1lAyCUBf4hI6AOtYppDaXOOOWWsgSImsj25yLtS4dPYkzyWoMMdmjSOwXu6g==", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.2", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@fluentui/react-field": "^9.1.47", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-skeleton/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-slider": { + "version": "9.1.62", + "resolved": "https://registry.npmjs.org/@fluentui/react-slider/-/react-slider-9.1.62.tgz", + "integrity": "sha512-GHY1J3qpoYY3c1rwQsBRTHISExO1vBSJCH4lDgCJI/E9KOa8saJYFvuv3aYmnOq8CGSb2UCSb0eha5G9UB/4yQ==", + "dependencies": { + "@fluentui/react-field": "^9.1.47", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@eslint/js": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", - "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node_modules/@fluentui/react-slider/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-spinbutton": { + "version": "9.2.57", + "resolved": "https://registry.npmjs.org/@fluentui/react-spinbutton/-/react-spinbutton-9.2.57.tgz", + "integrity": "sha512-FoYe0iUcEYjlhJtqjciBdQ/4wuQ7iPwpqE/VuGknvWrydXawJ7qI3fx7yP/58R5utbGAz4Rdkkjzc2xhtW/EVg==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-field": "^9.1.47", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-spinbutton/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-spinner": { + "version": "9.3.35", + "resolved": "https://registry.npmjs.org/@fluentui/react-spinner/-/react-spinner-9.3.35.tgz", + "integrity": "sha512-0JXgkVrB4+atN1P44XtuNup6xthg4gyJYPXGS+3x/EB2B0pi55c8IWE/mVjG9F/TBt2PFRb9nCzdrfvkhV/CsA==", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-label": "^9.1.55", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-spinner/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-switch": { + "version": "9.1.62", + "resolved": "https://registry.npmjs.org/@fluentui/react-switch/-/react-switch-9.1.62.tgz", + "integrity": "sha512-L+MzTP3B5eWxw7az62Sf7FGzPhPQoD0CtyR78IHTrgPXQswnoSq9oJRkpVr5LBfND2SE4Y7UvPuUulBJXTlW5g==", + "dependencies": { + "@fluentui/react-field": "^9.1.47", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-label": "^9.1.55", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-switch/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-table": { + "version": "9.11.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-table/-/react-table-9.11.0.tgz", + "integrity": "sha512-Hp7PBg0iy5W+y7j4QKIyzHd4dpdvIzcyvzYevTkJNWALyUzzZZ6yefLS+hHy/akP/gEOGctnNyJENiODBSSbAA==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.6.2", + "@fluentui/react-avatar": "^9.6.4", + "@fluentui/react-checkbox": "^9.2.5", + "@fluentui/react-context-selector": "^9.1.46", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-radio": "^9.2.0", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-table/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-tabs": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/@fluentui/react-tabs/-/react-tabs-9.4.3.tgz", + "integrity": "sha512-H/bM6NfA3y81NdOMmCWMhpv4SDAWkxMq8ywx8Pr98pKvkearlIo9EuxFK84YEK0haibgn6OpWSPciVaBLx8dPw==", + "dependencies": { + "@fluentui/react-context-selector": "^9.1.46", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-tabs/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-tabster": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-tabster/-/react-tabster-9.17.0.tgz", + "integrity": "sha512-+tFYkjH5QiF2YDCmJAz1FVzzs/09hiRT0xPe1yLlAkMYJV/s+iIungwKgSUF1RziP9iQh9NZZ2A5GMrzRw8SGg==", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "keyborg": "^2.3.0", + "tabster": "^5.0.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-tabster/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-tags": { + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@fluentui/react-tags/-/react-tags-9.0.17.tgz", + "integrity": "sha512-XV3mtMgPcbXwDlrXVU19hfW0MsXmhM+ZHS0oZgR/jSDO6Nses6jdS3qiG2+Nl/AJqW6wA2l2yCBXHdAZu7hC8A==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.6.2", + "@fluentui/react-avatar": "^9.6.4", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-tags/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-text": { + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-text/-/react-text-9.4.4.tgz", + "integrity": "sha512-FH/zua+u+T8QK1cDeg4w1Ahdfj+2A3Wd61g9lxU26ZfUzhWxV7F9enwGgiqTF0Swv7WsD1ahwI+FIZA5+WgEsw==", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-text/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-textarea": { + "version": "9.3.57", + "resolved": "https://registry.npmjs.org/@fluentui/react-textarea/-/react-textarea-9.3.57.tgz", + "integrity": "sha512-E26jQ1s7/QLkJjTw72BQHfKtXP8PyNsfPSfWbwhmm5doe0HLa1V5+Gq1ZkdQiV78Q5Rl0bGKXrdR2Ccy/fBL/g==", + "dependencies": { + "@fluentui/react-field": "^9.1.47", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-textarea/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-theme": { + "version": "9.1.16", + "resolved": "https://registry.npmjs.org/@fluentui/react-theme/-/react-theme-9.1.16.tgz", + "integrity": "sha512-QK2dGE5aQXN1UGdiEmGKpYGP3tHXIchLvFf8DEEOWnF4XBc9SiEPNFYkvLMJjHxZmDz4D670rsOPe0r5jFDEKQ==", + "dependencies": { + "@fluentui/tokens": "1.0.0-alpha.13", + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/react-theme/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-toast": { + "version": "9.3.23", + "resolved": "https://registry.npmjs.org/@fluentui/react-toast/-/react-toast-9.3.23.tgz", + "integrity": "sha512-PJClzPYWmq303SoaNuPwgF0Drbn0pGrzqA6x8J3NgCx7F4c8n5SB34jxKtKlFAB5EiAk1y+v1om7Z6/v+3Zehg==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.6.2", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-portal": "^9.4.7", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "react-transition-group": "^4.4.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-toast/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-toolbar": { + "version": "9.1.62", + "resolved": "https://registry.npmjs.org/@fluentui/react-toolbar/-/react-toolbar-9.1.62.tgz", + "integrity": "sha512-97mlwQsAXn5jYhvyUUU7FrMIwddN5CTQEpoTDOaibcZ1hvZTNyVDyLpvWy7CLjX8CPvde/jgjf4z+I74zYP0OA==", + "dependencies": { + "@fluentui/react-button": "^9.3.61", + "@fluentui/react-context-selector": "^9.1.46", + "@fluentui/react-divider": "^9.2.55", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-radio": "^9.2.0", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-toolbar/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-tooltip": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-tooltip/-/react-tooltip-9.4.6.tgz", + "integrity": "sha512-G3u6Qdr8mBClcncmf4qzIiPx4ti1ZjhB/lFVYIyB8Egg6s20TBRajo3ZlTD+Wwo9In8szfLm836bz8SMZqL4KA==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-portal": "^9.4.7", + "@fluentui/react-positioning": "^9.11.0", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-tooltip/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-tree": { + "version": "9.4.20", + "resolved": "https://registry.npmjs.org/@fluentui/react-tree/-/react-tree-9.4.20.tgz", + "integrity": "sha512-LTzGiJeKCXYHUB7gY/XiQcowTVirz402Oeb6As8WM99pmWAzmttzSTiS7+MeHqJEeisNzOojyR8bcqRJ3DY7Pg==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.6.2", + "@fluentui/react-avatar": "^9.6.4", + "@fluentui/react-button": "^9.3.61", + "@fluentui/react-checkbox": "^9.2.5", + "@fluentui/react-context-selector": "^9.1.46", + "@fluentui/react-icons": "^2.0.224", + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-radio": "^9.2.0", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-tabster": "^9.17.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-tree/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-utilities": { + "version": "9.15.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-utilities/-/react-utilities-9.15.6.tgz", + "integrity": "sha512-Hli0iiA/gaWwADMe7NRD6TSy7KvL3bgek8j1sYkE9BiUI89GqyfJwU2Tm0it04iiCYvQ5WWrXPcRYyZ3/MHtpA==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-shared-contexts": "^9.13.2", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-utilities/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/react-virtualizer": { + "version": "9.0.0-alpha.63", + "resolved": "https://registry.npmjs.org/@fluentui/react-virtualizer/-/react-virtualizer-9.0.0-alpha.63.tgz", + "integrity": "sha512-Uddb1bIayzXwSEJg90ybNUa1NE84aOCFRKAf1E2by7mSQupyOk3NjrVSpm3O78vUdPyjJN+COZlTsEFE3EBbIg==", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.0.24", + "@fluentui/react-shared-contexts": "^9.13.2", + "@fluentui/react-utilities": "^9.15.6", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-virtualizer/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fluentui/tokens": { + "version": "1.0.0-alpha.13", + "resolved": "https://registry.npmjs.org/@fluentui/tokens/-/tokens-1.0.0-alpha.13.tgz", + "integrity": "sha512-IzYysTTBkAH7tQZxYKpzhxYnTJkvwXhjhTOpmERgnqTFifHTP8/vaQjJAAm7dI/9zlDx1oN+y/I+KzL9bDLHZQ==", + "dependencies": { + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/tokens/node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@griffel/core": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@griffel/core/-/core-1.15.1.tgz", + "integrity": "sha512-09w5axbOJuBzjTVFN5EycbAOIpCoxZeoJMZgT2fTrIl2GIxnTWpK3F2d63UzGBmQf1O+EgR6nK4FgMXFt1UFig==", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@griffel/style-types": "^1.0.2", + "csstype": "^3.1.2", + "rtl-css-js": "^1.16.1", + "stylis": "^4.2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@griffel/react": { + "version": "1.5.19", + "resolved": "https://registry.npmjs.org/@griffel/react/-/react-1.5.19.tgz", + "integrity": "sha512-qefnZseAwcwCpFVzN33mG20t/hofpWci7VNtOwzSco/IxFLuJaB2ffki+uAdUgWCpV2A67bWQjXNlymBoMUysg==", + "dependencies": { + "@griffel/core": "^1.15.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@griffel/style-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@griffel/style-types/-/style-types-1.0.2.tgz", + "integrity": "sha512-ka/Tpl1WU8js88LObwB/4EvpgXzx/EEJfbHhAr4ZNt29hrQKgL93X1zSY6M/FRhMhWrGIawauWkZP6/y6w/WiQ==", + "dependencies": { + "csstype": "^3.1.2" } }, "node_modules/@humanwhocodes/config-array": { @@ -12743,6 +14487,11 @@ "node": ">=4.0" } }, + "node_modules/keyborg": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/keyborg/-/keyborg-2.4.0.tgz", + "integrity": "sha512-EixFnyCc6m27NkFwyT5GNNQl+9wiTMePtAvVuKXZpc0CZLLJfJFB3zXGFBGnwtvEXymbJoPWoErzwTpiEQ+Msg==" + }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -16465,6 +18214,14 @@ "react-dom": "^18.2.0" } }, + "node_modules/rtl-css-js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz", + "integrity": "sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -17225,6 +18982,11 @@ "resolved": "https://registry.npmjs.org/styleq/-/styleq-0.1.3.tgz", "integrity": "sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA==" }, + "node_modules/stylis": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz", + "integrity": "sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==" + }, "node_modules/sucrase": { "version": "3.32.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz", @@ -17492,6 +19254,15 @@ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, + "node_modules/tabster": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/tabster/-/tabster-5.2.0.tgz", + "integrity": "sha512-cSi3a0gGeM9Co/gTKHlhTFfiitwVjcA+kP9lJux0U7QaRrZox1yYrfbwZhJXM7N0fux7BgvCYaOxME5k0EQ0tA==", + "dependencies": { + "keyborg": "^2.2.0", + "tslib": "^2.3.1" + } + }, "node_modules/tailwindcss": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz", @@ -18176,6 +19947,17 @@ "requires-port": "^1.0.0" } }, + "node_modules/use-disposable": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/use-disposable/-/use-disposable-1.0.2.tgz", + "integrity": "sha512-UMaXVlV77dWOu4GqAFNjRzHzowYKUKbJBQfCexvahrYeIz4OkUYUjna4Tjjdf92NH8Nm8J7wEfFRgTIwYjO5jg==", + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, "node_modules/use-sync-external-store": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", diff --git a/feedingwebapp/package.json b/feedingwebapp/package.json index dfadddd3..b6a11fab 100644 --- a/feedingwebapp/package.json +++ b/feedingwebapp/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { + "@fluentui/react-components": "^9.44.1", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.2.0", "@testing-library/user-event": "^13.5.0", diff --git a/feedingwebapp/src/Pages/Constants.js b/feedingwebapp/src/Pages/Constants.js index dd6ede91..5df94293 100644 --- a/feedingwebapp/src/Pages/Constants.js +++ b/feedingwebapp/src/Pages/Constants.js @@ -118,6 +118,10 @@ ROS_SERVICE_NAMES[MEAL_STATE.R_DetectingFace] = { export { ROS_SERVICE_NAMES } export const CLEAR_OCTOMAP_SERVICE_NAME = 'clear_octomap' export const CLEAR_OCTOMAP_SERVICE_TYPE = 'std_srvs/srv/Empty' +export const GET_PARAMETERS_SERVICE_NAME = 'ada_feeding_action_servers/get_parameters' +export const GET_PARAMETERS_SERVICE_TYPE = 'rcl_interfaces/srv/GetParameters' +export const SET_PARAMETERS_SERVICE_NAME = 'ada_feeding_action_servers/set_parameters' +export const SET_PARAMETERS_SERVICE_TYPE = 'rcl_interfaces/srv/SetParameters' /** * The meaning of the status that motion actions return in their results. diff --git a/feedingwebapp/src/Pages/GlobalState.jsx b/feedingwebapp/src/Pages/GlobalState.jsx index 76de930d..94b356f0 100644 --- a/feedingwebapp/src/Pages/GlobalState.jsx +++ b/feedingwebapp/src/Pages/GlobalState.jsx @@ -75,6 +75,17 @@ export const MEAL_STATE = { U_PostMeal: 'U_PostMeal' } +/** + * SETTINGS_STATE controls which settings page to display. + * - MAIN: The main page, with options to navigate to the other pages. + * - BITE_TRANSFER: The bite transfer page, where the user can configure + * parameters for bite transfer. + */ +export const SETTINGS_STATE = { + MAIN: 'MAIN', + BITE_TRANSFER: 'BITE_TRANSFER' +} + /** * The parameters that users can set (keys) and a list of human-readable values * they can take on. @@ -90,11 +101,11 @@ export const MEAL_STATE = { * TODO (amaln): When we connect this to ROS, each of these settings types and * value options will have to have corresponding rosparam names and value options. */ -export const SETTINGS = { - stagingPosition: ['In Front of Me', 'On My Right Side'], - biteInitiation: ['Open Mouth', 'Say "I am Ready"', 'Press Button'], - biteSelection: ['Name of Food', 'Click on Food'] -} +// export const SETTINGS = { +// stagingPosition: ['In Front of Me', 'On My Right Side'], +// biteInitiation: ['Open Mouth', 'Say "I am Ready"', 'Press Button'], +// biteSelection: ['Name of Food', 'Click on Food'] +// } /** * useGlobalState is a hook to store and manipulate web app state that we want @@ -104,12 +115,14 @@ export const SETTINGS = { export const useGlobalState = create( persist( (set) => ({ + // The current app page + appPage: APP_PAGE.Home, // The app's current meal state mealState: MEAL_STATE.U_PreMeal, // The timestamp when the robot transitioned to its current meal state mealStateTransitionTime: Date.now(), - // The current app page - appPage: APP_PAGE.Home, + // The currently displayed settings page + settingsState: SETTINGS_STATE.MAIN, // The goal for the bite acquisition action, including the most recent // food item that the user selected in "bite selection" biteAcquisitionActionGoal: null, @@ -124,19 +137,24 @@ export const useGlobalState = create( // Flag to indicate whether to auto-continue after face detection faceDetectionAutoContinue: false, // Settings values - stagingPosition: SETTINGS.stagingPosition[0], - biteInitiation: SETTINGS.biteInitiation[0], - biteSelection: SETTINGS.biteSelection[0], + // stagingPosition: SETTINGS.stagingPosition[0], + // biteInitiation: SETTINGS.biteInitiation[0], + // biteSelection: SETTINGS.biteSelection[0], // Setters for global state + setAppPage: (appPage) => + set(() => ({ + appPage: appPage, + settingsState: SETTINGS_STATE.MAIN + })), setMealState: (mealState) => set(() => ({ mealState: mealState, mealStateTransitionTime: Date.now() })), - setAppPage: (appPage) => + setSettingsState: (settingsState) => set(() => ({ - appPage: appPage + settingsState: settingsState })), setBiteAcquisitionActionGoal: (biteAcquisitionActionGoal) => set(() => ({ @@ -157,19 +175,19 @@ export const useGlobalState = create( setFaceDetectionAutoContinue: (faceDetectionAutoContinue) => set(() => ({ faceDetectionAutoContinue: faceDetectionAutoContinue - })), - setStagingPosition: (stagingPosition) => - set(() => ({ - stagingPosition: stagingPosition - })), - setBiteInitiation: (biteInitiation) => - set(() => ({ - biteInitiation: biteInitiation - })), - setBiteSelection: (biteSelection) => - set(() => ({ - biteSelection: biteSelection })) + // setStagingPosition: (stagingPosition) => + // set(() => ({ + // stagingPosition: stagingPosition + // })), + // setBiteInitiation: (biteInitiation) => + // set(() => ({ + // biteInitiation: biteInitiation + // })), + // setBiteSelection: (biteSelection) => + // set(() => ({ + // biteSelection: biteSelection + // })) }), { name: 'ada_web_app_global_state' } ) diff --git a/feedingwebapp/src/Pages/Header/Header.jsx b/feedingwebapp/src/Pages/Header/Header.jsx index 5e32d6d8..73d3e34e 100644 --- a/feedingwebapp/src/Pages/Header/Header.jsx +++ b/feedingwebapp/src/Pages/Header/Header.jsx @@ -5,7 +5,7 @@ import Navbar from 'react-bootstrap/Navbar' import Nav from 'react-bootstrap/Nav' import { useMediaQuery } from 'react-responsive' // Toast generates a temporary pop-up with a timeout. -import { ToastContainer /* , toast */ } from 'react-toastify' +import { ToastContainer, toast } from 'react-toastify' import 'react-toastify/dist/ReactToastify.css' // ROS imports import { useROS } from '../../ros/ros_helpers' @@ -62,13 +62,13 @@ const Header = () => { * started, take the user to the settings menu. Else, ask them to complete * or terminate the meal because modifying settings. */ - // const settingsClicked = useCallback(() => { - // if (mealState === MEAL_STATE.U_PreMeal || mealState === MEAL_STATE.U_PostMeal) { - // setAppPage(APP_PAGE.Settings) - // } else { - // toast('Please complete or terminate the feeding process to access Settings.') - // } - // }, [mealState, setAppPage]) + const settingsClicked = useCallback(() => { + if (NON_MOVING_STATES.has(mealState)) { + setAppPage(APP_PAGE.Settings) + } else { + toast('Wait for robot motion to complete before accessing Settings.') + } + }, [mealState, setAppPage]) // Render the component. The NavBar will stay fixed even as we vertically scroll. return ( @@ -106,14 +106,13 @@ const Header = () => { > Home - {/* TODO: Reinstate the settings menu when we implement settings! */} - {/* Settings - */} + {NON_MOVING_STATES.has(mealState) || paused || (mealState === MEAL_STATE.U_PlateLocator && teleopIsMoving === false) ? (