From 5ad6ceab6f8e03ad6a47a4e00f26d003bba635e1 Mon Sep 17 00:00:00 2001 From: eirikhaugstulen Date: Tue, 2 Jun 2026 11:22:59 +0200 Subject: [PATCH] fix: update shadcn components and sidebar qa --- eslint.config.mjs | 17 +- i18n/en.pot | 31 +- package.json | 34 +- .../DataStoreKeyProvider.tsx | 4 +- .../MobileNavigation/MobileNavigation.tsx | 51 +- src/components/Pages/Dashboard/Dashboard.tsx | 2 +- .../AddComponent/AddComponent.tsx | 64 +- .../AddComponent/LocalPluginForm.tsx | 49 +- .../AddEnrollmentPageConfig.tsx | 2 +- .../DataTable/DataTableHeader.tsx | 10 +- .../DataTable/EnrollmentDataTable.tsx | 14 +- .../EnrollmentOverview/EnrollmentOverview.tsx | 14 +- .../Constants/constants.ts | 2 +- .../Constants/getTrackedEntityType.ts | 18 +- .../Constants/getTrackerProgramById.ts | 26 +- .../DataTable/FormFieldTable.tsx | 2 +- .../FormFieldPlugins/FormFieldPlugins.tsx | 8 +- .../hooks/useFormFieldMetadata.ts | 22 +- src/components/ui/alert-dialog.tsx | 6 +- src/components/ui/badge.tsx | 2 +- src/components/ui/button.tsx | 6 +- src/components/ui/card.tsx | 12 +- src/components/ui/dialog.tsx | 2 +- src/components/ui/dropdown-menu.tsx | 12 +- src/components/ui/empty.tsx | 2 +- src/components/ui/form.tsx | 29 +- src/components/ui/input.tsx | 7 +- src/components/ui/resizable.tsx | 22 +- src/components/ui/select.tsx | 6 +- src/components/ui/sheet.tsx | 6 +- src/components/ui/skeleton.tsx | 3 +- src/components/ui/sonner.tsx | 16 +- src/components/ui/switch.tsx | 6 +- src/components/ui/tooltip.tsx | 2 +- .../hooks/useProgramsWithMetadataAccess.tsx | 16 +- src/lib/hooks/useTrackedEntityTypes.ts | 12 +- tailwind.config.js | 126 +-- yarn.lock | 735 +++++++++--------- 38 files changed, 771 insertions(+), 627 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 95282f7..9e9bfda 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,5 +1,6 @@ import globals from "globals"; import pluginReactConfig from "eslint-plugin-react/configs/recommended.js"; +import pluginReactHooks from "eslint-plugin-react-hooks"; import path from "path"; import { fileURLToPath } from "url"; @@ -16,8 +17,22 @@ export default [ ...compat.extends("standard-with-typescript"), pluginReactConfig, { + settings: { + react: { + version: "detect", + }, + }, + plugins: { + "react-hooks": pluginReactHooks, + }, rules: { - "eslint-plugin-react-hooks/rules-of-hooks": "error", + "react-hooks/rules-of-hooks": "error", } + }, + { + files: ["src/locales/index.js"], + rules: { + "spaced-comment": "off", + }, } ]; diff --git a/i18n/en.pot b/i18n/en.pot index 492f37f..1225553 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2025-11-15T14:56:01.306Z\n" -"PO-Revision-Date: 2025-11-15T14:56:01.306Z\n" +"POT-Creation-Date: 2026-06-02T09:10:34.358Z\n" +"PO-Revision-Date: 2026-06-02T09:10:34.359Z\n" msgid "Data store keys created!" msgstr "Data store keys created!" @@ -111,12 +111,12 @@ msgstr "Enrollment configuration saved" msgid "Failed to save enrollment configuration" msgstr "Failed to save enrollment configuration" -msgid "Add" -msgstr "Add" - msgid "Add widget" msgstr "Add widget" +msgid "Add" +msgstr "Add" + msgid "Add a widget from the list below to add it to the column" msgstr "Add a widget from the list below to add it to the column" @@ -181,23 +181,18 @@ msgstr "Edit event" msgid "Edit" msgstr "Edit" -msgid "Make the enrollment page your own" -msgstr "Make the enrollment page your own" +msgid "No custom layout yet" +msgstr "No custom layout yet" msgid "" -"Switch to edit mode to build a layout that surfaces the data your team " -"needs most. Rearrange widgets, spotlight key indicators, and guide users " -"with a tailored flow." +"This page still uses the default layout. Jump into edit mode to add " +"widgets, reorder columns and create an experience that fits your workflows." msgstr "" -"Switch to edit mode to build a layout that surfaces the data your team " -"needs most. Rearrange widgets, spotlight key indicators, and guide users " -"with a tailored flow." - -msgid "Start designing" -msgstr "Start designing" +"This page still uses the default layout. Jump into edit mode to add " +"widgets, reorder columns and create an experience that fits your workflows." -msgid "You can always revert back to the default layout later." -msgstr "You can always revert back to the default layout later." +msgid "Start" +msgstr "Start" msgid "Quick actions" msgstr "Quick actions" diff --git a/package.json b/package.json index 6bd5646..aff20c2 100644 --- a/package.json +++ b/package.json @@ -34,34 +34,34 @@ }, "dependencies": { "@dhis2/app-runtime": "^3.14.1", - "@hookform/resolvers": "^3.3.4", - "@radix-ui/react-accordion": "^1.1.2", - "@radix-ui/react-alert-dialog": "^1.0.5", - "@radix-ui/react-dialog": "^1.0.5", - "@radix-ui/react-dropdown-menu": "^2.0.6", - "@radix-ui/react-label": "^2.0.2", - "@radix-ui/react-scroll-area": "^1.0.5", - "@radix-ui/react-select": "^2.0.0", - "@radix-ui/react-separator": "^1.0.3", - "@radix-ui/react-slot": "^1.0.2", - "@radix-ui/react-switch": "^1.1.3", - "@radix-ui/react-tooltip": "^1.0.7", + "@hookform/resolvers": "^5.4.0", + "@radix-ui/react-accordion": "^1.2.12", + "@radix-ui/react-alert-dialog": "^1.1.15", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-label": "^2.1.8", + "@radix-ui/react-scroll-area": "^1.2.10", + "@radix-ui/react-select": "^2.2.6", + "@radix-ui/react-separator": "^1.1.8", + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-switch": "^1.2.6", + "@radix-ui/react-tooltip": "^1.2.8", "@tanstack/react-query": "^4.36.1", "@tanstack/react-query-devtools": "^v4", "@types/react-beautiful-dnd": "^13.1.8", "class-variance-authority": "^0.7.0", "clsx": "^2.1.0", "lucide-react": "^0.364.0", - "next-themes": "^0.3.0", + "next-themes": "^0.4.6", "react-beautiful-dnd": "^13.1.1", "react-dom": "^16", - "react-hook-form": "^7.51.2", - "react-resizable-panels": "^2.0.17", + "react-hook-form": "^7.77.0", + "react-resizable-panels": "^4.11.2", "react-router-dom": "6.3.0", - "sonner": "^1.4.41", + "sonner": "^2.0.7", "tailwind-merge": "^2.2.2", "tailwindcss-animate": "^1.0.7", "typescript": "*", - "zod": "^3.22.4" + "zod": "^4.4.3" } } diff --git a/src/components/DataStoreKeyProvider/DataStoreKeyProvider.tsx b/src/components/DataStoreKeyProvider/DataStoreKeyProvider.tsx index 9a8e12a..e99bcb1 100644 --- a/src/components/DataStoreKeyProvider/DataStoreKeyProvider.tsx +++ b/src/components/DataStoreKeyProvider/DataStoreKeyProvider.tsx @@ -60,8 +60,8 @@ export const DataStoreKeyProvider = ({ children }: Props) => { if (!keysAreValid) { return ( -
-
+
+

{i18n.t('Data store keys missing')}

{i18n.t('It seems like you are missing some required data store keys.')}

{i18n.t('Do you want to create them?')}

