From 923b0d20cd95311122ec5886698b3fb2dfadb882 Mon Sep 17 00:00:00 2001
From: srichman333 <sarah_n_richman@brown.edu>
Date: Fri, 12 Jan 2024 12:56:09 -0500
Subject: live schema toggle works on refresh

---
 .../views/collections/collectionFreeForm/CollectionFreeFormView.tsx  | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

(limited to 'src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx')

diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 8268a47d8..de4f01014 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -2005,15 +2005,14 @@ ScriptingGlobals.add(function datavizFromSchema(doc: Doc) {
             csvRows.push(eachRow);
         }
         const blob = new Blob([csvRows.join('\n')], { type: 'text/csv' });
-        const options = { x: 0, y: -300, title: 'schemaTable', _width: 300, _height: 100, type: 'text/csv' };
+        const options = { x: 0, y: 0, title: 'schemaTable', _width: 300, _height: 100, type: 'text/csv' };
         const file = new File([blob], 'schemaTable', options);
         const loading = Docs.Create.LoadingDocument(file, options);
         loading.presentation_openInLightbox = true;
         DocUtils.uploadFileToDoc(file, {}, loading);
 
         if (view.ComponentView?.addDocument) {
-            //  loading.dataViz_fromSchema = true;
-            loading.dataViz_asSchema = view.layoutDoc;
+            loading._dataViz_asSchema = view.layoutDoc;
             SchemaCSVPopUp.Instance.setView(view);
             SchemaCSVPopUp.Instance.setTarget(view.layoutDoc);
             SchemaCSVPopUp.Instance.setDataVizDoc(loading);
-- 
cgit v1.2.3-70-g09d2


From db51496360e8eac55b5e83283370c4aeec7a11d8 Mon Sep 17 00:00:00 2001
From: srichman333 <sarah_n_richman@brown.edu>
Date: Wed, 17 Jan 2024 15:01:30 -0500
Subject: cleaner

---
 .../collectionFreeForm/CollectionFreeFormView.tsx  |   2 +
 src/client/views/nodes/DataVizBox/DataVizBox.tsx   | 116 +++++++++------------
 .../views/nodes/DataVizBox/components/TableBox.tsx |   2 -
 3 files changed, 52 insertions(+), 68 deletions(-)

(limited to 'src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx')

diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index de4f01014..881c80a1a 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1985,6 +1985,7 @@ ScriptingGlobals.add(function sendToBack(doc: Doc) {
     SelectionManager.Views.forEach(view => view.CollectionFreeFormView?.bringToFront(view.Document, true));
 });
 ScriptingGlobals.add(function datavizFromSchema(doc: Doc) {
+    // creating a dataviz doc to represent the schema table
     SelectionManager.Views.forEach(view => {
         if (!view.layoutDoc.schema_columnKeys) {
             view.layoutDoc.schema_columnKeys = new List<string>(['title', 'type', 'author', 'author_date']);
@@ -2011,6 +2012,7 @@ ScriptingGlobals.add(function datavizFromSchema(doc: Doc) {
         loading.presentation_openInLightbox = true;
         DocUtils.uploadFileToDoc(file, {}, loading);
 
+        // holds the doc in a popup until it is dragged onto a canvas
         if (view.ComponentView?.addDocument) {
             loading._dataViz_asSchema = view.layoutDoc;
             SchemaCSVPopUp.Instance.setView(view);
diff --git a/src/client/views/nodes/DataVizBox/DataVizBox.tsx b/src/client/views/nodes/DataVizBox/DataVizBox.tsx
index 6d060f535..981ec0aa1 100644
--- a/src/client/views/nodes/DataVizBox/DataVizBox.tsx
+++ b/src/client/views/nodes/DataVizBox/DataVizBox.tsx
@@ -1,6 +1,6 @@
 import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
 import { Colors, Toggle, ToggleType, Type } from 'browndash-components';
-import { ObservableMap, action, computed, makeObservable, observable, runInAction } from 'mobx';
+import { ObservableMap, action, computed, observable, runInAction } from 'mobx';
 import { observer } from 'mobx-react';
 import * as React from 'react';
 import { emptyFunction, returnEmptyString, returnFalse, returnOne, setupMoveUpEvents } from '../../../../Utils';
@@ -17,7 +17,6 @@ import { UndoManager, undoable } from '../../../util/UndoManager';
 import { ViewBoxAnnotatableComponent } from '../../DocComponent';
 import { MarqueeAnnotator } from '../../MarqueeAnnotator';
 import { SidebarAnnos } from '../../SidebarAnnos';
-import { CollectionFreeFormView } from '../../collections/collectionFreeForm';
 import { AnchorMenu } from '../../pdf/AnchorMenu';
 import { GPTPopup } from '../../pdf/GPTPopup/GPTPopup';
 import { DocFocusOptions, DocumentView } from '../DocumentView';
@@ -339,59 +338,63 @@ export class DataVizBox extends ViewBoxAnnotatableComponent<FieldViewProps>() {
     }
 
     @action
+    // handles when the dataviz doc was made by copying a schema table
     updateSchemaViz = () => {
         const href = CsvCast(this.Document[this.fieldKey]).url.href;
-
-        if (this.layoutDoc.dataViz_schemaLive || !DataVizBox.datasetSchemaOG.has(href)){
-            const getFrom = DocCast(this.layoutDoc.dataViz_asSchema);
-            const keys = Cast(getFrom.schema_columnKeys, listSpec('string'))?.filter(key => key != 'text');
-            if (!keys) return;
-            const children = DocListCast(getFrom[Doc.LayoutFieldKey(getFrom)]);
-
-            if (!this.layoutDoc._dataViz_schemaOG){
-                let csvRows = [];
-                csvRows.push(keys.join(','));
-                for (let i = 0; i < children.length; i++) {
-                    let eachRow = [];
-                    for (let j = 0; j < keys.length; j++) {
-                        var cell = children[i][keys[j]];
-                        if (cell && (cell as string)) cell = cell.toString().replace(/\,/g, '');
-                        eachRow.push(cell);
+        const getFromDoc = DocCast(this.layoutDoc.dataViz_asSchema);
+        const children = DocListCast(getFromDoc[Doc.LayoutFieldKey(getFromDoc)]);
+
+        if (children.length != this.schemaBoxLength) {
+            if (this.layoutDoc.dataViz_schemaLive || !DataVizBox.datasetSchemaOG.has(href)){
+                const keys = Cast(getFromDoc.schema_columnKeys, listSpec('string'))?.filter(key => key != 'text');
+                if (!keys) return;
+
+                if (!this.layoutDoc._dataViz_schemaOG){
+                    // makes a copy of the original table for the "live" toggle
+                    let csvRows = [];
+                    csvRows.push(keys.join(','));
+                    for (let i = 0; i < children.length; i++) {
+                        let eachRow = [];
+                        for (let j = 0; j < keys.length; j++) {
+                            var cell = children[i][keys[j]];
+                            if (cell && (cell as string)) cell = cell.toString().replace(/\,/g, '');
+                            eachRow.push(cell);
+                        }
+                        csvRows.push(eachRow);
                     }
-                    csvRows.push(eachRow);
+                    const blob = new Blob([csvRows.join('\n')], { type: 'text/csv' });
+                    const options = { x: 0, y: 0, title: 'schemaTable for static dataviz', _width: 300, _height: 100, type: 'text/csv' };
+                    const file = new File([blob], 'schemaTable for static dataviz', options);
+                    const loading = Docs.Create.LoadingDocument(file, options);
+                    DocUtils.uploadFileToDoc(file, {}, loading);
+                    this.layoutDoc._dataViz_schemaOG = loading;
                 }
-                const blob = new Blob([csvRows.join('\n')], { type: 'text/csv' });
-                const options = { x: 0, y: 0, title: 'schemaTable for static dataviz', _width: 300, _height: 100, type: 'text/csv' };
-                const file = new File([blob], 'schemaTable for static dataviz', options);
-                const loading = Docs.Create.LoadingDocument(file, options);
-                DocUtils.uploadFileToDoc(file, {}, loading);
-                this.layoutDoc._dataViz_schemaOG = loading;
-            }
 
-            const ogDoc = this.layoutDoc._dataViz_schemaOG as Doc
-            const ogHref = CsvCast(ogDoc[this.fieldKey])? CsvCast(ogDoc[this.fieldKey]).url.href : undefined;
-            if (ogHref && !DataVizBox.datasetSchemaOG.has(href)){
-                DataVizBox.datasetSchemaOG.set(href, []);
-                fetch('/csvData?uri=' + ogHref)
-                    .then(res => res.json().then(action(res => !res.errno && DataVizBox.datasetSchemaOG.set(href, res))));
-            }
+                const ogDoc = this.layoutDoc._dataViz_schemaOG as Doc
+                const ogHref = CsvCast(ogDoc[this.fieldKey])? CsvCast(ogDoc[this.fieldKey]).url.href : undefined;
+                if (ogHref && !DataVizBox.datasetSchemaOG.has(href)){
+                    DataVizBox.datasetSchemaOG.set(href, []);
+                    fetch('/csvData?uri=' + ogHref)
+                        .then(res => res.json().then(action(res => !res.errno && DataVizBox.datasetSchemaOG.set(href, res))));
+                }
 
-            var current: { [key: string]: string }[] = [];
-            for (let i = 0; i < children.length; i++) {
-                var row: { [key: string]: string } = {};
-                if (children[i]) {
-                    for (let j = 0; j < keys.length; j++) {
-                        var cell = children[i][keys[j]];
-                        if (cell && (cell as string)) cell = cell.toString().replace(/\,/g, '');
-                        row[keys[j]] = StrCast(cell);
+                var current: { [key: string]: string }[] = [];
+                for (let i = 0; i < children.length; i++) {
+                    var row: { [key: string]: string } = {};
+                    if (children[i]) {
+                        for (let j = 0; j < keys.length; j++) {
+                            var cell = children[i][keys[j]];
+                            if (cell && (cell as string)) cell = cell.toString().replace(/\,/g, '');
+                            row[keys[j]] = StrCast(cell);
+                        }
                     }
+                    current.push(row);
                 }
-                current.push(row);
+                this.setDataset(href, current);
+            }
+            else {
+                this.setDataset(href, DataVizBox.datasetSchemaOG.get(href));
             }
-            this.setDataset(href, current);
-        }
-        else {
-            this.setDataset(href, DataVizBox.datasetSchemaOG.get(href));
         }
     };
 
@@ -425,26 +428,6 @@ export class DataVizBox extends ViewBoxAnnotatableComponent<FieldViewProps>() {
                     <Toggle text={'PIE CHART'} toggleType={ToggleType.BUTTON} type={Type.SEC} color={'black'} onClick={e => (this.layoutDoc._dataViz = DataVizView.PIECHART)} toggleStatus={this.layoutDoc._dataViz == -DataVizView.PIECHART} />
                 </div>
 
-                {/* <CollectionFreeFormView
-                    ref={this._ffref}
-                    {...this._props}
-                    setContentView={emptyFunction}
-                    renderDepth={this._props.renderDepth - 1}
-                    fieldKey={this.annotationKey}
-                    styleProvider={this._props.styleProvider}
-                    isAnnotationOverlay={true}
-                    annotationLayerHostsContent={false}
-                    PanelWidth={this._props.PanelWidth}
-                    PanelHeight={this._props.PanelHeight}
-                    select={emptyFunction}
-                    isAnyChildContentActive={returnFalse}
-                    whenChildContentsActiveChanged={this.whenChildContentsActiveChanged}
-                    removeDocument={this.removeDocument}
-                    moveDocument={this.moveDocument}
-                    addDocument={this.addDocument}>
-                    {this.renderVizView}
-                </CollectionFreeFormView> */}
-
                 {(this.layoutDoc && this.layoutDoc.dataViz_asSchema)?(
                     <div className={'liveSchema-checkBox'} style={{ width: this._props.width }}>
                     <Checkbox color="primary" onChange={this.changeLiveSchemaCheckbox} checked={this.layoutDoc.dataViz_schemaLive as boolean} />
@@ -453,6 +436,7 @@ export class DataVizBox extends ViewBoxAnnotatableComponent<FieldViewProps>() {
                 ) : null}
 
                 {this.renderVizView}
+
                 <div className="dataviz-sidebar" style={{ width: `${this.sidebarWidthPercent}`, backgroundColor: `${this.sidebarColor}` }} onPointerDown={this.onPointerDown}>
                     <SidebarAnnos
                         ref={this._sidebarRef}
diff --git a/src/client/views/nodes/DataVizBox/components/TableBox.tsx b/src/client/views/nodes/DataVizBox/components/TableBox.tsx
index ed44d9269..c5fda18ae 100644
--- a/src/client/views/nodes/DataVizBox/components/TableBox.tsx
+++ b/src/client/views/nodes/DataVizBox/components/TableBox.tsx
@@ -83,14 +83,12 @@ export class TableBox extends ObservableReactComponent<TableBoxProps> {
         return this._props.docView?.()?.screenToViewTransform().Scale || 1;
     }
     @computed get rowHeight() {
-        console.log('scale = ' + this.viewScale + '  table = ' + this._tableHeight + ' ids = ' + this._tableDataIds.length);
         return (this.viewScale * this._tableHeight) / this._tableDataIds.length;
     }
     @computed get startID() {
         return this.rowHeight ? Math.max(Math.floor(this._scrollTop / this.rowHeight) - 1, 0) : 0;
     }
     @computed get endID() {
-        console.log('start = ' + this.startID + '  container = ' + this._tableContainerHeight + ' scale = ' + this.viewScale + ' row = ' + this.rowHeight);
         return Math.ceil(this.startID + (this._tableContainerHeight * this.viewScale) / (this.rowHeight || 1));
     }
     @action handleScroll = () => {
-- 
cgit v1.2.3-70-g09d2


From b33ff1abdeab12d977c86f18c567ba3e84a49297 Mon Sep 17 00:00:00 2001
From: bobzel <zzzman@gmail.com>
Date: Thu, 22 Feb 2024 16:34:32 -0500
Subject: replaced freeform document view wrapper with more direct caching of
 props.

---
 package-lock.json                                  | 3625 ++++++++++----------
 .../collectionFreeForm/CollectionFreeFormView.tsx  |    4 +-
 .../views/nodes/CollectionFreeFormDocumentView.tsx |  175 +-
 3 files changed, 1835 insertions(+), 1969 deletions(-)

(limited to 'src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx')

diff --git a/package-lock.json b/package-lock.json
index 1f1c994c3..cf8e8ce29 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -304,66 +304,66 @@
             }
         },
         "node_modules/@adobe/react-spectrum": {
-            "version": "3.34.0",
-            "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.34.0.tgz",
-            "integrity": "sha512-FI+kUI/SefYXCBdmKTwASijMuyaXONgU6uuBt0rddaasiHWytTVzxWHMRAZlxixQHks9nfvD11+DXvI58rNZNw==",
-            "dependencies": {
-                "@internationalized/string": "^3.2.0",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/ssr": "^3.9.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-aria/visually-hidden": "^3.8.9",
-                "@react-spectrum/actionbar": "^3.4.2",
-                "@react-spectrum/actiongroup": "^3.10.2",
-                "@react-spectrum/avatar": "^3.0.9",
-                "@react-spectrum/badge": "^3.1.10",
-                "@react-spectrum/breadcrumbs": "^3.9.4",
-                "@react-spectrum/button": "^3.16.1",
-                "@react-spectrum/buttongroup": "^3.6.10",
-                "@react-spectrum/calendar": "^3.4.6",
-                "@react-spectrum/checkbox": "^3.9.3",
-                "@react-spectrum/combobox": "^3.12.2",
-                "@react-spectrum/contextualhelp": "^3.6.8",
-                "@react-spectrum/datepicker": "^3.9.3",
-                "@react-spectrum/dialog": "^3.8.8",
-                "@react-spectrum/divider": "^3.5.10",
-                "@react-spectrum/dnd": "^3.3.7",
-                "@react-spectrum/form": "^3.7.3",
-                "@react-spectrum/icon": "^3.7.10",
-                "@react-spectrum/illustratedmessage": "^3.4.10",
-                "@react-spectrum/image": "^3.4.10",
-                "@react-spectrum/inlinealert": "^3.2.2",
-                "@react-spectrum/labeledvalue": "^3.1.11",
-                "@react-spectrum/layout": "^3.6.2",
-                "@react-spectrum/link": "^3.6.4",
-                "@react-spectrum/list": "^3.7.7",
-                "@react-spectrum/listbox": "^3.12.6",
-                "@react-spectrum/menu": "^3.18.0",
-                "@react-spectrum/meter": "^3.4.10",
-                "@react-spectrum/numberfield": "^3.9.0",
-                "@react-spectrum/overlays": "^5.5.4",
-                "@react-spectrum/picker": "^3.14.2",
-                "@react-spectrum/progress": "^3.7.4",
-                "@react-spectrum/provider": "^3.9.4",
-                "@react-spectrum/radio": "^3.7.3",
-                "@react-spectrum/searchfield": "^3.8.3",
-                "@react-spectrum/slider": "^3.6.6",
-                "@react-spectrum/statuslight": "^3.5.10",
-                "@react-spectrum/switch": "^3.5.2",
-                "@react-spectrum/table": "^3.12.7",
-                "@react-spectrum/tabs": "^3.8.7",
-                "@react-spectrum/tag": "^3.2.3",
-                "@react-spectrum/text": "^3.5.2",
-                "@react-spectrum/textfield": "^3.11.3",
-                "@react-spectrum/theme-dark": "^3.5.7",
-                "@react-spectrum/theme-default": "^3.5.7",
-                "@react-spectrum/theme-light": "^3.4.7",
-                "@react-spectrum/tooltip": "^3.6.4",
-                "@react-spectrum/view": "^3.6.7",
-                "@react-spectrum/well": "^3.4.10",
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/data": "^3.11.1",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.34.1",
+            "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.34.1.tgz",
+            "integrity": "sha512-J1HOjntW+H8xusfc5xLnIlUXNOzllp4f7qzh3LlDOsZuH8oBH8sIYmBVp4ijVhRFUKa10qg088role1On3UGbg==",
+            "dependencies": {
+                "@internationalized/string": "^3.2.1",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/ssr": "^3.9.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-aria/visually-hidden": "^3.8.10",
+                "@react-spectrum/actionbar": "^3.4.3",
+                "@react-spectrum/actiongroup": "^3.10.3",
+                "@react-spectrum/avatar": "^3.0.10",
+                "@react-spectrum/badge": "^3.1.11",
+                "@react-spectrum/breadcrumbs": "^3.9.5",
+                "@react-spectrum/button": "^3.16.2",
+                "@react-spectrum/buttongroup": "^3.6.11",
+                "@react-spectrum/calendar": "^3.4.7",
+                "@react-spectrum/checkbox": "^3.9.4",
+                "@react-spectrum/combobox": "^3.12.3",
+                "@react-spectrum/contextualhelp": "^3.6.9",
+                "@react-spectrum/datepicker": "^3.9.4",
+                "@react-spectrum/dialog": "^3.8.9",
+                "@react-spectrum/divider": "^3.5.11",
+                "@react-spectrum/dnd": "^3.3.8",
+                "@react-spectrum/form": "^3.7.4",
+                "@react-spectrum/icon": "^3.7.11",
+                "@react-spectrum/illustratedmessage": "^3.4.11",
+                "@react-spectrum/image": "^3.4.11",
+                "@react-spectrum/inlinealert": "^3.2.3",
+                "@react-spectrum/labeledvalue": "^3.1.12",
+                "@react-spectrum/layout": "^3.6.3",
+                "@react-spectrum/link": "^3.6.5",
+                "@react-spectrum/list": "^3.7.8",
+                "@react-spectrum/listbox": "^3.12.7",
+                "@react-spectrum/menu": "^3.18.1",
+                "@react-spectrum/meter": "^3.4.11",
+                "@react-spectrum/numberfield": "^3.9.1",
+                "@react-spectrum/overlays": "^5.5.5",
+                "@react-spectrum/picker": "^3.14.3",
+                "@react-spectrum/progress": "^3.7.5",
+                "@react-spectrum/provider": "^3.9.5",
+                "@react-spectrum/radio": "^3.7.4",
+                "@react-spectrum/searchfield": "^3.8.4",
+                "@react-spectrum/slider": "^3.6.7",
+                "@react-spectrum/statuslight": "^3.5.11",
+                "@react-spectrum/switch": "^3.5.3",
+                "@react-spectrum/table": "^3.12.8",
+                "@react-spectrum/tabs": "^3.8.8",
+                "@react-spectrum/tag": "^3.2.4",
+                "@react-spectrum/text": "^3.5.3",
+                "@react-spectrum/textfield": "^3.11.4",
+                "@react-spectrum/theme-dark": "^3.5.8",
+                "@react-spectrum/theme-default": "^3.5.8",
+                "@react-spectrum/theme-light": "^3.4.8",
+                "@react-spectrum/tooltip": "^3.6.5",
+                "@react-spectrum/view": "^3.6.8",
+                "@react-spectrum/well": "^3.4.11",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/data": "^3.11.2",
+                "@react-types/shared": "^3.22.1",
                 "client-only": "^0.0.1"
             },
             "peerDependencies": {
@@ -2499,18 +2499,6 @@
                 "node": "*"
             }
         },
-        "node_modules/@eslint/eslintrc/node_modules/type-fest": {
-            "version": "0.20.2",
-            "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
-            "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-            "dev": true,
-            "engines": {
-                "node": ">=10"
-            },
-            "funding": {
-                "url": "https://github.com/sponsors/sindresorhus"
-            }
-        },
         "node_modules/@eslint/js": {
             "version": "8.56.0",
             "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz",
@@ -2709,30 +2697,30 @@
             }
         },
         "node_modules/@fullcalendar/core": {
-            "version": "6.1.10",
-            "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.10.tgz",
-            "integrity": "sha512-oTXGJSAGpCf1oY+CKp5qYjMHkJCPBkJ3SHitl63n8Q6xKeiwQ4EF6Au451euUovREwJpLmD1AyZrCnWmtB9AVg==",
+            "version": "6.1.11",
+            "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.11.tgz",
+            "integrity": "sha512-TjG7c8sUz+Vkui2FyCNJ+xqyu0nq653Ibe99A66LoW95oBo6tVhhKIaG1Wh0GVKymYiqAQN/OEdYTuj4ay27kA==",
             "dependencies": {
                 "preact": "~10.12.1"
             }
         },
         "node_modules/@fullcalendar/daygrid": {
-            "version": "6.1.10",
-            "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.10.tgz",
-            "integrity": "sha512-Z4GRm1IyHKgxXFTWGcEI0nTsvYOIkpE0aMt3/o3ER2SZkF+hfwcDFhtj0c9+WhMjXFIWYeoTnA9rUOY7Zl/nxA==",
+            "version": "6.1.11",
+            "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.11.tgz",
+            "integrity": "sha512-hF5jJB7cgUIxWD5MVjj8IU407HISyLu7BWXcEIuTytkfr8oolOXeCazqnnjmRbnFOncoJQVstTtq6SIhaT32Xg==",
             "peerDependencies": {
-                "@fullcalendar/core": "~6.1.10"
+                "@fullcalendar/core": "~6.1.11"
             }
         },
         "node_modules/@fullcalendar/multimonth": {
-            "version": "6.1.10",
-            "resolved": "https://registry.npmjs.org/@fullcalendar/multimonth/-/multimonth-6.1.10.tgz",
-            "integrity": "sha512-mLGEgD+sv8rNfKphyOCWRQapX7/nAvHgQmDTjuy4STlhHsddCYVmFlsSgF373ph1tXh41wAJUVdNO/pDmCvUfA==",
+            "version": "6.1.11",
+            "resolved": "https://registry.npmjs.org/@fullcalendar/multimonth/-/multimonth-6.1.11.tgz",
+            "integrity": "sha512-7DbPC+AAlaKnquGVdw1Z85Q3nSZ4GZ1NcVIk4k7bLnqDlntwHPPsrDlSIzUWKcN0q5/u7jQHm4PU1m3LAl70Sg==",
             "dependencies": {
-                "@fullcalendar/daygrid": "~6.1.10"
+                "@fullcalendar/daygrid": "~6.1.11"
             },
             "peerDependencies": {
-                "@fullcalendar/core": "~6.1.10"
+                "@fullcalendar/core": "~6.1.11"
             }
         },
         "node_modules/@googlemaps/js-api-loader": {
@@ -2816,34 +2804,34 @@
             }
         },
         "node_modules/@internationalized/date": {
-            "version": "3.5.1",
-            "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.1.tgz",
-            "integrity": "sha512-LUQIfwU9e+Fmutc/DpRTGXSdgYZLBegi4wygCWDSVmUdLTaMHsQyASDiJtREwanwKuQLq0hY76fCJ9J/9I2xOQ==",
+            "version": "3.5.2",
+            "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.2.tgz",
+            "integrity": "sha512-vo1yOMUt2hzp63IutEaTUxROdvQg1qlMRsbCvbay2AK2Gai7wIgCyK5weEX3nHkiLgo4qCXHijFNC/ILhlRpOQ==",
             "dependencies": {
                 "@swc/helpers": "^0.5.0"
             }
         },
         "node_modules/@internationalized/message": {
-            "version": "3.1.1",
-            "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.1.tgz",
-            "integrity": "sha512-ZgHxf5HAPIaR0th+w0RUD62yF6vxitjlprSxmLJ1tam7FOekqRSDELMg4Cr/DdszG5YLsp5BG3FgHgqquQZbqw==",
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.2.tgz",
+            "integrity": "sha512-MHAWsZWz8jf6jFPZqpTudcCM361YMtPIRu9CXkYmKjJ/0R3pQRScV5C0zS+Qi50O5UAm8ecKhkXx6mWDDcF6/g==",
             "dependencies": {
                 "@swc/helpers": "^0.5.0",
                 "intl-messageformat": "^10.1.0"
             }
         },
         "node_modules/@internationalized/number": {
-            "version": "3.5.0",
-            "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.0.tgz",
-            "integrity": "sha512-ZY1BW8HT9WKYvaubbuqXbbDdHhOUMfE2zHHFJeTppid0S+pc8HtdIxFxaYMsGjCb4UsF+MEJ4n2TfU7iHnUK8w==",
+            "version": "3.5.1",
+            "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.1.tgz",
+            "integrity": "sha512-N0fPU/nz15SwR9IbfJ5xaS9Ss/O5h1sVXMZf43vc9mxEG48ovglvvzBjF53aHlq20uoR6c+88CrIXipU/LSzwg==",
             "dependencies": {
                 "@swc/helpers": "^0.5.0"
             }
         },
         "node_modules/@internationalized/string": {
-            "version": "3.2.0",
-            "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.0.tgz",
-            "integrity": "sha512-Xx3Sy3f2c9ctT+vh8c7euEaEHQZltp0euZ3Hy4UfT3E13r6lxpUS3kgKyumEjboJZSnaZv7JhqWz3D75v+IxQg==",
+            "version": "3.2.1",
+            "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.1.tgz",
+            "integrity": "sha512-vWQOvRIauvFMzOO+h7QrdsJmtN1AXAFVcaLWP9AseRN2o7iHceZ6bIXhBD4teZl8i91A3gxKnWBlGgjCwU6MFQ==",
             "dependencies": {
                 "@swc/helpers": "^0.5.0"
             }
@@ -3615,9 +3603,9 @@
             }
         },
         "node_modules/@mui/core-downloads-tracker": {
-            "version": "5.15.10",
-            "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.10.tgz",
-            "integrity": "sha512-qPv7B+LeMatYuzRjB3hlZUHqinHx/fX4YFBiaS19oC02A1e9JFuDKDvlyRQQ5oRSbJJt0QlaLTlr0IcauVcJRQ==",
+            "version": "5.15.11",
+            "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.11.tgz",
+            "integrity": "sha512-JVrJ9Jo4gyU707ujnRzmE8ABBWpXd6FwL9GYULmwZRtfPg89ggXs/S3MStQkpJ1JRWfdLL6S5syXmgQGq5EDAw==",
             "funding": {
                 "type": "opencollective",
                 "url": "https://opencollective.com/mui-org"
@@ -3693,12 +3681,12 @@
             }
         },
         "node_modules/@mui/private-theming": {
-            "version": "5.15.9",
-            "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.9.tgz",
-            "integrity": "sha512-/aMJlDOxOTAXyp4F2rIukW1O0anodAMCkv1DfBh/z9vaKHY3bd5fFf42wmP+0GRmwMinC5aWPpNfHXOED1fEtg==",
+            "version": "5.15.11",
+            "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.11.tgz",
+            "integrity": "sha512-jY/696SnSxSzO1u86Thym7ky5T9CgfidU3NFJjguldqK4f3Z5S97amZ6nffg8gTD0HBjY9scB+4ekqDEUmxZOA==",
             "dependencies": {
                 "@babel/runtime": "^7.23.9",
-                "@mui/utils": "^5.15.9",
+                "@mui/utils": "^5.15.11",
                 "prop-types": "^15.8.1"
             },
             "engines": {
@@ -3719,9 +3707,9 @@
             }
         },
         "node_modules/@mui/styled-engine": {
-            "version": "5.15.9",
-            "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.9.tgz",
-            "integrity": "sha512-NRKtYkL5PZDH7dEmaLEIiipd3mxNnQSO+Yo8rFNBNptY8wzQnQ+VjayTq39qH7Sast5cwHKYFusUrQyD+SS4Og==",
+            "version": "5.15.11",
+            "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.11.tgz",
+            "integrity": "sha512-So21AhAngqo07ces4S/JpX5UaMU2RHXpEA6hNzI6IQjd/1usMPxpgK8wkGgTe3JKmC2KDmH8cvoycq5H3Ii7/w==",
             "dependencies": {
                 "@babel/runtime": "^7.23.9",
                 "@emotion/cache": "^11.11.0",
@@ -3828,9 +3816,9 @@
             }
         },
         "node_modules/@mui/utils": {
-            "version": "5.15.9",
-            "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.9.tgz",
-            "integrity": "sha512-yDYfr61bCYUz1QtwvpqYy/3687Z8/nS4zv7lv/ih/6ZFGMl1iolEvxRmR84v2lOYxlds+kq1IVYbXxDKh8Z9sg==",
+            "version": "5.15.11",
+            "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.11.tgz",
+            "integrity": "sha512-D6bwqprUa9Stf8ft0dcMqWyWDKEo7D+6pB1k8WajbqlYIRA8J8Kw9Ra7PSZKKePGBGWO+/xxrX1U8HpG/aXQCw==",
             "dependencies": {
                 "@babel/runtime": "^7.23.9",
                 "@types/prop-types": "^15.7.11",
@@ -3972,9 +3960,9 @@
             }
         },
         "node_modules/@octokit/types": {
-            "version": "12.4.0",
-            "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.4.0.tgz",
-            "integrity": "sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==",
+            "version": "12.5.0",
+            "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.5.0.tgz",
+            "integrity": "sha512-YJEKcb0KkJlIUNU/zjnZwHEP8AoVh/OoIcP/1IyR4UHxExz7fzpe/a8IG4wBtQi7QDEqiomVLX88S6FpxxAJtg==",
             "dependencies": {
                 "@octokit/openapi-types": "^19.1.0"
             }
@@ -4018,17 +4006,17 @@
             }
         },
         "node_modules/@react-aria/actiongroup": {
-            "version": "3.7.2",
-            "resolved": "https://registry.npmjs.org/@react-aria/actiongroup/-/actiongroup-3.7.2.tgz",
-            "integrity": "sha512-H8VLxkelhppaFGuPCOuZVryKBUeKVhCtkRIlR3ZnVcNR5jV9Qlc1J3rWOmMNJxcVTszXEbOcJL+/xX1fpBhA5g==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/list": "^3.10.2",
-                "@react-types/actiongroup": "^3.4.6",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.7.3",
+            "resolved": "https://registry.npmjs.org/@react-aria/actiongroup/-/actiongroup-3.7.3.tgz",
+            "integrity": "sha512-o1qw7w7GdL8vsOuzBc2mil+MM1CWWDDZ1+VhWnVwoDVt5Pxj36981leTh/WTS58IQ34N7p/jVdQMraQ25EJJyA==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/list": "^3.10.3",
+                "@react-types/actiongroup": "^3.4.7",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4037,15 +4025,15 @@
             }
         },
         "node_modules/@react-aria/breadcrumbs": {
-            "version": "3.5.10",
-            "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.10.tgz",
-            "integrity": "sha512-Z6UMVvobmBg4uLewAXkp9/X6AFN+S/4uHk3IShHCaI8ONNZrIewbPYR1B9qNsgMMnYWmDfaOp40krdJSgYdGUw==",
-            "dependencies": {
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/link": "^3.6.4",
-                "@react-aria/utils": "^3.23.1",
-                "@react-types/breadcrumbs": "^3.7.2",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.5.11",
+            "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.11.tgz",
+            "integrity": "sha512-bQz4g2tKvcWxeqPGj9O0RQf++Ka8f2o/pJMJB+QQ27DVQWhxpQpND//oFku2aFYkxHB/fyD9qVoiqpQR25bidw==",
+            "dependencies": {
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/link": "^3.6.5",
+                "@react-aria/utils": "^3.23.2",
+                "@react-types/breadcrumbs": "^3.7.3",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4053,16 +4041,16 @@
             }
         },
         "node_modules/@react-aria/button": {
-            "version": "3.9.2",
-            "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.9.2.tgz",
-            "integrity": "sha512-7ZVUASmdOdi1FNP528oDggxO1SNoAhyuMutaJd7nNBjAJ4Zagi/T9qaAFoVha1hyejfLY/ZzXRdWhnkUYljSbA==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/toggle": "^3.7.1",
-                "@react-types/button": "^3.9.1",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.9.3",
+            "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.9.3.tgz",
+            "integrity": "sha512-ZXo2VGTxfbaTEnfeIlm5ym4vYpGAy8sGrad8Scv+EyDAJWLMKokqctfaN6YSWbqUApC3FN63IvMqASflbmnYig==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/toggle": "^3.7.2",
+                "@react-types/button": "^3.9.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4070,19 +4058,19 @@
             }
         },
         "node_modules/@react-aria/calendar": {
-            "version": "3.5.5",
-            "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.5.5.tgz",
-            "integrity": "sha512-9CmW7mwIJwuM8wsw4W8ads3mxUftaSSfYaWH1h+m0C9ycNJ1FP2QO+re4I821+LhuuyJTj1GOUJ7Tzk+c9yWJA==",
-            "dependencies": {
-                "@internationalized/date": "^3.5.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/live-announcer": "^3.3.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/calendar": "^3.4.3",
-                "@react-types/button": "^3.9.1",
-                "@react-types/calendar": "^3.4.3",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.5.6",
+            "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.5.6.tgz",
+            "integrity": "sha512-PA0Ur5WcODMn7t2gCUvq61YktkB+WlSZjzDr5kcY3sdl53ZjiyqCa2hYgrb6R0J859LVJXAp+5Qaproz8g1oLA==",
+            "dependencies": {
+                "@internationalized/date": "^3.5.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/live-announcer": "^3.3.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/calendar": "^3.4.4",
+                "@react-types/button": "^3.9.2",
+                "@react-types/calendar": "^3.4.4",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4091,20 +4079,20 @@
             }
         },
         "node_modules/@react-aria/checkbox": {
-            "version": "3.14.0",
-            "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.14.0.tgz",
-            "integrity": "sha512-eOIeIIhnoQkin+1kmz+pv/YjRSkMWAF4uyi1THwkTlLZmpJvxUqEbSzQhfBEH30tKAlFLAcpY3+XOUCm74tHng==",
-            "dependencies": {
-                "@react-aria/form": "^3.0.2",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/label": "^3.7.5",
-                "@react-aria/toggle": "^3.10.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/checkbox": "^3.6.2",
-                "@react-stately/form": "^3.0.0",
-                "@react-stately/toggle": "^3.7.1",
-                "@react-types/checkbox": "^3.7.0",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.14.1",
+            "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.14.1.tgz",
+            "integrity": "sha512-b4rtrg5SpRSa9jBOqzJMmprJ+jDi3KyVvUh+DsvISe5Ti7gVAhMBgnca1D0xBp22w2jhk/o4gyu1bYxGLum0GA==",
+            "dependencies": {
+                "@react-aria/form": "^3.0.3",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/label": "^3.7.6",
+                "@react-aria/toggle": "^3.10.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/checkbox": "^3.6.3",
+                "@react-stately/form": "^3.0.1",
+                "@react-stately/toggle": "^3.7.2",
+                "@react-types/checkbox": "^3.7.1",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4112,24 +4100,24 @@
             }
         },
         "node_modules/@react-aria/combobox": {
-            "version": "3.8.3",
-            "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.8.3.tgz",
-            "integrity": "sha512-7SteX1MjDV0077IZVMuaXAuIiSaQeGYh1sT5Y6eDOCiOArkPaEmXWzCjBDkLYex0jl6z51gl0gLU3dwq9kB6Gw==",
-            "dependencies": {
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/listbox": "^3.11.4",
-                "@react-aria/live-announcer": "^3.3.1",
-                "@react-aria/menu": "^3.13.0",
-                "@react-aria/overlays": "^3.21.0",
-                "@react-aria/selection": "^3.17.4",
-                "@react-aria/textfield": "^3.14.2",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/combobox": "^3.8.1",
-                "@react-stately/form": "^3.0.0",
-                "@react-types/button": "^3.9.1",
-                "@react-types/combobox": "^3.10.0",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.8.4",
+            "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.8.4.tgz",
+            "integrity": "sha512-HyTWIo2B/0xq0Of+sDEZCfJyf4BvCvDYIWG4UhjqL1kHIHIGQyyr+SldbVUjXVYnk8pP1eGB3ttiREujjjALPQ==",
+            "dependencies": {
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/listbox": "^3.11.5",
+                "@react-aria/live-announcer": "^3.3.2",
+                "@react-aria/menu": "^3.13.1",
+                "@react-aria/overlays": "^3.21.1",
+                "@react-aria/selection": "^3.17.5",
+                "@react-aria/textfield": "^3.14.3",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/combobox": "^3.8.2",
+                "@react-stately/form": "^3.0.1",
+                "@react-types/button": "^3.9.2",
+                "@react-types/combobox": "^3.10.1",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4138,27 +4126,27 @@
             }
         },
         "node_modules/@react-aria/datepicker": {
-            "version": "3.9.2",
-            "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.9.2.tgz",
-            "integrity": "sha512-8iTfhHEfPPmf7DmqnzCttvzZms15CstAVdvbOVqUuBqH8Ai693aIuVfOEkyqL5Vqohy4/+ViA5LZ3WM4m7QLiQ==",
-            "dependencies": {
-                "@internationalized/date": "^3.5.1",
-                "@internationalized/number": "^3.5.0",
-                "@internationalized/string": "^3.2.0",
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/form": "^3.0.2",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/label": "^3.7.5",
-                "@react-aria/spinbutton": "^3.6.2",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/datepicker": "^3.9.1",
-                "@react-stately/form": "^3.0.0",
-                "@react-types/button": "^3.9.1",
-                "@react-types/calendar": "^3.4.3",
-                "@react-types/datepicker": "^3.7.1",
-                "@react-types/dialog": "^3.5.7",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.9.3",
+            "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.9.3.tgz",
+            "integrity": "sha512-1AjCAizd88ACKjVNhFazX4HZZFwWi2rsSlGCTm66Nx6wm5N/Cpbm466dpYEFyQUsKSOG4CC65G1zfYoMPe48MQ==",
+            "dependencies": {
+                "@internationalized/date": "^3.5.2",
+                "@internationalized/number": "^3.5.1",
+                "@internationalized/string": "^3.2.1",
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/form": "^3.0.3",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/label": "^3.7.6",
+                "@react-aria/spinbutton": "^3.6.3",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/datepicker": "^3.9.2",
+                "@react-stately/form": "^3.0.1",
+                "@react-types/button": "^3.9.2",
+                "@react-types/calendar": "^3.4.4",
+                "@react-types/datepicker": "^3.7.2",
+                "@react-types/dialog": "^3.5.8",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4167,15 +4155,15 @@
             }
         },
         "node_modules/@react-aria/dialog": {
-            "version": "3.5.11",
-            "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.11.tgz",
-            "integrity": "sha512-oT+FBOtPZRWVBxPt1K8F5XaKGYpi+ZV3oFFzub8w+D6m+9WN4pktUx7YBz95Kunw7M1HcAsyQZX0fsAuDPL7Rw==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/overlays": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-types/dialog": "^3.5.7",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.5.12",
+            "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.12.tgz",
+            "integrity": "sha512-7UJR/h/Y364u6Ltpw0bT51B48FybTuIBacGpEJN5IxZlpxvQt0KQcBDiOWfAa/GQogw4B5hH6agaOO0nJcP49Q==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/overlays": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-types/dialog": "^3.5.8",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4184,19 +4172,19 @@
             }
         },
         "node_modules/@react-aria/dnd": {
-            "version": "3.5.2",
-            "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.5.2.tgz",
-            "integrity": "sha512-isEYONbkZMvx1DUmeAo/NwazFz9ZEKdosszWDhzxSk6a38C5kAHBIV2GBntwsL3W9EQn1fzUY/X13ykcHvjJAA==",
-            "dependencies": {
-                "@internationalized/string": "^3.2.0",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/live-announcer": "^3.3.1",
-                "@react-aria/overlays": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/dnd": "^3.2.7",
-                "@react-types/button": "^3.9.1",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.5.3",
+            "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.5.3.tgz",
+            "integrity": "sha512-0gi6sRnr97fSQnGy+CMt+99/+vVqr+qv2T9Ts8X9TAzxHNokz5QfSL88QSlTU36EnAVLxPY18iZQWCExSjKpEQ==",
+            "dependencies": {
+                "@internationalized/string": "^3.2.1",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/live-announcer": "^3.3.2",
+                "@react-aria/overlays": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/dnd": "^3.2.8",
+                "@react-types/button": "^3.9.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4205,13 +4193,13 @@
             }
         },
         "node_modules/@react-aria/focus": {
-            "version": "3.16.1",
-            "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.16.1.tgz",
-            "integrity": "sha512-3ZEYc+hWqDQX7fA54ZOTkED8OGXs9+K9fYmjD1IdjZJAJS/2/AJ95PgIQ29zBkl9D9TAi4Nb3tJ/3+H/02UzoA==",
+            "version": "3.16.2",
+            "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.16.2.tgz",
+            "integrity": "sha512-Rqo9ummmgotESfypzFjI3uh58yMpL+E+lJBbQuXkBM0u0cU2YYzu0uOrFrq3zcHk997udZvq1pGK/R+2xk9B7g==",
             "dependencies": {
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-types/shared": "^3.22.0",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0",
                 "clsx": "^2.0.0"
             },
@@ -4220,14 +4208,14 @@
             }
         },
         "node_modules/@react-aria/form": {
-            "version": "3.0.2",
-            "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.2.tgz",
-            "integrity": "sha512-iQBbol9vSPd+s2rNlkmu646wGlrDNr/u+Uf/NRXNl5MNvDIWAQ3mliGL1ERGtT5GGq0WzSka4hjbzwf67BdQKw==",
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.3.tgz",
+            "integrity": "sha512-5Q2BHE4TTPDzGY2npCzpRRYshwWUb3SMUA/Cbz7QfEtBk+NYuVaq3KjvqLqgUUdyKtqLZ9Far0kIAexloOC4jw==",
             "dependencies": {
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/form": "^3.0.0",
-                "@react-types/shared": "^3.22.0",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/form": "^3.0.1",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4235,23 +4223,23 @@
             }
         },
         "node_modules/@react-aria/grid": {
-            "version": "3.8.7",
-            "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.8.7.tgz",
-            "integrity": "sha512-gpWiZptCA+65jVbCu9vzkfBfzfgLucSOZFy9P+fVrGB6fE6pDGj13oyyr+Nmr6jihQmOv+y9eJsU7u9Xlyl2Xg==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/live-announcer": "^3.3.1",
-                "@react-aria/selection": "^3.17.4",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/grid": "^3.8.4",
-                "@react-stately/selection": "^3.14.2",
-                "@react-stately/virtualizer": "^3.6.7",
-                "@react-types/checkbox": "^3.7.0",
-                "@react-types/grid": "^3.2.3",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.8.8",
+            "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.8.8.tgz",
+            "integrity": "sha512-7Bzbya4tO0oIgqexwRb8D6ZdC0GASYq9f/pnkrqocgvG9e1SCld4zOioKbYQDvAK/NnbCgXmmdqFAcLM/iazaA==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/live-announcer": "^3.3.2",
+                "@react-aria/selection": "^3.17.5",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/grid": "^3.8.5",
+                "@react-stately/selection": "^3.14.3",
+                "@react-stately/virtualizer": "^3.6.8",
+                "@react-types/checkbox": "^3.7.1",
+                "@react-types/grid": "^3.2.4",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4260,18 +4248,18 @@
             }
         },
         "node_modules/@react-aria/gridlist": {
-            "version": "3.7.4",
-            "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.7.4.tgz",
-            "integrity": "sha512-9GeKXfMd4WqyaRs7PMvuL9ryLND0EBkgf14dycbZCb/QKxgNYRLPFZN6fV3LiMh2CiqAXEpmDOo60PxSxh618A==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/grid": "^3.8.7",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/selection": "^3.17.4",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/list": "^3.10.2",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.7.5",
+            "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.7.5.tgz",
+            "integrity": "sha512-RmHEJ++vngHYEWbUCtLLmGh7H3vNd2Y9S0q/9SgHFPbqPZycT5mxDZ2arqpOXeHRVRvPBaW9ZlMxI2bPOePrYw==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/grid": "^3.8.8",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/selection": "^3.17.5",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/list": "^3.10.3",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4280,17 +4268,17 @@
             }
         },
         "node_modules/@react-aria/i18n": {
-            "version": "3.10.1",
-            "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.10.1.tgz",
-            "integrity": "sha512-o05AozIXhropvN8vg0YD0Z0vajYuaALxB1+Km00FE5uGim4u2UKeBXqAk+8QsOs4CHg91paa3C15DcTDDEMJSg==",
-            "dependencies": {
-                "@internationalized/date": "^3.5.1",
-                "@internationalized/message": "^3.1.1",
-                "@internationalized/number": "^3.5.0",
-                "@internationalized/string": "^3.2.0",
-                "@react-aria/ssr": "^3.9.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.10.2",
+            "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.10.2.tgz",
+            "integrity": "sha512-Z1ormoIvMOI4mEdcFLYsoJy9w/EzBdBmgfLP+S/Ah+1xwQOXpgwZxiKOhYHpWa0lf6hkKJL34N9MHJvCJ5Crvw==",
+            "dependencies": {
+                "@internationalized/date": "^3.5.2",
+                "@internationalized/message": "^3.1.2",
+                "@internationalized/number": "^3.5.1",
+                "@internationalized/string": "^3.2.1",
+                "@react-aria/ssr": "^3.9.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4298,13 +4286,13 @@
             }
         },
         "node_modules/@react-aria/interactions": {
-            "version": "3.21.0",
-            "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.21.0.tgz",
-            "integrity": "sha512-sPuzEl4Xq/BR5gbYr2R/sDzwlX9NdJ02i8Ew2rEy2hLMlf1jAeUAdTg/G+K9baWJ8acV9fZv6h/mdV3dXGLPSg==",
+            "version": "3.21.1",
+            "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.21.1.tgz",
+            "integrity": "sha512-AlHf5SOzsShkHfV8GLLk3v9lEmYqYHURKcXWue0JdYbmquMRkUsf/+Tjl1+zHVAQ8lKqRnPYbTmc4AcZbqxltw==",
             "dependencies": {
-                "@react-aria/ssr": "^3.9.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-types/shared": "^3.22.0",
+                "@react-aria/ssr": "^3.9.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4312,12 +4300,12 @@
             }
         },
         "node_modules/@react-aria/label": {
-            "version": "3.7.5",
-            "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.5.tgz",
-            "integrity": "sha512-1hlTer4X9zlzC2PHC9SlAeY/E55dYyzxxpM75kqhtma8XFgDUB0Rztvi+R/Uenl0VDuy1Ny95OdhBM0j70qBnA==",
+            "version": "3.7.6",
+            "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.6.tgz",
+            "integrity": "sha512-ap9iFS+6RUOqeW/F2JoNpERqMn1PvVIo3tTMrJ1TY1tIwyJOxdCBRgx9yjnPBnr+Ywguep+fkPNNi/m74+tXVQ==",
             "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-types/shared": "^3.22.0",
+                "@react-aria/utils": "^3.23.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4325,15 +4313,15 @@
             }
         },
         "node_modules/@react-aria/link": {
-            "version": "3.6.4",
-            "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.6.4.tgz",
-            "integrity": "sha512-oCUWAvnJYD7IUR6ujQJqCChiSFJMsBncoInMvfbnlD3ZX5AqLWEPkJUZ7aM8XB6fGEapiYoY1IUHzOM63XsmjQ==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-types/link": "^3.5.2",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.6.5",
+            "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.6.5.tgz",
+            "integrity": "sha512-kg8CxKqkciQFzODvLAfxEs8gbqNXFZCW/ISOE2LHYKbh9pA144LVo71qO3SPeYVVzIjmZeW4vEMdZwqkNozecw==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-types/link": "^3.5.3",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4341,18 +4329,18 @@
             }
         },
         "node_modules/@react-aria/listbox": {
-            "version": "3.11.4",
-            "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.11.4.tgz",
-            "integrity": "sha512-ml2dUy1R0kSuDmFrW0xtAnI04nZBfzLLmINSl1k9N5Tr/PVZ/TVGjFimHfpG7g3uvTxGXpjFfA9DR+2Nyuj/SA==",
-            "dependencies": {
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/label": "^3.7.5",
-                "@react-aria/selection": "^3.17.4",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/list": "^3.10.2",
-                "@react-types/listbox": "^3.4.6",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.11.5",
+            "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.11.5.tgz",
+            "integrity": "sha512-y3a3zQYjT+JKgugCMMKS7K9sRoCoP1Z6Fiiyfd77OHXWzh9RlnvWGsseljynmbxLzSuPwFtCYkU1Jz4QwsPUIg==",
+            "dependencies": {
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/label": "^3.7.6",
+                "@react-aria/selection": "^3.17.5",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/list": "^3.10.3",
+                "@react-types/listbox": "^3.4.7",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4361,30 +4349,30 @@
             }
         },
         "node_modules/@react-aria/live-announcer": {
-            "version": "3.3.1",
-            "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.3.1.tgz",
-            "integrity": "sha512-hsc77U7S16trM86d+peqJCOCQ7/smO1cybgdpOuzXyiwcHQw8RQ4GrXrS37P4Ux/44E9nMZkOwATQRT2aK8+Ew==",
+            "version": "3.3.2",
+            "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.3.2.tgz",
+            "integrity": "sha512-aOyPcsfyY9tLCBhuUaYCruwcd1IrYLc47Ou+J7wMzjeN9v4lsaEfiN12WFl8pDqOwfy6/7It2wmlm5hOuZY8wQ==",
             "dependencies": {
                 "@swc/helpers": "^0.5.0"
             }
         },
         "node_modules/@react-aria/menu": {
-            "version": "3.13.0",
-            "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.13.0.tgz",
-            "integrity": "sha512-2vNZV77I36sbAINj3QVbq4yxOfytzQpdQAhHy7QFr7WjvTYqPAVNuD4LgiGn97I5skLRakCs+tGiLgIQGY/0Ig==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/overlays": "^3.21.0",
-                "@react-aria/selection": "^3.17.4",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/menu": "^3.6.0",
-                "@react-stately/tree": "^3.7.5",
-                "@react-types/button": "^3.9.1",
-                "@react-types/menu": "^3.9.6",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.13.1",
+            "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.13.1.tgz",
+            "integrity": "sha512-jF80YIcvD16Fgwm5pj7ViUE3Dj7z5iewQixLaFVdvpgfyE58SD/ZVU9/JkK5g/03DYM0sjpUKZGkdFxxw8eKnw==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/overlays": "^3.21.1",
+                "@react-aria/selection": "^3.17.5",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/menu": "^3.6.1",
+                "@react-stately/tree": "^3.7.6",
+                "@react-types/button": "^3.9.2",
+                "@react-types/menu": "^3.9.7",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4393,13 +4381,13 @@
             }
         },
         "node_modules/@react-aria/meter": {
-            "version": "3.4.10",
-            "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.10.tgz",
-            "integrity": "sha512-8x4Y9NKRzJNPlcU9kn0kflYSLCyMwaIAx0JJFL576+HdZhyIbEPFk/vaaYWbyJgo5xYsicaeynwJ7j6lCyxF8w==",
+            "version": "3.4.11",
+            "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.11.tgz",
+            "integrity": "sha512-P1G3Jdh0f/uieUDqvc3Ee4wzqBJa7H077BVSC3KPRqEp6YY7JimZGWjOwbFlO2PXhryXm/dI8EzUmh+4ZXjq/g==",
             "dependencies": {
-                "@react-aria/progress": "^3.4.10",
-                "@react-types/meter": "^3.3.6",
-                "@react-types/shared": "^3.22.0",
+                "@react-aria/progress": "^3.4.11",
+                "@react-types/meter": "^3.3.7",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4407,20 +4395,20 @@
             }
         },
         "node_modules/@react-aria/numberfield": {
-            "version": "3.11.0",
-            "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.11.0.tgz",
-            "integrity": "sha512-fdl+d6sIwHRMiraXMQ5JyPlrmsQ3YECh9W7fzbY3CBcsG9mXVQjoQ50cV7u5VeakLXaBsgL4EmVe/zmTk2G0Aw==",
-            "dependencies": {
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/spinbutton": "^3.6.2",
-                "@react-aria/textfield": "^3.14.2",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/form": "^3.0.0",
-                "@react-stately/numberfield": "^3.9.0",
-                "@react-types/button": "^3.9.1",
-                "@react-types/numberfield": "^3.8.0",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.11.1",
+            "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.11.1.tgz",
+            "integrity": "sha512-JQ1Z+Ho5H+jeav7jt9A4vBsIQR/Dd2CFbObrULjGkqSrnWjARFZBv3gZwmfGCtplEPeAv9buYKHAqebPtJNUww==",
+            "dependencies": {
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/spinbutton": "^3.6.3",
+                "@react-aria/textfield": "^3.14.3",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/form": "^3.0.1",
+                "@react-stately/numberfield": "^3.9.1",
+                "@react-types/button": "^3.9.2",
+                "@react-types/numberfield": "^3.8.1",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4429,20 +4417,20 @@
             }
         },
         "node_modules/@react-aria/overlays": {
-            "version": "3.21.0",
-            "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.21.0.tgz",
-            "integrity": "sha512-ulE5RQP3ZUFqY6Zok4L/CCZW5HCPZeuyDEezPw4/4Y/WD6TjGZ1ChbPuGsAl+X+fo/iKTpe7joN4kYrKmTb5WA==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/ssr": "^3.9.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-aria/visually-hidden": "^3.8.9",
-                "@react-stately/overlays": "^3.6.4",
-                "@react-types/button": "^3.9.1",
-                "@react-types/overlays": "^3.8.4",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.21.1",
+            "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.21.1.tgz",
+            "integrity": "sha512-djEBDF+TbIIOHWWNpdm19+z8xtY8U+T+wKVQg/UZ6oWnclSqSWeGl70vu73Cg4HVBJ4hKf1SRx4Z/RN6VvH4Yw==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/ssr": "^3.9.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-aria/visually-hidden": "^3.8.10",
+                "@react-stately/overlays": "^3.6.5",
+                "@react-types/button": "^3.9.2",
+                "@react-types/overlays": "^3.8.5",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4451,15 +4439,15 @@
             }
         },
         "node_modules/@react-aria/progress": {
-            "version": "3.4.10",
-            "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.10.tgz",
-            "integrity": "sha512-q82LbDjimIo5a21Kg9aUYG94oFsDtpAwaQDj2YPVDt9kNie4BHOLHnHZWYk8jPoZDHMEk80jZBKWcDnk8+wWtw==",
-            "dependencies": {
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/label": "^3.7.5",
-                "@react-aria/utils": "^3.23.1",
-                "@react-types/progress": "^3.5.1",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.4.11",
+            "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.11.tgz",
+            "integrity": "sha512-RePHbS15/KYFiApYLdwazwvWKsB9q0Kn5DGCSb0hqCC+k2Eui8iVVOsegswiP+xqkk/TiUCIkBEw22W3Az4kTg==",
+            "dependencies": {
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/label": "^3.7.6",
+                "@react-aria/utils": "^3.23.2",
+                "@react-types/progress": "^3.5.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4467,19 +4455,19 @@
             }
         },
         "node_modules/@react-aria/radio": {
-            "version": "3.10.1",
-            "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.1.tgz",
-            "integrity": "sha512-UEeQncLloHz/H4iwHbiBXiYLCDsMmRDkL/GMcpUCx0OaQSuKB/kJTOR0rFEMVyCiDVXx7hJ16fcSh1lXpLL9gA==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/form": "^3.0.2",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/label": "^3.7.5",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/radio": "^3.10.1",
-                "@react-types/radio": "^3.7.0",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.10.2",
+            "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.2.tgz",
+            "integrity": "sha512-CTUTR+qt3BLjmyQvKHZuVm+1kyvT72ZptOty++sowKXgJApTLdjq8so1IpaLAr8JIfzqD5I4tovsYwIQOX8log==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/form": "^3.0.3",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/label": "^3.7.6",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/radio": "^3.10.2",
+                "@react-types/radio": "^3.7.1",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4487,17 +4475,17 @@
             }
         },
         "node_modules/@react-aria/searchfield": {
-            "version": "3.7.2",
-            "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.7.2.tgz",
-            "integrity": "sha512-YpmvbWOgECTK9KjMYqWwSFPi57b7m0rdAQPMjB3Call0CE7tQiSP5TbwkpOa4Id8Kghm8ySV5fNkBKP2xhHxdg==",
-            "dependencies": {
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/textfield": "^3.14.2",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/searchfield": "^3.5.0",
-                "@react-types/button": "^3.9.1",
-                "@react-types/searchfield": "^3.5.2",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.7.3",
+            "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.7.3.tgz",
+            "integrity": "sha512-mnYI969R7tU3yMRIGmY1+peq7tmEW0W3MB/J2ImK36Obz/91tTtspHHEeFtPlQDLIyvVPB0Ucam4LIxCKPJm/Q==",
+            "dependencies": {
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/textfield": "^3.14.3",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/searchfield": "^3.5.1",
+                "@react-types/button": "^3.9.2",
+                "@react-types/searchfield": "^3.5.3",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4505,23 +4493,23 @@
             }
         },
         "node_modules/@react-aria/select": {
-            "version": "3.14.2",
-            "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.14.2.tgz",
-            "integrity": "sha512-8kwqzNwJI+oC8PqotElEeWF24Ae58nnyeujcM0yCnuglTGqacGqCHmAOFHb99SxxSXmNC6OppAZNmRV3kUxdLA==",
-            "dependencies": {
-                "@react-aria/form": "^3.0.2",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/label": "^3.7.5",
-                "@react-aria/listbox": "^3.11.4",
-                "@react-aria/menu": "^3.13.0",
-                "@react-aria/selection": "^3.17.4",
-                "@react-aria/utils": "^3.23.1",
-                "@react-aria/visually-hidden": "^3.8.9",
-                "@react-stately/select": "^3.6.1",
-                "@react-types/button": "^3.9.1",
-                "@react-types/select": "^3.9.1",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.14.3",
+            "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.14.3.tgz",
+            "integrity": "sha512-9KCxI41FI+jTxEfUzRsMdJsZvjkCuuhL4UHig8MZXtXs0nsi7Ir3ezUDQ9m5MSG+ooBYM/CA9DyLDvo5Ioef+g==",
+            "dependencies": {
+                "@react-aria/form": "^3.0.3",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/label": "^3.7.6",
+                "@react-aria/listbox": "^3.11.5",
+                "@react-aria/menu": "^3.13.1",
+                "@react-aria/selection": "^3.17.5",
+                "@react-aria/utils": "^3.23.2",
+                "@react-aria/visually-hidden": "^3.8.10",
+                "@react-stately/select": "^3.6.2",
+                "@react-types/button": "^3.9.2",
+                "@react-types/select": "^3.9.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4530,16 +4518,16 @@
             }
         },
         "node_modules/@react-aria/selection": {
-            "version": "3.17.4",
-            "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.17.4.tgz",
-            "integrity": "sha512-COq5qGbJebn9Wbo/3UGluhYLK4uUijuacew/7PgLArHIjiqPvK7kqcQA5Kdwrxzv4Z94f2x9fVf8Uf65zB543Q==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/selection": "^3.14.2",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.17.5",
+            "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.17.5.tgz",
+            "integrity": "sha512-gO5jBUkc7WdkiFMlWt3x9pTSuj3Yeegsxfo44qU5NPlKrnGtPRZDWrlACNgkDHu645RNNPhlyoX0C+G8mUg1xA==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/selection": "^3.14.3",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4548,12 +4536,12 @@
             }
         },
         "node_modules/@react-aria/separator": {
-            "version": "3.3.10",
-            "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.3.10.tgz",
-            "integrity": "sha512-/wM8yOY0XPWDJXbyiKo9lgDTePDCa0ZDoXAn+Hg4dwh6lQLBmEQBugN5sVJJ4BBdbyQbcRZcI2+eM4DfcU2kNg==",
+            "version": "3.3.11",
+            "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.3.11.tgz",
+            "integrity": "sha512-UTla+3P2pELpP73WSfbwZgP1y1wODFBQbEOHnUxxO8ocyaUyQLJdvc07bBLLpPoyutlggRG0v9ACo0Rui7AjOg==",
             "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-types/shared": "^3.22.0",
+                "@react-aria/utils": "^3.23.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4561,18 +4549,18 @@
             }
         },
         "node_modules/@react-aria/slider": {
-            "version": "3.7.5",
-            "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.5.tgz",
-            "integrity": "sha512-AV0ZDWmdO8mvh3wS09uOAoenRCxkqaN7ZYb0rQLRvP2vhZJzaJPaN7/0f9/TLnvrZmmUspm4IqXD+Ci9q49lWA==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/label": "^3.7.5",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/slider": "^3.5.1",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/slider": "^3.7.0",
+            "version": "3.7.6",
+            "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.6.tgz",
+            "integrity": "sha512-ZeZhyHzhk9gxGuThPKgX2K3RKsxPxsFig1iYoJvqP8485NtHYQIPht2YcpEKA9siLxGF0DR9VCfouVhSoW0AEA==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/label": "^3.7.6",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/slider": "^3.5.2",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/slider": "^3.7.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4580,15 +4568,15 @@
             }
         },
         "node_modules/@react-aria/spinbutton": {
-            "version": "3.6.2",
-            "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.2.tgz",
-            "integrity": "sha512-ivrSmyjm/FSEBBD/Io3cwad88Kx8CiulLXZNJPvvEsTrsowDIyaLZ55oTrNIXXQZJY4Ns9ccaQUwD+QGBX/eIQ==",
-            "dependencies": {
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/live-announcer": "^3.3.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-types/button": "^3.9.1",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.3.tgz",
+            "integrity": "sha512-IlfhRu/pc9zOt2C5zSEB7NmmzddvWisGx2iGzw8BwIKMD+cN3uy+Qwp+sG6Z/JzFEBN0F6Mxm3l5lhbiqjpICQ==",
+            "dependencies": {
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/live-announcer": "^3.3.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-types/button": "^3.9.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4597,9 +4585,9 @@
             }
         },
         "node_modules/@react-aria/ssr": {
-            "version": "3.9.1",
-            "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.1.tgz",
-            "integrity": "sha512-NqzkLFP8ZVI4GSorS0AYljC13QW2sc8bDqJOkBvkAt3M8gbcAXJWVRGtZBCRscki9RZF+rNlnPdg0G0jYkhJcg==",
+            "version": "3.9.2",
+            "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.2.tgz",
+            "integrity": "sha512-0gKkgDYdnq1w+ey8KzG9l+H5Z821qh9vVjztk55rUg71vTk/Eaebeir+WtzcLLwTjw3m/asIjx8Y59y1lJZhBw==",
             "dependencies": {
                 "@swc/helpers": "^0.5.0"
             },
@@ -4611,13 +4599,13 @@
             }
         },
         "node_modules/@react-aria/switch": {
-            "version": "3.6.1",
-            "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.1.tgz",
-            "integrity": "sha512-WaDJ4KJlrYvkLK4h3/KRGRfHlYjPmqDEh83ya0wtkZbKZte7/2+a1bnpwcrQeTmuDVSPthiieL1dQggg8sOuxA==",
+            "version": "3.6.2",
+            "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.2.tgz",
+            "integrity": "sha512-X5m/omyhXK+V/vhJFsHuRs2zmt9Asa/RuzlldbXnWohLdeuHMPgQnV8C9hg3f+sRi3sh9UUZ64H61pCtRoZNwg==",
             "dependencies": {
-                "@react-aria/toggle": "^3.10.1",
-                "@react-stately/toggle": "^3.7.1",
-                "@react-types/switch": "^3.5.0",
+                "@react-aria/toggle": "^3.10.2",
+                "@react-stately/toggle": "^3.7.2",
+                "@react-types/switch": "^3.5.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4625,25 +4613,25 @@
             }
         },
         "node_modules/@react-aria/table": {
-            "version": "3.13.4",
-            "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.13.4.tgz",
-            "integrity": "sha512-dhYumqv2kCH3LOtmXJlq0Qc3VVFwaDaHaTV6xgen2EZxUZQa3mZDoCoxSu8/w3LvKwQAk+NAOqmrOHzMMyOlOQ==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/grid": "^3.8.7",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/live-announcer": "^3.3.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-aria/visually-hidden": "^3.8.9",
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/flags": "^3.0.0",
-                "@react-stately/table": "^3.11.5",
-                "@react-stately/virtualizer": "^3.6.7",
-                "@react-types/checkbox": "^3.7.0",
-                "@react-types/grid": "^3.2.3",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/table": "^3.9.2",
+            "version": "3.13.5",
+            "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.13.5.tgz",
+            "integrity": "sha512-P2nHEDk2CCoEbMFKNCyBC9qvmv7F/IXARDt/7z/J4mKFgU2iNSK+/zw6yrb38q33Zlk8hDaqSYNxHlMrh+/1MQ==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/grid": "^3.8.8",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/live-announcer": "^3.3.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-aria/visually-hidden": "^3.8.10",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/flags": "^3.0.1",
+                "@react-stately/table": "^3.11.6",
+                "@react-stately/virtualizer": "^3.6.8",
+                "@react-types/checkbox": "^3.7.1",
+                "@react-types/grid": "^3.2.4",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/table": "^3.9.3",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4652,17 +4640,17 @@
             }
         },
         "node_modules/@react-aria/tabs": {
-            "version": "3.8.4",
-            "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.8.4.tgz",
-            "integrity": "sha512-q8c3QorgVqi9hxa1FisWuZ5rRkS0EyzynmJ2hNhyznIlGuMP30HsnsTIf1Y+hNNj3ofL04Xc5BkJpLrQvsBPAQ==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/selection": "^3.17.4",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/tabs": "^3.6.3",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/tabs": "^3.3.4",
+            "version": "3.8.5",
+            "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.8.5.tgz",
+            "integrity": "sha512-Jvt33/W+66n5oCxVwHAYarJ3Fit61vULiPcG7uTez0Mf11cq/C72wOrj+ZuNz6PTLTi2veBNQ7MauY72SnOjRg==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/selection": "^3.17.5",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/tabs": "^3.6.4",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/tabs": "^3.3.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4671,19 +4659,19 @@
             }
         },
         "node_modules/@react-aria/tag": {
-            "version": "3.3.2",
-            "resolved": "https://registry.npmjs.org/@react-aria/tag/-/tag-3.3.2.tgz",
-            "integrity": "sha512-AWgwRBwhhrmfdvvV7cSp3VTsLkw1e04IKQCKss3hF7zd75T+LfwvCa8g4CUDsFXx3lvIh0rB/6evhBfn3D0rDw==",
-            "dependencies": {
-                "@react-aria/gridlist": "^3.7.4",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/label": "^3.7.5",
-                "@react-aria/selection": "^3.17.4",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/list": "^3.10.2",
-                "@react-types/button": "^3.9.1",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.3.3",
+            "resolved": "https://registry.npmjs.org/@react-aria/tag/-/tag-3.3.3.tgz",
+            "integrity": "sha512-tlJD9qj1XcsPIZD7DVJ6tWv8t7Z87/8qkbRDx7ugNqeHso9z0WqH9ZkSt17OFUWE2IQIk3V8D3iBSOtmhXcZGQ==",
+            "dependencies": {
+                "@react-aria/gridlist": "^3.7.5",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/label": "^3.7.6",
+                "@react-aria/selection": "^3.17.5",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/list": "^3.10.3",
+                "@react-types/button": "^3.9.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4692,18 +4680,18 @@
             }
         },
         "node_modules/@react-aria/textfield": {
-            "version": "3.14.2",
-            "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.14.2.tgz",
-            "integrity": "sha512-l9FulRr7Kpchy+dt0hIZ7rMwMReJrZnjeWT7iwmZWFMleEYjSuRUnmM+L82oZBY9BSwftJ5kk6vG4AP7MLBulg==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/form": "^3.0.2",
-                "@react-aria/label": "^3.7.5",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/form": "^3.0.0",
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/textfield": "^3.9.0",
+            "version": "3.14.3",
+            "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.14.3.tgz",
+            "integrity": "sha512-wPSjj/mTABspYQdahg+l5YMtEQ3m5iPCTtb5g6nR1U1rzJkvS4i5Pug6PUXeLeMz2H3ToflPWGlNOqBioAFaOQ==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/form": "^3.0.3",
+                "@react-aria/label": "^3.7.6",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/form": "^3.0.1",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/textfield": "^3.9.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4711,15 +4699,15 @@
             }
         },
         "node_modules/@react-aria/toggle": {
-            "version": "3.10.1",
-            "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.1.tgz",
-            "integrity": "sha512-Z+T/fyWvglLDMsNDCee/OF3Josntzlfq1/Iez+ShqIaSI/FgZIjglQbEFqXvM9gSGOX1fYfv9n4Ztj6DDT6J2Q==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/toggle": "^3.7.1",
-                "@react-types/checkbox": "^3.7.0",
+            "version": "3.10.2",
+            "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.2.tgz",
+            "integrity": "sha512-DgitscHWgI6IFgnvp2HcMpLGX/cAn+XX9kF5RJQbRQ9NqUgruU5cEEGSOLMrEJ6zXDa2xmOiQ+kINcyNhA+JLg==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/toggle": "^3.7.2",
+                "@react-types/checkbox": "^3.7.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4727,16 +4715,16 @@
             }
         },
         "node_modules/@react-aria/tooltip": {
-            "version": "3.7.1",
-            "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.1.tgz",
-            "integrity": "sha512-2lf72hIw3gfQLvKU9SHkh3a/CP8GJ3MbKlPq8x0gX7444zaYII/UDqIkde1TiR2fB71I/MqKSOx6mg28B9lj4w==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/tooltip": "^3.4.6",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/tooltip": "^3.4.6",
+            "version": "3.7.2",
+            "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.2.tgz",
+            "integrity": "sha512-6jXOSGPao3gPgUQWLbH2r/jxGMqIaIKrJgfwu9TQrh+UkwwiTYW20EpEDCYY2nRFlcoi7EYAiPDSEbHCwXS7Lg==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/tooltip": "^3.4.7",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/tooltip": "^3.4.7",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4744,13 +4732,13 @@
             }
         },
         "node_modules/@react-aria/utils": {
-            "version": "3.23.1",
-            "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.23.1.tgz",
-            "integrity": "sha512-iXibf9ojqdoygbvy/++v5cKLKgjc/5ZmKV8/9u/2Hkpha1cf5Td/Z+Vl42B6giUBAsuDio5kuZYfYC7Uk+t8ag==",
+            "version": "3.23.2",
+            "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.23.2.tgz",
+            "integrity": "sha512-yznR9jJ0GG+YJvTMZxijQwVp+ahP66DY0apZf7X+dllyN+ByEDW+yaL1ewYPIpugxVzH5P8jhnBXsIyHKN411g==",
             "dependencies": {
-                "@react-aria/ssr": "^3.9.1",
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/shared": "^3.22.0",
+                "@react-aria/ssr": "^3.9.2",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0",
                 "clsx": "^2.0.0"
             },
@@ -4759,15 +4747,15 @@
             }
         },
         "node_modules/@react-aria/virtualizer": {
-            "version": "3.9.9",
-            "resolved": "https://registry.npmjs.org/@react-aria/virtualizer/-/virtualizer-3.9.9.tgz",
-            "integrity": "sha512-nso567w/vEd5wRLqF2tJF24XYx9wnf0NxrJZW/26xUVSUBgIy4QkYjxb2ylWQCLiRe8iA6xfC27dyvJVeQXwUg==",
-            "dependencies": {
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-stately/virtualizer": "^3.6.7",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.9.10",
+            "resolved": "https://registry.npmjs.org/@react-aria/virtualizer/-/virtualizer-3.9.10.tgz",
+            "integrity": "sha512-oDvGgexK6phB9XECWvAaKTq/nRKxHjmJSiZ2gv9j72JFoky4iVEHKAV6Qnar0VBcEpk16JcJVI/wf1xr9F+sjQ==",
+            "dependencies": {
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-stately/virtualizer": "^3.6.8",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4776,13 +4764,13 @@
             }
         },
         "node_modules/@react-aria/visually-hidden": {
-            "version": "3.8.9",
-            "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.9.tgz",
-            "integrity": "sha512-yUUj4M8YjtwzS45n0nB4bCKCYd3Dl6wmCZKAcAqZG9hMh6DUAcSp2xqYKOAzvNrtZZmAoopgMP4UC9hKlY6swQ==",
+            "version": "3.8.10",
+            "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.10.tgz",
+            "integrity": "sha512-np8c4wxdbE7ZrMv/bnjwEfpX0/nkWy9sELEb0sK8n4+HJ+WycoXXrVxBUb9tXgL/GCx5ReeDQChjQWwajm/z3A==",
             "dependencies": {
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-types/shared": "^3.22.0",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4817,24 +4805,24 @@
             "integrity": "sha512-x9ibmsP0ZVqzyCo1Pitbw+4b6iEXRw/r1TCy3vOUR3eKrzWLnHYZMR325BkZW2r8fnuWE/V3Fp4QZOP9qYORCw=="
         },
         "node_modules/@react-spectrum/actionbar": {
-            "version": "3.4.2",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/actionbar/-/actionbar-3.4.2.tgz",
-            "integrity": "sha512-7vgDP/Q+GbkZN5bMspqUnpVBXDysaznN15s0ZtShOwfWSqbBFHFzMSKcH7IzQoF1C49TWOKwy6LEOGAsfG0RnA==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/live-announcer": "^3.3.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/actiongroup": "^3.10.2",
-                "@react-spectrum/button": "^3.16.1",
-                "@react-spectrum/overlays": "^5.5.4",
-                "@react-spectrum/text": "^3.5.2",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/collections": "^3.10.4",
-                "@react-types/actionbar": "^3.1.4",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.4.3",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/actionbar/-/actionbar-3.4.3.tgz",
+            "integrity": "sha512-LIg3a5z0bnFIkA1teaGUo/RdT4ZKPpUUF0RxPSm0nHWEzolSgD7BN4ijK5UxsDLA2cfNxv78s+vwHHKkKnsjSA==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/live-announcer": "^3.3.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/actiongroup": "^3.10.3",
+                "@react-spectrum/button": "^3.16.2",
+                "@react-spectrum/overlays": "^5.5.5",
+                "@react-spectrum/text": "^3.5.3",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/collections": "^3.10.5",
+                "@react-types/actionbar": "^3.1.5",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4844,25 +4832,25 @@
             }
         },
         "node_modules/@react-spectrum/actiongroup": {
-            "version": "3.10.2",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/actiongroup/-/actiongroup-3.10.2.tgz",
-            "integrity": "sha512-8IslvMwN0c0+PaZfn6zdQokefpUynyQjUPOJMrDcP6CFUKrNkjEexxwipSmgw0OGb1AdGCzCAXpqNXGS0OwBVw==",
-            "dependencies": {
-                "@react-aria/actiongroup": "^3.7.2",
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/button": "^3.16.1",
-                "@react-spectrum/menu": "^3.18.0",
-                "@react-spectrum/text": "^3.5.2",
-                "@react-spectrum/tooltip": "^3.6.4",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/list": "^3.10.2",
-                "@react-types/actiongroup": "^3.4.6",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
-                "@spectrum-icons/workflow": "^4.2.9",
+            "version": "3.10.3",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/actiongroup/-/actiongroup-3.10.3.tgz",
+            "integrity": "sha512-VJASE+Y75Q885z9mx7CVELrX8PuZPbRnGFQnkoRnwZOTpMVZM6wQxA4IcAfsFVvaVIpHgBwtQTI1Ib+gAdtqgw==",
+            "dependencies": {
+                "@react-aria/actiongroup": "^3.7.3",
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/button": "^3.16.2",
+                "@react-spectrum/menu": "^3.18.1",
+                "@react-spectrum/text": "^3.5.3",
+                "@react-spectrum/tooltip": "^3.6.5",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/list": "^3.10.3",
+                "@react-types/actiongroup": "^3.4.7",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
+                "@spectrum-icons/workflow": "^4.2.10",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4872,14 +4860,14 @@
             }
         },
         "node_modules/@react-spectrum/avatar": {
-            "version": "3.0.9",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/avatar/-/avatar-3.0.9.tgz",
-            "integrity": "sha512-zGgfK7tAFOJ9FvJdlvpi++L6YF/RFBONlfJ/acCcls/ki+spzzlmmtml/RFzzO//4vsw/5iayfknWsYdSAl/2g==",
+            "version": "3.0.10",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/avatar/-/avatar-3.0.10.tgz",
+            "integrity": "sha512-PvsCTTcjNN7QSsa3iCc2UF5LeQCwFNaiR0/xvpk+/ViP1wVq+xFR1tfSrbAq7TAF1B3NQNfI+wepy2ol5l8X2g==",
             "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/avatar": "^3.0.4",
-                "@react-types/shared": "^3.22.0",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/avatar": "^3.0.5",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4888,15 +4876,15 @@
             }
         },
         "node_modules/@react-spectrum/badge": {
-            "version": "3.1.10",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/badge/-/badge-3.1.10.tgz",
-            "integrity": "sha512-XsdwwbtIP0rxI2tRGrA3Nf46GSsekoO0tt1A/69P7dU230LkxTdILMLABCblP/lb6gxa1ksXkbWvB93L9ScDzw==",
-            "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/text": "^3.5.2",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/badge": "^3.1.6",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.1.11",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/badge/-/badge-3.1.11.tgz",
+            "integrity": "sha512-YOuUBdWmqDQQrNI0uUpazWv/qYmFeDCsJVfQnl/K4J0A6/x7wuvz3iLPJKYuvmqG45/I+WXYFFaNuWOm4jCMzA==",
+            "dependencies": {
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/text": "^3.5.3",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/badge": "^3.1.7",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4905,22 +4893,22 @@
             }
         },
         "node_modules/@react-spectrum/breadcrumbs": {
-            "version": "3.9.4",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/breadcrumbs/-/breadcrumbs-3.9.4.tgz",
-            "integrity": "sha512-IYo+N6hp6FjZFYZu3eD2tiGDNX+XXluxVKRVX0wCKo7jjylRrEUhaDe0vJ9OZjtmU3RRUzczUHmsnn4maSuAqw==",
-            "dependencies": {
-                "@react-aria/breadcrumbs": "^3.5.10",
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/button": "^3.16.1",
-                "@react-spectrum/menu": "^3.18.0",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/collections": "^3.10.4",
-                "@react-types/breadcrumbs": "^3.7.2",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.9.5",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/breadcrumbs/-/breadcrumbs-3.9.5.tgz",
+            "integrity": "sha512-MV1b077f189biweuI8H1/D6F7Nwrao0phYzAKqjaTa8bhXf180ej3VhtEEhrSyEhhMrHG3pPzCCbNUn2VMXDlg==",
+            "dependencies": {
+                "@react-aria/breadcrumbs": "^3.5.11",
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/button": "^3.16.2",
+                "@react-spectrum/menu": "^3.18.1",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/collections": "^3.10.5",
+                "@react-types/breadcrumbs": "^3.7.3",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4930,22 +4918,22 @@
             }
         },
         "node_modules/@react-spectrum/button": {
-            "version": "3.16.1",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/button/-/button-3.16.1.tgz",
-            "integrity": "sha512-B1U4Mwq1BMId4pWJdDG0sgHDC05Ccu2ofoe3iR2444A4yzKpKC5OFr4lZXlevkxrwSLPwCmIBvpkGHxZswvJSA==",
-            "dependencies": {
-                "@react-aria/button": "^3.9.2",
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/progress": "^3.7.4",
-                "@react-spectrum/text": "^3.5.2",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/toggle": "^3.7.1",
-                "@react-types/button": "^3.9.1",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.16.2",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/button/-/button-3.16.2.tgz",
+            "integrity": "sha512-T0B4EUeAAfsocTMZpfKYIsPMIbuwjB1+hfbZyBBvWt8gerLiEiPAwt6+ga1YzV7C6aAz2FPeTT+zd/RxouDTPw==",
+            "dependencies": {
+                "@react-aria/button": "^3.9.3",
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/progress": "^3.7.5",
+                "@react-spectrum/text": "^3.5.3",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/toggle": "^3.7.2",
+                "@react-types/button": "^3.9.2",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4954,14 +4942,14 @@
             }
         },
         "node_modules/@react-spectrum/buttongroup": {
-            "version": "3.6.10",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/buttongroup/-/buttongroup-3.6.10.tgz",
-            "integrity": "sha512-UunM+1u8Fwc5K6Th07ld2JbbP5PEpwt8ezQ+imA2YIeGXS+uKDi36ZCO0BM0VqZ92bd9k2UarZQwza4oRuIWYw==",
-            "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/buttongroup": "^3.3.6",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.6.11",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/buttongroup/-/buttongroup-3.6.11.tgz",
+            "integrity": "sha512-yJv6yBZRLIPYdOAch4FVhdrI0xZz5PPuLiSA6HF/9LlIimALj0qBgCsbQPPThz/UV8+8Y1F76wQUsDcj+iub/A==",
+            "dependencies": {
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/buttongroup": "^3.3.7",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4970,25 +4958,25 @@
             }
         },
         "node_modules/@react-spectrum/calendar": {
-            "version": "3.4.6",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/calendar/-/calendar-3.4.6.tgz",
-            "integrity": "sha512-uwBOyctISMNgZwpC33tvi5ResoKkcwRmUt8ifQwaYPxUHfUJCja30IQbsIbQ3EcWFkIJsdWgyqOGIhD04XNlPg==",
-            "dependencies": {
-                "@internationalized/date": "^3.5.1",
-                "@react-aria/calendar": "^3.5.5",
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-aria/visually-hidden": "^3.8.9",
-                "@react-spectrum/button": "^3.16.1",
-                "@react-spectrum/label": "^3.16.3",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/calendar": "^3.4.3",
-                "@react-types/button": "^3.9.1",
-                "@react-types/calendar": "^3.4.3",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.4.7",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/calendar/-/calendar-3.4.7.tgz",
+            "integrity": "sha512-eBH8SAHHbhprbzk445wnNrW80bnm7Kv5rwmcDBd7/FGb5EhWnQgcQtBo3z79dpCXCl8UtpLsih3eDV9QQSjIDA==",
+            "dependencies": {
+                "@internationalized/date": "^3.5.2",
+                "@react-aria/calendar": "^3.5.6",
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-aria/visually-hidden": "^3.8.10",
+                "@react-spectrum/button": "^3.16.2",
+                "@react-spectrum/label": "^3.16.4",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/calendar": "^3.4.4",
+                "@react-types/button": "^3.9.2",
+                "@react-types/calendar": "^3.4.4",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -4998,21 +4986,21 @@
             }
         },
         "node_modules/@react-spectrum/checkbox": {
-            "version": "3.9.3",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/checkbox/-/checkbox-3.9.3.tgz",
-            "integrity": "sha512-cho26UkAaIldsmHxueLUyjI6LJVAW+8n+M+wibZTW2QAI456G/NS9+bUC1ZRbK+d49meHOk9y6rcKUnzcTq5jg==",
-            "dependencies": {
-                "@react-aria/checkbox": "^3.14.0",
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-spectrum/form": "^3.7.3",
-                "@react-spectrum/label": "^3.16.3",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/checkbox": "^3.6.2",
-                "@react-stately/toggle": "^3.7.1",
-                "@react-types/checkbox": "^3.7.0",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.9.4",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/checkbox/-/checkbox-3.9.4.tgz",
+            "integrity": "sha512-PzUaSza13wh7YipWJLd/0q/nkAnEnxso7hdvMzDLYcw0iKhXNTM2fUoouUuY1SsbithlF2GS5REYyMpQ4FNO3g==",
+            "dependencies": {
+                "@react-aria/checkbox": "^3.14.1",
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-spectrum/form": "^3.7.4",
+                "@react-spectrum/label": "^3.16.4",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/checkbox": "^3.6.3",
+                "@react-stately/toggle": "^3.7.2",
+                "@react-types/checkbox": "^3.7.1",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5021,34 +5009,34 @@
             }
         },
         "node_modules/@react-spectrum/combobox": {
-            "version": "3.12.2",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/combobox/-/combobox-3.12.2.tgz",
-            "integrity": "sha512-w3z9myQ/NYpxh0UQoVhWB9b1QV3wguR+bb3KdBBp3ECgGAOsN7eSe5A+pIWFAjgbBxHWK/JuY0agFs9IWkauOA==",
-            "dependencies": {
-                "@react-aria/button": "^3.9.2",
-                "@react-aria/combobox": "^3.8.3",
-                "@react-aria/dialog": "^3.5.11",
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/form": "^3.0.2",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/label": "^3.7.5",
-                "@react-aria/overlays": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/button": "^3.16.1",
-                "@react-spectrum/form": "^3.7.3",
-                "@react-spectrum/label": "^3.16.3",
-                "@react-spectrum/listbox": "^3.12.6",
-                "@react-spectrum/overlays": "^5.5.4",
-                "@react-spectrum/progress": "^3.7.4",
-                "@react-spectrum/textfield": "^3.11.3",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/combobox": "^3.8.1",
-                "@react-types/button": "^3.9.1",
-                "@react-types/combobox": "^3.10.0",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.12.3",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/combobox/-/combobox-3.12.3.tgz",
+            "integrity": "sha512-hskwbdqXSSNEBRYTn3XESSnLGjELU4Lfht3GkZCvcQt02TVvu9NMETSkVe4lwCYV2hwXtPFGyl3jXvmA3MQurQ==",
+            "dependencies": {
+                "@react-aria/button": "^3.9.3",
+                "@react-aria/combobox": "^3.8.4",
+                "@react-aria/dialog": "^3.5.12",
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/form": "^3.0.3",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/label": "^3.7.6",
+                "@react-aria/overlays": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/button": "^3.16.2",
+                "@react-spectrum/form": "^3.7.4",
+                "@react-spectrum/label": "^3.16.4",
+                "@react-spectrum/listbox": "^3.12.7",
+                "@react-spectrum/overlays": "^5.5.5",
+                "@react-spectrum/progress": "^3.7.5",
+                "@react-spectrum/textfield": "^3.11.4",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/combobox": "^3.8.2",
+                "@react-types/button": "^3.9.2",
+                "@react-types/combobox": "^3.10.1",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5058,18 +5046,18 @@
             }
         },
         "node_modules/@react-spectrum/contextualhelp": {
-            "version": "3.6.8",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/contextualhelp/-/contextualhelp-3.6.8.tgz",
-            "integrity": "sha512-3o1zCtDeDd3KGoKDS8uAdKcbUke1FPMErjPjhU/viKR/RY2uA2pjpPBpLSLKG3jV2IWOojAnCPvdOk3FVB7dKQ==",
-            "dependencies": {
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/button": "^3.16.1",
-                "@react-spectrum/dialog": "^3.8.8",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/contextualhelp": "^3.2.7",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/workflow": "^4.2.9",
+            "version": "3.6.9",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/contextualhelp/-/contextualhelp-3.6.9.tgz",
+            "integrity": "sha512-M0GUmZSLWm6pBAqy0Wwv1srlUPxBSvhQxTxvxtBcRSQwCIE1BcnQ6VaJxlx6n+Ocr14GwYH6MTpD1ZLMUvWeiA==",
+            "dependencies": {
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/button": "^3.16.2",
+                "@react-spectrum/dialog": "^3.8.9",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/contextualhelp": "^3.2.8",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/workflow": "^4.2.10",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5079,29 +5067,29 @@
             }
         },
         "node_modules/@react-spectrum/datepicker": {
-            "version": "3.9.3",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/datepicker/-/datepicker-3.9.3.tgz",
-            "integrity": "sha512-d8JCrgF7UyET+7tfaNKO+7/vTZ6LDgUqQ7yfMorh/IdM9o8PH1IpRLQlYY3E2o9PFGiP90raI37JEoeoLd0Rwg==",
-            "dependencies": {
-                "@internationalized/date": "^3.5.1",
-                "@react-aria/datepicker": "^3.9.2",
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/button": "^3.16.1",
-                "@react-spectrum/calendar": "^3.4.6",
-                "@react-spectrum/dialog": "^3.8.8",
-                "@react-spectrum/form": "^3.7.3",
-                "@react-spectrum/label": "^3.16.3",
-                "@react-spectrum/layout": "^3.6.2",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-spectrum/view": "^3.6.7",
-                "@react-stately/datepicker": "^3.9.1",
-                "@react-types/datepicker": "^3.7.1",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
-                "@spectrum-icons/workflow": "^4.2.9",
+            "version": "3.9.4",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/datepicker/-/datepicker-3.9.4.tgz",
+            "integrity": "sha512-NyFIH68WqbGajBMe/UMxZDwNwaPL/AKJeLC9CY+GcLp4uncWjI42LdcoBPSQFoEJHLtJlLhx+r7qWO/PMOhg3Q==",
+            "dependencies": {
+                "@internationalized/date": "^3.5.2",
+                "@react-aria/datepicker": "^3.9.3",
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/button": "^3.16.2",
+                "@react-spectrum/calendar": "^3.4.7",
+                "@react-spectrum/dialog": "^3.8.9",
+                "@react-spectrum/form": "^3.7.4",
+                "@react-spectrum/label": "^3.16.4",
+                "@react-spectrum/layout": "^3.6.3",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-spectrum/view": "^3.6.8",
+                "@react-stately/datepicker": "^3.9.2",
+                "@react-types/datepicker": "^3.7.2",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
+                "@spectrum-icons/workflow": "^4.2.10",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5111,28 +5099,28 @@
             }
         },
         "node_modules/@react-spectrum/dialog": {
-            "version": "3.8.8",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/dialog/-/dialog-3.8.8.tgz",
-            "integrity": "sha512-4FJG/B287UKh67+3QQfJ6ZoTS0PSZ+H7DTbtRgS0+t47EL8R1z09LsPSLysB7s9ZUUTvYgYfUqCJwADHipe/ng==",
-            "dependencies": {
-                "@react-aria/dialog": "^3.5.11",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/overlays": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/button": "^3.16.1",
-                "@react-spectrum/buttongroup": "^3.6.10",
-                "@react-spectrum/divider": "^3.5.10",
-                "@react-spectrum/layout": "^3.6.2",
-                "@react-spectrum/overlays": "^5.5.4",
-                "@react-spectrum/text": "^3.5.2",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-spectrum/view": "^3.6.7",
-                "@react-stately/overlays": "^3.6.4",
-                "@react-types/button": "^3.9.1",
-                "@react-types/dialog": "^3.5.7",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.8.9",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/dialog/-/dialog-3.8.9.tgz",
+            "integrity": "sha512-CxyARi0qYOJi24YVqXZp7tHVreYQoYc7+VBZzcn8dTbIL1CSxcSGbRGXOpHiaAejZ9/3lPm/PTbrWrKUBLbckA==",
+            "dependencies": {
+                "@react-aria/dialog": "^3.5.12",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/overlays": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/button": "^3.16.2",
+                "@react-spectrum/buttongroup": "^3.6.11",
+                "@react-spectrum/divider": "^3.5.11",
+                "@react-spectrum/layout": "^3.6.3",
+                "@react-spectrum/overlays": "^5.5.5",
+                "@react-spectrum/text": "^3.5.3",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-spectrum/view": "^3.6.8",
+                "@react-stately/overlays": "^3.6.5",
+                "@react-types/button": "^3.9.2",
+                "@react-types/dialog": "^3.5.8",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5142,14 +5130,14 @@
             }
         },
         "node_modules/@react-spectrum/divider": {
-            "version": "3.5.10",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/divider/-/divider-3.5.10.tgz",
-            "integrity": "sha512-KcvVGd0fKwsveD7JPtz6DY/VBzI/kRWqr9kX7tC5dhSB/ob5C9EPABePQk1ei2C02/VX7GUF5zpL1PxpRZlxOg==",
-            "dependencies": {
-                "@react-aria/separator": "^3.3.10",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/divider": "^3.3.6",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.5.11",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/divider/-/divider-3.5.11.tgz",
+            "integrity": "sha512-u6pyqBEc4JRpntF+KGuzmkzn+rJh04kfvjJ3Tx4F9IucaY8xCfglhunf6/yvRqQB0VaMdlxKy5BGhHgBJzUBiA==",
+            "dependencies": {
+                "@react-aria/separator": "^3.3.11",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/divider": "^3.3.7",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5157,13 +5145,13 @@
             }
         },
         "node_modules/@react-spectrum/dnd": {
-            "version": "3.3.7",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/dnd/-/dnd-3.3.7.tgz",
-            "integrity": "sha512-PxODjyRbBLvHmE8ivsvm8BL+pkmyyG1HhlqvxFdlYq6wkWNwINuMBvn531B5AgJb2wwz6jKZ2PSAxegTxaxFrw==",
+            "version": "3.3.8",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/dnd/-/dnd-3.3.8.tgz",
+            "integrity": "sha512-GfLqduIBpH2LArBsFpNa4i9cYeFg7lJpqwrLVJRl96DbhdXEcwt9a4tqvsegkqKn6KPHDPG7uTX0OqPoQJluXQ==",
             "dependencies": {
-                "@react-aria/dnd": "^3.5.2",
-                "@react-stately/dnd": "^3.2.7",
-                "@react-types/shared": "^3.22.0",
+                "@react-aria/dnd": "^3.5.3",
+                "@react-stately/dnd": "^3.2.8",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5173,15 +5161,15 @@
             }
         },
         "node_modules/@react-spectrum/form": {
-            "version": "3.7.3",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/form/-/form-3.7.3.tgz",
-            "integrity": "sha512-KYnRXwYPpEnFLxLMm2GQwXwA3RvNNilLdLykksH2N0x30YYKU+QCU+6RMVKv1jpTSTXdFK8q+pjXMpmbEDib3g==",
-            "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/form": "^3.0.0",
-                "@react-types/form": "^3.7.1",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.7.4",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/form/-/form-3.7.4.tgz",
+            "integrity": "sha512-xAS6vFM6dzKJc7gkC8Qy76VXLxZ9VqPZq4xxQeySvsO8pOujTFCL97QkS0mDjMOdpu72VDIF5JegK1Edlewr7g==",
+            "dependencies": {
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/form": "^3.0.1",
+                "@react-types/form": "^3.7.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5190,13 +5178,13 @@
             }
         },
         "node_modules/@react-spectrum/icon": {
-            "version": "3.7.10",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/icon/-/icon-3.7.10.tgz",
-            "integrity": "sha512-vz5vaFeJK9trnzKCzCusHZbk62c0x7CYznBthxXUj+8vLr5VBfwHxsdJe20dcOyjEj3klA/nUTtUf2GZ6jPWEg==",
+            "version": "3.7.11",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/icon/-/icon-3.7.11.tgz",
+            "integrity": "sha512-CTvbukq0g2oEjMqwMDx2qjfmFAv6u7/KwHRn9pGf6BUiU53Zlnl6Fjtm+c9cw8d9GcwlXyIWYBMIKyMm4+7g5A==",
             "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/shared": "^3.22.0",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5205,15 +5193,15 @@
             }
         },
         "node_modules/@react-spectrum/illustratedmessage": {
-            "version": "3.4.10",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/illustratedmessage/-/illustratedmessage-3.4.10.tgz",
-            "integrity": "sha512-Kl6MYZ2FYsXT9/G+VZ2fwZIENhWtVEGiXLqBww7oeSUw1S9HuCQU4xhvp1Jln3/4RUihEiaKbCukJtzwSIohBA==",
-            "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/layout": "^3.6.2",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/illustratedmessage": "^3.3.6",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.4.11",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/illustratedmessage/-/illustratedmessage-3.4.11.tgz",
+            "integrity": "sha512-KJdcF+YY2rPZBTP5P38MEQBoNLglP1QUaCmbPH8a5dSZ+wj5EsOgseFa0fxAEZ23q9Wo9Fv9P9niRq0/479KTQ==",
+            "dependencies": {
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/layout": "^3.6.3",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/illustratedmessage": "^3.3.7",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5222,14 +5210,14 @@
             }
         },
         "node_modules/@react-spectrum/image": {
-            "version": "3.4.10",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/image/-/image-3.4.10.tgz",
-            "integrity": "sha512-r7guBwH6sjx/GlGwT/qGYO3T+IZHczrkMKleWS1mxB/8lc75R9+4lxD7AY/DZzgyvKMvX+hJltakPMFN/eCdJA==",
-            "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/image": "^3.3.6",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.4.11",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/image/-/image-3.4.11.tgz",
+            "integrity": "sha512-pzYubgkkC5Ic3eKrNlPUFPbVUTUvZ7DObmGpQvmgmG0xipmUAscYKFEBr4LhCsy/29Sm7Tz4zsGUdA2vM5eA8g==",
+            "dependencies": {
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/image": "^3.3.7",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5238,17 +5226,17 @@
             }
         },
         "node_modules/@react-spectrum/inlinealert": {
-            "version": "3.2.2",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/inlinealert/-/inlinealert-3.2.2.tgz",
-            "integrity": "sha512-PZsHIeMsrZy66WyXmYlWd1RCISulz4Afloslg3mHHsJC6nsafbqXxDLoDZM+8BvH8eXRV0zroBG22nbY3V+5Og==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/layout": "^3.6.2",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.2.3",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/inlinealert/-/inlinealert-3.2.3.tgz",
+            "integrity": "sha512-NX1bZvmI3EOBTRWaT4dzVyFxAuePPbXASZeJ4/wAnhvWDN65rKrctn+VZW3x6ZQoZ/WkQl4qW1txjVcLHkRBWg==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/layout": "^3.6.3",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5257,18 +5245,18 @@
             }
         },
         "node_modules/@react-spectrum/label": {
-            "version": "3.16.3",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/label/-/label-3.16.3.tgz",
-            "integrity": "sha512-RR/oEICzx2GeEC2w4CV5hoodv2Iz8bmb5z8yF98190yOBGWq8ai+gq0JXYOwqBj2McRmp5AaWgecj8HhGmdV2Q==",
-            "dependencies": {
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/form": "^3.7.3",
-                "@react-spectrum/layout": "^3.6.2",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/label": "^3.9.0",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.16.4",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/label/-/label-3.16.4.tgz",
+            "integrity": "sha512-38hk6wqUwDCyYeScF1NIaxlPaltkTRTv6/XtIkm528eilLyOMxtMGXcP0Bl7nv0oDLxDZSm9TkgXjN24SyY0KQ==",
+            "dependencies": {
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/form": "^3.7.4",
+                "@react-spectrum/layout": "^3.6.3",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/label": "^3.9.1",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5277,16 +5265,16 @@
             }
         },
         "node_modules/@react-spectrum/labeledvalue": {
-            "version": "3.1.11",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/labeledvalue/-/labeledvalue-3.1.11.tgz",
-            "integrity": "sha512-OW4fHEVoVhp/A/urNSns9mvrBYmBNDgvR4R4fCpfio5AXevYUqgIzYmTSMY8LUWa9+EkbtCnp5JSmD3KM25wrA==",
-            "dependencies": {
-                "@internationalized/date": "^3.5.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/label": "^3.16.3",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.1.12",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/labeledvalue/-/labeledvalue-3.1.12.tgz",
+            "integrity": "sha512-Pa/eYf9FKr8QF7xKLoCv6a+Ezudfi7N1jFJLZ71zaVcDOcNByYKiy1lAquwLB+36PpsWt/EwKLE2/U7OuiWyfQ==",
+            "dependencies": {
+                "@internationalized/date": "^3.5.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/label": "^3.16.4",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5295,14 +5283,14 @@
             }
         },
         "node_modules/@react-spectrum/layout": {
-            "version": "3.6.2",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/layout/-/layout-3.6.2.tgz",
-            "integrity": "sha512-B5asGN+uFlfThTms4KraAU4OapMmN9Ryr1uj5uhHLtCwyQcLphg1Q+LMX8LfrNr7vPLxgoZ4L3em7ohkSb8Okg==",
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/layout/-/layout-3.6.3.tgz",
+            "integrity": "sha512-JsG4KclsgzKfRbe+PyMo8QryG5SmwYlym8JRuSLmZ+nfIKhESVbqSJE3IXblmDDWUb0rabQhSvW4p5h5nOil4w==",
             "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/layout": "^3.3.12",
-                "@react-types/shared": "^3.22.0",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/layout": "^3.3.13",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5311,16 +5299,16 @@
             }
         },
         "node_modules/@react-spectrum/link": {
-            "version": "3.6.4",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/link/-/link-3.6.4.tgz",
-            "integrity": "sha512-qxTCuGJuQd88j/Cq9yRTu3h48QV1h8Y9GVBoEVHnNQ4HGQjpDLkQkAFQwIZHku87RKhVY9LgA3YmBuo/1AJbsg==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/link": "^3.6.4",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/link": "^3.5.2",
+            "version": "3.6.5",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/link/-/link-3.6.5.tgz",
+            "integrity": "sha512-pnPIzkM0/Nxm460dHuR195bD0BAaIvasqW8TqUFT0Igxfw0NFYyWZr5d4OkHKyypyUoQKaobpOgeAJHXxPtzTg==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/link": "^3.6.5",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/link": "^3.5.3",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5329,30 +5317,30 @@
             }
         },
         "node_modules/@react-spectrum/list": {
-            "version": "3.7.7",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/list/-/list-3.7.7.tgz",
-            "integrity": "sha512-qL3lKLUauZ8fZsujPWa8K/Rz+zsY5eRktdqckQGVKBRLGOTc/WQcn9csb2hNOBSlYX5rYUabU5Ia7yGfMMauuA==",
-            "dependencies": {
-                "@react-aria/button": "^3.9.2",
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/gridlist": "^3.7.4",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-aria/virtualizer": "^3.9.9",
-                "@react-aria/visually-hidden": "^3.8.9",
-                "@react-spectrum/checkbox": "^3.9.3",
-                "@react-spectrum/dnd": "^3.3.7",
-                "@react-spectrum/layout": "^3.6.2",
-                "@react-spectrum/progress": "^3.7.4",
-                "@react-spectrum/text": "^3.5.2",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/layout": "^3.13.6",
-                "@react-stately/list": "^3.10.2",
-                "@react-types/grid": "^3.2.3",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.7.8",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/list/-/list-3.7.8.tgz",
+            "integrity": "sha512-w+fxiX+wz8X0bASAtKsf/myMrFI1Z0OXamttPRAJS5Ene6x09kf+K2djpZO1t9nT70IPnCcthhkMaCHk6eyUIw==",
+            "dependencies": {
+                "@react-aria/button": "^3.9.3",
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/gridlist": "^3.7.5",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-aria/virtualizer": "^3.9.10",
+                "@react-aria/visually-hidden": "^3.8.10",
+                "@react-spectrum/checkbox": "^3.9.4",
+                "@react-spectrum/dnd": "^3.3.8",
+                "@react-spectrum/layout": "^3.6.3",
+                "@react-spectrum/progress": "^3.7.5",
+                "@react-spectrum/text": "^3.5.3",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/layout": "^3.13.7",
+                "@react-stately/list": "^3.10.3",
+                "@react-types/grid": "^3.2.4",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0",
                 "react-transition-group": "^4.4.5"
             },
@@ -5363,27 +5351,27 @@
             }
         },
         "node_modules/@react-spectrum/listbox": {
-            "version": "3.12.6",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/listbox/-/listbox-3.12.6.tgz",
-            "integrity": "sha512-PXGxWtPIbWjFxAnBOkUHlcoqy6QfvHYPwoGnS0cObEwPP6J4Int9MynMVg1S3wwxKl8quYPojoidsrp04CGmIA==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/listbox": "^3.11.4",
-                "@react-aria/utils": "^3.23.1",
-                "@react-aria/virtualizer": "^3.9.9",
-                "@react-spectrum/layout": "^3.6.2",
-                "@react-spectrum/progress": "^3.7.4",
-                "@react-spectrum/text": "^3.5.2",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/layout": "^3.13.6",
-                "@react-stately/list": "^3.10.2",
-                "@react-stately/virtualizer": "^3.6.7",
-                "@react-types/listbox": "^3.4.6",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.12.7",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/listbox/-/listbox-3.12.7.tgz",
+            "integrity": "sha512-cFUIKPRtz5ViQYS0vO+oQmiFmbJjA04GCpyZKnBJAEonNDiY1RIHfFg/53Mr8IwstwNvGbxHVjMilPy6DtWDjA==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/listbox": "^3.11.5",
+                "@react-aria/utils": "^3.23.2",
+                "@react-aria/virtualizer": "^3.9.10",
+                "@react-spectrum/layout": "^3.6.3",
+                "@react-spectrum/progress": "^3.7.5",
+                "@react-spectrum/text": "^3.5.3",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/layout": "^3.13.7",
+                "@react-stately/list": "^3.10.3",
+                "@react-stately/virtualizer": "^3.6.8",
+                "@react-types/listbox": "^3.4.7",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5393,31 +5381,31 @@
             }
         },
         "node_modules/@react-spectrum/menu": {
-            "version": "3.18.0",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/menu/-/menu-3.18.0.tgz",
-            "integrity": "sha512-LSCvhs1IoEYZs798VzOPJia4V1/xGMbKIF0Ai7xqi+9DU+M/PSzWlhIRa1Ya/nTRxdUNOygG13CaY+WYnjYzEA==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/menu": "^3.13.0",
-                "@react-aria/overlays": "^3.21.0",
-                "@react-aria/separator": "^3.3.10",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/button": "^3.16.1",
-                "@react-spectrum/layout": "^3.6.2",
-                "@react-spectrum/overlays": "^5.5.4",
-                "@react-spectrum/text": "^3.5.2",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/menu": "^3.6.0",
-                "@react-stately/overlays": "^3.6.4",
-                "@react-stately/tree": "^3.7.5",
-                "@react-types/menu": "^3.9.6",
-                "@react-types/overlays": "^3.8.4",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
-                "@spectrum-icons/workflow": "^4.2.9",
+            "version": "3.18.1",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/menu/-/menu-3.18.1.tgz",
+            "integrity": "sha512-3KutRgn9/uYcRH2IzUT6qiPlS9SK9+4R2W4Z1Ox27lQ30ZgC68kE37uOwZX10bDgTOWV/COYvm6qBBScZ+VFUg==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/menu": "^3.13.1",
+                "@react-aria/overlays": "^3.21.1",
+                "@react-aria/separator": "^3.3.11",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/button": "^3.16.2",
+                "@react-spectrum/layout": "^3.6.3",
+                "@react-spectrum/overlays": "^5.5.5",
+                "@react-spectrum/text": "^3.5.3",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/menu": "^3.6.1",
+                "@react-stately/overlays": "^3.6.5",
+                "@react-stately/tree": "^3.7.6",
+                "@react-types/menu": "^3.9.7",
+                "@react-types/overlays": "^3.8.5",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
+                "@spectrum-icons/workflow": "^4.2.10",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5427,15 +5415,15 @@
             }
         },
         "node_modules/@react-spectrum/meter": {
-            "version": "3.4.10",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/meter/-/meter-3.4.10.tgz",
-            "integrity": "sha512-cC4WnAoUSTD7ikGN4KSS92Dd3XRFxkzYlSQYt/ijBg3RR8k2sIerqbv6eEbYqMoErt6a0VXgBqSdon9Qj1jkuQ==",
-            "dependencies": {
-                "@react-aria/meter": "^3.4.10",
-                "@react-spectrum/progress": "^3.7.4",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/meter": "^3.3.6",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.4.11",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/meter/-/meter-3.4.11.tgz",
+            "integrity": "sha512-OBYIHnumb2cfeT48py6Qtsfs7m9DmddaHSCVB8MXNnn3fzrpPr5t4Wz2dYUWXnkPPC11D8WarjJ+6EgrNwNvdQ==",
+            "dependencies": {
+                "@react-aria/meter": "^3.4.11",
+                "@react-spectrum/progress": "^3.7.5",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/meter": "^3.3.7",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5444,26 +5432,26 @@
             }
         },
         "node_modules/@react-spectrum/numberfield": {
-            "version": "3.9.0",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/numberfield/-/numberfield-3.9.0.tgz",
-            "integrity": "sha512-Zj51Q3mm7LSCClaN6StYAj11hXf23RD/KiBiKRb+0q2OfJAszAgxVzx71BWOHj0OnK5INlF5INp7GWhiVZ7rJQ==",
-            "dependencies": {
-                "@react-aria/button": "^3.9.2",
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/numberfield": "^3.11.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/form": "^3.7.3",
-                "@react-spectrum/label": "^3.16.3",
-                "@react-spectrum/textfield": "^3.11.3",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/numberfield": "^3.9.0",
-                "@react-types/button": "^3.9.1",
-                "@react-types/numberfield": "^3.8.0",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
-                "@spectrum-icons/workflow": "^4.2.9",
+            "version": "3.9.1",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/numberfield/-/numberfield-3.9.1.tgz",
+            "integrity": "sha512-s6QNRncVrVjOYihKeyQ8fkdD1YJTqYttog/Rj96rD66vfUlI0bTr3q6mK6hZpU1YM29SL24BUCn6NdqOxqVeiQ==",
+            "dependencies": {
+                "@react-aria/button": "^3.9.3",
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/numberfield": "^3.11.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/form": "^3.7.4",
+                "@react-spectrum/label": "^3.16.4",
+                "@react-spectrum/textfield": "^3.11.4",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/numberfield": "^3.9.1",
+                "@react-types/button": "^3.9.2",
+                "@react-types/numberfield": "^3.8.1",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
+                "@spectrum-icons/workflow": "^4.2.10",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5473,17 +5461,17 @@
             }
         },
         "node_modules/@react-spectrum/overlays": {
-            "version": "5.5.4",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/overlays/-/overlays-5.5.4.tgz",
-            "integrity": "sha512-xiIm84B1YbUOh8LxdpLMQN220/E6dyqTqB4KCTZ89YiKygJiEH9YPqM1GBsOEcpVUT+MEDPASixh2ADjY/YeIA==",
-            "dependencies": {
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/overlays": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/overlays": "^3.6.4",
-                "@react-types/overlays": "^3.8.4",
-                "@react-types/shared": "^3.22.0",
+            "version": "5.5.5",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/overlays/-/overlays-5.5.5.tgz",
+            "integrity": "sha512-rFwbWuagFo/Tuo45UE8KHUMz1Li1j5CNzsZdIfKZydHd0u4t69yR8bCn3pDUNIYEwclrLGUD2XFJaN9jYq1H4A==",
+            "dependencies": {
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/overlays": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/overlays": "^3.6.5",
+                "@react-types/overlays": "^3.8.5",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0",
                 "react-transition-group": "^4.4.5"
             },
@@ -5494,27 +5482,27 @@
             }
         },
         "node_modules/@react-spectrum/picker": {
-            "version": "3.14.2",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/picker/-/picker-3.14.2.tgz",
-            "integrity": "sha512-ZswvbG+2u6+c6qdy6wjh9IinT/Bkt1+Q7tuLGSTsPPAtWJoFEKQ9tntuvtYJx23vBZ2lrtGOWidJOeqKlOfshQ==",
-            "dependencies": {
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/select": "^3.14.2",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/button": "^3.16.1",
-                "@react-spectrum/form": "^3.7.3",
-                "@react-spectrum/label": "^3.16.3",
-                "@react-spectrum/listbox": "^3.12.6",
-                "@react-spectrum/overlays": "^5.5.4",
-                "@react-spectrum/progress": "^3.7.4",
-                "@react-spectrum/text": "^3.5.2",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/select": "^3.6.1",
-                "@react-types/select": "^3.9.1",
-                "@react-types/shared": "^3.22.0",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.14.3",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/picker/-/picker-3.14.3.tgz",
+            "integrity": "sha512-xaewWrOtGt/dQbiSwZe9UYH58berRlxyqIeAZQ7+FCRGoG/gl1p+l+7rfNKFS5OjVy6Adh6BZrrY6A99j4PbQA==",
+            "dependencies": {
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/select": "^3.14.3",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/button": "^3.16.2",
+                "@react-spectrum/form": "^3.7.4",
+                "@react-spectrum/label": "^3.16.4",
+                "@react-spectrum/listbox": "^3.12.7",
+                "@react-spectrum/overlays": "^5.5.5",
+                "@react-spectrum/progress": "^3.7.5",
+                "@react-spectrum/text": "^3.5.3",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/select": "^3.6.2",
+                "@react-types/select": "^3.9.2",
+                "@react-types/shared": "^3.22.1",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5524,15 +5512,15 @@
             }
         },
         "node_modules/@react-spectrum/progress": {
-            "version": "3.7.4",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/progress/-/progress-3.7.4.tgz",
-            "integrity": "sha512-xEz8RX54rPPw/WS6bgBpop2C3s7wjakwOT42KIZz0vVQrRCa596Mtmy7IrLLtyfHuIgNgNHs/BVaH46Nzrr9Uw==",
-            "dependencies": {
-                "@react-aria/progress": "^3.4.10",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/progress": "^3.5.1",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.7.5",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/progress/-/progress-3.7.5.tgz",
+            "integrity": "sha512-ku+RTtgXWaxUwjopzWpvgNxJsn/gohMWO4len2K2yDQp6b4SY67ojRFBwyIDZ9Oi9RPTAvZOc3wJu5QPftfVcg==",
+            "dependencies": {
+                "@react-aria/progress": "^3.4.11",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/progress": "^3.5.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5541,16 +5529,16 @@
             }
         },
         "node_modules/@react-spectrum/provider": {
-            "version": "3.9.4",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.9.4.tgz",
-            "integrity": "sha512-GEfmQCC/s0JRxMR7WA41vyGnSPssJTA1+ijTkDLGbhCyKmUq6pmNFaCj3WRW/ki+Gg42eWaNXth5sPexbxr9qA==",
-            "dependencies": {
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/overlays": "^3.21.0",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/provider": "^3.7.1",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.9.5",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.9.5.tgz",
+            "integrity": "sha512-FE5RQC1EwMMXUAtslekheyA0IrXSev4flaY4CT3exC/ohB1PuiXUDg4qqaHos2vVhsdUPNq5SeathtHEr8ryJA==",
+            "dependencies": {
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/overlays": "^3.21.1",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/provider": "^3.7.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0",
                 "clsx": "^2.0.0"
             },
@@ -5560,19 +5548,19 @@
             }
         },
         "node_modules/@react-spectrum/radio": {
-            "version": "3.7.3",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/radio/-/radio-3.7.3.tgz",
-            "integrity": "sha512-wi0ielcjBbsDm3kgDXutWyJVQa31+8r2++1N+omj0zkffOiHqK5m+9faUikX7DKwQ4d/CkbAegrkN6q4yxkwbw==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/radio": "^3.10.1",
-                "@react-spectrum/form": "^3.7.3",
-                "@react-spectrum/label": "^3.16.3",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/radio": "^3.10.1",
-                "@react-types/radio": "^3.7.0",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.7.4",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/radio/-/radio-3.7.4.tgz",
+            "integrity": "sha512-FmWcJlOeo5KsbWYpnEtoB9oC+haUeowfRda8dq0kBptR5WlagWD4Arez55/hjXCHLqQZ4r6vY6rYgMya2xiddQ==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/radio": "^3.10.2",
+                "@react-spectrum/form": "^3.7.4",
+                "@react-spectrum/label": "^3.16.4",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/radio": "^3.10.2",
+                "@react-types/radio": "^3.7.1",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5581,19 +5569,19 @@
             }
         },
         "node_modules/@react-spectrum/searchfield": {
-            "version": "3.8.3",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/searchfield/-/searchfield-3.8.3.tgz",
-            "integrity": "sha512-eHdfbQn2Jp2/USsKHOjLlVTqcnPHKUYa9f4bW9cXO0y08gfI1CSOhNlK3TYs625lvsRGCraCpsi6X2oStRWb8w==",
-            "dependencies": {
-                "@react-aria/searchfield": "^3.7.2",
-                "@react-spectrum/button": "^3.16.1",
-                "@react-spectrum/form": "^3.7.3",
-                "@react-spectrum/textfield": "^3.11.3",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/searchfield": "^3.5.0",
-                "@react-types/searchfield": "^3.5.2",
-                "@react-types/textfield": "^3.9.0",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.8.4",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/searchfield/-/searchfield-3.8.4.tgz",
+            "integrity": "sha512-O8pM9dGlRZoFhNtZLVFpIOHM2+sy5/t23Lv0z0jXvVYmzHOaib8wPPJELnPRsDUIylqpnVxfiYSz051Gx5Zq8g==",
+            "dependencies": {
+                "@react-aria/searchfield": "^3.7.3",
+                "@react-spectrum/button": "^3.16.2",
+                "@react-spectrum/form": "^3.7.4",
+                "@react-spectrum/textfield": "^3.11.4",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/searchfield": "^3.5.1",
+                "@react-types/searchfield": "^3.5.3",
+                "@react-types/textfield": "^3.9.1",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5602,20 +5590,20 @@
             }
         },
         "node_modules/@react-spectrum/slider": {
-            "version": "3.6.6",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/slider/-/slider-3.6.6.tgz",
-            "integrity": "sha512-Meav6BLiTuuGxk+qFM3MJJubSIdBytb+Cfa3SIsZ8zx1X0O3eY517byJYjOVLo/FhzloWWNupr7aMPAGfOKb2A==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/slider": "^3.7.5",
-                "@react-aria/utils": "^3.23.1",
-                "@react-aria/visually-hidden": "^3.8.9",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/slider": "^3.5.1",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/slider": "^3.7.0",
+            "version": "3.6.7",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/slider/-/slider-3.6.7.tgz",
+            "integrity": "sha512-mhTG+sGZwQfNW9z+uzvmTQzzV2Qzcack3qYSw8HXEfd4BOjkgwTinS9aN8MLv147TF5RMvI0y3dmNirAoDi+yQ==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/slider": "^3.7.6",
+                "@react-aria/utils": "^3.23.2",
+                "@react-aria/visually-hidden": "^3.8.10",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/slider": "^3.5.2",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/slider": "^3.7.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5624,14 +5612,14 @@
             }
         },
         "node_modules/@react-spectrum/statuslight": {
-            "version": "3.5.10",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/statuslight/-/statuslight-3.5.10.tgz",
-            "integrity": "sha512-s697KmFlwF1dbM0nTNDanL6jqqC6da86tu8sqU7IWqowymbpkIdorFFHuFDiOUg+rKa+QXKzeLicaxH75o6oyw==",
-            "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/statuslight": "^3.3.6",
+            "version": "3.5.11",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/statuslight/-/statuslight-3.5.11.tgz",
+            "integrity": "sha512-zbIrI8rPLmMu3Jnl2fpA/kb0V3azdRBsv1KfhGNQkHM17Gy6ufrzzzh6cmnvQh8FREllMcIjC4eaBkYHFArtyg==",
+            "dependencies": {
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/statuslight": "^3.3.7",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5640,17 +5628,17 @@
             }
         },
         "node_modules/@react-spectrum/switch": {
-            "version": "3.5.2",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/switch/-/switch-3.5.2.tgz",
-            "integrity": "sha512-gpxgU5z0BlaorNjCw6J9c2kSQA9ZR7tjg3hF3491i+h2+xc2NuTQe18WYEHTXFTmlXVEEXE97BEtoX4KY7YU0g==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/switch": "^3.6.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/toggle": "^3.7.1",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/switch": "^3.5.0",
+            "version": "3.5.3",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/switch/-/switch-3.5.3.tgz",
+            "integrity": "sha512-NJMk/b/Lrmgl0RB9QPF0wSuD5CgTPODaLuZD1uxXAcESKFVdN58eW8CU99e+ZC0tHgFofroTpEF073Yiz2LnkQ==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/switch": "^3.6.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/toggle": "^3.7.2",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/switch": "^3.5.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5659,33 +5647,33 @@
             }
         },
         "node_modules/@react-spectrum/table": {
-            "version": "3.12.7",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/table/-/table-3.12.7.tgz",
-            "integrity": "sha512-A+jirOXULysnKvrN0Q8hS4t64I8fFoyyXYAlfSTnza3n2hXKxYnYenKP/VjB7PvdFwZiBAY4+VVg37E0JfFUWw==",
-            "dependencies": {
-                "@react-aria/button": "^3.9.2",
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/table": "^3.13.4",
-                "@react-aria/utils": "^3.23.1",
-                "@react-aria/virtualizer": "^3.9.9",
-                "@react-aria/visually-hidden": "^3.8.9",
-                "@react-spectrum/checkbox": "^3.9.3",
-                "@react-spectrum/dnd": "^3.3.7",
-                "@react-spectrum/layout": "^3.6.2",
-                "@react-spectrum/menu": "^3.18.0",
-                "@react-spectrum/progress": "^3.7.4",
-                "@react-spectrum/tooltip": "^3.6.4",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/flags": "^3.0.0",
-                "@react-stately/layout": "^3.13.6",
-                "@react-stately/table": "^3.11.5",
-                "@react-stately/virtualizer": "^3.6.7",
-                "@react-types/grid": "^3.2.3",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/table": "^3.9.2",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.12.8",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/table/-/table-3.12.8.tgz",
+            "integrity": "sha512-4JyDlvKljhvqqUHYk6X5JjmxXy03IZergKTu//MbELW4v9bwiwf94Ap8zTcUZPh/pcw7IQhpUDLPAi6RFBAUpA==",
+            "dependencies": {
+                "@react-aria/button": "^3.9.3",
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/table": "^3.13.5",
+                "@react-aria/utils": "^3.23.2",
+                "@react-aria/virtualizer": "^3.9.10",
+                "@react-aria/visually-hidden": "^3.8.10",
+                "@react-spectrum/checkbox": "^3.9.4",
+                "@react-spectrum/dnd": "^3.3.8",
+                "@react-spectrum/layout": "^3.6.3",
+                "@react-spectrum/menu": "^3.18.1",
+                "@react-spectrum/progress": "^3.7.5",
+                "@react-spectrum/tooltip": "^3.6.5",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/flags": "^3.0.1",
+                "@react-stately/layout": "^3.13.7",
+                "@react-stately/table": "^3.11.6",
+                "@react-stately/virtualizer": "^3.6.8",
+                "@react-types/grid": "^3.2.4",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/table": "^3.9.3",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5695,24 +5683,24 @@
             }
         },
         "node_modules/@react-spectrum/tabs": {
-            "version": "3.8.7",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/tabs/-/tabs-3.8.7.tgz",
-            "integrity": "sha512-DcPn/pcYuXiS6cwuMT4k3tusDoMuUTjWUYpAcHwDue9xcUGsb6BrNmMxrQ6J08nQN6DhUizqtGA9CCTS9NwcnA==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/tabs": "^3.8.4",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/picker": "^3.14.2",
-                "@react-spectrum/text": "^3.5.2",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/list": "^3.10.2",
-                "@react-stately/tabs": "^3.6.3",
-                "@react-types/select": "^3.9.1",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/tabs": "^3.3.4",
+            "version": "3.8.8",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/tabs/-/tabs-3.8.8.tgz",
+            "integrity": "sha512-oBXKLD7cyCLQV3SUXIjEn9ttdyoGwpiTUfM3DNY3ki097pRdoBgMxPk1Sp7jKQs6tRUg4osK53iOG4LvEs6eTg==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/tabs": "^3.8.5",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/picker": "^3.14.3",
+                "@react-spectrum/text": "^3.5.3",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/list": "^3.10.3",
+                "@react-stately/tabs": "^3.6.4",
+                "@react-types/select": "^3.9.2",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/tabs": "^3.3.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5722,24 +5710,24 @@
             }
         },
         "node_modules/@react-spectrum/tag": {
-            "version": "3.2.3",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/tag/-/tag-3.2.3.tgz",
-            "integrity": "sha512-9LZ6SplsNUtvH3VjWZEMpDxbcQSNLNUuoYp9mISzeD8Zf2aNhHLIzm5kyB29hZcZO7lZzZY8GdX44a5awmKLZw==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/selection": "^3.17.4",
-                "@react-aria/tag": "^3.3.2",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/button": "^3.16.1",
-                "@react-spectrum/form": "^3.7.3",
-                "@react-spectrum/label": "^3.16.3",
-                "@react-spectrum/text": "^3.5.2",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/list": "^3.10.2",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.2.4",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/tag/-/tag-3.2.4.tgz",
+            "integrity": "sha512-d6cqX+n10pokLsBGEC/ksLLHM3vBoR7zc0AAlBAUrBN6VMBWUQRyazDHeXPLLZs/S4+ICL80UXRf8NwWfA7Efg==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/selection": "^3.17.5",
+                "@react-aria/tag": "^3.3.3",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/button": "^3.16.2",
+                "@react-spectrum/form": "^3.7.4",
+                "@react-spectrum/label": "^3.16.4",
+                "@react-spectrum/text": "^3.5.3",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/list": "^3.10.3",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5749,14 +5737,14 @@
             }
         },
         "node_modules/@react-spectrum/text": {
-            "version": "3.5.2",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/text/-/text-3.5.2.tgz",
-            "integrity": "sha512-cv2WrZrM24btD2zRDs/Qg5n/1+EE2D69RbGySQrJWerohPRJzYoID/ZXPsn0W6gKVivbn6lRQ1+c9ptoXA7b8Q==",
+            "version": "3.5.3",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/text/-/text-3.5.3.tgz",
+            "integrity": "sha512-28WiSnIPm8WC4JOsHPLudCGjPc3tk7zKm3L+8xqzr374j1+HdMGivrhVOf1t4jbUMcT5dOxR7huuDe7E97qe5A==",
             "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/text": "^3.3.6",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/text": "^3.3.7",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5765,21 +5753,21 @@
             }
         },
         "node_modules/@react-spectrum/textfield": {
-            "version": "3.11.3",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/textfield/-/textfield-3.11.3.tgz",
-            "integrity": "sha512-859j6VUgXYdF/LoYnindXTirZHfyhX22/6BreQl7mxJT0JDqYn8G/k7pauRSGyw+Di3zuvujEKu8ZdJAMm/0JA==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/interactions": "^3.21.0",
-                "@react-aria/textfield": "^3.14.2",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/form": "^3.7.3",
-                "@react-spectrum/label": "^3.16.3",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/textfield": "^3.9.0",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.11.4",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/textfield/-/textfield-3.11.4.tgz",
+            "integrity": "sha512-J70Q1ddpX0v+R7x8w5DaJLixnp5mBWm39lUnekiahEUuA420U1eZCW80GiHXFS/GO6wpwjIZpWHcpBQuF/EDCQ==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/interactions": "^3.21.1",
+                "@react-aria/textfield": "^3.14.3",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/form": "^3.7.4",
+                "@react-spectrum/label": "^3.16.4",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/textfield": "^3.9.1",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5788,11 +5776,11 @@
             }
         },
         "node_modules/@react-spectrum/theme-dark": {
-            "version": "3.5.7",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/theme-dark/-/theme-dark-3.5.7.tgz",
-            "integrity": "sha512-WaBVkhJKsZNcsHCcm6HQOSV934KLxZK6cbTt/FjUZtNTHcQTb5s2xf2jPeMwcRbRJfzagfTuTr5BkM38B9Zi1Q==",
+            "version": "3.5.8",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/theme-dark/-/theme-dark-3.5.8.tgz",
+            "integrity": "sha512-ep78rIrgrXu5MHe6LQAiK8+Us/4PoeHcixm+xFJk8I7AP+6wrh+9+QSWdIi3/NJY9fIjXsMm+VyehFVtEq8PAg==",
             "dependencies": {
-                "@react-types/provider": "^3.7.1",
+                "@react-types/provider": "^3.7.2",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5800,11 +5788,11 @@
             }
         },
         "node_modules/@react-spectrum/theme-default": {
-            "version": "3.5.7",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/theme-default/-/theme-default-3.5.7.tgz",
-            "integrity": "sha512-5GgCKfzA1be3pE5XtQ+5hk39I4BhU1qY+fHCDxvE/tndm2I7pCk26d6ifxA0H2RVKH8V3eiH0WG1TNXHcHIO1g==",
+            "version": "3.5.8",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/theme-default/-/theme-default-3.5.8.tgz",
+            "integrity": "sha512-vZ9GH4l6H2Ks/PD15k2mx6XgA1EYKxQbB+ai9UZ3ALXf0KYlVIFSoHk4Vp3hP16D12KsuB7V0Gk8SvHlsRNo+Q==",
             "dependencies": {
-                "@react-types/provider": "^3.7.1",
+                "@react-types/provider": "^3.7.2",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5812,11 +5800,11 @@
             }
         },
         "node_modules/@react-spectrum/theme-light": {
-            "version": "3.4.7",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/theme-light/-/theme-light-3.4.7.tgz",
-            "integrity": "sha512-3NeIDN9QU8c40rqRSzurTdJRTZ5Uag4c2fLlF9Bve/yF7N6KlzK29H3EWNLBizAfozhPe5/HDEYqdArz7bxhlQ==",
+            "version": "3.4.8",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/theme-light/-/theme-light-3.4.8.tgz",
+            "integrity": "sha512-6kjtQ6IGrh2E0WJKQ9eAR5yhcWFI2mNvd+wi8Uy3rtRdBB1L3iSfr2RmgxgcTCl50DnKqmcFsHbHaKMMKqhkaQ==",
             "dependencies": {
-                "@react-types/provider": "^3.7.1",
+                "@react-types/provider": "^3.7.2",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5824,21 +5812,21 @@
             }
         },
         "node_modules/@react-spectrum/tooltip": {
-            "version": "3.6.4",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/tooltip/-/tooltip-3.6.4.tgz",
-            "integrity": "sha512-z8RGtQjUHRT2haI1tz7lB9STuv6kj8GBGr++Zo5xE8nhY2QASRXE4gZ16YnGI8l2c7EFyLFstAEtbrxt835GWQ==",
-            "dependencies": {
-                "@react-aria/focus": "^3.16.1",
-                "@react-aria/overlays": "^3.21.0",
-                "@react-aria/tooltip": "^3.7.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/overlays": "^5.5.4",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-stately/tooltip": "^3.4.6",
-                "@react-types/overlays": "^3.8.4",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/tooltip": "^3.4.6",
-                "@spectrum-icons/ui": "^3.6.4",
+            "version": "3.6.5",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/tooltip/-/tooltip-3.6.5.tgz",
+            "integrity": "sha512-TnVUX8gNx65wOfHE5UIzuzpC4kUd6RuFeDykcu+3OM+fsK6qvDYg2MQq/3UiZHFI0ZHhX89yPf4uLaP0hcT8sg==",
+            "dependencies": {
+                "@react-aria/focus": "^3.16.2",
+                "@react-aria/overlays": "^3.21.1",
+                "@react-aria/tooltip": "^3.7.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/overlays": "^5.5.5",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-stately/tooltip": "^3.4.7",
+                "@react-types/overlays": "^3.8.5",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/tooltip": "^3.4.7",
+                "@spectrum-icons/ui": "^3.6.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5848,14 +5836,14 @@
             }
         },
         "node_modules/@react-spectrum/utils": {
-            "version": "3.11.4",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/utils/-/utils-3.11.4.tgz",
-            "integrity": "sha512-x1GfD25riFzbkscmLR7EUVDJolwjz7QSn8udtAW09kCcpCBjyA+SMmjt+rCpzYM4mtGfPlcJJrYDGDarGjNWxQ==",
+            "version": "3.11.5",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/utils/-/utils-3.11.5.tgz",
+            "integrity": "sha512-V4heIuCBXhYOP3om5B0KNs2+RK6RKwAhHVjjJZ3RBeNqsF9UDxv+D/+dk3sAM2dsM1F8l38BNXQMMWXWW/BZYA==",
             "dependencies": {
-                "@react-aria/i18n": "^3.10.1",
-                "@react-aria/ssr": "^3.9.1",
-                "@react-aria/utils": "^3.23.1",
-                "@react-types/shared": "^3.22.0",
+                "@react-aria/i18n": "^3.10.2",
+                "@react-aria/ssr": "^3.9.2",
+                "@react-aria/utils": "^3.23.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0",
                 "clsx": "^2.0.0"
             },
@@ -5864,14 +5852,14 @@
             }
         },
         "node_modules/@react-spectrum/view": {
-            "version": "3.6.7",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/view/-/view-3.6.7.tgz",
-            "integrity": "sha512-eCwFfoMN7j4G44GZfGmFM+jWsD4zBxbmLsbrm6H1kEmxeeJkCM1jwF2H3Vc4WJxaBuOBY7tce8IHBRwQ3l0Wng==",
+            "version": "3.6.8",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/view/-/view-3.6.8.tgz",
+            "integrity": "sha512-jAKh22xUjFY5sxPTtLc53fw3C+dki+DEDxArFK06/tF+ntV6lDat91j+YedcOtDT2p7C2PSfaToX5moyEAQ+NA==",
             "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/view": "^3.4.6",
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/view": "^3.4.7",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5880,14 +5868,14 @@
             }
         },
         "node_modules/@react-spectrum/well": {
-            "version": "3.4.10",
-            "resolved": "https://registry.npmjs.org/@react-spectrum/well/-/well-3.4.10.tgz",
-            "integrity": "sha512-k1xnXk75R7V2DEbI8+rejT3d2pQR5j6DHZt/JzBbpmuGxvKqlkMgr364vBmusOEu8lvUE5/Q6O+qdnNTZeirWw==",
-            "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-spectrum/utils": "^3.11.4",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/well": "^3.3.6",
+            "version": "3.4.11",
+            "resolved": "https://registry.npmjs.org/@react-spectrum/well/-/well-3.4.11.tgz",
+            "integrity": "sha512-oCQqKKcKXNoF18dNz5GHBdSXrNPsVH5jsH17suqQevzDQkMN2X02Ov0oyOYMAUQM0xSE3ensLdjvLzUL0yl36g==",
+            "dependencies": {
+                "@react-aria/utils": "^3.23.2",
+                "@react-spectrum/utils": "^3.11.5",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/well": "^3.3.7",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5895,14 +5883,14 @@
             }
         },
         "node_modules/@react-stately/calendar": {
-            "version": "3.4.3",
-            "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.4.3.tgz",
-            "integrity": "sha512-OrEcdskszDjnjVnFuSiDC2PVBJ6lWMCJROD5s6W1LUehUtBp8LX9wPavAGHV43LbhN9ldj560sxaQ4WCddrRCA==",
-            "dependencies": {
-                "@internationalized/date": "^3.5.1",
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/calendar": "^3.4.3",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.4.4",
+            "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.4.4.tgz",
+            "integrity": "sha512-f9ZOd096gGGD+3LmU1gkmfqytGyQtrgi+Qjn+70GbM2Jy65pwOR4I9YrobbmeAFov5Tff13mQEa0yqWvbcDLZQ==",
+            "dependencies": {
+                "@internationalized/date": "^3.5.2",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/calendar": "^3.4.4",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5910,14 +5898,14 @@
             }
         },
         "node_modules/@react-stately/checkbox": {
-            "version": "3.6.2",
-            "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.2.tgz",
-            "integrity": "sha512-IzeyGd3MKoOAzvgbmds8wnCWRFUmQUznXEMxl1DbpqYpB+OH4nMS81D7yLSVeQPRtxcqKCSx+/98oycMThCilw==",
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.3.tgz",
+            "integrity": "sha512-hWp0GXVbMI4sS2NbBjWgOnHNrRqSV4jeftP8zc5JsIYRmrWBUZitxluB34QuVPzrBO29bGsF0GTArSiQZt6BWw==",
             "dependencies": {
-                "@react-stately/form": "^3.0.0",
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/checkbox": "^3.7.0",
-                "@react-types/shared": "^3.22.0",
+                "@react-stately/form": "^3.0.1",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/checkbox": "^3.7.1",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5925,11 +5913,11 @@
             }
         },
         "node_modules/@react-stately/collections": {
-            "version": "3.10.4",
-            "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.4.tgz",
-            "integrity": "sha512-OHhCrItGt4zB2bSrgObRo0H2SC7QlkH8ReGxo+NVIWchXRLRoiWBP7S+IwleewEo5gOqDVPY3hqA9n4iiI8twg==",
+            "version": "3.10.5",
+            "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.5.tgz",
+            "integrity": "sha512-k8Q29Nnvb7iAia1QvTanZsrWP2aqVNBy/1SlE6kLL6vDqtKZC+Esd1SDLHRmIcYIp5aTdfwIGd0NuiRQA7a81Q==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5937,18 +5925,18 @@
             }
         },
         "node_modules/@react-stately/combobox": {
-            "version": "3.8.1",
-            "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.8.1.tgz",
-            "integrity": "sha512-FaWkqTXQdWg7ptaeU4iPcqF/kxbRg2ZNUcvW/hiL/enciV5tRCsddvfNqvDvy1L30z9AUwlp9MWqzm/DhBITCw==",
-            "dependencies": {
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/form": "^3.0.0",
-                "@react-stately/list": "^3.10.2",
-                "@react-stately/overlays": "^3.6.4",
-                "@react-stately/select": "^3.6.1",
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/combobox": "^3.10.0",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.8.2",
+            "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.8.2.tgz",
+            "integrity": "sha512-f+IHuFW848VoMbvTfSakn2WIh2urDxO355LrKxnisXPCkpQHpq3lvT2mJtKJwkPxjAy7xPjpV8ejgga2R6p53Q==",
+            "dependencies": {
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/form": "^3.0.1",
+                "@react-stately/list": "^3.10.3",
+                "@react-stately/overlays": "^3.6.5",
+                "@react-stately/select": "^3.6.2",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/combobox": "^3.10.1",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5956,11 +5944,11 @@
             }
         },
         "node_modules/@react-stately/data": {
-            "version": "3.11.1",
-            "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.11.1.tgz",
-            "integrity": "sha512-JedDhZ5e6Qetf+TGXKBdVVEvB50BymNJHKRFRQ9E3mmh/KFeY4V8THHKrNE/BhzB6Z3onsp5r14Z66Nku+klTg==",
+            "version": "3.11.2",
+            "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.11.2.tgz",
+            "integrity": "sha512-yhK2upk2WbJeiLBRWHrh/4G2CvmmozCzoivLaRAPYu53m1J3MyzVGCLJgnZMbMZvAbNcYWZK6IzO6VqZ2y1fOw==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5968,17 +5956,17 @@
             }
         },
         "node_modules/@react-stately/datepicker": {
-            "version": "3.9.1",
-            "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.9.1.tgz",
-            "integrity": "sha512-o5xLvlZGJyAbTev2yruGlV2fzQyIDuYTgL19TTt0W0WCfjGGr/AAA9GjGXXmyoRA7sZMxqIPnnv7lNrdA38ofA==",
-            "dependencies": {
-                "@internationalized/date": "^3.5.1",
-                "@internationalized/string": "^3.2.0",
-                "@react-stately/form": "^3.0.0",
-                "@react-stately/overlays": "^3.6.4",
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/datepicker": "^3.7.1",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.9.2",
+            "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.9.2.tgz",
+            "integrity": "sha512-Z6FrK6Af7R5BizqHhJFCj3Hn32mg5iLSDdEgFQAuO043guOXUKFUAnbxfbQUjL6PGE6QwWMfQD7PPGebHn9Ifw==",
+            "dependencies": {
+                "@internationalized/date": "^3.5.2",
+                "@internationalized/string": "^3.2.1",
+                "@react-stately/form": "^3.0.1",
+                "@react-stately/overlays": "^3.6.5",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/datepicker": "^3.7.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5986,12 +5974,12 @@
             }
         },
         "node_modules/@react-stately/dnd": {
-            "version": "3.2.7",
-            "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.2.7.tgz",
-            "integrity": "sha512-QqSCvE9Rhp+Mr8Mt/SrByze24BFX1cy7gmXbwoqAYgHNIx3gWCVdBLqxfpfgYIhZdF9H72EWS8lQkfkZla06Ng==",
+            "version": "3.2.8",
+            "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.2.8.tgz",
+            "integrity": "sha512-oSo+2Bzum3Q1/d+3FuaDmpVHqqBB004tycuQDDFtad3N1BKm+fNfmslRK1ioLkPLK4sm1130V+BZBY3JXLe80A==",
             "dependencies": {
-                "@react-stately/selection": "^3.14.2",
-                "@react-types/shared": "^3.22.0",
+                "@react-stately/selection": "^3.14.3",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -5999,9 +5987,9 @@
             }
         },
         "node_modules/@react-stately/flags": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.0.tgz",
-            "integrity": "sha512-e3i2ItHbIa0eEwmSXAnPdD7K8syW76JjGe8ENxwFJPW/H1Pu9RJfjkCb/Mq0WSPN/TpxBb54+I9TgrGhbCoZ9w==",
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.1.tgz",
+            "integrity": "sha512-h5PcDMj54aipQNO18ig/IMI1kzPwcvSwVq5M6Ib6XE1WIkOH0dIuW2eADdAOhcGi3KXJtXVdD29zh0Eox1TKgQ==",
             "dependencies": {
                 "@swc/helpers": "^0.4.14"
             }
@@ -6016,11 +6004,11 @@
             }
         },
         "node_modules/@react-stately/form": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.0.tgz",
-            "integrity": "sha512-C8wkfFmtx1escizibhdka5JvTy9/Vp173CS9cakjvWTmnjYYC1nOlzwp7BsYWTgerCFbRY/BU/Cf/bJDxPiUKQ==",
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.1.tgz",
+            "integrity": "sha512-T1Ul2Ou0uE/S4ECLcGKa0OfXjffdjEHfUFZAk7OZl0Mqq/F7dl5WpoLWJ4d4IyvZzGO6anFNenP+vODWbrF3NA==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6028,14 +6016,14 @@
             }
         },
         "node_modules/@react-stately/grid": {
-            "version": "3.8.4",
-            "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.8.4.tgz",
-            "integrity": "sha512-rwqV1K4lVhaiaqJkt4TfYqdJoVIyqvSm98rKAYfCNzrKcivVpoiCMJ2EMt6WlYCjDVBdEOQ7fMV1I60IV0pntA==",
-            "dependencies": {
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/selection": "^3.14.2",
-                "@react-types/grid": "^3.2.3",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.8.5",
+            "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.8.5.tgz",
+            "integrity": "sha512-KCzi0x0p1ZKK+OptonvJqMbn6Vlgo6GfOIlgcDd0dNYDP8TJ+3QFJAFre5mCr7Fubx7LcAOio4Rij0l/R8fkXQ==",
+            "dependencies": {
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/selection": "^3.14.3",
+                "@react-types/grid": "^3.2.4",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6043,16 +6031,16 @@
             }
         },
         "node_modules/@react-stately/layout": {
-            "version": "3.13.6",
-            "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.13.6.tgz",
-            "integrity": "sha512-lfkLbPjwsvmA/Rk4OodtrBfFNiApvk5t2cehYHtUU5OFvHGaqt/n//dZ85XI2ooUq1FwfBZZ0ZXAAvJeaWR1QA==",
-            "dependencies": {
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/table": "^3.11.5",
-                "@react-stately/virtualizer": "^3.6.7",
-                "@react-types/grid": "^3.2.3",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/table": "^3.9.2",
+            "version": "3.13.7",
+            "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.13.7.tgz",
+            "integrity": "sha512-9HH/aSxpEHwUW1T1vGN3+iznkAXQUzoMrsoEepNzesOsUGSm/MFZmEk4+9cdPA7y3ou2eHpGNUB1YIDDVptElg==",
+            "dependencies": {
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/table": "^3.11.6",
+                "@react-stately/virtualizer": "^3.6.8",
+                "@react-types/grid": "^3.2.4",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/table": "^3.9.3",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6060,14 +6048,14 @@
             }
         },
         "node_modules/@react-stately/list": {
-            "version": "3.10.2",
-            "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.10.2.tgz",
-            "integrity": "sha512-INt+zofkIg2KN8B95xPi9pJG7ZFWAm30oIm/lCPBqM3K1Nm03/QaAbiQj2QeJcOsG3lb7oqI6D6iwTolwJkjIQ==",
-            "dependencies": {
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/selection": "^3.14.2",
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.10.3",
+            "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.10.3.tgz",
+            "integrity": "sha512-Ul8el0tQy2Ucl3qMQ0fiqdJ874W1ZNjURVSgSxN+pGwVLNBVRjd6Fl7YwZFCXER2YOlzkwg+Zqozf/ZlS0EdXA==",
+            "dependencies": {
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/selection": "^3.14.3",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6075,13 +6063,13 @@
             }
         },
         "node_modules/@react-stately/menu": {
-            "version": "3.6.0",
-            "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.6.0.tgz",
-            "integrity": "sha512-OB6CjNyfOkAuirqx1oTL8z8epS9WDzLyrXjmRnxdiCU9EgRXLGAQNECuO7VIpl58oDry8tgRJiJ8fn8FivWSQA==",
+            "version": "3.6.1",
+            "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.6.1.tgz",
+            "integrity": "sha512-3v0vkTm/kInuuG8jG7jbxXDBnMQcoDZKWvYsBQq7+POt0LmijbLdbdZPBoz9TkZ3eo/OoP194LLHOaFTQyHhlw==",
             "dependencies": {
-                "@react-stately/overlays": "^3.6.4",
-                "@react-types/menu": "^3.9.6",
-                "@react-types/shared": "^3.22.0",
+                "@react-stately/overlays": "^3.6.5",
+                "@react-types/menu": "^3.9.7",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6089,14 +6077,14 @@
             }
         },
         "node_modules/@react-stately/numberfield": {
-            "version": "3.9.0",
-            "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.0.tgz",
-            "integrity": "sha512-8O802S38e1htZbSzpPjbbIGAGxGC/DIzcW8H03UmBXiIFosEjpdmm8qRrJbhGfJGpwnehtzJQ6EaOLgLZMCFKg==",
-            "dependencies": {
-                "@internationalized/number": "^3.5.0",
-                "@react-stately/form": "^3.0.0",
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/numberfield": "^3.8.0",
+            "version": "3.9.1",
+            "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.1.tgz",
+            "integrity": "sha512-btBIcBEfSVCUm6NwJrMrMygoIu/fQGazzD0RhF7PNsfvkFiWn+TSOyQqSXcsUJVOnBfoS/dVWj6r57KA7zl3FA==",
+            "dependencies": {
+                "@internationalized/number": "^3.5.1",
+                "@react-stately/form": "^3.0.1",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/numberfield": "^3.8.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6104,12 +6092,12 @@
             }
         },
         "node_modules/@react-stately/overlays": {
-            "version": "3.6.4",
-            "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.4.tgz",
-            "integrity": "sha512-tHEaoAGpE9dSnsskqLPVKum59yGteoSqsniTopodM+miQozbpPlSjdiQnzGLroy5Afx5OZYClE616muNHUILXA==",
+            "version": "3.6.5",
+            "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.5.tgz",
+            "integrity": "sha512-U4rCFj6TPJPXLUvYXAcvh+yP/CO2W+7f0IuqP7ZZGE+Osk9qFkT+zRK5/6ayhBDFpmueNfjIEAzT9gYPQwNHFw==",
             "dependencies": {
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/overlays": "^3.8.4",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/overlays": "^3.8.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6117,14 +6105,14 @@
             }
         },
         "node_modules/@react-stately/radio": {
-            "version": "3.10.1",
-            "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.1.tgz",
-            "integrity": "sha512-MsBYbcLCvjKsqTAKe43T681F2XwKMsS7PLG0eplZgWP9210AMY78GeY1XPYZKHPAau8XkbYiuJqbqTerIJ3DBw==",
+            "version": "3.10.2",
+            "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.2.tgz",
+            "integrity": "sha512-JW5ZWiNMKcZvMTsuPeWJQLHXD5rlqy7Qk6fwUx/ZgeibvMBW/NnW19mm2+IMinzmbtERXvR6nsiA837qI+4dew==",
             "dependencies": {
-                "@react-stately/form": "^3.0.0",
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/radio": "^3.7.0",
-                "@react-types/shared": "^3.22.0",
+                "@react-stately/form": "^3.0.1",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/radio": "^3.7.1",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6132,12 +6120,12 @@
             }
         },
         "node_modules/@react-stately/searchfield": {
-            "version": "3.5.0",
-            "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.0.tgz",
-            "integrity": "sha512-SStjChkn/33pEn40slKQPnBnmQYyxVazVwPjiBkdeVejC42lUVairUTrGJgF0PNoZTbxn0so2/XzjqTC9T8iCw==",
+            "version": "3.5.1",
+            "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.1.tgz",
+            "integrity": "sha512-9A8Wghx1avRHhMpNH1Nj+jFfiF1bhsff2GEC5PZgWYzhCykw3G5bywn3JAuUS4kh7Vpqhbu4KpHAhmWPSv4B/Q==",
             "dependencies": {
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/searchfield": "^3.5.2",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/searchfield": "^3.5.3",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6145,15 +6133,15 @@
             }
         },
         "node_modules/@react-stately/select": {
-            "version": "3.6.1",
-            "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.1.tgz",
-            "integrity": "sha512-e5ixtLiYLlFWM8z1msDqXWhflF9esIRfroptZsltMn1lt2iImUlDRlOTZlMtPQzUrDWoiHXRX88sSKUM/jXjQQ==",
-            "dependencies": {
-                "@react-stately/form": "^3.0.0",
-                "@react-stately/list": "^3.10.2",
-                "@react-stately/overlays": "^3.6.4",
-                "@react-types/select": "^3.9.1",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.6.2",
+            "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.2.tgz",
+            "integrity": "sha512-duOxdHKol93h6Ew6fap6Amz+zngoERKZLSKVm/8I8uaBgkoBhEeTFv7mlpHTgINxymMw3mMrvy6GL/gfKFwkqg==",
+            "dependencies": {
+                "@react-stately/form": "^3.0.1",
+                "@react-stately/list": "^3.10.3",
+                "@react-stately/overlays": "^3.6.5",
+                "@react-types/select": "^3.9.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6161,13 +6149,13 @@
             }
         },
         "node_modules/@react-stately/selection": {
-            "version": "3.14.2",
-            "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.14.2.tgz",
-            "integrity": "sha512-mL7OoiUgVWaaF7ks5XSxgbXeShijYmD4G3bkBHhqkpugU600QH6BM2hloCq8KOUupk1y8oTljPtF9EmCv375DA==",
+            "version": "3.14.3",
+            "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.14.3.tgz",
+            "integrity": "sha512-d/t0rIWieqQ7wjLoMoWnuHEUSMoVXxkPBFuSlJF3F16289FiQ+b8aeKFDzFTYN7fFD8rkZTnpuE4Tcxg3TmA+w==",
             "dependencies": {
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/shared": "^3.22.0",
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6175,13 +6163,13 @@
             }
         },
         "node_modules/@react-stately/slider": {
-            "version": "3.5.1",
-            "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.1.tgz",
-            "integrity": "sha512-NRZ5m1wOVxGZF1CQC6hOzt/LmHNUF2xpFSkzN29fW/InPH4jb3BuOkRbbWv76QaVe0Kdg2ZLWcMl2+Qt6adIeQ==",
+            "version": "3.5.2",
+            "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.2.tgz",
+            "integrity": "sha512-ntH3NLRG+AwVC7q4Dx9DcmMkMh9vmHjHNXAgaoqNjhvwfSIae7sQ69CkVe6XeJjIBy6LlH81Kgapz+ABe5a1ZA==",
             "dependencies": {
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/slider": "^3.7.0",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/slider": "^3.7.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6189,18 +6177,18 @@
             }
         },
         "node_modules/@react-stately/table": {
-            "version": "3.11.5",
-            "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.11.5.tgz",
-            "integrity": "sha512-l84iZJxpR0vlprHNEeGCVZTjOivP5fLpllmG+GswGxN4JXDqCEZ6gCQzpXxLyQTyBZ8lTRmmmmW20V2nCmDO4w==",
-            "dependencies": {
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/flags": "^3.0.0",
-                "@react-stately/grid": "^3.8.4",
-                "@react-stately/selection": "^3.14.2",
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/grid": "^3.2.3",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/table": "^3.9.2",
+            "version": "3.11.6",
+            "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.11.6.tgz",
+            "integrity": "sha512-34YsfOILXusj3p6QNcKEaDWVORhM6WEhwPSLCZlkwAJvkxuRQFdih5rQKoIDc0uV5aZsB6bYBqiFhnjY0VERhw==",
+            "dependencies": {
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/flags": "^3.0.1",
+                "@react-stately/grid": "^3.8.5",
+                "@react-stately/selection": "^3.14.3",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/grid": "^3.2.4",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/table": "^3.9.3",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6208,13 +6196,13 @@
             }
         },
         "node_modules/@react-stately/tabs": {
-            "version": "3.6.3",
-            "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.3.tgz",
-            "integrity": "sha512-Nj+Gacwa2SIzYIvHW40GsyX4Q6c8kF7GOuXESeQswbCjnwqhrSbDBp+ngPcUPUJxqFh6JhDCVwAS3wMhUoyUwA==",
+            "version": "3.6.4",
+            "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.4.tgz",
+            "integrity": "sha512-WZJgMBqzLgN88RN8AxhY4aH1+I+4w1qQA0Lh3LRSDegaytd+NHixCWaP3IPjePgCB5N1UsPe96Xglw75zjHmDg==",
             "dependencies": {
-                "@react-stately/list": "^3.10.2",
-                "@react-types/shared": "^3.22.0",
-                "@react-types/tabs": "^3.3.4",
+                "@react-stately/list": "^3.10.3",
+                "@react-types/shared": "^3.22.1",
+                "@react-types/tabs": "^3.3.5",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6222,12 +6210,12 @@
             }
         },
         "node_modules/@react-stately/toggle": {
-            "version": "3.7.1",
-            "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.1.tgz",
-            "integrity": "sha512-pZyhPJNdhidm/Uq/Pt58H0I6CUNyfnhfGAAn9Et6T3/SymcX1Zti5mZg5gXgICFlwGbucfLBe+Jt691Rnt2vaA==",
+            "version": "3.7.2",
+            "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.2.tgz",
+            "integrity": "sha512-SHCF2btcoK57c4lyhucRbyPBAFpp0Pdp0vcPdn3hUgqbu6e5gE0CwG/mgFmZRAQoc7PRc7XifL0uNw8diJJI0Q==",
             "dependencies": {
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/checkbox": "^3.7.0",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/checkbox": "^3.7.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6235,12 +6223,12 @@
             }
         },
         "node_modules/@react-stately/tooltip": {
-            "version": "3.4.6",
-            "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.6.tgz",
-            "integrity": "sha512-uL93bmsXf+OOgpKLPEKfpDH4z+MK2CuqlqVxx7rshN0vjWOSoezE5nzwgee90+RpDrLNNNWTNa7n+NkDRpI1jA==",
+            "version": "3.4.7",
+            "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.7.tgz",
+            "integrity": "sha512-ACtRgBQ8rphBtsUaaxvEAM0HHN9PvMuyvL0vUHd7jvBDCVZJ6it1BKu9SBKjekBkoBOw9nemtkplh9R2CA6V8Q==",
             "dependencies": {
-                "@react-stately/overlays": "^3.6.4",
-                "@react-types/tooltip": "^3.4.6",
+                "@react-stately/overlays": "^3.6.5",
+                "@react-types/tooltip": "^3.4.7",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6248,14 +6236,14 @@
             }
         },
         "node_modules/@react-stately/tree": {
-            "version": "3.7.5",
-            "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.7.5.tgz",
-            "integrity": "sha512-xTJVwvhAeY0N5rui4N/TxN7f8hjXdqApDuGDxMZeFAWoQz8Abf7LFKBVQ3OkT6qVr7P+23dgoisUDBhD5a45Hg==",
-            "dependencies": {
-                "@react-stately/collections": "^3.10.4",
-                "@react-stately/selection": "^3.14.2",
-                "@react-stately/utils": "^3.9.0",
-                "@react-types/shared": "^3.22.0",
+            "version": "3.7.6",
+            "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.7.6.tgz",
+            "integrity": "sha512-y8KvEoZX6+YvqjNCVGS3zA/BKw4D3XrUtUKIDme3gu5Mn6z97u+hUXKdXVCniZR7yvV3fHAIXwE5V2K8Oit4aw==",
+            "dependencies": {
+                "@react-stately/collections": "^3.10.5",
+                "@react-stately/selection": "^3.14.3",
+                "@react-stately/utils": "^3.9.1",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6263,9 +6251,9 @@
             }
         },
         "node_modules/@react-stately/utils": {
-            "version": "3.9.0",
-            "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.9.0.tgz",
-            "integrity": "sha512-yPKFY1F88HxuZ15BG2qwAYxtpE4HnIU0Ofi4CuBE0xC6I8mwo4OQjDzi+DZjxQngM9D6AeTTD6F1V8gkozA0Gw==",
+            "version": "3.9.1",
+            "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.9.1.tgz",
+            "integrity": "sha512-yzw75GE0iUWiyps02BOAPTrybcsMIxEJlzXqtvllAb01O9uX5n0i3X+u2eCpj2UoDF4zS08Ps0jPgWxg8xEYtA==",
             "dependencies": {
                 "@swc/helpers": "^0.5.0"
             },
@@ -6274,12 +6262,12 @@
             }
         },
         "node_modules/@react-stately/virtualizer": {
-            "version": "3.6.7",
-            "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.6.7.tgz",
-            "integrity": "sha512-huhQSrfwiUq2idceSE2aQ54d9gttAovKDtw7uERWFt+UAxiprWq8hr6sl7rTdN2NB7fz/t+MAJJuwWMkzLUlOw==",
+            "version": "3.6.8",
+            "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.6.8.tgz",
+            "integrity": "sha512-Pf06ihTwExRJltGhi72tmLIo0pcjkL55nu7ifMafAAdxZK4ONxRLSuUjjpvYf/0Rs92xRZy2t/XmHREnfirdkQ==",
             "dependencies": {
-                "@react-aria/utils": "^3.23.1",
-                "@react-types/shared": "^3.22.0",
+                "@react-aria/utils": "^3.23.2",
+                "@react-types/shared": "^3.22.1",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6287,470 +6275,470 @@
             }
         },
         "node_modules/@react-types/actionbar": {
-            "version": "3.1.4",
-            "resolved": "https://registry.npmjs.org/@react-types/actionbar/-/actionbar-3.1.4.tgz",
-            "integrity": "sha512-/z9N7ztd/MOdEDQNHTCNviYe0+rqy1s19Xg3tv/PV1oUCOsjrnja85VVxoa+AWR8IbwgDNIfpXg2Wa66b1FDbw==",
+            "version": "3.1.5",
+            "resolved": "https://registry.npmjs.org/@react-types/actionbar/-/actionbar-3.1.5.tgz",
+            "integrity": "sha512-Z3hfIoaOaW8wJxQm1NyWVvSftpNDYv9iWqpEWBEdhxuqsUkOVszZ7KcNaF4qsm4bJIcJWn3FNKhaTKGwISZcdQ==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/actiongroup": {
-            "version": "3.4.6",
-            "resolved": "https://registry.npmjs.org/@react-types/actiongroup/-/actiongroup-3.4.6.tgz",
-            "integrity": "sha512-Dho2mEDCU9ZAW+QX2HZkZhyxHK/EGfTvSWdHBFaCYsh4CPI/6PcvtirpSKMrzNNaZ97Exthv3GcLpAnLwM9jZw==",
+            "version": "3.4.7",
+            "resolved": "https://registry.npmjs.org/@react-types/actiongroup/-/actiongroup-3.4.7.tgz",
+            "integrity": "sha512-VsyHn6mGqEHKEIGFiHTq7rSuzuQjGVZGtnhh/9jQXW6zoSJyoM4fAnHEt+RE92NdiRv5e3+OzzrwG0TZsi87cQ==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/avatar": {
-            "version": "3.0.4",
-            "resolved": "https://registry.npmjs.org/@react-types/avatar/-/avatar-3.0.4.tgz",
-            "integrity": "sha512-fQ+qGce0EqcX0s2glnFjfvxSq42GHaqvl+eL8TnsDz0OIvB8KKzTO/rV/q1CIy/LtMP8fjCb6oqVFQcLfuODfw==",
+            "version": "3.0.5",
+            "resolved": "https://registry.npmjs.org/@react-types/avatar/-/avatar-3.0.5.tgz",
+            "integrity": "sha512-/hM/BnRoUhusT16G4hf2hfe4FocxaM5H/a7aetUrmlr9e5ppX3n0VsU0btIwxdh+aJL8u2BBt2scoiJaujQPNg==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/badge": {
-            "version": "3.1.6",
-            "resolved": "https://registry.npmjs.org/@react-types/badge/-/badge-3.1.6.tgz",
-            "integrity": "sha512-6xjgfRnCVSBI6l/RQkI4u3tXiXw1aeFKRqXPcyIyt/kuu7rP0nKeYcM2XYyXXQp7vHfBdOEL2f6LwIHR/lx4uQ==",
+            "version": "3.1.7",
+            "resolved": "https://registry.npmjs.org/@react-types/badge/-/badge-3.1.7.tgz",
+            "integrity": "sha512-2Q5W9gleI83WpL1i6qPdcPC8l1V7364dpkNLcMi9DFmM2l69+QcPvSWVQMQLevmRo4cnaQ+TYsOgYv8I4rRJCg==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/breadcrumbs": {
-            "version": "3.7.2",
-            "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.2.tgz",
-            "integrity": "sha512-esl6RucDW2CNMsApJxNYfMtDaUcfLlwKMPH/loYsOBbKxGl2HsgVLMcdpjEkTRs2HCTNCbBXWpeU8AY77t+bsw==",
+            "version": "3.7.3",
+            "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.3.tgz",
+            "integrity": "sha512-eFto/+6J+JR58vThNcALZRA1OlqlG3GzQ/bq3q8IrrkOZcrfbEJJCWit/+53Ia98siJKuF4OJHnotxIVIz5I3w==",
             "dependencies": {
-                "@react-types/link": "^3.5.2",
-                "@react-types/shared": "^3.22.0"
+                "@react-types/link": "^3.5.3",
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/button": {
-            "version": "3.9.1",
-            "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.9.1.tgz",
-            "integrity": "sha512-bf9iTar3PtqnyV9rA+wyFyrskZKhwmOuOd/ifYIjPs56YNVXWH5Wfqj6Dx3xdFBgtKx8mEVQxVhoX+WkHX+rtw==",
+            "version": "3.9.2",
+            "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.9.2.tgz",
+            "integrity": "sha512-EnPTkGHZRtiwAoJy5q9lDjoG30bEzA/qnvKG29VVXKYAGeqY2IlFs1ypmU+z1X/CpJgPcG3I5cakM7yTVm3pSg==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/buttongroup": {
-            "version": "3.3.6",
-            "resolved": "https://registry.npmjs.org/@react-types/buttongroup/-/buttongroup-3.3.6.tgz",
-            "integrity": "sha512-aKFDzAWM6bk2+EBDSZe3zq4NMuguXsPyZ9OexN0YLleK4IkRKE2S51PdChY/GAFhfs7VsOKgjHrYWUnrmCCYvw==",
+            "version": "3.3.7",
+            "resolved": "https://registry.npmjs.org/@react-types/buttongroup/-/buttongroup-3.3.7.tgz",
+            "integrity": "sha512-EZ/1k66GtDtWfE/udNRz2UBbt4YJumeyW1SGcZEO3jketvpms58WapLsMkCezlLz7WYaa5ADV0kU8v88APjI6g==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/calendar": {
-            "version": "3.4.3",
-            "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.3.tgz",
-            "integrity": "sha512-96x57ctX5wNEl+8et3sc2NQm8neOJayEeqOQQpyPtI7jyvst/xBrKCwysf9W/dhgPlUC+KeBAYFWfjd5hFVHYA==",
+            "version": "3.4.4",
+            "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.4.tgz",
+            "integrity": "sha512-hV1Thmb/AES5OmfPvvmyjSkmsEULjiDfA7Yyy70L/YKuSNKb7Su+Bf2VnZuDW3ec+GxO4JJNlpJ0AkbphWBvcg==",
             "dependencies": {
-                "@internationalized/date": "^3.5.1",
-                "@react-types/shared": "^3.22.0"
+                "@internationalized/date": "^3.5.2",
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/checkbox": {
-            "version": "3.7.0",
-            "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.7.0.tgz",
-            "integrity": "sha512-3ZW/+Fh5GkL7mQhayyESB9+YQ6y7nImLQ8jB2lg42esaK5UF7IpG3xlrYm2z4KWLvQFXncX7SJsnwzYiBMLY+g==",
+            "version": "3.7.1",
+            "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.7.1.tgz",
+            "integrity": "sha512-kuGqjQFex0As/3gfWyk+e9njCcad/ZdnYLLiNvhlk15730xfa0MmnOdpqo9jfuFSXBjOcpxoofvEhvrRMtEdUA==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/combobox": {
-            "version": "3.10.0",
-            "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.10.0.tgz",
-            "integrity": "sha512-1IXSNS02TPbguyYopaW2snU6sZusbClHrEyVr4zPeexTV4kpUUBNXOzFQ+eSQRR0r2XW57Z0yRW4GJ6FGU0yCA==",
+            "version": "3.10.1",
+            "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.10.1.tgz",
+            "integrity": "sha512-XMno1rgVRNta49vf5nV7VJpVSVAV20tt79t618gG1qRKH5Kt2Cy8lz2fQ5vHG6UTv/6jUOvU8g5Pc93sLaTmoA==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/contextualhelp": {
-            "version": "3.2.7",
-            "resolved": "https://registry.npmjs.org/@react-types/contextualhelp/-/contextualhelp-3.2.7.tgz",
-            "integrity": "sha512-BHwBSBhPekKc/PxDpnkvfcEgpaYLMrV6WYgMfUz2/BMYOjdm+pb1y80vpNkWtrJKytyqp1zeZ+Ca+xzX1HdazA==",
+            "version": "3.2.8",
+            "resolved": "https://registry.npmjs.org/@react-types/contextualhelp/-/contextualhelp-3.2.8.tgz",
+            "integrity": "sha512-Yb0zOqkWfjKCO+gpfVj69CfWPhVq6RTgwLBV47ntIlHitpbh7RDYwDVulPyaVoopPbNSFUoV4YIJZPlOgpbKjg==",
             "dependencies": {
-                "@react-types/overlays": "^3.8.4",
-                "@react-types/shared": "^3.22.0"
+                "@react-types/overlays": "^3.8.5",
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/datepicker": {
-            "version": "3.7.1",
-            "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.7.1.tgz",
-            "integrity": "sha512-5juVDULOytNzkotqX8j5mYKJckeIpkgbHqVSGkPgLw0++FceIaSZ6RH56cqLup0pO45paqIt9zHh+QXBYX+syg==",
+            "version": "3.7.2",
+            "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.7.2.tgz",
+            "integrity": "sha512-zThqFAdhQL1dqyVDsDSSTdfCjoD6634eyg/B0ZJfQxcLUR/5pch3v/gxBhbyCVDGMNHRWUWIJvY9DVOepuoSug==",
             "dependencies": {
-                "@internationalized/date": "^3.5.1",
-                "@react-types/calendar": "^3.4.3",
-                "@react-types/overlays": "^3.8.4",
-                "@react-types/shared": "^3.22.0"
+                "@internationalized/date": "^3.5.2",
+                "@react-types/calendar": "^3.4.4",
+                "@react-types/overlays": "^3.8.5",
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/dialog": {
-            "version": "3.5.7",
-            "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.7.tgz",
-            "integrity": "sha512-geYoqAyQaTLG43AaXdMUVqZXYgkSifrD9cF7lR2kPAT0uGFv0YREi6ieU+aui8XJ83EW0xcxP+EPWd2YkN4D4w==",
+            "version": "3.5.8",
+            "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.8.tgz",
+            "integrity": "sha512-RX8JsMvty8ADHRqVEkppoynXLtN4IzUh8d5z88UEBbcvWKlHfd6bOBQjQcBH3AUue5wjfpPIt6brw2VzgBY/3Q==",
             "dependencies": {
-                "@react-types/overlays": "^3.8.4",
-                "@react-types/shared": "^3.22.0"
+                "@react-types/overlays": "^3.8.5",
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/divider": {
-            "version": "3.3.6",
-            "resolved": "https://registry.npmjs.org/@react-types/divider/-/divider-3.3.6.tgz",
-            "integrity": "sha512-Iwwe349IiCX7ZQK1Oz4AN5kWwiXG0DECSN4qB3h+14n97JKy3chWJC7UA+V6+2p5DbxmLVZm4XxDRgx7y0lVTg==",
+            "version": "3.3.7",
+            "resolved": "https://registry.npmjs.org/@react-types/divider/-/divider-3.3.7.tgz",
+            "integrity": "sha512-enAlzHVwzqBPpmE+/VAO5IGVPxPrscHkdbnEkTqW9JQeMUGXd4L0TdHOGd+vtcA+gILJMnhUfT3XE4wQ4HlpVw==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/form": {
-            "version": "3.7.1",
-            "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.7.1.tgz",
-            "integrity": "sha512-Wr44McYcB5Od3SwMzLhe1qaaZIy+YUe16jYRc/0io1gyCELXmplpIw8VQmf9/x62ze9CC/aZVdEJ/V9CogXmOA==",
+            "version": "3.7.2",
+            "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.7.2.tgz",
+            "integrity": "sha512-6/isEJY4PsYoHdMaGQtqQyquXGTwB1FqCBOPKQjI/vBGWG3fL7FGfWm4Z62eTbCH4Xyv3FZuNywlT8UjPMQyKA==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/grid": {
-            "version": "3.2.3",
-            "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.3.tgz",
-            "integrity": "sha512-GQM4RDmYhstcYZ0Odjq+xUwh1fhLmRebG6qMM8OXHTPQ77nhl3wc1UTGRhZm6mzEionplSRx4GCpEMEHMJIU0w==",
+            "version": "3.2.4",
+            "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.4.tgz",
+            "integrity": "sha512-sDVoyQcH7MoGdx5nBi5ZOU/mVFBt9YTxhvr0PZ97dMdEHZtJC1w9SuezwWS34f50yb8YAXQRTICbZYcK4bAlDA==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/illustratedmessage": {
-            "version": "3.3.6",
-            "resolved": "https://registry.npmjs.org/@react-types/illustratedmessage/-/illustratedmessage-3.3.6.tgz",
-            "integrity": "sha512-1FdJl1tR6mirmXT8yaTFeHNWdLXV6Dll66Mv1liEtTYsmCgn2anxwM73jK63t3jdT6ez/M1wGiwMlMtyiqo+ZQ==",
+            "version": "3.3.7",
+            "resolved": "https://registry.npmjs.org/@react-types/illustratedmessage/-/illustratedmessage-3.3.7.tgz",
+            "integrity": "sha512-r8WAv+w0WQSDRmDmG6jL0dXK8MjMr/lr2gBpVYVvC45Gu+fqf4VL+4zphgwASRysWclFbjQhgkgC7OEXk3GUKg==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/image": {
-            "version": "3.3.6",
-            "resolved": "https://registry.npmjs.org/@react-types/image/-/image-3.3.6.tgz",
-            "integrity": "sha512-GSb0deyquS3kFt0e9SfPP9I/YaYYUToYYPzx9As0R0mzuVn6qTHhUtpKhBqQAOpE1Cd8XdEQeYsDB3sdOurI+A==",
+            "version": "3.3.7",
+            "resolved": "https://registry.npmjs.org/@react-types/image/-/image-3.3.7.tgz",
+            "integrity": "sha512-ty6wuan6p3Z8OzSrbjtL2k8yXHW+n0qiYKyqKpSA8TcRLDLhtvRceI7X12RuDfbAiEN6/zfLCuF47O3y7OeKug==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/label": {
-            "version": "3.9.0",
-            "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.9.0.tgz",
-            "integrity": "sha512-nTmPf5ED8aLGqvFsZHIHwMPrRX0cfbOyayva//Rdis41KWQoKUB80DIQjE+iUDOgTivIxGBkpqdIZVqRuehTnw==",
+            "version": "3.9.1",
+            "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.9.1.tgz",
+            "integrity": "sha512-0N/UOhwrKjE9VjVbUoJCsH5UwTzSu3d5B3xtvhH8YFqSbJCI+HMKILby8i8ys55RA9fQDMScIjCJafEFWW7UWA==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/layout": {
-            "version": "3.3.12",
-            "resolved": "https://registry.npmjs.org/@react-types/layout/-/layout-3.3.12.tgz",
-            "integrity": "sha512-Ai6limgTVYQoGiXUvsXg8MHik+YAtRWEVLQhT5E1nQkDkNkQyccB+waUSfORhRkjJcnp+KMcbmPZ8V5ZO42rvQ==",
+            "version": "3.3.13",
+            "resolved": "https://registry.npmjs.org/@react-types/layout/-/layout-3.3.13.tgz",
+            "integrity": "sha512-Y3pmSsfDB+bV299F5SJannR6m/XM5IyfdqjPS0/Qx8KBBf0A3UWfL6qUr4BMEAKsEJuIXA7zT3RSo/AbGSbSyg==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/link": {
-            "version": "3.5.2",
-            "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.2.tgz",
-            "integrity": "sha512-/s51/WejmpLiyxOgP89s4txgxYoGaPe8pVDItVo1h4+BhU1Puyvgv/Jx8t9dPvo6LUXbraaN+SgKk/QDxaiirw==",
+            "version": "3.5.3",
+            "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.3.tgz",
+            "integrity": "sha512-yVafjW3IejyVnK3oMBNjFABCGG6J27EUG8rvkaGaI1uB6srGUEhpJ97XLv11aj1QkXHBy3VGXqxEV3S7wn4HTw==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/listbox": {
-            "version": "3.4.6",
-            "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.4.6.tgz",
-            "integrity": "sha512-XOQvrTqNh5WIPDvKiWiep8T07RAsMfjAXTjDbnjxVlKACUXkcwpts9kFaLnJ9LJRFt6DwItfP+WMkzvmx63/NQ==",
+            "version": "3.4.7",
+            "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.4.7.tgz",
+            "integrity": "sha512-68y5H9CVSPFiwO6MOFxTbry9JQMK/Lb1M9i3M8TDyq1AbJxBPpgAvJ9RaqIMCucsnqCzpY/zA3D/X417zByL1w==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/menu": {
-            "version": "3.9.6",
-            "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.6.tgz",
-            "integrity": "sha512-w/RbFInOf4nNayQDv5c2L8IMJbcFOkBhsT3xvvpTy+CHvJcQdjggwaV1sRiw7eF/PwB81k2CwigmidUzHJhKDg==",
+            "version": "3.9.7",
+            "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.7.tgz",
+            "integrity": "sha512-K6KhloJVoGsqwkdeez72fkNI9dfrmLI/sNrB4XuOKo2crDQ/eyZYWyJmzz8giz/tHME9w774k487rVoefoFh5w==",
             "dependencies": {
-                "@react-types/overlays": "^3.8.4",
-                "@react-types/shared": "^3.22.0"
+                "@react-types/overlays": "^3.8.5",
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/meter": {
-            "version": "3.3.6",
-            "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.3.6.tgz",
-            "integrity": "sha512-1XYp1fA9UU0lO6kjf3TwVE8mppOJa64mBKAcLWtTyq1e/cYIAbx5o6CsuUx0YDpXKF6gdtvIWvfmxeWsmqJ1jQ==",
+            "version": "3.3.7",
+            "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.3.7.tgz",
+            "integrity": "sha512-p+YJ0+Lpn5MLmlbFZbDH1P0ILv1+AuMcUbxLcXMIVMGn7o0FO7eVZnFuq76D+qTDm9all+TRLJix7bctOrP+5Q==",
             "dependencies": {
-                "@react-types/progress": "^3.5.1"
+                "@react-types/progress": "^3.5.2"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/numberfield": {
-            "version": "3.8.0",
-            "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.0.tgz",
-            "integrity": "sha512-2xnVvOVVSnvzT5JxldJdVRh/IMry9//PyQ5VcK3ze0m+bcD6zZspIdspzu8jiYyUPmZLHN1cZzx5GZSak1V6ig==",
+            "version": "3.8.1",
+            "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.1.tgz",
+            "integrity": "sha512-GaCjLQgXUGCt40SLjKk3/COMWFlN2vV/3Xs3VSLAEdFZpk99b+Ik1oR21+7ZP5/iMHuQDc1MJRWdFfIjxCvVDQ==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/overlays": {
-            "version": "3.8.4",
-            "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.4.tgz",
-            "integrity": "sha512-pfgNlQnbF6RB/R2oSxyqAP3Uzz0xE/k5q4n5gUeCDNLjY5qxFHGE8xniZZ503nZYw6VBa9XMN1efDOKQyeiO0w==",
+            "version": "3.8.5",
+            "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.5.tgz",
+            "integrity": "sha512-4D7EEBQigD/m8hE68Ys8eloyyZFHHduqykSIgINJ0edmo0jygRbWlTwuhWFR9USgSP4dK54duN0Mvq0m4HEVEw==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/progress": {
-            "version": "3.5.1",
-            "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.1.tgz",
-            "integrity": "sha512-CqsUjczUK/SfuFzDcajBBaXRTW0D3G9S/yqLDj9e8E0ii+lGDLt1PHj24t1J7E88U2rVYqmM9VL4NHTt8o3IYA==",
+            "version": "3.5.2",
+            "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.2.tgz",
+            "integrity": "sha512-aQql22kusEudsHwDEzq6y/Mh29AM+ftRDKdS5E5g4MkCY5J4FMbOYco1T5So83NIvvG9+eKcxPoJUMjQQACAyA==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/provider": {
-            "version": "3.7.1",
-            "resolved": "https://registry.npmjs.org/@react-types/provider/-/provider-3.7.1.tgz",
-            "integrity": "sha512-WKwHwG5b0LkI570tbHCy4hBhT/E+OrdgIybScDxM713B2OwmMKKyaPKdV05SeoomP8oiPvkaAeXhLZa1ah7CYg==",
+            "version": "3.7.2",
+            "resolved": "https://registry.npmjs.org/@react-types/provider/-/provider-3.7.2.tgz",
+            "integrity": "sha512-nzxbfuh/ZJXt/blGAiRPkxi9jAUnnBkHcvljqdfizfLJlN5epaYYaTWNUSde27Oe1tAnpm2WDlLQo5+0C6C0FA==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/radio": {
-            "version": "3.7.0",
-            "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.7.0.tgz",
-            "integrity": "sha512-EcwGAXzSHjSqpFZha7xn3IUrhPiJLj+0yb1Ip0qPmhWz0VVw2DwrkY7q/jfaKroVvQhTo2TbfGhcsAQrt0fRqg==",
+            "version": "3.7.1",
+            "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.7.1.tgz",
+            "integrity": "sha512-Zut3rN1odIUBLZdijeyou+UqsLeRE76d9A+npykYGu29ndqmo3w4sLn8QeQcdj1IR71ZnG0pW2Y2BazhK5XrrQ==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/searchfield": {
-            "version": "3.5.2",
-            "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.5.2.tgz",
-            "integrity": "sha512-JAK2/Kg4Dr393FYfbRw0TlXKnJPX77sq1x/ZBxtO6p64+MuuIYKqw0i9PwDlo1PViw2QI5u8GFhKA2TgemY9uA==",
+            "version": "3.5.3",
+            "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.5.3.tgz",
+            "integrity": "sha512-gBfsT1WpY8UIb74yyYmnjiHpVasph2mdmGj9i8cGF2HUYwx5p+Fr85mtCGDph0uirvRoM5ExMp4snD+ueNAVCg==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0",
-                "@react-types/textfield": "^3.9.0"
+                "@react-types/shared": "^3.22.1",
+                "@react-types/textfield": "^3.9.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/select": {
-            "version": "3.9.1",
-            "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.1.tgz",
-            "integrity": "sha512-EpKSxrnh8HdZvOF9dHQkjivAcdIp1K81FaxmvosH8Lygqh0iYXxAdZGtKLMyBoPI8YFhA+rotIzTcOqgCCnqWA==",
+            "version": "3.9.2",
+            "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.2.tgz",
+            "integrity": "sha512-fGFrunednY3Pq/BBwVOf87Fsuyo/SlevL0wFIE9OOl2V5NXVaTY7/7RYA8hIOHPzmvsMbndy419BEudiNGhv4A==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/shared": {
-            "version": "3.22.0",
-            "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.22.0.tgz",
-            "integrity": "sha512-yVOekZWbtSmmiThGEIARbBpnmUIuePFlLyctjvCbgJgGhz8JnEJOipLQ/a4anaWfzAgzSceQP8j/K+VOOePleA==",
+            "version": "3.22.1",
+            "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.22.1.tgz",
+            "integrity": "sha512-PCpa+Vo6BKnRMuOEzy5zAZ3/H5tnQg1e80khMhK2xys0j6ZqzkgQC+fHMNZ7VDFNLqqNMj/o0eVeSBDh2POjkw==",
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/slider": {
-            "version": "3.7.0",
-            "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.0.tgz",
-            "integrity": "sha512-uyQXUVFfqc9SPUW0LZLMan2n232F/OflRafiHXz9viLFa9tVOupVa7GhASRAoHojwkjoJ1LjFlPih7g5dOZ0/Q==",
+            "version": "3.7.1",
+            "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.1.tgz",
+            "integrity": "sha512-FKO3YZYdrBs00XbBW5acP+0L1cCdevl/uRJiXbnLpGysO5PrSFIRS7Wlv4M7ztf6gT7b1Ao4FNC9crbxBr6BzA==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/statuslight": {
-            "version": "3.3.6",
-            "resolved": "https://registry.npmjs.org/@react-types/statuslight/-/statuslight-3.3.6.tgz",
-            "integrity": "sha512-MB/CnsbaE6reOrnpowJfgkpeSNY0ZuqA6g/k8331a+TP2yIO6X0cUYyEGG8S/k9hFyFCMKlcmmm4pwMrX4sZtQ==",
+            "version": "3.3.7",
+            "resolved": "https://registry.npmjs.org/@react-types/statuslight/-/statuslight-3.3.7.tgz",
+            "integrity": "sha512-PFctvM8NJFENNWHydEK4pCMXKmjrHB2PJ/fdJ2Bi6ABRcTBXzi/qgUUdbeTG7STXlA+P2/xNgKtHheus8K+K3g==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/switch": {
-            "version": "3.5.0",
-            "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.0.tgz",
-            "integrity": "sha512-/wNmUGjk69bP6t5k2QkAdrNN5Eb9Rz4dOyp0pCPmoeE+5haW6sV5NmtkvWX1NSc4DQz1xL/a5b+A0vxPCP22Jw==",
+            "version": "3.5.1",
+            "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.1.tgz",
+            "integrity": "sha512-2LFEKMGeufqyYmeN/5dtkDkCPG6x9O4eu6aaBaJmPGon7C/l3yiFEgRue6oCUYc1HixR7Qlp0sPxk0tQeWzrSg==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/table": {
-            "version": "3.9.2",
-            "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.9.2.tgz",
-            "integrity": "sha512-brw5JUANOzBa2rYNpN8AIl9nDZ9RwRZC6G/wTM/JhtirjC1S42oCtf8Ap5rWJBdmMG/5KOfcGNcAl/huyqb3gg==",
+            "version": "3.9.3",
+            "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.9.3.tgz",
+            "integrity": "sha512-Hs/pMbxJdga2zBol4H5pV1FVIiRjCuSTXst6idJjkctanTexR4xkyrtBwl+rdLNoGwQ2pGii49vgklc5bFK7zA==",
             "dependencies": {
-                "@react-types/grid": "^3.2.3",
-                "@react-types/shared": "^3.22.0"
+                "@react-types/grid": "^3.2.4",
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/tabs": {
-            "version": "3.3.4",
-            "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.4.tgz",
-            "integrity": "sha512-4mCTtFrwMRypyGTZCvNYVT9CkknexO/UYvqwDm2jMYb8JgjRvxnomu776Yh7uyiYKWyql2upm20jqasEOm620w==",
+            "version": "3.3.5",
+            "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.5.tgz",
+            "integrity": "sha512-6NTSZBOWekCtApdZrhu5tHhE/8q52oVohQN+J5T7shAXd6ZAtu8PABVR/nH4BWucc8FL0OUajRqunqzQMU13gA==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/text": {
-            "version": "3.3.6",
-            "resolved": "https://registry.npmjs.org/@react-types/text/-/text-3.3.6.tgz",
-            "integrity": "sha512-cO3IQ/DQ/xUGGskJ8/zCLkbzvrjlQbRnrJl95BEGs97CmiN+zqGoCqvDhjWEbuPRtfGXJ27CYZDC2oVZetUG4w==",
+            "version": "3.3.7",
+            "resolved": "https://registry.npmjs.org/@react-types/text/-/text-3.3.7.tgz",
+            "integrity": "sha512-URkJHS314ppyq6JjMPZbg/P4j9vey0H/Lc2+YB96qIcebBKy8iNN0IlwRsLFXimlGDp7dgn6tv+51bdJh+CRCQ==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/textfield": {
-            "version": "3.9.0",
-            "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.0.tgz",
-            "integrity": "sha512-D/DiwzsfkwlAg3uv8hoIfwju+zhB/hWDEdTvxQbPkntDr0kmN/QfI17NMSzbOBCInC4ABX87ViXLGxr940ykGA==",
+            "version": "3.9.1",
+            "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.1.tgz",
+            "integrity": "sha512-JBHY9M2CkL6xFaGSfWmUJVu3tEK09FaeB1dU3IEh6P41xxbFnPakYHSSAdnwMXBtXPoSHIVsUBickW/pjgfe5g==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/tooltip": {
-            "version": "3.4.6",
-            "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.6.tgz",
-            "integrity": "sha512-RaZewdER7ZcsNL99RhVHs8kSLyzIBkwc0W6eFZrxST2MD9J5GzkVWRhIiqtFOd5U1aYnxdJ6woq72Ef+le6Vfw==",
+            "version": "3.4.7",
+            "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.7.tgz",
+            "integrity": "sha512-rV4HZRQxLRNhe24yATOxnFQtGRUmsR7mqxMupXCmd1vrw8h+rdKlQv1zW2q8nALAKNmnRXZJHxYQ1SFzb98fgg==",
             "dependencies": {
-                "@react-types/overlays": "^3.8.4",
-                "@react-types/shared": "^3.22.0"
+                "@react-types/overlays": "^3.8.5",
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/view": {
-            "version": "3.4.6",
-            "resolved": "https://registry.npmjs.org/@react-types/view/-/view-3.4.6.tgz",
-            "integrity": "sha512-GAdvvabJAYrVCgOUsZp8KkmNLfkKnDmoMNmwCN9I2OnSS+5JyjTrgNIOiznMjDEqhXTbaefcsVofoUfTYXjtyQ==",
+            "version": "3.4.7",
+            "resolved": "https://registry.npmjs.org/@react-types/view/-/view-3.4.7.tgz",
+            "integrity": "sha512-AcgLrlaZkCXH+pD4I7pTPB52Rstg1M+V2yKPP29lnqg/rOjsqLjN/gLLy/EBi97cQ+TbDbg0854vcxAKs6qclg==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
             }
         },
         "node_modules/@react-types/well": {
-            "version": "3.3.6",
-            "resolved": "https://registry.npmjs.org/@react-types/well/-/well-3.3.6.tgz",
-            "integrity": "sha512-NX4+bMmNYrbjllKR9Xxg0YHNWrscHzZQmcdYiM/Z8qZ1TNVPhXeLmKxCDamlmUSZudCqwui4q5xwzuUyrRRA6w==",
+            "version": "3.3.7",
+            "resolved": "https://registry.npmjs.org/@react-types/well/-/well-3.3.7.tgz",
+            "integrity": "sha512-BaZ4utlEeweD8+mAYdqwq2bS8aDrXqi4xFPdfqZpHcpbSJjmGBCCS+GU2y/N2Yl1aODu5l0+gcrvxxr63bV+GA==",
             "dependencies": {
-                "@react-types/shared": "^3.22.0"
+                "@react-types/shared": "^3.22.1"
             },
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
@@ -6793,12 +6781,12 @@
             "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
         },
         "node_modules/@spectrum-icons/ui": {
-            "version": "3.6.4",
-            "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.6.4.tgz",
-            "integrity": "sha512-ojjICGgVaBeMKbeMB9/KCAs7l2ToJlNrJUVljkLv2Os6fukGHsAgVgO6wyw9diUIZGgentpx441+CQLooi9J6w==",
+            "version": "3.6.5",
+            "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.6.5.tgz",
+            "integrity": "sha512-L1QISmlzoA4xuBdMpWT2vkR7NDxuROjSwC5BxS8R2SAZR4oKs0dPfODaw2uju6D/xqJIqVrSM6yQDhV51lPKyA==",
             "dependencies": {
                 "@adobe/react-spectrum-ui": "1.2.0",
-                "@react-spectrum/icon": "^3.7.10",
+                "@react-spectrum/icon": "^3.7.11",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -6807,12 +6795,12 @@
             }
         },
         "node_modules/@spectrum-icons/workflow": {
-            "version": "4.2.9",
-            "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.2.9.tgz",
-            "integrity": "sha512-JdDzhnI7ASToodB1V5iy/CZNNHXxE7fwaPCS4+BpdwoibowgK5c1tnu1nHhzMHilw94UosYQjPbf3zzjSSYbjw==",
+            "version": "4.2.10",
+            "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.2.10.tgz",
+            "integrity": "sha512-CaDYaGMe2bYDozzHztrgEy0tljQWn4OBE9hJC2fAM5cMTve4viiWhcmHYYWFv3MZQyavHy1UwCL1jlXg7bK3PA==",
             "dependencies": {
                 "@adobe/react-spectrum-workflow": "2.3.4",
-                "@react-spectrum/icon": "^3.7.10",
+                "@react-spectrum/icon": "^3.7.11",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
@@ -9112,9 +9100,9 @@
             "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g=="
         },
         "node_modules/@types/node": {
-            "version": "20.11.18",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.18.tgz",
-            "integrity": "sha512-ABT5VWnnYneSBcNWYSCuR05M826RoMyMSGiFivXGx6ZUIsXb9vn4643IEwkg2zbEOSgAiSogtapN2fgc4mAPlw==",
+            "version": "20.11.20",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz",
+            "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==",
             "dependencies": {
                 "undici-types": "~5.26.4"
             }
@@ -9249,9 +9237,9 @@
             }
         },
         "node_modules/@types/react": {
-            "version": "18.2.55",
-            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.55.tgz",
-            "integrity": "sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==",
+            "version": "18.2.57",
+            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.57.tgz",
+            "integrity": "sha512-ZvQsktJgSYrQiMirAN60y4O/LRevIV8hUzSOSNB6gfR3/o3wCBFQx3sPwIYtuDMeiVgsSS3UzCV26tEzgnfvQw==",
             "dependencies": {
                 "@types/prop-types": "*",
                 "@types/scheduler": "*",
@@ -10338,6 +10326,14 @@
                 "url": "https://github.com/sponsors/ljharb"
             }
         },
+        "node_modules/arrify": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+            "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
+            "engines": {
+                "node": ">=8"
+            }
+        },
         "node_modules/asap": {
             "version": "2.0.6",
             "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
@@ -10427,9 +10423,12 @@
             "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
         },
         "node_modules/available-typed-arrays": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz",
-            "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==",
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+            "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+            "dependencies": {
+                "possible-typed-array-names": "^1.0.0"
+            },
             "engines": {
                 "node": ">= 0.4"
             },
@@ -10825,9 +10824,9 @@
             "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
         },
         "node_modules/bootstrap": {
-            "version": "5.3.2",
-            "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz",
-            "integrity": "sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g==",
+            "version": "5.3.3",
+            "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz",
+            "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==",
             "funding": [
                 {
                     "type": "github",
@@ -14030,9 +14029,9 @@
             }
         },
         "node_modules/caniuse-lite": {
-            "version": "1.0.30001587",
-            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz",
-            "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==",
+            "version": "1.0.30001589",
+            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz",
+            "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==",
             "funding": [
                 {
                     "type": "opencollective",
@@ -15582,6 +15581,18 @@
                 }
             }
         },
+        "node_modules/decamelize": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+            "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
+            "dev": true,
+            "engines": {
+                "node": ">=10"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/sindresorhus"
+            }
+        },
         "node_modules/decimal.js": {
             "version": "10.4.3",
             "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
@@ -16054,9 +16065,9 @@
             }
         },
         "node_modules/dotenv": {
-            "version": "16.4.4",
-            "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz",
-            "integrity": "sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==",
+            "version": "16.4.5",
+            "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
+            "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
             "dev": true,
             "engines": {
                 "node": ">=12"
@@ -16112,9 +16123,9 @@
             "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
         },
         "node_modules/electron-to-chromium": {
-            "version": "1.4.670",
-            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.670.tgz",
-            "integrity": "sha512-hcijYOWjOtjKrKPtNA6tuLlA/bTLO3heFG8pQA6mLpq7dRydSWicXova5lyxDzp1iVJaYhK7J2OQlGE52KYn7A=="
+            "version": "1.4.680",
+            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz",
+            "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A=="
         },
         "node_modules/emoji-regex": {
             "version": "9.2.2",
@@ -16371,14 +16382,14 @@
             "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w=="
         },
         "node_modules/es-set-tostringtag": {
-            "version": "2.0.2",
-            "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
-            "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+            "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
             "dev": true,
             "dependencies": {
-                "get-intrinsic": "^1.2.2",
-                "has-tostringtag": "^1.0.0",
-                "hasown": "^2.0.0"
+                "get-intrinsic": "^1.2.4",
+                "has-tostringtag": "^1.0.2",
+                "hasown": "^2.0.1"
             },
             "engines": {
                 "node": ">= 0.4"
@@ -17959,18 +17970,6 @@
                 "node": ">=8"
             }
         },
-        "node_modules/eslint/node_modules/type-fest": {
-            "version": "0.20.2",
-            "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
-            "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-            "dev": true,
-            "engines": {
-                "node": ">=10"
-            },
-            "funding": {
-                "url": "https://github.com/sponsors/sindresorhus"
-            }
-        },
         "node_modules/espree": {
             "version": "9.6.1",
             "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
@@ -18069,6 +18068,11 @@
                 "node": ">=6"
             }
         },
+        "node_modules/eventemitter3": {
+            "version": "4.0.7",
+            "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+            "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+        },
         "node_modules/events": {
             "version": "3.3.0",
             "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
@@ -18366,7 +18370,8 @@
         "node_modules/fast-diff": {
             "version": "1.3.0",
             "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
-            "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="
+            "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
+            "dev": true
         },
         "node_modules/fast-equals": {
             "version": "4.0.3",
@@ -18733,9 +18738,9 @@
             }
         },
         "node_modules/flatted": {
-            "version": "3.2.9",
-            "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
-            "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
+            "version": "3.3.1",
+            "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+            "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
             "dev": true
         },
         "node_modules/flexlayout-react": {
@@ -19257,9 +19262,9 @@
             }
         },
         "node_modules/gaxios": {
-            "version": "6.2.0",
-            "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.2.0.tgz",
-            "integrity": "sha512-H6+bHeoEAU5D6XNc6mPKeN5dLZqEDs9Gpk6I+SZBEzK5So58JVrHPmevNi35fRl1J9Y5TaeLW0kYx3pCJ1U2mQ==",
+            "version": "6.3.0",
+            "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.3.0.tgz",
+            "integrity": "sha512-p+ggrQw3fBwH2F5N/PAI4k/G/y1art5OxKpb2J2chwNNHM4hHuAOtivjPuirMF4KNKwTTUal/lPfL2+7h2mEcg==",
             "dependencies": {
                 "extend": "^3.0.2",
                 "https-proxy-agent": "^7.0.1",
@@ -19282,9 +19287,9 @@
             }
         },
         "node_modules/gaxios/node_modules/https-proxy-agent": {
-            "version": "7.0.3",
-            "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.3.tgz",
-            "integrity": "sha512-kCnwztfX0KZJSLOBrcL0emLeFako55NWMovvyPP2AjsghNk9RB1yjSI+jVumPHYZsNXegNoqupSW9IY3afSH8w==",
+            "version": "7.0.4",
+            "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
+            "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
             "dependencies": {
                 "agent-base": "^7.0.2",
                 "debug": "4"
@@ -19794,9 +19799,9 @@
             }
         },
         "node_modules/has-proto": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
-            "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+            "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
             "engines": {
                 "node": ">= 0.4"
             },
@@ -20264,9 +20269,9 @@
             }
         },
         "node_modules/http-proxy-agent": {
-            "version": "7.0.1",
-            "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.1.tgz",
-            "integrity": "sha512-My1KCEPs6A0hb4qCVzYp8iEvA8j8YqcvXLZZH8C9OFuTYpYjHE7N2dtG3mRl1HMD4+VGXpF3XcDVcxGBT7yDZQ==",
+            "version": "7.0.2",
+            "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+            "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
             "dev": true,
             "dependencies": {
                 "agent-base": "^7.1.0",
@@ -20324,12 +20329,6 @@
                 "url": "https://github.com/sponsors/sindresorhus"
             }
         },
-        "node_modules/http-proxy/node_modules/eventemitter3": {
-            "version": "4.0.7",
-            "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
-            "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
-            "dev": true
-        },
         "node_modules/http-signature": {
             "version": "1.2.0",
             "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@@ -20404,14 +20403,6 @@
                 "npm": ">=5.3.0"
             }
         },
-        "node_modules/hyperdyperid": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz",
-            "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==",
-            "engines": {
-                "node": ">=10.18"
-            }
-        },
         "node_modules/i": {
             "version": "0.3.7",
             "resolved": "https://registry.npmjs.org/i/-/i-0.3.7.tgz",
@@ -21368,9 +21359,9 @@
             }
         },
         "node_modules/is-negative-zero": {
-            "version": "2.0.2",
-            "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
-            "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+            "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
             "dev": true,
             "engines": {
                 "node": ">= 0.4"
@@ -21411,6 +21402,17 @@
                 "node": ">=8"
             }
         },
+        "node_modules/is-plain-obj": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+            "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+            "engines": {
+                "node": ">=12"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/sindresorhus"
+            }
+        },
         "node_modules/is-plain-object": {
             "version": "2.0.4",
             "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -21458,12 +21460,15 @@
             }
         },
         "node_modules/is-shared-array-buffer": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
-            "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+            "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
             "dev": true,
             "dependencies": {
-                "call-bind": "^1.0.2"
+                "call-bind": "^1.0.7"
+            },
+            "engines": {
+                "node": ">= 0.4"
             },
             "funding": {
                 "url": "https://github.com/sponsors/ljharb"
@@ -21869,9 +21874,9 @@
             }
         },
         "node_modules/jsdom/node_modules/https-proxy-agent": {
-            "version": "7.0.3",
-            "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.3.tgz",
-            "integrity": "sha512-kCnwztfX0KZJSLOBrcL0emLeFako55NWMovvyPP2AjsghNk9RB1yjSI+jVumPHYZsNXegNoqupSW9IY3afSH8w==",
+            "version": "7.0.4",
+            "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
+            "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
             "dev": true,
             "dependencies": {
                 "agent-base": "^7.0.2",
@@ -22356,12 +22361,6 @@
             "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz",
             "integrity": "sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w=="
         },
-        "node_modules/lodash.clonedeep": {
-            "version": "4.5.0",
-            "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
-            "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
-            "peer": true
-        },
         "node_modules/lodash.debounce": {
             "version": "4.0.8",
             "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
@@ -22372,12 +22371,6 @@
             "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
             "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ=="
         },
-        "node_modules/lodash.isequal": {
-            "version": "4.5.0",
-            "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
-            "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
-            "peer": true
-        },
         "node_modules/lodash.merge": {
             "version": "4.6.2",
             "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
@@ -24011,9 +24004,9 @@
             }
         },
         "node_modules/mongoose": {
-            "version": "8.1.2",
-            "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.1.2.tgz",
-            "integrity": "sha512-5KMq7k6KmFCIB8/YMKMFsWdsdNkBwuARDRHDRpp5GKC78eT0LwHIaMEKo6gDUg3zBuMoy9OdcM/6f4dkW06C/A==",
+            "version": "8.2.0",
+            "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.2.0.tgz",
+            "integrity": "sha512-la93n6zCYRbPS+c5N9oTDAktvREy5OT9OCljp1Tah0y3+p8UPMTAoabWaLZMdzYruOtF9/9GRf6MasaZjiZP1A==",
             "dependencies": {
                 "bson": "^6.2.0",
                 "kareem": "2.5.1",
@@ -24101,14 +24094,6 @@
             "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
             "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
         },
-        "node_modules/multimatch/node_modules/arrify": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
-            "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
-            "engines": {
-                "node": ">=8"
-            }
-        },
         "node_modules/multimatch/node_modules/brace-expansion": {
             "version": "1.1.11",
             "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -24321,17 +24306,17 @@
             }
         },
         "node_modules/nodemailer": {
-            "version": "6.9.9",
-            "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.9.tgz",
-            "integrity": "sha512-dexTll8zqQoVJEZPwQAKzxxtFn0qTnjdQTchoU6Re9BUUGBJiOy3YMn/0ShTW6J5M0dfQ1NeDeRTTl4oIWgQMA==",
+            "version": "6.9.10",
+            "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.10.tgz",
+            "integrity": "sha512-qtoKfGFhvIFW5kLfrkw2R6Nm6Ur4LNUMykyqu6n9BRKJuyQrqEGwdXXUAbwWEKt33dlWUGXb7rzmJP/p4+O+CA==",
             "engines": {
                 "node": ">=6.0.0"
             }
         },
         "node_modules/nodemon": {
-            "version": "3.0.3",
-            "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.3.tgz",
-            "integrity": "sha512-7jH/NXbFPxVaMwmBCC2B9F/V6X1VkEdNgx3iu9jji8WxWcvhMWkmhNWhI5077zknOnZnBzba9hZP6bCPJLSReQ==",
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.0.tgz",
+            "integrity": "sha512-xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA==",
             "dependencies": {
                 "chokidar": "^3.5.2",
                 "debug": "^4",
@@ -27304,9 +27289,9 @@
             }
         },
         "node_modules/openai/node_modules/@types/node": {
-            "version": "18.19.16",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.16.tgz",
-            "integrity": "sha512-mjtrR7Wco9ZwcGBc1zre6fENlj9z42/+0W26lBGtGBTPiR3Zm9iZAaiPhxreG6magwGCILLVYwlQ48GjAaqM6w==",
+            "version": "18.19.18",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.18.tgz",
+            "integrity": "sha512-80CP7B8y4PzZF0GWx15/gVWRrB5y/bIjNI84NK3cmQJu0WZwvmj2WMA5LcofQFVfLqqCSp545+U2LsrVzX36Zg==",
             "dependencies": {
                 "undici-types": "~5.26.4"
             }
@@ -27483,9 +27468,9 @@
             "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA=="
         },
         "node_modules/parse-bmfont-xml": {
-            "version": "1.1.5",
-            "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.5.tgz",
-            "integrity": "sha512-wgM+ANC5G5Yu08/IEFMxr9x+PpHg+R8jf8U8q0P91TBDaTdjcf4IwupUiPwEcJJKNqSshC2tOkDQW3Q30s1efQ==",
+            "version": "1.1.6",
+            "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz",
+            "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==",
             "dependencies": {
                 "xml-parse-from-string": "^1.0.0",
                 "xml2js": "^0.5.0"
@@ -27845,7 +27830,8 @@
         "node_modules/phin": {
             "version": "2.9.3",
             "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz",
-            "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA=="
+            "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==",
+            "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."
         },
         "node_modules/picocolors": {
             "version": "1.0.0",
@@ -28006,6 +27992,14 @@
             "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
             "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg=="
         },
+        "node_modules/possible-typed-array-names": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+            "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+            "engines": {
+                "node": ">= 0.4"
+            }
+        },
         "node_modules/postcss": {
             "version": "8.4.35",
             "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
@@ -28319,9 +28313,9 @@
             }
         },
         "node_modules/prosemirror-view": {
-            "version": "1.32.7",
-            "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.32.7.tgz",
-            "integrity": "sha512-pvxiOoD4shW41X5bYDjRQk3DSG4fMqxh36yPMt7VYgU3dWRmqFzWJM/R6zeo1KtC8nyk717ZbQND3CC9VNeptw==",
+            "version": "1.33.1",
+            "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.1.tgz",
+            "integrity": "sha512-62qkYgSJIkwIMMCpuGuPzc52DiK1Iod6TWoIMxP4ja6BTD4yO8kCUL64PZ/WhH/dJ9fW0CDO39FhH1EMyhUFEg==",
             "dependencies": {
                 "prosemirror-model": "^1.16.0",
                 "prosemirror-state": "^1.0.0",
@@ -28582,20 +28576,6 @@
             "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz",
             "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw=="
         },
-        "node_modules/quill-delta": {
-            "version": "5.1.0",
-            "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-5.1.0.tgz",
-            "integrity": "sha512-X74oCeRI4/p0ucjb5Ma8adTXd9Scumz367kkMK5V/IatcX6A0vlgLgKbzXWy5nZmCGeNJm2oQX0d2Eqj+ZIlCA==",
-            "peer": true,
-            "dependencies": {
-                "fast-diff": "^1.3.0",
-                "lodash.clonedeep": "^4.5.0",
-                "lodash.isequal": "^4.5.0"
-            },
-            "engines": {
-                "node": ">= 12.0.0"
-            }
-        },
         "node_modules/random-bytes": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
@@ -28698,9 +28678,9 @@
             }
         },
         "node_modules/rc-util": {
-            "version": "5.38.1",
-            "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.38.1.tgz",
-            "integrity": "sha512-e4ZMs7q9XqwTuhIK7zBIVFltUtMSjphuPPQXHoHlzRzNdOwUxDejo0Zls5HYaJfRKNURcsS/ceKVULlhjBrxng==",
+            "version": "5.38.2",
+            "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.38.2.tgz",
+            "integrity": "sha512-yRGRPKyi84H7NkRSP6FzEIYBdUt4ufdsmXUZ7qM2H5qoByPax70NnGPkfo36N+UKUnUBj2f2Q2eUbwYMuAsIOQ==",
             "dependencies": {
                 "@babel/runtime": "^7.18.3",
                 "react-is": "^18.2.0"
@@ -28892,9 +28872,9 @@
             }
         },
         "node_modules/react-intersection-observer": {
-            "version": "9.8.0",
-            "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.8.0.tgz",
-            "integrity": "sha512-wXHvMQUsTagh3X0Z6jDtGkIXc3VVCd2tjDRYR9kII3GKrZr0XF0xtpfdamo2n8BSF+zzfeeBVOTjxZWpBp9X0g==",
+            "version": "9.8.1",
+            "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.8.1.tgz",
+            "integrity": "sha512-QzOFdROX8D8MH3wE3OVKH0f3mLjKTtEN1VX/rkNuECCff+aKky0pIjulDhr3Ewqj5el/L+MhBkM3ef0Tbt+qUQ==",
             "peerDependencies": {
                 "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0",
                 "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
@@ -29236,13 +29216,13 @@
             "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg=="
         },
         "node_modules/recharts": {
-            "version": "2.12.0",
-            "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.12.0.tgz",
-            "integrity": "sha512-rVNcdNQ5b7+40Ue7mcEKZJyEv+3SUk2bDEVvOyXPDXXVE7TU3lrvnJUgAvO36hSzhRP2DnAamKXvHLFIFOU0Ww==",
+            "version": "2.12.1",
+            "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.12.1.tgz",
+            "integrity": "sha512-35vUCEBPf+pM+iVgSgVTn86faKya5pc4JO6cYJL63qOK2zDEyzDn20Tdj+CDI/3z+VcpKyQ8ZBQ9OiQ+vuAbjg==",
             "dependencies": {
                 "clsx": "^2.0.0",
                 "eventemitter3": "^4.0.1",
-                "lodash": "^4.17.19",
+                "lodash": "^4.17.21",
                 "react-is": "^16.10.2",
                 "react-smooth": "^4.0.0",
                 "recharts-scale": "^0.4.4",
@@ -29265,11 +29245,6 @@
                 "decimal.js-light": "^2.4.1"
             }
         },
-        "node_modules/recharts/node_modules/eventemitter3": {
-            "version": "4.0.7",
-            "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
-            "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
-        },
         "node_modules/recharts/node_modules/react-is": {
             "version": "16.13.1",
             "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -30015,9 +29990,9 @@
             "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
         },
         "node_modules/sass": {
-            "version": "1.70.0",
-            "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz",
-            "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==",
+            "version": "1.71.1",
+            "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz",
+            "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==",
             "dependencies": {
                 "chokidar": ">=3.0.0 <4.0.0",
                 "immutable": "^4.0.0",
@@ -30368,13 +30343,14 @@
             }
         },
         "node_modules/set-function-name": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
-            "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+            "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
             "dependencies": {
-                "define-data-property": "^1.0.1",
+                "define-data-property": "^1.1.4",
+                "es-errors": "^1.3.0",
                 "functions-have-names": "^1.2.3",
-                "has-property-descriptors": "^1.0.0"
+                "has-property-descriptors": "^1.0.2"
             },
             "engines": {
                 "node": ">= 0.4"
@@ -30686,10 +30662,11 @@
             }
         },
         "node_modules/socket.io-adapter": {
-            "version": "2.5.2",
-            "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz",
-            "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==",
+            "version": "2.5.4",
+            "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz",
+            "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==",
             "dependencies": {
+                "debug": "~4.3.4",
                 "ws": "~8.11.0"
             }
         },
@@ -31012,9 +30989,9 @@
             "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
         },
         "node_modules/streamx": {
-            "version": "2.15.8",
-            "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.8.tgz",
-            "integrity": "sha512-6pwMeMY/SuISiRsuS8TeIrAzyFbG5gGPHFQsYjUr/pbBadaL1PCWmzKw+CHZSwainfvcF6Si6cVLq4XTEwswFQ==",
+            "version": "2.16.1",
+            "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz",
+            "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==",
             "dependencies": {
                 "fast-fifo": "^1.1.0",
                 "queue-tick": "^1.0.1"
@@ -31550,9 +31527,9 @@
             "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
         },
         "node_modules/terser": {
-            "version": "5.27.1",
-            "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.1.tgz",
-            "integrity": "sha512-29wAr6UU/oQpnTw5HoadwjUZnFQXGdOfj0LjZ4sVxzqwHh/QVkvr7m8y9WoR4iN3FRitVduTc6KdjcW38Npsug==",
+            "version": "5.27.2",
+            "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz",
+            "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==",
             "dependencies": {
                 "@jridgewell/source-map": "^0.3.3",
                 "acorn": "^8.8.2",
@@ -31632,25 +31609,13 @@
         "node_modules/text-table": {
             "version": "0.2.0",
             "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
-            "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
-            "dev": true
+            "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
         },
         "node_modules/textarea-caret": {
             "version": "3.1.0",
             "resolved": "https://registry.npmjs.org/textarea-caret/-/textarea-caret-3.1.0.tgz",
             "integrity": "sha512-cXAvzO9pP5CGa6NKx0WYHl+8CHKZs8byMkt3PCJBCmq2a34YA9pO1NrQET5pzeqnBjBdToF5No4rrmkDUgQC2Q=="
         },
-        "node_modules/thingies": {
-            "version": "1.16.0",
-            "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.16.0.tgz",
-            "integrity": "sha512-J23AVs11hSQxuJxvfQyMIaS9z1QpDxOCvMkL3ZxZl8/jmkgmnNGWrlyNxVz6Jbh0U6DuGmHqq6f7zUROfg/ncg==",
-            "engines": {
-                "node": ">=10.18"
-            },
-            "peerDependencies": {
-                "tslib": "^2"
-            }
-        },
         "node_modules/through": {
             "version": "2.3.8",
             "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
@@ -32479,6 +32444,18 @@
                 "node": ">= 0.8.0"
             }
         },
+        "node_modules/type-fest": {
+            "version": "0.20.2",
+            "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+            "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+            "dev": true,
+            "engines": {
+                "node": ">=10"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/sindresorhus"
+            }
+        },
         "node_modules/type-is": {
             "version": "1.6.18",
             "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -32492,12 +32469,12 @@
             }
         },
         "node_modules/typed-array-buffer": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz",
-            "integrity": "sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==",
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+            "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
             "dev": true,
             "dependencies": {
-                "call-bind": "^1.0.6",
+                "call-bind": "^1.0.7",
                 "es-errors": "^1.3.0",
                 "is-typed-array": "^1.1.13"
             },
@@ -32506,15 +32483,16 @@
             }
         },
         "node_modules/typed-array-byte-length": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
-            "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+            "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
             "dev": true,
             "dependencies": {
-                "call-bind": "^1.0.2",
+                "call-bind": "^1.0.7",
                 "for-each": "^0.3.3",
-                "has-proto": "^1.0.1",
-                "is-typed-array": "^1.1.10"
+                "gopd": "^1.0.1",
+                "has-proto": "^1.0.3",
+                "is-typed-array": "^1.1.13"
             },
             "engines": {
                 "node": ">= 0.4"
@@ -32524,16 +32502,17 @@
             }
         },
         "node_modules/typed-array-byte-offset": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
-            "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+            "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
             "dev": true,
             "dependencies": {
-                "available-typed-arrays": "^1.0.5",
-                "call-bind": "^1.0.2",
+                "available-typed-arrays": "^1.0.7",
+                "call-bind": "^1.0.7",
                 "for-each": "^0.3.3",
-                "has-proto": "^1.0.1",
-                "is-typed-array": "^1.1.10"
+                "gopd": "^1.0.1",
+                "has-proto": "^1.0.3",
+                "is-typed-array": "^1.1.13"
             },
             "engines": {
                 "node": ">= 0.4"
@@ -32543,14 +32522,20 @@
             }
         },
         "node_modules/typed-array-length": {
-            "version": "1.0.4",
-            "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
-            "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz",
+            "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==",
             "dev": true,
             "dependencies": {
-                "call-bind": "^1.0.2",
+                "call-bind": "^1.0.7",
                 "for-each": "^0.3.3",
-                "is-typed-array": "^1.1.9"
+                "gopd": "^1.0.1",
+                "has-proto": "^1.0.3",
+                "is-typed-array": "^1.1.13",
+                "possible-typed-array-names": "^1.0.0"
+            },
+            "engines": {
+                "node": ">= 0.4"
             },
             "funding": {
                 "url": "https://github.com/sponsors/ljharb"
@@ -32711,17 +32696,6 @@
                 "url": "https://opencollective.com/unified"
             }
         },
-        "node_modules/unified/node_modules/is-plain-obj": {
-            "version": "4.1.0",
-            "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
-            "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
-            "engines": {
-                "node": ">=12"
-            },
-            "funding": {
-                "url": "https://github.com/sponsors/sindresorhus"
-            }
-        },
         "node_modules/uninstall": {
             "version": "0.0.0",
             "resolved": "https://registry.npmjs.org/uninstall/-/uninstall-0.0.0.tgz",
@@ -33233,9 +33207,9 @@
             }
         },
         "node_modules/web-streams-polyfill": {
-            "version": "3.3.2",
-            "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz",
-            "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==",
+            "version": "3.3.3",
+            "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
+            "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
             "engines": {
                 "node": ">= 8"
             }
@@ -33249,9 +33223,9 @@
             }
         },
         "node_modules/webpack": {
-            "version": "5.90.1",
-            "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz",
-            "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==",
+            "version": "5.90.3",
+            "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz",
+            "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==",
             "dependencies": {
                 "@types/eslint-scope": "^3.7.3",
                 "@types/estree": "^1.0.5",
@@ -33392,49 +33366,12 @@
                 }
             }
         },
-        "node_modules/webpack-dev-middleware/node_modules/arg": {
-            "version": "5.0.2",
-            "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
-            "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
-        },
-        "node_modules/webpack-dev-middleware/node_modules/json-joy": {
-            "version": "11.28.0",
-            "resolved": "https://registry.npmjs.org/json-joy/-/json-joy-11.28.0.tgz",
-            "integrity": "sha512-WTq2tYD2r+0rUFId4gtUjwejV20pArh4q2WRJKxJdwLlPFHyW94HwwB2vUr5lUJTVkehhhWEVLwOUI0MSacNIw==",
-            "dependencies": {
-                "arg": "^5.0.2",
-                "hyperdyperid": "^1.2.0",
-                "thingies": "^1.14.1"
-            },
-            "bin": {
-                "jj": "bin/jj.js",
-                "json-pack": "bin/json-pack.js",
-                "json-pack-test": "bin/json-pack-test.js",
-                "json-patch": "bin/json-patch.js",
-                "json-patch-test": "bin/json-patch-test.js",
-                "json-pointer": "bin/json-pointer.js",
-                "json-pointer-test": "bin/json-pointer-test.js",
-                "json-unpack": "bin/json-unpack.js"
-            },
-            "engines": {
-                "node": ">=10.0"
-            },
-            "funding": {
-                "url": "https://github.com/sponsors/streamich"
-            },
-            "peerDependencies": {
-                "quill-delta": "^5",
-                "rxjs": "7",
-                "tslib": "2"
-            }
-        },
         "node_modules/webpack-dev-middleware/node_modules/memfs": {
-            "version": "4.7.0",
-            "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.7.0.tgz",
-            "integrity": "sha512-FGbf9Yz2gzXCUmpymkKnzAQOitriZQlIMtmnzb2LOcT0FTUdzL6AAwNGQrSOACx/UiW7XQsG65vrIA9+L01Edw==",
+            "version": "4.7.7",
+            "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.7.7.tgz",
+            "integrity": "sha512-x9qc6k88J/VVwnfTkJV8pRRswJ2156Rc4w5rciRqKceFDZ0y1MqsNL9pkg5sE0GOcDzZYbonreALhaHzg1siFw==",
             "dependencies": {
-                "json-joy": "^11.0.0",
-                "thingies": "^1.11.1"
+                "tslib": "^2.0.0"
             },
             "engines": {
                 "node": ">= 4.0.0"
@@ -33442,18 +33379,6 @@
             "funding": {
                 "type": "github",
                 "url": "https://github.com/sponsors/streamich"
-            },
-            "peerDependencies": {
-                "tslib": "2"
-            }
-        },
-        "node_modules/webpack-dev-middleware/node_modules/rxjs": {
-            "version": "7.8.1",
-            "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
-            "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
-            "peer": true,
-            "dependencies": {
-                "tslib": "^2.1.0"
             }
         },
         "node_modules/webpack-dev-server": {
@@ -34218,18 +34143,6 @@
                 "node": ">=10"
             }
         },
-        "node_modules/yargs-unparser/node_modules/decamelize": {
-            "version": "4.0.0",
-            "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
-            "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
-            "dev": true,
-            "engines": {
-                "node": ">=10"
-            },
-            "funding": {
-                "url": "https://github.com/sponsors/sindresorhus"
-            }
-        },
         "node_modules/yargs-unparser/node_modules/is-plain-obj": {
             "version": "2.1.0",
             "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index a69030019..3670382c5 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -37,7 +37,7 @@ import { GestureOverlay } from '../../GestureOverlay';
 import { CtrlKey } from '../../GlobalKeyHandler';
 import { ActiveInkWidth, InkingStroke, SetActiveInkColor, SetActiveInkWidth } from '../../InkingStroke';
 import { LightboxView } from '../../LightboxView';
-import { CollectionFreeFormDocumentView, CollectionFreeFormDocumentViewWrapper } from '../../nodes/CollectionFreeFormDocumentView';
+import { CollectionFreeFormDocumentView } from '../../nodes/CollectionFreeFormDocumentView';
 import { SchemaCSVPopUp } from '../../nodes/DataVizBox/SchemaCSVPopUp';
 import { DocumentView, OpenWhere } from '../../nodes/DocumentView';
 import { FieldViewProps, FocusViewOptions } from '../../nodes/FieldView';
@@ -1181,7 +1181,7 @@ export class CollectionFreeFormView extends CollectionSubView<Partial<collection
         const childLayout = entry.pair.layout;
         const childData = entry.pair.data;
         return (
-            <CollectionFreeFormDocumentViewWrapper
+            <CollectionFreeFormDocumentView
                 {...OmitKeys(entry, ['replica', 'pair']).omit}
                 key={childLayout[Id] + (entry.replica || '')}
                 Document={childLayout}
diff --git a/src/client/views/nodes/CollectionFreeFormDocumentView.tsx b/src/client/views/nodes/CollectionFreeFormDocumentView.tsx
index a0a64ab59..2800ea200 100644
--- a/src/client/views/nodes/CollectionFreeFormDocumentView.tsx
+++ b/src/client/views/nodes/CollectionFreeFormDocumentView.tsx
@@ -1,4 +1,4 @@
-import { action, computed, makeObservable, observable } from 'mobx';
+import { action, makeObservable, observable } from 'mobx';
 import { observer } from 'mobx-react';
 import * as React from 'react';
 import { OmitKeys, numberRange } from '../../../Utils';
@@ -12,14 +12,16 @@ import { DocumentManager } from '../../util/DocumentManager';
 import { ScriptingGlobals } from '../../util/ScriptingGlobals';
 import { SelectionManager } from '../../util/SelectionManager';
 import { DocComponent } from '../DocComponent';
-import { ObservableReactComponent } from '../ObservableReactComponent';
 import { StyleProp } from '../StyleProvider';
 import { CollectionFreeFormView } from '../collections/collectionFreeForm/CollectionFreeFormView';
 import './CollectionFreeFormDocumentView.scss';
 import { DocumentView, DocumentViewProps, OpenWhere } from './DocumentView';
 import { FieldViewProps } from './FieldView';
 
-export interface CollectionFreeFormDocumentViewWrapperProps extends DocumentViewProps {
+/// Ugh, typescript has no run-time way of iterating through the keys of an interface.  so we need
+/// manaully keep this list of keys in synch wih the fields of the freeFormProps interface
+const freeFormPropsKeys = ['x', 'y', 'z', 'zIndex', 'rotation', 'opacity', 'backgroundColor', 'color', 'highlight', 'width', 'height', 'autoDim', 'transition'];
+interface freeFormProps {
     x: number;
     y: number;
     z: number;
@@ -33,102 +35,17 @@ export interface CollectionFreeFormDocumentViewWrapperProps extends DocumentView
     opacity?: number;
     highlight?: boolean;
     transition?: string;
-    RenderCutoffProvider: (doc: Doc) => boolean;
-    CollectionFreeFormView: CollectionFreeFormView;
-}
-@observer
-export class CollectionFreeFormDocumentViewWrapper extends ObservableReactComponent<CollectionFreeFormDocumentViewWrapperProps> {
-    constructor(props: CollectionFreeFormDocumentViewWrapperProps) {
-        super(props);
-        makeObservable(this);
-    }
-    @observable X = this.props.x;
-    @observable Y = this.props.y;
-    @observable Z = this.props.z;
-    @observable ZIndex = this.props.zIndex;
-    @observable Rotation = this.props.rotation;
-    @observable Opacity = this.props.opacity;
-    @observable BackgroundColor = this.props.backgroundColor;
-    @observable Color = this.props.color;
-    @observable Highlight = this.props.highlight;
-    @observable Width = this.props.width;
-    @observable Height = this.props.height;
-    @observable AutoDim = this.props.autoDim;
-    @observable Transition = this.props.transition;
-    CollectionFreeFormView = this.props.CollectionFreeFormView; // needed for type checking
-    RenderCutoffProvider = this.props.RenderCutoffProvider; // needed for type checking
-
-    get Document() {
-        return this._props.Document;
-    }
-    @computed get WrapperKeys() {
-        return Object.keys(this).filter(key => key.startsWith('w_')).map(key => key.replace('w_', ''))
-                  .map(key => ({upper:key, lower:key[0].toLowerCase() + key.substring(1)})); // prettier-ignore
-    }
-
-    // wrapper functions around prop fields that have been converted to observables to keep 'props' from ever changing.
-    // this way, downstream code only invalidates when it uses a specific prop, not when any prop changes
-    w_X = ()               => this.X; // prettier-ignore
-    w_Y = ()               => this.Y; // prettier-ignore
-    w_Z = ()               => this.Z; // prettier-ignore
-    w_ZIndex = ()          => this.ZIndex ?? NumCast(this.Document.zIndex); // prettier-ignore
-    w_Rotation = ()        => this.Rotation ?? NumCast(this.Document._rotation); // prettier-ignore
-    w_Opacity = ()         => this.Opacity; // prettier-ignore
-    w_BackgroundColor = () => this.BackgroundColor ?? Cast(this.Document._backgroundColor, 'string', null); // prettier-ignore
-    w_Color = ()           => this.Color ?? Cast(this.Document._color, 'string', null); // prettier-ignore
-    w_Highlight = ()       => this.Highlight; // prettier-ignore
-    w_Width = ()           => this.Width; // prettier-ignore
-    w_Height = ()          => this.Height; // prettier-ignore
-    w_AutoDim = ()         => this.AutoDim; // prettier-ignore
-    w_Transition = ()      => this.Transition; // prettier-ignore
-
-    PanelWidth = ()        => this._props.autoDim ? this._props.PanelWidth?.() : this.Width; // prettier-ignore
-    PanelHeight = ()       => this._props.autoDim ? this._props.PanelHeight?.() : this.Height; // prettier-ignore
-
-    componentDidUpdate(prevProps: Readonly<React.PropsWithChildren<CollectionFreeFormDocumentViewWrapperProps & { fieldKey: string }>>) {
-        super.componentDidUpdate(prevProps);
-        this.WrapperKeys.forEach(action(keys => ((this as any)[keys.upper] = (this.props as any)[keys.lower])));
-    }
-    render() {
-        const layoutProps = this.WrapperKeys.reduce((val, keys) => [(val['w_' + keys.upper] = (this as any)['w_' + keys.upper]), val][1], {} as { [key: string]: Function });
-        return (
-            <CollectionFreeFormDocumentView
-                {...OmitKeys(this._props, this.WrapperKeys.map(keys => keys.lower) ).omit} // prettier-ignore
-                {...layoutProps}
-                PanelWidth={this.PanelWidth}
-                PanelHeight={this.PanelHeight}
-            />
-        );
-    }
 }
 export interface CollectionFreeFormDocumentViewProps extends DocumentViewProps {
-    w_X: () => number;
-    w_Y: () => number;
-    w_Z: () => number;
-    w_ZIndex?: () => number;
-    w_Rotation?: () => number;
-    w_Color: () => string;
-    w_BackgroundColor: () => string;
-    w_Opacity: () => number | undefined;
-    w_Highlight: () => boolean | undefined;
-    w_Transition: () => string | undefined;
-    w_Width: () => number;
-    w_Height: () => number;
-    PanelWidth: () => number;
-    PanelHeight: () => number;
     RenderCutoffProvider: (doc: Doc) => boolean;
     CollectionFreeFormView: CollectionFreeFormView;
 }
-
 @observer
-export class CollectionFreeFormDocumentView extends DocComponent<CollectionFreeFormDocumentViewProps>() {
-    constructor(props: CollectionFreeFormDocumentViewProps) {
-        super(props);
-        makeObservable(this);
-    }
+export class CollectionFreeFormDocumentView extends DocComponent<CollectionFreeFormDocumentViewProps & freeFormProps>() {
     get displayName() { // this makes mobx trace() statements more descriptive
         return 'CollectionFreeFormDocumentView(' + this.Document.title + ')';
     } // prettier-ignore
+    public static CollectionFreeFormDocViewClassName = 'collectionFreeFormDocumentView-container';
     public static animFields: { key: string; val?: number }[] = [
         { key: 'x' },
         { key: 'y' },
@@ -145,16 +62,53 @@ export class CollectionFreeFormDocumentView extends DocComponent<CollectionFreeF
     public static animStringFields = ['backgroundColor', 'color', 'fillColor']; // fields that are configured to be animatable using animation frames
     public static animDataFields = (doc: Doc) => (Doc.LayoutFieldKey(doc) ? [Doc.LayoutFieldKey(doc)] : []); // fields that are configured to be animatable using animation frames
 
-    get CollectionFreeFormView() {
-        return this._props.CollectionFreeFormView;
+    constructor(props: CollectionFreeFormDocumentViewProps & freeFormProps) {
+        super(props);
+        makeObservable(this);
+    }
+
+    get WrapperKeys() {
+        // each of these keys is set by the CollectionView and passed via props. however, if any one of these props changes
+        // (or any other prop), then it's as if they all change.
+        // Anything that accesses these props will then invalidate unncessarily.
+        // To avoid this, we copy these prop values into local observables.  Now when 'props' changes, nothing invalidates.
+        // Instead, we copy each values into its observable which ohnly triggers invalidations if the new value is different
+        // than the old value, and then only things that access that observable will invalidate.
+        return freeFormPropsKeys
+                  .map(key => ({upper:key[0].toUpperCase() + key.substring(1), lower:key})); // prettier-ignore
+    }
+    @observable X = this.props.x;
+    @observable Y = this.props.y;
+    @observable Z = this.props.z;
+    @observable ZIndex = this.props.zIndex;
+    @observable Rotation = this.props.rotation;
+    @observable Opacity = this.props.opacity;
+    @observable BackgroundColor = this.props.backgroundColor;
+    @observable Color = this.props.color;
+    @observable Highlight = this.props.highlight;
+    @observable Width = this.props.width;
+    @observable Height = this.props.height;
+    @observable AutoDim = this.props.autoDim;
+    @observable Transition = this.props.transition;
+
+    componentDidUpdate(prevProps: Readonly<React.PropsWithChildren<CollectionFreeFormDocumentViewProps & freeFormProps>>) {
+        super.componentDidUpdate(prevProps);
+        this.WrapperKeys.forEach(action(keys => ((this as any)[keys.upper] = (this.props as any)[keys.lower])));
     }
 
+    CollectionFreeFormView = this.props.CollectionFreeFormView; // needed for type checking
+    // this way, downstream code only invalidates when it uses a specific prop, not when any prop changes
+    DataTransition = ()  => this._props.transition; // prettier-ignore
+    RenderCutoffProvider = this.props.RenderCutoffProvider; // needed for type checking
+    PanelWidth = ()        => this._props.autoDim ? this._props.PanelWidth?.() : this.Width; // prettier-ignore
+    PanelHeight = ()       => this._props.autoDim ? this._props.PanelHeight?.() : this.Height; // prettier-ignore
+
     styleProvider = (doc: Doc | undefined, props: Opt<FieldViewProps>, property: string) => {
         if (doc === this.layoutDoc) {
             switch (property) {
-                case StyleProp.Opacity:         return this._props.w_Opacity(); // only change the opacity for this specific document, not its children
-                case StyleProp.BackgroundColor: return this._props.w_BackgroundColor();
-                case StyleProp.Color:           return this._props.w_Color();
+                case StyleProp.Opacity:         return this.Opacity; // only change the opacity for this specific document, not its children
+                case StyleProp.BackgroundColor: return this.BackgroundColor;
+                case StyleProp.Color:           return this.Color;
             } // prettier-ignore
         }
         return this._props.styleProvider?.(doc, props, property);
@@ -253,14 +207,14 @@ export class CollectionFreeFormDocumentView extends DocComponent<CollectionFreeF
 
     nudge = (x: number, y: number) => {
         const [locX, locY] = this._props.ScreenToLocalTransform().transformDirection(x, y);
-        this.Document.x = this._props.w_X() + locX;
-        this.Document.y = this._props.w_Y() + locY;
+        this.Document.x = this.X + locX;
+        this.Document.y = this.Y + locY;
     };
     screenToLocalTransform = () =>
         this._props
             .ScreenToLocalTransform()
-            .translate(-this._props.w_X(), -this._props.w_Y())
-            .rotateDeg(-(this._props.w_Rotation?.() || 0));
+            .translate(-this.X, -this.Y)
+            .rotateDeg(-(this.Rotation || 0));
     returnThis = () => this;
 
     /// this indicates whether the doc view is activated because of its relationshop to a group
@@ -273,27 +227,26 @@ export class CollectionFreeFormDocumentView extends DocComponent<CollectionFreeF
         const isGroup = this.dataDoc.isGroup && (!this.layoutDoc.backgroundColor || this.layoutDoc.backgroundColor === 'transparent');
         return isGroup ? (this._props.isDocumentActive?.() ? 'group' : this._props.isGroupActive?.() ? 'child' : 'inactive') : this._props.isGroupActive?.() ? 'child' : undefined;
     };
-    public static CollectionFreeFormDocViewClassName = 'collectionFreeFormDocumentView-container';
     render() {
         TraceMobx();
-        const passOnProps = OmitKeys(this._props, Object.keys(this._props).filter(key => key.startsWith('w_'))).omit; // prettier-ignore
+
         return (
             <div
                 className={CollectionFreeFormDocumentView.CollectionFreeFormDocViewClassName}
                 style={{
-                    width: this._props.PanelWidth(),
-                    height: this._props.PanelHeight(),
-                    transform: `translate(${this._props.w_X()}px, ${this._props.w_Y()}px) rotate(${NumCast(this._props.w_Rotation?.())}deg)`,
-                    transition: this._props.w_Transition?.() || StrCast(this.Document.dataTransition),
-                    zIndex: this._props.w_ZIndex?.(),
-                    display: this._props.w_Width?.() ? undefined : 'none',
+                    width: this.PanelWidth(),
+                    height: this.PanelHeight(),
+                    transform: `translate(${this.X}px, ${this.Y}px) rotate(${NumCast(this.Rotation)}deg)`,
+                    transition: this.Transition || StrCast(this.Document.dataTransition),
+                    zIndex: this.ZIndex,
+                    display: this.Width ? undefined : 'none',
                 }}>
-                {this._props.RenderCutoffProvider(this.Document) ? (
-                    <div style={{ position: 'absolute', width: this._props.PanelWidth(), height: this._props.PanelHeight(), background: 'lightGreen' }} />
+                {this.RenderCutoffProvider(this.Document) ? (
+                    <div style={{ position: 'absolute', width: this.PanelWidth(), height: this.PanelHeight(), background: 'lightGreen' }} />
                 ) : (
                     <DocumentView
-                        {...passOnProps}
-                        DataTransition={this._props.w_Transition}
+                        {...OmitKeys(this._props,this.WrapperKeys.map(val => val.lower)).omit} // prettier-ignore
+                        DataTransition={this.DataTransition}
                         CollectionFreeFormDocumentView={this.returnThis}
                         styleProvider={this.styleProvider}
                         ScreenToLocalTransform={this.screenToLocalTransform}
-- 
cgit v1.2.3-70-g09d2


From 27306bd0ae259241182d90cc62225609dfc8da74 Mon Sep 17 00:00:00 2001
From: geireann <geireann.lindfield@gmail.com>
Date: Sun, 25 Feb 2024 12:51:26 -0500
Subject: fixed conversion of doc to schema cells to allow number 0 to be
 converted to a string.

---
 .../views/collections/collectionFreeForm/CollectionFreeFormView.tsx   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx')

diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 3670382c5..50a9feff8 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1962,8 +1962,8 @@ ScriptingGlobals.add(function datavizFromSchema(doc: Doc) {
         for (let i = 0; i < children.length; i++) {
             let eachRow = [];
             for (let j = 0; j < keys.length; j++) {
-                var cell = children[i][keys[j]];
-                if (cell && (cell as string)) cell = cell.toString().replace(/\,/g, '');
+                var cell = children[i][keys[j]]?.toString();
+                if (cell) cell = cell.toString().replace(/\,/g, '');
                 eachRow.push(cell);
             }
             csvRows.push(eachRow);
-- 
cgit v1.2.3-70-g09d2


From d99f64efe9e69f2159f1ad8f851b24533a996ba5 Mon Sep 17 00:00:00 2001
From: bobzel <zzzman@gmail.com>
Date: Mon, 26 Feb 2024 12:57:48 -0500
Subject: fixed some string types to be enumerations for dropAction.  fixed bug
 in golden layout dragging where a stack's tabs could disappear.

---
 src/client/documents/Documents.ts                  | 40 ++++++++++------
 src/client/goldenLayout.js                         |  2 +-
 src/client/util/CurrentUserUtils.ts                | 44 +++++++++---------
 src/client/util/DragManager.ts                     | 54 +++++++++++++++-------
 src/client/views/MainView.tsx                      |  6 +--
 src/client/views/collections/CollectionMenu.tsx    |  4 +-
 .../views/collections/CollectionPileView.tsx       |  3 +-
 .../views/collections/CollectionTreeView.tsx       | 16 +++++--
 src/client/views/collections/TreeView.tsx          |  4 +-
 .../collectionFreeForm/CollectionFreeFormView.tsx  |  2 +-
 .../collections/collectionFreeForm/MarqueeView.tsx |  9 +++-
 .../collectionSchema/CollectionSchemaView.tsx      |  4 +-
 .../collectionSchema/SchemaTableCell.tsx           |  7 +--
 src/client/views/nodes/DocumentView.tsx            |  2 +-
 src/client/views/nodes/trails/PresBox.tsx          |  5 +-
 src/client/views/topbar/TopBar.tsx                 |  3 +-
 src/fields/documentSchemas.ts                      |  6 +--
 17 files changed, 129 insertions(+), 82 deletions(-)

(limited to 'src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx')

diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts
index 2d2f5fe4a..8a13395c3 100644
--- a/src/client/documents/Documents.ts
+++ b/src/client/documents/Documents.ts
@@ -68,10 +68,20 @@ class EmptyBox {
         return '';
     }
 }
+
+export enum FInfoFieldType {
+    string,
+    boolean,
+    number,
+    Doc,
+    enumeration,
+    date,
+    list,
+}
 export class FInfo {
     description: string = '';
     readOnly: boolean = false;
-    fieldType?: string = '';
+    fieldType?: FInfoFieldType;
     values?: Field[];
 
     filterable?: boolean = true;
@@ -84,7 +94,7 @@ export class FInfo {
     searchable = () => true;
 }
 class BoolInfo extends FInfo {
-    fieldType? = 'boolean';
+    fieldType? = FInfoFieldType.boolean;
     values?: boolean[] = [true, false];
     constructor(d: string, filterable?: boolean) {
         super(d);
@@ -93,7 +103,7 @@ class BoolInfo extends FInfo {
     override searchable = () => false;
 }
 class NumInfo extends FInfo {
-    fieldType? = 'number';
+    fieldType? = FInfoFieldType.number;
     values?: number[] = [];
     constructor(d: string, filterable?: boolean, readOnly?: boolean, values?: number[]) {
         super(d, readOnly);
@@ -103,7 +113,7 @@ class NumInfo extends FInfo {
     override searchable = () => false;
 }
 class StrInfo extends FInfo {
-    fieldType? = 'string';
+    fieldType? = FInfoFieldType.string;
     values?: string[] = [];
     constructor(d: string, filterable?: boolean, readOnly?: boolean, values?: string[]) {
         super(d, readOnly);
@@ -112,7 +122,7 @@ class StrInfo extends FInfo {
     }
 }
 class DocInfo extends FInfo {
-    fieldType? = 'Doc';
+    fieldType? = FInfoFieldType.Doc;
     values?: Doc[] = [];
     constructor(d: string, filterable?: boolean, values?: Doc[]) {
         super(d, true);
@@ -122,45 +132,45 @@ class DocInfo extends FInfo {
     override searchable = () => false;
 }
 class DimInfo extends FInfo {
-    fieldType? = 'enumeration';
+    fieldType? = FInfoFieldType.enumeration;
     values? = [DimUnit.Pixel, DimUnit.Ratio];
     readOnly = false;
     filterable = false;
     override searchable = () => false;
 }
 class PEInfo extends FInfo {
-    fieldType? = 'enumeration';
+    fieldType? = FInfoFieldType.enumeration;
     values? = ['all', 'none'];
     readOnly = false;
     filterable = false;
     override searchable = () => false;
 }
 class DAInfo extends FInfo {
-    fieldType? = 'enumeration';
-    values? = ['embed', 'copy', 'move', 'same', 'proto', 'none'];
+    fieldType? = FInfoFieldType.enumeration;
+    values? = ['embed', 'copy', 'move', 'same', 'add', 'inSame', 'proto'];
     readOnly = false;
     filterable = false;
     override searchable = () => false;
 }
 class CTypeInfo extends FInfo {
-    fieldType? = 'enumeration';
+    fieldType? = FInfoFieldType.enumeration;
     values? = Array.from(Object.keys(CollectionViewType));
     readOnly = false;
     filterable = false;
     override searchable = () => false;
 }
 class DTypeInfo extends FInfo {
-    fieldType? = 'enumeration';
+    fieldType? = FInfoFieldType.enumeration;
     values? = Array.from(Object.keys(DocumentType));
     override searchable = () => false;
 }
 class DateInfo extends FInfo {
-    fieldType? = 'date';
+    fieldType? = FInfoFieldType.date;
     values?: DateField[] = [];
     filterable = true;
 }
 class ListInfo extends FInfo {
-    fieldType? = 'list';
+    fieldType? = FInfoFieldType.list;
     values?: List<any>[] = [];
 }
 type BOOLt = BoolInfo | boolean;
@@ -728,7 +738,7 @@ export namespace Docs {
                 {
                     data: '',
                     layout: { view: ComparisonBox, dataField: defaultDataKey },
-                    options: { backgroundColor: 'gray', dropAction: 'move', waitForDoubleClickToClick: 'always', layout_reflowHorizontal: true, layout_reflowVertical: true, layout_nativeDimEditable: true, systemIcon: 'BsLayoutSplit' },
+                    options: { backgroundColor: 'gray', dropAction: dropActionType.move, waitForDoubleClickToClick: 'always', layout_reflowHorizontal: true, layout_reflowVertical: true, layout_nativeDimEditable: true, systemIcon: 'BsLayoutSplit' },
                 },
             ],
             [
@@ -1182,7 +1192,7 @@ export namespace Docs {
             return InstanceFromProto(
                 Prototypes.get(DocumentType.COL),
                 new List(documents),
-                { backgroundColor: 'transparent', dropAction: 'move', _forceActive: true, _freeform_noZoom: true, _freeform_noAutoPan: true, ...options, _type_collection: CollectionViewType.Pile },
+                { backgroundColor: 'transparent', dropAction: dropActionType.move, _forceActive: true, _freeform_noZoom: true, _freeform_noAutoPan: true, ...options, _type_collection: CollectionViewType.Pile },
                 id
             );
         }
diff --git a/src/client/goldenLayout.js b/src/client/goldenLayout.js
index 2b94d35ee..cb1dfd76a 100644
--- a/src/client/goldenLayout.js
+++ b/src/client/goldenLayout.js
@@ -4727,7 +4727,7 @@
                  */
             } else {
                 type = isVertical ? 'column' : 'row';
-                if (this.parent.contentItems.length === 1) {
+                if (this.parent.contentItems.length === 1 && this.contentItems.length === 1) {
                     let grandparent = this.parent.parent;
                     let correctRowOrCol = this.layoutManager.createContentItem({ type: type }, this);
                     grandparent.replaceChild(this.parent, correctRowOrCol);
diff --git a/src/client/util/CurrentUserUtils.ts b/src/client/util/CurrentUserUtils.ts
index 714e33d25..d396ba815 100644
--- a/src/client/util/CurrentUserUtils.ts
+++ b/src/client/util/CurrentUserUtils.ts
@@ -14,7 +14,7 @@ import { SetCachedGroups, SharingPermissions } from "../../fields/util";
 import { GestureUtils } from "../../pen-gestures/GestureUtils";
 import { DocServer } from "../DocServer";
 import { CollectionViewType, DocumentType } from "../documents/DocumentTypes";
-import { DocUtils, Docs, DocumentOptions, FInfo } from "../documents/Documents";
+import { DocUtils, Docs, DocumentOptions, FInfo, FInfoFieldType } from "../documents/Documents";
 import { DashboardView } from "../views/DashboardView";
 import { OverlayView } from "../views/OverlayView";
 import { CollectionTreeView, TreeViewType } from "../views/collections/CollectionTreeView";
@@ -257,11 +257,11 @@ export class CurrentUserUtils {
             {key: "DataViz",    creator: opts => Docs.Create.DataVizDocument("/users/rz/Downloads/addresses.csv", opts),   opts: { _width: 300, _height: 300 }},
             {key: "Header",     creator: headerTemplate,                                    opts: { _width: 300, _height: 70, _headerPointerEvents: "all", _headerHeight: 12, _headerFontSize: 9, _layout_autoHeight: true, treeView_HideUnrendered: true}},
             {key: "ViewSlide",  creator: slideView,                                         opts: { _width: 400, _height: 300, _xMargin: 3, _yMargin: 3,}},
-            {key: "Trail",      creator: Docs.Create.PresDocument,                          opts: { _width: 400, _height: 30, _type_collection: CollectionViewType.Stacking, dropAction: "embed" as dropActionType, treeView_HideTitle: true, _layout_fitWidth:true, layout_boxShadow: "0 0" }},
+            {key: "Trail",      creator: Docs.Create.PresDocument,                          opts: { _width: 400, _height: 30, _type_collection: CollectionViewType.Stacking, dropAction: dropActionType.embed, treeView_HideTitle: true, _layout_fitWidth:true, layout_boxShadow: "0 0" }},
             {key: "Tab",        creator: opts => Docs.Create.FreeformDocument([], opts),    opts: { _width: 500, _height: 800, _layout_fitWidth: true, _freeform_backgroundGrid: true, }},
             {key: "Slide",      creator: opts => Docs.Create.TreeDocument([], opts),        opts: { _width: 300, _height: 200, _type_collection: CollectionViewType.Tree, 
                                                                                                 treeView_HasOverlay: true, _text_fontSize: "20px", _layout_autoHeight: true, 
-                                                                                                dropAction:'move', treeView_Type: TreeViewType.outline, 
+                                                                                                dropAction:dropActionType.move, treeView_Type: TreeViewType.outline, 
                                                                                                 backgroundColor: "white", _xMargin: 0, _yMargin: 0, _createDocOnCR: true 
                                                                                             }, funcs: {title: 'this.text?.Text'}},
             ];
@@ -311,7 +311,7 @@ export class CurrentUserUtils {
         const reqdOpts:DocumentOptions = {
             title: "Document Creators", _layout_showTitle: "title", _xMargin: 0, _dragOnlyWithinContainer: true, _layout_hideContextMenu: true, _chromeHidden: true, isSystem: true,
             _layout_autoHeight: true, _width: 500, _height: 300, _layout_fitWidth: true, _columnWidth: 40, ignoreClick: true, _lockedPosition: true, _forceActive: true,
-             childDragAction: 'embed' 
+             childDragAction: dropActionType.embed
         };
         const reqdScripts = { dropConverter: "convertToButtons(dragData)" };
         return DocUtils.AssignScripts(DocUtils.AssignOpts(dragCreatorDoc, reqdOpts, creatorBtns) ?? Docs.Create.MasonryDocument(creatorBtns, reqdOpts), reqdScripts);
@@ -353,7 +353,7 @@ export class CurrentUserUtils {
         });
 
         const reqdStackOpts:DocumentOptions ={
-            title: "menuItemPanel", childDragAction: "same", layout_boxShadow: "rgba(0,0,0,0)",  dontRegisterView: true, ignoreClick: true,
+            title: "menuItemPanel", childDragAction: dropActionType.same, layout_boxShadow: "rgba(0,0,0,0)",  dontRegisterView: true, ignoreClick: true,
             _chromeHidden: true, _gridGap: 0, _yMargin: 0, _xMargin: 0, _layout_autoHeight: false, _width: 60, _columnWidth: 60, _lockedPosition: true, isSystem: true,
         };
         return DocUtils.AssignDocField(doc, field, (opts, items) => Docs.Create.StackingDocument(items??[], opts), reqdStackOpts, menuBtns, { dropConverter: "convertToButtons(dragData)" });
@@ -436,7 +436,7 @@ export class CurrentUserUtils {
     /// Search option on the left side button panel
     static setupSearcher(doc: Doc, field:string) {
         return DocUtils.AssignDocField(doc, field, (opts, items) => Docs.Create.SearchDocument(opts), {
-                dontRegisterView: true, backgroundColor: "dimgray", ignoreClick: true, title: "Search Panel", isSystem: true, childDragAction: "embed", 
+                dontRegisterView: true, backgroundColor: "dimgray", ignoreClick: true, title: "Search Panel", isSystem: true, childDragAction: dropActionType.embed, 
                 _lockedPosition: true, _type_collection: CollectionViewType.Schema  });
     }
 
@@ -476,8 +476,8 @@ export class CurrentUserUtils {
         const childContextMenuIcons = ["tv", "camera", "users", "times", "trash"]; // entries must be kept in synch with childContextMenuScripts, childContextMenuLabels, and childContextMenuFilters
         const reqdOpts:DocumentOptions = {
             title: "My Dashboards", childHideLinkButton: true, treeView_FreezeChildren: "remove|add", treeView_HideTitle: true, layout_boxShadow: "0 0", childDontRegisterViews: true,
-            dropAction: "inSame", treeView_Type: TreeViewType.fileSystem, isFolder: true, isSystem: true,  treeView_TruncateTitleWidth: 350, ignoreClick: true, 
-            layout_headerButton: newDashboardButton, childDragAction: "inSame",
+            dropAction: dropActionType.inPlace, treeView_Type: TreeViewType.fileSystem, isFolder: true, isSystem: true,  treeView_TruncateTitleWidth: 350, ignoreClick: true, 
+            layout_headerButton: newDashboardButton, childDragAction: dropActionType.inPlace,
             _layout_showTitle: "title", _height: 400, _gridGap: 5, _forceActive: true, _lockedPosition: true,
             contextMenuLabels:new List<string>(contextMenuLabels),
             contextMenuIcons:new List<string>(contextMenuIcons),
@@ -510,9 +510,9 @@ export class CurrentUserUtils {
         const newFolderButton = DocUtils.AssignScripts(DocUtils.AssignOpts(DocCast(myFilesystem?.layout_headerButton), newFolderOpts) ?? Docs.Create.FontIconDocument(newFolderOpts), newFolderScript);
         
         const reqdOpts:DocumentOptions = { _layout_showTitle: "title", _height: 100, _forceActive: true, 
-            title: "My Documents", layout_headerButton: newFolderButton, treeView_HideTitle: true, dropAction: 'add', isSystem: true,
+            title: "My Documents", layout_headerButton: newFolderButton, treeView_HideTitle: true, dropAction: dropActionType.add, isSystem: true,
             isFolder: true, treeView_Type: TreeViewType.fileSystem, childHideLinkButton: true, layout_boxShadow: "0 0", childDontRegisterViews: true, 
-            treeView_TruncateTitleWidth: 350, ignoreClick: true, childDragAction: "embed",
+            treeView_TruncateTitleWidth: 350, ignoreClick: true, childDragAction: dropActionType.embed,
             layout_explainer: "This is your file manager where you can create folders to keep track of documents independently of your dashboard."
         };
         const fileFolders = new Set(DocListCast(DocCast(doc[field])?.data));
@@ -522,8 +522,8 @@ export class CurrentUserUtils {
     /// initializes the panel displaying docs that have been recently closed
     static setupRecentlyClosed(doc: Doc, field:string) {
         const reqdOpts:DocumentOptions = { _layout_showTitle: "title", _lockedPosition: true, _gridGap: 5, _forceActive: true, isFolder: true,
-            title: "My Recently Closed", childHideLinkButton: true, treeView_HideTitle: true, childDragAction: "move", isSystem: true,
-            treeView_TruncateTitleWidth: 350, ignoreClick: true,  layout_boxShadow: "0 0", childDontRegisterViews: true, dropAction: "same",
+            title: "My Recently Closed", childHideLinkButton: true, treeView_HideTitle: true, childDragAction: dropActionType.move, isSystem: true,
+            treeView_TruncateTitleWidth: 350, ignoreClick: true,  layout_boxShadow: "0 0", childDontRegisterViews: true, dropAction: dropActionType.same,
             contextMenuLabels: new List<string>(["Empty recently closed"]),
             contextMenuIcons:new List<string>(["trash"]),
             layout_explainer: "Recently closed documents appear in this menu. They will only be deleted if you explicity empty this list."
@@ -546,7 +546,7 @@ export class CurrentUserUtils {
     static setupUserDocView(doc: Doc, field:string) {
         const reqdOpts:DocumentOptions = {
             _lockedPosition: true, _gridGap: 5, _forceActive: true, title: Doc.CurrentUserEmail +"-view",
-            layout_boxShadow: "0 0", childDontRegisterViews: true, dropAction: "same", ignoreClick: true, isSystem: true,
+            layout_boxShadow: "0 0", childDontRegisterViews: true, dropAction: dropActionType.same, ignoreClick: true, isSystem: true,
             treeView_HideTitle: true, treeView_TruncateTitleWidth: 350
         };
         if (!doc[field]) DocUtils.AssignOpts(doc, {treeView_Open: true, treeView_ExpandedView: "fields" });
@@ -587,7 +587,7 @@ export class CurrentUserUtils {
         ];
         const btns = btnDescs.map(desc => dockBtn({_width: 30, _height: 30, defaultDoubleClick: 'ignore', undoIgnoreFields: new List<string>(['opacity']), _dragOnlyWithinContainer: true, ...desc.opts}, desc.scripts));
         const dockBtnsReqdOpts:DocumentOptions = {
-            title: "docked buttons", _height: 40, flexGap: 0, layout_boxShadow: "standard", childDragAction: 'move',
+            title: "docked buttons", _height: 40, flexGap: 0, layout_boxShadow: "standard", childDragAction: dropActionType.move,
             childDontRegisterViews: true, linearView_IsOpen: true, linearView_Expandable: true, ignoreClick: true
         };
         reaction(() => UndoManager.redoStack.slice(), () => Doc.GetProto(btns.find(btn => btn.title === "Redo")!).opacity = UndoManager.CanRedo() ? 1 : 0.4, { fireImmediately: true });
@@ -743,7 +743,7 @@ export class CurrentUserUtils {
 
     /// Initializes all the default buttons for the top bar context menu
     static setupContextMenuButtons(doc: Doc, field="myContextMenuBtns") {
-        const reqdCtxtOpts:DocumentOptions = { title: "context menu buttons", undoIgnoreFields:new List<string>(['width', "linearView_IsOpen"]), flexGap: 0, childDragAction: 'embed', childDontRegisterViews: true,  linearView_IsOpen: true, ignoreClick: true, linearView_Expandable: false, _height: 35 };
+        const reqdCtxtOpts:DocumentOptions = { title: "context menu buttons", undoIgnoreFields:new List<string>(['width', "linearView_IsOpen"]), flexGap: 0, childDragAction: dropActionType.embed, childDontRegisterViews: true,  linearView_IsOpen: true, ignoreClick: true, linearView_Expandable: false, _height: 35 };
         const ctxtMenuBtnsDoc = DocUtils.AssignDocField(doc, field, (opts, items) => this.linearButtonList(opts, items??[]), reqdCtxtOpts, undefined);
         const ctxtMenuBtns = CurrentUserUtils.contextMenuTools().map(params => this.setupContextMenuBtn(params, ctxtMenuBtnsDoc) );
         return DocUtils.AssignOpts(ctxtMenuBtnsDoc, reqdCtxtOpts, ctxtMenuBtns);
@@ -769,7 +769,7 @@ export class CurrentUserUtils {
         ];
         const btns = btnDescs.map(desc => dockBtn({_width: desc.opts.width??30, _height: 30, defaultDoubleClick: 'ignore', undoIgnoreFields: new List<string>(['opacity']), _dragOnlyWithinContainer: true, ...desc.opts}, desc.scripts, desc.funcs));
         const dockBtnsReqdOpts:DocumentOptions = {
-            title: "docked buttons", _height: 40, flexGap: 0, layout_boxShadow: "standard", childDragAction: 'move',
+            title: "docked buttons", _height: 40, flexGap: 0, layout_boxShadow: "standard", childDragAction: dropActionType.move,
             childDontRegisterViews: true, linearView_IsOpen: true, linearView_Expandable: false, ignoreClick: true
         };
         return DocUtils.AssignDocField(doc, field, (opts, items) => this.linearButtonList(opts, items??[]), dockBtnsReqdOpts, btns);
@@ -809,7 +809,7 @@ export class CurrentUserUtils {
             // childContextMenuLabels: new List<string>(["Add to Dashboards",]),
             // childContextMenuIcons: new List<string>(["user-plus",]),
             "acl-Guest": SharingPermissions.Augment, "_acl-Guest": SharingPermissions.Augment,
-            childDragAction: "embed", isSystem: true, childContentPointerEvents: "none", childLimitHeight: 0, _yMargin: 0, _gridGap: 15, childDontRegisterViews:true,
+            childDragAction: dropActionType.embed, isSystem: true, childContentPointerEvents: "none", childLimitHeight: 0, _yMargin: 0, _gridGap: 15, childDontRegisterViews:true,
             // NOTE: treeView_HideTitle & _layout_showTitle is for a TreeView's editable title, _layout_showTitle is for DocumentViews title bar
             _layout_showTitle: "title", treeView_HideTitle: true, ignoreClick: true, _lockedPosition: true, layout_boxShadow: "0 0", _chromeHidden: true, dontRegisterView: true, 
             layout_explainer: "This is where documents or dashboards that other users have shared with you will appear. To share a document or dashboard right click and select 'Share'"
@@ -824,7 +824,7 @@ export class CurrentUserUtils {
         const reqdOpts:DocumentOptions = {
             title: "My Imports", _forceActive: true, _layout_showTitle: "title", childLayoutString: ImportElementBox.LayoutString('data'),
             _dragOnlyWithinContainer: true, _layout_hideContextMenu: true, childLimitHeight: 0, onClickScriptDisable:"never",
-            childDragAction: "copy", _layout_autoHeight: true, _yMargin: 50, _gridGap: 15, layout_boxShadow: "0 0", _lockedPosition: true, isSystem: true, _chromeHidden: true,
+            childDragAction: dropActionType.copy, _layout_autoHeight: true, _yMargin: 50, _gridGap: 15, layout_boxShadow: "0 0", _lockedPosition: true, isSystem: true, _chromeHidden: true,
             dontRegisterView: true, layout_explainer: "This is where documents that are Imported into Dash will go."
         };
         const myImports = DocUtils.AssignDocField(doc, field, (opts) => Docs.Create.MasonryDocument([], opts), reqdOpts, undefined, {onClick: "deselectAll()"});
@@ -886,7 +886,7 @@ export class CurrentUserUtils {
         this.setupDocTemplates(doc); // sets up the template menu of templates
         //this.setupFieldInfos(doc); // sets up the collection of field info descriptions for each possible DocumentOption
         DocUtils.AssignDocField(doc, "globalScriptDatabase", (opts) =>  Docs.Prototypes.MainScriptDocument(), {});
-        DocUtils.AssignDocField(doc, "myHeaderBar", (opts) => Docs.Create.MulticolumnDocument([], opts), { title: "My Header Bar", isSystem: true, _chromeHidden:true, childLayoutFitWidth:false, childDocumentsActive:false, dropAction: 'move'}); // drop down panel at top of dashboard for stashing documents
+        DocUtils.AssignDocField(doc, "myHeaderBar", (opts) => Docs.Create.MulticolumnDocument([], opts), { title: "My Header Bar", isSystem: true, _chromeHidden:true, childLayoutFitWidth:false, childDocumentsActive:false, dropAction: dropActionType.move}); // drop down panel at top of dashboard for stashing documents
         
         Doc.AddDocToList(Doc.MyFilesystem, undefined, Doc.MyDashboards)
         Doc.AddDocToList(Doc.MyFilesystem, undefined, Doc.MySharedDocs)
@@ -909,9 +909,9 @@ export class CurrentUserUtils {
                 const options = pair[1] as FInfo;
                 const opts:DocumentOptions = { isSystem: true, title: pair[0], ...OmitKeys(options, ["values"]).omit, fieldIsLayout: pair[0].startsWith("_")};
                 switch (options.fieldType) {
-                    case "boolean": opts.fieldValues = new List<boolean>(options.values as any); break;
-                    case "number": opts.fieldValues = new List<number>(options.values as any); break;
-                    case Doc.name: opts.fieldValues = new List<Doc>(options.values as any); break;
+                    case FInfoFieldType.boolean: opts.fieldValues = new List<boolean>(options.values as any); break;
+                    case FInfoFieldType.number: opts.fieldValues = new List<number>(options.values as any); break;
+                    case FInfoFieldType.Doc: opts.fieldValues = new List<Doc>(options.values as any); break;
                     default: opts.fieldValues = new List<string>(options.values as any); break;// string, pointerEvents, dimUnit, dropActionType
                 }
                 DocUtils.AssignDocField(infos, pair[0], opts => Doc.assign(new Doc(), OmitKeys(opts,["values"]).omit), opts);
diff --git a/src/client/util/DragManager.ts b/src/client/util/DragManager.ts
index 1f093a33c..f6af6196f 100644
--- a/src/client/util/DragManager.ts
+++ b/src/client/util/DragManager.ts
@@ -1,10 +1,24 @@
+/**
+ * The DragManager handles all dragging interactions that occur entirely within Dash (as opposed to external drag operations from the file system, etc)
+ *
+ * Events are generated for
+ *  a pause in the drag movement (dashDragMovePause) as a Doc(s) is dragged,
+ *  just before (dashPreDrop) a Doc(s) is dropped,
+ *  and just after (dashDropEvent) a Doc(s) is dropped
+ * If the document is dragged and paused over the golden layout header tabs, the
+ *   drag interaction will switch to a golden layout tab drag.
+ *
+ * All drag operations can be aborted by hitting the Esc key
+ *
+ */
+
 import { action, observable, runInAction } from 'mobx';
 import { DateField } from '../../fields/DateField';
 import { Doc, Field, Opt, StrListCast } from '../../fields/Doc';
 import { List } from '../../fields/List';
 import { PrefetchProxy } from '../../fields/Proxy';
 import { ScriptField } from '../../fields/ScriptField';
-import { ScriptCast, StrCast } from '../../fields/Types';
+import { ScriptCast } from '../../fields/Types';
 import { emptyFunction, Utils } from '../../Utils';
 import { Docs, DocUtils } from '../documents/Documents';
 import { CollectionFreeFormDocumentView } from '../views/nodes/CollectionFreeFormDocumentView';
@@ -16,7 +30,15 @@ import { UndoManager } from './UndoManager';
 import { DocData } from '../../fields/DocSymbols';
 const { default : { contextMenuZindex } } = require('../views/global/globalCssVariables.module.scss'); // prettier-ignore
 
-export type dropActionType = 'embed' | 'copy' | 'move' | 'add' | 'same' | 'inSame' | 'proto' | 'none' | undefined; // undefined = move, "same" = move but don't call dropPropertiesToRemove
+export enum dropActionType {
+    embed = 'embed', // create a new embedding of the dragged document for the new location
+    copy = 'copy', // copy the dragged document
+    move = 'move', // move the dragged document to the drop location after removing it from where it was
+    add = 'add', // add the dragged document to the drop location without removing it from where it was
+    same = 'same', // only allow drop within same collection (or same hierarchical tree collection)
+    inPlace = 'inSame', // keep document in place (unless overridden by a drag modifier)
+    proto = 'proto',
+} // undefined = move, same = move but doesn't call dropPropertiesToRemove
 
 /**
  * Initialize drag
@@ -129,9 +151,9 @@ export namespace DragManager {
         treeViewDoc?: Doc;
         offset: number[];
         canEmbed?: boolean;
-        userDropAction: dropActionType; // the user requested drop action -- this will be honored as specified by modifier keys
+        userDropAction?: dropActionType; // the user requested drop action -- this will be honored as specified by modifier keys
         defaultDropAction?: dropActionType; // an optionally specified default drop action when there is no user drop actionl - this will be honored if there is no user drop action
-        dropAction: dropActionType; // a drop action request by the initiating code.  the actual drop action may be different -- eg, if the request is 'embed', but the document is dropped within the same collection, the drop action will be switched to 'move'
+        dropAction?: dropActionType; // a drop action request by the initiating code.  the actual drop action may be different -- eg, if the request is 'embed', but the document is dropped within the same collection, the drop action will be switched to 'move'
         dropPropertiesToRemove?: string[];
         moveDocument?: MoveFunction;
         removeDocument?: RemoveFunction;
@@ -170,8 +192,8 @@ export namespace DragManager {
         dropDocCreator: (annotationOn: Doc | undefined) => Doc;
         dropDocument?: Doc;
         offset: number[];
-        dropAction: dropActionType;
-        userDropAction: dropActionType;
+        dropAction?: dropActionType;
+        userDropAction?: dropActionType;
     }
 
     let defaultPreDropFunc = (e: Event, de: DragManager.DropEvent, targetAction: dropActionType) => {
@@ -189,7 +211,7 @@ export namespace DragManager {
         const handler = (e: Event) => dropFunc(e, (e as CustomEvent<DropEvent>).detail);
         const preDropHandler = (e: Event) => {
             const de = (e as CustomEvent<DropEvent>).detail;
-            (preDropFunc ?? defaultPreDropFunc)(e, de, StrCast(doc.dropAction) as dropActionType);
+            (preDropFunc ?? defaultPreDropFunc)(e, de, doc.dropAction as any as dropActionType);
         };
         element.addEventListener('dashOnDrop', handler);
         element.addEventListener('dashPreDrop', preDropHandler);
@@ -218,19 +240,19 @@ export namespace DragManager {
                         dragData.draggedDocuments.map(async d =>
                             !dragData.isDocDecorationMove && !dragData.userDropAction && ScriptCast(d.onDragStart)
                                 ? addAudioTag(ScriptCast(d.onDragStart).script.run({ this: d }).result)
-                                : docDragData.dropAction === 'embed'
+                                : docDragData.dropAction === dropActionType.embed
                                   ? Doc.BestEmbedding(d)
-                                  : docDragData.dropAction === 'add'
+                                  : docDragData.dropAction === dropActionType.add
                                     ? d
-                                    : docDragData.dropAction === 'proto'
+                                    : docDragData.dropAction === dropActionType.proto
                                       ? d[DocData]
-                                      : docDragData.dropAction === 'copy'
+                                      : docDragData.dropAction === dropActionType.copy
                                         ? (await Doc.MakeClone(d)).clone
                                         : d
                         )
                     )
                 ).filter(d => d);
-                !['same', 'proto'].includes(docDragData.dropAction as any) &&
+                ![dropActionType.same, dropActionType.proto].includes(docDragData.dropAction as any) &&
                     docDragData.droppedDocuments
                         // .filter(drop => !drop.dragOnlyWithinContainer || ['embed', 'copy'].includes(docDragData.dropAction as any))
                         .forEach((drop: Doc, i: number) => {
@@ -504,7 +526,7 @@ export namespace DragManager {
         const moveHandler = (e: PointerEvent) => {
             e.preventDefault(); // required or dragging text menu link item ends up dragging the link button as native drag/drop
             if (dragData instanceof DocumentDragData) {
-                dragData.userDropAction = e.ctrlKey && e.altKey ? 'copy' : e.shiftKey ? 'move' : e.ctrlKey ? 'embed' : dragData.defaultDropAction;
+                dragData.userDropAction = e.ctrlKey && e.altKey ? dropActionType.copy : e.shiftKey ? dropActionType.move : e.ctrlKey ? dropActionType.embed : dragData.defaultDropAction;
             }
             if (['lm_tab', 'lm_title_wrap', 'lm_tabs', 'lm_header'].includes(typeof (e.target as any).className === 'string' ? (e.target as any)?.className : '') && dragData.draggedDocuments.length === 1) {
                 if (!startWindowDragTimer) {
@@ -530,7 +552,7 @@ export namespace DragManager {
             if (target && !Doc.UserDoc()._noAutoscroll && !options?.noAutoscroll && !dragData.draggedDocuments?.some((d: any) => d._freeform_noAutoPan)) {
                 const autoScrollHandler = () => {
                     target.dispatchEvent(
-                        new CustomEvent<React.DragEvent>('dashDragAutoScroll', {
+                        new CustomEvent<React.DragEvent>('dashDragMovePause', {
                             bubbles: true,
                             detail: {
                                 shiftKey: e.shiftKey,
@@ -552,7 +574,7 @@ export namespace DragManager {
                                 screenY: e.screenY,
                                 detail: e.detail,
                                 view: e.view ? e.view : (new Window() as any),
-                                nativeEvent: new DragEvent('dashDragAutoScroll'),
+                                nativeEvent: new DragEvent('dashDragMovePause'),
                                 currentTarget: target,
                                 target: target,
                                 bubbles: true,
@@ -566,7 +588,7 @@ export namespace DragManager {
                                 isPropagationStopped: () => ('not implemented for this event' ? false : false),
                                 persist: emptyFunction,
                                 timeStamp: e.timeStamp,
-                                type: 'dashDragAutoScroll',
+                                type: 'dashDragMovePause',
                             },
                         })
                     );
diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx
index b6cb845a6..3be52597a 100644
--- a/src/client/views/MainView.tsx
+++ b/src/client/views/MainView.tsx
@@ -19,7 +19,7 @@ import { Docs } from '../documents/Documents';
 import { CalendarManager } from '../util/CalendarManager';
 import { CaptureManager } from '../util/CaptureManager';
 import { DocumentManager } from '../util/DocumentManager';
-import { DragManager } from '../util/DragManager';
+import { DragManager, dropActionType } from '../util/DragManager';
 import { GroupManager } from '../util/GroupManager';
 import { HistoryUtil } from '../util/History';
 import { Hypothesis } from '../util/HypothesisUtils';
@@ -623,7 +623,7 @@ export class MainView extends ObservableReactComponent<{}> {
                     isContentActive={returnTrue} // headerBar is awlays contentActive which means its items are always documentActive
                     ScreenToLocalTransform={this.headerBarScreenXf}
                     childHideResizeHandles={true}
-                    childDragAction="move"
+                    childDragAction={dropActionType.move}
                     dontRegisterView={true}
                     hideResizeHandles={true}
                     PanelWidth={this.headerBarDocWidth}
@@ -905,7 +905,7 @@ export class MainView extends ObservableReactComponent<{}> {
                     Document={Doc.MyDockedBtns}
                     docViewPath={returnEmptyDocViewList}
                     fieldKey="data"
-                    dropAction="embed"
+                    dropAction={dropActionType.embed}
                     styleProvider={DefaultStyleProvider}
                     select={emptyFunction}
                     isAnyChildContentActive={returnFalse}
diff --git a/src/client/views/collections/CollectionMenu.tsx b/src/client/views/collections/CollectionMenu.tsx
index 0f90818ef..8729ef549 100644
--- a/src/client/views/collections/CollectionMenu.tsx
+++ b/src/client/views/collections/CollectionMenu.tsx
@@ -11,7 +11,7 @@ import { RichTextField } from '../../../fields/RichTextField';
 import { BoolCast, Cast, DocCast, NumCast, StrCast } from '../../../fields/Types';
 import { emptyFunction, returnEmptyDoclist, returnEmptyFilter, returnFalse, returnTrue, setupMoveUpEvents, Utils } from '../../../Utils';
 import { CollectionViewType, DocumentType } from '../../documents/DocumentTypes';
-import { DragManager } from '../../util/DragManager';
+import { DragManager, dropActionType } from '../../util/DragManager';
 import { SelectionManager } from '../../util/SelectionManager';
 import { SettingsManager } from '../../util/SettingsManager';
 import { Transform } from '../../util/Transform';
@@ -91,7 +91,7 @@ export class CollectionMenu extends AntimodeMenu<CollectionMenuProps> {
                     Document={selDoc}
                     docViewPath={returnEmptyDocViewList}
                     fieldKey="data"
-                    dropAction="embed"
+                    dropAction={dropActionType.embed}
                     styleProvider={DefaultStyleProvider}
                     select={emptyFunction}
                     isContentActive={returnTrue}
diff --git a/src/client/views/collections/CollectionPileView.tsx b/src/client/views/collections/CollectionPileView.tsx
index d0df77cbe..7d7f0bb61 100644
--- a/src/client/views/collections/CollectionPileView.tsx
+++ b/src/client/views/collections/CollectionPileView.tsx
@@ -13,6 +13,7 @@ import { computePassLayout, computeStarburstLayout } from './collectionFreeForm'
 import { CollectionFreeFormView } from './collectionFreeForm/CollectionFreeFormView';
 import './CollectionPileView.scss';
 import { CollectionSubView } from './CollectionSubView';
+import { dropActionType } from '../../util/DragManager';
 
 @observer
 export class CollectionPileView extends CollectionSubView() {
@@ -72,7 +73,7 @@ export class CollectionPileView extends CollectionSubView() {
                     // pile children never have their contents active, but will be document active whenever the entire pile is.
                     childContentsActive={returnFalse}
                     childDocumentsActive={this._props.isDocumentActive}
-                    childDragAction="move"
+                    childDragAction={dropActionType.move}
                     childClickScript={this.toggleIcon}
                 />
             </div>
diff --git a/src/client/views/collections/CollectionTreeView.tsx b/src/client/views/collections/CollectionTreeView.tsx
index 786301136..4d60cbefc 100644
--- a/src/client/views/collections/CollectionTreeView.tsx
+++ b/src/client/views/collections/CollectionTreeView.tsx
@@ -153,12 +153,18 @@ export class CollectionTreeView extends CollectionSubView<Partial<collectionTree
         return res;
     }
 
-    protected onInternalPreDrop = (e: Event, de: DragManager.DropEvent, dropAction: dropActionType) => {
+    protected onInternalPreDrop = (e: Event, de: DragManager.DropEvent, targetDropAction: dropActionType) => {
         const dragData = de.complete.docDragData;
         if (dragData) {
-            const sameTree = Doc.AreProtosEqual(dragData.treeViewDoc, this.Document) ? true : false;
+            const sourceDragAction = dragData.dropAction;
+            const sameTree = () => Doc.AreProtosEqual(dragData.treeViewDoc, this.Document);
             const isAlreadyInTree = () => sameTree || dragData.draggedDocuments.some(d => d.embedContainer === this.Document && this.childDocs.includes(d));
-            dragData.dropAction = dropAction && !isAlreadyInTree() ? dropAction : sameTree && dragData.dropAction !== 'inSame' ? 'same' : dragData.dropAction;
+            dragData.dropAction =
+                targetDropAction && !isAlreadyInTree() // if dropped document is not in the tree
+                    ? targetDropAction // then use the target's drop action if it's specified
+                    : !sameTree() || sourceDragAction === dropActionType.inPlace // if doc from another tree, or a non inPlace source drag action is specified
+                      ? sourceDragAction // use the source dragAction
+                      : dropActionType.same; // otherwise use same tree semantics to move within tree
             e.stopPropagation();
         }
     };
@@ -287,7 +293,7 @@ export class CollectionTreeView extends CollectionSubView<Partial<collectionTree
     @observable _renderCount = 1;
     @computed get treeViewElements() {
         TraceMobx();
-        const dragAction = StrCast(this.Document.childDragAction) as dropActionType;
+        const dragAction = StrCast(this.Document.childDragAction) as any as dropActionType;
         const addDoc = (doc: Doc | Doc[], relativeTo?: Doc, before?: boolean) => this.addDoc(doc, relativeTo, before);
         const moveDoc = (d: Doc | Doc[], target: Doc | undefined, addDoc: (doc: Doc | Doc[]) => boolean) => this._props.moveDocument?.(d, target, addDoc) || false;
         if (this._renderCount < this.treeChildren.length) setTimeout(action(() => (this._renderCount = Math.min(this.treeChildren.length, this._renderCount + 20))));
@@ -473,7 +479,7 @@ export class CollectionTreeView extends CollectionSubView<Partial<collectionTree
                         isAnnotationOverlayScrollable={true}
                         childDocumentsActive={this._props.isContentActive}
                         fieldKey={this._props.fieldKey + '_annotations'}
-                        dropAction="move"
+                        dropAction={dropActionType.move}
                         select={emptyFunction}
                         addDocument={this.addAnnotationDocument}
                         removeDocument={this.remAnnotationDocument}
diff --git a/src/client/views/collections/TreeView.tsx b/src/client/views/collections/TreeView.tsx
index 85f7cf7fe..4f2d8b9c0 100644
--- a/src/client/views/collections/TreeView.tsx
+++ b/src/client/views/collections/TreeView.tsx
@@ -439,7 +439,7 @@ export class TreeView extends ObservableReactComponent<TreeViewProps> {
         droppedDocuments: Doc[],
         before: boolean,
         inside: number | boolean,
-        dropAction: dropActionType,
+        dropAction: dropActionType | undefined,
         removeDocument: DragManager.RemoveFunction | undefined,
         moveDocument: DragManager.MoveFunction | undefined,
         forceAdd: boolean,
@@ -1161,7 +1161,7 @@ export class TreeView extends ObservableReactComponent<TreeViewProps> {
         const before = pt[1] < rect.top + rect.height / 2;
         const inside = this.treeView.fileSysMode && !this.Document.isFolder ? false : pt[0] > rect.left + rect.width * 0.33 || (!before && this.treeViewOpen && this.childDocs?.length ? true : false);
 
-        const docs = this.treeView.onTreeDrop(de, (docs: Doc[]) => this.dropDocuments(docs, before, inside, 'copy', undefined, undefined, false, false));
+        this.treeView.onTreeDrop(de, (docs: Doc[]) => this.dropDocuments(docs, before, inside, dropActionType.copy, undefined, undefined, false, false));
     };
 
     render() {
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 50a9feff8..50b3dbd70 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -462,7 +462,7 @@ export class CollectionFreeFormView extends CollectionSubView<Partial<collection
                 const eles = this.childLayoutPairs.map(pair => pair.layout).filter(cd => (this.Document._freeform_useClusters ? NumCast(cd.layout_cluster) : NumCast(cd.group, -1)) === cluster);
                 const clusterDocs = eles.map(ele => DocumentManager.Instance.getDocumentView(ele, this.DocumentView?.())!);
                 const { left, top } = clusterDocs[0].getBounds || { left: 0, top: 0 };
-                const de = new DragManager.DocumentDragData(eles, e.ctrlKey || e.altKey ? 'embed' : undefined);
+                const de = new DragManager.DocumentDragData(eles, e.ctrlKey || e.altKey ? dropActionType.embed : undefined);
                 de.moveDocument = this._props.moveDocument;
                 de.offset = this.screenToFreeformContentsXf.transformDirection(ptsParent.clientX - left, ptsParent.clientY - top);
                 DragManager.StartDocumentDrag(
diff --git a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx
index a417d777a..d0e59180d 100644
--- a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx
+++ b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx
@@ -635,8 +635,13 @@ export class MarqueeView extends ObservableReactComponent<SubCollectionViewProps
     }
     MarqueeRef: HTMLDivElement | null = null;
 
+    /**
+     * This is called for every drag movement when a document is dragged over this collection.
+     * If the document is dragged within 25 pixels of the edge of the collection and paused, this will
+     * auto scroll the collection so that it can be dragged farther (unless auto panning has been disabled)
+     */
     @action
-    onDragAutoScroll = (e: CustomEvent<React.DragEvent>) => {
+    onDragMovePause = (e: CustomEvent<React.DragEvent>) => {
         if ((e as any).handlePan || this._props.isAnnotationOverlay) return;
         (e as any).handlePan = true;
 
@@ -659,7 +664,7 @@ export class MarqueeView extends ObservableReactComponent<SubCollectionViewProps
             <div
                 className="marqueeView"
                 ref={r => {
-                    r?.addEventListener('dashDragAutoScroll', this.onDragAutoScroll as any);
+                    r?.addEventListener('dashDragMovePause', this.onDragMovePause as any);
                     this.MarqueeRef = r;
                 }}
                 style={{
diff --git a/src/client/views/collections/collectionSchema/CollectionSchemaView.tsx b/src/client/views/collections/collectionSchema/CollectionSchemaView.tsx
index 31b4a2dd4..eee3836d2 100644
--- a/src/client/views/collections/collectionSchema/CollectionSchemaView.tsx
+++ b/src/client/views/collections/collectionSchema/CollectionSchemaView.tsx
@@ -10,7 +10,7 @@ import { BoolCast, Cast, DocCast, NumCast, StrCast } from '../../../../fields/Ty
 import { emptyFunction, returnEmptyDoclist, returnEmptyString, returnFalse, returnIgnore, returnNever, returnTrue, setupMoveUpEvents, smoothScroll } from '../../../../Utils';
 import { Docs, DocumentOptions, DocUtils, FInfo } from '../../../documents/Documents';
 import { DocumentManager } from '../../../util/DocumentManager';
-import { DragManager } from '../../../util/DragManager';
+import { DragManager, dropActionType } from '../../../util/DragManager';
 import { SelectionManager } from '../../../util/SelectionManager';
 import { undoable, undoBatch } from '../../../util/UndoManager';
 import { ContextMenu } from '../../ContextMenu';
@@ -981,7 +981,7 @@ class CollectionSchemaViewDoc extends ObservableReactComponent<CollectionSchemaV
                 styleProvider={this.noOpacityStyleProvider}
                 waitForDoubleClickToClick={returnNever}
                 defaultDoubleClick={returnIgnore}
-                dragAction="move"
+                dragAction={dropActionType.move}
                 onClickScriptDisable="always"
                 focus={this._props.schema.focusDocument}
                 childFilters={this._props.schema.childDocFilters}
diff --git a/src/client/views/collections/collectionSchema/SchemaTableCell.tsx b/src/client/views/collections/collectionSchema/SchemaTableCell.tsx
index 001ad5ab6..46867665d 100644
--- a/src/client/views/collections/collectionSchema/SchemaTableCell.tsx
+++ b/src/client/views/collections/collectionSchema/SchemaTableCell.tsx
@@ -10,7 +10,7 @@ import { Doc, DocListCast, Field } from '../../../../fields/Doc';
 import { RichTextField } from '../../../../fields/RichTextField';
 import { BoolCast, Cast, DateCast, DocCast, FieldValue, StrCast } from '../../../../fields/Types';
 import { ImageField } from '../../../../fields/URLField';
-import { FInfo } from '../../../documents/Documents';
+import { FInfo, FInfoFieldType } from '../../../documents/Documents';
 import { DocFocusOrOpen } from '../../../util/DocumentManager';
 import { Transform } from '../../../util/Transform';
 import { undoBatch, undoable } from '../../../util/UndoManager';
@@ -29,6 +29,7 @@ import { Popup, Size, Type } from 'browndash-components';
 import { IconLookup, faCaretDown } from '@fortawesome/free-solid-svg-icons';
 import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
 import { SettingsManager } from '../../../util/SettingsManager';
+import { dropActionType } from '../../../util/DragManager';
 
 export interface SchemaTableCellProps {
     Document: Doc;
@@ -86,7 +87,7 @@ export class SchemaTableCell extends ObservableReactComponent<SchemaTableCellPro
             isSelected: returnFalse,
             setHeight: returnFalse,
             select: emptyFunction,
-            dragAction: 'move',
+            dragAction: dropActionType.move,
             renderDepth: 1,
             isContentActive: returnFalse,
             whenChildContentsActiveChanged: emptyFunction,
@@ -149,7 +150,7 @@ export class SchemaTableCell extends ObservableReactComponent<SchemaTableCellPro
         if (cellValue instanceof DateField) return ColumnType.Date;
         if (cellValue instanceof RichTextField) return ColumnType.RTF;
         if (typeof cellValue === 'number') return ColumnType.Any;
-        if (typeof cellValue === 'string' && columnTypeStr !== 'enumeration') return ColumnType.Any;
+        if (typeof cellValue === 'string' && columnTypeStr !== FInfoFieldType.enumeration) return ColumnType.Any;
         if (typeof cellValue === 'boolean') return ColumnType.Boolean;
 
         if (columnTypeStr && columnTypeStr in FInfotoColType) {
diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx
index d131f72d5..abb1aa59f 100644
--- a/src/client/views/nodes/DocumentView.tsx
+++ b/src/client/views/nodes/DocumentView.tsx
@@ -413,7 +413,7 @@ export class DocumentViewInternal extends DocComponent<FieldViewProps & Document
         if (!Utils.isClick(e.clientX, e.clientY, this._downX, this._downY, Date.now())) {
             this.cleanupPointerEvents();
             this._longPressSelector && clearTimeout(this._longPressSelector);
-            this.startDragging(this._downX, this._downY, ((e.ctrlKey || e.altKey) && 'embed') || ((this.Document.dragAction || this._props.dragAction || undefined) as dropActionType));
+            this.startDragging(this._downX, this._downY, ((e.ctrlKey || e.altKey) && dropActionType.embed) || ((this.Document.dragAction || this._props.dragAction || undefined) as dropActionType));
         }
     };
 
diff --git a/src/client/views/nodes/trails/PresBox.tsx b/src/client/views/nodes/trails/PresBox.tsx
index b8f6575dd..918987034 100644
--- a/src/client/views/nodes/trails/PresBox.tsx
+++ b/src/client/views/nodes/trails/PresBox.tsx
@@ -36,6 +36,7 @@ import { FocusViewOptions, FieldView, FieldViewProps } from '../FieldView';
 import { ScriptingBox } from '../ScriptingBox';
 import './PresBox.scss';
 import { PresEffect, PresEffectDirection, PresMovement, PresStatus } from './PresEnums';
+import { dropActionType } from '../../../util/DragManager';
 export interface pinDataTypes {
     scrollable?: boolean;
     dataviz?: number[];
@@ -1074,7 +1075,7 @@ export class PresBox extends ViewBoxBaseComponent<FieldViewProps>() {
     };
 
     childLayoutTemplate = () => Docs.Create.PresElementBoxDocument();
-    removeDocument = (doc: Doc) => Doc.RemoveDocFromList(this.Document, this.fieldKey, doc);
+    removeDocument = (doc: Doc | Doc[]) => !(doc instanceof Doc ? [doc] : doc).map(d => Doc.RemoveDocFromList(this.Document, this.fieldKey, d)).some(p => !p);
     getTransform = () => this.ScreenToLocalBoxXf().translate(-5, -65); // listBox padding-left and pres-box-cont minHeight
     panelHeight = () => this._props.PanelHeight() - 40;
     /**
@@ -2607,7 +2608,7 @@ export class PresBox extends ViewBoxBaseComponent<FieldViewProps>() {
                                 childIgnoreNativeSize={true}
                                 moveDocument={returnFalse}
                                 ignoreUnrendered={true}
-                                childDragAction="move"
+                                childDragAction={dropActionType.move}
                                 setContentViewBox={emptyFunction}
                                 //childLayoutFitWidth={returnTrue}
                                 childOpacity={returnOne}
diff --git a/src/client/views/topbar/TopBar.tsx b/src/client/views/topbar/TopBar.tsx
index 4155800b8..0952dda20 100644
--- a/src/client/views/topbar/TopBar.tsx
+++ b/src/client/views/topbar/TopBar.tsx
@@ -25,6 +25,7 @@ import { Colors } from '../global/globalEnums';
 import { DocumentViewInternal, returnEmptyDocViewList } from '../nodes/DocumentView';
 import { DefaultStyleProvider } from '../StyleProvider';
 import './TopBar.scss';
+import { dropActionType } from '../../util/DragManager';
 
 /**
  * ABOUT: This is the topbar in Dash, which included the current Dashboard as well as access to information on the user
@@ -102,7 +103,7 @@ export class TopBar extends React.Component {
                     Document={selDoc}
                     docViewPath={returnEmptyDocViewList}
                     fieldKey="data"
-                    dropAction="embed"
+                    dropAction={dropActionType.embed}
                     styleProvider={DefaultStyleProvider}
                     select={emptyFunction}
                     isContentActive={returnTrue}
diff --git a/src/fields/documentSchemas.ts b/src/fields/documentSchemas.ts
index 8eeb52709..1cacfe30c 100644
--- a/src/fields/documentSchemas.ts
+++ b/src/fields/documentSchemas.ts
@@ -96,9 +96,9 @@ export const documentSchema = createSchema({
     // drag drop properties
     _dragOnlyWithinContainer: 'boolean', // whether document can be dropped into a different collection
     dragFactory: Doc, // the document that serves as the "template" for the onDragStart script.  ie, to drag out copies of the dragFactory document.
-    dropAction: 'string', // override specifying what should happen when something is dropped on this document (can be "embed", "copy", "move")
-    dragAction: 'string', // override specifying what should happen when this document s dragged (can be "embed", "copy", "move")
-    childDragAction: 'string', // specify the override for what should happen when the child of a collection is dragged from it and dropped (can be "embed" or "copy")
+    dropAction: 'string', // override specifying what should happen when something is dropped on this document (dropActionType)
+    dragAction: 'string', // override specifying what should happen when this document s dragged (dropActionType)
+    childDragAction: 'string', // specify the override for what should happen when the child of a collection is dragged from it and dropped (dropActionType)
     dropPropertiesToRemove: listSpec('string'), // properties that should be removed from the embed/copy/etc of this document when it is dropped
 });
 
-- 
cgit v1.2.3-70-g09d2


From e973de1476194fe68a2f218e458e4619fb71c75e Mon Sep 17 00:00:00 2001
From: bobzel <zzzman@gmail.com>
Date: Thu, 29 Feb 2024 09:34:56 -0500
Subject: fixed minimap to show at least as much as the freeformview is showing
 (was a problem for example when there was just a single document)

---
 src/client/views/collections/TabDocView.tsx                       | 8 ++++++++
 .../collections/collectionFreeForm/CollectionFreeFormView.tsx     | 4 ++--
 2 files changed, 10 insertions(+), 2 deletions(-)

(limited to 'src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx')

diff --git a/src/client/views/collections/TabDocView.tsx b/src/client/views/collections/TabDocView.tsx
index 02aa76d82..b52f2e7b6 100644
--- a/src/client/views/collections/TabDocView.tsx
+++ b/src/client/views/collections/TabDocView.tsx
@@ -564,6 +564,12 @@ export class TabMinimapView extends ObservableReactComponent<TabMinimapViewProps
         const dim = Math.max(xbounds, ybounds);
         return { l: bounds.x + xbounds / 2 - dim / 2, t: bounds.y + ybounds / 2 - dim / 2, cx: bounds.x + xbounds / 2, cy: bounds.y + ybounds / 2, dim };
     }
+    @computed get xPadding() {
+        return !this.renderBounds ? 0 : Math.max(0, this._props.PanelWidth() / NumCast(this._props.document._freeform_scale, 1) - 2 * (this.renderBounds.cx - this.renderBounds.l));
+    }
+    @computed get yPadding() {
+        return !this.renderBounds ? 0 : Math.max(0, this._props.PanelHeight() / NumCast(this._props.document._freeform_scale, 1) - 2 * (this.renderBounds.cy - this.renderBounds.l));
+    }
     childLayoutTemplate = () => Cast(this._props.document.childLayoutTemplate, Doc, null);
     returnMiniSize = () => NumCast(this._props.document._miniMapSize, 150);
     miniDown = (e: React.PointerEvent) => {
@@ -620,6 +626,8 @@ export class TabMinimapView extends ObservableReactComponent<TabMinimapViewProps
                     childFiltersByRanges={CollectionDockingView.Instance?.childDocRangeFilters ?? returnEmptyDoclist}
                     searchFilterDocs={CollectionDockingView.Instance?.searchFilterDocs ?? returnEmptyDoclist}
                     fitContentsToBox={returnTrue}
+                    xPadding={this.xPadding}
+                    yPadding={this.yPadding}
                 />
                 <div className="miniOverlay" onPointerDown={this.miniDown}>
                     <TabMiniThumb miniLeft={miniLeft} miniTop={miniTop} miniWidth={miniWidth} miniHeight={miniHeight} />
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 50b3dbd70..e48656f5e 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -159,8 +159,8 @@ export class CollectionFreeFormView extends CollectionSubView<Partial<collection
             ? { x: cb[0], y: cb[1], r: cb[2], b: cb[3] }
             : aggregateBounds(
                   this._layoutElements.filter(e => e.bounds?.width && !e.bounds.z).map(e => e.bounds!),
-                  NumCast(this.layoutDoc._xPadding, 10),
-                  NumCast(this.layoutDoc._yPadding, 10)
+                  NumCast(this.layoutDoc._xPadding, this._props.xPadding ?? 10),
+                  NumCast(this.layoutDoc._yPadding, this._props.yPadding ?? 10)
               );
     }
     @computed get nativeWidth() {
-- 
cgit v1.2.3-70-g09d2


From 49cfa95fdb3653a1224d4e5e3380e111c8e2014f Mon Sep 17 00:00:00 2001
From: bobzel <zzzman@gmail.com>
Date: Mon, 4 Mar 2024 12:55:05 -0500
Subject: changes to restore template menu and fix freeform templates to always
 show contents.   Fix for alt-dropping an image to replace another image.

---
 src/client/views/DocumentButtonBar.tsx             | 48 +++++++++-------------
 src/client/views/DocumentDecorations.tsx           |  4 +-
 src/client/views/InkingStroke.tsx                  |  2 +-
 src/client/views/TemplateMenu.tsx                  |  2 +-
 src/client/views/collections/TabDocView.tsx        |  2 +-
 .../collectionFreeForm/CollectionFreeFormView.tsx  |  9 ++--
 src/client/views/nodes/ImageBox.tsx                |  1 +
 7 files changed, 30 insertions(+), 38 deletions(-)

(limited to 'src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx')

diff --git a/src/client/views/DocumentButtonBar.tsx b/src/client/views/DocumentButtonBar.tsx
index 8a4b42ae0..d65e0b406 100644
--- a/src/client/views/DocumentButtonBar.tsx
+++ b/src/client/views/DocumentButtonBar.tsx
@@ -4,12 +4,12 @@ import { Tooltip } from '@mui/material';
 import { action, computed, makeObservable, observable, runInAction } from 'mobx';
 import { observer } from 'mobx-react';
 import * as React from 'react';
-import { emptyFunction, returnFalse, setupMoveUpEvents, simulateMouseClick } from '../../Utils';
+import { emptyFunction, returnFalse, returnTrue, setupMoveUpEvents, simulateMouseClick } from '../../Utils';
 import { Doc } from '../../fields/Doc';
 import { Cast, DocCast } from '../../fields/Types';
 import { DocUtils } from '../documents/Documents';
 import { CalendarManager } from '../util/CalendarManager';
-import { DragManager } from '../util/DragManager';
+import { DragManager, dropActionType } from '../util/DragManager';
 import { IsFollowLinkScript } from '../util/LinkFollower';
 import { SelectionManager } from '../util/SelectionManager';
 import { SharingManager } from '../util/SharingManager';
@@ -24,6 +24,9 @@ import { DocumentView, DocumentViewInternal, OpenWhere } from './nodes/DocumentV
 import { DashFieldView } from './nodes/formattedText/DashFieldView';
 import { PinProps } from './nodes/trails';
 import { faCalendarDays } from '@fortawesome/free-solid-svg-icons';
+import { Popup } from 'browndash-components';
+import { TemplateMenu } from './TemplateMenu';
+import { FaEdit } from 'react-icons/fa';
 
 @observer
 export class DocumentButtonBar extends ObservableReactComponent<{ views: () => (DocumentView | undefined)[]; stack?: any }> {
@@ -306,7 +309,7 @@ export class DocumentButtonBar extends ObservableReactComponent<{ views: () => (
             const dragDocView = this.view0!;
             const dragData = new DragManager.DocumentDragData([dragDocView.Document]);
             const [left, top] = dragDocView.screenToContentsTransform().inverse().transformPoint(0, 0);
-            dragData.defaultDropAction = 'embed';
+            dragData.defaultDropAction = dropActionType.embed;
             dragData.canEmbed = true;
             DragManager.StartDocumentDrag([dragDocView.ContentDiv!], dragData, left, top, { hideSource: false });
             return true;
@@ -316,35 +319,24 @@ export class DocumentButtonBar extends ObservableReactComponent<{ views: () => (
 
     _ref = React.createRef<HTMLDivElement>();
     @observable _tooltipOpen: boolean = false;
+    @computed get templateMenu() {
+        return (
+            <div ref={this._ref}>
+                <TemplateMenu
+                    docViews={this._props
+                        .views()
+                        .filter(v => v)
+                        .map(v => v as DocumentView)}
+                />
+            </div>
+        );
+    }
     @computed
     get templateButton() {
-        const view0 = this.view0;
-        const views = this._props.views();
-        return !view0 ? null : (
+        return !this.view0 ? null : (
             <Tooltip title={<div className="dash-tooltip">Tap to Customize Layout. Drag an embedding</div>} open={this._tooltipOpen} onClose={action(() => (this._tooltipOpen = false))} placement="bottom">
                 <div className="documentButtonBar-linkFlyout" ref={this._dragRef} onPointerEnter={action(() => !this._ref.current?.getBoundingClientRect().width && (this._tooltipOpen = true))}>
-                    {
-                        /* <Flyout
-                        anchorPoint={anchorPoints.LEFT_TOP}
-                        onOpen={action(() => (this._embedDown = true))}
-                        onClose={action(() => (this._embedDown = false))}
-                        content={
-                            !this._embedDown ? null : (
-                                <div ref={this._ref}>
-                                    {' '}
-                                    <TemplateMenu docViews={views.filter(v => v).map(v => v as DocumentView)} />
-                                </div>
-                            )
-                        }>
-                        <div className={'documentButtonBar-linkButton-empty'} ref={this._dragRef} onPointerDown={this.onTemplateButton}>
-                            <FontAwesomeIcon className="documentdecorations-icon" icon="edit" size="sm" />
-                        </div>
-                    </Flyout> */
-
-                        <div className={'documentButtonBar-linkButton-empty'} ref={this._dragRef} onPointerDown={this.onTemplateButton}>
-                            <FontAwesomeIcon className="documentdecorations-icon" icon="edit" size="sm" />
-                        </div>
-                    }
+                    <Popup icon={<FaEdit />} popup={this.templateMenu} popupContainsPt={returnTrue} />
                 </div>
             </Tooltip>
         );
diff --git a/src/client/views/DocumentDecorations.tsx b/src/client/views/DocumentDecorations.tsx
index e9c4d9cc5..9d53c58c0 100644
--- a/src/client/views/DocumentDecorations.tsx
+++ b/src/client/views/DocumentDecorations.tsx
@@ -77,7 +77,7 @@ export class DocumentDecorations extends ObservableReactComponent<DocumentDecora
                 const {x,y} = Utils.rotPt(e.clientX - center.x, 
                                           e.clientY - center.y, 
                                           NumCast(SelectionManager.Views.lastElement()?.screenToViewTransform().Rotate));
-                (this._showNothing = !(this.Bounds.x !== Number.MAX_VALUE && //
+                (this._showNothing = !DocumentButtonBar.Instance?._tooltipOpen && !(this.Bounds.x !== Number.MAX_VALUE && //
                     (this.Bounds.x > center.x+x || this.Bounds.r < center.x+x || 
                      this.Bounds.y > center.y+y || this.Bounds.b < center.y+y )));
             })); // prettier-ignore
@@ -514,7 +514,7 @@ export class DocumentDecorations extends ObservableReactComponent<DocumentDecora
     //
     // determines if anything being dragged directly or via a group has a fixed aspect ratio (in which case we resize uniformly)
     //
-    hasFixedAspect = (doc: Doc): boolean => (doc.isGroup ? DocListCast(doc.data).some(this.hasFixedAspect) : !BoolCast(doc.layout_nativeDimEditable));
+    hasFixedAspect = (doc: Doc): boolean => (doc.isGroup ? DocListCast(doc.data).some(this.hasFixedAspect) : !BoolCast(doc._layout_nativeDimEditable));
 
     //
     // resize a single DocumentView about the specified reference point, possibly setting/updating the native dimensions of the Doc
diff --git a/src/client/views/InkingStroke.tsx b/src/client/views/InkingStroke.tsx
index 92644d3c5..122e5c4c3 100644
--- a/src/client/views/InkingStroke.tsx
+++ b/src/client/views/InkingStroke.tsx
@@ -438,7 +438,7 @@ export class InkingStroke extends ViewBoxBaseComponent<FieldViewProps>() impleme
                 <svg
                     className="inkStroke"
                     style={{
-                        transform: isInkMask ? `rotate(-${NumCast(this._props.CollectionFreeFormDocumentView?.()._props.w_Rotation?.() ?? 0)}deg) translate(${InkingStroke.MaskDim / 2}px, ${InkingStroke.MaskDim / 2}px)` : undefined,
+                        transform: isInkMask ? `rotate(-${NumCast(this._props.CollectionFreeFormDocumentView?.()._props.rotation ?? 0)}deg) translate(${InkingStroke.MaskDim / 2}px, ${InkingStroke.MaskDim / 2}px)` : undefined,
                         // mixBlendMode: this.layoutDoc.tool === InkTool.Highlighter ? 'multiply' : 'unset',
                         cursor: this._props.isSelected() ? 'default' : undefined,
                     }}
diff --git a/src/client/views/TemplateMenu.tsx b/src/client/views/TemplateMenu.tsx
index 5fc33207e..f7729dbc7 100644
--- a/src/client/views/TemplateMenu.tsx
+++ b/src/client/views/TemplateMenu.tsx
@@ -81,7 +81,7 @@ export class TemplateMenu extends React.Component<TemplateMenuProps> {
     componentDidMount() {
         !this._addedKeys && (this._addedKeys = new ObservableSet());
         [...Array.from(Object.keys(this.props.docViews[0].Document[DocData])), ...Array.from(Object.keys(this.props.docViews[0].Document))]
-            .filter(key => key.startsWith('layout_'))
+            .filter(key => key.startsWith('layout_') && key !== 'layout_fieldKey')
             .map(key => runInAction(() => this._addedKeys.add(key.replace('layout_', ''))));
     }
 
diff --git a/src/client/views/collections/TabDocView.tsx b/src/client/views/collections/TabDocView.tsx
index b52f2e7b6..699ec3b95 100644
--- a/src/client/views/collections/TabDocView.tsx
+++ b/src/client/views/collections/TabDocView.tsx
@@ -638,7 +638,7 @@ export class TabMinimapView extends ObservableReactComponent<TabMinimapViewProps
     render() {
         return this._props.document.layout !== CollectionView.LayoutString(Doc.LayoutFieldKey(this._props.document)) || this._props.document?._type_collection !== CollectionViewType.Freeform ? null : (
             <div className="miniMap-hidden">
-                <Popup icon={<FontAwesomeIcon icon="globe-asia" size="lg" />} color={SettingsManager.userVariantColor} type={Type.TERT} onPointerDown={e => e.stopPropagation()} placement={'top-end'} popup={this.popup} />
+                <Popup icon={<FontAwesomeIcon icon="globe-asia" size="lg" />} color={SettingsManager.userVariantColor} type={Type.TERT} onPointerDown={e => e.stopPropagation()} placement="top-end" popup={this.popup} />
             </div>
         );
     }
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index e48656f5e..877569ab3 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -17,7 +17,7 @@ import { BoolCast, Cast, DocCast, NumCast, ScriptCast, StrCast } from '../../../
 import { ImageField } from '../../../../fields/URLField';
 import { TraceMobx } from '../../../../fields/util';
 import { GestureUtils } from '../../../../pen-gestures/GestureUtils';
-import { aggregateBounds, DashColor, emptyFunction, intersectRect, lightOrDark, OmitKeys, returnFalse, returnZero, setupMoveUpEvents, Utils } from '../../../../Utils';
+import { aggregateBounds, DashColor, emptyFunction, intersectRect, lightOrDark, numberValue, OmitKeys, returnFalse, returnZero, setupMoveUpEvents, Utils } from '../../../../Utils';
 import { CognitiveServices } from '../../../cognitive_services/CognitiveServices';
 import { Docs, DocUtils } from '../../../documents/Documents';
 import { CollectionViewType, DocumentType } from '../../../documents/DocumentTypes';
@@ -760,7 +760,6 @@ export class CollectionFreeFormView extends CollectionSubView<Partial<collection
         this.onGesture(e, new GestureUtils.GestureEvent(gesture, points, GestureOverlay.getBounds(points), text));
     };
 
-    @action
     onPointerMove = (e: PointerEvent) => {
         if (this.tryDragCluster(e, this._hitCluster)) {
             e.stopPropagation(); // we're moving a cluster, so stop propagation and return true to end panning and let the document drag take over
@@ -1344,7 +1343,7 @@ export class CollectionFreeFormView extends CollectionSubView<Partial<collection
 
     renderCutoffProvider = computedFn(
         function renderCutoffProvider(this: any, doc: Doc) {
-            return !this._renderCutoffData.get(doc[Id] + '');
+            return this.Document.isTemplateDoc ? false : !this._renderCutoffData.get(doc[Id] + '');
         }.bind(this)
     );
 
@@ -1467,7 +1466,7 @@ export class CollectionFreeFormView extends CollectionSubView<Partial<collection
                 if (!code.includes('dashDiv')) {
                     const script = CompileScript(code, { params: { docView: 'any' }, typecheck: false, editable: true });
                     if (script.compiled) script.run({ this: this.DocumentView?.() });
-                } else code && !first && eval(code);
+                } else code && !first && eval?.(code);
             },
             { fireImmediately: true }
         );
@@ -1712,7 +1711,7 @@ export class CollectionFreeFormView extends CollectionSubView<Partial<collection
     incrementalRender = action(() => {
         if (!LightboxView.LightboxDoc || LightboxView.Contains(this.DocumentView?.())) {
             const layout_unrendered = this.childDocs.filter(doc => !this._renderCutoffData.get(doc[Id]));
-            const loadIncrement = 5;
+            const loadIncrement = this.Document.isTemplateDoc ? Number.MAX_VALUE : 5;
             for (var i = 0; i < Math.min(layout_unrendered.length, loadIncrement); i++) {
                 this._renderCutoffData.set(layout_unrendered[i][Id] + '', true);
             }
diff --git a/src/client/views/nodes/ImageBox.tsx b/src/client/views/nodes/ImageBox.tsx
index 923aead64..251235b93 100644
--- a/src/client/views/nodes/ImageBox.tsx
+++ b/src/client/views/nodes/ImageBox.tsx
@@ -141,6 +141,7 @@ export class ImageBox extends ViewBoxAnnotatableComponent<FieldViewProps>() impl
                 const targetField = Doc.LayoutFieldKey(layoutDoc);
                 const targetDoc = layoutDoc[DocData];
                 if (targetDoc[targetField] instanceof ImageField) {
+                    added = true;
                     this.dataDoc[this.fieldKey] = ObjectField.MakeCopy(targetDoc[targetField] as ImageField);
                     Doc.SetNativeWidth(this.dataDoc, Doc.NativeWidth(targetDoc), this.fieldKey);
                     Doc.SetNativeHeight(this.dataDoc, Doc.NativeHeight(targetDoc), this.fieldKey);
-- 
cgit v1.2.3-70-g09d2


From b938ac2909290bd5dd11eeb0a0056f4679dbb25e Mon Sep 17 00:00:00 2001
From: bobzel <zzzman@gmail.com>
Date: Thu, 7 Mar 2024 10:24:56 -0500
Subject: fixed several things related to templates for labels (used as icons)
 and  FontIconboxes. Also made labels non uniformly  resizable .

---
 src/client/documents/Documents.ts                        | 16 +++++++---------
 src/client/util/CurrentUserUtils.ts                      | 16 +++++++++-------
 src/client/views/DocumentDecorations.tsx                 | 10 +++++-----
 .../collectionFreeForm/CollectionFreeFormView.tsx        | 12 ++++++++----
 src/client/views/nodes/FontIconBox/FontIconBox.tsx       |  8 ++++++--
 src/client/views/nodes/LabelBox.tsx                      | 10 +++-------
 6 files changed, 38 insertions(+), 34 deletions(-)

(limited to 'src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx')

diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts
index d41cd24d4..b7d8222b9 100644
--- a/src/client/documents/Documents.ts
+++ b/src/client/documents/Documents.ts
@@ -277,8 +277,8 @@ export class DocumentOptions {
     layout_borderRounding?: string;
     _layout_modificationDate?: DATEt = new DateInfo('last modification date of doc layout', false);
     _layout_nativeDimEditable?: BOOLt = new BoolInfo('native dimensions can be modified using document decoration reizers', false);
-    _layout_reflowVertical?: BOOLt = new BoolInfo('native height can be changed independent of width by dragging decoration resizers');
-    _layout_reflowHorizontal?: BOOLt = new BoolInfo('whether a doc with a native size can be horizonally resized, causing some form of reflow');
+    _layout_reflowVertical?: BOOLt = new BoolInfo('permit vertical resizing with content "reflow"');
+    _layout_reflowHorizontal?: BOOLt = new BoolInfo('permit horizontal resizing with content reflow');
     layout_boxShadow?: string; // box-shadow css string OR "standard" to use dash standard box shadow
     layout_maxShown?: NUMt = new NumInfo('maximum number of children to display at one time (see multicolumnview)');
     _layout_autoHeight?: BOOLt = new BoolInfo('whether document automatically resizes vertically to display contents');
@@ -317,7 +317,6 @@ export class DocumentOptions {
     _label_minFontSize?: NUMt = new NumInfo('minimum font size for labelBoxes', false);
     _label_maxFontSize?: NUMt = new NumInfo('maximum font size for labelBoxes', false);
     stroke_width?: NUMt = new NumInfo('width of an ink stroke', false);
-    icon_label?: STRt = new StrInfo('label to use for a fontIcon doc (otherwise, the title is used)', false);
     mediaState?: STRt = new StrInfo(`status of audio/video media document: ${media_state.PendingRecording}, ${media_state.Recording}, ${media_state.Paused}, ${media_state.Playing}`, false);
     recording?: BOOLt = new BoolInfo('whether WebCam is recording or not');
     slides?: DOCt = new DocInfo('presentation slide associated with video recording (bcz: should be renamed!!)');
@@ -652,8 +651,8 @@ export namespace Docs {
             [
                 DocumentType.LABEL,
                 {
-                    layout: { view: LabelBox, dataField: defaultDataKey },
-                    options: { _singleLine: true },
+                    layout: { view: LabelBox, dataField: 'title' },
+                    options: { _singleLine: true, layout_nativeDimEditable: true, layout_reflowHorizontal: true, layout_reflowVertical: true },
                 },
             ],
             [
@@ -684,8 +683,8 @@ export namespace Docs {
             [
                 DocumentType.BUTTON,
                 {
-                    layout: { view: LabelBox, dataField: 'onClick' },
-                    options: {},
+                    layout: { view: LabelBox, dataField: 'title' },
+                    options: { layout_nativeDimEditable: true, layout_reflowHorizontal: true, layout_reflowVertical: true },
                 },
             ],
             [
@@ -1881,8 +1880,7 @@ export namespace DocUtils {
         const hasContextAnchor = LinkManager.Links(doc).some(l => (l.link_anchor_2 === doc && Cast(l.link_anchor_1, Doc, null)?.annotationOn === context) || (l.link_anchor_1 === doc && Cast(l.link_anchor_2, Doc, null)?.annotationOn === context));
         if (context && !hasContextAnchor && (context.type === DocumentType.VID || context.type === DocumentType.WEB || context.type === DocumentType.PDF || context.type === DocumentType.IMG)) {
             const pushpin = Docs.Create.FontIconDocument({
-                title: 'pushpin',
-                icon_label: '',
+                title: '',
                 annotationOn: Cast(doc.annotationOn, Doc, null),
                 followLinkToggle: true,
                 icon: 'map-pin',
diff --git a/src/client/util/CurrentUserUtils.ts b/src/client/util/CurrentUserUtils.ts
index 310613bc9..cfba003fc 100644
--- a/src/client/util/CurrentUserUtils.ts
+++ b/src/client/util/CurrentUserUtils.ts
@@ -22,7 +22,7 @@ import { CollectionTreeView, TreeViewType } from "../views/collections/Collectio
 import { Colors } from "../views/global/globalEnums";
 import { media_state } from "../views/nodes/AudioBox";
 import { OpenWhere } from "../views/nodes/DocumentView";
-import { ButtonType } from "../views/nodes/FontIconBox/FontIconBox";
+import { ButtonType, FontIconBox } from "../views/nodes/FontIconBox/FontIconBox";
 import { ImportElementBox } from "../views/nodes/importBox/ImportElementBox";
 import { DragManager, dropActionType } from "./DragManager";
 import { MakeTemplate } from "./DropConverter";
@@ -32,6 +32,8 @@ import { ScriptingGlobals } from "./ScriptingGlobals";
 import { ColorScheme } from "./SettingsManager";
 import { SnappingManager } from "./SnappingManager";
 import { UndoManager } from "./UndoManager";
+import { LabelBox } from "../views/nodes/LabelBox";
+import { ImageBox } from "../views/nodes/ImageBox";
 
 interface Button {
     // DocumentOptions fields a button can set
@@ -156,14 +158,14 @@ export class CurrentUserUtils {
             }
             const allopts = {isSystem: true, onClickScriptDisable: "never",  ...opts};
             return DocUtils.AssignScripts(  (curIcon?.iconTemplate === opts.iconTemplate ? 
-                      DocUtils.AssignOpts(curIcon, allopts):undefined) ?? ((templateIconsDoc[iconFieldName] = MakeTemplate(creator(allopts), true, iconFieldName, templateField))),
+                      DocUtils.AssignOpts(curIcon, allopts):undefined) ?? ((templateIconsDoc[iconFieldName] = MakeTemplate(creator(allopts, templateField), true, iconFieldName, templateField))),
                 {onClick:"deiconifyView(documentView)", onDoubleClick: "deiconifyViewToLightbox(documentView)", });
         };
-        const labelBox = (opts: DocumentOptions, data?:string) => Docs.Create.LabelDocument({
-            textTransform: "unset", letterSpacing: "unset", _singleLine: false, _label_minFontSize: 14, _label_maxFontSize: 14, layout_borderRounding: "5px",  _width: 150, _height: 70, _xPadding: 10, _yPadding: 10, ...opts
+        const labelBox = (opts: DocumentOptions, fieldKey:string) => Docs.Create.LabelDocument({
+            layout: LabelBox.LayoutString(fieldKey), textTransform: "unset", letterSpacing: "unset", _singleLine: false, _label_minFontSize: 14, _label_maxFontSize: 14, layout_borderRounding: "5px",  _width: 150, _height: 70, _xPadding: 10, _yPadding: 10, ...opts
         });
-        const imageBox = (opts: DocumentOptions, url?:string) => Docs.Create.ImageDocument(url ?? "http://www.cs.brown.edu/~bcz/noImage.png", { "icon_nativeWidth": 360 / 4, "icon_nativeHeight": 270 / 4, iconTemplate:DocumentType.IMG,  _width: 360 / 4, _height: 270 / 4,  _layout_showTitle: "title", ...opts });
-        const fontBox = (opts:DocumentOptions, data?:string) => Docs.Create.FontIconDocument({ _nativeHeight: 30, _nativeWidth: 30, _width: 30, _height: 30, ...opts  });
+        const imageBox = (opts: DocumentOptions, fieldKey:string) => Docs.Create.ImageDocument( "http://www.cs.brown.edu/~bcz/noImage.png", { layout:ImageBox.LayoutString(fieldKey), "icon_nativeWidth": 360 / 4, "icon_nativeHeight": 270 / 4, iconTemplate:DocumentType.IMG,  _width: 360 / 4, _height: 270 / 4,  _layout_showTitle: "title", ...opts });
+        const fontBox = (opts:DocumentOptions, fieldKey:string) => Docs.Create.FontIconDocument({ layout:FontIconBox.LayoutString(fieldKey), _nativeHeight: 30, _nativeWidth: 30, _width: 30, _height: 30, ...opts  });
         const iconTemplates = [
             makeIconTemplate(undefined,          "title", { iconTemplate:DocumentType.LABEL, backgroundColor: "dimgray"}),
             makeIconTemplate(DocumentType.AUDIO, "title", { iconTemplate:DocumentType.LABEL, backgroundColor: "lightgreen"}),
@@ -174,7 +176,7 @@ export class CurrentUserUtils {
             makeIconTemplate(DocumentType.COL,   "icon",  { iconTemplate:DocumentType.IMG}),
             makeIconTemplate(DocumentType.COL,   "icon",  { iconTemplate:DocumentType.IMG}),
             makeIconTemplate(DocumentType.VID,   "icon",  { iconTemplate:DocumentType.IMG}),
-            makeIconTemplate(DocumentType.BUTTON,"data",  { iconTemplate:DocumentType.FONTICON}),
+            makeIconTemplate(DocumentType.BUTTON,"title", { iconTemplate:DocumentType.FONTICON}),
             //nasty hack .. templates are looked up exclusively by type -- but we want a template for a document with a certain field (transcription) .. so this hack and the companion hack in createCustomView does this for now
             makeIconTemplate("transcription" as any, "transcription", { iconTemplate:DocumentType.LABEL, backgroundColor: "orange" }),
             //makeIconTemplate(DocumentType.PDF, "icon", {iconTemplate:DocumentType.IMG}, (opts) => imageBox("http://www.cs.brown.edu/~bcz/noImage.png", opts))
diff --git a/src/client/views/DocumentDecorations.tsx b/src/client/views/DocumentDecorations.tsx
index 87ee962a0..2fb9f0fc1 100644
--- a/src/client/views/DocumentDecorations.tsx
+++ b/src/client/views/DocumentDecorations.tsx
@@ -323,7 +323,7 @@ export class DocumentDecorations extends ObservableReactComponent<DocumentDecora
                 SelectionManager.Docs.map(doc => {
                     const docMax = Math.min(NumCast(doc.width) / 2, NumCast(doc.height) / 2);
                     const radius = Math.min(1, dist / maxDist) * docMax; // set radius based on ratio of drag distance to half diagonal distance of bounding box
-                    doc.layout_borderRounding = `${radius}px`;
+                    doc._layout_borderRounding = `${radius}px`;
                 });
                 return false;
             },
@@ -533,9 +533,9 @@ export class DocumentDecorations extends ObservableReactComponent<DocumentDecora
             const [initWidth, initHeight] = [NumCast(doc._width, 1), NumCast(doc._height)];
 
             const modifyNativeDim =
-                (opts.ctrlKey && doc.layout_nativeDimEditable) || // e.g., PDF or web page
-                (doc.layout_reflowHorizontal && opts.dragHdl !== 'bottom' && opts.dragHdl !== 'top') || // eg rtf or some web pages
-                (doc.layout_reflowVertical && (opts.dragHdl === 'bottom' || opts.dragHdl === 'top' || opts.ctrlKey)); // eg rtf, web, pdf
+                (opts.ctrlKey && doc._layout_nativeDimEditable) || // e.g., PDF or web page
+                (doc._layout_reflowHorizontal && opts.dragHdl !== 'bottom' && opts.dragHdl !== 'top') || // eg rtf or some web pages
+                (doc._layout_reflowVertical && (opts.dragHdl === 'bottom' || opts.dragHdl === 'top' || opts.ctrlKey)); // eg rtf, web, pdf
             if (nwidth && nheight && !modifyNativeDim) {
                 // eg., dragging right resizer on PDF -- enforce native dimensions because not expliclty overridden with ctrl or bottom resize drag
                 scale.x === 1 ? (scale.x = scale.y) : (scale.y = scale.x);
@@ -545,7 +545,7 @@ export class DocumentDecorations extends ObservableReactComponent<DocumentDecora
                 const setData = Doc.NativeWidth(doc[DocData]) === doc.nativeWidth;
                 doc.nativeWidth = scale.x * Doc.NativeWidth(doc);
                 if (setData) Doc.SetNativeWidth(doc[DocData], NumCast(doc.nativeWidth));
-                if (doc.layout_reflowVertical && !NumCast(doc.nativeHeight)) {
+                if (doc._layout_reflowVertical && !NumCast(doc.nativeHeight)) {
                     doc._nativeHeight = (initHeight / initWidth) * nwidth; // initializes the nativeHeight for a PDF
                 }
             }
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 877569ab3..4eb946939 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1,6 +1,6 @@
 import { Bezier } from 'bezier-js';
 import { Colors } from 'browndash-components';
-import { action, computed, IReactionDisposer, makeObservable, observable, reaction, runInAction } from 'mobx';
+import { action, computed, IReactionDisposer, makeObservable, observable, reaction, runInAction, trace } from 'mobx';
 import { observer } from 'mobx-react';
 import { computedFn } from 'mobx-utils';
 import * as React from 'react';
@@ -840,10 +840,14 @@ export class CollectionFreeFormView extends CollectionSubView<Partial<collection
                     if (excludeT < startSegmentT || excludeT > docCurveTVal) {
                         const localStartTVal = startSegmentT - Math.floor(i / 4);
                         t !== (localStartTVal < 0 ? 0 : localStartTVal) && segment.push(inkSegment.split(localStartTVal < 0 ? 0 : localStartTVal, t));
-                        segment.length && segments.push(segment);
+                        if (segment.length && (Math.abs(segment[0].points[0].x - segment[0].points.lastElement().x) > 0.5 || Math.abs(segment[0].points[0].y - segment[0].points.lastElement().y) > 0.5)) segments.push(segment);
                     }
                     // start a new segment from the intersection t value
-                    segment = tVals.length - 1 === index ? [inkSegment.split(t).right] : [];
+                    if (tVals.length - 1 === index) {
+                        const split = inkSegment.split(t).right;
+                        if (split && (Math.abs(split.points[0].x - split.points.lastElement().x) > 0.5 || Math.abs(split.points[0].y - split.points.lastElement().y) > 0.5)) segment = [split];
+                        else segment = [];
+                    } else segment = [];
                     startSegmentT = docCurveTVal;
                 });
             } else {
@@ -1647,7 +1651,7 @@ export class CollectionFreeFormView extends CollectionSubView<Partial<collection
         !this._props.isAnnotationOverlay &&
             !Doc.noviceMode &&
             optionItems.push({ description: (this._showAnimTimeline ? 'Close' : 'Open') + ' Animation Timeline', event: action(() => (this._showAnimTimeline = !this._showAnimTimeline)), icon: 'eye' });
-        this._props.renderDepth && optionItems.push({ description: 'Use Background Color as Default', event: () => (Cast(Doc.UserDoc().emptyCollection, Doc, null)._backgroundColor = StrCast(this.layoutDoc._backgroundColor)), icon: 'palette' });
+        this._props.renderDepth && optionItems.push({ description: 'Use Background Color as Default', event: () => (Cast(Doc.UserDoc().emptyCollection, Doc, null).backgroundColor = StrCast(this.layoutDoc.backgroundColor)), icon: 'palette' });
         this._props.renderDepth && optionItems.push({ description: 'Fit Content Once', event: this.fitContentOnce, icon: 'object-group' });
         if (!Doc.noviceMode) {
             optionItems.push({ description: (!Doc.NativeWidth(this.layoutDoc) || !Doc.NativeHeight(this.layoutDoc) ? 'Freeze' : 'Unfreeze') + ' Aspect', event: this.toggleNativeDimensions, icon: 'snowflake' });
diff --git a/src/client/views/nodes/FontIconBox/FontIconBox.tsx b/src/client/views/nodes/FontIconBox/FontIconBox.tsx
index d24c79b10..46043eefb 100644
--- a/src/client/views/nodes/FontIconBox/FontIconBox.tsx
+++ b/src/client/views/nodes/FontIconBox/FontIconBox.tsx
@@ -81,9 +81,13 @@ export class FontIconBox extends ViewBoxBaseComponent<ButtonProps>() {
         }
     };
 
-    // Determining UI Specs
+    /**
+     * this chooses the appropriate title for the label
+     * if the Document is a template, then we use the title of the data doc that it renders
+     * otherwise, we use the Document's title itself.
+     */
     @computed get label() {
-        return StrCast(this.dataDoc.icon_label, StrCast(this.Document.title));
+        return StrCast(this.Document.isTemplateDoc ? this.dataDoc.title : this.Document.title);
     }
     Icon = (color: string, iconFalse?: boolean) => {
         let icon;
diff --git a/src/client/views/nodes/LabelBox.tsx b/src/client/views/nodes/LabelBox.tsx
index fd3074a88..be20b5934 100644
--- a/src/client/views/nodes/LabelBox.tsx
+++ b/src/client/views/nodes/LabelBox.tsx
@@ -17,12 +17,8 @@ import './LabelBox.scss';
 import { PinProps, PresBox } from './trails';
 import { Docs } from '../../documents/Documents';
 
-export interface LabelBoxProps extends FieldViewProps {
-    label?: string;
-}
-
 @observer
-export class LabelBox extends ViewBoxBaseComponent<LabelBoxProps>() {
+export class LabelBox extends ViewBoxBaseComponent<FieldViewProps>() {
     public static LayoutString(fieldKey: string) {
         return FieldView.LayoutString(LabelBox, fieldKey);
     }
@@ -32,7 +28,7 @@ export class LabelBox extends ViewBoxBaseComponent<LabelBoxProps>() {
     private dropDisposer?: DragManager.DragDropDisposer;
     private _timeout: any;
 
-    constructor(props: LabelBoxProps) {
+    constructor(props: FieldViewProps) {
         super(props);
         makeObservable(this);
     }
@@ -45,7 +41,7 @@ export class LabelBox extends ViewBoxBaseComponent<LabelBoxProps>() {
     }
 
     @computed get Title() {
-        return this.dataDoc.title_custom ? StrCast(this.Document.title) : this._props.label ? this._props.label : Field.toString(this.dataDoc[this.fieldKey] as Field);
+        return Field.toString(this.dataDoc[this.fieldKey] as Field);
     }
 
     protected createDropTarget = (ele: HTMLDivElement) => {
-- 
cgit v1.2.3-70-g09d2


From f1ed1cff137c06afc4d4db8a8778f7827404889b Mon Sep 17 00:00:00 2001
From: bobzel <zzzman@gmail.com>
Date: Sat, 9 Mar 2024 19:05:30 -0500
Subject: fixed up default text that uses a template to process an initial
 carriage return properly.  fixed text with inherited templates to be able to
 show fields with a default dashField value from template that can be
 overidden on instance.

---
 src/client/documents/Documents.ts                  | 11 +++---
 src/client/views/MarqueeAnnotator.tsx              |  4 +--
 src/client/views/PreviewCursor.tsx                 |  2 +-
 src/client/views/collections/TreeView.tsx          |  2 +-
 .../collectionFreeForm/CollectionFreeFormView.tsx  | 36 +++++++++++--------
 .../collections/collectionFreeForm/MarqueeView.tsx |  2 +-
 .../collectionSchema/SchemaTableCell.tsx           |  2 +-
 src/client/views/nodes/MapBox/MapBox.tsx           |  4 +--
 .../views/nodes/MapboxMapBox/MapboxContainer.tsx   |  4 +--
 .../views/nodes/formattedText/FormattedTextBox.tsx | 40 ++++++++++------------
 10 files changed, 55 insertions(+), 52 deletions(-)

(limited to 'src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx')

diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts
index e6969d1f3..7a3b965fe 100644
--- a/src/client/documents/Documents.ts
+++ b/src/client/documents/Documents.ts
@@ -3,7 +3,7 @@ import { action, reaction, runInAction } from 'mobx';
 import { basename } from 'path';
 import { DateField } from '../../fields/DateField';
 import { Doc, DocListCast, Field, LinkedTo, Opt, StrListCast, updateCachedAcls } from '../../fields/Doc';
-import { Initializing } from '../../fields/DocSymbols';
+import { DocData, Initializing } from '../../fields/DocSymbols';
 import { Id } from '../../fields/FieldSymbols';
 import { HtmlField } from '../../fields/HtmlField';
 import { InkField, PointData } from '../../fields/InkField';
@@ -1981,10 +1981,8 @@ export namespace DocUtils {
         }
     }
 
-    export function GetNewTextDoc(title: string, x: number, y: number, width?: number, height?: number, noMargins?: boolean, annotationOn?: Doc, backgroundColor?: string) {
+    export function GetNewTextDoc(title: string, x: number, y: number, width?: number, height?: number, annotationOn?: Doc, backgroundColor?: string) {
         const tbox = Docs.Create.TextDocument('', {
-            _xMargin: noMargins ? 0 : undefined,
-            _yMargin: noMargins ? 0 : undefined,
             annotationOn,
             backgroundColor,
             _width: width || 200,
@@ -1997,11 +1995,14 @@ export namespace DocUtils {
             _layout_enableAltContentUI: BoolCast(Doc.UserDoc().defaultToFlashcards),
             title,
         });
+
         const template = Doc.UserDoc().defaultTextLayout;
         if (template instanceof Doc) {
+            // if a default text template is specified
             tbox._width = NumCast(template._width);
             tbox.layout_fieldKey = 'layout_' + StrCast(template.title);
-            Doc.GetProto(tbox)[StrCast(tbox.layout_fieldKey)] = template;
+            Doc.GetProto(tbox)[StrCast(tbox.layout_fieldKey)] = template; // set the text doc's layout to render with the text template
+            tbox[DocData].proto = template; // and also set the text doc to inherit from the template (this allows the template to specify default field values)
         }
         return tbox;
     }
diff --git a/src/client/views/MarqueeAnnotator.tsx b/src/client/views/MarqueeAnnotator.tsx
index a4303c3aa..f59042b04 100644
--- a/src/client/views/MarqueeAnnotator.tsx
+++ b/src/client/views/MarqueeAnnotator.tsx
@@ -88,7 +88,7 @@ export class MarqueeAnnotator extends ObservableReactComponent<MarqueeAnnotatorP
 
         const textRegionAnno = Docs.Create.HTMLMarkerDocument([], {
             annotationOn: this.props.Document,
-            text: this.props.selectionText(),
+            text: this.props.selectionText() as any, // text want an RTFfield, but strings are acceptable, too.
             backgroundColor: 'transparent',
             presentation_duration: 2100,
             presentation_transition: 500,
@@ -198,7 +198,7 @@ export class MarqueeAnnotator extends ObservableReactComponent<MarqueeAnnotatorP
             const sourceAnchorCreator = () => this.highlight(this.props.highlightDragSrcColor ?? 'rgba(173, 216, 230, 0.75)', true, undefined, true); // hyperlink color
 
             const targetCreator = (annotationOn: Doc | undefined) => {
-                const target = DocUtils.GetNewTextDoc('Note linked to ' + this.props.Document.title, 0, 0, 100, 100, undefined, annotationOn, 'yellow');
+                const target = DocUtils.GetNewTextDoc('Note linked to ' + this.props.Document.title, 0, 0, 100, 100, annotationOn, 'yellow');
                 FormattedTextBox.SetSelectOnLoad(target);
                 return target;
             };
diff --git a/src/client/views/PreviewCursor.tsx b/src/client/views/PreviewCursor.tsx
index 456b753b4..a94c18295 100644
--- a/src/client/views/PreviewCursor.tsx
+++ b/src/client/views/PreviewCursor.tsx
@@ -85,7 +85,7 @@ export class PreviewCursor extends ObservableReactComponent<{}> {
                 } else {
                     FormattedTextBox.PasteOnLoad = e;
                     if (e.clipboardData.getData('dash/pdfAnchor')) e.preventDefault();
-                    UndoManager.RunInBatch(() => this._addLiveTextDoc?.(DocUtils.GetNewTextDoc('', newPoint[0], newPoint[1], 500, undefined, undefined, undefined)), 'paste');
+                    UndoManager.RunInBatch(() => this._addLiveTextDoc?.(DocUtils.GetNewTextDoc('', newPoint[0], newPoint[1], 500, undefined, undefined)), 'paste');
                 }
             }
             //pasting in images
diff --git a/src/client/views/collections/TreeView.tsx b/src/client/views/collections/TreeView.tsx
index 0c0e49411..c6bbcb0a5 100644
--- a/src/client/views/collections/TreeView.tsx
+++ b/src/client/views/collections/TreeView.tsx
@@ -884,7 +884,7 @@ export class TreeView extends ObservableReactComponent<TreeViewProps> {
         // prettier-ignore
         switch (property.split(':')[0]) {
             case StyleProp.Opacity:         return this.treeView.outlineMode ? undefined : 1;
-            case StyleProp.BackgroundColor: return this.selected ? '#7089bb' : StrCast(doc._backgroundColor, StrCast(doc.backgroundColor));
+            case StyleProp.BackgroundColor: return this.selected ? '#7089bb' : undefined;//StrCast(doc._backgroundColor, StrCast(doc.backgroundColor));
             case StyleProp.Highlighting:    if (this.treeView.outlineMode) return undefined;
             case StyleProp.BoxShadow:       return undefined;
             case StyleProp.DocContents:
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 4eb946939..9500b918a 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -30,7 +30,7 @@ import { SelectionManager } from '../../../util/SelectionManager';
 import { freeformScrollMode } from '../../../util/SettingsManager';
 import { SnappingManager } from '../../../util/SnappingManager';
 import { Transform } from '../../../util/Transform';
-import { undoBatch, UndoManager } from '../../../util/UndoManager';
+import { undoable, undoBatch, UndoManager } from '../../../util/UndoManager';
 import { Timeline } from '../../animationtimeline/Timeline';
 import { ContextMenu } from '../../ContextMenu';
 import { GestureOverlay } from '../../GestureOverlay';
@@ -1146,23 +1146,29 @@ export class CollectionFreeFormView extends CollectionSubView<Partial<collection
 
     isContentActive = () => this._props.isContentActive();
 
-    @undoBatch
+    /**
+     * Create a new text note of the same style as the one being typed into.
+     * If the text doc is be part of a larger templated doc, the new Doc will be a copy of the templated Doc
+     *
+     * @param fieldProps render props for the text doc being typed into
+     * @param below whether to place the new text Doc below or to the right of the one being typed into.
+     * @returns whether the new text doc was created and added successfully
+     */
+    createTextDocCopy = undoable((fieldProps: FieldViewProps, below: boolean) => {
+        const textDoc = DocCast(fieldProps.Document.rootDocument, fieldProps.Document);
+        const newDoc = Doc.MakeCopy(textDoc, true);
+        newDoc[DocData][Doc.LayoutFieldKey(newDoc, fieldProps.LayoutTemplateString)] = undefined; // the copy should not copy the text contents of it source, just the render style
+        newDoc.x = NumCast(textDoc.x) + (below ? 0 : NumCast(textDoc._width) + 10);
+        newDoc.y = NumCast(textDoc.y) + (below ? NumCast(textDoc._height) + 10 : 0);
+        FormattedTextBox.SetSelectOnLoad(newDoc);
+        FormattedTextBox.DontSelectInitialText = true;
+        return this.addDocument?.(newDoc);
+    }, 'copied text note');
+
     onKeyDown = (e: React.KeyboardEvent, fieldProps: FieldViewProps) => {
         if ((e.metaKey || e.ctrlKey || e.altKey || fieldProps.Document._createDocOnCR) && ['Tab', 'Enter'].includes(e.key)) {
             e.stopPropagation?.();
-            const below = !e.altKey && e.key !== 'Tab';
-            const layout_fieldKey = StrCast(fieldProps.fieldKey);
-            const newDoc = Doc.MakeCopy(fieldProps.Document, true);
-            const dataField = fieldProps.Document[Doc.LayoutFieldKey(newDoc)];
-            newDoc[DocData][Doc.LayoutFieldKey(newDoc)] = dataField === undefined || Cast(dataField, listSpec(Doc), null)?.length !== undefined ? new List<Doc>([]) : undefined;
-            if (below) newDoc.y = NumCast(fieldProps.Document.y) + NumCast(fieldProps.Document._height) + 10;
-            else newDoc.x = NumCast(fieldProps.Document.x) + NumCast(fieldProps.Document._width) + 10;
-            if (layout_fieldKey !== 'layout' && fieldProps.Document[layout_fieldKey] instanceof Doc) {
-                newDoc[layout_fieldKey] = fieldProps.Document[layout_fieldKey];
-            }
-            newDoc[DocData].text = undefined;
-            FormattedTextBox.SetSelectOnLoad(newDoc);
-            return this.addDocument?.(newDoc);
+            return this.createTextDocCopy(fieldProps, !e.altKey && e.key !== 'Tab');
         }
     };
     @computed get childPointerEvents() {
diff --git a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx
index e22b83307..b913e05ad 100644
--- a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx
+++ b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx
@@ -178,7 +178,7 @@ export class MarqueeView extends ObservableReactComponent<SubCollectionViewProps
         } else if (!e.ctrlKey && !e.metaKey && SelectionManager.Views.length < 2) {
             FormattedTextBox.SelectOnLoadChar = Doc.UserDoc().defaultTextLayout && !this._props.childLayoutString ? e.key : '';
             FormattedTextBox.LiveTextUndo = UndoManager.StartBatch('type new note');
-            this._props.addLiveTextDocument(DocUtils.GetNewTextDoc('-typed text-', x, y, 200, 100, this._props.xPadding === 0));
+            this._props.addLiveTextDocument(DocUtils.GetNewTextDoc('-typed text-', x, y, 200, 100));
             e.stopPropagation();
         }
     };
diff --git a/src/client/views/collections/collectionSchema/SchemaTableCell.tsx b/src/client/views/collections/collectionSchema/SchemaTableCell.tsx
index 46867665d..ed1b519b4 100644
--- a/src/client/views/collections/collectionSchema/SchemaTableCell.tsx
+++ b/src/client/views/collections/collectionSchema/SchemaTableCell.tsx
@@ -134,7 +134,7 @@ export class SchemaTableCell extends ObservableReactComponent<SchemaTableCellPro
                         if (shiftDown && enterKey) {
                             this._props.setColumnValues(this._props.fieldKey.replace(/^_/, ''), value);
                         }
-                        const ret = KeyValueBox.SetField(this._props.Document, this._props.fieldKey.replace(/^_/, ''), value);
+                        const ret = KeyValueBox.SetField(this._props.Document, this._props.fieldKey.replace(/^_/, ''), value, Doc.IsDataProto(this._props.Document) ? true : undefined);
                         this._props.finishEdit?.();
                         return ret;
                     }, 'edit schema cell')}
diff --git a/src/client/views/nodes/MapBox/MapBox.tsx b/src/client/views/nodes/MapBox/MapBox.tsx
index c185c66fc..927e6fad4 100644
--- a/src/client/views/nodes/MapBox/MapBox.tsx
+++ b/src/client/views/nodes/MapBox/MapBox.tsx
@@ -379,7 +379,7 @@ export class MapBox extends ViewBoxAnnotatableComponent<FieldViewProps>() implem
         });
 
         const targetCreator = (annotationOn: Doc | undefined) => {
-            const target = DocUtils.GetNewTextDoc('Note linked to ' + this.Document.title, 0, 0, 100, 100, undefined, annotationOn, 'yellow');
+            const target = DocUtils.GetNewTextDoc('Note linked to ' + this.Document.title, 0, 0, 100, 100, annotationOn, 'yellow');
             FormattedTextBox.SetSelectOnLoad(target);
             return target;
         };
@@ -592,7 +592,7 @@ export class MapBox extends ViewBoxAnnotatableComponent<FieldViewProps>() implem
         /// this should use SELECTED pushpin for lat/long  if there is a selection, otherwise CENTER
         const anchor = Docs.Create.ConfigDocument({
             title: 'MapAnchor:' + this.Document.title,
-            text: StrCast(this.selectedPinOrRoute?.map) || StrCast(this.Document.map) || 'map location',
+            text: (StrCast(this.selectedPinOrRoute?.map) || StrCast(this.Document.map) || 'map location') as any,
             config_latitude: NumCast((existingPin ?? this.selectedPinOrRoute)?.latitude ?? this.dataDoc.latitude),
             config_longitude: NumCast((existingPin ?? this.selectedPinOrRoute)?.longitude ?? this.dataDoc.longitude),
             config_map_zoom: NumCast(this.dataDoc.map_zoom),
diff --git a/src/client/views/nodes/MapboxMapBox/MapboxContainer.tsx b/src/client/views/nodes/MapboxMapBox/MapboxContainer.tsx
index 8a5bd7ce6..3eb051dbf 100644
--- a/src/client/views/nodes/MapboxMapBox/MapboxContainer.tsx
+++ b/src/client/views/nodes/MapboxMapBox/MapboxContainer.tsx
@@ -232,7 +232,7 @@ export class MapBoxContainer extends ViewBoxAnnotatableComponent<FieldViewProps>
         });
 
         const targetCreator = (annotationOn: Doc | undefined) => {
-            const target = DocUtils.GetNewTextDoc('Note linked to ' + this.Document.title, 0, 0, 100, 100, undefined, annotationOn, 'yellow');
+            const target = DocUtils.GetNewTextDoc('Note linked to ' + this.Document.title, 0, 0, 100, 100, annotationOn, 'yellow');
             FormattedTextBox.SetSelectOnLoad(target);
             return target;
         };
@@ -466,7 +466,7 @@ export class MapBoxContainer extends ViewBoxAnnotatableComponent<FieldViewProps>
         /// this should use SELECTED pushpin for lat/long  if there is a selection, otherwise CENTER
         const anchor = Docs.Create.ConfigDocument({
             title: 'MapAnchor:' + this.Document.title,
-            text: StrCast(this.selectedPin?.map) || StrCast(this.Document.map) || 'map location',
+            text: (StrCast(this.selectedPin?.map) || StrCast(this.Document.map) || 'map location') as any,
             config_latitude: NumCast((existingPin ?? this.selectedPin)?.latitude ?? this.dataDoc.latitude),
             config_longitude: NumCast((existingPin ?? this.selectedPin)?.longitude ?? this.dataDoc.longitude),
             config_map_zoom: NumCast(this.dataDoc.map_zoom),
diff --git a/src/client/views/nodes/formattedText/FormattedTextBox.tsx b/src/client/views/nodes/formattedText/FormattedTextBox.tsx
index 54e3e7b44..1ff7274f8 100644
--- a/src/client/views/nodes/formattedText/FormattedTextBox.tsx
+++ b/src/client/views/nodes/formattedText/FormattedTextBox.tsx
@@ -67,7 +67,6 @@ import { RichTextMenu, RichTextMenuPlugin } from './RichTextMenu';
 import { RichTextRules } from './RichTextRules';
 import { schema } from './schema_rts';
 import { SummaryView } from './SummaryView';
-import Select from 'react-select';
 // import * as applyDevTools from 'prosemirror-dev-tools';
 @observer
 export class FormattedTextBox extends ViewBoxAnnotatableComponent<FieldViewProps>() implements ViewBoxInterface {
@@ -100,7 +99,6 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<FieldViewProps
     private _dropDisposer?: DragManager.DragDropDisposer;
     private _recordingStart: number = 0;
     private _ignoreScroll = false;
-    private _lastText = '';
     private _hadDownFocus = false;
     private _focusSpeed: Opt<number>;
     private _keymap: any = undefined;
@@ -306,7 +304,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<FieldViewProps
             e.preventDefault();
             e.stopPropagation();
             const targetCreator = (annotationOn?: Doc) => {
-                const target = DocUtils.GetNewTextDoc('Note linked to ' + this.Document.title, 0, 0, 100, 100, undefined, annotationOn);
+                const target = DocUtils.GetNewTextDoc('Note linked to ' + this.Document.title, 0, 0, 100, 100, annotationOn);
                 FormattedTextBox.SetSelectOnLoad(target);
                 return target;
             };
@@ -1457,39 +1455,37 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<FieldViewProps
         }
 
         const selectOnLoad = Doc.AreProtosEqual(this._props.TemplateDataDocument ?? this.Document, FormattedTextBox.SelectOnLoad) && (!LightboxView.LightboxDoc || LightboxView.Contains(this.DocumentView?.()));
-        if (this._editorView && selectOnLoad && !this._props.dontRegisterView && !this._props.dontSelectOnLoad && this.isActiveTab(this.ProseRef)) {
-            const selLoadChar = FormattedTextBox.SelectOnLoadChar;
+        const selLoadChar = FormattedTextBox.SelectOnLoadChar;
+        if (selectOnLoad) {
             FormattedTextBox.SelectOnLoad = undefined;
+            FormattedTextBox.SelectOnLoadChar = '';
+        }
+        if (this._editorView && selectOnLoad && !this._props.dontRegisterView && !this._props.dontSelectOnLoad && this.isActiveTab(this.ProseRef)) {
             this._props.select(false);
             if (selLoadChar) {
                 const $from = this._editorView.state.selection.anchor ? this._editorView.state.doc.resolve(this._editorView.state.selection.anchor - 1) : undefined;
                 const mark = schema.marks.user_mark.create({ userid: Doc.CurrentUserEmail, modified: Math.floor(Date.now() / 1000) });
                 const curMarks = this._editorView.state.storedMarks ?? $from?.marksAcross(this._editorView.state.selection.$head) ?? [];
                 const storedMarks = [...curMarks.filter(m => m.type !== mark.type), mark];
-                const tr = this._editorView.state.tr
-                    .setStoredMarks(storedMarks)
-                    .insertText(FormattedTextBox.SelectOnLoadChar, this._editorView.state.doc.content.size - 1, this._editorView.state.doc.content.size)
-                    .setStoredMarks(storedMarks);
+                const tr1 = this._editorView.state.tr.setStoredMarks(storedMarks);
+                const tr2 = selLoadChar === 'Enter' ? tr1.insert(this._editorView.state.doc.content.size - 1, schema.nodes.paragraph.create()) : tr1.insertText(selLoadChar, this._editorView.state.doc.content.size - 1);
+                const tr = tr2.setStoredMarks(storedMarks);
+
                 this._editorView.dispatch(tr.setSelection(new TextSelection(tr.doc.resolve(tr.doc.content.size))));
             } else if (curText && !FormattedTextBox.DontSelectInitialText) {
                 selectAll(this._editorView.state, this._editorView?.dispatch);
             }
         }
-        selectOnLoad && this._editorView!.focus();
+        if (selectOnLoad) {
+            FormattedTextBox.DontSelectInitialText = false;
+            this._editorView!.focus();
+        }
         if (this._props.isContentActive()) this.prepareForTyping();
-        if (this._editorView) {
-            const tr = this._editorView.state.tr;
-            const { from, to } = tr.selection;
-            // for some reason, the selection is sometimes lost in the sidebar view when prosemirror syncs the seledtion with the dom, so reset the selection after the document has ben fully instantiated.
-            if (FormattedTextBox.DontSelectInitialText) setTimeout(() => this._editorView?.dispatch(tr.setSelection(new TextSelection(tr.doc.resolve(from), tr.doc.resolve(to)))), 250);
-
-            if (FormattedTextBox.PasteOnLoad) {
-                const pdfAnchorId = FormattedTextBox.PasteOnLoad.clipboardData?.getData('dash/pdfAnchor');
-                FormattedTextBox.PasteOnLoad = undefined;
-                pdfAnchorId && this.addPdfReference(pdfAnchorId);
-            }
+        if (this._editorView && FormattedTextBox.PasteOnLoad) {
+            const pdfAnchorId = FormattedTextBox.PasteOnLoad.clipboardData?.getData('dash/pdfAnchor');
+            FormattedTextBox.PasteOnLoad = undefined;
+            pdfAnchorId && this.addPdfReference(pdfAnchorId);
         }
-        FormattedTextBox.DontSelectInitialText = false;
     }
 
     // add user mark for any first character that was typed since the user mark that gets set in KeyPress won't have been called yet.
-- 
cgit v1.2.3-70-g09d2

