From 86aad9498df78b3a6e42e2eba3cd3e86f193d5dd Mon Sep 17 00:00:00 2001 From: Aloento <11802769+Aloento@users.noreply.github.com> Date: Tue, 16 Jan 2024 17:54:52 +0100 Subject: [PATCH] [Front] v1.2.5 (#67) * Update Footer component logo * The code changes involve updates to several files, including .cs, .tsx, and .ts files. The changes mainly involve updates to the code logic, addition of new functions, and updates to the version of the software packages used. The `useStyle` function has been renamed to `useStyles` across multiple files. The `DelegateDataGrid` import path has been updated in multiple files. The `Lexical` function has been exported as default in `index.tsx`. The `useStyle` function has been renamed to `useStyles` in `Nav.tsx`. The `DelegateDataGrid` component's `Items` prop no longer defaults to an empty array when `Items` is undefined in `List.tsx` and `index.tsx`. The `AdminProductAddButton` component's version has been updated to `0.3.3` in `Add.tsx`. The `run` function from `AdminHub.Product.Post.useCreate` now also returns `loading` in `Add.tsx`. The `setName` function is called with an empty string after a successful product creation in `Add.tsx`. The `Create` button in `Add.tsx` is now disabled when `loading` is true. The `AdminProductDelete` component's version has been updated to `0.2.1` in `Delete.tsx`. The `run` function from `AdminHub.Product.Delete.useProduct` now also returns `loading` in `Delete.tsx`. The `location.reload` function call has been removed from `AdminProductDelete` in `Delete.tsx`. The `AdminProductDelete` component now uses a `Popover` for confirmation before deleting a product in `Delete.tsx`. The `AdminProductComboDetail` and `AdminProductNewCombo` components now pass an array to `DelegateDataGrid`'s `Items` prop without defaulting to an empty array when the array is undefined in `Detail.tsx` and `New.tsx`. The `AdminProductCombo` component now passes an array to `DelegateDataGrid`'s `Items` prop without defaulting to an empty array when the array is undefined in `index.tsx`. The `AdminProductDelete` component's version has been updated to `0.1.1` in `Delete.tsx`. The `AdminProductDelete` component now uses a `Popover` for confirmation before deleting a product in `Delete.tsx`. The `AdminProductDetail` component's version has been updated to `0.2.2` in `Detail.tsx`. The `AdminProductDetail` component now uses `setFalse` instead of `toggle` to close the drawer in `Detail.tsx`. The `AdminProductDetail` component now includes the `AdminProductLexical` component in `Detail.tsx`. The `AdminProductPhotoEdit` component's version has been updated to `0.3.3` in `Edit.tsx`. The `AdminProductPhotoEdit` component now uses the `GuidImage` component instead of the `Image` component in `Edit.tsx`. The `AdminProductPhoto` component now passes an array to `DelegateDataGrid`'s `Items` prop without defaulting to an empty array when the array is undefined in `index.tsx`. The `AdminProductVariant` component now passes an array to `DelegateDataGrid`'s `Items` prop without defaulting to an empty array when the array is undefined in `index.tsx`. A new `AdminProductRow` component has been added in `Row.tsx`. The `AdminProductVariantEdit` component's version has been updated to `0.2.1` in `index.tsx`. The `AdminProductVariant` component now passes an array to `DelegateDataGrid`'s `Items` prop without defaulting to an empty array when the array is undefined in `index.tsx`. Several imports have been updated, with some being removed and others added. This includes changes to the import of various components from "@fluentui/react-components" and other libraries. The version numbers in the author comments have been updated, indicating that changes have been made to the code since the last version. The `IProductItem` interface has been extended to include `IProductCount`, and a new `IProductCount` interface has been added. The `useRequest` function has been replaced with `AdminHub.Product.Get.useList(log)` in the `AdminProduct` function. The `DelegateDataGrid` component has been replaced with a `DataGrid` component in the `AdminProduct` function. The `renderHeaderCell` and `renderCell` functions in the `createTableColumn` calls have been simplified. The `useStyle` function has been renamed to `useStyles` in several places. The `WithVersionCache` function has been replaced with `GetVersionCache` in several places. The `WithTimeCache` function has been replaced with `GetTimeCache` in several places. The `ProductEntity` class has been replaced with `ProductData` in several places. The `AdminProductRow` component has been added to the `DataGridBody` in the `AdminProduct` function. The `ProductLexicalRender` component has been added to the `Product` function. The `AdminUserDelete` and `AdminUserGrant` components have been updated to use `DataGridCell` and `DataGridHeaderCell`. The `Admin` function has been updated to check if `data` is defined instead of `loading`. The `ProductCarousel` function has been updated to use `Hub.Product.Get.PhotoList` instead of `Hub.Product.Get.Carousel`. The `ProductQuantity` and `ProductRadioList` components have been moved into a new `div` with the `style.detail` class in the `Product` function. The `ProductRadioGroup` function has been updated to use the `useRadioGroup` function. The `AdminOrderGet` class has been updated to use the `GetTimeCache` function instead of the `WithTimeCache` function. The `AdminProductDelete` class has been updated to use the `UpdateCache` function. The `dayjs` import was removed from several files and replaced with the `useConst` and `useLiveQuery` hooks from `@fluentui/react-hooks` and `dexie-react-hooks` respectively. This suggests a shift from using the `dayjs` library for date manipulation to using React hooks for state management and live querying of data. The `ProductEntity` import was removed from several files and replaced with `ProductData` and `ProductGet`. This suggests a refactoring of the code to separate concerns between fetching product data and getting product details. The `WithTimeCache` method was replaced with `GetTimeCache` in several places. This suggests a change in the method used for caching data. The `WithVersionCache` method was replaced with `GetVersionCache` in several places. This suggests a change in the method used for version caching. The `List` method in `AdminProductGet` was refactored to use the `useLiveQuery` hook and the `GetTimeCache` method. This suggests a shift towards using live queries and time-based caching for data fetching. The `useCreate` method in `AdminProductPost` was refactored to use the `Invoke` method and update the cache after creating a product. This suggests a change in the product creation process to include cache updates. A new `useLexical` method was added to `AdminProductPost`, which uses the `CurrentEditor` to get the editor state and invoke the `ProductPostDescription` method. This suggests a new feature for handling lexical data in product posts. The `ProductGet` class was refactored to extend `ProductData` instead of `ShopNet`. This suggests a change in the class hierarchy to make `ProductGet` a subclass of `ProductData`. The `PhotoList` method in `ProductGet` was refactored to use the `GetTimeCache` method and handle errors. This suggests a change in the method used for fetching photo lists and improved error handling. A new `ProductData` class was added, which includes methods for fetching product, lexical, photo, type, and variant data. This suggests a new class for handling product-related data fetching. The `demo.json` file was completely removed. This file contained a large amount of text data structured in a specific format. In `SignalR.ts`, the import statement for `ShopNet` was changed to import the type only. Two new methods `Index` and `UpdateCache` were added to the `SignalR` class. The `WithVersionCache` method was renamed to `GetVersionCache` and its implementation was updated. The `WithTimeCache` method was renamed to `GetTimeCache` and its implementation was updated. The `FindCover` method was removed from the `SignalR` class. In `Table.ts`, the `Table` class was updated to remove the generic `TPre` and replace it with `unknown`. The `Get`, `GetOrSet`, and `Set` methods were updated to remove the `TPre` generic and replace it with `unknown`. In `Get.tsx`, the `useMe` method was updated to remove the `options` and `suppress` parameters and to use the `useLiveQuery` hook instead of the `useRequest` hook. The `useMe` method now returns `IUserGetMe | void` instead of `IuseMe | void`. In `Post.ts`, the `useUpdate` method was updated to call the `EnsureTrue` method and the `UpdateCache` method after invoking the `UserPostUpdate` method. In `vite.config.ts`, the `splitVendorChunkPlugin` was added to the list of plugins in the Vite configuration. * [Front] 1.2.5 --- TSystems.LoveOTC/AdminHub/Product/Get.cs | 18 +- TSystems.LoveOTC/AdminHub/Product/Post.cs | 30 +- TSystems.LoveOTC/Hub/Product/Entity.cs | 25 +- TSystems.LoveOTC/TSystems.LoveOTC.csproj | 14 +- package.json | 43 +- pnpm-lock.yaml | 1759 +++++++++-------- public/systems-logo.png | Bin 11612 -> 0 bytes src/Components/AvatarMenu.tsx | 3 +- src/Components/DataGrid/Delegate.tsx | 44 - src/Components/DataGrid/index.tsx | 40 +- src/Components/Footer.tsx | 17 +- src/Components/OrderInfo.tsx | 6 +- src/Components/Setting.tsx | 24 +- src/Components/ShopCart/Confirm.tsx | 2 +- src/Components/ShopCart/Persona.tsx | 2 +- src/Components/ShopCart/index.tsx | 2 +- src/Components/TopNavBar.tsx | 6 +- src/Helpers/CoverCol.tsx | 6 +- src/Lexical/Editor.tsx | 6 +- src/Lexical/Lazy.tsx | 18 + src/Lexical/Nodes/Table/Component.tsx | 4 +- src/Lexical/Nodes/Table/TableCell.tsx | 4 +- src/Lexical/Plugins/ActionsPlugin/index.tsx | 6 +- .../index.tsx => AutoLinkPlugin.tsx} | 0 .../index.ts => ClickableLinkPlugin.ts} | 0 .../CodeActionMenuPlugin/CopyButton.tsx | 4 +- .../Plugins/CodeActionMenuPlugin/index.tsx | 4 +- .../index.ts => CodeHighlightPlugin.ts} | 0 .../index.tsx => DraggableBlockPlugin.tsx} | 10 +- ...index.tsx => FloatingLinkEditorPlugin.tsx} | 10 +- ...sx => FloatingTextFormatToolbarPlugin.tsx} | 10 +- .../index.ts => HorizontalRulePlugin.ts} | 0 .../index.tsx => ImagesPlugin.tsx} | 2 +- .../{LinkPlugin/index.tsx => LinkPlugin.tsx} | 2 +- .../index.ts => ListMaxIndentLevelPlugin.ts} | 0 .../index.tsx => TabFocusPlugin.tsx} | 0 .../index.tsx => TablePlugin.tsx} | 4 +- src/Lexical/Plugins/ToolbarPlugin/Font.tsx | 2 +- src/Lexical/Plugins/ToolbarPlugin/index.tsx | 8 +- .../{Themes/LexEditorTheme.ts => Theme.ts} | 6 +- src/Lexical/UI/ContentEditable.tsx | 4 +- src/Lexical/UI/ImageResizer.tsx | 4 +- src/Lexical/UI/Placeholder.tsx | 4 +- src/Lexical/index.tsx | 7 +- src/Pages/Admin/Nav.tsx | 4 +- src/Pages/Admin/Order/List.tsx | 4 +- src/Pages/Admin/Order/index.tsx | 4 +- src/Pages/Admin/Product/Add.tsx | 13 +- src/Pages/Admin/Product/Combo/Detail.tsx | 4 +- src/Pages/Admin/Product/Combo/New.tsx | 4 +- src/Pages/Admin/Product/Combo/index.tsx | 4 +- src/Pages/Admin/Product/Delete.tsx | 35 +- src/Pages/Admin/Product/Detail.tsx | 16 +- src/Pages/Admin/Product/Lexical.tsx | 102 + src/Pages/Admin/Product/Photo/Edit.tsx | 10 +- src/Pages/Admin/Product/Photo/index.tsx | 24 +- src/Pages/Admin/Product/Row.tsx | 69 + .../Admin/Product/Variant/Edit/index.tsx | 2 +- src/Pages/Admin/Product/Variant/index.tsx | 4 +- src/Pages/Admin/Product/index.tsx | 88 +- src/Pages/Admin/User/index.tsx | 36 +- src/Pages/Admin/index.tsx | 8 +- src/Pages/Gallery/index.tsx | 2 +- src/Pages/History/Detail.tsx | 4 +- src/Pages/History/index.tsx | 4 +- src/Pages/Product/Carousel.tsx | 17 +- src/Pages/Product/Context.tsx | 12 +- src/Pages/Product/Lexical.tsx | 22 +- src/Pages/Product/Quantity.tsx | 4 +- src/Pages/Product/RadioGroup.tsx | 4 +- src/Pages/Product/index.tsx | 38 +- src/Pages/index.tsx | 4 +- src/ShopNet/Admin/AdminNet.ts | 24 +- src/ShopNet/Admin/Order/Entity.ts | 4 +- src/ShopNet/Admin/Order/Get.ts | 22 +- src/ShopNet/Admin/Product/Delete.ts | 5 +- src/ShopNet/Admin/Product/Get.ts | 72 +- src/ShopNet/Admin/Product/Post.ts | 29 +- src/ShopNet/Admin/User/Entity.ts | 2 +- src/ShopNet/Admin/User/Get.ts | 3 +- src/ShopNet/Gallery/Get.ts | 5 +- src/ShopNet/Order/Entity.ts | 4 +- src/ShopNet/Order/Get.ts | 22 +- src/ShopNet/Product/Data.ts | 75 + src/ShopNet/Product/Entity.ts | 60 - src/ShopNet/Product/Get.ts | 99 +- src/ShopNet/Product/demo.json | 196 -- src/ShopNet/SignalR.ts | 94 +- src/ShopNet/Table.ts | 23 +- src/ShopNet/User/Get.tsx | 52 +- src/ShopNet/User/Post.ts | 10 +- vite.config.ts | 3 +- 92 files changed, 1789 insertions(+), 1717 deletions(-) delete mode 100644 public/systems-logo.png delete mode 100644 src/Components/DataGrid/Delegate.tsx create mode 100644 src/Lexical/Lazy.tsx rename src/Lexical/Plugins/{AutoLinkPlugin/index.tsx => AutoLinkPlugin.tsx} (100%) rename src/Lexical/Plugins/{ClickableLinkPlugin/index.ts => ClickableLinkPlugin.ts} (100%) rename src/Lexical/Plugins/{CodeHighlightPlugin/index.ts => CodeHighlightPlugin.ts} (100%) rename src/Lexical/Plugins/{DraggableBlockPlugin/index.tsx => DraggableBlockPlugin.tsx} (98%) rename src/Lexical/Plugins/{FloatingLinkEditorPlugin/index.tsx => FloatingLinkEditorPlugin.tsx} (96%) rename src/Lexical/Plugins/{FloatingTextFormatToolbarPlugin/index.tsx => FloatingTextFormatToolbarPlugin.tsx} (97%) rename src/Lexical/Plugins/{HorizontalRulePlugin/index.ts => HorizontalRulePlugin.ts} (100%) rename src/Lexical/Plugins/{ImagesPlugin/index.tsx => ImagesPlugin.tsx} (99%) rename src/Lexical/Plugins/{LinkPlugin/index.tsx => LinkPlugin.tsx} (80%) rename src/Lexical/Plugins/{ListMaxIndentLevelPlugin/index.ts => ListMaxIndentLevelPlugin.ts} (100%) rename src/Lexical/Plugins/{TabFocusPlugin/index.tsx => TabFocusPlugin.tsx} (100%) rename src/Lexical/Plugins/{TablePlugin/index.tsx => TablePlugin.tsx} (97%) rename src/Lexical/{Themes/LexEditorTheme.ts => Theme.ts} (98%) create mode 100644 src/Pages/Admin/Product/Lexical.tsx create mode 100644 src/Pages/Admin/Product/Row.tsx create mode 100644 src/ShopNet/Product/Data.ts delete mode 100644 src/ShopNet/Product/Entity.ts delete mode 100644 src/ShopNet/Product/demo.json diff --git a/TSystems.LoveOTC/AdminHub/Product/Get.cs b/TSystems.LoveOTC/AdminHub/Product/Get.cs index b25f716..bdc1c7f 100644 --- a/TSystems.LoveOTC/AdminHub/Product/Get.cs +++ b/TSystems.LoveOTC/AdminHub/Product/Get.cs @@ -7,18 +7,30 @@ internal partial class AdminHub { * * @author Aloento * @since 0.1.0 + * @version 2.0.0 + * + */ + public Task ProductGetList() => + this.Db.Products + .Select(x => x.ProductId) + .ToArrayAsync(); + + /** + * + * @author Aloento + * @since 1.2.0 * @version 1.0.0 * */ - public async Task ProductGetList() => + public async Task ProductGetCount(uint prodId) => await this.Db.Products + .Where(x => x.ProductId == prodId) .Select(x => new { - x.ProductId, Variant = x.Variants.Count, Combo = x.Combos.Count, Stock = x.Combos.Sum(s => s.Stock) }) - .ToArrayAsync(); + .SingleOrDefaultAsync(); /** * diff --git a/TSystems.LoveOTC/AdminHub/Product/Post.cs b/TSystems.LoveOTC/AdminHub/Product/Post.cs index 4c0956f..f4b7a9f 100644 --- a/TSystems.LoveOTC/AdminHub/Product/Post.cs +++ b/TSystems.LoveOTC/AdminHub/Product/Post.cs @@ -23,7 +23,7 @@ public async Task ProductPostCreate(string name) { if (!valid.IsValid(name)) throw new HubException(valid.FormatErrorMessage("Name")); - if (await this.Db.Products.AnyAsync(x => EF.Functions.Like(x.Name, name))) + if (await this.Db.Products.AnyAsync(x => EF.Functions.ILike(x.Name, name))) throw new HubException($"Product {name} already exist"); var temp = await this.Db.Products.AddAsync(new() { @@ -184,11 +184,11 @@ public async Task ProductPostType(uint variantId, string name) { */ public async Task ProductPostCombo(uint prodId, Dictionary combo, ushort stock) { var variTypesDb = (await this.Db.Products - .Include(x => x.Variants) - .ThenInclude(x => x.Types) - .Where(x => x.ProductId == prodId) - .SelectMany(x => x.Variants) - .ToDictionaryAsync(k => k.Name, v => v.Types.ToImmutableArray())) + .Include(x => x.Variants) + .ThenInclude(x => x.Types) + .Where(x => x.ProductId == prodId) + .SelectMany(x => x.Variants) + .ToDictionaryAsync(k => k.Name, v => v.Types.ToImmutableArray())) .ToImmutableSortedDictionary(); var reqCombo = combo.ToImmutableSortedDictionary(); @@ -230,4 +230,22 @@ public async Task ProductPostCombo(uint prodId, Dictionary await this.Db.SaveChangesAsync(); return temp.Entity.ComboId; } + + /** + * + * @author Aloento + * @since 1.2.0 + * @version 0.1.0 + * + */ + public async Task ProductPostDescription(uint prodId, string? desc) { + desc = desc?.Normalize().Trim(); + + var row = await this.Db.Products + .Where(x => x.ProductId == prodId) + .ExecuteUpdateAsync(x => + x.SetProperty(p => p.Description, desc)); + + return row > 0; + } } diff --git a/TSystems.LoveOTC/Hub/Product/Entity.cs b/TSystems.LoveOTC/Hub/Product/Entity.cs index 34c7a08..81805ef 100644 --- a/TSystems.LoveOTC/Hub/Product/Entity.cs +++ b/TSystems.LoveOTC/Hub/Product/Entity.cs @@ -7,7 +7,7 @@ internal partial class ShopHub { * * @author Aloento * @since 0.5.0 - * @version 0.1.0 + * @version 0.2.0 * */ public async Task ProductEntity(uint key, uint? version) { @@ -23,6 +23,29 @@ internal partial class ShopHub { .Select(x => new { x.Name, Category = x.Category!.Name, + x.Version + }) + .SingleOrDefaultAsync(); + } + + /** + * + * @author Aloento + * @since 1.2.0 + * @version 1.0.0 + * + */ + public async Task LexicalEntity(uint key, uint? version) { + if (version is not null) { + var noChange = await this.Db.Products + .AnyAsync(x => x.ProductId == key && x.Version == version); + + if (noChange) return true; + } + + return await this.Db.Products + .Where(x => x.ProductId == key) + .Select(x => new { x.Description, x.Version }) diff --git a/TSystems.LoveOTC/TSystems.LoveOTC.csproj b/TSystems.LoveOTC/TSystems.LoveOTC.csproj index 84873dc..ebe4c79 100644 --- a/TSystems.LoveOTC/TSystems.LoveOTC.csproj +++ b/TSystems.LoveOTC/TSystems.LoveOTC.csproj @@ -26,16 +26,16 @@ - - - - - + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/package.json b/package.json index a50588c..ca705f4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "loveotc", "private": true, - "version": "1.2.0", + "version": "1.3.0", "type": "module", "author": { "name": "Aloento", @@ -15,30 +15,31 @@ "update": "npx npm-check-updates -u" }, "dependencies": { - "@fluentui/react-components": "^9.44.0", - "@fluentui/react-hooks": "^8.6.34", - "@fluentui/react-icons": "^2.0.224", - "@griffel/react": "^1.5.19", - "@lexical/clipboard": "^0.12.5", - "@lexical/code": "^0.12.5", - "@lexical/file": "^0.12.5", - "@lexical/html": "^0.12.5", - "@lexical/link": "^0.12.5", - "@lexical/list": "^0.12.5", - "@lexical/mark": "^0.12.5", - "@lexical/markdown": "^0.12.5", - "@lexical/overflow": "^0.12.5", - "@lexical/react": "^0.12.5", - "@lexical/rich-text": "^0.12.5", - "@lexical/selection": "^0.12.5", - "@lexical/table": "^0.12.5", - "@lexical/utils": "^0.12.5", + "@fluentui/react-components": "^9.44.4", + "@fluentui/react-hooks": "^8.6.35", + "@fluentui/react-icons": "^2.0.225", + "@griffel/react": "^1.5.20", + "@lexical/clipboard": "0.10.0", + "@lexical/code": "0.10.0", + "@lexical/file": "0.10.0", + "@lexical/html": "0.10.0", + "@lexical/link": "0.10.0", + "@lexical/list": "0.10.0", + "@lexical/mark": "0.10.0", + "@lexical/markdown": "0.10.0", + "@lexical/overflow": "0.10.0", + "@lexical/react": "0.10.0", + "@lexical/rich-text": "0.10.0", + "@lexical/selection": "0.10.0", + "@lexical/table": "0.10.0", + "@lexical/utils": "0.10.0", "@microsoft/signalr": "^8.0.0", "@microsoft/signalr-protocol-msgpack": "^8.0.0", "ahooks": "^3.7.8", "dayjs": "^1.11.10", "dexie": "^3.2.4", - "lexical": "^0.12.5", + "dexie-react-hooks": "^1.1.7", + "lexical": "0.10.0", "lodash-es": "^4.17.21", "oidc-client-ts": "^2.4.0", "react": "^18.2.0", @@ -50,7 +51,7 @@ }, "devDependencies": { "@types/lodash-es": "^4.17.12", - "@types/react": "^18.2.47", + "@types/react": "^18.2.48", "@types/react-dom": "^18.2.18", "@vitejs/plugin-react-swc": "^3.5.0", "typescript": "^5.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7f90571..4b82062 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,59 +6,59 @@ settings: dependencies: '@fluentui/react-components': - specifier: ^9.44.0 - version: 9.44.0(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + specifier: ^9.44.4 + version: 9.44.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) '@fluentui/react-hooks': - specifier: ^8.6.34 - version: 8.6.34(@types/react@18.2.47)(react@18.2.0) + specifier: ^8.6.35 + version: 8.6.35(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-icons': - specifier: ^2.0.224 - version: 2.0.224(react@18.2.0) + specifier: ^2.0.225 + version: 2.0.225(react@18.2.0) '@griffel/react': - specifier: ^1.5.19 - version: 1.5.19(react@18.2.0) + specifier: ^1.5.20 + version: 1.5.20(react@18.2.0) '@lexical/clipboard': - specifier: ^0.12.5 - version: 0.12.5(lexical@0.12.5) + specifier: 0.10.0 + version: 0.10.0(lexical@0.10.0) '@lexical/code': - specifier: ^0.12.5 - version: 0.12.5(lexical@0.12.5) + specifier: 0.10.0 + version: 0.10.0(lexical@0.10.0) '@lexical/file': - specifier: ^0.12.5 - version: 0.12.5(lexical@0.12.5) + specifier: 0.10.0 + version: 0.10.0(lexical@0.10.0) '@lexical/html': - specifier: ^0.12.5 - version: 0.12.5(lexical@0.12.5) + specifier: 0.10.0 + version: 0.10.0(lexical@0.10.0) '@lexical/link': - specifier: ^0.12.5 - version: 0.12.5(lexical@0.12.5) + specifier: 0.10.0 + version: 0.10.0(lexical@0.10.0) '@lexical/list': - specifier: ^0.12.5 - version: 0.12.5(lexical@0.12.5) + specifier: 0.10.0 + version: 0.10.0(lexical@0.10.0) '@lexical/mark': - specifier: ^0.12.5 - version: 0.12.5(lexical@0.12.5) + specifier: 0.10.0 + version: 0.10.0(lexical@0.10.0) '@lexical/markdown': - specifier: ^0.12.5 - version: 0.12.5(@lexical/clipboard@0.12.5)(@lexical/selection@0.12.5)(lexical@0.12.5) + specifier: 0.10.0 + version: 0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(lexical@0.10.0) '@lexical/overflow': - specifier: ^0.12.5 - version: 0.12.5(lexical@0.12.5) + specifier: 0.10.0 + version: 0.10.0(lexical@0.10.0) '@lexical/react': - specifier: ^0.12.5 - version: 0.12.5(lexical@0.12.5)(react-dom@18.2.0)(react@18.2.0)(yjs@13.6.10) + specifier: 0.10.0 + version: 0.10.0(lexical@0.10.0)(react-dom@18.2.0)(react@18.2.0)(yjs@13.6.10) '@lexical/rich-text': - specifier: ^0.12.5 - version: 0.12.5(@lexical/clipboard@0.12.5)(@lexical/selection@0.12.5)(@lexical/utils@0.12.5)(lexical@0.12.5) + specifier: 0.10.0 + version: 0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(@lexical/utils@0.10.0)(lexical@0.10.0) '@lexical/selection': - specifier: ^0.12.5 - version: 0.12.5(lexical@0.12.5) + specifier: 0.10.0 + version: 0.10.0(lexical@0.10.0) '@lexical/table': - specifier: ^0.12.5 - version: 0.12.5(lexical@0.12.5) + specifier: 0.10.0 + version: 0.10.0(lexical@0.10.0) '@lexical/utils': - specifier: ^0.12.5 - version: 0.12.5(lexical@0.12.5) + specifier: 0.10.0 + version: 0.10.0(lexical@0.10.0) '@microsoft/signalr': specifier: ^8.0.0 version: 8.0.0 @@ -74,9 +74,12 @@ dependencies: dexie: specifier: ^3.2.4 version: 3.2.4 + dexie-react-hooks: + specifier: ^1.1.7 + version: 1.1.7(@types/react@18.2.48)(dexie@3.2.4)(react@18.2.0) lexical: - specifier: ^0.12.5 - version: 0.12.5 + specifier: 0.10.0 + version: 0.10.0 lodash-es: specifier: ^4.17.21 version: 4.17.21 @@ -107,8 +110,8 @@ devDependencies: specifier: ^4.17.12 version: 4.17.12 '@types/react': - specifier: ^18.2.47 - version: 18.2.47 + specifier: ^18.2.48 + version: 18.2.48 '@types/react-dom': specifier: ^18.2.18 version: 18.2.18 @@ -124,8 +127,8 @@ devDependencies: packages: - /@babel/runtime@7.23.7: - resolution: {integrity: sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==} + /@babel/runtime@7.23.8: + resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 @@ -348,10 +351,10 @@ packages: '@floating-ui/utils': 0.2.1 dev: false - /@floating-ui/devtools@0.0.1(@floating-ui/dom@1.5.4): - resolution: {integrity: sha512-itUtNTkiHPfvRDOrAFKLCYEEZ3PrSIir44El6AoBBl7IbmciAx4CxXVfIWjSCIZdZnHFaeXg6vIfEukqC3Z6bw==} + /@floating-ui/devtools@0.2.1(@floating-ui/dom@1.5.4): + resolution: {integrity: sha512-8PHJLbD6VhBh+LJ1uty/Bz30qs02NXCE5u8WpOhSewlYXUWl03GNXknr9AS2yaAWJEQaY27x7eByJs44gODBcw==} peerDependencies: - '@floating-ui/dom': '>=1.0.0 <2.0.0' + '@floating-ui/dom': '>=1.5.4' dependencies: '@floating-ui/dom': 1.5.4 dev: false @@ -367,10 +370,10 @@ packages: resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} dev: false - /@fluentui/dom-utilities@2.2.13: - resolution: {integrity: sha512-mIb1njyLp1sIwZsokHCfqbdgbA1YRHO/BQ5NwIrNH44sp6hWo1d3Ytu2FoQebPU+caIniAXIsTzpa1AsfeOPgQ==} + /@fluentui/dom-utilities@2.2.14: + resolution: {integrity: sha512-+4DVm5sNfJh+l8fM+7ylpOkGNZkNr4X1z1uKQPzRJ1PRhlnvc6vLpWNNicGwpjTbgufSrVtGKXwP5sf++r81lg==} dependencies: - '@fluentui/set-version': 8.2.13 + '@fluentui/set-version': 8.2.14 tslib: 2.6.2 dev: false @@ -380,10 +383,10 @@ packages: '@swc/helpers': 0.5.3 dev: false - /@fluentui/merge-styles@8.5.14: - resolution: {integrity: sha512-OrFEizI56NwO7C9zpEx04WYfrqPmPCWXNtNlXaCd3VW7/MNPQm2wpYqOF2b3xlP5Tnzn6/+w+XR2ym0vLIdM6g==} + /@fluentui/merge-styles@8.5.15: + resolution: {integrity: sha512-4CdKwo4k1Un2QLulpSVIz/KMgLNBMgin4NPyapmKDMVuO1OOxJUqfocubRGNO5x9mKgAMMYwBKGO9i0uxMMpJw==} dependencies: - '@fluentui/set-version': 8.2.13 + '@fluentui/set-version': 8.2.14 tslib: 2.6.2 dev: false @@ -393,50 +396,50 @@ packages: '@swc/helpers': 0.5.3 dev: false - /@fluentui/react-accordion@9.3.33(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-q9ilcvUrAp1CyvA8MRaGFnDChHoCHPpMvWbe16mhRsj7qqJQk0xuypwV2qqe6gk6DE20qTGMKa0zip1k1Y/Y6g==} + /@fluentui/react-accordion@9.3.36(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-t1Q9SI5P1x53SF7stmpI7mauPd24mV+XqOOHY2htqR+vIa6n+gTLvvFe8qwPLsfK8kkyISzCaP1yHriPV9GqUQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.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 dependencies: - '@fluentui/react-aria': 9.6.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-context-selector': 9.1.45(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-aria': 9.7.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-context-selector': 9.1.47(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scheduler: 0.20.2 dev: false - /@fluentui/react-alert@9.0.0-beta.98(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-M9O4ZlmjU7CtpUtGDbyNFSM36vKIgJOorVPNBlBaDDCLuhH/GK6FaAHMB0IibdbzPZywfRAbQhETVZ9+MErrjA==} + /@fluentui/react-alert@9.0.0-beta.102(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-ZIbeW4Di1oJqPe87fFOciA57WZfFsTz8pBnI5n0x+jFl9tAnbp4FCWQHlatVf7rOkixet72ym0M9pSD1ez3U9A==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-avatar': 9.6.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-button': 9.3.60(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-avatar': 9.6.7(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-button': 9.3.63(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -444,162 +447,163 @@ packages: - scheduler dev: false - /@fluentui/react-aria@9.6.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-fT8acsy6J8w5zAOkMy4a4TI855xbs3Q9U0iBCWPf+2S9FjmaapNezu8PQ0czAdWmDaXltxsqfTSc+EoABC6i0Q==} + /@fluentui/react-aria@9.7.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-LuupqbV/6ZWd/6t8xIKa/yg8CbIvp98T1GYw/eyseDk26dBvNY0Ue11O5Z5uN3fwVCR1a92cO0aFyPcv4fmaHA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-avatar@9.6.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-1FhC1TgI9sc4oCHh2ewDhDut3h34/V7+TZOnLRsM6sA7XmtxURDUQeylKhaDYak603wYVBrwhYroqgruZCwOCg==} + /@fluentui/react-avatar@9.6.7(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-8eZn9muu8a30v/C+ygZShpAQpTUefH+C4sW4hSUbuIIdalpU/CGkAe9iDLO+8dMxGQCXx1Y873ipNRsyDBCrLg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.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 dependencies: - '@fluentui/react-badge': 9.2.18(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-context-selector': 9.1.45(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-popover': 9.8.27(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-badge': 9.2.20(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-context-selector': 9.1.47(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-popover': 9.8.31(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-tooltip': 9.4.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-tooltip': 9.4.9(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scheduler: 0.20.2 dev: false - /@fluentui/react-badge@9.2.18(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-m3pjCRGR6VRpJtB/5kOzx8tLCGjcuS1LbmtAH7TX7WYIpdoPM5WC/IC76At6tbD3i2MQPH5G0YaI6IeLhq8S0w==} + /@fluentui/react-badge@9.2.20(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-6qLLEr1D/ZXwF7kBXb+iOh2Cke+0N2tJXCxYoLUEjtOlUDHvEMl32oO5b8WQZMVGGQCTGY192LxT8vAPqxREyg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-breadcrumb@9.0.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-4+NSit1tfWUntEuDAOz+4c6ryJbYhccXgazZGBgiT+mvD8GqZ4psIoHjDnGK+XiFPpcIoNXA+hSM2MyQ/1KHMg==} + /@fluentui/react-breadcrumb@9.0.9(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-xNOGoVHGihjfFeio9FhE2urYE+aRKjqkYDRTqZu9dWwRnjhAO90V9QXztTgJjxPCf+PYNzJH/39Sm0NKOxynyg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-aria': 9.6.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-button': 9.3.60(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-link': 9.2.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-aria': 9.7.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-button': 9.3.63(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-link': 9.2.5(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-button@9.3.60(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-9LoWMfClmNzJDw75HfhHtnG5pu0ZYY7T1rbEnrjk7X5M248hSqBwWeyfmSXEEfBKPTG1FZdf1qI9PaMueMpkvA==} + /@fluentui/react-button@9.3.63(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Yw+LwQMEnXUMpHKjpW1aRC7RqSfcpWK4ytS0SPiu1TrFuvc/3meCPsXnIYhdlZrlBeRQdNucSaWNGBHAUmGt9w==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.6.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-aria': 9.7.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-card@9.0.59(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Xa6T3zXCBqnveZz/PMWYDbBsLy8YceXJ/GPq/VnKIGBNgVdXcKct586JmpcUL3ZIaIYNy6vv6SI1/N6v9O+7ZA==} + /@fluentui/react-card@9.0.62(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PIYrhwTN+LbMf3dOQviOQLulOwyUa8QwXCL/ISSdrqb4AQcGA7ldcBxvRNi/XXw/Z+Z6Pxj2h1fkT5vtlow7Yg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-checkbox@9.2.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-BPhf/hO2KGRSE7j+mgEyd7loxG2KoRhHKb3a0E/8RjlgGtSgbFYcvLLMw0K6B0KzWEr7Pwb6KdJGcA40QhvPOQ==} + /@fluentui/react-checkbox@9.2.6(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-4P+YqtByqb41EhyWwQaizyc+lBtFj7e4ufcn6xLYbMI6bKrvODN1vsk1XbzFGxP18aWp2Ivf4d0INIlmR1T21w==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.46(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-label': 9.1.54(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-field': 9.1.48(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-label': 9.1.56(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -607,140 +611,141 @@ packages: - scheduler dev: false - /@fluentui/react-combobox@9.5.37(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-yAmIwmNDsJKDtn/HPYlO1NjYwdp/PZ1o5AUVJwX0rQd7zLmjQFWg1fYQez7k1Aa4TMIpaZ+qRu+qOXrf3wB+Dw==} + /@fluentui/react-combobox@9.6.0(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-nPqM7qhyDpv5KjD70IUosi1vkFlunxPYTopi0imc8MJLnRzp2yhkuL8+lLUTfVLFy3T4ZVrWBoOhpy2Fu+YBHQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.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 dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-context-selector': 9.1.45(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-field': 9.1.46(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-portal': 9.4.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-positioning': 9.10.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-context-selector': 9.1.47(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-field': 9.1.48(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-portal': 9.4.8(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-positioning': 9.12.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scheduler: 0.20.2 dev: false - /@fluentui/react-components@9.44.0(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-CCV3aYBNLpTC+/6VcSBHoJwfmNbZOpbUN7i+biGmzrRbVvDrkta9CksgCQ6E4vXAM5tcQFSEP9iq3rRG3Zur9A==} + /@fluentui/react-components@9.44.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-a4PT8/fz6BtRHKRZWO0j9DxYLpU9ms3kGQ/xbRLRf5R4jL2GOD2ZZPnWS9wAYaOu9HBoUMM6fVuLNoISwfjOGQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.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 dependencies: - '@fluentui/react-accordion': 9.3.33(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-alert': 9.0.0-beta.98(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-avatar': 9.6.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-badge': 9.2.18(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-breadcrumb': 9.0.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-button': 9.3.60(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-card': 9.0.59(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-checkbox': 9.2.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-combobox': 9.5.37(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-dialog': 9.9.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-divider': 9.2.54(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-drawer': 9.0.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-field': 9.1.46(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-image': 9.1.51(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-infobutton': 9.0.0-beta.82(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-infolabel': 9.0.10(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-input': 9.4.56(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-label': 9.1.54(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-link': 9.2.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-menu': 9.12.39(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-message-bar': 9.0.11(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-overflow': 9.1.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-persona': 9.2.62(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-popover': 9.8.27(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-portal': 9.4.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-positioning': 9.10.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-progress': 9.1.56(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-provider': 9.13.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-radio': 9.1.61(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-select': 9.1.56(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-skeleton': 9.0.44(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-slider': 9.1.61(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-spinbutton': 9.2.56(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-spinner': 9.3.34(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-switch': 9.1.61(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-table': 9.10.17(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-tabs': 9.4.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-tags': 9.0.16(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-text': 9.4.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-textarea': 9.3.56(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-accordion': 9.3.36(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-alert': 9.0.0-beta.102(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-avatar': 9.6.7(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-badge': 9.2.20(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-breadcrumb': 9.0.9(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-button': 9.3.63(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-card': 9.0.62(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-checkbox': 9.2.6(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-combobox': 9.6.0(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-dialog': 9.9.5(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-divider': 9.2.56(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-drawer': 9.0.9(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-field': 9.1.48(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-image': 9.1.53(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-infobutton': 9.0.0-beta.86(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-infolabel': 9.0.14(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-input': 9.4.58(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-label': 9.1.56(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-link': 9.2.5(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-menu': 9.12.43(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-message-bar': 9.0.14(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-overflow': 9.1.6(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-persona': 9.2.66(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-popover': 9.8.31(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-portal': 9.4.8(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-positioning': 9.12.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-progress': 9.1.58(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-provider': 9.13.6(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-radio': 9.2.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-select': 9.1.58(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-skeleton': 9.0.46(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-slider': 9.1.63(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-spinbutton': 9.2.58(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-spinner': 9.3.36(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-switch': 9.1.63(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-table': 9.11.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-tabs': 9.4.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-tags': 9.0.20(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-text': 9.4.5(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-textarea': 9.3.58(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-toast': 9.3.22(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-toolbar': 9.1.61(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-tooltip': 9.4.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-tree': 9.4.19(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-virtualizer': 9.0.0-alpha.62(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-toast': 9.3.25(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-toolbar': 9.1.64(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-tooltip': 9.4.9(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-tree': 9.4.23(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-virtualizer': 9.0.0-alpha.64(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scheduler: 0.20.2 dev: false - /@fluentui/react-context-selector@9.1.45(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-lmfu8WlcQ/6LN+ecLgf1hZlFj5CPD+lMc5C/ATeoaC3cxGV8IzlIBqYUr5Eo2DHu8rxGi/4jfQTfq6Mv4dEsYw==} + /@fluentui/react-context-selector@9.1.47(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-sjI2tu8ELjna1oIIgWc4Xa/pF9fTnaA27DtlcqZnAPInv/UyHbsZCE0V4jc3NQMBofWKpK2gypXtEGHmTCYsFg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.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 dependencies: - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scheduler: 0.20.2 dev: false - /@fluentui/react-dialog@9.9.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-jGe9qSNFoT4BriufBGBtkd3Z33ZI8kyoUoQbEFAGv5V01VOLpiuHG0EO6hWPVDQWQ2HO9edgsXaCumVwDDhy6Q==} + /@fluentui/react-dialog@9.9.5(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-TADvVSw0rP+dI/keaLNZ+dMbqYdkIHR4D/Uu7sBjIyaaJtGvb/oNeDtNjk2BXO6ObaAGnQvxs6AJkJQ1mvklkg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.6.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-context-selector': 9.1.45(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-portal': 9.4.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-aria': 9.7.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-context-selector': 9.1.47(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-portal': 9.4.8(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -749,44 +754,44 @@ packages: - scheduler dev: false - /@fluentui/react-divider@9.2.54(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-byEm1pjhla4e2ulWe9fo4L5+VDsVMYPKnoF6lpVcYJ89m5oUL3l6M7apFX4pPHGYai2S680OzQ0etrgVh0d1rw==} + /@fluentui/react-divider@9.2.56(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-5QTzBltI+WGgLGfQYjmk7YfzR1zIIUhS2Pz+RUriBmovAijJRWNX3Wa4NUcTiP/sQJden0cKxHKNbHzoofOcLg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-drawer@9.0.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-sC3LJSs1nBI8g7M5UXz4sdvu1K0mpfr8wadggC6km3IOcet3rCXjeuuvwiUBXcIpyPq/ZVHGJguzW3ofsm4olA==} + /@fluentui/react-drawer@9.0.9(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-uF4EpNFKiKbPVcpdFM/j4XhAI4Aj0nbve8aARlD3WgCsmPjKEhIsfRY6o1qxdrAbhbb/s6ZvhUa+SuhoE9dQlA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-dialog': 9.9.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-motion-preview': 0.5.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-dialog': 9.9.5(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-motion-preview': 0.5.8(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -794,23 +799,23 @@ packages: - scheduler dev: false - /@fluentui/react-field@9.1.46(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-+Xg1fB0uc81SVhpvcE8iedVyKqPmaXyoRtH6+RgGkjkpikMSsych8dHdto3PElm9asnCFFk3UesLmhJBzF5UxQ==} + /@fluentui/react-field@9.1.48(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-J8TUP730WDlyPXbea1m13aB4seDUIxeLAEZyFYx2igmSzCnA8LTAtsOyqHFC8EcR1/twmIB+jdD1XG7n9JpR2g==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-context-selector': 9.1.45(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-label': 9.1.54(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-context-selector': 9.1.47(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-label': 9.1.56(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -818,68 +823,68 @@ packages: - scheduler dev: false - /@fluentui/react-hooks@8.6.34(@types/react@18.2.47)(react@18.2.0): - resolution: {integrity: sha512-FtfvsOHuNz4JfmACAUpJKyh/62i14s5K8lk4GGoe4soETyaKAlmYX9HbBOrFi9FkKk6scrFytLCViQ8sR15bDA==} + /@fluentui/react-hooks@8.6.35(@types/react@18.2.48)(react@18.2.0): + resolution: {integrity: sha512-mgjOXCIZ18AuTYfVgnRDQnpa1i6xUl0KaqiYD3CheHZENZ+7Wap5Roi3v3itgVRR/vdfwdTeGF6/bZLGh2cluA==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/react-window-provider': 2.2.17(@types/react@18.2.47)(react@18.2.0) - '@fluentui/set-version': 8.2.13 - '@fluentui/utilities': 8.13.22(@types/react@18.2.47)(react@18.2.0) - '@types/react': 18.2.47 + '@fluentui/react-window-provider': 2.2.18(@types/react@18.2.48)(react@18.2.0) + '@fluentui/set-version': 8.2.14 + '@fluentui/utilities': 8.13.23(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 react: 18.2.0 tslib: 2.6.2 dev: false - /@fluentui/react-icons@2.0.224(react@18.2.0): - resolution: {integrity: sha512-ld03dlc1pG7xeTQsK1y5in19jkMtWHNaoktFv+e7NV2xmrgV/SgPyyjEXbMrQHb8Naea/XCoCpNHnUNCy68akw==} + /@fluentui/react-icons@2.0.225(react@18.2.0): + resolution: {integrity: sha512-L9phN3bAMlZCa5+/ObGjIO+5GI8M50ym766sraSq92jaJwgAXrCJDLWuDGWZRGrC63DcagtR2culptj3q7gMMg==} peerDependencies: react: '>=16.8.0 <19.0.0' dependencies: - '@griffel/react': 1.5.19(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) react: 18.2.0 tslib: 2.6.2 dev: false - /@fluentui/react-image@9.1.51(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-xnqNSzLQWlMObHoJ5WU71WpYn6G4c1980Var6KmYQrhHa5KXRHiPZxpVnZ+mMA9dGUyPQUtpkYhRaqZvEJOl3w==} + /@fluentui/react-image@9.1.53(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-kw9SU6bnzyIxzkAZIvgJK+jSlvOa5U5wR6D6ZmAdKZD9P9b2CryhUPK3nRzwm5dEgl3iChPRpu3pLSqXpnlj/Q==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-infobutton@9.0.0-beta.82(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-/fxZqCf0BWdoROFjFM89MKZf7QRY6RtH83B2ilEV5+kpOhUoSXkdqfUZJH4uDfn692VTz0nv3BccGQqQ0jzhEA==} + /@fluentui/react-infobutton@9.0.0-beta.86(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-nzo1rBNDyFHwa4Ik4W+AnzwE2ua6+5uQxH2OQTLS4PlGnIycaecGgjZBRr0Kk8vO5fAPrBtbEAPVAdxMj54SvQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-label': 9.1.54(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-popover': 9.8.27(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-label': 9.1.56(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-popover': 9.8.31(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -887,24 +892,24 @@ packages: - scheduler dev: false - /@fluentui/react-infolabel@9.0.10(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-eew3xNv8imNog7+Hl3DaTJo2MRAFVGHVBbt7GxrT7Y6iLVYqmaGu4cw0Ha/mGkMdHRkmm9G4XiXx8f4Fc+lkaA==} + /@fluentui/react-infolabel@9.0.14(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-MOEi5Tat2XLz3CnUuZBkwAAFK6sPqmwX04gT9cRpg917yE2zv8RTolh+Png8Ah14Gtg+H7fN3Xe+3XmEVJiE9w==} 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' dependencies: - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-label': 9.1.54(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-popover': 9.8.27(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-label': 9.1.56(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-popover': 9.8.31(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -912,22 +917,22 @@ packages: - scheduler dev: false - /@fluentui/react-input@9.4.56(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-pivB62nd02ow19RLF1IwbMsrs2pC3yVJQ0WMoA/7Ub2bnrUFeDo9JfrRtn+i8A79afvHJUy0GgPeTTgmLYEClQ==} + /@fluentui/react-input@9.4.58(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-MC114o+qKDXhP+KZydubcTrUSDu8DywYn3oV+QS6HCNGReTIO0M+hygGKqHYEHCvyMOEb/K/oLyUlZZdXoWdrQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.46(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-field': 9.1.48(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -935,172 +940,172 @@ packages: - scheduler dev: false - /@fluentui/react-jsx-runtime@9.0.23(@types/react@18.2.47)(react@18.2.0): - resolution: {integrity: sha512-yD1X7wPHqIjdajQJyaOoHqV3PygXWk6sme2jtxy8nlikfPcC4gDj20csTZG1yuXmaS+feXw80cNMpCha0AeKGA==} + /@fluentui/react-jsx-runtime@9.0.25(@types/react@18.2.48)(react@18.2.0): + resolution: {integrity: sha512-FPWYfA2OLzlpAOYLdeS9oEENGCcD5kW1Bn7EQcgA1AJVHxHfcZqRqojhGGQcTh08Xh8tPMF2cLIzXiGuxdcr9w==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' react: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 react-is: 17.0.2 dev: false - /@fluentui/react-label@9.1.54(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-68Ot8W0hV+YNr7oTjeHZ7vTiRUkdZlAF2p0ZyPnRwUcqWEYpJFvMqDD+0VA5jXwpnPod0PdQHw884uApWb+PxQ==} + /@fluentui/react-label@9.1.56(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-q7mo8bpc3JEUCl0yarwYYCeVUypfmfQ6OJbJhT+WNUITz7jhOkHCMCsWb9BNoyVBEMBGrypV/LqAqyDQykgDCw==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-link@9.2.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-LjD1D+lXQLltcwHdYTEfYmVhiUURhpROucFHdT+2hqER9lT95gX8jhAM3xbZ1HMiwziafZ8yGqUmN7N+VwrGaw==} + /@fluentui/react-link@9.2.5(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-p5dz5EigggczOwuQqAU9stfp5CkPcYxMemWj2aizrUKJdMfpLY2FqBTlnCUmIIn2ZTjkJaUeD4xE6W/bMsFyiA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-menu@9.12.39(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-KaiCtD8KHw+AnqlU2tta4wUk3uwxu8z+ljKChI2L1zx30vZ5NjME5SIF8WasZKOQiCGXpi0Ql/DZlrv0vnNyEw==} + /@fluentui/react-menu@9.12.43(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-2B2TCJ9C3AtWuwxo2wPA4iIFDLL2swgFMrRIN/itZWGWmcuznt+yydZhNXxR7kPb97onOOia0UG4PeynwHQEzA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.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 dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.6.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-context-selector': 9.1.45(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-portal': 9.4.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-positioning': 9.10.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-aria': 9.7.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-context-selector': 9.1.47(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-portal': 9.4.8(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-positioning': 9.12.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scheduler: 0.20.2 dev: false - /@fluentui/react-message-bar@9.0.11(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-re88ZQniGMIzOnpKrulQL2WQyIg+RTF3Qr//EQvELxlh40esZGWKFp0Fc5v0u+nREiy1HLXQo8m/3m6j08/DVQ==} + /@fluentui/react-message-bar@9.0.14(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OOAepPTnd40QOIT/eAABTbk309gnBDV0i6jBz5Oz4FOcikBvWVcvtKri8RjOAo7a+d7MFOg4vFu/3n8cbOg5rg==} 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' dependencies: - '@fluentui/react-button': 9.3.60(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-button': 9.3.63(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) dev: false - /@fluentui/react-motion-preview@0.5.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-4nU3EJsKGf93yr6WZxjPT6mbFOQBGcTlgHr82tv7NvRzumBfGZFwInGYJ9W3bxYWwSop7TjsVnjVwgcCfeYgLQ==} + /@fluentui/react-motion-preview@0.5.8(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-cNh9HGsH/bLrFG+IXIdsFHSQKErE0dtnZrjYTHYjbDIjo0AnUTT3N9jBCuMppfri6kiVbd14L6fnppthEYs1hQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-overflow@9.1.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-mZVadbUg6ehqmBS6c9CKwv8XcXgAZY+WqtitrUWVV3udxdQnX6yDyzrDoy8/BP4GAZhrBCjpTrjG/UseW6v5Zw==} + /@fluentui/react-overflow@9.1.6(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-kBDBQan7aDWvZJIYxXoNtUXOR4JsetaMxzNjM8DZfHC3k5k9E/jftxEughDRCA4TGirNQSsR02VPXl3DhZ35ng==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.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 dependencies: '@fluentui/priority-overflow': 9.1.11 - '@fluentui/react-context-selector': 9.1.45(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-context-selector': 9.1.47(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scheduler: 0.20.2 dev: false - /@fluentui/react-persona@9.2.62(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-6P7UULP0xv+LjBbdNWdAjCkimFH9QjLx0AvmCmEZ+Lpz45vOg5kFheLHLfckHZS08gFmJ4mqiaF6gAEuvLWYVQ==} + /@fluentui/react-persona@9.2.66(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-mcGSPuzAvCI9gvwjG6r/7A9bl4qBNtK4gKoRjC8Kh212cRNyN9np6oumFZs8OfYrcIgFl/P43K6bKx2Z+dW9zw==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-avatar': 9.6.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-badge': 9.2.18(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-avatar': 9.6.7(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-badge': 9.2.20(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1108,91 +1113,91 @@ packages: - scheduler dev: false - /@fluentui/react-popover@9.8.27(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-ET6/oSmGKEj4FPpD43U1YIi6r43mRzhdGeuxyxmEhL7Jnw4ZZG3oGLWsLAbAdE/g+1e+/gDH8zM7lCbJLE7uaw==} + /@fluentui/react-popover@9.8.31(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-Av8X2QfZwg8rSZdC5mehEHOCzrLOy24/hdQMiRcEAXR1wiJgJrVnOx7GObGADzP2lCYa0+KoGJ2H4LA8FBSc3g==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.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 dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.6.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-context-selector': 9.1.45(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-portal': 9.4.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-positioning': 9.10.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-aria': 9.7.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-context-selector': 9.1.47(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-portal': 9.4.8(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-positioning': 9.12.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scheduler: 0.20.2 dev: false - /@fluentui/react-portal@9.4.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-dU1pzOb2X8qLYqaNhjtceErbzHlH72n2eByBpT6fv1H3C2CaoI/yuqxpcYFXgGTXWQNEg0ZpKSlIeIF5ZqUa8A==} + /@fluentui/react-portal@9.4.8(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-aXeoTBMi/+1lLOHD1e1InTZuVYUt8ZQ34IxXASaF4w7qbBHGeaCB9wMzSPu5d3jpUWhM1iRXVJngYdio5zFKsQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - use-disposable: 1.0.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + use-disposable: 1.0.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) dev: false - /@fluentui/react-positioning@9.10.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-skx1hrhyPsvGiA3rIWNP8tWAJGfoN54FVUYXxUPDn0UTJPZTU0Y14zaqvtaJAlu8hQL6LtKtiYugOfS5jh+bVg==} + /@fluentui/react-positioning@9.12.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lBlnyf3NAaX6bYq0PI5Ifie9/km68CtZywMvgHprZE9UkBZbGFwQLzemxQkAYoYhwXoebaQA5a5ODwDbUvwPWg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@floating-ui/devtools': 0.0.1(@floating-ui/dom@1.5.4) + '@floating-ui/devtools': 0.2.1(@floating-ui/dom@1.5.4) '@floating-ui/dom': 1.5.4 - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-progress@9.1.56(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-aMF1oCDFunDh1+Y01Vyra4uF7NwfMTyDv7i2A5LFaWzaEG9DkW0h6O6YQD+o5P1CaA20mKbuFAdm2Gguw3GiSg==} + /@fluentui/react-progress@9.1.58(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-eemljzCw/dIpyHVaeMtTep9gmoa43fJ91wJ29g9/u5ZkmIrtfbCkWmTtdk5NbnvSRQK1Kdk08dxZsIuzm/lbmA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.46(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-field': 9.1.48(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1200,72 +1205,71 @@ packages: - scheduler dev: false - /@fluentui/react-provider@9.13.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-+W89xQQI8aZ2ix6+SRTt0mgU9G/f3piaXL9gpxteWvWvZLTDHQVxhVzeLLtKoQoT3umD5ir5qZLDO4UrSYePhw==} + /@fluentui/react-provider@9.13.6(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-i7dDEc28xQKGD/5pFZYZEY+v/u2sGs5x8sTH/cuW0kA6PuU8OQxcwTtRo7NA1JoUWvPaRNJD+8AVhZmh/CZCpQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/core': 1.15.1 - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/core': 1.15.2 + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-radio@9.1.61(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-A7oYGB871eN+Xw0EJN6SF+SwVUCdODH3AvxTMF3ogGe2fHNjS7y6rtRgHKkxZPtrFjMMED8uMONyHRLCiz/Jog==} + /@fluentui/react-radio@9.2.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-iw3QASrgfCaGkSCJDZ1KowJUIhj7eMAx91rOu1x3uzPUyRFo/P7nqYPWg+pTZmZdphjItCpcE4L09VxQ7+Y6tw==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.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 dependencies: - '@fluentui/react-field': 9.1.46(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-label': 9.1.54(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-field': 9.1.48(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-label': 9.1.56(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scheduler: 0.20.2 dev: false - /@fluentui/react-select@9.1.56(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-QaDG2ytCig6ELeYx4+Qcvgn0hEtK+SlctunkHLhk+1CgKBbY+ENSDuBqrJakXH69ypylKqULz4doqGxFxtCS1w==} + /@fluentui/react-select@9.1.58(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-/4LBOZhAfKfus+6mf09fAAVZlHaKz9hawnRgYeENIC7/ZqWQe8ea5m+xZj9MTsjXzFLmdmzItuz6e360g0Xepg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.46(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-field': 9.1.48(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1273,7 +1277,7 @@ packages: - scheduler dev: false - /@fluentui/react-shared-contexts@9.13.2(@types/react@18.2.47)(react@18.2.0): + /@fluentui/react-shared-contexts@9.13.2(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-78aEZdff7vaUOmeRyMDPc/Ml+kbwn02BiRLPQhqgYtCyjy0V3YBpmYfqxO8N5hUIZcFTedyOaHWpzVeEYxpNmA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' @@ -1281,26 +1285,26 @@ packages: dependencies: '@fluentui/react-theme': 9.1.16 '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 dev: false - /@fluentui/react-skeleton@9.0.44(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-CEW+nF82SXD4EmbjylUs2OXoPXE1bShlKtYNQmQvJuLBKNNXQ/MYJwOME4gYm87YWuQDcTWIruz2tkKyZc63MQ==} + /@fluentui/react-skeleton@9.0.46(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-LshgVaBg1JjlzpgB5eUJZC965uX9nbEeXacFdxY+X9D457Hu68j+muNOUQ1RHB32ZrMIxukGfseWt0+Wz+j4QQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.46(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-field': 9.1.48(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1308,23 +1312,23 @@ packages: - scheduler dev: false - /@fluentui/react-slider@9.1.61(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-iEPyjiLrYimHHnjZ5y6m8dxGxKdqs1/ycKT9dSJBLUEckKutQQf+Ur8N+bh9Sfw4EWcz5B2q8vtPZAYw1mA8hA==} + /@fluentui/react-slider@9.1.63(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-8toNPnd5HpM6TK/uxDTHmgznk4fw4AaSbIRBYGhnUpu5n+IbqIkEZ00q4Wb+/m2G7BOVYz2PTpv1NRRoaf0GGQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.46(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-field': 9.1.48(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1332,24 +1336,24 @@ packages: - scheduler dev: false - /@fluentui/react-spinbutton@9.2.56(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-hveoXrz208cNbjPNrQXLo5ON0F5Qzx0k40nNco0DvtS0XUXsrozRtB7FlfbOuQCSjFgic4IxMcjjvNqs/I3t9A==} + /@fluentui/react-spinbutton@9.2.58(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-5oheMykqKizeldgwNectm/n/JW9DsryVEiGdW4Ag59EZL9QP8534s33L4RyyHnq/ta2QBVycGZmKad2dC50wMw==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-field': 9.1.46(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-field': 9.1.48(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1357,46 +1361,46 @@ packages: - scheduler dev: false - /@fluentui/react-spinner@9.3.34(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-121lwx6cZz3eB31LHW8NCdgYGb5I4HEjVWq/2b0vJZjwdcGNdhxOW82qSQUBkJu58WMblnr7GvEJcIunV95urQ==} + /@fluentui/react-spinner@9.3.36(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-t5+zKCa8ZIYDVdYNSGxisMjLCZgYJiRV8Gd+FYRnhK+WRKJFqGK/VYctEyJsf41FoEtKuK/lN6Y/sUq4xqhB2g==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-label': 9.1.54(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-label': 9.1.56(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-switch@9.1.61(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-NEU9fLG6a3d+nQbhL68szWg5AMzkx+pbMffAaPmA/yjdffgv6C98oE4Wf6cH7SPO1uIJpFyshgfI+G/6dvPRDg==} + /@fluentui/react-switch@9.1.63(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-FmnaWyykRPKnQIfVICdRo6pcP4gQ85rHs/JDRwewgPrFOu00N/u2MvW4X7M1Kc0eMKyCDjgwKaSQJGyHVkXmaw==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.46(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-label': 9.1.54(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-field': 9.1.48(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-label': 9.1.56(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1404,29 +1408,29 @@ packages: - scheduler dev: false - /@fluentui/react-table@9.10.17(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-iXHkkqhgVDWc3UBZKW6bKRNVc7uMYeD8jnjMSmNq0Z0W0b2spRJS7dbw0WEThENG41qJrzE/9MbhxDyC/kRrUg==} + /@fluentui/react-table@9.11.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-RsRqvg1zGnNpSQO7xYTscc/YUsbF3Ir2EJj6d6GhZQMb7nf+EJJJLf6uP9hKMVCu8sK5JAhz+M17+9wDmnvlvQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.6.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-avatar': 9.6.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-checkbox': 9.2.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-context-selector': 9.1.45(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-radio': 9.1.61(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-aria': 9.7.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-avatar': 9.6.7(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-checkbox': 9.2.6(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-context-selector': 9.1.47(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-radio': 9.2.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1434,71 +1438,71 @@ packages: - scheduler dev: false - /@fluentui/react-tabs@9.4.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-G9S//+M8JK36ZNtuV+u1f/gK4xlDQdnO7/haxwqaGE2zejSvEAaZpnm56aWmj+H8j6KDiN99/6AQwmJiHnxpOQ==} + /@fluentui/react-tabs@9.4.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-pboxo0Uxp7NIpwlybc0POAoQKt/SDSSYz8Y79wdxzEGr7IEXrj/q43GY7venkgN8vMQQ4RUyq62TrkS2KyPGTA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.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 dependencies: - '@fluentui/react-context-selector': 9.1.45(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-context-selector': 9.1.47(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scheduler: 0.20.2 dev: false - /@fluentui/react-tabster@9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-j5yxvt5HglW48Q/0rktGHSAb9q4FQsn6y9pwdAKpo8b0HcUsaNMCtV4d5afyGbDy4S0cAfb3Kmab3o0MOnrNiw==} + /@fluentui/react-tabster@9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-T3ETXTjZ196zeT1vTgI0/BlKyDXMwksZk9rhJySsrfHB9Zit9Y35HXF1GM+OqEVM4z5xW1ukEWq88R3mZ116tw==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 - keyborg: 2.4.0 + keyborg: 2.4.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) tabster: 5.2.0 dev: false - /@fluentui/react-tags@9.0.16(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-UiCybb9C+32oQZaGf2LYqTexiM/83SF2HjefiPUc3ch5P+lc11BEPJMPhjXzw4+zR+63QUmbM6fLKl92FM7t1Q==} + /@fluentui/react-tags@9.0.20(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-BAT6iJCPj+0qmI9PSdXN2TwvlKdR2Hetl/oE6aNQJYrqRdqQu4dwBZuuqdH7Dc2ej86070fefBZu+xSZxnjptg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.6.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-avatar': 9.6.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-aria': 9.7.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-avatar': 9.6.7(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1506,42 +1510,42 @@ packages: - scheduler dev: false - /@fluentui/react-text@9.4.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-H+o2UH8YIRTe4JgtipTZ3P5CD0eTqrr0KMZpxbhoKjkRD2qf7ReyfT4pLksqKnMWEvJE3H9jRE51nXKSwUenaQ==} + /@fluentui/react-text@9.4.5(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-t2Ixri15Q/cFXR+0p5vrqXTLo7dUZ0tdbyUSSWjSSqCqBFrfJAL1gVMFw8MfO88je/cpqU03DaYwFYezuI6CEw==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-textarea@9.3.56(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-RUVSD3qkre/9Bk9HaAxwSsNtefnG3LdiLSwoMAFrISLBcYLEwCVnGuxa6EShE4GAen9mveFwDdgdgg9q90D5nA==} + /@fluentui/react-textarea@9.3.58(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-YJRVCb50HK0WpmTBRUL7lUXOZhCzJpA7owFM3/pDOWIXGoVaXlvXcVSRYMIFSlJa4hMweGtlZncnY/9/r3+35w==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.46(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-field': 9.1.48(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1556,52 +1560,52 @@ packages: '@swc/helpers': 0.5.3 dev: false - /@fluentui/react-toast@9.3.22(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Gd80WwSbwlSTVa0NKQViAaQOQz2hRcmrfmP8ey3YkmYthNs68UsVol9rFXrYvAJHPh3nfvJoOagjGiwWWLShpQ==} + /@fluentui/react-toast@9.3.25(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-CUVl1d4D8uvLt+yOyceJkbQSqC327gCQ4Ytr1uh3VogOMXIj0j3guAJ3MDGsRvGBRp6EoehrXFvIqCmgfkTQKA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.6.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-portal': 9.4.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-aria': 9.7.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-portal': 9.4.8(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) dev: false - /@fluentui/react-toolbar@9.1.61(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-qNxrIQOhcAy0X2My5V2qLakeVb1jz5zSuEmCElq2I3aNgeKUz0Hc9dtz7xaigwJxdeyQtgITVEYajDWbBj8wRw==} + /@fluentui/react-toolbar@9.1.64(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-zUjcqdn2Vf0AhstlMx35r75nKUuWM+sM0ox/fjd5WKSRLGjiJtgTIb3X5iRPBoRGLMyAchMrDRFDlhEwV13yBg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-button': 9.3.60(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-context-selector': 9.1.45(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-divider': 9.2.54(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-radio': 9.1.61(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-button': 9.3.63(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-context-selector': 9.1.47(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-divider': 9.2.56(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-radio': 9.2.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1609,54 +1613,54 @@ packages: - scheduler dev: false - /@fluentui/react-tooltip@9.4.5(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1ReMfM3ghqvFBMXlT9qzMAKyQ21WUTePsE6eUvtNSYTjAo9AP/kjUNLs4PyYWF7ttcgNjqKVOMUohCfTS3YHqw==} + /@fluentui/react-tooltip@9.4.9(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-02KKSv23L1ZshmCQj7Zeol1V2Vh8cil75K+zVFFrBOpseUCzpC34ito6YXWNCxOr8CAlLpxZozEBzL8Fy7OjEQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-portal': 9.4.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-positioning': 9.10.6(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-portal': 9.4.8(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-positioning': 9.12.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-tree@9.4.19(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): - resolution: {integrity: sha512-zJRjjx8xPSG2rR149/pHSwUu4J8BllzZK5htQcPjtbSDO6isnBBx0yUT5ly1M5vLkXO3GkjTNpw6uD6t7RtThQ==} + /@fluentui/react-tree@9.4.23(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2): + resolution: {integrity: sha512-ehccDPZUywGavPlgH6AbNnOXKp40VlTOVkDSS7k3j3eImFcK28yjy46IUB5YblUZPdU6QMXop3CkJX2/Q8fR3g==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.6.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-avatar': 9.6.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-button': 9.3.60(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@fluentui/react-checkbox': 9.2.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-context-selector': 9.1.45(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-icons': 2.0.224(react@18.2.0) - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-radio': 9.1.61(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-tabster': 9.16.1(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-aria': 9.7.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-avatar': 9.6.7(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-button': 9.3.63(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@fluentui/react-checkbox': 9.2.6(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-context-selector': 9.1.47(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-icons': 2.0.225(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-radio': 9.2.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.20.2) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-tabster': 9.17.1(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@fluentui/react-theme': 9.1.16 - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1664,52 +1668,52 @@ packages: - scheduler dev: false - /@fluentui/react-utilities@9.15.5(@types/react@18.2.47)(react@18.2.0): - resolution: {integrity: sha512-5kNL5SgsrT4680OkfH50vOGQv7m3tZBEFDeWItPsrIIrfbcycAlApYdhDSzMT+VMKLxd4JU2uGCd1a5cn0IqKw==} + /@fluentui/react-utilities@9.15.6(@types/react@18.2.48)(react@18.2.0): + resolution: {integrity: sha512-Hli0iiA/gaWwADMe7NRD6TSy7KvL3bgek8j1sYkE9BiUI89GqyfJwU2Tm0it04iiCYvQ5WWrXPcRYyZ3/MHtpA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' react: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 dev: false - /@fluentui/react-virtualizer@9.0.0-alpha.62(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-HOcH6kyumgFijLSeM3v4otRqFRvNjw217bFSEiCfO5xBMKqa5kzLDzOaiUQYwaPC9CV7FUoYkTwQ06IIOqTpOA==} + /@fluentui/react-virtualizer@9.0.0-alpha.64(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QEoBUI6FMwWhG6U4688SbSCtRFV2nuqpM9O2+5QWhzv+TTdPj0VGHqEOBy0XmsNot/UivusNfi94AVQ3s4aSTA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' - '@types/react-dom': '>=16.14.0 <19.0.0' + '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-jsx-runtime': 9.0.23(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.47)(react@18.2.0) - '@fluentui/react-utilities': 9.15.5(@types/react@18.2.47)(react@18.2.0) - '@griffel/react': 1.5.19(react@18.2.0) + '@fluentui/react-jsx-runtime': 9.0.25(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-shared-contexts': 9.13.2(@types/react@18.2.48)(react@18.2.0) + '@fluentui/react-utilities': 9.15.6(@types/react@18.2.48)(react@18.2.0) + '@griffel/react': 1.5.20(react@18.2.0) '@swc/helpers': 0.5.3 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@fluentui/react-window-provider@2.2.17(@types/react@18.2.47)(react@18.2.0): - resolution: {integrity: sha512-MFaeF/hJGoXiJXjkRZ41IQmYyEnU3uCyNtoaT6YlzAE3KAMV4SvGzcSXVbgx1ZPMXMSnAJt12qX02F5XEBusbA==} + /@fluentui/react-window-provider@2.2.18(@types/react@18.2.48)(react@18.2.0): + resolution: {integrity: sha512-nBKqxd0P8NmIR0qzFvka1urE2LVbUm6cse1I1T7TcOVNYa5jDf5BrO06+JRZfwbn00IJqOnIVoP0qONqceypWQ==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/set-version': 8.2.13 - '@types/react': 18.2.47 + '@fluentui/set-version': 8.2.14 + '@types/react': 18.2.48 react: 18.2.0 tslib: 2.6.2 dev: false - /@fluentui/set-version@8.2.13: - resolution: {integrity: sha512-xzfxKGNP/N8/hWayv32Jt6EhP7XOe0myFb2R15ll2xUnLypdLVj85y3nfu4EJb+jsTvev8uHEiz540KcZ+6EOg==} + /@fluentui/set-version@8.2.14: + resolution: {integrity: sha512-f/QWJnSeyfAjGAqq57yjMb6a5ejPlwfzdExPmzFBuEOuupi8hHbV8Yno12XJcTW4I0KXEQGw+PUaM1aOf/j7jw==} dependencies: tslib: 2.6.2 dev: false @@ -1720,212 +1724,211 @@ packages: '@swc/helpers': 0.5.3 dev: false - /@fluentui/utilities@8.13.22(@types/react@18.2.47)(react@18.2.0): - resolution: {integrity: sha512-iYVtMOl8DGrXl6Wke/ft1S31VeegW2aNLpPdF/iqanv/zejm4Z7JDrGpXDf4wjEQKzlK/XNDjBiQssM6MUsKAQ==} + /@fluentui/utilities@8.13.23(@types/react@18.2.48)(react@18.2.0): + resolution: {integrity: sha512-7ikkRzYL6UmcrYNVoGWSkMSjtwG4H+bGSOS67c0Ob2xqoPt/yX6CMflf8Ak+LMRmZfZ8S43wJRgHqHhgVhl4lA==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/dom-utilities': 2.2.13 - '@fluentui/merge-styles': 8.5.14 - '@fluentui/set-version': 8.2.13 - '@types/react': 18.2.47 + '@fluentui/dom-utilities': 2.2.14 + '@fluentui/merge-styles': 8.5.15 + '@fluentui/set-version': 8.2.14 + '@types/react': 18.2.48 react: 18.2.0 tslib: 2.6.2 dev: false - /@griffel/core@1.15.1: - resolution: {integrity: sha512-09w5axbOJuBzjTVFN5EycbAOIpCoxZeoJMZgT2fTrIl2GIxnTWpK3F2d63UzGBmQf1O+EgR6nK4FgMXFt1UFig==} + /@griffel/core@1.15.2: + resolution: {integrity: sha512-RlsIXoSS3gaYykUgxFpwKAs/DV9cRUKp3CW1kt3iPAtsDTWn/o+8bT1jvBws/tMM2GBu/Uc0EkaIzUPqD7uA+Q==} dependencies: '@emotion/hash': 0.9.1 - '@griffel/style-types': 1.0.2 + '@griffel/style-types': 1.0.3 csstype: 3.1.3 rtl-css-js: 1.16.1 stylis: 4.3.1 tslib: 2.6.2 dev: false - /@griffel/react@1.5.19(react@18.2.0): - resolution: {integrity: sha512-qefnZseAwcwCpFVzN33mG20t/hofpWci7VNtOwzSco/IxFLuJaB2ffki+uAdUgWCpV2A67bWQjXNlymBoMUysg==} + /@griffel/react@1.5.20(react@18.2.0): + resolution: {integrity: sha512-1P2yaPctENFSCwyPIYXBmgpNH68c0lc/jwSzPij1QATHDK1AASKuSeq6hW108I67RKjhRyHCcALshdZ3GcQXSg==} peerDependencies: react: '>=16.8.0 <19.0.0' dependencies: - '@griffel/core': 1.15.1 + '@griffel/core': 1.15.2 react: 18.2.0 tslib: 2.6.2 dev: false - /@griffel/style-types@1.0.2: - resolution: {integrity: sha512-ka/Tpl1WU8js88LObwB/4EvpgXzx/EEJfbHhAr4ZNt29hrQKgL93X1zSY6M/FRhMhWrGIawauWkZP6/y6w/WiQ==} + /@griffel/style-types@1.0.3: + resolution: {integrity: sha512-AzbbYV/EobNIBtfMtyu2edFin895gjVxtu1nsRhTETUAIb0/LCZoue3Jd/kFLuPwe95rv5WRUBiQpVwJsrrFcw==} dependencies: csstype: 3.1.3 dev: false - /@lexical/clipboard@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-A0k0g5mCHDgROLF33TwiKdjMWEfajyPcIF64lsHapZ19ZTi1iabGkXvpHnyHaMq79py1Se/e6tOcmFe9nOJkrQ==} + /@lexical/clipboard@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-k1n93NQdTrGHFMQQ1NxD/G13uoTEBHKOqjgSAV3I3pQjG57zO51LsMjBxgR9BChVI1DotnQ/JQCbx2HCQkCeng==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - '@lexical/html': 0.12.5(lexical@0.12.5) - '@lexical/list': 0.12.5(lexical@0.12.5) - '@lexical/selection': 0.12.5(lexical@0.12.5) - '@lexical/utils': 0.12.5(lexical@0.12.5) - lexical: 0.12.5 + '@lexical/html': 0.10.0(lexical@0.10.0) + '@lexical/list': 0.10.0(lexical@0.10.0) + '@lexical/selection': 0.10.0(lexical@0.10.0) + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 dev: false - /@lexical/code@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-YV879sO2C0efWXgj4ZUzpowPWxbid8T5I0vysQIzuWPiaQG0fjilz1maYV+X95hD2VXW8yhyOnEdScfeKk62Zg==} + /@lexical/code@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-ZEeoAtj/nXWmmN0Ol4lXSEAtxQozdDd/5I9P23Z4Leobg1YioZBDKwodM/TEITxrFme/cLgk3XCK1N2h2Noakw==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - '@lexical/utils': 0.12.5(lexical@0.12.5) - lexical: 0.12.5 + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 prismjs: 1.29.0 dev: false - /@lexical/dragon@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-RFU6wIIUS0/ab5JtLp2rKaUi7nltDT96+GdmvNVHpAfa7TZuepYsoi7PtZB9aF/Outye4U7dQU2tNwesDBf8kg==} + /@lexical/dragon@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-LBRkUW4NadFFQN9BIL3nz51AtPl1nSzRas61ob+hueSbovgr/+k9QGjLD1L7FIKnna2qzRlJjoI70Ll/V3fiCQ==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - lexical: 0.12.5 + lexical: 0.10.0 dev: false - /@lexical/file@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-/+SI+8x4x2if1Jm7290YQ/MREiP4adYRiEZykQyJWXo101ZdpKl+hs9MyOKcU35aJpPGEGZnqXNzgeu4bBBTEA==} + /@lexical/file@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-/lVAkIfANHdnrFzhcZfyBGBxIEoWj9q5qP7r8sEgHRRnYjmvp2IexGZB1qv7xTL3JfDTB4hoSsv7uGnFNib0tg==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - lexical: 0.12.5 + lexical: 0.10.0 dev: false - /@lexical/hashtag@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-nlPFScTiuZgUtuBSnRkHK9AuRDV35zZug4JLG1Hkky+Fh1PJ+0MK+/K8mhoatp13zm7GqN2fMOrrUGufqEingw==} + /@lexical/hashtag@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-jy+LssP4ABfwS+bT2KD+W6gWl+dsyFd8Ql27bsfkNoeyIBMeSLRBNBymkkUyZGKfXrbkzMUJoH7Dws/loHY5Ng==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - '@lexical/utils': 0.12.5(lexical@0.12.5) - lexical: 0.12.5 + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 dev: false - /@lexical/history@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-nF5TurEE4qRbuNP/i5pDtVfWHQXb4ONof+MvKmHNfLRJbxSj7Ee33MVG9x851PjAzXoXuGJvw6FMBCasGXQx7A==} + /@lexical/history@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-yu7FruEtOulZliE6nVgvC+GLVHhN15IcLVvKdYIi+QYzkOorKc6miVuGpLvJRHE7VtK0NMWb2ykyYz9gl5jW3Q==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - '@lexical/utils': 0.12.5(lexical@0.12.5) - lexical: 0.12.5 + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 dev: false - /@lexical/html@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-OzsWKVcr9wUGvAbgyUdG+32/cI2RclI4I4JmIyfLbiYMBYdafu+j160cjohNWu9gQFjVFszIjG4CBxfwRM+Sag==} + /@lexical/html@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-zxPbjojLfZXt4Sx6CMi0NzPUrTJG8McXaCsqPKK2GQQnkKfmXLh5QsK7YhofngBDDQOtqVYzTNhrxMWVP1Sm/A==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - '@lexical/selection': 0.12.5(lexical@0.12.5) - '@lexical/utils': 0.12.5(lexical@0.12.5) - lexical: 0.12.5 + '@lexical/selection': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 dev: false - /@lexical/link@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-h7p5G+XXKqNrb4lk55mJL23Us5pz2szbzZevccADJ9Om6o3i4aNyjv1MeC29WXjmgS0YKHDlYcnKEgyAPKvVMw==} + /@lexical/link@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-LehZx9ruUR0UNZmNUMofrgwGkQo75X/yEAHQ/qFXt8Jz0D4g9fS6vsiSVn7BD4XrTdaf2kUaIe0VHScIZPjB0A==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - '@lexical/utils': 0.12.5(lexical@0.12.5) - lexical: 0.12.5 + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 dev: false - /@lexical/list@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-KNJ262krlpcDZ2U1LC8xp86uw2nqt88iEQgpF+khv3SAqqLbhT8tMpyZ6+eWbW3mHPhQIxFutJGazMAqMW3uUA==} + /@lexical/list@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-xoba6e4RUPIOhD0kJ0X1iI8SgOGDNWtyObd/UBbFfAQDx0VETj31Q7PepSPy9OEeuvnF1Nn9pvUeHyG7cNFuHw==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - '@lexical/utils': 0.12.5(lexical@0.12.5) - lexical: 0.12.5 + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 dev: false - /@lexical/mark@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-61ctAYrxTGl4uMDTnE5fRH4yrs8sqnRyivuNWyOmQR6W/G3s0gHwkUZC7akOSnPLYhfnXRl3C4haY8pH93sWQg==} + /@lexical/mark@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-Xo8G8tADlxV9Es5hbca6MfZjOU5mkjZNdbRJ5dy4STNhtl3FcqbVGSAewFibzsKG3x/s8npFDY6nN/k/lkGaRg==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - '@lexical/utils': 0.12.5(lexical@0.12.5) - lexical: 0.12.5 + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 dev: false - /@lexical/markdown@0.12.5(@lexical/clipboard@0.12.5)(@lexical/selection@0.12.5)(lexical@0.12.5): - resolution: {integrity: sha512-F3cBcuhoGWxxCqERUXF4fYfJhceK7gFYQPRsXir5mYriSNZIQIMhJoeAt8Pjer0UjFyQvNfQ+AzzXHu5xYNLLA==} + /@lexical/markdown@0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(lexical@0.10.0): + resolution: {integrity: sha512-P6XT8736DtZoTV6KfO0+FM9pkCbGGk0wCim1HIDc3v2S4r9+Pie/FgOOWSz4jKygjhs/6EYgYJmZKq7G4Fo5WA==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - '@lexical/code': 0.12.5(lexical@0.12.5) - '@lexical/link': 0.12.5(lexical@0.12.5) - '@lexical/list': 0.12.5(lexical@0.12.5) - '@lexical/rich-text': 0.12.5(@lexical/clipboard@0.12.5)(@lexical/selection@0.12.5)(@lexical/utils@0.12.5)(lexical@0.12.5) - '@lexical/text': 0.12.5(lexical@0.12.5) - '@lexical/utils': 0.12.5(lexical@0.12.5) - lexical: 0.12.5 + '@lexical/code': 0.10.0(lexical@0.10.0) + '@lexical/link': 0.10.0(lexical@0.10.0) + '@lexical/list': 0.10.0(lexical@0.10.0) + '@lexical/rich-text': 0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(@lexical/utils@0.10.0)(lexical@0.10.0) + '@lexical/text': 0.10.0(lexical@0.10.0) + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 transitivePeerDependencies: - '@lexical/clipboard' - '@lexical/selection' dev: false - /@lexical/offset@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-K+Mt4tOmwKarsJ1esdqNgN9Ep/JaeFa9ZQ7DKx8KIOkXL35nPb9NXuBvYyJjh1crP/iwsuP15kymgDjxj9ciMw==} + /@lexical/offset@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-vgVmoR7XMjFuQiO6GecLGM/gcNgJlJXitO5uCHARi2yjJDmmCQ07THu5xpfXKXnkJTZXn1VfWWmAGu72Q9fKNw==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - lexical: 0.12.5 + lexical: 0.10.0 dev: false - /@lexical/overflow@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-boP1oTgBbNmbo8+1tgpDAs1P/lbTk4oWZ6x88E9VNVBJSkG2ZrmQKQoJzKzHwpjXbm+Cechf77JxfgTOabzYxw==} + /@lexical/overflow@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-8YfYhjwDGliGzYFyLVH4nCqrgR0p3+vAwEe2WI65HJnPW9TnxRkrak7QkFPTsefiTnb1gnRc+FajP9LfjdQ8YA==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - lexical: 0.12.5 + lexical: 0.10.0 dev: false - /@lexical/plain-text@0.12.5(@lexical/clipboard@0.12.5)(@lexical/selection@0.12.5)(@lexical/utils@0.12.5)(lexical@0.12.5): - resolution: {integrity: sha512-n24aQvTIy4AN+LaoQce6BIuSY4pUshiTp4OpiRh48o5c9NU0DmzEa0l9fBS1GfvjZL9bN5luiINFYn/bMB49nA==} + /@lexical/plain-text@0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(@lexical/utils@0.10.0)(lexical@0.10.0): + resolution: {integrity: sha512-KcjQR+nHvXQDDRZ9bhcLOWfrY47OXcQc1YMx3otHbMPlEC+f/J75DTUyp+V5fry9X8gHDq0iHm+w8hqgh5ii1Q==} peerDependencies: - '@lexical/clipboard': 0.12.5 - '@lexical/selection': 0.12.5 - '@lexical/utils': 0.12.5 - lexical: 0.12.5 + '@lexical/clipboard': 0.10.0 + '@lexical/selection': 0.10.0 + '@lexical/utils': 0.10.0 + lexical: 0.10.0 dependencies: - '@lexical/clipboard': 0.12.5(lexical@0.12.5) - '@lexical/selection': 0.12.5(lexical@0.12.5) - '@lexical/utils': 0.12.5(lexical@0.12.5) - lexical: 0.12.5 + '@lexical/clipboard': 0.10.0(lexical@0.10.0) + '@lexical/selection': 0.10.0(lexical@0.10.0) + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 dev: false - /@lexical/react@0.12.5(lexical@0.12.5)(react-dom@18.2.0)(react@18.2.0)(yjs@13.6.10): - resolution: {integrity: sha512-pAbJQksin223Yp1p1VsPKxkRtSppVij+HcLTzP89q2QuSA0z0p/T+f5jZjs8eV6tecMtmrjizhdLTbk0jkej1w==} + /@lexical/react@0.10.0(lexical@0.10.0)(react-dom@18.2.0)(react@18.2.0)(yjs@13.6.10): + resolution: {integrity: sha512-7Ql/Y3FZSsPSCObT58CYRUd4tQzKL2U8B1xO0KXZBUbj+sO6gpNbc7/Y7MiZwCQzVNwP84j7mwkXQ1EnUBS52A==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 react: '>=17.x' react-dom: '>=17.x' dependencies: - '@lexical/clipboard': 0.12.5(lexical@0.12.5) - '@lexical/code': 0.12.5(lexical@0.12.5) - '@lexical/dragon': 0.12.5(lexical@0.12.5) - '@lexical/hashtag': 0.12.5(lexical@0.12.5) - '@lexical/history': 0.12.5(lexical@0.12.5) - '@lexical/link': 0.12.5(lexical@0.12.5) - '@lexical/list': 0.12.5(lexical@0.12.5) - '@lexical/mark': 0.12.5(lexical@0.12.5) - '@lexical/markdown': 0.12.5(@lexical/clipboard@0.12.5)(@lexical/selection@0.12.5)(lexical@0.12.5) - '@lexical/overflow': 0.12.5(lexical@0.12.5) - '@lexical/plain-text': 0.12.5(@lexical/clipboard@0.12.5)(@lexical/selection@0.12.5)(@lexical/utils@0.12.5)(lexical@0.12.5) - '@lexical/rich-text': 0.12.5(@lexical/clipboard@0.12.5)(@lexical/selection@0.12.5)(@lexical/utils@0.12.5)(lexical@0.12.5) - '@lexical/selection': 0.12.5(lexical@0.12.5) - '@lexical/table': 0.12.5(lexical@0.12.5) - '@lexical/text': 0.12.5(lexical@0.12.5) - '@lexical/utils': 0.12.5(lexical@0.12.5) - '@lexical/yjs': 0.12.5(lexical@0.12.5)(yjs@13.6.10) - lexical: 0.12.5 + '@lexical/clipboard': 0.10.0(lexical@0.10.0) + '@lexical/code': 0.10.0(lexical@0.10.0) + '@lexical/dragon': 0.10.0(lexical@0.10.0) + '@lexical/hashtag': 0.10.0(lexical@0.10.0) + '@lexical/history': 0.10.0(lexical@0.10.0) + '@lexical/link': 0.10.0(lexical@0.10.0) + '@lexical/list': 0.10.0(lexical@0.10.0) + '@lexical/mark': 0.10.0(lexical@0.10.0) + '@lexical/markdown': 0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(lexical@0.10.0) + '@lexical/overflow': 0.10.0(lexical@0.10.0) + '@lexical/plain-text': 0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(@lexical/utils@0.10.0)(lexical@0.10.0) + '@lexical/rich-text': 0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(@lexical/utils@0.10.0)(lexical@0.10.0) + '@lexical/selection': 0.10.0(lexical@0.10.0) + '@lexical/table': 0.10.0(lexical@0.10.0) + '@lexical/text': 0.10.0(lexical@0.10.0) + '@lexical/utils': 0.10.0(lexical@0.10.0) + '@lexical/yjs': 0.10.0(lexical@0.10.0)(yjs@13.6.10) + lexical: 0.10.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-error-boundary: 3.1.4(react@18.2.0) @@ -1933,64 +1936,64 @@ packages: - yjs dev: false - /@lexical/rich-text@0.12.5(@lexical/clipboard@0.12.5)(@lexical/selection@0.12.5)(@lexical/utils@0.12.5)(lexical@0.12.5): - resolution: {integrity: sha512-33R8ODRI5kKGbF70A/FWdISbbSPk+q4hKtiEJaV67zYPBuzrz0YHcni+tgKiykS05LgCksI/e43sfEkiykjrVQ==} + /@lexical/rich-text@0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(@lexical/utils@0.10.0)(lexical@0.10.0): + resolution: {integrity: sha512-mkg+8h5qh09daCc8+PhzHjczSVhlTOkrr8S4oma89mfQZ/CODJYd0tOOd9y/8JaDrBddTqjd4xTjXwEEJzVA4g==} peerDependencies: - '@lexical/clipboard': 0.12.5 - '@lexical/selection': 0.12.5 - '@lexical/utils': 0.12.5 - lexical: 0.12.5 + '@lexical/clipboard': 0.10.0 + '@lexical/selection': 0.10.0 + '@lexical/utils': 0.10.0 + lexical: 0.10.0 dependencies: - '@lexical/clipboard': 0.12.5(lexical@0.12.5) - '@lexical/selection': 0.12.5(lexical@0.12.5) - '@lexical/utils': 0.12.5(lexical@0.12.5) - lexical: 0.12.5 + '@lexical/clipboard': 0.10.0(lexical@0.10.0) + '@lexical/selection': 0.10.0(lexical@0.10.0) + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 dev: false - /@lexical/selection@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-oWJ87T4j6plf2yQzElOeudUyv7kdwTkuhzTZbcCTBNH/cSMdp55/Kv2doBynxhfHYEceuBKE7f8rci//T9DUPQ==} + /@lexical/selection@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-dziT1fb+/x8S3PUHI6BuF4DPML2njCDdyY7l9uTgzN9jGXxo9bzy+ySgRRN8IgjWQb8jkntAqkYIWTj4/3Jr7Q==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - lexical: 0.12.5 + lexical: 0.10.0 dev: false - /@lexical/table@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-vgSTsjvGw+TrYYBmf3FR0kYJ+j1oOlBmrO1sqvuIrGPXKWmvYL+RbKIkm2xhtApVHVYgqfFvxNiZrPL5Wf9dXg==} + /@lexical/table@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-m0MBma4PNn5VV3yAGFK0iCTCZ5z/VBrZWLGxo3yPnY7FHgtUsDY84xYXziZGeixU+ehiQfsSPWVEGEC+EHFGTg==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - '@lexical/utils': 0.12.5(lexical@0.12.5) - lexical: 0.12.5 + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 dev: false - /@lexical/text@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-PU1ntXQCqon3HTjrEPl/HdKB/boyW36vKgiPvojoaAhBhkEnuiN+Pq9hrexORBcZPyLFp6wYoWXjKSO4fJVYeA==} + /@lexical/text@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-kR/V4KgCIUedjEbdPtIrvsvalETDbAPhCB7HA9MBALYw9FxjXlpYBqP7yY8AxWoYCXMqDtKRu/vmo/OMi3Z8Bw==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - lexical: 0.12.5 + lexical: 0.10.0 dev: false - /@lexical/utils@0.12.5(lexical@0.12.5): - resolution: {integrity: sha512-wPVyvi1Cvtf7aHwVKlG/9RlgHxSUzpGvXm87t889Rg7uZfOteyvXHJStjpSCZ3pvZ60y5ETin4OoetaVZciPfw==} + /@lexical/utils@0.10.0(lexical@0.10.0): + resolution: {integrity: sha512-HrRZBLxZhe5V8+kNH6VZP9pfhQdBwK76KYBjWpCaQWkmeeuLx8clY3O+SMjy1Pu/Pdh80qqtad8bdJ0l2CxMSQ==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 dependencies: - '@lexical/list': 0.12.5(lexical@0.12.5) - '@lexical/selection': 0.12.5(lexical@0.12.5) - '@lexical/table': 0.12.5(lexical@0.12.5) - lexical: 0.12.5 + '@lexical/list': 0.10.0(lexical@0.10.0) + '@lexical/selection': 0.10.0(lexical@0.10.0) + '@lexical/table': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 dev: false - /@lexical/yjs@0.12.5(lexical@0.12.5)(yjs@13.6.10): - resolution: {integrity: sha512-GNiRND/8ePdTWuSDFloPo/1355V0ce6OtH/25qxCq5D9MLNiIkAcwqQfnWFUdOtVMuNJOVc4OfCE9ARCGuEjyQ==} + /@lexical/yjs@0.10.0(lexical@0.10.0)(yjs@13.6.10): + resolution: {integrity: sha512-OV5yLl4XjfDKgRPSb1EyefU7c+MILKZrOzbPlv2xeTgIEd/sJiEszxvJlYsngLLN65wBDNKk90EcCWpH3KLz7A==} peerDependencies: - lexical: 0.12.5 + lexical: 0.10.0 yjs: '>=13.5.22' dependencies: - '@lexical/offset': 0.12.5(lexical@0.12.5) - lexical: 0.12.5 + '@lexical/offset': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 yjs: 13.6.10 dev: false @@ -2024,112 +2027,112 @@ packages: engines: {node: '>= 10'} dev: false - /@rollup/rollup-android-arm-eabi@4.9.4: - resolution: {integrity: sha512-ub/SN3yWqIv5CWiAZPHVS1DloyZsJbtXmX4HxUTIpS0BHm9pW5iYBo2mIZi+hE3AeiTzHz33blwSnhdUo+9NpA==} + /@rollup/rollup-android-arm-eabi@4.9.5: + resolution: {integrity: sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.4: - resolution: {integrity: sha512-ehcBrOR5XTl0W0t2WxfTyHCR/3Cq2jfb+I4W+Ch8Y9b5G+vbAecVv0Fx/J1QKktOrgUYsIKxWAKgIpvw56IFNA==} + /@rollup/rollup-android-arm64@4.9.5: + resolution: {integrity: sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.4: - resolution: {integrity: sha512-1fzh1lWExwSTWy8vJPnNbNM02WZDS8AW3McEOb7wW+nPChLKf3WG2aG7fhaUmfX5FKw9zhsF5+MBwArGyNM7NA==} + /@rollup/rollup-darwin-arm64@4.9.5: + resolution: {integrity: sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.4: - resolution: {integrity: sha512-Gc6cukkF38RcYQ6uPdiXi70JB0f29CwcQ7+r4QpfNpQFVHXRd0DfWFidoGxjSx1DwOETM97JPz1RXL5ISSB0pA==} + /@rollup/rollup-darwin-x64@4.9.5: + resolution: {integrity: sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.4: - resolution: {integrity: sha512-g21RTeFzoTl8GxosHbnQZ0/JkuFIB13C3T7Y0HtKzOXmoHhewLbVTFBQZu+z5m9STH6FZ7L/oPgU4Nm5ErN2fw==} + /@rollup/rollup-linux-arm-gnueabihf@4.9.5: + resolution: {integrity: sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.4: - resolution: {integrity: sha512-TVYVWD/SYwWzGGnbfTkrNpdE4HON46orgMNHCivlXmlsSGQOx/OHHYiQcMIOx38/GWgwr/po2LBn7wypkWw/Mg==} + /@rollup/rollup-linux-arm64-gnu@4.9.5: + resolution: {integrity: sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.4: - resolution: {integrity: sha512-XcKvuendwizYYhFxpvQ3xVpzje2HHImzg33wL9zvxtj77HvPStbSGI9czrdbfrf8DGMcNNReH9pVZv8qejAQ5A==} + /@rollup/rollup-linux-arm64-musl@4.9.5: + resolution: {integrity: sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.4: - resolution: {integrity: sha512-LFHS/8Q+I9YA0yVETyjonMJ3UA+DczeBd/MqNEzsGSTdNvSJa1OJZcSH8GiXLvcizgp9AlHs2walqRcqzjOi3A==} + /@rollup/rollup-linux-riscv64-gnu@4.9.5: + resolution: {integrity: sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.4: - resolution: {integrity: sha512-dIYgo+j1+yfy81i0YVU5KnQrIJZE8ERomx17ReU4GREjGtDW4X+nvkBak2xAUpyqLs4eleDSj3RrV72fQos7zw==} + /@rollup/rollup-linux-x64-gnu@4.9.5: + resolution: {integrity: sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.4: - resolution: {integrity: sha512-RoaYxjdHQ5TPjaPrLsfKqR3pakMr3JGqZ+jZM0zP2IkDtsGa4CqYaWSfQmZVgFUCgLrTnzX+cnHS3nfl+kB6ZQ==} + /@rollup/rollup-linux-x64-musl@4.9.5: + resolution: {integrity: sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.4: - resolution: {integrity: sha512-T8Q3XHV+Jjf5e49B4EAaLKV74BbX7/qYBRQ8Wop/+TyyU0k+vSjiLVSHNWdVd1goMjZcbhDmYZUYW5RFqkBNHQ==} + /@rollup/rollup-win32-arm64-msvc@4.9.5: + resolution: {integrity: sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.4: - resolution: {integrity: sha512-z+JQ7JirDUHAsMecVydnBPWLwJjbppU+7LZjffGf+Jvrxq+dVjIE7By163Sc9DKc3ADSU50qPVw0KonBS+a+HQ==} + /@rollup/rollup-win32-ia32-msvc@4.9.5: + resolution: {integrity: sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.4: - resolution: {integrity: sha512-LfdGXCV9rdEify1oxlN9eamvDSjv9md9ZVMAbNHA87xqIfFCxImxan9qZ8+Un54iK2nnqPlbnSi4R54ONtbWBw==} + /@rollup/rollup-win32-x64-msvc@4.9.5: + resolution: {integrity: sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /@swc/core-darwin-arm64@1.3.102: - resolution: {integrity: sha512-CJDxA5Wd2cUMULj3bjx4GEoiYyyiyL8oIOu4Nhrs9X+tlg8DnkCm4nI57RJGP8Mf6BaXPIJkHX8yjcefK2RlDA==} + /@swc/core-darwin-arm64@1.3.103: + resolution: {integrity: sha512-Dqqz48mvdm/3PHPPA6YeAEofkF9H5Krgqd/baPf0dXcarzng6U9Ilv2aCtDjq7dfI9jfkVCW5zuwq98PE2GEdw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] @@ -2137,8 +2140,8 @@ packages: dev: true optional: true - /@swc/core-darwin-x64@1.3.102: - resolution: {integrity: sha512-X5akDkHwk6oAer49oER0qZMjNMkLH3IOZaV1m98uXIasAGyjo5WH1MKPeMLY1sY6V6TrufzwiSwD4ds571ytcg==} + /@swc/core-darwin-x64@1.3.103: + resolution: {integrity: sha512-mhUVSCEAyFLqtrDtwr9qPbe891J8cKxq53CD873/ZsUnyasHMPyWXzTvy9qjmbYyfDIArm6fGqjF5YsDKwGGNg==} engines: {node: '>=10'} cpu: [x64] os: [darwin] @@ -2146,8 +2149,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm-gnueabihf@1.3.102: - resolution: {integrity: sha512-kJH3XtZP9YQdjq/wYVBeFuiVQl4HaC4WwRrIxAHwe2OyvrwUI43dpW3LpxSggBnxXcVCXYWf36sTnv8S75o2Gw==} + /@swc/core-linux-arm-gnueabihf@1.3.103: + resolution: {integrity: sha512-rYLmwxr01ZHOI6AzooqwB0DOkMm0oU8Jznk6uutV1lHgcwyxsNiC1Css8yf77Xr/sYTvKvuTfBjThqa5H716pA==} engines: {node: '>=10'} cpu: [arm] os: [linux] @@ -2155,8 +2158,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-gnu@1.3.102: - resolution: {integrity: sha512-flQP2WDyCgO24WmKA1wjjTx+xfCmavUete2Kp6yrM+631IHLGnr17eu7rYJ/d4EnDBId/ytMyrnWbTVkaVrpbQ==} + /@swc/core-linux-arm64-gnu@1.3.103: + resolution: {integrity: sha512-w+5XFpUqxiAGUBiyRyYR28Ghddp5uVyo+dHAkCnY1u3V6RsZkY3vRwmoXT7/HxVGV7csodJ1P9Cp9VaRnNvTKA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -2164,8 +2167,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-musl@1.3.102: - resolution: {integrity: sha512-bQEQSnC44DyoIGLw1+fNXKVGoCHi7eJOHr8BdH0y1ooy9ArskMjwobBFae3GX4T1AfnrTaejyr0FvLYIb0Zkog==} + /@swc/core-linux-arm64-musl@1.3.103: + resolution: {integrity: sha512-lS5p8ewAIar7adX6t0OrkICTcw92PXrn3ZmYyG5hvfjUg4RPQFjMfFMDQSne32ZJhGXHBf0LVm1R8wHwkcpwgA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -2173,8 +2176,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-gnu@1.3.102: - resolution: {integrity: sha512-dFvnhpI478svQSxqISMt00MKTDS0e4YtIr+ioZDG/uJ/q+RpcNy3QI2KMm05Fsc8Y0d4krVtvCKWgfUMsJZXAg==} + /@swc/core-linux-x64-gnu@1.3.103: + resolution: {integrity: sha512-Lf2cHDoEPNB6TwexHBEZCsAO2C7beb0YljhtQS+QfjWLLVqCiwt5LRCPuKN2Bav7el9KZXOI5baXedUeFj0oFg==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -2182,8 +2185,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-musl@1.3.102: - resolution: {integrity: sha512-+a0M3CvjeIRNA/jTCzWEDh2V+mhKGvLreHOL7J97oULZy5yg4gf7h8lQX9J8t9QLbf6fsk+0F8bVH1Ie/PbXjA==} + /@swc/core-linux-x64-musl@1.3.103: + resolution: {integrity: sha512-HR1Y9iiLEO3F49P47vjbHczBza9RbdXWRWC8NpcOcGJ4Wnw0c2DLWAh416fGH3VYCF/19EuglLEXhvSj0NXGuA==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -2191,8 +2194,8 @@ packages: dev: true optional: true - /@swc/core-win32-arm64-msvc@1.3.102: - resolution: {integrity: sha512-w76JWLjkZNOfkB25nqdWUNCbt0zJ41CnWrJPZ+LxEai3zAnb2YtgB/cCIrwxDebRuMgE9EJXRj7gDDaTEAMOOQ==} + /@swc/core-win32-arm64-msvc@1.3.103: + resolution: {integrity: sha512-3/GfROD1GPyf2hi6R0l4iZ5nrrKG8IU29hYhZCb7r0ZqhL/58kktVPlkib8X/EAJI8xbhM/NMl76h8ElrnyH5w==} engines: {node: '>=10'} cpu: [arm64] os: [win32] @@ -2200,8 +2203,8 @@ packages: dev: true optional: true - /@swc/core-win32-ia32-msvc@1.3.102: - resolution: {integrity: sha512-vlDb09HiGqKwz+2cxDS9T5/461ipUQBplvuhW+cCbzzGuPq8lll2xeyZU0N1E4Sz3MVdSPx1tJREuRvlQjrwNg==} + /@swc/core-win32-ia32-msvc@1.3.103: + resolution: {integrity: sha512-9ejEFjfgPi0ibNmtuiRbYq9p4RRV6oH1DN9XjkYM8zh2qHlpZHKQZ3n4eHS0VtJO4rEGZxL8ebcnTNs62wqJig==} engines: {node: '>=10'} cpu: [ia32] os: [win32] @@ -2209,8 +2212,8 @@ packages: dev: true optional: true - /@swc/core-win32-x64-msvc@1.3.102: - resolution: {integrity: sha512-E/jfSD7sShllxBwwgDPeXp1UxvIqehj/ShSUqq1pjR/IDRXngcRSXKJK92mJkNFY7suH6BcCWwzrxZgkO7sWmw==} + /@swc/core-win32-x64-msvc@1.3.103: + resolution: {integrity: sha512-/1RvaOmZolXurWAUdnELYynVlFUiT0hj3PyTPoo+YK6+KV7er4EqUalRsoUf3zzGepQuhKFZFDpQn6Xi9kJX1A==} engines: {node: '>=10'} cpu: [x64] os: [win32] @@ -2218,8 +2221,8 @@ packages: dev: true optional: true - /@swc/core@1.3.102: - resolution: {integrity: sha512-OAjNLY/f6QWKSDzaM3bk31A+OYHu6cPa9P/rFIx8X5d24tHXUpRiiq6/PYI6SQRjUPlB72GjsjoEU8F+ALadHg==} + /@swc/core@1.3.103: + resolution: {integrity: sha512-PYtt8KzRXIFDwxeD7BA9ylmXNQ4hRVcmDVuAmL3yvL9rgx7Tn3qn6T37wiMVZnP1OjqGyhuHRPNycd+ssr+byw==} engines: {node: '>=10'} requiresBuild: true peerDependencies: @@ -2231,16 +2234,16 @@ packages: '@swc/counter': 0.1.2 '@swc/types': 0.1.5 optionalDependencies: - '@swc/core-darwin-arm64': 1.3.102 - '@swc/core-darwin-x64': 1.3.102 - '@swc/core-linux-arm-gnueabihf': 1.3.102 - '@swc/core-linux-arm64-gnu': 1.3.102 - '@swc/core-linux-arm64-musl': 1.3.102 - '@swc/core-linux-x64-gnu': 1.3.102 - '@swc/core-linux-x64-musl': 1.3.102 - '@swc/core-win32-arm64-msvc': 1.3.102 - '@swc/core-win32-ia32-msvc': 1.3.102 - '@swc/core-win32-x64-msvc': 1.3.102 + '@swc/core-darwin-arm64': 1.3.103 + '@swc/core-darwin-x64': 1.3.103 + '@swc/core-linux-arm-gnueabihf': 1.3.103 + '@swc/core-linux-arm64-gnu': 1.3.103 + '@swc/core-linux-arm64-musl': 1.3.103 + '@swc/core-linux-x64-gnu': 1.3.103 + '@swc/core-linux-x64-musl': 1.3.103 + '@swc/core-win32-arm64-msvc': 1.3.103 + '@swc/core-win32-ia32-msvc': 1.3.103 + '@swc/core-win32-x64-msvc': 1.3.103 dev: true /@swc/counter@0.1.2: @@ -2281,10 +2284,10 @@ packages: /@types/react-dom@18.2.18: resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} dependencies: - '@types/react': 18.2.47 + '@types/react': 18.2.48 - /@types/react@18.2.47: - resolution: {integrity: sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==} + /@types/react@18.2.48: + resolution: {integrity: sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==} dependencies: '@types/prop-types': 15.7.11 '@types/scheduler': 0.16.8 @@ -2298,7 +2301,7 @@ packages: peerDependencies: vite: ^4 || ^5 dependencies: - '@swc/core': 1.3.102 + '@swc/core': 1.3.103 vite: 5.0.11 transitivePeerDependencies: - '@swc/helpers' @@ -2321,7 +2324,7 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.23.8 '@types/js-cookie': 2.2.7 ahooks-v3-count: 1.0.0 dayjs: 1.11.10 @@ -2349,6 +2352,18 @@ packages: resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} dev: false + /dexie-react-hooks@1.1.7(@types/react@18.2.48)(dexie@3.2.4)(react@18.2.0): + resolution: {integrity: sha512-Lwv5W0Hk+uOW3kGnsU9GZoR1er1B7WQ5DSdonoNG+focTNeJbHW6vi6nBoX534VKI3/uwHebYzSw1fwY6a7mTw==} + peerDependencies: + '@types/react': '>=16' + dexie: ^3.2 || ^4.0.1-alpha + react: '>=16' + dependencies: + '@types/react': 18.2.48 + dexie: 3.2.4 + react: 18.2.0 + dev: false + /dexie@3.2.4: resolution: {integrity: sha512-VKoTQRSv7+RnffpOJ3Dh6ozknBqzWw/F3iqMdsZg958R0AS8AnY9x9d1lbwENr0gzeGJHXKcGhAMRaqys6SxqA==} engines: {node: '>=6.0'} @@ -2357,7 +2372,7 @@ packages: /dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.23.8 csstype: 3.1.3 dev: false @@ -2437,12 +2452,12 @@ packages: resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==} dev: false - /keyborg@2.4.0: - resolution: {integrity: sha512-EixFnyCc6m27NkFwyT5GNNQl+9wiTMePtAvVuKXZpc0CZLLJfJFB3zXGFBGnwtvEXymbJoPWoErzwTpiEQ+Msg==} + /keyborg@2.4.1: + resolution: {integrity: sha512-B9EZwDd36WKlIq6JmimaTsTDx5E0aUqZcxtgTfK66ut1FbRXYhBmiB7Al2qKzB7CCX9C49sTBiiyVzsXCA6J4Q==} dev: false - /lexical@0.12.5: - resolution: {integrity: sha512-ZMqisIxNe+JBqaUa1Qmz7ghpvnmARHxgYz+F0rcXRtSPZtgEL8OT2c9xk8CJ4ccVpf+qRQlONzCEIZfQQHd/RA==} + /lexical@0.10.0: + resolution: {integrity: sha512-/lYJVpjQPOzFVfQWhnxRSP6HHBywiltzx9/pWRsByzXDZL+FTty3yjTsSFiCWy4PoVZaXqH8gYBe9dkxZK7+Hg==} dev: false /lib0@0.2.88: @@ -2561,7 +2576,7 @@ packages: peerDependencies: react: '>=16.13.1' dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.23.8 react: 18.2.0 dev: false @@ -2622,7 +2637,7 @@ packages: react: '>=16.6.0' react-dom: '>=16.6.0' dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.23.8 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -2649,33 +2664,33 @@ packages: resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} dev: false - /rollup@4.9.4: - resolution: {integrity: sha512-2ztU7pY/lrQyXSCnnoU4ICjT/tCG9cdH3/G25ERqE3Lst6vl2BCM5hL2Nw+sslAvAf+ccKsAq1SkKQALyqhR7g==} + /rollup@4.9.5: + resolution: {integrity: sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.4 - '@rollup/rollup-android-arm64': 4.9.4 - '@rollup/rollup-darwin-arm64': 4.9.4 - '@rollup/rollup-darwin-x64': 4.9.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.4 - '@rollup/rollup-linux-arm64-gnu': 4.9.4 - '@rollup/rollup-linux-arm64-musl': 4.9.4 - '@rollup/rollup-linux-riscv64-gnu': 4.9.4 - '@rollup/rollup-linux-x64-gnu': 4.9.4 - '@rollup/rollup-linux-x64-musl': 4.9.4 - '@rollup/rollup-win32-arm64-msvc': 4.9.4 - '@rollup/rollup-win32-ia32-msvc': 4.9.4 - '@rollup/rollup-win32-x64-msvc': 4.9.4 + '@rollup/rollup-android-arm-eabi': 4.9.5 + '@rollup/rollup-android-arm64': 4.9.5 + '@rollup/rollup-darwin-arm64': 4.9.5 + '@rollup/rollup-darwin-x64': 4.9.5 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.5 + '@rollup/rollup-linux-arm64-gnu': 4.9.5 + '@rollup/rollup-linux-arm64-musl': 4.9.5 + '@rollup/rollup-linux-riscv64-gnu': 4.9.5 + '@rollup/rollup-linux-x64-gnu': 4.9.5 + '@rollup/rollup-linux-x64-musl': 4.9.5 + '@rollup/rollup-win32-arm64-msvc': 4.9.5 + '@rollup/rollup-win32-ia32-msvc': 4.9.5 + '@rollup/rollup-win32-x64-msvc': 4.9.5 fsevents: 2.3.3 dev: true /rtl-css-js@1.16.1: resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.23.8 dev: false /rxjs@7.8.1: @@ -2718,7 +2733,7 @@ packages: /tabster@5.2.0: resolution: {integrity: sha512-cSi3a0gGeM9Co/gTKHlhTFfiitwVjcA+kP9lJux0U7QaRrZox1yYrfbwZhJXM7N0fux7BgvCYaOxME5k0EQ0tA==} dependencies: - keyborg: 2.4.0 + keyborg: 2.4.1 tslib: 2.6.2 dev: false @@ -2758,7 +2773,7 @@ packages: requires-port: 1.0.0 dev: false - /use-disposable@1.0.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /use-disposable@1.0.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UMaXVlV77dWOu4GqAFNjRzHzowYKUKbJBQfCexvahrYeIz4OkUYUjna4Tjjdf92NH8Nm8J7wEfFRgTIwYjO5jg==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' @@ -2766,7 +2781,7 @@ packages: react: '>=16.8.0 <19.0.0' react-dom: '>=16.8.0 <19.0.0' dependencies: - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -2802,7 +2817,7 @@ packages: dependencies: esbuild: 0.19.11 postcss: 8.4.33 - rollup: 4.9.4 + rollup: 4.9.5 optionalDependencies: fsevents: 2.3.3 dev: true diff --git a/public/systems-logo.png b/public/systems-logo.png deleted file mode 100644 index a39aff25849bd3d74044360f668b683ed11c6bc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11612 zcmdsbS6EZs)-H-l6Ddj;q$6Frga9AifPmD{TL?Xb-UEs#B27Sg69kbOdJSFaz1ILz zLXU(dgmU=yzxV#n#o7PuInT+(%v>|$eMgyNuC?+;ywXx5CuJlhARr(Iy-?OAAh^|W zGe0N3cQcBrs)^iuF?gvMdFjFJynL-apacrGa2qHq2xe^$)rDHy`n&f+fdmAE9FF=% zUPhWP0T4J$$og*^AwQVg4Vr)eDDUTH4RMBgvD!fG9bIMFu}!V)td6#_>|hDaXPRzG zPzT2s0Ul7j04;q;fHOqemR(+s73c@JA%H=>tXchFF0P&cKUwyF@B(h;e=iHOv;M=x z%UPEFzk)K-e8s8+_kglW3Oy5qJbNa|DkUu>A}KB^A@1NZilWxt8^zfyp?{hQX+^Pgq9DVVUI zwVSYr(6hf&`j?@m=KpL8gZ^S~*^)h?&$z`V-*z@5@US|c67Cc`+D;J1E8r10J(a4S-V1@AZ1zh z8ww#uM_Yi1;&X9j5eX3mDbeR5A}Wf{MI{xK6cj`hq@_i~B@~|j3#$x=c*CHsUjM?{ z{x??iKVtvx1(@57XJx2|qYux=EL9*qZ!o?(C_YI)l_fLpG~q}&{{1Hvg4dKum>obZLu#HO z!z#TVG$WAHQKz!rT2gat1vFRN70{V*G|ZV9mq*eblFa28$GMl9Ct}M>ph#>0pfl=5 z#f0!UzKXZd8fya0v4h@0 zY}5}d=hhnMUh!~9m*En(Ug~jWjlYu(IV$!GMk+?k0X}z z@+l~x+J#X2&NyC_r^-71K?414*04|fK+B#^KPLe5;Q;4exLQgC!*(fZNxM;f-hyiX zmw*2q>T_=F+J9TR$%vW|S^)bL`A+QS5F$kh^ju zwr29VA1tNITS3XsHbxrBv~ zPIcWs`Rm6njm^~Pb})QN61nG7CVH!#ngL^Vxa=yFPk2juh5q>XXj&p#V@wRxC;~d2c)rnB zCaUEPA@O%2%NmuI0u*-HH9qmt29F&Z= zy}miemC}Dnz1ll_Po3_Xnb#zGRYlax{aWZSrZe)W+$=G#bugz6Vj+8RsCpHsc`qLg z*1wbn9rA3|iGJoi20jw*+dQ9{@UNp?xN-rfZVUXpfA+*2`r+;H=eEe2-j2Pyp7x+S z@XvIas#IDp#&|Uw=~^|$t|yGTH&$e8t+?<9oXi4m27l2{2S3;8(I}g%^5X!fc1j^} z4vJOjk*(0KKIPICT{?};ejAKeS#j7mL`%e4vgT$8ici*ZJ9uBW9QTO~%khIlpifS$ z*Z*-_=^tbr1U=jqmDc1>SkTuNWZ|*YZ7WcxaJu7sUE`->^C)oVLo?N?wZEQ5zurgd z!@+Y1$Dr<+=WrU)F&#M7Y9VG)gC_5iGdLvvi@>tK`L*Tjq~r#dR$`Cv#$5PQ9>-=a zp}-eEi6n3xbLMrVNwYO($d6s3)SohCM*|e5-L$pPz%oyZ9MuWdk`FDV&LlEmm@v{+ zaM~xvY5CzHH3c`N|4^=_TA>ZD4BK20(j{V}%Vs4Qe*_Ec+gS7QrPD<}3$X zm>MSC#jvWk>=pXA~Gcu33hgEBWMJG%Igz6LNC(L+mnl zgU`A$2VHqdL-ITN@PRb`;+?a+(3oNg;;1*b;@a=?i)N>!zTITmv@IS^e-vVDXF-cgMMqIMP%^8d$pOMO##BH z+qB#P#a)0Y!y_htP3_*V+vCgb;SK6C;H2Mj<{lv-nqxd@EP{}#T2dt>YL!Pq`I*Fd zAm&0|GZ6^~Qbjfwa_oH;H@FUWRF5IfVx($^h$@f#`RXh$u*Cvy(wi9+LeEckY$W^V z)~kI&PFXl27a-E+v#<-X9glcsMaM)i`;gaMr zqiV#rf_wxj$|h^IlRp^`&dt5u-Yfl67WUlG84LEX90EtyrE?#0 zoc!7f2ple3;e(aPJ?Z7>Uj?_rALbpBKE_5weRyMFB=9J}t;>hjCQ8#Gq^9_U@K1hm zm=okNX0Db)2A&Q~nmEfhsz08)J?)rjf3jAArFYD$BisjSe1%2o;<2n`3_S7!G2PFNR|wcWAis!vLw%bMvMh7 z2}wAWmRR*qVb`Xo>`1$)ZUd-EfQZ4~iRgF!C1ady)vDK-WF@|431M!&U>Tr4T!Brz zY}$V|eS(hPUueqsXMnaz&(ULW35@4wf`17ocqP zO^VjljHmMATj>1KBk3iGv!Ai?!*8)(HG!Kg+jFOln$mS`XI*y!qzzaL>|DlWez7IB zhwVMNJDoXfFb_QZi=&eP$Uj8MxYVbYRAg@l;n=;B3V`}oK@w#iN+&BoyD_9A*S z9gMW`u)6bnh0rOq%ibbMhj6KE`Gl-bOoGMz;K0xN=R}lAYVRXgQefWJ;4OyJi^S0R zZb0|$w*R0=B_FddU6899M!(1D0HpdE+MWSZ95q+Yg6r%PvrE=wVUc7dgv4wE_fo(P zo=}tS_dDAQ;m3Ds%Fa~g&nmesg#lSEYTBDZgGTm2KO7$DYPJ$@QAX`EyHV_#)W!%1 zi!qIV_)wnu0iIQ*IW-bPM{0NnBDQIipZ9_uFr_-v+;tfNgUIR=(GGAtT#|A!lVJ^e zMg(b=4B6mg(_jibHtXGM(g4!(mY3D+Ej%%HReJg{tm$L~qnykPh|;`YURWGn#MTO{z<;(;s7>lR00r zq#rDyi%>IRR8xmOlTpV5rU-U>`PY=UtJ^y=dHTN3Sb00o7f-s1mVcr1aDLxjD)Df1 zxEY(gQQ{kpY87xnWkmC%Omh9ABg1)QLgl!czlr{`5o`ZUPN*eNkDj3Znd0@J$7DH+0qcz=|! z`;WUqr%PtAfPjk_!)$rPTbbwZs(?Kf-nUn((Y6>DS@YJ+3apBHmbQ*ax}lq~SVdO0 ziY5Nod>AjU4W*;(NTuH4nrZ;yO}?}Nn$x{Xgvw6Zw#v%|J6hagq=gGr4ulg+ah zP&cF5vfmTQEh9 zZcH2CuGz$!X&>i@CvhL!zG(t@oWrYboi(Xlnbv-xl2X7cmAkNzoaDc8M^8Q+S>eJ? zT8oBC>i@8--7>Y35eq#TTY)YdA$-jZpN;`87NjF(vCPr}?I=Yi9OR*?kwajAC>4FN z{)%Uoxc zUtQE)R1&onj%PxtL#JHDm>rKtvuV{u9af_x&V)ea#AFkr`4wv0CyK>)!37W^!OvGn?u@$TWGpd*_Tf{O0pn9O*K?ohKjM(Hi${~X zM#h!5P9!54x-c6G1mE)rbl zgQ=-(gx2_&?KC?*l$&?^SmL-{n>ln3cyIA)-bTq;%WbkQX3e@8MqvQu<42(+j6YHi z^;I|isv1(tU{0?`&MdE;YPi7Rq93BQUxusScbj~*pMUqnUY1wT)|stph-_8VS6frGc7SN-xy_Tm-^n@w)~3E#S%`xz1}ZdNWa561k#)v z)@_IHOiF)SldA;e83is6A6@nVhG4^h+J=srY;!K>+Qgaq1`}bSlcgC~BYNqR^O6>F zdM7gcWo&=Q4*uvvQMFIoiKLEVY&^cEZ;ClCP>M?IHRaI2T1~9L+UARq`%}Jyjyxnh zGA)fU2;lzYAB5pi)EU%!cUrOSFma&^82-BkY@CBmVH=dmBDX#>Wc|=3FUI$lX~JLI zMfdfpIakI^oMiFn%0m^!*(Bk>i3;p*Xn%IS2W<8=rO$Kz>7E^EZ|*m@24@$$?7`c} z)kwg*k$OIieEKVYKW2P}Y3QpYw`IgsO3#glz)^SjaQXof1E9lxuQFxEv>;D|)}mJj z89k?aQZ`lXb<>)b0|x60h7bR6go(-2pv7BdjVB%rI4q&tP73a|!s1s!-uwK*NB+iy z7zbD|^u4?QX0Bxg{lnF*tFhwE3F1-Bhl)Z>^!>vm)28i;xMSZ^wh}f&Ug@PKso{;1 zbQ*)L(Z4LD7z=r~n@!bn<&zhDpU3@>_rIX(NM+z(UMj1IiM}=Wp~Q*Qv|mghvYEt6 z7JF)5*5ZSDL>4VaW$X&)t8Zy{4*DMUC8cg9{EwE`EL_9ydFR(TZpfw5kz-=4Tgmzv zmGIA9^-=ePjRW9QR(W5rfoo5h@)2N%9Y&iCVCY_p!8Q*|Ov6)_40O(!dX>8lcZyyw#y z>L7Y{W>zehuuJ{>p~<-T;R@ z!od*+bujJO98z1q%#6w3-c1uzTd_5G;Ud&d)^q7Ivka9bb(RlwnluyM?9L7wuL7UU+IT(hfr~_+nyzZ z*Nt}Kg!8vpDQdngPZDKBC7Jx`IWiRbwn+Qnjy&{p@sXn0Q=6VskJ-c5?=!w!PXAiE z+Z^{ZkwX5d`=YOgm0bUyYXsPGMr;Sh1$i`C=*Yy;FQ6P`@dnn4E!wN%j*2Wo88?^$ zK&`QUUses?kS$Hw*f?tPok|pcVGkp=77H8cVC8Q(M;m6oo7{(cB<}wip=FA#%Rx1V zb6g7x#`XZi(bD+TFR#W`gwWrnpECL3W%)tj$qVSY?k+U(3ET3wOM8<1b;fW;V~x z=(*QgtJ1o;UGrNvA%D0?jZwcr$B3TCkMS|-GJx05eMbNy>w3G^du<)IKUWtRT#9N{ zfLc3=k?|>hpp;Z1w%+)0KP8&n49tQL70oi_s3WNjuit347kS@&bZUpN9Q?_1?D~11 zIyf*8FYd2{t=~WyNy6|JMv3<#gT&8SUhZ%??rrw>^1~C||jWijl;aA^nRs3 zn8c3qi1BXE2B*Iea_4X@>bS(*-V@RK*@f^%!LuWJ@acCx%p+2r{xq^Ay~VwwBXRnZ zHvutQTS<(!Uk~HVW%2z{@semafmx!Pm&JkYnes?3u`9Abg*iWzmuik)FW^S)vhrzb zMB0;AQ(yvsrr9S$?brXsvCAHI%_LCeZY`NI_vE$f-kU8e>}9XyKM=os+u=+Eu7szh zmm}X;sosv9wzoNsL(byMT^5O!7p3e=N4-iK^2E&b7C|_ zbwmctA#5-vUMnRi_Q!9|N)oH7_o+|+jVKx+9B|7I4|?~Mt6SE3gZA(&aGokS#_Vk)EF%th7Hey1VLa;p06my zc-NyOZ=b|7f#^ceT>AWo{;nVu;qf9`>Um|GWa|m)a~0$B6H;oWPPFcUMBP{BdCo0c z#FOMaUjv>#{nP3k-xAmEBm z5;XzuJ-%`xw)tQhDle9p>kZ>+bu6NaRl~WdpT!64|?}g3zxpr@?C>fp*j5hrdJXV()sR-0$K#P%{>Mgi4g*LnL} zrXT=t)l3lko@>i7vtaMkguykNt2&#iFQN6j?(a{v5sc4mHUf;_Xb9_)4u%EQ-<@}9lte7n-a4k``;oS=UvnuHi8px7YALi zdZ4PjqGa_|mqri9B>!+6U1!Hvf8|R$-MRT=L6gxOFRt33Jt}J??NRbJ5i7h!AIncM z98r>Pfp0ZmKepg7n8G4;9!O3HAh*##Bv!_*B;?D`3Q1;y0Z!=0OOCMd1j2Z)cg101 z*mySa6L;8r(o3@z9I!wufI!B-bSxFe(;xm;bGr z>gl`Zym8nwA4(_dr+5bYpyAZFi1Gm_54)1Gx5 z#+w|?Q$%LvLXHgY?kJegH}c7t-s{$AUis>s)f{@US$Z9t__UdO)NO9MKOkml3ZdSN zQ&4Dm@`ZGv&LC+>cfG5x1DRML7r9k01{V^I0$#WXbZ+Y7Glm1pgz+LiiMnsP z&Gx5D0;-9{zdwImWKvpDz;cD8VMOcwNViOTpPNxR>hIl?ZXZ4=0=^hGsU~o}i2d!vzw$s^JyX3Tb`Tlr7`1hCOI#=(} z-3~~bgWNtV%Xhaerw}OR9U!aD3)vr6MdkTf7VylaU$_^U>@4QZtI@}I0#SW>A>h4R zS1N9U#XY8){1yD0jLG8&zzDymv)_E#y8l-Crg81Z9Tkhb?;5J9en0q$_=_sj4PRfV z&y%CiHJq;d{h)ia!w+W8viALpXz$L=8^}B%k5aZFU~@@997~(s<6qYl4r<7*Lroe4 z3TWYye*Wphw-~%yH8qr&5X~eR7zy5G_Vm@(_c`rTIv=t8B^#!-k|V#_B>R$V8*hGY zHb~Y94Gb%EBlPqt-dK2k7|9_k7MX zGV-zmZy&k3A**JV<~JY_AinsaCbZW1bqZ^BKot0mo5HLI?&XQD3Z%YxQEn56y{iB6 z%PRx?2E-3_F3ufiBpJM1I4rV(NXWWvP??E243j4K3#5NBK*OKb1@srPzw| zZt63fAq&!X8?5tNiv8V!A65{?;)AL47eg;Ca)uj1@!M5(eV_F7*`rwmf0b6%oCZDt z?cxeZsOeiDAaVVhQbL(3g?$P95dYz+-4{IAx za~3Sx-`_X4pz5pxj0W7$e1za?`>k$L$McuE(dU8GB0Q@#Q7ua>v%`oitCLCT2RKC& zetz*O4I6t{I8pB*!yYrnLfdala{QR{y*X;mldptHWeA#!kw{$MTRvT*oJM9P zWozUSlx8{q-h&{%YbC3_pryAdDG27@Ze6EIyBy(v>*&zHvL7wLv}Ud?ufi@#iYn|a zo4aLuwan;Be&Va9wO*>>#ynJP1$PU0}l7EAwA_(JfP5E*xQlcDIDR z{JpeTPCs|QdS6I->r#bf2B(f!*AKo?I&@Wf7%5T%bP8|n#8DYW3+}A=^A7h?mKM1c zCg?D7vzh%Qt1{Mv1g|1+e3jiY(jinnA!e8?EA{Zr1`I?9g$x1AR@jzKgWCoyB`+fGvV$WXYP% zQF1qZk77{a!SaxWbCEd>3fZb=Y*9+`QNG$Efr$VA3a?c1C+RYCZDKZ7Ct# zE2yk;%TqKj+k#Qo{1!@A*o#b9-v`N~yb5(2Aij_!*36f{z(vELx`d~K;;*6Ks+cea z!HTrLXM43Ou?Yc08|K)xqVdX_%~lfX0+Bda!9*$#nOc(fY2Q)UvS)5CO@b`ay|UPc zAaXIg*E?gHE^8B$xOZ@u4=AJ*K^_Oh$MTUoED>HEJZnAp+JeO$e!53DLf zxH3bWmVctT(?yc&uq2f{hgP*z9hDP|_EP%q(11ado?Euyn-6vs)py|Wia_nBnMjiY zhVD{Q(v@6NSTnuAQcqJ%^@gK$%DR3(xss`=AG+v?N9F#3r1n}YQ0d~^(Bl0GZO&g^ z=4hX|VA9MBmXvS9hx=mt69EKu6hh>UZ2`HlR z=x{+kg2*v!>p|~a=b9APM3!QTqQ|YnW2#FBejF*u4s@%YgcKC}+$p!Fq1(=xF|Ro| z<$R&?tkZGNcPh&x+$qJefJ_DpZuTyXL(nmF&9A)+UWusi_p7KA0WKFc%UI%)(upc+ z>VPiTXAoz|ZSeGUa)0rHX4jD?n0a~wNZ91i8#pUbuy9J;;ldl~rz!=#dB=kkz4)_N zEv$i}B?rFoM_q>7lw18sF$t_Zejul$dfbF-!#8b@B=L(yc}(By!(+|!WzPq{P*-a& zPa2>3DMQ(r>#?y6%`-LRnWy)0(p|R|vI>k;MgTg-!dhh6*e@7YJ$U+JC~?1H9FRPF z(TG7^X=L#&{!#yuHQ&5*F|Iyq|4c!lA>gkwiAF2w-%1lF3$v6_J2aOS9@c~8>4DQ$ zCyr^SC7Jn{L!hj$osy*2x%%z z*zGROua4Z{yiaVJfw2>^*U`m3j2gpOKZE@s^vFTww}n9PDZ2~bpO={DLiO4e7d0MD z(P8WO8|}jSb5`8tBS4Kk`ySg>#EE=g4ZI*&uiuh9=~|<gk(Otv5^CQgl*jAUikgSU{fWovRSM>!PCpd}B+LiUM96Y?1-dzdzqqz11!9Oew2QgBK( z-VC7q4Wz%3J?vyk%m+H;vGFvTor)$?ClHwLRPnT;4Q*rf$QN(w1Et)m+t}i$prO)t z(lm-+2?$=R5#J1yw+RStgb{)p+2&?Y{Qr9C|8}x%_gAm)&=WX=JsD;nzIMN setMount(!x)); }, []); - const { data } = Hub.User.Get.useMe(log); + const data = Hub.User.Get.useMe(log); + const name = auth.user?.profile.preferred_username; return <> diff --git a/src/Components/DataGrid/Delegate.tsx b/src/Components/DataGrid/Delegate.tsx deleted file mode 100644 index 1140ddc..0000000 --- a/src/Components/DataGrid/Delegate.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { DataGrid, DataGridBody, DataGridHeader, DataGridRow, TableColumnDefinition, TableRowId } from "@fluentui/react-components"; - -/** - * @author Aloento - * @since 0.1.0 - * @version 0.2.0 - */ -export interface IDataGrid { - Items: T[]; - Columns: TableColumnDefinition[]; - NoHeader?: true; -} - -/** - * @author Aloento - * @since 0.1.0 - * @version 0.2.0 - */ -export function DelegateDataGrid({ Items, Columns, NoHeader }: IDataGrid) { - return ( - item.Id} - > - { - !NoHeader && - - > - {({ renderHeaderCell }) => renderHeaderCell()} - - - } - - > - {({ item, rowId }) => ( - key={rowId}> - {({ renderCell }) => renderCell(item)} - - )} - - - ); -} diff --git a/src/Components/DataGrid/index.tsx b/src/Components/DataGrid/index.tsx index f124612..8ec7098 100644 --- a/src/Components/DataGrid/index.tsx +++ b/src/Components/DataGrid/index.tsx @@ -1,27 +1,33 @@ -import { DataGrid, DataGridBody, DataGridCell, DataGridHeader, DataGridHeaderCell, DataGridRow, TableRowId } from "@fluentui/react-components"; -import { IDataGrid } from "./Delegate"; +import { DataGrid, DataGridBody, DataGridHeader, DataGridRow, SkeletonItem, TableColumnDefinition, TableRowId } from "@fluentui/react-components"; /** * @author Aloento - * @since 0.5.0 - * @version 0.1.0 + * @since 0.1.0 + * @version 0.2.1 */ -export function DefaultDataGrid({ Items, Columns, NoHeader }: IDataGrid) { +export interface IDataGrid { + Items: T[] | undefined; + Columns: TableColumnDefinition[]; + NoHeader?: true; +} + +/** + * @author Aloento + * @since 0.1.0 + * @version 0.2.1 + */ +export function DelegateDataGrid({ Items, Columns, NoHeader }: IDataGrid) { return ( item.Id} > { !NoHeader && - - {({ renderHeaderCell }) => ( - - {renderHeaderCell()} - - )} + > + {({ renderHeaderCell }) => renderHeaderCell()} } @@ -29,14 +35,12 @@ export function DefaultDataGrid({ Items, Columns, > {({ item, rowId }) => ( key={rowId}> - {({ renderCell }) => ( - - {renderCell(item)} - - )} + {({ renderCell }) => renderCell(item)} )} + + {!Items && } - ) + ); } diff --git a/src/Components/Footer.tsx b/src/Components/Footer.tsx index ace8c94..2f16c86 100644 --- a/src/Components/Footer.tsx +++ b/src/Components/Footer.tsx @@ -1,10 +1,10 @@ -import { makeStyles, shorthands, tokens } from "@fluentui/react-components"; +import { Text, makeStyles, shorthands, tokens } from "@fluentui/react-components"; import { Flex, NavW } from "~/Helpers/Styles"; /** * @author Aloento * @since 0.1.0 - * @version 0.1.0 + * @version 0.1.1 */ const useStyle = makeStyles({ box: { @@ -19,8 +19,8 @@ const useStyle = makeStyles({ ...shorthands.margin(0, "auto"), }, logo: { - width: "300px", - filter: "brightness(200)" + color: "white", + ...shorthands.margin("64px", 0), }, otc: { color: "white" @@ -29,8 +29,8 @@ const useStyle = makeStyles({ /** * @author Aloento - * @since 0.3.1 MusiLand - * @version 0.1.0 + * @since 0.1.0 + * @version 0.2.0 */ export function Footer(): JSX.Element { const style = useStyle(); @@ -38,7 +38,10 @@ export function Footer(): JSX.Element { return (
- + + OpenTelekomCloud + +
); diff --git a/src/Components/OrderInfo.tsx b/src/Components/OrderInfo.tsx index 6a5bb0d..a22f51e 100644 --- a/src/Components/OrderInfo.tsx +++ b/src/Components/OrderInfo.tsx @@ -35,7 +35,7 @@ const log = new Logger("Order", "Info"); /** * @author Aloento * @since 0.5.0 - * @version 0.4.1 + * @version 0.4.2 */ export function OrderInfo({ OrderId, Order, Admin }: IOrderInfo) { const style = useStyles(); @@ -45,9 +45,7 @@ export function OrderInfo({ OrderId, Order, Admin }: IOrderInfo) { onError: log.error }); - const { data: me } = Hub.User.Get.useMe(log, { - manual: Admin - }); + const me = Hub.User.Get.useMe(log); const data = Admin ? admin : me; diff --git a/src/Components/Setting.tsx b/src/Components/Setting.tsx index 18b0513..366c022 100644 --- a/src/Components/Setting.tsx +++ b/src/Components/Setting.tsx @@ -1,5 +1,5 @@ import { Button, Dialog, DialogActions, DialogBody, DialogContent, DialogSurface, DialogTitle, DialogTrigger, Field, Input, Label, Toast, ToastBody, ToastTitle, makeStyles, tokens } from "@fluentui/react-components"; -import { useState } from "react"; +import { useEffect, useState } from "react"; import { useAuth } from "react-oidc-context"; import { Logger } from "~/Helpers/Logger"; import { ColFlex, Flex } from "~/Helpers/Styles"; @@ -39,7 +39,7 @@ const log = new Logger("Setting"); /** * @author Aloento * @since 0.1.0 - * @version 0.4.1 + * @version 0.5.0 */ export function Setting({ Open, Toggle, New }: ISetting) { const style = useStyles(); @@ -49,17 +49,17 @@ export function Setting({ Open, Toggle, New }: ISetting) { const [phone, setPhone] = useState(); const [address, setAddress] = useState(); - Hub.User.Get.useMe(log, { - manual: New, - onSuccess(data) { - if (!data) return; - const { Name, Phone, Address } = data; + const data = Hub.User.Get.useMe(log); - setName(Name); - setPhone(Phone); - setAddress(Address); - } - }); + useEffect(() => { + if (New || !data) return; + + const { Name, Phone, Address } = data; + + setName(Name); + setPhone(Phone); + setAddress(Address); + }, [data]); const { dispatch, dispatchToast } = useErrorToast(log); diff --git a/src/Components/ShopCart/Confirm.tsx b/src/Components/ShopCart/Confirm.tsx index c2e714e..640dfa3 100644 --- a/src/Components/ShopCart/Confirm.tsx +++ b/src/Components/ShopCart/Confirm.tsx @@ -8,7 +8,7 @@ import { Logger } from "~/Helpers/Logger"; import { ColFlex } from "~/Helpers/Styles"; import { useErrorToast } from "~/Helpers/useToast"; import { Hub } from "~/ShopNet"; -import { DelegateDataGrid } from "../DataGrid/Delegate"; +import { DelegateDataGrid } from "../DataGrid"; import { useRouter } from "../Router"; import { CartColumns } from "./Columns"; import { useShopCart } from "./Context"; diff --git a/src/Components/ShopCart/Persona.tsx b/src/Components/ShopCart/Persona.tsx index 2088768..31a925e 100644 --- a/src/Components/ShopCart/Persona.tsx +++ b/src/Components/ShopCart/Persona.tsx @@ -38,7 +38,7 @@ export interface IPersona { export function PersonaInfo({ Log }: { Log: Logger }) { const style = useStyles(); const log = useConst(() => Log.With("PersonaInfo")); - const { data } = Hub.User.Get.useMe(log); + const data = Hub.User.Get.useMe(log); return <>
diff --git a/src/Components/ShopCart/index.tsx b/src/Components/ShopCart/index.tsx index c8388f7..2aeb232 100644 --- a/src/Components/ShopCart/index.tsx +++ b/src/Components/ShopCart/index.tsx @@ -4,7 +4,7 @@ import { CartRegular } from "@fluentui/react-icons"; import { useBoolean, useUpdateEffect } from "ahooks"; import { Logger } from "~/Helpers/Logger"; import { Flex } from "~/Helpers/Styles"; -import { DelegateDataGrid } from "../DataGrid/Delegate"; +import { DelegateDataGrid } from "../DataGrid"; import { CartColumns } from "./Columns"; import { Confirm } from "./Confirm"; import { useShopCart } from "./Context"; diff --git a/src/Components/TopNavBar.tsx b/src/Components/TopNavBar.tsx index 5e3154b..f5838d5 100644 --- a/src/Components/TopNavBar.tsx +++ b/src/Components/TopNavBar.tsx @@ -12,7 +12,7 @@ import { ShopCart } from "./ShopCart"; * @since 0.1.0 MusiLand * @version 0.1.0 */ -const useStyle = makeStyles({ +const useStyles = makeStyles({ navBox: { position: "fixed", top: 0, @@ -44,10 +44,10 @@ const useStyle = makeStyles({ /** * @author Aloento * @since 0.1.0 MusiLand - * @version 0.1.1 + * @version 0.1.2 */ export function TopNavBar() { - const style = useStyle(); + const style = useStyles(); return ( diff --git a/src/Helpers/CoverCol.tsx b/src/Helpers/CoverCol.tsx index 2095680..e62164e 100644 --- a/src/Helpers/CoverCol.tsx +++ b/src/Helpers/CoverCol.tsx @@ -8,7 +8,7 @@ import { Cover } from "./Styles"; * @since 0.1.0 * @version 0.1.0 */ -const useStyle = makeStyles({ +const useStyles = makeStyles({ unset: { flexBasis: "unset", flexGrow: 0 @@ -32,7 +32,7 @@ export function MakeCoverCol(size: number, log: Logger) { return createTableColumn<{ Cover: string; }>({ columnId: "Cover", renderHeaderCell: () => { - const style = useStyle(); + const style = useStyles(); return ( @@ -41,7 +41,7 @@ export function MakeCoverCol(size: number, log: Logger) { ) }, renderCell(item) { - const style = useStyle(); + const style = useStyles(); return ( diff --git a/src/Lexical/Editor.tsx b/src/Lexical/Editor.tsx index a3125f4..dfbe599 100644 --- a/src/Lexical/Editor.tsx +++ b/src/Lexical/Editor.tsx @@ -26,12 +26,12 @@ import { MarkdownShortcutPlugin } from "./Plugins/MarkdownShortcutPlugin"; import { TabFocusPlugin } from "./Plugins/TabFocusPlugin"; import { TablePlugin } from "./Plugins/TablePlugin"; import { ToolbarPlugin } from "./Plugins/ToolbarPlugin"; -import { useLexEditorTheme } from "./Themes/LexEditorTheme"; +import { useLexEditorTheme } from "./Theme"; import { LexContentEditable } from "./UI/ContentEditable"; import { Placeholder } from "./UI/Placeholder"; import { SetCurrentEditor } from "./Utils"; -const useStyle = makeStyles({ +const useStyles = makeStyles({ shell: { lineHeight: "1.7" }, @@ -78,7 +78,7 @@ export function LexEditor(): JSX.Element { const placeholder = const [anchor, setAnchor] = useState(); - const style = useStyle(); + const style = useStyles(); return (
diff --git a/src/Lexical/Lazy.tsx b/src/Lexical/Lazy.tsx new file mode 100644 index 0000000..c46a302 --- /dev/null +++ b/src/Lexical/Lazy.tsx @@ -0,0 +1,18 @@ +import { Spinner } from "@fluentui/react-components"; +import { lazy, Suspense } from "react"; +import type { ILexical } from "./Context/Setting"; + +/** + * @author Aloento + * @since 1.2.0 + * @version 0.1.0 + */ +export function Lexical(props: ILexical) { + return ( + }> + + + ); +} + +const Wrapper = lazy(() => import("./")); diff --git a/src/Lexical/Nodes/Table/Component.tsx b/src/Lexical/Nodes/Table/Component.tsx index 8fd0532..c0c75b2 100644 --- a/src/Lexical/Nodes/Table/Component.tsx +++ b/src/Lexical/Nodes/Table/Component.tsx @@ -1334,7 +1334,7 @@ function TableComponent({ nodeKey, rows: rawRows, theme, }: ITableComponent): JS if (!cellEditor) return null; - const style = useStyle(); + const style = useStyles(); return (
@@ -1387,7 +1387,7 @@ function TableComponent({ nodeKey, rows: rawRows, theme, }: ITableComponent): JS ); } -const useStyle = makeStyles({ +const useStyles = makeStyles({ box: { position: "relative" } }); diff --git a/src/Lexical/Nodes/Table/TableCell.tsx b/src/Lexical/Nodes/Table/TableCell.tsx index 5db8771..3a28504 100644 --- a/src/Lexical/Nodes/Table/TableCell.tsx +++ b/src/Lexical/Nodes/Table/TableCell.tsx @@ -78,7 +78,7 @@ export function TableCell({ setShowMenu(false); }, [isEditing, isPrimarySelected]); - const style = useStyle(); + const style = useStyles(); return ( editor.isEditable()); const [isEditorEmpty, setIsEditorEmpty] = useState(true); diff --git a/src/Lexical/Plugins/AutoLinkPlugin/index.tsx b/src/Lexical/Plugins/AutoLinkPlugin.tsx similarity index 100% rename from src/Lexical/Plugins/AutoLinkPlugin/index.tsx rename to src/Lexical/Plugins/AutoLinkPlugin.tsx diff --git a/src/Lexical/Plugins/ClickableLinkPlugin/index.ts b/src/Lexical/Plugins/ClickableLinkPlugin.ts similarity index 100% rename from src/Lexical/Plugins/ClickableLinkPlugin/index.ts rename to src/Lexical/Plugins/ClickableLinkPlugin.ts diff --git a/src/Lexical/Plugins/CodeActionMenuPlugin/CopyButton.tsx b/src/Lexical/Plugins/CodeActionMenuPlugin/CopyButton.tsx index c0248a0..047572b 100644 --- a/src/Lexical/Plugins/CodeActionMenuPlugin/CopyButton.tsx +++ b/src/Lexical/Plugins/CodeActionMenuPlugin/CopyButton.tsx @@ -5,7 +5,7 @@ import { useDebounceFn } from "ahooks"; import { $getNearestNodeFromDOMNode, $getSelection, $setSelection, LexicalEditor } from "lexical"; import { useState } from "react"; -const useStyle = makeStyles({ +const useStyles = makeStyles({ green: { color: tokens.colorPaletteLightGreenForeground3 } @@ -50,7 +50,7 @@ export function CopyButton({ editor, getCodeDOMNode }: ICopyButton) { } } - const style = useStyle(); + const style = useStyles(); return - + diff --git a/src/Pages/Admin/Product/Combo/Detail.tsx b/src/Pages/Admin/Product/Combo/Detail.tsx index a161812..1e8dd09 100644 --- a/src/Pages/Admin/Product/Combo/Detail.tsx +++ b/src/Pages/Admin/Product/Combo/Detail.tsx @@ -3,7 +3,7 @@ import { DismissRegular, EditRegular } from "@fluentui/react-icons"; import { useBoolean, useRequest } from "ahooks"; import { isInteger } from "lodash-es"; import { useState } from "react"; -import { DelegateDataGrid } from "~/Components/DataGrid/Delegate"; +import { DelegateDataGrid } from "~/Components/DataGrid"; import { Logger } from "~/Helpers/Logger"; import { Flex } from "~/Helpers/Styles"; import { useErrorToast } from "~/Helpers/useToast"; @@ -152,7 +152,7 @@ export function AdminProductComboDetail({ Id, ProdId, Combo, Stock, Refresh }: I setCombo({ ...combo }); }, ...x - })) || []} + }))} Columns={columns} /> diff --git a/src/Pages/Admin/Product/Combo/New.tsx b/src/Pages/Admin/Product/Combo/New.tsx index 98748ec..7bc621b 100644 --- a/src/Pages/Admin/Product/Combo/New.tsx +++ b/src/Pages/Admin/Product/Combo/New.tsx @@ -3,7 +3,7 @@ import { AddRegular, DismissRegular } from "@fluentui/react-icons"; import { useBoolean, useRequest } from "ahooks"; import { isInteger } from "lodash-es"; import { useState } from "react"; -import { DelegateDataGrid } from "~/Components/DataGrid/Delegate"; +import { DelegateDataGrid } from "~/Components/DataGrid"; import { Logger } from "~/Helpers/Logger"; import { Flex } from "~/Helpers/Styles"; import { useErrorToast } from "~/Helpers/useToast"; @@ -140,7 +140,7 @@ export function AdminProductNewCombo({ ProdId, Refresh }: { ProdId: number; Refr setCombo({ ...combo }); }, ...x - })) || []} + }))} Columns={columns} /> diff --git a/src/Pages/Admin/Product/Combo/index.tsx b/src/Pages/Admin/Product/Combo/index.tsx index 842f3e2..3bb31f0 100644 --- a/src/Pages/Admin/Product/Combo/index.tsx +++ b/src/Pages/Admin/Product/Combo/index.tsx @@ -1,6 +1,6 @@ import { DataGridCell, DataGridHeaderCell, Subtitle1, TableColumnDefinition, createTableColumn, makeStyles } from "@fluentui/react-components"; import { useRequest } from "ahooks"; -import { DelegateDataGrid } from "~/Components/DataGrid/Delegate"; +import { DelegateDataGrid } from "~/Components/DataGrid"; import { Logger } from "~/Helpers/Logger"; import { Flex } from "~/Helpers/Styles"; import { Hub } from "~/ShopNet"; @@ -132,7 +132,7 @@ export function AdminProductCombo({ ProdId }: { ProdId: number }) {
({ ProdId, Refresh: run, ...x })) || []} + Items={data?.map(x => ({ ProdId, Refresh: run, ...x }))} Columns={columns} /> diff --git a/src/Pages/Admin/Product/Delete.tsx b/src/Pages/Admin/Product/Delete.tsx index 3bd0d75..4db95fb 100644 --- a/src/Pages/Admin/Product/Delete.tsx +++ b/src/Pages/Admin/Product/Delete.tsx @@ -1,21 +1,29 @@ -import { Button, Toast, ToastTitle } from "@fluentui/react-components"; +import { Button, Popover, PopoverSurface, PopoverTrigger, Toast, ToastTitle, makeStyles, tokens } from "@fluentui/react-components"; import { useRouter } from "~/Components/Router"; import { Logger } from "~/Helpers/Logger"; +import { ColFlex } from "~/Helpers/Styles"; import { useErrorToast } from "~/Helpers/useToast"; import { AdminHub } from "~/ShopNet/Admin"; const log = new Logger("Admin", "Product", "Detail", "Delete"); +const useStyles = makeStyles({ + root: { + ...ColFlex, + rowGap: tokens.spacingHorizontalS + } +}); + /** * @author Aloento * @since 1.0.0 - * @version 0.1.1 + * @version 0.2.1 */ export function AdminProductDelete({ ProdId }: { ProdId: number }) { const { Nav } = useRouter(); const { dispatch, dispatchToast } = useErrorToast(log); - const { run } = AdminHub.Product.Delete.useProduct({ + const { run, loading } = AdminHub.Product.Delete.useProduct({ manual: true, onError(e, params) { dispatch({ @@ -33,13 +41,30 @@ export function AdminProductDelete({ ProdId }: { ProdId: number }) { ); Nav("/Admin"); - location.reload(); } }); + const style = useStyles(); + return (
- + + + + + + + Are You Sure? + + + +
) } diff --git a/src/Pages/Admin/Product/Detail.tsx b/src/Pages/Admin/Product/Detail.tsx index 0677010..92c7c2a 100644 --- a/src/Pages/Admin/Product/Detail.tsx +++ b/src/Pages/Admin/Product/Detail.tsx @@ -8,6 +8,7 @@ import { ColFlex } from "~/Helpers/Styles"; import { AdminProductCategory } from "./Category"; import { AdminProductCombo } from "./Combo"; import { AdminProductDelete } from "./Delete"; +import { AdminProductLexical } from "./Lexical"; import { AdminProductName } from "./Name"; import { AdminProductPhoto } from "./Photo"; import { AdminProductVariant } from "./Variant"; @@ -28,16 +29,19 @@ const useStyles = makeStyles({ /** * @author Aloento * @since 0.1.0 - * @version 0.2.1 + * @version 0.2.2 */ export function AdminProductDetail({ ProdId }: { ProdId: number }) { const style = useStyles(); - const [open, { toggle, setTrue }] = useBoolean(); + const [open, { setFalse, setTrue }] = useBoolean(); const { Nav, Paths } = useRouter(); + const id = parseInt(Paths.at(1)!); useEffect(() => { - if (parseInt(Paths.at(1)!) === ProdId) + if (id === ProdId) setTrue(); + else + setFalse(); }, [Paths]); return <> @@ -52,7 +56,6 @@ export function AdminProductDetail({ ProdId }: { ProdId: number }) { } onClick={() => { Nav("Admin"); - toggle(); + setFalse(); }} />} > @@ -80,8 +83,7 @@ export function AdminProductDetail({ ProdId }: { ProdId: number }) { - Rich Text Editor is temporarily unavailable. - + diff --git a/src/Pages/Admin/Product/Lexical.tsx b/src/Pages/Admin/Product/Lexical.tsx new file mode 100644 index 0000000..7763dc6 --- /dev/null +++ b/src/Pages/Admin/Product/Lexical.tsx @@ -0,0 +1,102 @@ +import { Button, Toast, ToastTitle, makeStyles, tokens } from "@fluentui/react-components"; +import { Drawer, DrawerBody, DrawerHeader, DrawerHeaderTitle } from "@fluentui/react-components/unstable"; +import { useBoolean, useRequest } from "ahooks"; +import { Logger } from "~/Helpers/Logger"; +import { Flex } from "~/Helpers/Styles"; +import { useErrorToast } from "~/Helpers/useToast"; +import { Lexical } from "~/Lexical/Lazy"; +import { Hub } from "~/ShopNet"; +import { AdminHub } from "~/ShopNet/Admin"; + +/** + * @author Aloento + * @since 1.2.0 + * @version 0.1.0 + */ +const useStyles = makeStyles({ + btn: { + ...Flex, + columnGap: tokens.spacingVerticalS + }, + drawer: { + width: "1100px" + } +}); + +const log = new Logger("Admin", "Product", "Lexical"); + +/** + * @author Aloento + * @since 1.2.0 + * @version 0.2.0 + */ +export function AdminProductLexical({ ProdId }: { ProdId: number }) { + const style = useStyles(); + const [open, { toggle, setTrue }] = useBoolean(); + + const { data, run: update } = useRequest(() => Hub.Product.Get.Lexical(ProdId)); + + const { dispatch, dispatchToast } = useErrorToast(log); + + const { run } = AdminHub.Product.Post.useLexical({ + manual: true, + onError(e, req) { + dispatch({ + Message: "Failed Update Description", + Request: req, + Error: e + }); + }, + onSuccess() { + dispatchToast( + + Description Updated + , + { intent: "success" } + ); + + update(); + toggle(); + }, + }); + + return <> +
+ +
+ + + + + + + +
+ }> + Edit Product Description + + + + + + + + +} diff --git a/src/Pages/Admin/Product/Photo/Edit.tsx b/src/Pages/Admin/Product/Photo/Edit.tsx index d7f1c0f..edc877c 100644 --- a/src/Pages/Admin/Product/Photo/Edit.tsx +++ b/src/Pages/Admin/Product/Photo/Edit.tsx @@ -1,6 +1,7 @@ -import { Button, Dialog, DialogBody, DialogContent, DialogSurface, DialogTitle, DialogTrigger, Field, Image, Input, Toast, ToastTitle, makeStyles, tokens } from "@fluentui/react-components"; +import { Button, Dialog, DialogBody, DialogContent, DialogSurface, DialogTitle, DialogTrigger, Field, Input, Toast, ToastTitle, makeStyles, tokens } from "@fluentui/react-components"; import { DismissRegular, EditRegular } from "@fluentui/react-icons"; import { useState } from "react"; +import { GuidImage } from "~/Helpers/GuidImage"; import { Logger } from "~/Helpers/Logger"; import { ColFlex, Cover, Flex } from "~/Helpers/Styles"; import { useErrorToast } from "~/Helpers/useToast"; @@ -44,7 +45,7 @@ const log = new Logger("Admin", "Product", "Detail", "Photo", "Edit"); /** * @author Aloento * @since 0.5.0 - * @version 0.3.2 + * @version 0.3.3 */ export function AdminProductPhotoEdit({ Photo: { Id, Cover, Caption }, Refresh }: IAdminProductPhotoEdit) { const style = useStyles(); @@ -135,10 +136,11 @@ export function AdminProductPhotoEdit({ Photo: { Id, Cover, Caption }, Refresh } -
diff --git a/src/Pages/Admin/Product/Photo/index.tsx b/src/Pages/Admin/Product/Photo/index.tsx index b62911d..62c09f7 100644 --- a/src/Pages/Admin/Product/Photo/index.tsx +++ b/src/Pages/Admin/Product/Photo/index.tsx @@ -1,7 +1,8 @@ import { Button, DataGridCell, DataGridHeaderCell, Subtitle1, TableColumnDefinition, Toast, ToastTitle, createTableColumn, makeStyles } from "@fluentui/react-components"; import { AddRegular, ArrowDownRegular, ArrowUpRegular } from "@fluentui/react-icons"; import { useRequest } from "ahooks"; -import { DelegateDataGrid } from "~/Components/DataGrid/Delegate"; +import { useState } from "react"; +import { DelegateDataGrid } from "~/Components/DataGrid"; import { MakeCoverCol } from "~/Helpers/CoverCol"; import { Logger } from "~/Helpers/Logger"; import { Flex } from "~/Helpers/Styles"; @@ -111,11 +112,22 @@ let refreshCarousel: () => void; /** * @author Aloento * @since 0.5.0 - * @version 0.3.2 + * @version 0.4.0 */ export function AdminProductPhoto({ ProdId }: { ProdId: number }) { - const { data, run } = useRequest(() => Hub.Product.Get.Carousel(ProdId, log), { - onError: log.error + const [list, setList] = useState([]); + + const { run } = useRequest(() => Hub.Product.Get.PhotoList(ProdId, log), { + onError: log.error, + onSuccess([raw]) { + const map = raw.map(x => ({ + Id: x.Order, + Cover: x.ObjectId, + Caption: x.Caption || "No Caption" + })); + + setList(map); + } }); refreshCarousel = run; @@ -138,7 +150,7 @@ export function AdminProductPhoto({ ProdId }: { ProdId: number }) { { intent: "success" } ); - refreshCarousel(); + run(); } }); @@ -165,6 +177,6 @@ export function AdminProductPhoto({ ProdId }: { ProdId: number }) {
- + } diff --git a/src/Pages/Admin/Product/Row.tsx b/src/Pages/Admin/Product/Row.tsx new file mode 100644 index 0000000..9c18e0c --- /dev/null +++ b/src/Pages/Admin/Product/Row.tsx @@ -0,0 +1,69 @@ +import { DataGridRow, TableRowData } from "@fluentui/react-components"; +import { useAsyncEffect, useBoolean } from "ahooks"; +import { useState } from "react"; +import { Logger } from "~/Helpers/Logger"; +import { Hub } from "~/ShopNet"; +import { AdminHub } from "~/ShopNet/Admin"; +import { IProductItem } from "."; + +const log = new Logger("Admin", "Product", "Row"); + +/** + * @author Aloento + * @since 1.3.0 + * @version 0.1.0 + */ +export function AdminProductRow({ item: id }: TableRowData) { + const [detail, setDetail] = useState(() => ({ + Id: id, + Cover: "", + Name: "Loading..." + })); + + const [block, { setTrue }] = useBoolean(); + + const hub = Hub.Product.Get; + + useAsyncEffect(async () => { + const prod = await hub.Product(id).catch(log.error); + + if (!prod) { + log.warn(`Product ${id} Not Found`); + return setTrue(); + } + + let item = { + ...detail, + Name: prod.Name, + Category: prod.Category || "Pending" + }; + + setDetail(item); + + const [_, cover] = await hub.PhotoList(id, log); + + if (!cover) + log.warn(`Product ${id} has no photo`); + + setDetail(item = { + ...item, + Cover: cover + }); + + const count = await AdminHub.Product.Get.Count(id).catch(log.error); + + count && setDetail({ + ...item, + ...count + }); + }, []); + + if (block) + return null; + + return ( + key={id}> + {({ renderCell }) => renderCell(detail)} + + ); +} diff --git a/src/Pages/Admin/Product/Variant/Edit/index.tsx b/src/Pages/Admin/Product/Variant/Edit/index.tsx index 305f661..10352d2 100644 --- a/src/Pages/Admin/Product/Variant/Edit/index.tsx +++ b/src/Pages/Admin/Product/Variant/Edit/index.tsx @@ -1,6 +1,6 @@ import { Button, DataGridCell, DataGridHeaderCell, Dialog, DialogActions, DialogBody, DialogContent, DialogSurface, DialogTitle, DialogTrigger, TableColumnDefinition, createTableColumn, makeStyles, tokens } from "@fluentui/react-components"; import { DismissRegular, EditRegular } from "@fluentui/react-icons"; -import { DelegateDataGrid } from "~/Components/DataGrid/Delegate"; +import { DelegateDataGrid } from "~/Components/DataGrid"; import { ColFlex } from "~/Helpers/Styles"; import { IVariantItem } from ".."; import { AdminProductTypeDelete } from "./Delete"; diff --git a/src/Pages/Admin/Product/Variant/index.tsx b/src/Pages/Admin/Product/Variant/index.tsx index 0c1dd0e..37edcaf 100644 --- a/src/Pages/Admin/Product/Variant/index.tsx +++ b/src/Pages/Admin/Product/Variant/index.tsx @@ -1,6 +1,6 @@ import { DataGridCell, DataGridHeaderCell, Subtitle1, TableColumnDefinition, createTableColumn, makeStyles } from "@fluentui/react-components"; import { useRequest } from "ahooks"; -import { DelegateDataGrid } from "~/Components/DataGrid/Delegate"; +import { DelegateDataGrid } from "~/Components/DataGrid"; import { Logger } from "~/Helpers/Logger"; import { Flex } from "~/Helpers/Styles"; import { AdminHub } from "~/ShopNet/Admin"; @@ -149,6 +149,6 @@ export function AdminProductVariant({ ProdId }: { ProdId: number }) {
- + } diff --git a/src/Pages/Admin/Product/index.tsx b/src/Pages/Admin/Product/index.tsx index bca346f..a3b8308 100644 --- a/src/Pages/Admin/Product/index.tsx +++ b/src/Pages/Admin/Product/index.tsx @@ -1,21 +1,28 @@ -import { Body1Strong, DataGridCell, DataGridHeaderCell, TableColumnDefinition, createTableColumn, makeStyles } from "@fluentui/react-components"; -import { useRequest } from "ahooks"; +import { Body1Strong, DataGrid, DataGridBody, DataGridCell, DataGridHeader, DataGridHeaderCell, DataGridRow, SkeletonItem, TableColumnDefinition, createTableColumn, makeStyles } from "@fluentui/react-components"; import { MakeCoverCol } from "~/Helpers/CoverCol"; import { Logger } from "~/Helpers/Logger"; import { AdminHub } from "~/ShopNet/Admin"; -import { DelegateDataGrid } from "../../../Components/DataGrid/Delegate"; import { AdminProductDetail } from "./Detail"; +import { AdminProductRow } from "./Row"; /** * @author Aloento * @since 0.1.0 - * @version 0.1.0 + * @version 0.2.0 */ -export interface IProductItem { +export interface IProductItem extends Partial { Id: number; Cover: string; Name: string; - Category: string; + Category?: string; +} + +/** + * @author Aloento + * @since 1.3.0 + * @version 0.1.0 + */ +export interface IProductCount { Variant: number; Combo: number; Stock: number; @@ -43,15 +50,13 @@ const log = new Logger("Admin", "Product"); /** * @author Aloento * @since 0.1.0 - * @version 0.1.1 + * @version 0.2.0 */ const columns: TableColumnDefinition[] = [ MakeCoverCol(50, log), - createTableColumn({ + createTableColumn({ columnId: "Product", - renderHeaderCell: () => { - return Product - }, + renderHeaderCell: () => Product, renderCell(item) { return ( @@ -60,11 +65,9 @@ const columns: TableColumnDefinition[] = [ ) } }), - createTableColumn({ + createTableColumn({ columnId: "Category", - renderHeaderCell: () => { - return Category - }, + renderHeaderCell: () => Category, renderCell(item) { return ( @@ -73,42 +76,34 @@ const columns: TableColumnDefinition[] = [ ) } }), - createTableColumn({ + createTableColumn({ columnId: "Variant", - renderHeaderCell: () => { - return Variant - }, + renderHeaderCell: () => Variant, renderCell(item) { return {item.Variant} } }), - createTableColumn({ + createTableColumn({ columnId: "Combo", - renderHeaderCell: () => { - return Combo - }, + renderHeaderCell: () => Combo, renderCell(item) { return {item.Combo} } }), - createTableColumn({ + createTableColumn({ columnId: "Stock", - renderHeaderCell: () => { - return Stock - }, + renderHeaderCell: () => Stock, renderCell(item) { return {item.Stock} } }), - createTableColumn({ + createTableColumn({ columnId: "Action", - renderHeaderCell: () => { - return ( - - Detail - - ) - }, + renderHeaderCell: () => ( + + Detail + + ), renderCell(item) { return ( @@ -122,14 +117,27 @@ const columns: TableColumnDefinition[] = [ /** * @author Aloento * @since 0.1.0 - * @version 0.1.1 + * @version 2.0.0 */ export function AdminProduct() { - const { data } = useRequest(() => AdminHub.Product.Get.List(log), { - onError: log.error - }); + const idList = AdminHub.Product.Get.useList(log); return ( - + + + + {({ renderHeaderCell }) => renderHeaderCell()} + + + + > + {(data) => } + + + {!idList && } + ) } diff --git a/src/Pages/Admin/User/index.tsx b/src/Pages/Admin/User/index.tsx index 6a81c95..7c8f144 100644 --- a/src/Pages/Admin/User/index.tsx +++ b/src/Pages/Admin/User/index.tsx @@ -1,6 +1,6 @@ -import { TableColumnDefinition, createTableColumn } from "@fluentui/react-components"; +import { DataGridCell, DataGridHeaderCell, TableColumnDefinition, createTableColumn } from "@fluentui/react-components"; import { useRequest } from "ahooks"; -import { DefaultDataGrid } from "~/Components/DataGrid"; +import { DelegateDataGrid } from "~/Components/DataGrid"; import { Logger } from "~/Helpers/Logger"; import { AdminHub } from "~/ShopNet/Admin"; import { AdminUserDelete } from "./Delete"; @@ -23,55 +23,49 @@ const log = new Logger("Admin", "User"); /** * @author Aloento * @since 0.1.0 - * @version 0.2.0 + * @version 0.3.0 */ const columns: TableColumnDefinition[] = [ createTableColumn({ columnId: "Id", - renderHeaderCell: () => { - return "Id"; - }, + renderHeaderCell: () => "Id", renderCell(item) { return item.Id; } }), createTableColumn({ columnId: "Name", - renderHeaderCell: () => { - return "Real Name"; - }, + renderHeaderCell: () => "Real Name", renderCell(item) { return item.Name; } }), createTableColumn({ columnId: "Email", - renderHeaderCell: () => { - return "E-Mail"; - }, + renderHeaderCell: () => "E-Mail", renderCell(item) { return item.EMail; } }), createTableColumn({ columnId: "Admin", - renderHeaderCell: () => { - return "Admin"; - }, + renderHeaderCell: () => "Admin", renderCell(item) { return }, }), createTableColumn({ columnId: "Delete", - renderHeaderCell: () => { - return "Delete"; - }, + renderHeaderCell: () => "Delete", renderCell(item) { return }, }) -] +].map(({ renderHeaderCell, renderCell, ...col }) => ({ + ...col, + renderHeaderCell: () => {renderHeaderCell()}, + renderCell: (item) => {renderCell(item)} +})) /** * @author Aloento @@ -83,7 +77,7 @@ let refreshUser: () => void; /** * @author Aloento * @since 0.1.0 - * @version 0.2.1 + * @version 0.2.2 */ export function AdminUser() { const { data, run } = useRequest(() => AdminHub.User.Get.List(), { @@ -92,6 +86,6 @@ export function AdminUser() { refreshUser = run; return ( - + ) } diff --git a/src/Pages/Admin/index.tsx b/src/Pages/Admin/index.tsx index b9703d0..233e3b6 100644 --- a/src/Pages/Admin/index.tsx +++ b/src/Pages/Admin/index.tsx @@ -31,13 +31,13 @@ function Admin() { } }, [path]); - const { data, loading } = Hub.User.Get.useMe(log); + const data = Hub.User.Get.useMe(log); - if (loading) + if (!data) return ; - if (!data?.Admin) - return Nav("/"); + if (!data.Admin) + return Nav("/")!; return content; } diff --git a/src/Pages/Gallery/index.tsx b/src/Pages/Gallery/index.tsx index bdebd11..09df756 100644 --- a/src/Pages/Gallery/index.tsx +++ b/src/Pages/Gallery/index.tsx @@ -24,7 +24,7 @@ const useStyles = makeStyles({ * @since 0.1.0 * @version 0.1.0 */ -export interface IProductInfo { +export interface IGallery { Cover: string; Name: string; } diff --git a/src/Pages/History/Detail.tsx b/src/Pages/History/Detail.tsx index 2c27825..545e557 100644 --- a/src/Pages/History/Detail.tsx +++ b/src/Pages/History/Detail.tsx @@ -4,7 +4,7 @@ import { useConst } from "@fluentui/react-hooks"; import { DismissRegular, OpenRegular } from "@fluentui/react-icons"; import { useBoolean, useRequest } from "ahooks"; import { useEffect } from "react"; -import { DelegateDataGrid } from "~/Components/DataGrid/Delegate"; +import { DelegateDataGrid } from "~/Components/DataGrid"; import { OrderInfo } from "~/Components/OrderInfo"; import { useRouter } from "~/Components/Router"; import { ICartItem } from "~/Components/ShopCart"; @@ -160,7 +160,7 @@ export function OrderDetail({ OrderId, ParentLog }: { OrderId: number } & ICompL diff --git a/src/Pages/History/index.tsx b/src/Pages/History/index.tsx index 6a19c73..7af6384 100644 --- a/src/Pages/History/index.tsx +++ b/src/Pages/History/index.tsx @@ -1,6 +1,6 @@ import { useConst } from "@fluentui/react-hooks"; import { useRequest } from "ahooks"; -import { DelegateDataGrid } from "~/Components/DataGrid/Delegate"; +import { DelegateDataGrid } from "~/Components/DataGrid"; import { Logger } from "~/Helpers/Logger"; import { Hub } from "~/ShopNet"; import { HistoryColumns } from "./Columns"; @@ -32,7 +32,7 @@ function History() { }); return ( - HistoryColumns(log))} /> + HistoryColumns(log))} /> ) } diff --git a/src/Pages/Product/Carousel.tsx b/src/Pages/Product/Carousel.tsx index 5012102..fe451d4 100644 --- a/src/Pages/Product/Carousel.tsx +++ b/src/Pages/Product/Carousel.tsx @@ -12,7 +12,7 @@ import { Hub } from "~/ShopNet"; * @since 0.1.0 * @version 0.1.0 */ -const useStyle = makeStyles({ +const useStyles = makeStyles({ img: { aspectRatio: "1", ...Cover, @@ -30,22 +30,21 @@ const log = new Logger("Product", "Carousel"); * @version 0.3.0 */ export function ProductCarousel({ Id }: { Id: number; }) { - const style = useStyle(); + const style = useStyles(); const [imgs, setImgs] = useState<[string, string?][]>([[img]]); - useRequest(() => Hub.Product.Get.Carousel(Id, log), { - async onSuccess(data) { - setImgs(Array<[string, string?]>(data.length).fill([img])); + useRequest(() => Hub.Product.Get.PhotoList(Id, log), { + async onSuccess([list]) { + setImgs(Array<[string, string?]>(list.length).fill([img])); - for (let i = 0; i < data.length; i++) { - Hub.Storage.GetBySlice(data[i].Cover, log).then(slice => { + for (let i = 0; i < list.length; i++) + Hub.Storage.GetBySlice(list[i].ObjectId, log).then(slice => { setImgs(x => { const n = [...x]; - n[i] = [URL.createObjectURL(new Blob(slice)), data[i].Caption]; + n[i] = [URL.createObjectURL(new Blob(slice)), list[i].Caption]; return n; }); }); - } }, onError: log.error }); diff --git a/src/Pages/Product/Context.tsx b/src/Pages/Product/Context.tsx index 8721f9b..abb1d8e 100644 --- a/src/Pages/Product/Context.tsx +++ b/src/Pages/Product/Context.tsx @@ -1,5 +1,5 @@ import { isEqual } from "lodash-es"; -import { createContext, useContext, useEffect, useState } from "react"; +import { createContext, useContext, useState } from "react"; import { IComboItem } from "../Admin/Product/Combo"; /** @@ -35,23 +35,17 @@ export function useRadioGroup() { /** * @author Aloento * @since 0.5.0 - * @version 0.3.0 + * @version 0.3.1 */ export function RadioGroupContext({ children }: { children: React.ReactNode }) { const [curr, setCurr] = useState({}); - const [combo, setCombo] = useState(); const [all, setAll] = useState([]); - useEffect(() => { - const combo = all.find(x => isEqual(x.Combo, curr)); - setCombo(combo); - }, [curr, all]); - return ( isEqual(x.Combo, curr)), SetAll: setAll }}> {children} diff --git a/src/Pages/Product/Lexical.tsx b/src/Pages/Product/Lexical.tsx index def3984..0db1835 100644 --- a/src/Pages/Product/Lexical.tsx +++ b/src/Pages/Product/Lexical.tsx @@ -1,34 +1,40 @@ import { makeStyles, shorthands, tokens } from "@fluentui/react-components"; import { useRequest } from "ahooks"; -import { BaseCard } from "~/Helpers/Styles"; -import { Lexical } from "~/Lexical"; +import { BaseCard, ColFlex } from "~/Helpers/Styles"; +import { Lexical } from "~/Lexical/Lazy"; import { Hub } from "~/ShopNet"; /** * @author Aloento * @since 0.5.0 - * @version 0.1.0 + * @version 0.1.1 */ -const useStyle = makeStyles({ +const useStyles = makeStyles({ lex: { ...BaseCard, ...shorthands.padding(tokens.spacingHorizontalXL) + }, + skel: { + ...ColFlex, + rowGap: tokens.spacingVerticalM } }) /** * @author Aloento * @since 0.5.0 - * @version 0.1.0 + * @version 0.2.0 */ export function ProductLexicalRender({ ProdId }: { ProdId: number }) { - const style = useStyle(); - + const style = useStyles(); const { data, loading } = useRequest(() => Hub.Product.Get.Lexical(ProdId)); + if (loading || !data) + return null; + return (
- {loading ? "Loading..." : } +
) } diff --git a/src/Pages/Product/Quantity.tsx b/src/Pages/Product/Quantity.tsx index 7b6bd15..e7f9df6 100644 --- a/src/Pages/Product/Quantity.tsx +++ b/src/Pages/Product/Quantity.tsx @@ -10,7 +10,7 @@ import { useRadioGroup } from "./Context"; * @since 1.2.0 * @version 0.1.0 */ -const useStyle = makeStyles({ +const useStyles = makeStyles({ fore: { color: tokens.colorBrandForeground1 }, @@ -35,7 +35,7 @@ const useStyle = makeStyles({ * @version 0.2.0 */ export function ProductQuantity({ Id }: { Id: number; }) { - const style = useStyle(); + const style = useStyles(); const { Combo } = useRadioGroup(); const [_, max] = useLimit(Id); diff --git a/src/Pages/Product/RadioGroup.tsx b/src/Pages/Product/RadioGroup.tsx index 26d8ac0..607d217 100644 --- a/src/Pages/Product/RadioGroup.tsx +++ b/src/Pages/Product/RadioGroup.tsx @@ -7,7 +7,7 @@ import { useRadioGroup } from "./Context"; * @since 0.1.0 * @version 0.1.0 */ -const useStyle = makeStyles({ +const useStyles = makeStyles({ fore: { color: tokens.colorBrandForeground1, textTransform: "uppercase" @@ -41,7 +41,7 @@ interface IProductRadioGroup { * @version 0.2.2 */ export function ProductRadioGroup({ Variant, Types }: IProductRadioGroup) { - const style = useStyle(); + const style = useStyles(); const { Current, Update } = useRadioGroup(); return ( diff --git a/src/Pages/Product/index.tsx b/src/Pages/Product/index.tsx index 11b94b1..c2a1b2e 100644 --- a/src/Pages/Product/index.tsx +++ b/src/Pages/Product/index.tsx @@ -9,6 +9,7 @@ import { Hub } from "~/ShopNet"; import { IComboItem } from "../Admin/Product/Combo"; import { ProductCarousel } from "./Carousel"; import { RadioGroupContext } from "./Context"; +import { ProductLexicalRender } from "./Lexical"; import { ProductQuantity } from "./Quantity"; import { ProductRadioList } from "./RadioList"; @@ -17,7 +18,7 @@ import { ProductRadioList } from "./RadioList"; * @since 0.1.0 * @version 0.1.0 */ -const useStyle = makeStyles({ +const useStyles = makeStyles({ main: ColFlex, info: { ...Flex, @@ -26,15 +27,18 @@ const useStyle = makeStyles({ detail: { ...BaseCard, ...Col, - height: "fit-content", - flexBasis: "50%", - flexShrink: 0, rowGap: tokens.spacingVerticalXL, paddingTop: tokens.spacingVerticalM, paddingLeft: tokens.spacingHorizontalXXL, paddingRight: tokens.spacingHorizontalXXL, paddingBottom: tokens.spacingHorizontalXXL }, + lex: { + ...ColFlex, + flexBasis: "50%", + flexShrink: 0, + rowGap: tokens.spacingVerticalXL, + }, fore: { color: tokens.colorBrandForeground1 } @@ -55,10 +59,10 @@ const log = new Logger("Product"); /** * @author Aloento * @since 0.1.0 - * @version 0.2.0 + * @version 0.3.0 */ function Product() { - const style = useStyle(); + const style = useStyles(); const { Nav, Paths } = useRouter(); const id = parseInt(Paths.at(1)!); @@ -82,22 +86,24 @@ function Product() {
-
- - {data?.Name || "Loading..."} - +
+
+ + {data?.Name || "Loading..."} + - + - + - + - + +
+ +
- - {/* */}
) diff --git a/src/Pages/index.tsx b/src/Pages/index.tsx index 518fa3b..a7e463f 100644 --- a/src/Pages/index.tsx +++ b/src/Pages/index.tsx @@ -12,7 +12,7 @@ import { NotFound } from "./404"; * @since 0.2.2 MusiLand * @version 0.1.0 */ -const useStyle = makeStyles({ +const useStyles = makeStyles({ body: { ...ColFlex, minWidth: "1024px", @@ -41,7 +41,7 @@ const useStyle = makeStyles({ * @version 0.4.0 */ export function Layout() { - const style = useStyle(); + const style = useStyles(); const { Paths } = useRouter(); const path = Paths.at(0); diff --git a/src/ShopNet/Admin/AdminNet.ts b/src/ShopNet/Admin/AdminNet.ts index 175e1d0..d4aaab8 100644 --- a/src/ShopNet/Admin/AdminNet.ts +++ b/src/ShopNet/Admin/AdminNet.ts @@ -1,13 +1,12 @@ import { HttpTransportType, HubConnectionBuilder, LogLevel } from "@microsoft/signalr"; import { MessagePackHubProtocol } from "@microsoft/signalr-protocol-msgpack"; -import { Dayjs } from "dayjs"; -import { Common, IConcurrency } from "../Database"; +import { Common } from "../Database"; import { SignalR } from "../SignalR"; /** * @author Aloento * @since 1.0.0 - * @version 0.1.1 + * @version 0.1.2 */ export abstract class AdminNet extends SignalR { /** "|", "AdminNet" */ @@ -40,23 +39,10 @@ export abstract class AdminNet extends SignalR { /** * @author Aloento - * @since 1.0.0 - * @version 0.1.0 - */ - protected static override WithVersionCache( - key: string | number, methodName: string - ): Promise { - return super.WithVersionCache(key, methodName, true); - } - - /** - * @author Aloento - * @since 1.0.0 + * @since 1.3.0 * @version 0.1.0 */ - protected static override WithTimeCache( - key: string | number, methodName: string, exp: Dayjs, ...args: any[] - ): Promise { - return super.WithTimeCache(`Admin_${key}`, methodName, exp, ...args); + public static override Index(key: string | number, methodName: string): string { + return `${methodName}_Admin_${key}`; } } diff --git a/src/ShopNet/Admin/Order/Entity.ts b/src/ShopNet/Admin/Order/Entity.ts index e87a447..2c2c5c1 100644 --- a/src/ShopNet/Admin/Order/Entity.ts +++ b/src/ShopNet/Admin/Order/Entity.ts @@ -19,7 +19,7 @@ export abstract class AdminOrderEntity extends AdminNet { TrackingNumber?: string; } & IConcurrency) | void> { this.EnsureLogin(); - return this.WithVersionCache(key, "OrderEntity"); + return this.GetVersionCache(key, "OrderEntity"); } /** @@ -33,6 +33,6 @@ export abstract class AdminOrderEntity extends AdminNet { CreateAt: Date; } & IConcurrency) | void> { this.EnsureLogin(); - return this.WithVersionCache(key, "CommentEntity"); + return this.GetVersionCache(key, "CommentEntity"); } } diff --git a/src/ShopNet/Admin/Order/Get.ts b/src/ShopNet/Admin/Order/Get.ts index 6c5c579..20252f4 100644 --- a/src/ShopNet/Admin/Order/Get.ts +++ b/src/ShopNet/Admin/Order/Get.ts @@ -1,10 +1,9 @@ -import dayjs from "dayjs"; import { ICartItem } from "~/Components/ShopCart"; import { Logger } from "~/Helpers/Logger"; import { IAdminOrderItem } from "~/Pages/Admin/Order"; import { IComment } from "~/Pages/History/Comment"; import { IOrderDetail } from "~/Pages/History/Detail"; -import { ProductEntity } from "~/ShopNet/Product/Entity"; +import { ProductData } from "~/ShopNet/Product/Data"; import { ProductGet } from "~/ShopNet/Product/Get"; import { AdminNet } from "../AdminNet"; import { AdminUserEntity } from "../User/Entity"; @@ -28,13 +27,13 @@ export abstract class AdminOrderGet extends AdminNet { this.EnsureLogin(); const log = pLog.With(...this.Log, "List"); - const list = await this.WithTimeCache< + const list = await this.GetTimeCache< { OrderId: number; Products: number[]; Quantity: number; }[] - >("", "OrderGetList", dayjs().add(1, "m")); + >("", "OrderGetList", (x) => x.add(1, "m")); const items: IAdminOrderItem[] = []; @@ -49,7 +48,7 @@ export abstract class AdminOrderGet extends AdminNet { const prodNames: string[] = []; for (const prodId of meta.Products) { - const prod = await ProductEntity.Product(prodId); + const prod = await ProductData.Product(prodId); if (!prod) { log.warn(`[Mismatch] Product ${prodId} not found`); @@ -89,7 +88,7 @@ export abstract class AdminOrderGet extends AdminNet { this.EnsureLogin(); const log = pLog.With(...this.Log, "Detail"); - const meta = await this.WithTimeCache< + const meta = await this.GetTimeCache< { Items: { Types: number[]; @@ -97,7 +96,7 @@ export abstract class AdminOrderGet extends AdminNet { }[], Comments: number[]; } - >(orderId, "OrderGetDetail", dayjs().add(1, "m"), orderId); + >(orderId, "OrderGetDetail", (x) => x.add(1, "m"), orderId); const items: ICartItem[] = []; let index = 0; @@ -107,14 +106,14 @@ export abstract class AdminOrderGet extends AdminNet { let prodId = 0; for (const typeId of combo.Types) { - const type = await ProductEntity.Type(typeId); + const type = await ProductData.Type(typeId); if (!type) { log.warn(`[Mismatch] Type ${typeId} not found. Order : ${orderId}`); continue; } - const vari = await ProductEntity.Variant(type.VariantId); + const vari = await ProductData.Variant(type.VariantId); if (!vari) { log.warn(`[Mismatch] Variant ${type.VariantId} not found. Type : ${typeId}, Order : ${orderId}`); @@ -125,15 +124,14 @@ export abstract class AdminOrderGet extends AdminNet { prodId = vari.ProductId; } - const prod = await ProductEntity.Product(prodId); + const prod = await ProductData.Product(prodId); if (!prod) { log.warn(`[Mismatch] Product ${prodId} not found. Order : ${orderId}`); continue; } - const list = await ProductGet.PhotoList(prodId); - const cover = await this.FindCover(list, prodId, log); + const [_, cover] = await ProductGet.PhotoList(prodId, log); if (!cover) log.warn(`Product ${prodId} has no photo`); diff --git a/src/ShopNet/Admin/Product/Delete.ts b/src/ShopNet/Admin/Product/Delete.ts index 39da2ed..046598e 100644 --- a/src/ShopNet/Admin/Product/Delete.ts +++ b/src/ShopNet/Admin/Product/Delete.ts @@ -1,5 +1,6 @@ import { useRequest } from "ahooks"; import { Options } from "ahooks/lib/useRequest/src/types"; +import dayjs from "dayjs"; import { AdminNet } from "../AdminNet"; /** @@ -63,12 +64,14 @@ export abstract class AdminProductDelete extends AdminNet { /** * @author Aloento * @since 1.0.0 - * @version 0.2.0 + * @version 0.2.1 */ public static useProduct(options: Options) { return useRequest(async prodId => { const res = await this.Invoke("ProductDeleteProduct", prodId); this.EnsureTrue(res); + + this.UpdateCache(x => x.filter(x => x !== prodId), "", "ProductGetList", dayjs().add(1, "m")); return res; }, options); } diff --git a/src/ShopNet/Admin/Product/Get.ts b/src/ShopNet/Admin/Product/Get.ts index 485a683..c74b4b3 100644 --- a/src/ShopNet/Admin/Product/Get.ts +++ b/src/ShopNet/Admin/Product/Get.ts @@ -1,8 +1,8 @@ -import dayjs from "dayjs"; +import { useConst } from "@fluentui/react-hooks"; +import { useLiveQuery } from "dexie-react-hooks"; import type { Logger } from "~/Helpers/Logger"; -import { IProductItem } from "~/Pages/Admin/Product"; +import { IProductCount } from "~/Pages/Admin/Product"; import { IVariantItem } from "~/Pages/Admin/Product/Variant"; -import { ProductEntity } from "~/ShopNet/Product/Entity"; import { ProductGet } from "~/ShopNet/Product/Get"; import { AdminNet } from "../AdminNet"; @@ -18,48 +18,26 @@ export abstract class AdminProductGet extends AdminNet { /** * @author Aloento * @since 0.5.0 - * @version 1.0.1 + * @version 3.0.0 */ - public static async List(pLog: Logger): Promise { - const log = pLog.With(...this.Log, "List"); - - const list = await this.WithTimeCache< - { - ProductId: number; - Variant: number; - Combo: number; - Stock: number; - }[] - >("", "ProductGetList", dayjs().add(1, "m")); - - const items: IProductItem[] = []; - - for (const meta of list) { - const prod = await ProductEntity.Product(meta.ProductId); - - if (!prod) { - log.warn(`Product ${meta.ProductId} Not Found`); - continue; - } + public static useList(pLog: Logger): number[] | void { + const log = useConst(() => pLog.With(...this.Log, "List")); - const photos = await ProductGet.PhotoList(meta.ProductId); - const cover = await this.FindCover(photos, meta.ProductId, log); + const res = useLiveQuery(() => + this.GetTimeCache("", "ProductGetList", (x) => x.add(1, "m")) + .catch(log.error) + ); - if (!cover) - log.warn(`Product ${meta.ProductId} has no photo`); - - items.push({ - Id: meta.ProductId, - Cover: cover || "", - Name: prod.Name, - Category: prod.Category || "Pending", - Variant: meta.Variant, - Combo: meta.Combo, - Stock: meta.Stock - }); - } + return res; + } - return items; + /** + * @author Aloento + * @since 1.3.0 + * @version 0.1.0 + */ + public static Count(prodId: number): Promise { + return this.GetTimeCache(prodId, "ProductGetCount", (x) => x.add(1, "m"), prodId); } /** @@ -68,7 +46,7 @@ export abstract class AdminProductGet extends AdminNet { * @version 1.0.0 */ public static async Name(prodId: number): Promise { - const prod = await ProductEntity.Product(prodId); + const prod = await ProductGet.Product(prodId); if (!prod) throw new Error(`Product ${prodId} Not Found`); @@ -82,7 +60,7 @@ export abstract class AdminProductGet extends AdminNet { * @version 1.0.0 */ public static async Category(prodId: number): Promise { - const prod = await ProductEntity.Product(prodId); + const prod = await ProductGet.Product(prodId); if (!prod) throw new Error(`Product ${prodId} Not Found`); @@ -98,17 +76,17 @@ export abstract class AdminProductGet extends AdminNet { public static async Variants(prodId: number, pLog: Logger): Promise { const log = pLog.With(...this.Log, "Variants"); - const list = await this.WithTimeCache< + const list = await this.GetTimeCache< { VariantId: number; Types: number[]; }[] - >(prodId, "ProductGetVariants", dayjs().add(1, "m"), prodId); + >(prodId, "ProductGetVariants", (x) => x.add(1, "m"), prodId); const items: IVariantItem[] = []; for (const meta of list) { - const vari = await ProductEntity.Variant(meta.VariantId); + const vari = await ProductGet.Variant(meta.VariantId); if (!vari) { log.warn(`Variant ${meta} Not Found. Product : ${prodId}`); @@ -118,7 +96,7 @@ export abstract class AdminProductGet extends AdminNet { const types: string[] = []; for (const typeId of meta.Types) { - const type = await ProductEntity.Type(typeId); + const type = await ProductGet.Type(typeId); if (!type) { log.warn(`Type ${typeId} Not Found. Variant : ${meta.VariantId}, Product : ${prodId}`); diff --git a/src/ShopNet/Admin/Product/Post.ts b/src/ShopNet/Admin/Product/Post.ts index 4b84d3b..70b4b43 100644 --- a/src/ShopNet/Admin/Product/Post.ts +++ b/src/ShopNet/Admin/Product/Post.ts @@ -1,8 +1,10 @@ import { useConst } from "@fluentui/react-hooks"; import { useRequest } from "ahooks"; import { Options } from "ahooks/lib/useRequest/src/types"; +import dayjs from "dayjs"; import { Subject } from "rxjs"; import { Logger } from "~/Helpers/Logger"; +import { CurrentEditor } from "~/Lexical/Utils"; import { AdminNet } from "../AdminNet"; /** @@ -17,10 +19,14 @@ export abstract class AdminProductPost extends AdminNet { /** * @author Aloento * @since 0.5.0 - * @version 0.2.0 + * @version 0.4.0 */ public static useCreate(options: Options) { - return useRequest(name => this.Invoke("ProductPostCreate", name), options); + return useRequest(async name => { + const res = await this.Invoke("ProductPostCreate", name); + this.UpdateCache(x => [res, ...x], "", "ProductGetList", dayjs().add(1, "m")) + return res; + }, options); } /** @@ -86,4 +92,23 @@ export abstract class AdminProductPost extends AdminNet { public static useCombo(options: Options, number]>) { return useRequest((prodId, combo, stock) => this.Invoke("ProductPostCombo", prodId, combo, stock), options); } + + /** + * @author Aloento + * @since 1.2.0 + * @version 0.1.0 + */ + public static useLexical(options: Options) { + return useRequest(async prodId => { + const state = CurrentEditor?.getEditorState(); + let json: string | undefined; + + if (state && !state.isEmpty()) + json = JSON.stringify(state.toJSON()); + + const res = await this.Invoke("ProductPostDescription", prodId, json); + this.EnsureTrue(res); + return res; + }, options); + } } diff --git a/src/ShopNet/Admin/User/Entity.ts b/src/ShopNet/Admin/User/Entity.ts index f8f0a08..8981a61 100644 --- a/src/ShopNet/Admin/User/Entity.ts +++ b/src/ShopNet/Admin/User/Entity.ts @@ -20,6 +20,6 @@ export abstract class AdminUserEntity extends AdminNet { Admin?: boolean; } & IConcurrency) | void> { this.EnsureLogin(); - return this.WithVersionCache(key, "UserEntity"); + return this.GetVersionCache(key, "UserEntity"); } } diff --git a/src/ShopNet/Admin/User/Get.ts b/src/ShopNet/Admin/User/Get.ts index e18a761..04ac1ae 100644 --- a/src/ShopNet/Admin/User/Get.ts +++ b/src/ShopNet/Admin/User/Get.ts @@ -1,4 +1,3 @@ -import dayjs from "dayjs"; import { IPersona } from "~/Components/ShopCart/Persona"; import { IUserItem } from "~/Pages/Admin/User"; import { AdminNet } from "../AdminNet"; @@ -36,7 +35,7 @@ export abstract class AdminUserGet extends AdminNet { * @version 1.0.0 */ public static async List(): Promise { - const list = await this.WithTimeCache("", "UserGetList", dayjs().add(1, "m")); + const list = await this.GetTimeCache("", "UserGetList", (x) => x.add(1, "m")); const res: IUserItem[] = []; for (const userId of list) { diff --git a/src/ShopNet/Gallery/Get.ts b/src/ShopNet/Gallery/Get.ts index 7885e4a..e4ba8c2 100644 --- a/src/ShopNet/Gallery/Get.ts +++ b/src/ShopNet/Gallery/Get.ts @@ -1,4 +1,3 @@ -import dayjs from "dayjs"; import { ShopNet } from "../ShopNet"; /** @@ -13,7 +12,7 @@ export abstract class GalleryGet extends ShopNet { * @version 0.2.1 */ public static Categories(): Promise { - return this.WithTimeCache("", "GalleryGetCategories", dayjs().add(1, "m")); + return this.GetTimeCache("", "GalleryGetCategories", (x) => x.add(1, "m")); } /** @@ -22,7 +21,7 @@ export abstract class GalleryGet extends ShopNet { * @version 0.2.1 */ public static async Products(category: string): Promise<[number[], number]> { - const nums = await this.WithTimeCache(category, "GalleryGetProducts", dayjs().add(1, "m"), category); + const nums = await this.GetTimeCache(category, "GalleryGetProducts", (x) => x.add(1, "m"), category); return [ nums, diff --git a/src/ShopNet/Order/Entity.ts b/src/ShopNet/Order/Entity.ts index e542a62..fb104fa 100644 --- a/src/ShopNet/Order/Entity.ts +++ b/src/ShopNet/Order/Entity.ts @@ -18,7 +18,7 @@ export abstract class OrderEntity extends ShopNet { TrackingNumber?: string; } & IConcurrency) | void> { this.EnsureLogin(); - return this.WithVersionCache(key, "OrderEntity"); + return this.GetVersionCache(key, "OrderEntity"); } /** @@ -32,6 +32,6 @@ export abstract class OrderEntity extends ShopNet { CreateAt: Date; } & IConcurrency) | void> { this.EnsureLogin(); - return this.WithVersionCache(key, "CommentEntity"); + return this.GetVersionCache(key, "CommentEntity"); } } diff --git a/src/ShopNet/Order/Get.ts b/src/ShopNet/Order/Get.ts index 6dcb890..1d0fd36 100644 --- a/src/ShopNet/Order/Get.ts +++ b/src/ShopNet/Order/Get.ts @@ -1,10 +1,9 @@ -import dayjs from "dayjs"; import { ICartItem } from "~/Components/ShopCart"; import { Logger } from "~/Helpers/Logger"; import { IOrderItem } from "~/Pages/History"; import { IComment } from "~/Pages/History/Comment"; import { IOrderDetail } from "~/Pages/History/Detail"; -import { ProductEntity } from "../Product/Entity"; +import { ProductData } from "../Product/Data"; import { ProductGet } from "../Product/Get"; import { ShopNet } from "../ShopNet"; import { OrderEntity } from "./Entity"; @@ -27,13 +26,13 @@ export abstract class OrderGet extends ShopNet { this.EnsureLogin(); const log = pLog.With(...this.Log, "List"); - const list = await this.WithTimeCache< + const list = await this.GetTimeCache< { OrderId: number; Products: number[]; Quantity: number; }[] - >("", "OrderGetList", dayjs().add(1, "m")); + >("", "OrderGetList", (x) => x.add(1, "m")); const items: IOrderItem[] = []; @@ -48,7 +47,7 @@ export abstract class OrderGet extends ShopNet { const prodNames: string[] = []; for (const prodId of meta.Products) { - const prod = await ProductEntity.Product(prodId); + const prod = await ProductData.Product(prodId); if (!prod) { log.warn(`[Mismatch] Product ${prodId} not found`); @@ -80,7 +79,7 @@ export abstract class OrderGet extends ShopNet { this.EnsureLogin(); const log = pLog.With(...this.Log, "Detail"); - const meta = await this.WithTimeCache< + const meta = await this.GetTimeCache< { Items: { Types: number[]; @@ -88,7 +87,7 @@ export abstract class OrderGet extends ShopNet { }[], Comments: number[]; } - >(orderId, "OrderGetDetail", dayjs().add(1, "m"), orderId); + >(orderId, "OrderGetDetail", (x) => x.add(1, "m"), orderId); const items: ICartItem[] = []; let index = 0; @@ -98,14 +97,14 @@ export abstract class OrderGet extends ShopNet { let prodId = 0; for (const typeId of combo.Types) { - const type = await ProductEntity.Type(typeId); + const type = await ProductData.Type(typeId); if (!type) { log.warn(`[Mismatch] Type ${typeId} not found. Order : ${orderId}`); continue; } - const vari = await ProductEntity.Variant(type.VariantId); + const vari = await ProductData.Variant(type.VariantId); if (!vari) { log.warn(`[Mismatch] Variant ${type.VariantId} not found. Type : ${typeId}, Order : ${orderId}`); @@ -116,15 +115,14 @@ export abstract class OrderGet extends ShopNet { prodId = vari.ProductId; } - const prod = await ProductEntity.Product(prodId); + const prod = await ProductData.Product(prodId); if (!prod) { log.warn(`[Mismatch] Product ${prodId} not found. Order : ${orderId}`); continue; } - const list = await ProductGet.PhotoList(prodId); - const cover = await this.FindCover(list, prodId, log); + const [_, cover] = await ProductGet.PhotoList(prodId, log); if (!cover) log.warn(`Product ${prodId} has no photo`); diff --git a/src/ShopNet/Product/Data.ts b/src/ShopNet/Product/Data.ts new file mode 100644 index 0000000..996dec0 --- /dev/null +++ b/src/ShopNet/Product/Data.ts @@ -0,0 +1,75 @@ +import { IConcurrency } from "../Database"; +import { ShopNet } from "../ShopNet"; + +/** + * @author Aloento + * @since 1.0.0 + * @version 0.1.0 + */ +export abstract class ProductData extends ShopNet { + /** + * @author Aloento + * @since 1.0.0 + * @version 0.1.0 + * @liveSafe + */ + public static Product(key: number): Promise<{ + Name: string; + Category?: string; + } & IConcurrency> { + return this.GetVersionCache(key, "ProductEntity"); + } + + /** + * @author Aloento + * @since 1.0.0 + * @version 0.1.0 + * @liveSafe + */ + public static Lexical(key: number): Promise<{ + Description?: string; + } & IConcurrency> { + return this.GetVersionCache(key, "LexicalEntity"); + } + + /** + * @author Aloento + * @since 1.0.0 + * @version 0.1.0 + * @liveSafe + */ + public static Photo(key: number): Promise<{ + Cover?: boolean; + Caption?: string; + Order: number; + ObjectId: string; + } & IConcurrency> { + return this.GetVersionCache(key, "PhotoEntity"); + } + + /** + * @author Aloento + * @since 1.0.0 + * @version 0.1.0 + * @liveSafe + */ + public static Type(key: number): Promise<{ + Name: string; + VariantId: number; + } & IConcurrency> { + return this.GetVersionCache(key, "TypeEntity"); + } + + /** + * @author Aloento + * @since 1.0.0 + * @version 0.1.0 + * @liveSafe + */ + public static Variant(key: number): Promise<{ + Name: string; + ProductId: number; + } & IConcurrency> { + return this.GetVersionCache(key, "VariantEntity"); + } +} diff --git a/src/ShopNet/Product/Entity.ts b/src/ShopNet/Product/Entity.ts deleted file mode 100644 index bc6583f..0000000 --- a/src/ShopNet/Product/Entity.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { IConcurrency } from "../Database"; -import { ShopNet } from "../ShopNet"; - -/** - * @author Aloento - * @since 1.0.0 - * @version 0.1.0 - */ -export abstract class ProductEntity extends ShopNet { - /** - * @author Aloento - * @since 1.0.0 - * @version 0.1.0 - */ - public static Product(key: number): Promise<({ - Name: string; - Category?: string; - Description?: object; - } & IConcurrency) | void> { - return this.WithVersionCache(key, "ProductEntity"); - } - - /** - * @author Aloento - * @since 1.0.0 - * @version 0.1.0 - */ - public static Photo(key: number): Promise<({ - Cover?: boolean; - Caption?: string; - Order: number; - ObjectId: string; - } & IConcurrency) | void> { - return this.WithVersionCache(key, "PhotoEntity"); - } - - /** - * @author Aloento - * @since 1.0.0 - * @version 0.1.0 - */ - public static Type(key: number): Promise<({ - Name: string; - VariantId: number; - } & IConcurrency) | void> { - return this.WithVersionCache(key, "TypeEntity"); - } - - /** - * @author Aloento - * @since 1.0.0 - * @version 0.1.0 - */ - public static Variant(key: number): Promise<({ - Name: string; - ProductId: number; - } & IConcurrency) | void> { - return this.WithVersionCache(key, "VariantEntity"); - } -} diff --git a/src/ShopNet/Product/Get.ts b/src/ShopNet/Product/Get.ts index 98d4d07..15e74b2 100644 --- a/src/ShopNet/Product/Get.ts +++ b/src/ShopNet/Product/Get.ts @@ -1,35 +1,31 @@ -import dayjs from "dayjs"; import type { Logger } from "~/Helpers/Logger"; import { IComboItem } from "~/Pages/Admin/Product/Combo"; -import { IPhotoItem } from "~/Pages/Admin/Product/Photo"; -import type { IProductInfo } from "~/Pages/Gallery"; -import { ShopNet } from "../ShopNet"; -import { ProductEntity } from "./Entity"; -// import demo from "./demo.json"; +import type { IGallery } from "~/Pages/Gallery"; +import { ProductData } from "./Data"; /** * @author Aloento * @since 0.5.0 * @version 0.2.0 */ -export abstract class ProductGet extends ShopNet { +export abstract class ProductGet extends ProductData { /** "Product", "Get" */ protected static override readonly Log = [...super.Log, "Product", "Get"]; /** * @author Aloento * @since 0.5.0 - * @version 1.0.1 + * @version 1.1.0 + * @liveSafe */ - public static async Basic(prodId: number, pLog: Logger): Promise { + public static async Basic(prodId: number, pLog: Logger): Promise { const log = pLog.With(...this.Log, "Basic"); - const res = await ProductEntity.Product(prodId); + const res = await this.Product(prodId); if (!res) throw new Error(`Product ${prodId} Not Found`); - const list = await this.PhotoList(prodId); - const cover = await this.FindCover(list, prodId, log); + const [_, cover] = await this.PhotoList(prodId, pLog); if (cover) return { @@ -57,6 +53,7 @@ export abstract class ProductGet extends ShopNet { * @author Aloento * @since 0.5.0 * @version 1.0.1 + * @liveSafe */ public static async Combo(prodId: number, pLog: Logger): Promise { const log = pLog.With(...this.Log, "Combo"); @@ -68,14 +65,14 @@ export abstract class ProductGet extends ShopNet { const variType: Record = {}; for (const typeId of combo.Types) { - const type = await ProductEntity.Type(typeId); + const type = await this.Type(typeId); if (!type) { log.error(`[Mismatch] Type ${typeId} not found. Combo ${combo.ComboId} : Product ${prodId}`); continue; } - const vari = await ProductEntity.Variant(type.VariantId); + const vari = await this.Variant(type.VariantId); if (!vari) { log.error(`[Mismatch] Variant ${type.VariantId} not found. Combo ${combo.ComboId} : Type ${typeId} : Product ${prodId}`); @@ -95,64 +92,52 @@ export abstract class ProductGet extends ShopNet { return items; } - /** - * @author Aloento - * @since 0.5.0 - * @version 1.0.1 - */ - public static async Carousel(prodId: number, pLog: Logger): Promise { - const log = pLog.With(...this.Log, "Carousel"); - - const list = await this.PhotoList(prodId); - const photos: IPhotoItem[] = []; - - for (let i = 0; i < list.length; i++) { - const id = list[i]; - const p = await ProductEntity.Photo(id); - - if (p) - photos.push({ - Id: p.Order, - Cover: p.ObjectId, - Caption: p.Caption, - }); - else - log.warn(`Photo ${id} not found in Product ${prodId}`); - } - - return photos.sort((a, b) => a.Id - b.Id); - } - - /** - * @author Aloento - * @since 0.5.0 - * @version 0.1.0 - */ - public static async Lexical(id: number): Promise { - // await this.EnsureConnected(); - // return JSON.stringify(demo.editorState); - return "This is a demo"; - } - /** * @author Aloento * @since 1.0.0 * @version 0.1.0 + * @liveSafe */ public static ComboList(prodId: number): Promise<{ ComboId: number; Stock: number; Types: number[]; }[]> { - return this.WithTimeCache(prodId, "ProductGetComboList", dayjs().add(1, "m"), prodId); + return this.GetTimeCache(prodId, "ProductGetComboList", (x) => x.add(1, "m"), prodId); } /** * @author Aloento * @since 1.0.0 - * @version 0.1.0 + * @version 1.0.1 + * @liveSafe */ - public static PhotoList(prodId: number): Promise { - return this.WithTimeCache(prodId, "ProductGetPhotoList", dayjs().add(1, "m"), prodId); + public static async PhotoList(prodId: number, pLog: Logger): Promise<[Awaited>[], string]> { + const log = pLog.With(...this.Log, "PhotoList"); + + const ids = await this.GetTimeCache(prodId, "ProductGetPhotoList", (x) => x.add(1, "m"), prodId).catch(log.error); + let list = []; + let cover = ""; + + for (const photoId of ids || []) { + const photo = await this.Photo(photoId).catch(log.error); + + if (photo) { + list.push(photo); + + if (photo.Cover) + cover = photo.ObjectId; + } else + log.warn(`Photo ${photoId} not found in Product ${prodId}`); + } + + list = list.sort((a, b) => a.Order - b.Order); + + if (!cover && list.length > 0) { + log.warn(`Product ${prodId} has no cover photo, using first photo instead`); + return [list, list[0].ObjectId]; + } + + return [list, cover]; } } diff --git a/src/ShopNet/Product/demo.json b/src/ShopNet/Product/demo.json deleted file mode 100644 index 889363d..0000000 --- a/src/ShopNet/Product/demo.json +++ /dev/null @@ -1,196 +0,0 @@ -{ - "editorState": { - "root": { - "children": [ - { - "children": [ - { - "detail": 0, - "format": 0, - "mode": "normal", - "style": "", - "text": "These big teahouses are gone now. A few decades ago, there was at least one in every city. Tea was sold here, as well as simple snacks and food. People who played with birds would come here every day to rest their legs, drink tea and make the birds sing after they had had enough of playing with paintbrush and yellow birds. They also came here to discuss matters and to play matchmaker.", - "type": "text", - "version": 1 - } - ], - "direction": "ltr", - "format": "", - "indent": 0, - "type": "paragraph", - "version": 1 - }, - { - "children": [ - { - "detail": 0, - "format": 0, - "mode": "normal", - "style": "", - "text": "In those years, there are often fights, but there are always friends to mediate between the two sides; thirty to fifty mouths of fighters, by the mediator, they will drink a bowl of tea, eat a bowl of rotten meat noodles (big teahouse special food, cheap, made up of fast when), you can turn the war into peace. In short, this is a very important place of the day, something or nothing can come to sit for half a day.", - "type": "text", - "version": 1 - } - ], - "direction": "ltr", - "format": "", - "indent": 0, - "type": "paragraph", - "version": 1 - }, - { - "children": [ - { - "detail": 0, - "format": 0, - "mode": "normal", - "style": "", - "text": "Here one could hear the most absurd news, such as how a big spider somewhere had become a spirit and was struck by lightning. Strange opinions can also be heard here, such as building a big wall all along the seashore, which is enough to prevent foreign soldiers from coming ashore. You can also hear about the new accent created by a Peking opera singer and the best way to fry opium smoke.", - "type": "text", - "version": 1 - } - ], - "direction": "ltr", - "format": "", - "indent": 0, - "type": "paragraph", - "version": 1 - }, - { - "children": [ - { - "detail": 0, - "format": 0, - "mode": "normal", - "style": "", - "text": "It was also a place to see someone's newest curiosity - an unearthed jade fan pendant, or a three-colored snuff bottle. This is such an important place that it could be considered a place of cultural exchange.", - "type": "text", - "version": 1 - } - ], - "direction": "ltr", - "format": "", - "indent": 0, - "type": "paragraph", - "version": 1 - }, - { - "children": [ - { - "detail": 0, - "format": 0, - "mode": "normal", - "style": "", - "text": "[We are about to see such a teahouse now. [In the front door is the counter and the stove - in order to save some trouble, our stage can not stove; some pots and spoons in the back of the sound will be enough.", - "type": "text", - "version": 1 - } - ], - "direction": "ltr", - "format": "", - "indent": 0, - "type": "paragraph", - "version": 1 - }, - { - "children": [ - { - "detail": 0, - "format": 0, - "mode": "normal", - "style": "", - "text": "The room is very tall, with long and square tables, long and small benches, all of which are teahouses. In the backyard, visible through the window, there was a high pergola, under which there were also teahouses. Inside the house and under the pergola there are places to hang bird cages. A note saying \"Don't talk about national affairs\" was posted everywhere.", - "type": "text", - "version": 1 - } - ], - "direction": "ltr", - "format": "", - "indent": 0, - "type": "paragraph", - "version": 1 - }, - { - "children": [ - { - "detail": 0, - "format": 0, - "mode": "normal", - "style": "", - "text": "Two tea drinkers, whose names are unknown, are squinting, shaking their heads, and singing in a low voice. Two or three tea-goers, whose names are also unknown, are admiring the crickets in the tiles. Two men in gray overshirts-Song Enzi and Wu Xiangzi-are talking in low voices, and it looks as if they are the case officers (detectives) of the North Yamen.", - "type": "text", - "version": 1 - } - ], - "direction": "ltr", - "format": "", - "indent": 0, - "type": "paragraph", - "version": 1 - }, - { - "children": [ - { - "detail": 0, - "format": 0, - "mode": "normal", - "style": "", - "text": "[There is another group fight today, said to be over a domestic pigeon, causing a dispute that must be settled by force. If a real fight breaks out, it will take a life, because the fighters who are being asked to fight include the brothers of the Good Fight Battalion and the treasury soldiers, all of whom are very powerful.", - "type": "text", - "version": 1 - } - ], - "direction": "ltr", - "format": "", - "indent": 0, - "type": "paragraph", - "version": 1 - }, - { - "children": [ - { - "detail": 0, - "format": 0, - "mode": "normal", - "style": "", - "text": "Luckily, they couldn't really fight, because before the two sides could get the fighters together, someone had already interceded - and now the two sides were meeting here. Three by three, the fighters, all cross-eyed, short dress, at any time to come in, to the backyard.", - "type": "text", - "version": 1 - } - ], - "direction": "ltr", - "format": "", - "indent": 0, - "type": "paragraph", - "version": 1 - }, - { - "children": [ - { - "detail": 0, - "format": 0, - "mode": "normal", - "style": "", - "text": "[Master Ma Wu is in an unobtrusive corner, sitting alone, drinking tea. [Wang Lifa sits high up in the counter.", - "type": "text", - "version": 1 - } - ], - "direction": "ltr", - "format": "", - "indent": 0, - "type": "paragraph", - "version": 1 - } - ], - "direction": "ltr", - "format": "", - "indent": 0, - "type": "root", - "version": 1 - } - }, - "lastSaved": 1691673956427, - "source": "Playground", - "version": "0.11.3" -} diff --git a/src/ShopNet/SignalR.ts b/src/ShopNet/SignalR.ts index a7295cc..f60c19f 100644 --- a/src/ShopNet/SignalR.ts +++ b/src/ShopNet/SignalR.ts @@ -5,7 +5,7 @@ import { NotLoginError, NotTrueError } from "~/Helpers/Exceptions"; import type { Logger } from "~/Helpers/Logger"; import type { AdminNet } from "./Admin/AdminNet"; import { Common, Shared, type IConcurrency } from "./Database"; -import { ShopNet } from "./ShopNet"; +import type { ShopNet } from "./ShopNet"; /** * @author Aloento @@ -73,21 +73,56 @@ export abstract class SignalR { throw new NotTrueError(); } + /** + * @author Aloento + * @since 1.3.0 + * @version 0.1.0 + */ + public static Index(key: string | number, methodName: string): string { + return `${methodName}_${key}`; + } + + /** + * @author Aloento + * @since 1.3.0 + * @version 0.1.0 + */ + protected static async UpdateCache( + this: INet, action: (raw: T) => T, key: string | number, methodName: string, exp?: Dayjs + ) { + const index = this.Index(key, methodName); + const find = await Shared.Get(index); + + if (!find) + return; + + const data = action(find); + + if (find.QueryExp) + await Shared.Set(index, { + ...data, + QueryExp: dayjs().add(1, "m").unix() + }, null); + else + await Shared.Set(index, data, exp || null); + } + /** * @author Aloento * @since 1.0.0 - * @version 0.2.1 + * @version 0.3.2 + * @liveSafe */ - protected static async WithVersionCache( - this: INet, key: string | number, methodName: string, admin?: boolean - ): Promise { - const index = `${methodName}_${admin ? `Admin_${key}` : key}`; + protected static async GetVersionCache( + this: INet, key: string | number, methodName: string + ): Promise { + const index = this.Index(key, methodName); const find = await Shared.Get(index); if (find && find.QueryExp > dayjs().unix()) return find; - const res = await this.Invoke(methodName, key, find?.Version); + const res = await Promise.resolve(this.Invoke(methodName, key, find?.Version)); if (res === true) { Shared.Set(index, { @@ -98,10 +133,12 @@ export abstract class SignalR { return find!; } - if (!res) - return Shared.Sto.delete(index); + if (!res) { + Shared.Sto.delete(index); + throw new TypeError("Empty Response"); + } - Shared.Set(index, { + await Shared.Set(index, { ...res, QueryExp: dayjs().add(1, "m").unix() }, null); @@ -112,49 +149,24 @@ export abstract class SignalR { /** * @author Aloento * @since 1.0.0 - * @version 0.1.1 + * @version 0.2.0 + * @liveSafe */ - protected static async WithTimeCache( - this: INet, key: string | number, methodName: string, exp: Dayjs, ...args: any[] + protected static async GetTimeCache( + this: INet, key: string | number, methodName: string, exp: (now: Dayjs) => Dayjs, ...args: any[] ): Promise { const res = await Shared.GetOrSet( - `${methodName}_${key}`, + this.Index(key, methodName), async () => { const db = await this.Invoke(methodName, ...args); return db; }, - exp + exp(dayjs()) ); return res; } - /** - * @author Aloento - * @since 1.0.0 - * @version 0.2.2 - */ - protected static async FindCover(this: INet, photos: number[], prodId: number, logger: Logger): Promise { - const list = []; - - for (const photoId of photos) { - const photo = await (await import("./Product/Entity")).ProductEntity.Photo(photoId); - - if (photo) { - list.push(photo); - - if (photo.Cover) - return photo.ObjectId; - } else - logger?.warn(`Photo ${photoId} not found in Product ${prodId}`); - } - - if (list.length > 0) { - logger?.warn(`Product ${prodId} has no cover photo, using first photo instead`); - return list.sort((a, b) => a.Order - b.Order)[0].ObjectId; - } - } - /** * @author Aloento * @since 1.0.0 diff --git a/src/ShopNet/Table.ts b/src/ShopNet/Table.ts index 05240fa..40457e5 100644 --- a/src/ShopNet/Table.ts +++ b/src/ShopNet/Table.ts @@ -15,10 +15,10 @@ interface ITable { /** * @author Aloento * @since 0.3.1 MusiLand - * @version 0.2.1 + * @version 0.3.0 */ -export class Table { - public readonly Sto: Dexie.Table, string>; +export class Table { + public readonly Sto: Dexie.Table, string>; public constructor(public readonly DB: Dexie, public readonly Name: string) { this.Sto = DB.table(Name); @@ -28,13 +28,14 @@ export class Table { /** * @author Aloento * @since 0.1.0 MusiLand - * @version 0.2.0 + * @version 0.2.1 + * @liveSafe */ - public async Get(key: string, expire?: (x?: ITable) => Promise): Promise { + public async Get(key: string, expire?: (x?: ITable) => Promise): Promise { const find = await this.Sto.get(key) as ITable | undefined; if (find) { - if ((expire && await expire(find)) || + if ((expire && await Promise.resolve(expire(find))) || (typeof find.Exp === "number" && find.Exp < dayjs().unix())) { await this.Sto.delete(key); return null; @@ -50,8 +51,9 @@ export class Table { * @author Aloento * @since 0.1.0 MusiLand * @version 0.2.0 + * @liveSafe */ - public async GetOrSet( + public async GetOrSet( key: string, fac: () => Promise, exp?: Dayjs | null, @@ -59,15 +61,16 @@ export class Table { ): Promise { const res = await this.Get(key, expire); if (res) return res; - return this.Set(key, await fac(), exp); + return this.Set(key, await Promise.resolve(fac()), exp); } /** * @author Aloento * @since 0.1.0 MusiLand * @version 0.2.1 + * @liveSafe */ - public async Set(id: string, val: T, exp?: Dayjs | null): Promise { + public async Set(id: string, val: T, exp?: Dayjs | null): Promise { if (!val) throw TypeError("Value cannot be null"); @@ -82,7 +85,7 @@ export class Table { const time = (exp || dayjs().add(1, "week")).unix(); if (exp && time < dayjs().unix()) - throw RangeError(`Expire time [${time}] cannot be less than now`); + throw RangeError(`Expire time [${time}] cannot be less than now [${dayjs().unix()}]`); await this.Sto.put({ Id: id, Exp: time, diff --git a/src/ShopNet/User/Get.tsx b/src/ShopNet/User/Get.tsx index 32ace04..8e06d08 100644 --- a/src/ShopNet/User/Get.tsx +++ b/src/ShopNet/User/Get.tsx @@ -1,7 +1,6 @@ -import { Toast, ToastTitle } from "@fluentui/react-components"; import { useConst } from "@fluentui/react-hooks"; -import { useRequest } from "ahooks"; -import type { Options } from "ahooks/lib/useRequest/src/types"; +import { useLiveQuery } from "dexie-react-hooks"; +import { IPersona } from "~/Components/ShopCart/Persona"; import { NotLoginError } from "~/Helpers/Exceptions"; import type { Logger } from "~/Helpers/Logger"; import { useErrorToast } from "~/Helpers/useToast"; @@ -11,54 +10,39 @@ import { ShopNet } from "../ShopNet"; /** * @author Aloento * @since 0.5.0 - * @version 0.1.0 + * @version 0.2.0 */ -interface IuseMe extends IConcurrency { - Name: string; - EMail: string; - Phone: string; - Address: string; +export interface IUserGetMe extends IPersona, IConcurrency { Admin?: boolean; } /** * @author Aloento * @since 0.5.0 - * @version 0.1.0 + * @version 0.2.0 */ export abstract class UserGet extends ShopNet { /** * @author Aloento * @since 1.0.0 - * @version 0.2.1 + * @version 0.4.0 */ - public static useMe(pLog: Logger, options?: Options, suppress: boolean = true) { + public static useMe(pLog: Logger): IUserGetMe | void { const log = useConst(() => pLog.With("|", "Hub", "User", "Get", "Me")); - const { dispatch, dispatchToast } = useErrorToast(log); + const { dispatch } = useErrorToast(log); - return useRequest(() => { - this.EnsureLogin(); - return this.WithVersionCache(0, "UserGetMe"); - }, { - ...options, - onError: (e, req) => { - if (e instanceof NotLoginError) { - if (suppress) - log.debug(e); - else - dispatchToast( - - {e.message} - , - { intent: "warning", timeout: 5000 } - ); - } else + const res = useLiveQuery(() => this.GetVersionCache(0, "UserGetMe") + .catch(e => { + if (e instanceof NotLoginError) + log.info(e); + else dispatch({ Message: "Failed to Get Your Info", Error: e, - Request: req - }) - } - }); + Request: "" + }); + })); + + return res; } } diff --git a/src/ShopNet/User/Post.ts b/src/ShopNet/User/Post.ts index cd5da34..79e99df 100644 --- a/src/ShopNet/User/Post.ts +++ b/src/ShopNet/User/Post.ts @@ -1,24 +1,28 @@ import { useRequest } from "ahooks"; import type { Options } from "ahooks/lib/useRequest/src/types"; -import { IPersona } from "~/Components/ShopCart/Persona"; +import type { IPersona } from "~/Components/ShopCart/Persona"; import { ShopNet } from "../ShopNet"; +import { IUserGetMe } from "./Get"; /** * @author Aloento * @since 0.5.0 - * @version 0.1.0 + * @version 0.2.0 */ export abstract class UserPost extends ShopNet { /** * @author Aloento * @since 0.5.0 - * @version 0.2.0 + * @version 0.3.1 */ public static useUpdate(options: Options]>) { return useRequest(async req => { this.EnsureLogin(); const res = await this.Invoke("UserPostUpdate", req); + this.EnsureTrue(res); + this.UpdateCache(raw => ({ ...raw, ...req }), 0, "UserGetMe"); + return res; }, options); } diff --git a/vite.config.ts b/vite.config.ts index a38a46a..b3d0dbc 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,11 +1,12 @@ import react from "@vitejs/plugin-react-swc"; import path from "path"; -import { defineConfig } from "vite"; +import { defineConfig, splitVendorChunkPlugin } from "vite"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [ react(), + splitVendorChunkPlugin(), ], resolve: { alias: {