diff --git a/src/components/MobileNavigation/MobileNavigation.tsx b/src/components/MobileNavigation/MobileNavigation.tsx index 7995d50..a64d03e 100644 --- a/src/components/MobileNavigation/MobileNavigation.tsx +++ b/src/components/MobileNavigation/MobileNavigation.tsx @@ -1,9 +1,34 @@ import React from "react"; -import {Sheet, SheetContent, SheetTrigger} from "../ui/sheet"; +import {Sheet, SheetClose, SheetContent, SheetTrigger} from "../ui/sheet"; import {Button} from "../ui/button"; -import {HomeIcon, Package2Icon, PanelLeftIcon} from "lucide-react"; +import {BoxSelectIcon, ClipboardPenLineIcon, Package2Icon, PanelLeftIcon} from "lucide-react"; +import {useLocation, useNavigate} from "react-router-dom"; + +const navigation = [ + { + label: "Dashboard", + icon: Package2Icon, + path: "/", + activePath: "" + }, + { + label: "Form Field Plugin", + icon: ClipboardPenLineIcon, + path: "/formField", + activePath: "formField" + }, + { + label: "Enrollment Overview Plugin", + icon: BoxSelectIcon, + path: "/enrollmentOverview", + activePath: "enrollmentOverview" + } +] export const MobileNavigation = () => { + const navigate = useNavigate(); + const location = useLocation(); + return (
@@ -15,17 +40,23 @@ export const MobileNavigation = () => {
+ {navigation.map(({ label, icon: Icon, path, activePath }) => ( + + + + ))} diff --git a/src/components/Pages/Dashboard/Dashboard.tsx b/src/components/Pages/Dashboard/Dashboard.tsx index 57db883..171648a 100644 --- a/src/components/Pages/Dashboard/Dashboard.tsx +++ b/src/components/Pages/Dashboard/Dashboard.tsx @@ -7,7 +7,7 @@ export const Dashboard = () => { const navigate = useNavigate(); return ( -
+

{i18n.t('Dashboard')}

diff --git a/src/components/Pages/EditEnrollmentOverview/FormComponents/AddComponent/AddComponent.tsx b/src/components/Pages/EditEnrollmentOverview/FormComponents/AddComponent/AddComponent.tsx index 84a1fb6..cefdaff 100644 --- a/src/components/Pages/EditEnrollmentOverview/FormComponents/AddComponent/AddComponent.tsx +++ b/src/components/Pages/EditEnrollmentOverview/FormComponents/AddComponent/AddComponent.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useMemo, useState } from "react"; import i18n from "@dhis2/d2-i18n"; import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, SheetTrigger } from "../../../../ui/sheet"; import { PlusCircleIcon } from "lucide-react"; @@ -22,12 +22,45 @@ type Props = { page: 'overview' | 'newEvent' | 'editEvent'; } +const shouldMockLongSidebar = () => { + const isLocalhost = window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1'; + const queryString = window.location.hash.split('?')[1] ?? ''; + return isLocalhost && new URLSearchParams(queryString).get('mockLongSidebar') === 'true'; +} + export const AddComponent = ({ columnName, availablePlugins, availableWidgets, allPlugins, page }: Props) => { const [open, setOpen] = useState(false); const { setValue, getValues, } = useFormContext>(); + const mockLongSidebar = shouldMockLongSidebar(); + const { visiblePlugins, visibleWidgets } = useMemo(() => { + if (!mockLongSidebar) { + return { + visiblePlugins: availablePlugins, + visibleWidgets: availableWidgets, + } + } + + const pluginSource = availablePlugins.length > 0 ? availablePlugins : allPlugins; + const widgetSource = availableWidgets.length > 0 + ? availableWidgets + : Object.values(Widgets).filter(widget => widget.allowedPages.includes(page)); + + return { + visiblePlugins: Array.from({ length: 16 }).flatMap((_, groupIndex) => pluginSource.map(plugin => ({ + ...plugin, + id: `${plugin.id}-mock-${groupIndex}`, + displayName: `${plugin.displayName} ${groupIndex + 1}`, + pluginLaunchUrl: `${plugin.pluginLaunchUrl}#mock-${groupIndex}`, + }))), + visibleWidgets: Array.from({ length: 12 }).flatMap((_, groupIndex) => widgetSource.map(widget => ({ + ...widget, + title: `${widget.title} ${groupIndex + 1}`, + }))), + } + }, [allPlugins, availablePlugins, availableWidgets, mockLongSidebar, page]); const handleLocalPluginSubmit = (pluginUrl: string) => { const pluginMetadata = { @@ -95,7 +128,10 @@ export const AddComponent = ({ columnName, availablePlugins, availableWidgets, a onOpenChange={setOpen} > - - - - - {i18n.t('Add widget')} - - {i18n.t('Add a widget from the list below to add it to the column')} - - + + + {i18n.t('Add widget')} + + {i18n.t('Add a widget from the list below to add it to the column')} + + -

+ +

{i18n.t('Add Local Plugin')}

@@ -122,7 +158,7 @@ export const AddComponent = ({ columnName, availablePlugins, availableWidgets, a - {availablePlugins.length ? availablePlugins.map(plugin => ( + {visiblePlugins.length ? visiblePlugins.map(plugin => (

{plugin.displayName}

@@ -142,8 +178,8 @@ export const AddComponent = ({ columnName, availablePlugins, availableWidgets, a

{i18n.t('Widgets')}

- {availableWidgets.length > 0 ? availableWidgets.map(widget => ( -
+ {visibleWidgets.length > 0 ? visibleWidgets.map((widget, index) => ( +

{widget.title}

-
- {form.formState.errors.localPluginUrl && ( -

- {form.formState.errors.localPluginUrl.message} -

- )} +
+ +
+ +
+ {form.formState.errors.localPluginUrl && ( +

+ {form.formState.errors.localPluginUrl.message} +

+ )} +
); }; diff --git a/src/components/Pages/EnrollmentOverview/AddEnrollmentPageConfig/AddEnrollmentPageConfig.tsx b/src/components/Pages/EnrollmentOverview/AddEnrollmentPageConfig/AddEnrollmentPageConfig.tsx index 760df46..031df08 100644 --- a/src/components/Pages/EnrollmentOverview/AddEnrollmentPageConfig/AddEnrollmentPageConfig.tsx +++ b/src/components/Pages/EnrollmentOverview/AddEnrollmentPageConfig/AddEnrollmentPageConfig.tsx @@ -26,7 +26,7 @@ export const EnrollmentPages = { const formSchema = z.object({ program: z.string({ - required_error: i18n.t('Program is required') + error: i18n.t('Program is required') }), }) diff --git a/src/components/Pages/EnrollmentOverview/DataTable/DataTableHeader.tsx b/src/components/Pages/EnrollmentOverview/DataTable/DataTableHeader.tsx index 182a491..3039a41 100644 --- a/src/components/Pages/EnrollmentOverview/DataTable/DataTableHeader.tsx +++ b/src/components/Pages/EnrollmentOverview/DataTable/DataTableHeader.tsx @@ -6,11 +6,11 @@ export const DataTableHeader = () => { return ( - {i18n.t('Program')} - {i18n.t('Dashboard')} - {i18n.t('New event')} - {i18n.t('Edit event')} - + {i18n.t('Program')} + {i18n.t('Dashboard')} + {i18n.t('New event')} + {i18n.t('Edit event')} + {i18n.t('Actions')} diff --git a/src/components/Pages/EnrollmentOverview/DataTable/EnrollmentDataTable.tsx b/src/components/Pages/EnrollmentOverview/DataTable/EnrollmentDataTable.tsx index 0f8bc2e..b56819c 100644 --- a/src/components/Pages/EnrollmentOverview/DataTable/EnrollmentDataTable.tsx +++ b/src/components/Pages/EnrollmentOverview/DataTable/EnrollmentDataTable.tsx @@ -85,7 +85,7 @@ export const EnrollmentDataTable = () => { return ( - +

{i18n.t('Something went wrong while fetching the configurations. Please try again later.')}

@@ -99,7 +99,7 @@ export const EnrollmentDataTable = () => { return ( - +

{i18n.t('It looks like you don\'t have any existing configurations. Get started by clicking the button in the right hand corner!')}

@@ -117,26 +117,26 @@ export const EnrollmentDataTable = () => { - {displayName} - + {displayName} + - + - + - + diff --git a/src/components/Pages/EnrollmentOverview/EnrollmentOverview.tsx b/src/components/Pages/EnrollmentOverview/EnrollmentOverview.tsx index 8ef6d82..b730ddf 100644 --- a/src/components/Pages/EnrollmentOverview/EnrollmentOverview.tsx +++ b/src/components/Pages/EnrollmentOverview/EnrollmentOverview.tsx @@ -5,23 +5,27 @@ import { AddEnrollmentPageConfig } from "./AddEnrollmentPageConfig"; import { DataTableHeader, EnrollmentDataTable } from "./DataTable"; import { Table } from "../../ui/table"; import { ExportDropdown } from "../../../components/ExportDropdown"; +import { useEnrollmentDataStoreInfo } from "./hooks/useEnrollmentDataStoreInfo"; export const EnrollmentOverview = () => { + const { records, isLoading, isError } = useEnrollmentDataStoreInfo(); + const hasRecords = !isLoading && !isError && records && records.length > 0; + return ( -
-
+
+
- + {i18n.t('Enrollment Plugins')} {i18n.t('Manage your enrollment page configurations')} - - + +
diff --git a/src/components/Pages/FormFieldConfigurator/hooks/useMetadataFromType/Constants/constants.ts b/src/components/Pages/FormFieldConfigurator/hooks/useMetadataFromType/Constants/constants.ts index b4536b8..1b65197 100644 --- a/src/components/Pages/FormFieldConfigurator/hooks/useMetadataFromType/Constants/constants.ts +++ b/src/components/Pages/FormFieldConfigurator/hooks/useMetadataFromType/Constants/constants.ts @@ -24,7 +24,7 @@ export const FormSection = z.object({ }) export const ConvertedMetadataSchema = z.object({ - id: z.string({ coerce: true }).min(1), + id: z.coerce.string().min(1), displayName: z.string(), access: z.object({ read: z.boolean(), diff --git a/src/components/Pages/FormFieldConfigurator/hooks/useMetadataFromType/Constants/getTrackedEntityType.ts b/src/components/Pages/FormFieldConfigurator/hooks/useMetadataFromType/Constants/getTrackedEntityType.ts index 30e17aa..99571dd 100644 --- a/src/components/Pages/FormFieldConfigurator/hooks/useMetadataFromType/Constants/getTrackedEntityType.ts +++ b/src/components/Pages/FormFieldConfigurator/hooks/useMetadataFromType/Constants/getTrackedEntityType.ts @@ -3,21 +3,21 @@ import i18n from '@dhis2/d2-i18n'; import {z} from "zod"; const ApiTrackedEntityTypeSchema = z.object({ - id: z.string({ required_error: 'Tracked entity type id is missing in the API Payload. Please report the issue to the app maintainer.' }), - displayName: z.string({ required_error: 'Tracked entity type display name is missing in the API Payload. Please report the issue to the app maintainer.' }), + id: z.string({ error: 'Tracked entity type id is missing in the API Payload. Please report the issue to the app maintainer.' }), + displayName: z.string({ error: 'Tracked entity type display name is missing in the API Payload. Please report the issue to the app maintainer.' }), trackedEntityTypeAttributes: z.array(z.object({ trackedEntityAttribute: z.object({ - id: z.string({ required_error: 'Tracked entity type attribute id is missing in the API Payload. Please report the issue to the app maintainer.' }), + id: z.string({ error: 'Tracked entity type attribute id is missing in the API Payload. Please report the issue to the app maintainer.' }), }), - displayName: z.string({ required_error: 'Tracked entity type attribute display name is missing in the API Payload. Please report the issue to the app maintainer.' }), - valueType: z.string({ required_error: 'Tracked entity type attribute value type is missing in the API Payload. Please report the issue to the app maintainer.' }), + displayName: z.string({ error: 'Tracked entity type attribute display name is missing in the API Payload. Please report the issue to the app maintainer.' }), + valueType: z.string({ error: 'Tracked entity type attribute value type is missing in the API Payload. Please report the issue to the app maintainer.' }), })), access: z.object({ - read: z.boolean({ required_error: 'Read access is missing in the API Payload. Please report the issue to the app maintainer.' }), - write: z.boolean({ required_error: 'Write access is missing in the API Payload. Please report the issue to the app maintainer.' }), + read: z.boolean({ error: 'Read access is missing in the API Payload. Please report the issue to the app maintainer.' }), + write: z.boolean({ error: 'Write access is missing in the API Payload. Please report the issue to the app maintainer.' }), data: z.object({ - read: z.boolean({ required_error: 'Data read access is missing in the API Payload. Please report the issue to the app maintainer.' }), - write: z.boolean({ required_error: 'Data write access is missing in the API Payload. Please report the issue to the app maintainer.' }), + read: z.boolean({ error: 'Data read access is missing in the API Payload. Please report the issue to the app maintainer.' }), + write: z.boolean({ error: 'Data write access is missing in the API Payload. Please report the issue to the app maintainer.' }), }), }), }); diff --git a/src/components/Pages/FormFieldConfigurator/hooks/useMetadataFromType/Constants/getTrackerProgramById.ts b/src/components/Pages/FormFieldConfigurator/hooks/useMetadataFromType/Constants/getTrackerProgramById.ts index 1f86258..4743b50 100644 --- a/src/components/Pages/FormFieldConfigurator/hooks/useMetadataFromType/Constants/getTrackerProgramById.ts +++ b/src/components/Pages/FormFieldConfigurator/hooks/useMetadataFromType/Constants/getTrackerProgramById.ts @@ -2,29 +2,29 @@ import {ConvertedMetadataSchema, FormField, FunctionProps} from "./constants"; import {z} from "zod"; const ApiTrackerProgramSchema = z.object({ - id: z.string({ required_error: 'Tracked entity type id is missing in the API Payload. Please report the issue to the app maintainer.' }), - displayName: z.string({ required_error: 'Tracked entity type display name is missing in the API Payload. Please report the issue to the app maintainer.' }), + id: z.string({ error: 'Tracked entity type id is missing in the API Payload. Please report the issue to the app maintainer.' }), + displayName: z.string({ error: 'Tracked entity type display name is missing in the API Payload. Please report the issue to the app maintainer.' }), programTrackedEntityAttributes: z.array(z.object({ trackedEntityAttribute: z.object({ - id: z.string({ required_error: 'Tracked entity attribute id is missing in the API Payload. Please report the issue to the app maintainer.' }), - displayName: z.string({ required_error: 'Tracked entity attribute display name is missing in the API Payload. Please report the issue to the app maintainer.' }), - valueType: z.string({ required_error: 'Tracked entity attribute value type is missing in the API Payload. Please report the issue to the app maintainer.' }), + id: z.string({ error: 'Tracked entity attribute id is missing in the API Payload. Please report the issue to the app maintainer.' }), + displayName: z.string({ error: 'Tracked entity attribute display name is missing in the API Payload. Please report the issue to the app maintainer.' }), + valueType: z.string({ error: 'Tracked entity attribute value type is missing in the API Payload. Please report the issue to the app maintainer.' }), }), })), access: z.object({ - read: z.boolean({ required_error: 'Read access is missing in the API Payload. Please report the issue to the app maintainer.' }), - write: z.boolean({ required_error: 'Write access is missing in the API Payload. Please report the issue to the app maintainer.' }), + read: z.boolean({ error: 'Read access is missing in the API Payload. Please report the issue to the app maintainer.' }), + write: z.boolean({ error: 'Write access is missing in the API Payload. Please report the issue to the app maintainer.' }), data: z.object({ - read: z.boolean({ required_error: 'Data read access is missing in the API Payload. Please report the issue to the app maintainer.' }), - write: z.boolean({ required_error: 'Data write access is missing in the API Payload. Please report the issue to the app maintainer.' }), + read: z.boolean({ error: 'Data read access is missing in the API Payload. Please report the issue to the app maintainer.' }), + write: z.boolean({ error: 'Data write access is missing in the API Payload. Please report the issue to the app maintainer.' }), }), }), programSections: z.array(z.object({ - id: z.string({ required_error: 'Program section id is missing in the API Payload. Please report the issue to the app maintainer.' }), - displayName: z.string({ required_error: 'Program section display name is missing in the API Payload. Please report the issue to the app maintainer.' }), - sortOrder: z.number({ required_error: 'Program section sort order is missing in the API Payload. Please report the issue to the app maintainer.' }), + id: z.string({ error: 'Program section id is missing in the API Payload. Please report the issue to the app maintainer.' }), + displayName: z.string({ error: 'Program section display name is missing in the API Payload. Please report the issue to the app maintainer.' }), + sortOrder: z.number({ error: 'Program section sort order is missing in the API Payload. Please report the issue to the app maintainer.' }), trackedEntityAttributes: z.array(z.object({ - id: z.string({ required_error: 'Tracked entity attribute id is missing in the API Payload. Please report the issue to the app maintainer.' }), + id: z.string({ error: 'Tracked entity attribute id is missing in the API Payload. Please report the issue to the app maintainer.' }), })), })), }); diff --git a/src/components/Pages/FormFieldPlugins/DataTable/FormFieldTable.tsx b/src/components/Pages/FormFieldPlugins/DataTable/FormFieldTable.tsx index c60d845..ba55148 100644 --- a/src/components/Pages/FormFieldPlugins/DataTable/FormFieldTable.tsx +++ b/src/components/Pages/FormFieldPlugins/DataTable/FormFieldTable.tsx @@ -151,7 +151,7 @@ export const FormFieldTable = ({ } return ( - +
{sortedRecords.map((record) => { diff --git a/src/components/Pages/FormFieldPlugins/FormFieldPlugins.tsx b/src/components/Pages/FormFieldPlugins/FormFieldPlugins.tsx index c5923bb..70bbaa6 100644 --- a/src/components/Pages/FormFieldPlugins/FormFieldPlugins.tsx +++ b/src/components/Pages/FormFieldPlugins/FormFieldPlugins.tsx @@ -19,8 +19,8 @@ export const FormFieldPlugins = () => { const [isExportOpen, setIsExportOpen] = useState(false); return ( -
-
+
+
{rawData && ( <> @@ -44,12 +44,12 @@ export const FormFieldPlugins = () => {
- + {i18n.t('Form Field Plugins')} {i18n.t('Manage your form configurations')} - + { diff --git a/src/components/ui/alert-dialog.tsx b/src/components/ui/alert-dialog.tsx index ae81b74..e507729 100644 --- a/src/components/ui/alert-dialog.tsx +++ b/src/components/ui/alert-dialog.tsx @@ -1,8 +1,10 @@ +"use client" + import * as React from "react" import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog" import { cn } from "../../lib/utils" -import { buttonVariants } from "../../components/ui/button" +import { buttonVariants } from "./button" const AlertDialog = AlertDialogPrimitive.Root @@ -16,7 +18,7 @@ const AlertDialogOverlay = React.forwardRef< >(({ className, ...props }, ref) => ( + HTMLDivElement, + React.HTMLAttributes >(({ className, ...props }, ref) => ( -

+ HTMLDivElement, + React.HTMLAttributes >(({ className, ...props }, ref) => ( -

{children} - + )) DropdownMenuSubTrigger.displayName = @@ -45,7 +47,7 @@ const DropdownMenuSubContent = React.forwardRef< ( - {} as FormFieldContextValue -) +const FormFieldContext = React.createContext(null) const FormField = < TFieldValues extends FieldValues = FieldValues, @@ -45,12 +42,16 @@ const useFormField = () => { const itemContext = React.useContext(FormItemContext) const { getFieldState, formState } = useFormContext() - const fieldState = getFieldState(fieldContext.name, formState) - if (!fieldContext) { throw new Error("useFormField should be used within ") } + if (!itemContext) { + throw new Error("useFormField should be used within ") + } + + const fieldState = getFieldState(fieldContext.name, formState) + const { id } = itemContext return { @@ -67,15 +68,13 @@ type FormItemContextValue = { id: string } -const FormItemContext = React.createContext( - {} as FormItemContextValue -) +const FormItemContext = React.createContext(null) const FormItem = React.forwardRef< HTMLDivElement, React.HTMLAttributes >(({ className, ...props }, ref) => { - const [id] = useState(generateUID()) + const id = React.useId() return ( @@ -146,7 +145,7 @@ const FormMessage = React.forwardRef< React.HTMLAttributes >(({ className, children, ...props }, ref) => { const { error, formMessageId } = useFormField() - const body = error ? String(error?.message) : children + const body = error ? String(error?.message ?? "") : children if (!body) { return null diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx index 7b9d75c..bf99fa9 100644 --- a/src/components/ui/input.tsx +++ b/src/components/ui/input.tsx @@ -2,16 +2,13 @@ import * as React from "react" import { cn } from "../../lib/utils" -export interface InputProps - extends React.InputHTMLAttributes {} - -const Input = React.forwardRef( +const Input = React.forwardRef>( ({ className, type, ...props }, ref) => { return ( ) => ( - ) => ( + ) -const ResizablePanel = ResizablePrimitive.Panel - const ResizableHandle = ({ withHandle, className, ...props -}: React.ComponentProps & { +}: React.ComponentProps & { withHandle?: boolean }) => ( - div]:rotate-90", className @@ -38,7 +42,7 @@ const ResizableHandle = ({

)} - + ) export { ResizablePanelGroup, ResizablePanel, ResizableHandle } diff --git a/src/components/ui/select.tsx b/src/components/ui/select.tsx index 24ba608..7ef6607 100644 --- a/src/components/ui/select.tsx +++ b/src/components/ui/select.tsx @@ -1,3 +1,5 @@ +"use client" + import * as React from "react" import * as SelectPrimitive from "@radix-ui/react-select" import { Check, ChevronDown, ChevronUp } from "lucide-react" @@ -17,7 +19,7 @@ const SelectTrigger = React.forwardRef< span]:line-clamp-1", + "flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1", className )} {...props} @@ -73,7 +75,7 @@ const SelectContent = React.forwardRef< (({ className, ...props }, ref) => ( { , + info: , + warning: , + error: , + loading: , + }} toastOptions={{ classNames: { toast: diff --git a/src/components/ui/switch.tsx b/src/components/ui/switch.tsx index f6b7c72..3ae31f0 100644 --- a/src/components/ui/switch.tsx +++ b/src/components/ui/switch.tsx @@ -1,3 +1,5 @@ +"use client" + import * as React from "react" import * as SwitchPrimitives from "@radix-ui/react-switch" @@ -9,7 +11,7 @@ const Switch = React.forwardRef< >(({ className, ...props }, ref) => ( diff --git a/src/components/ui/tooltip.tsx b/src/components/ui/tooltip.tsx index 5503ba1..d213154 100644 --- a/src/components/ui/tooltip.tsx +++ b/src/components/ui/tooltip.tsx @@ -17,7 +17,7 @@ const TooltipContent = React.forwardRef< ref={ref} sideOffset={sideOffset} className={cn( - "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", + "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]", className )} {...props} diff --git a/src/lib/hooks/useProgramsWithMetadataAccess.tsx b/src/lib/hooks/useProgramsWithMetadataAccess.tsx index 502abaf..c02716f 100644 --- a/src/lib/hooks/useProgramsWithMetadataAccess.tsx +++ b/src/lib/hooks/useProgramsWithMetadataAccess.tsx @@ -4,19 +4,19 @@ import { z } from "zod"; import { useEffect } from "react"; export const trackerProgramSchema = z.object({ - id: z.string({ required_error: 'Program id is required' }), - displayName: z.string({ required_error: 'Program display name is required' }), + id: z.string({ error: 'Program id is required' }), + displayName: z.string({ error: 'Program display name is required' }), trackedEntityType: z.object({ - id: z.string({ required_error: 'Tracked entity type id is required' }), - displayName: z.string({ required_error: 'Tracked entity type display name is required' }), + id: z.string({ error: 'Tracked entity type id is required' }), + displayName: z.string({ error: 'Tracked entity type display name is required' }), }).optional(), - programType: z.string({ required_error: 'Program type is required' }), + programType: z.string({ error: 'Program type is required' }), access: z.object({ - write: z.boolean({ required_error: 'Write access is required' }), + write: z.boolean({ error: 'Write access is required' }), }), programStages: z.array(z.object({ - id: z.string({ required_error: 'Program stage id is required' }), - displayName: z.string({ required_error: 'Program stage display name is required' }), + id: z.string({ error: 'Program stage id is required' }), + displayName: z.string({ error: 'Program stage display name is required' }), })), }); diff --git a/src/lib/hooks/useTrackedEntityTypes.ts b/src/lib/hooks/useTrackedEntityTypes.ts index d832c12..0bd5739 100644 --- a/src/lib/hooks/useTrackedEntityTypes.ts +++ b/src/lib/hooks/useTrackedEntityTypes.ts @@ -3,14 +3,14 @@ import {z} from "zod"; import {useQuery} from "@tanstack/react-query"; export const TrackedEntityTypeSchema = z.object({ - id: z.string({ required_error: 'Tracked entity type id is missing in the API Payload. Please report the issue to the app maintainer.' }), - displayName: z.string({ required_error: 'Tracked entity type display name is missing in the API Payload. Please report the issue to the app maintainer.' }), + id: z.string({ error: 'Tracked entity type id is missing in the API Payload. Please report the issue to the app maintainer.' }), + displayName: z.string({ error: 'Tracked entity type display name is missing in the API Payload. Please report the issue to the app maintainer.' }), access: z.object({ - read: z.boolean({ required_error: 'Read access is missing in the API Payload. Please report the issue to the app maintainer.' }), - write: z.boolean({ required_error: 'Write access is missing in the API Payload. Please report the issue to the app maintainer.' }), + read: z.boolean({ error: 'Read access is missing in the API Payload. Please report the issue to the app maintainer.' }), + write: z.boolean({ error: 'Write access is missing in the API Payload. Please report the issue to the app maintainer.' }), data: z.object({ - read: z.boolean({ required_error: 'Data read access is missing in the API Payload. Please report the issue to the app maintainer.' }), - write: z.boolean({ required_error: 'Data write access is missing in the API Payload. Please report the issue to the app maintainer.' }), + read: z.boolean({ error: 'Data read access is missing in the API Payload. Please report the issue to the app maintainer.' }), + write: z.boolean({ error: 'Data write access is missing in the API Payload. Please report the issue to the app maintainer.' }), }), }), }); diff --git a/tailwind.config.js b/tailwind.config.js index 79ca9cb..f86d987 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -6,69 +6,77 @@ module.exports = { ], prefix: "", theme: { - container: { - center: true, - padding: "2rem", - screens: { - "2xl": "1400px", - }, - }, - extend: { - colors: { - border: "hsl(var(--border))", - input: "hsl(var(--input))", - ring: "hsl(var(--ring))", - background: "hsl(var(--background))", - foreground: "hsl(var(--foreground))", - primary: { - DEFAULT: "hsl(var(--primary))", - foreground: "hsl(var(--primary-foreground))", - }, - secondary: { - DEFAULT: "hsl(var(--secondary))", - foreground: "hsl(var(--secondary-foreground))", - }, - destructive: { - DEFAULT: "hsl(var(--destructive))", - foreground: "hsl(var(--destructive-foreground))", - }, - muted: { - DEFAULT: "hsl(var(--muted))", - foreground: "hsl(var(--muted-foreground))", - }, - accent: { - DEFAULT: "hsl(var(--accent))", - foreground: "hsl(var(--accent-foreground))", - }, - popover: { - DEFAULT: "hsl(var(--popover))", - foreground: "hsl(var(--popover-foreground))", - }, - card: { - DEFAULT: "hsl(var(--card))", - foreground: "hsl(var(--card-foreground))", - }, - }, - borderRadius: { - lg: "var(--radius)", - md: "calc(var(--radius) - 2px)", - sm: "calc(var(--radius) - 4px)", - }, + container: { + center: true, + padding: '2rem', + screens: { + '2xl': '1400px' + } + }, + extend: { + colors: { + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', + primary: { + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))' + }, + secondary: { + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))' + }, + destructive: { + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))' + }, + muted: { + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))' + }, + accent: { + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))' + }, + popover: { + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))' + }, + card: { + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))' + } + }, + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)' + }, keyframes: { - "accordion-down": { - from: { height: "0" }, - to: { height: "var(--radix-accordion-content-height)" }, - }, - "accordion-up": { - from: { height: "var(--radix-accordion-content-height)" }, - to: { height: "0" }, + 'accordion-down': { + from: { + height: '0' + }, + to: { + height: 'var(--radix-accordion-content-height)' + } }, + 'accordion-up': { + from: { + height: 'var(--radix-accordion-content-height)' + }, + to: { + height: '0' + } + } }, animation: { - "accordion-down": "accordion-down 0.2s ease-out", - "accordion-up": "accordion-up 0.2s ease-out", - }, - }, + 'accordion-down': 'accordion-down 0.2s ease-out', + 'accordion-up': 'accordion-up 0.2s ease-out' + } + } }, plugins: [require("tailwindcss-animate")], } diff --git a/yarn.lock b/yarn.lock index f894677..5803b2b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2090,10 +2090,12 @@ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.9.tgz#50dea3616bc8191fb8e112283b49eaff03e78429" integrity sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg== -"@hookform/resolvers@^3.3.4": - version "3.10.0" - resolved "https://registry.yarnpkg.com/@hookform/resolvers/-/resolvers-3.10.0.tgz#7bfd18113daca4e57e27e1205b7d5a2d371aa59a" - integrity sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag== +"@hookform/resolvers@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@hookform/resolvers/-/resolvers-5.4.0.tgz#89ff709a08576766fbef849e5ec60e549a888006" + integrity sha512-EIsqr/t/qbinPIhGjMdtvutIN1Kk4uwbROE9/UQ93CAVGR7GkA7Y92+fX80OzXi/OB67jVFYwKGO1WzkxmkFZw== + dependencies: + "@standard-schema/utils" "^0.3.0" "@humanwhocodes/config-array@^0.13.0": version "0.13.0" @@ -2413,380 +2415,402 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== -"@radix-ui/number@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/number/-/number-1.1.0.tgz#1e95610461a09cdf8bb05c152e76ca1278d5da46" - integrity sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ== - -"@radix-ui/primitive@1.1.1": +"@radix-ui/number@1.1.1": version "1.1.1" - resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.1.1.tgz#fc169732d755c7fbad33ba8d0cd7fd10c90dc8e3" - integrity sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA== + resolved "https://registry.yarnpkg.com/@radix-ui/number/-/number-1.1.1.tgz#7b2c9225fbf1b126539551f5985769d0048d9090" + integrity sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g== -"@radix-ui/react-accordion@^1.1.2": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-accordion/-/react-accordion-1.2.3.tgz#7768a2d2daea18e5c09809f2c4b8097448ee2ff7" - integrity sha512-RIQ15mrcvqIkDARJeERSuXSry2N8uYnxkdDetpfmalT/+0ntOXLkFOsh9iwlAsCv+qcmhZjbdJogIm6WBa6c4A== - dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-collapsible" "1.1.3" - "@radix-ui/react-collection" "1.1.2" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-direction" "1.1.0" - "@radix-ui/react-id" "1.1.0" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-controllable-state" "1.1.0" - -"@radix-ui/react-alert-dialog@^1.0.5": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.6.tgz#52187fdaa5110ed6749e75974e90c3505f788c5d" - integrity sha512-p4XnPqgej8sZAAReCAKgz1REYZEBLR8hU9Pg27wFnCWIMc8g1ccCs0FjBcy05V15VTu8pAePw/VDYeOm/uZ6yQ== - dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-dialog" "1.1.6" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-slot" "1.1.2" - -"@radix-ui/react-arrow@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-1.1.2.tgz#30c0d574d7bb10eed55cd7007b92d38b03c6b2ab" - integrity sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg== - dependencies: - "@radix-ui/react-primitive" "2.0.2" - -"@radix-ui/react-collapsible@1.1.3": +"@radix-ui/primitive@1.1.3": version "1.1.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-collapsible/-/react-collapsible-1.1.3.tgz#522a5749646b7a393c9e9049165a9a6dfa924e91" - integrity sha512-jFSerheto1X03MUC0g6R7LedNW9EEGWdg9W1+MlpkMLwGkgkbUXLPBH/KIuWKXUoeYRVY11llqbTBDzuLg7qrw== - dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-id" "1.1.0" - "@radix-ui/react-presence" "1.1.2" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-controllable-state" "1.1.0" - "@radix-ui/react-use-layout-effect" "1.1.0" - -"@radix-ui/react-collection@1.1.2": + resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.1.3.tgz#e2dbc13bdc5e4168f4334f75832d7bdd3e2de5ba" + integrity sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg== + +"@radix-ui/react-accordion@^1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz#1fd70d4ef36018012b9e03324ff186de7a29c13f" + integrity sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-collapsible" "1.1.12" + "@radix-ui/react-collection" "1.1.7" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-direction" "1.1.1" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-controllable-state" "1.2.2" + +"@radix-ui/react-alert-dialog@^1.1.15": + version "1.1.15" + resolved "https://registry.yarnpkg.com/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.15.tgz#fa751d0fdd9aa2a90961c9901dba18e638dd4b41" + integrity sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-dialog" "1.1.15" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-slot" "1.2.3" + +"@radix-ui/react-arrow@1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz#e14a2657c81d961598c5e72b73dd6098acc04f09" + integrity sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w== + dependencies: + "@radix-ui/react-primitive" "2.1.3" + +"@radix-ui/react-collapsible@1.1.12": + version "1.1.12" + resolved "https://registry.yarnpkg.com/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz#e2cc69a4490a2920f97c3c3150b0bf21281e3c49" + integrity sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-presence" "1.1.5" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-controllable-state" "1.2.2" + "@radix-ui/react-use-layout-effect" "1.1.1" + +"@radix-ui/react-collection@1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-1.1.7.tgz#d05c25ca9ac4695cc19ba91f42f686e3ea2d9aec" + integrity sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw== + dependencies: + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-slot" "1.2.3" + +"@radix-ui/react-compose-refs@1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-1.1.2.tgz#b45eccca1cb902fd078b237316bd9fa81e621e15" - integrity sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw== - dependencies: - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-slot" "1.1.2" - -"@radix-ui/react-compose-refs@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz#6f766faa975f8738269ebb8a23bad4f5a8d2faec" - integrity sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw== + resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz#a2c4c47af6337048ee78ff6dc0d090b390d2bb30" + integrity sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg== -"@radix-ui/react-context@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.1.1.tgz#82074aa83a472353bb22e86f11bcbd1c61c4c71a" - integrity sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q== +"@radix-ui/react-context@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.1.2.tgz#61628ef269a433382c364f6f1e3788a6dc213a36" + integrity sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA== -"@radix-ui/react-dialog@1.1.6", "@radix-ui/react-dialog@^1.0.5": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@radix-ui/react-dialog/-/react-dialog-1.1.6.tgz#65b4465e99ad900f28a98eed9a94bb21ec644bf7" - integrity sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw== - dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-dismissable-layer" "1.1.5" - "@radix-ui/react-focus-guards" "1.1.1" - "@radix-ui/react-focus-scope" "1.1.2" - "@radix-ui/react-id" "1.1.0" - "@radix-ui/react-portal" "1.1.4" - "@radix-ui/react-presence" "1.1.2" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-slot" "1.1.2" - "@radix-ui/react-use-controllable-state" "1.1.0" +"@radix-ui/react-dialog@1.1.15", "@radix-ui/react-dialog@^1.1.15": + version "1.1.15" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz#1de3d7a7e9a17a9874d29c07f5940a18a119b632" + integrity sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-dismissable-layer" "1.1.11" + "@radix-ui/react-focus-guards" "1.1.3" + "@radix-ui/react-focus-scope" "1.1.7" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-portal" "1.1.9" + "@radix-ui/react-presence" "1.1.5" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-slot" "1.2.3" + "@radix-ui/react-use-controllable-state" "1.2.2" aria-hidden "^1.2.4" react-remove-scroll "^2.6.3" -"@radix-ui/react-direction@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.1.0.tgz#a7d39855f4d077adc2a1922f9c353c5977a09cdc" - integrity sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg== - -"@radix-ui/react-dismissable-layer@1.1.5": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.5.tgz#96dde2be078c694a621e55e047406c58cd5fe774" - integrity sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg== - dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-callback-ref" "1.1.0" - "@radix-ui/react-use-escape-keydown" "1.1.0" - -"@radix-ui/react-dropdown-menu@^2.0.6": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.6.tgz#b66b62648b378370aa3c38e5727fd3bc5b8792a3" - integrity sha512-no3X7V5fD487wab/ZYSHXq3H37u4NVeLDKI/Ks724X/eEFSSEFYZxWgsIlr1UBeEyDaM29HM5x9p1Nv8DuTYPA== - dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-id" "1.1.0" - "@radix-ui/react-menu" "2.1.6" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-controllable-state" "1.1.0" - -"@radix-ui/react-focus-guards@1.1.1": +"@radix-ui/react-direction@1.1.1": version "1.1.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz#8635edd346304f8b42cae86b05912b61aef27afe" - integrity sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg== - -"@radix-ui/react-focus-scope@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.2.tgz#c0a4519cd95c772606a82fc5b96226cd7fdd2602" - integrity sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA== - dependencies: - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-callback-ref" "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.1.1.tgz#39e5a5769e676c753204b792fbe6cf508e550a14" + integrity sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw== -"@radix-ui/react-id@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.1.0.tgz#de47339656594ad722eb87f94a6b25f9cffae0ed" - integrity sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA== - dependencies: - "@radix-ui/react-use-layout-effect" "1.1.0" +"@radix-ui/react-dismissable-layer@1.1.11": + version "1.1.11" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz#e33ab6f6bdaa00f8f7327c408d9f631376b88b37" + integrity sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-callback-ref" "1.1.1" + "@radix-ui/react-use-escape-keydown" "1.1.1" + +"@radix-ui/react-dropdown-menu@^2.1.16": + version "2.1.16" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.16.tgz#5ee045c62bad8122347981c479d92b1ff24c7254" + integrity sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-menu" "2.1.16" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-controllable-state" "1.2.2" + +"@radix-ui/react-focus-guards@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz#2a5669e464ad5fde9f86d22f7fdc17781a4dfa7f" + integrity sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw== -"@radix-ui/react-label@^2.0.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-label/-/react-label-2.1.2.tgz#994a5d815c2ff46e151410ae4e301f1b639f9971" - integrity sha512-zo1uGMTaNlHehDyFQcDZXRJhUPDuukcnHz0/jnrup0JA6qL+AFpAnty+7VKa9esuU5xTblAZzTGYJKSKaBxBhw== +"@radix-ui/react-focus-scope@1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz#dfe76fc103537d80bf42723a183773fd07bfb58d" + integrity sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw== dependencies: - "@radix-ui/react-primitive" "2.0.2" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-callback-ref" "1.1.1" -"@radix-ui/react-menu@2.1.6": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@radix-ui/react-menu/-/react-menu-2.1.6.tgz#05fb1ef3fd7545c8abe61178372902970cdec3ce" - integrity sha512-tBBb5CXDJW3t2mo9WlO7r6GTmWV0F0uzHZVFmlRmYpiSK1CDU5IKojP1pm7oknpBOrFZx/YgBRW9oorPO2S/Lg== - dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-collection" "1.1.2" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-direction" "1.1.0" - "@radix-ui/react-dismissable-layer" "1.1.5" - "@radix-ui/react-focus-guards" "1.1.1" - "@radix-ui/react-focus-scope" "1.1.2" - "@radix-ui/react-id" "1.1.0" - "@radix-ui/react-popper" "1.2.2" - "@radix-ui/react-portal" "1.1.4" - "@radix-ui/react-presence" "1.1.2" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-roving-focus" "1.1.2" - "@radix-ui/react-slot" "1.1.2" - "@radix-ui/react-use-callback-ref" "1.1.0" +"@radix-ui/react-id@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.1.1.tgz#1404002e79a03fe062b7e3864aa01e24bd1471f7" + integrity sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg== + dependencies: + "@radix-ui/react-use-layout-effect" "1.1.1" + +"@radix-ui/react-label@^2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@radix-ui/react-label/-/react-label-2.1.8.tgz#d93b7c063ef2ea034df143a2464bfc0548e4b7e5" + integrity sha512-FmXs37I6hSBVDlO4y764TNz1rLgKwjJMQ0EGte6F3Cb3f4bIuHB/iLa/8I9VKkmOy+gNHq8rql3j686ACVV21A== + dependencies: + "@radix-ui/react-primitive" "2.1.4" + +"@radix-ui/react-menu@2.1.16": + version "2.1.16" + resolved "https://registry.yarnpkg.com/@radix-ui/react-menu/-/react-menu-2.1.16.tgz#528a5a973c3a7413d3d49eb9ccd229aa52402911" + integrity sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-collection" "1.1.7" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-direction" "1.1.1" + "@radix-ui/react-dismissable-layer" "1.1.11" + "@radix-ui/react-focus-guards" "1.1.3" + "@radix-ui/react-focus-scope" "1.1.7" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-popper" "1.2.8" + "@radix-ui/react-portal" "1.1.9" + "@radix-ui/react-presence" "1.1.5" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-roving-focus" "1.1.11" + "@radix-ui/react-slot" "1.2.3" + "@radix-ui/react-use-callback-ref" "1.1.1" aria-hidden "^1.2.4" react-remove-scroll "^2.6.3" -"@radix-ui/react-popper@1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-1.2.2.tgz#d2e1ee5a9b24419c5936a1b7f6f472b7b412b029" - integrity sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA== +"@radix-ui/react-popper@1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-1.2.8.tgz#a79f39cdd2b09ab9fb50bf95250918422c4d9602" + integrity sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw== dependencies: "@floating-ui/react-dom" "^2.0.0" - "@radix-ui/react-arrow" "1.1.2" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-callback-ref" "1.1.0" - "@radix-ui/react-use-layout-effect" "1.1.0" - "@radix-ui/react-use-rect" "1.1.0" - "@radix-ui/react-use-size" "1.1.0" - "@radix-ui/rect" "1.1.0" - -"@radix-ui/react-portal@1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.1.4.tgz#ff5401ff63c8a825c46eea96d3aef66074b8c0c8" - integrity sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA== + "@radix-ui/react-arrow" "1.1.7" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-callback-ref" "1.1.1" + "@radix-ui/react-use-layout-effect" "1.1.1" + "@radix-ui/react-use-rect" "1.1.1" + "@radix-ui/react-use-size" "1.1.1" + "@radix-ui/rect" "1.1.1" + +"@radix-ui/react-portal@1.1.9": + version "1.1.9" + resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.1.9.tgz#14c3649fe48ec474ac51ed9f2b9f5da4d91c4472" + integrity sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ== dependencies: - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-layout-effect" "1.1.1" -"@radix-ui/react-presence@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.1.2.tgz#bb764ed8a9118b7ec4512da5ece306ded8703cdc" - integrity sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg== +"@radix-ui/react-presence@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.1.5.tgz#5d8f28ac316c32f078afce2996839250c10693db" + integrity sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ== dependencies: - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-use-layout-effect" "1.1.1" -"@radix-ui/react-primitive@2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-2.0.2.tgz#ac8b7854d87b0d7af388d058268d9a7eb64ca8ef" - integrity sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w== +"@radix-ui/react-primitive@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz#db9b8bcff49e01be510ad79893fb0e4cda50f1bc" + integrity sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ== dependencies: - "@radix-ui/react-slot" "1.1.2" + "@radix-ui/react-slot" "1.2.3" -"@radix-ui/react-roving-focus@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.2.tgz#815d051a54299114a68db6eb8d34c41a3c0a646f" - integrity sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw== - dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-collection" "1.1.2" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-direction" "1.1.0" - "@radix-ui/react-id" "1.1.0" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-callback-ref" "1.1.0" - "@radix-ui/react-use-controllable-state" "1.1.0" - -"@radix-ui/react-scroll-area@^1.0.5": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.3.tgz#6a9a7897add739ce84b517796ee345d495893d3f" - integrity sha512-l7+NNBfBYYJa9tNqVcP2AGvxdE3lmE6kFTBXdvHgUaZuy+4wGCL1Cl2AfaR7RKyimj7lZURGLwFO59k4eBnDJQ== - dependencies: - "@radix-ui/number" "1.1.0" - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-direction" "1.1.0" - "@radix-ui/react-presence" "1.1.2" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-callback-ref" "1.1.0" - "@radix-ui/react-use-layout-effect" "1.1.0" - -"@radix-ui/react-select@^2.0.0": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@radix-ui/react-select/-/react-select-2.1.6.tgz#79c07cac4de0188e6f7afb2720a87a0405d88849" - integrity sha512-T6ajELxRvTuAMWH0YmRJ1qez+x4/7Nq7QIx7zJ0VK3qaEWdnWpNbEDnmWldG1zBDwqrLy5aLMUWcoGirVj5kMg== - dependencies: - "@radix-ui/number" "1.1.0" - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-collection" "1.1.2" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-direction" "1.1.0" - "@radix-ui/react-dismissable-layer" "1.1.5" - "@radix-ui/react-focus-guards" "1.1.1" - "@radix-ui/react-focus-scope" "1.1.2" - "@radix-ui/react-id" "1.1.0" - "@radix-ui/react-popper" "1.2.2" - "@radix-ui/react-portal" "1.1.4" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-slot" "1.1.2" - "@radix-ui/react-use-callback-ref" "1.1.0" - "@radix-ui/react-use-controllable-state" "1.1.0" - "@radix-ui/react-use-layout-effect" "1.1.0" - "@radix-ui/react-use-previous" "1.1.0" - "@radix-ui/react-visually-hidden" "1.1.2" +"@radix-ui/react-primitive@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz#2626ea309ebd63bf5767d3e7fc4081f81b993df0" + integrity sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg== + dependencies: + "@radix-ui/react-slot" "1.2.4" + +"@radix-ui/react-roving-focus@1.1.11": + version "1.1.11" + resolved "https://registry.yarnpkg.com/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz#ef54384b7361afc6480dcf9907ef2fedb5080fd9" + integrity sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-collection" "1.1.7" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-direction" "1.1.1" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-callback-ref" "1.1.1" + "@radix-ui/react-use-controllable-state" "1.2.2" + +"@radix-ui/react-scroll-area@^1.2.10": + version "1.2.10" + resolved "https://registry.yarnpkg.com/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz#e4fd3b4a79bb77bec1a52f0c8f26d8f3f1ca4b22" + integrity sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A== + dependencies: + "@radix-ui/number" "1.1.1" + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-direction" "1.1.1" + "@radix-ui/react-presence" "1.1.5" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-callback-ref" "1.1.1" + "@radix-ui/react-use-layout-effect" "1.1.1" + +"@radix-ui/react-select@^2.2.6": + version "2.2.6" + resolved "https://registry.yarnpkg.com/@radix-ui/react-select/-/react-select-2.2.6.tgz#022cf8dab16bf05d0d1b4df9e53e4bea1b744fd9" + integrity sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ== + dependencies: + "@radix-ui/number" "1.1.1" + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-collection" "1.1.7" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-direction" "1.1.1" + "@radix-ui/react-dismissable-layer" "1.1.11" + "@radix-ui/react-focus-guards" "1.1.3" + "@radix-ui/react-focus-scope" "1.1.7" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-popper" "1.2.8" + "@radix-ui/react-portal" "1.1.9" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-slot" "1.2.3" + "@radix-ui/react-use-callback-ref" "1.1.1" + "@radix-ui/react-use-controllable-state" "1.2.2" + "@radix-ui/react-use-layout-effect" "1.1.1" + "@radix-ui/react-use-previous" "1.1.1" + "@radix-ui/react-visually-hidden" "1.2.3" aria-hidden "^1.2.4" react-remove-scroll "^2.6.3" -"@radix-ui/react-separator@^1.0.3": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-separator/-/react-separator-1.1.2.tgz#24c5450db20f341f2b743ed4b07b907e18579216" - integrity sha512-oZfHcaAp2Y6KFBX6I5P1u7CQoy4lheCGiYj+pGFrHy8E/VNRb5E39TkTr3JrV520csPBTZjkuKFdEsjS5EUNKQ== +"@radix-ui/react-separator@^1.1.8": + version "1.1.8" + resolved "https://registry.yarnpkg.com/@radix-ui/react-separator/-/react-separator-1.1.8.tgz#24f871fbf9630af316d0c14cbc7519a6e33aa11e" + integrity sha512-sDvqVY4itsKwwSMEe0jtKgfTh+72Sy3gPmQpjqcQneqQ4PFmr/1I0YA+2/puilhggCe2gJcx5EBAYFkWkdpa5g== dependencies: - "@radix-ui/react-primitive" "2.0.2" + "@radix-ui/react-primitive" "2.1.4" -"@radix-ui/react-slot@1.1.2", "@radix-ui/react-slot@^1.0.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.1.2.tgz#daffff7b2bfe99ade63b5168407680b93c00e1c6" - integrity sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ== +"@radix-ui/react-slot@1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.2.3.tgz#502d6e354fc847d4169c3bc5f189de777f68cfe1" + integrity sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A== dependencies: - "@radix-ui/react-compose-refs" "1.1.1" + "@radix-ui/react-compose-refs" "1.1.2" -"@radix-ui/react-switch@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-switch/-/react-switch-1.1.3.tgz#cb6386909d1d3f65a2b81a3b15da8c91d18f49b0" - integrity sha512-1nc+vjEOQkJVsJtWPSiISGT6OKm4SiOdjMo+/icLxo2G4vxz1GntC5MzfL4v8ey9OEfw787QCD1y3mUv0NiFEQ== - dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-controllable-state" "1.1.0" - "@radix-ui/react-use-previous" "1.1.0" - "@radix-ui/react-use-size" "1.1.0" - -"@radix-ui/react-tooltip@^1.0.7": - version "1.1.8" - resolved "https://registry.yarnpkg.com/@radix-ui/react-tooltip/-/react-tooltip-1.1.8.tgz#1aa2a575630fca2b2845b62f85056bb826bec456" - integrity sha512-YAA2cu48EkJZdAMHC0dqo9kialOcRStbtiY4nJPaht7Ptrhcvpo+eDChaM6BIs8kL6a8Z5l5poiqLnXcNduOkA== - dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-dismissable-layer" "1.1.5" - "@radix-ui/react-id" "1.1.0" - "@radix-ui/react-popper" "1.2.2" - "@radix-ui/react-portal" "1.1.4" - "@radix-ui/react-presence" "1.1.2" - "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-slot" "1.1.2" - "@radix-ui/react-use-controllable-state" "1.1.0" - "@radix-ui/react-visually-hidden" "1.1.2" - -"@radix-ui/react-use-callback-ref@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz#bce938ca413675bc937944b0d01ef6f4a6dc5bf1" - integrity sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw== +"@radix-ui/react-slot@1.2.4", "@radix-ui/react-slot@^1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.2.4.tgz#63c0ba05fdf90cc49076b94029c852d7bac1fb83" + integrity sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA== + dependencies: + "@radix-ui/react-compose-refs" "1.1.2" -"@radix-ui/react-use-controllable-state@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz#1321446857bb786917df54c0d4d084877aab04b0" - integrity sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw== +"@radix-ui/react-switch@^1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@radix-ui/react-switch/-/react-switch-1.2.6.tgz#ff79acb831f0d5ea9216cfcc5b939912571358e3" + integrity sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-controllable-state" "1.2.2" + "@radix-ui/react-use-previous" "1.1.1" + "@radix-ui/react-use-size" "1.1.1" + +"@radix-ui/react-tooltip@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz#3f50267e25bccfc9e20bb3036bfd9ab4c2c30c2c" + integrity sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-dismissable-layer" "1.1.11" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-popper" "1.2.8" + "@radix-ui/react-portal" "1.1.9" + "@radix-ui/react-presence" "1.1.5" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-slot" "1.2.3" + "@radix-ui/react-use-controllable-state" "1.2.2" + "@radix-ui/react-visually-hidden" "1.2.3" + +"@radix-ui/react-use-callback-ref@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz#62a4dba8b3255fdc5cc7787faeac1c6e4cc58d40" + integrity sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg== + +"@radix-ui/react-use-controllable-state@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz#905793405de57d61a439f4afebbb17d0645f3190" + integrity sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg== dependencies: - "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-effect-event" "0.0.2" + "@radix-ui/react-use-layout-effect" "1.1.1" -"@radix-ui/react-use-escape-keydown@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz#31a5b87c3b726504b74e05dac1edce7437b98754" - integrity sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw== +"@radix-ui/react-use-effect-event@0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz#090cf30d00a4c7632a15548512e9152217593907" + integrity sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA== dependencies: - "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.1" -"@radix-ui/react-use-layout-effect@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz#3c2c8ce04827b26a39e442ff4888d9212268bd27" - integrity sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w== +"@radix-ui/react-use-escape-keydown@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz#b3fed9bbea366a118f40427ac40500aa1423cc29" + integrity sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g== + dependencies: + "@radix-ui/react-use-callback-ref" "1.1.1" -"@radix-ui/react-use-previous@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz#d4dd37b05520f1d996a384eb469320c2ada8377c" - integrity sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og== +"@radix-ui/react-use-layout-effect@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz#0c4230a9eed49d4589c967e2d9c0d9d60a23971e" + integrity sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ== -"@radix-ui/react-use-rect@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz#13b25b913bd3e3987cc9b073a1a164bb1cf47b88" - integrity sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ== +"@radix-ui/react-use-previous@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz#1a1ad5568973d24051ed0af687766f6c7cb9b5b5" + integrity sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ== + +"@radix-ui/react-use-rect@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz#01443ca8ed071d33023c1113e5173b5ed8769152" + integrity sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w== dependencies: - "@radix-ui/rect" "1.1.0" + "@radix-ui/rect" "1.1.1" -"@radix-ui/react-use-size@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz#b4dba7fbd3882ee09e8d2a44a3eed3a7e555246b" - integrity sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw== +"@radix-ui/react-use-size@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz#6de276ffbc389a537ffe4316f5b0f24129405b37" + integrity sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ== dependencies: - "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.1" -"@radix-ui/react-visually-hidden@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.2.tgz#8f6025507eb5d8b4b3215ebfd2c71a6632323a62" - integrity sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q== +"@radix-ui/react-visually-hidden@1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz#a8c38c8607735dc9f05c32f87ab0f9c2b109efbf" + integrity sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug== dependencies: - "@radix-ui/react-primitive" "2.0.2" + "@radix-ui/react-primitive" "2.1.3" -"@radix-ui/rect@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.1.0.tgz#f817d1d3265ac5415dadc67edab30ae196696438" - integrity sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg== +"@radix-ui/rect@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.1.1.tgz#78244efe12930c56fd255d7923865857c41ac8cb" + integrity sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw== "@react-hook/latest@^1.0.2": version "1.0.3" @@ -2988,6 +3012,11 @@ dependencies: "@sinonjs/commons" "^1.7.0" +"@standard-schema/utils@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@standard-schema/utils/-/utils-0.3.0.tgz#3d5e608f16c2390c10528e98e59aef6bf73cae7b" + integrity sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g== + "@surma/rollup-plugin-off-main-thread@^2.2.3": version "2.2.3" resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" @@ -8826,10 +8855,10 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -next-themes@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/next-themes/-/next-themes-0.3.0.tgz#b4d2a866137a67d42564b07f3a3e720e2ff3871a" - integrity sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w== +next-themes@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/next-themes/-/next-themes-0.4.6.tgz#8d7e92d03b8fea6582892a50a928c9b23502e8b6" + integrity sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA== no-case@^3.0.4: version "3.0.4" @@ -9868,10 +9897,10 @@ react-final-form@^6.5.3: dependencies: "@babel/runtime" "^7.15.4" -react-hook-form@^7.51.2: - version "7.54.2" - resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.54.2.tgz#8c26ed54c71628dff57ccd3c074b1dd377cfb211" - integrity sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg== +react-hook-form@^7.77.0: + version "7.77.0" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.77.0.tgz#af7e1d90d00c0418a98cf00b6f9bd5b85587c6fb" + integrity sha512-Sslh9YDYc0GDlWT/lxasnIduNo4v3yyvqRGvmGKUre5AFjDs/HV9/OafHGD8d+sB2yoL4UIL9L8X9i0WlZZebg== react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" @@ -9932,10 +9961,10 @@ react-remove-scroll@^2.6.3: use-callback-ref "^1.3.3" use-sidecar "^1.1.3" -react-resizable-panels@^2.0.17: - version "2.1.7" - resolved "https://registry.yarnpkg.com/react-resizable-panels/-/react-resizable-panels-2.1.7.tgz#afd29d8a3d708786a9f95183a38803c89f13c2e7" - integrity sha512-JtT6gI+nURzhMYQYsx8DKkx6bSoOGFp7A3CwMrOb8y5jFHFyqwo9m68UhmXRw57fRVJksFn1TSlm3ywEQ9vMgA== +react-resizable-panels@^4.11.2: + version "4.11.2" + resolved "https://registry.yarnpkg.com/react-resizable-panels/-/react-resizable-panels-4.11.2.tgz#76d5e692617044d52a807b9e675eb7e68a1663d8" + integrity sha512-+kfFbDZ8mygc7g0vxOcDzCVGuwiIUOnILqPoUHo6/uP+Mmyx6HzZU+kj1aOPDlktXuobYbr6BtQekvJwHRX4Eg== react-router-dom@6.3.0: version "6.3.0" @@ -10691,10 +10720,10 @@ sockjs@^0.3.24: uuid "^8.3.2" websocket-driver "^0.7.4" -sonner@^1.4.41: - version "1.7.4" - resolved "https://registry.yarnpkg.com/sonner/-/sonner-1.7.4.tgz#4c39820db86623800a17115c8970796aa862133a" - integrity sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw== +sonner@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/sonner/-/sonner-2.0.7.tgz#810c1487a67ec3370126e0f400dfb9edddc3e4f6" + integrity sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w== sortobject@^4.0.0: version "4.17.0" @@ -12506,7 +12535,7 @@ zip-stream@^2.1.2: compress-commons "^2.1.1" readable-stream "^3.4.0" -zod@^3.22.4: - version "3.24.2" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.24.2.tgz#8efa74126287c675e92f46871cfc8d15c34372b3" - integrity sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ== +zod@^4.4.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/zod/-/zod-4.4.3.tgz#b680f172885d18bbebf21a834ea25e55a1bbf356" + integrity sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==