From 6c32d845a79c348a274fdb31500ab57b22e0ca95 Mon Sep 17 00:00:00 2001 From: liqupan Date: Mon, 2 Feb 2026 20:12:19 +0800 Subject: [PATCH] feat: add authenticated settings page. --- shadcn-admin/.env.example | 1 + shadcn-admin/.github/CODE_OF_CONDUCT.md | 128 + shadcn-admin/.github/CONTRIBUTING.md | 101 + shadcn-admin/.github/FUNDING.yml | 14 + .../.github/ISSUE_TEMPLATE/config.yml | 5 + .../ISSUE_TEMPLATE/✨-feature-request.md | 19 + .../.github/ISSUE_TEMPLATE/🐞-bug-report.md | 27 + shadcn-admin/.github/PULL_REQUEST_TEMPLATE.md | 27 + shadcn-admin/.github/workflows/ci.yml | 41 + shadcn-admin/.github/workflows/stale.yml | 29 + shadcn-admin/.gitignore | 26 + shadcn-admin/.prettierignore | 18 + shadcn-admin/.prettierrc | 50 + shadcn-admin/CHANGELOG.md | 331 + shadcn-admin/LICENSE | 21 + shadcn-admin/README.md | 119 + shadcn-admin/components.json | 21 + shadcn-admin/cz.yaml | 7 + shadcn-admin/eslint.config.js | 59 + shadcn-admin/index.html | 80 + shadcn-admin/knip.config.ts | 8 + shadcn-admin/netlify.toml | 4 + shadcn-admin/package.json | 84 + shadcn-admin/pnpm-lock.yaml | 6151 +++++++++++++++++ shadcn-admin/public/images/favicon.png | Bin 0 -> 494 bytes shadcn-admin/public/images/favicon.svg | 4 + shadcn-admin/public/images/favicon_light.png | Bin 0 -> 247 bytes shadcn-admin/public/images/favicon_light.svg | 1 + shadcn-admin/public/images/shadcn-admin.png | Bin 0 -> 279656 bytes .../src/assets/brand-icons/icon-discord.tsx | 28 + .../src/assets/brand-icons/icon-docker.tsx | 33 + .../src/assets/brand-icons/icon-facebook.tsx | 25 + .../src/assets/brand-icons/icon-figma.tsx | 27 + .../src/assets/brand-icons/icon-github.tsx | 25 + .../src/assets/brand-icons/icon-gitlab.tsx | 25 + .../src/assets/brand-icons/icon-gmail.tsx | 28 + .../src/assets/brand-icons/icon-medium.tsx | 30 + .../src/assets/brand-icons/icon-notion.tsx | 28 + .../src/assets/brand-icons/icon-skype.tsx | 26 + .../src/assets/brand-icons/icon-slack.tsx | 28 + .../src/assets/brand-icons/icon-stripe.tsx | 25 + .../src/assets/brand-icons/icon-telegram.tsx | 25 + .../src/assets/brand-icons/icon-trello.tsx | 27 + .../src/assets/brand-icons/icon-whatsapp.tsx | 26 + .../src/assets/brand-icons/icon-zoom.tsx | 26 + shadcn-admin/src/assets/brand-icons/index.ts | 16 + shadcn-admin/src/assets/clerk-full-logo.tsx | 41 + shadcn-admin/src/assets/clerk-logo.tsx | 23 + shadcn-admin/src/assets/custom/icon-dir.tsx | 110 + .../src/assets/custom/icon-layout-compact.tsx | 131 + .../src/assets/custom/icon-layout-default.tsx | 124 + .../src/assets/custom/icon-layout-full.tsx | 100 + .../assets/custom/icon-sidebar-floating.tsx | 82 + .../src/assets/custom/icon-sidebar-inset.tsx | 58 + .../assets/custom/icon-sidebar-sidebar.tsx | 53 + .../src/assets/custom/icon-theme-dark.tsx | 79 + .../src/assets/custom/icon-theme-light.tsx | 78 + .../src/assets/custom/icon-theme-system.tsx | 116 + shadcn-admin/src/assets/logo.tsx | 24 + shadcn-admin/src/components/coming-soon.tsx | 16 + shadcn-admin/src/components/command-menu.tsx | 91 + shadcn-admin/src/components/config-drawer.tsx | 354 + .../src/components/confirm-dialog.tsx | 67 + .../components/data-table/bulk-actions.tsx | 213 + .../components/data-table/column-header.tsx | 74 + .../components/data-table/faceted-filter.tsx | 146 + .../src/components/data-table/index.ts | 6 + .../src/components/data-table/pagination.tsx | 130 + .../src/components/data-table/toolbar.tsx | 85 + .../components/data-table/view-options.tsx | 56 + shadcn-admin/src/components/date-picker.tsx | 51 + .../src/components/layout/app-sidebar.tsx | 37 + .../src/components/layout/app-title.tsx | 64 + .../layout/authenticated-layout.tsx | 42 + .../components/layout/data/sidebar-data.ts | 210 + shadcn-admin/src/components/layout/header.tsx | 50 + shadcn-admin/src/components/layout/main.tsx | 27 + .../src/components/layout/nav-group.tsx | 185 + .../src/components/layout/nav-user.tsx | 124 + .../src/components/layout/team-switcher.tsx | 86 + .../src/components/layout/top-nav.tsx | 67 + shadcn-admin/src/components/layout/types.ts | 44 + shadcn-admin/src/components/learn-more.tsx | 44 + shadcn-admin/src/components/long-text.tsx | 84 + .../src/components/navigation-progress.tsx | 25 + .../src/components/password-input.tsx | 42 + .../src/components/profile-dropdown.tsx | 75 + shadcn-admin/src/components/search.tsx | 37 + .../src/components/select-dropdown.tsx | 62 + .../src/components/sign-out-dialog.tsx | 38 + shadcn-admin/src/components/skip-to-main.tsx | 10 + shadcn-admin/src/components/theme-switch.tsx | 58 + .../src/components/ui/alert-dialog.tsx | 154 + shadcn-admin/src/components/ui/alert.tsx | 65 + shadcn-admin/src/components/ui/avatar.tsx | 50 + shadcn-admin/src/components/ui/badge.tsx | 45 + shadcn-admin/src/components/ui/button.tsx | 58 + shadcn-admin/src/components/ui/calendar.tsx | 210 + shadcn-admin/src/components/ui/card.tsx | 91 + shadcn-admin/src/components/ui/checkbox.tsx | 29 + .../src/components/ui/collapsible.tsx | 31 + shadcn-admin/src/components/ui/command.tsx | 181 + shadcn-admin/src/components/ui/dialog.tsx | 142 + .../src/components/ui/dropdown-menu.tsx | 254 + shadcn-admin/src/components/ui/form.tsx | 164 + shadcn-admin/src/components/ui/input-otp.tsx | 74 + shadcn-admin/src/components/ui/input.tsx | 20 + shadcn-admin/src/components/ui/label.tsx | 23 + shadcn-admin/src/components/ui/popover.tsx | 45 + .../src/components/ui/radio-group.tsx | 42 + .../src/components/ui/scroll-area.tsx | 65 + shadcn-admin/src/components/ui/select.tsx | 182 + shadcn-admin/src/components/ui/separator.tsx | 25 + shadcn-admin/src/components/ui/sheet.tsx | 136 + shadcn-admin/src/components/ui/sidebar.tsx | 728 ++ shadcn-admin/src/components/ui/skeleton.tsx | 13 + shadcn-admin/src/components/ui/sonner.tsx | 21 + shadcn-admin/src/components/ui/switch.tsx | 28 + shadcn-admin/src/components/ui/table.tsx | 113 + shadcn-admin/src/components/ui/tabs.tsx | 63 + shadcn-admin/src/components/ui/textarea.tsx | 17 + shadcn-admin/src/components/ui/tooltip.tsx | 60 + shadcn-admin/src/config/fonts.ts | 19 + .../src/context/direction-provider.tsx | 61 + shadcn-admin/src/context/font-provider.tsx | 58 + shadcn-admin/src/context/layout-provider.tsx | 85 + shadcn-admin/src/context/search-provider.tsx | 46 + shadcn-admin/src/context/theme-provider.tsx | 110 + shadcn-admin/src/features/apps/data/apps.tsx | 110 + shadcn-admin/src/features/apps/index.tsx | 179 + .../src/features/auth/auth-layout.tsx | 19 + .../components/forgot-password-form.tsx | 82 + .../features/auth/forgot-password/index.tsx | 44 + .../features/auth/otp/components/otp-form.tsx | 100 + shadcn-admin/src/features/auth/otp/index.tsx | 44 + .../auth/sign-in/assets/dashboard-dark.png | Bin 0 -> 461766 bytes .../auth/sign-in/assets/dashboard-light.png | Bin 0 -> 450987 bytes .../sign-in/components/user-auth-form.tsx | 150 + .../src/features/auth/sign-in/index.tsx | 51 + .../src/features/auth/sign-in/sign-in-2.tsx | 69 + .../auth/sign-up/components/sign-up-form.tsx | 143 + .../src/features/auth/sign-up/index.tsx | 57 + .../components/character-dialog-context.tsx | 32 + .../components/character-dialog.tsx | 331 + .../components/characters-primary-buttons.tsx | 17 + .../components/characters-table.tsx | 172 + .../characters/components/columns.tsx | 97 + .../components/data-table-row-actions.tsx | 68 + .../src/features/characters/data/api.ts | 59 + .../src/features/characters/data/data.ts | 19 + .../src/features/characters/data/schema.ts | 30 + .../src/features/characters/index.tsx | 54 + .../features/chats/components/new-chat.tsx | 127 + .../src/features/chats/data/chat-types.ts | 4 + .../src/features/chats/data/convo.json | 309 + shadcn-admin/src/features/chats/index.tsx | 349 + .../dashboard/components/analytics-chart.tsx | 77 + .../dashboard/components/analytics.tsx | 189 + .../dashboard/components/overview.tsx | 82 + .../dashboard/components/recent-sales.tsx | 83 + shadcn-admin/src/features/dashboard/index.tsx | 220 + .../src/features/errors/forbidden.tsx | 25 + .../src/features/errors/general-error.tsx | 36 + .../src/features/errors/maintenance-error.tsx | 19 + .../src/features/errors/not-found-error.tsx | 25 + .../features/errors/unauthorized-error.tsx | 25 + .../settings/account/account-form.tsx | 173 + .../src/features/settings/account/index.tsx | 14 + .../settings/appearance/appearance-form.tsx | 162 + .../features/settings/appearance/index.tsx | 14 + .../settings/components/content-section.tsx | 22 + .../settings/components/sidebar-nav.tsx | 84 + .../settings/display/display-form.tsx | 121 + .../src/features/settings/display/index.tsx | 13 + shadcn-admin/src/features/settings/index.tsx | 74 + .../features/settings/notifications/index.tsx | 13 + .../notifications/notifications-form.tsx | 220 + .../src/features/settings/profile/index.tsx | 13 + .../settings/profile/profile-form.tsx | 177 + .../components/data-table-bulk-actions.tsx | 193 + .../components/data-table-row-actions.tsx | 83 + .../tasks/components/tasks-columns.tsx | 123 + .../tasks/components/tasks-dialogs.tsx | 72 + .../tasks/components/tasks-import-dialog.tsx | 110 + .../components/tasks-multi-delete-dialog.tsx | 95 + .../tasks/components/tasks-mutate-drawer.tsx | 212 + .../components/tasks-primary-buttons.tsx | 21 + .../tasks/components/tasks-provider.tsx | 36 + .../features/tasks/components/tasks-table.tsx | 197 + shadcn-admin/src/features/tasks/data/data.tsx | 77 + .../src/features/tasks/data/schema.ts | 13 + shadcn-admin/src/features/tasks/data/tasks.ts | 29 + shadcn-admin/src/features/tasks/index.tsx | 41 + .../components/data-table-bulk-actions.tsx | 139 + .../components/data-table-row-actions.tsx | 63 + .../users/components/users-action-dialog.tsx | 326 + .../users/components/users-columns.tsx | 138 + .../users/components/users-delete-dialog.tsx | 81 + .../users/components/users-dialogs.tsx | 51 + .../users/components/users-invite-dialog.tsx | 150 + .../components/users-multi-delete-dialog.tsx | 95 + .../components/users-primary-buttons.tsx | 21 + .../users/components/users-provider.tsx | 36 + .../features/users/components/users-table.tsx | 194 + shadcn-admin/src/features/users/data/data.ts | 35 + .../src/features/users/data/schema.ts | 32 + shadcn-admin/src/features/users/data/users.ts | 33 + shadcn-admin/src/features/users/index.tsx | 47 + shadcn-admin/src/hooks/use-dialog-state.tsx | 18 + shadcn-admin/src/hooks/use-mobile.tsx | 19 + shadcn-admin/src/hooks/use-table-url-state.ts | 219 + shadcn-admin/src/lib/cookies.ts | 43 + shadcn-admin/src/lib/handle-server-error.ts | 24 + shadcn-admin/src/lib/show-submitted-data.tsx | 15 + shadcn-admin/src/lib/supabase.ts | 10 + shadcn-admin/src/lib/utils.ts | 60 + shadcn-admin/src/main.tsx | 107 + shadcn-admin/src/routeTree.gen.ts | 748 ++ .../src/routes/(auth)/forgot-password.tsx | 6 + shadcn-admin/src/routes/(auth)/otp.tsx | 6 + shadcn-admin/src/routes/(auth)/sign-in-2.tsx | 6 + shadcn-admin/src/routes/(auth)/sign-in.tsx | 12 + shadcn-admin/src/routes/(auth)/sign-up.tsx | 6 + shadcn-admin/src/routes/(errors)/401.tsx | 6 + shadcn-admin/src/routes/(errors)/403.tsx | 6 + shadcn-admin/src/routes/(errors)/404.tsx | 6 + shadcn-admin/src/routes/(errors)/500.tsx | 6 + shadcn-admin/src/routes/(errors)/503.tsx | 6 + shadcn-admin/src/routes/__root.tsx | 30 + .../src/routes/_authenticated/apps/index.tsx | 17 + .../routes/_authenticated/characters.lazy.tsx | 6 + .../src/routes/_authenticated/chats/index.tsx | 6 + .../routes/_authenticated/errors/$error.tsx | 45 + .../_authenticated/help-center/index.tsx | 6 + .../src/routes/_authenticated/index.tsx | 6 + .../src/routes/_authenticated/route.tsx | 6 + .../_authenticated/settings/account.tsx | 6 + .../_authenticated/settings/appearance.tsx | 6 + .../_authenticated/settings/display.tsx | 6 + .../routes/_authenticated/settings/index.tsx | 6 + .../_authenticated/settings/notifications.tsx | 6 + .../routes/_authenticated/settings/route.tsx | 6 + .../src/routes/_authenticated/tasks/index.tsx | 23 + .../src/routes/_authenticated/users/index.tsx | 32 + .../src/routes/clerk/(auth)/route.tsx | 60 + .../src/routes/clerk/(auth)/sign-in.tsx | 14 + .../src/routes/clerk/(auth)/sign-up.tsx | 9 + .../src/routes/clerk/_authenticated/route.tsx | 6 + .../clerk/_authenticated/user-management.tsx | 184 + shadcn-admin/src/routes/clerk/route.tsx | 135 + shadcn-admin/src/stores/auth-store.ts | 53 + shadcn-admin/src/styles/index.css | 87 + shadcn-admin/src/styles/theme.css | 102 + shadcn-admin/src/tanstack-table.d.ts | 10 + shadcn-admin/src/vite-env.d.ts | 1 + shadcn-admin/tsconfig.app.json | 32 + shadcn-admin/tsconfig.json | 13 + shadcn-admin/tsconfig.node.json | 24 + shadcn-admin/vite.config.ts | 22 + 259 files changed, 24685 insertions(+) create mode 100644 shadcn-admin/.env.example create mode 100644 shadcn-admin/.github/CODE_OF_CONDUCT.md create mode 100644 shadcn-admin/.github/CONTRIBUTING.md create mode 100644 shadcn-admin/.github/FUNDING.yml create mode 100644 shadcn-admin/.github/ISSUE_TEMPLATE/config.yml create mode 100644 shadcn-admin/.github/ISSUE_TEMPLATE/✨-feature-request.md create mode 100644 shadcn-admin/.github/ISSUE_TEMPLATE/🐞-bug-report.md create mode 100644 shadcn-admin/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 shadcn-admin/.github/workflows/ci.yml create mode 100644 shadcn-admin/.github/workflows/stale.yml create mode 100644 shadcn-admin/.gitignore create mode 100644 shadcn-admin/.prettierignore create mode 100644 shadcn-admin/.prettierrc create mode 100644 shadcn-admin/CHANGELOG.md create mode 100644 shadcn-admin/LICENSE create mode 100644 shadcn-admin/README.md create mode 100644 shadcn-admin/components.json create mode 100644 shadcn-admin/cz.yaml create mode 100644 shadcn-admin/eslint.config.js create mode 100644 shadcn-admin/index.html create mode 100644 shadcn-admin/knip.config.ts create mode 100644 shadcn-admin/netlify.toml create mode 100644 shadcn-admin/package.json create mode 100644 shadcn-admin/pnpm-lock.yaml create mode 100644 shadcn-admin/public/images/favicon.png create mode 100644 shadcn-admin/public/images/favicon.svg create mode 100644 shadcn-admin/public/images/favicon_light.png create mode 100644 shadcn-admin/public/images/favicon_light.svg create mode 100644 shadcn-admin/public/images/shadcn-admin.png create mode 100644 shadcn-admin/src/assets/brand-icons/icon-discord.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-docker.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-facebook.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-figma.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-github.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-gitlab.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-gmail.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-medium.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-notion.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-skype.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-slack.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-stripe.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-telegram.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-trello.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-whatsapp.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/icon-zoom.tsx create mode 100644 shadcn-admin/src/assets/brand-icons/index.ts create mode 100644 shadcn-admin/src/assets/clerk-full-logo.tsx create mode 100644 shadcn-admin/src/assets/clerk-logo.tsx create mode 100644 shadcn-admin/src/assets/custom/icon-dir.tsx create mode 100644 shadcn-admin/src/assets/custom/icon-layout-compact.tsx create mode 100644 shadcn-admin/src/assets/custom/icon-layout-default.tsx create mode 100644 shadcn-admin/src/assets/custom/icon-layout-full.tsx create mode 100644 shadcn-admin/src/assets/custom/icon-sidebar-floating.tsx create mode 100644 shadcn-admin/src/assets/custom/icon-sidebar-inset.tsx create mode 100644 shadcn-admin/src/assets/custom/icon-sidebar-sidebar.tsx create mode 100644 shadcn-admin/src/assets/custom/icon-theme-dark.tsx create mode 100644 shadcn-admin/src/assets/custom/icon-theme-light.tsx create mode 100644 shadcn-admin/src/assets/custom/icon-theme-system.tsx create mode 100644 shadcn-admin/src/assets/logo.tsx create mode 100644 shadcn-admin/src/components/coming-soon.tsx create mode 100644 shadcn-admin/src/components/command-menu.tsx create mode 100644 shadcn-admin/src/components/config-drawer.tsx create mode 100644 shadcn-admin/src/components/confirm-dialog.tsx create mode 100644 shadcn-admin/src/components/data-table/bulk-actions.tsx create mode 100644 shadcn-admin/src/components/data-table/column-header.tsx create mode 100644 shadcn-admin/src/components/data-table/faceted-filter.tsx create mode 100644 shadcn-admin/src/components/data-table/index.ts create mode 100644 shadcn-admin/src/components/data-table/pagination.tsx create mode 100644 shadcn-admin/src/components/data-table/toolbar.tsx create mode 100644 shadcn-admin/src/components/data-table/view-options.tsx create mode 100644 shadcn-admin/src/components/date-picker.tsx create mode 100644 shadcn-admin/src/components/layout/app-sidebar.tsx create mode 100644 shadcn-admin/src/components/layout/app-title.tsx create mode 100644 shadcn-admin/src/components/layout/authenticated-layout.tsx create mode 100644 shadcn-admin/src/components/layout/data/sidebar-data.ts create mode 100644 shadcn-admin/src/components/layout/header.tsx create mode 100644 shadcn-admin/src/components/layout/main.tsx create mode 100644 shadcn-admin/src/components/layout/nav-group.tsx create mode 100644 shadcn-admin/src/components/layout/nav-user.tsx create mode 100644 shadcn-admin/src/components/layout/team-switcher.tsx create mode 100644 shadcn-admin/src/components/layout/top-nav.tsx create mode 100644 shadcn-admin/src/components/layout/types.ts create mode 100644 shadcn-admin/src/components/learn-more.tsx create mode 100644 shadcn-admin/src/components/long-text.tsx create mode 100644 shadcn-admin/src/components/navigation-progress.tsx create mode 100644 shadcn-admin/src/components/password-input.tsx create mode 100644 shadcn-admin/src/components/profile-dropdown.tsx create mode 100644 shadcn-admin/src/components/search.tsx create mode 100644 shadcn-admin/src/components/select-dropdown.tsx create mode 100644 shadcn-admin/src/components/sign-out-dialog.tsx create mode 100644 shadcn-admin/src/components/skip-to-main.tsx create mode 100644 shadcn-admin/src/components/theme-switch.tsx create mode 100644 shadcn-admin/src/components/ui/alert-dialog.tsx create mode 100644 shadcn-admin/src/components/ui/alert.tsx create mode 100644 shadcn-admin/src/components/ui/avatar.tsx create mode 100644 shadcn-admin/src/components/ui/badge.tsx create mode 100644 shadcn-admin/src/components/ui/button.tsx create mode 100644 shadcn-admin/src/components/ui/calendar.tsx create mode 100644 shadcn-admin/src/components/ui/card.tsx create mode 100644 shadcn-admin/src/components/ui/checkbox.tsx create mode 100644 shadcn-admin/src/components/ui/collapsible.tsx create mode 100644 shadcn-admin/src/components/ui/command.tsx create mode 100644 shadcn-admin/src/components/ui/dialog.tsx create mode 100644 shadcn-admin/src/components/ui/dropdown-menu.tsx create mode 100644 shadcn-admin/src/components/ui/form.tsx create mode 100644 shadcn-admin/src/components/ui/input-otp.tsx create mode 100644 shadcn-admin/src/components/ui/input.tsx create mode 100644 shadcn-admin/src/components/ui/label.tsx create mode 100644 shadcn-admin/src/components/ui/popover.tsx create mode 100644 shadcn-admin/src/components/ui/radio-group.tsx create mode 100644 shadcn-admin/src/components/ui/scroll-area.tsx create mode 100644 shadcn-admin/src/components/ui/select.tsx create mode 100644 shadcn-admin/src/components/ui/separator.tsx create mode 100644 shadcn-admin/src/components/ui/sheet.tsx create mode 100644 shadcn-admin/src/components/ui/sidebar.tsx create mode 100644 shadcn-admin/src/components/ui/skeleton.tsx create mode 100644 shadcn-admin/src/components/ui/sonner.tsx create mode 100644 shadcn-admin/src/components/ui/switch.tsx create mode 100644 shadcn-admin/src/components/ui/table.tsx create mode 100644 shadcn-admin/src/components/ui/tabs.tsx create mode 100644 shadcn-admin/src/components/ui/textarea.tsx create mode 100644 shadcn-admin/src/components/ui/tooltip.tsx create mode 100644 shadcn-admin/src/config/fonts.ts create mode 100644 shadcn-admin/src/context/direction-provider.tsx create mode 100644 shadcn-admin/src/context/font-provider.tsx create mode 100644 shadcn-admin/src/context/layout-provider.tsx create mode 100644 shadcn-admin/src/context/search-provider.tsx create mode 100644 shadcn-admin/src/context/theme-provider.tsx create mode 100644 shadcn-admin/src/features/apps/data/apps.tsx create mode 100644 shadcn-admin/src/features/apps/index.tsx create mode 100644 shadcn-admin/src/features/auth/auth-layout.tsx create mode 100644 shadcn-admin/src/features/auth/forgot-password/components/forgot-password-form.tsx create mode 100644 shadcn-admin/src/features/auth/forgot-password/index.tsx create mode 100644 shadcn-admin/src/features/auth/otp/components/otp-form.tsx create mode 100644 shadcn-admin/src/features/auth/otp/index.tsx create mode 100644 shadcn-admin/src/features/auth/sign-in/assets/dashboard-dark.png create mode 100644 shadcn-admin/src/features/auth/sign-in/assets/dashboard-light.png create mode 100644 shadcn-admin/src/features/auth/sign-in/components/user-auth-form.tsx create mode 100644 shadcn-admin/src/features/auth/sign-in/index.tsx create mode 100644 shadcn-admin/src/features/auth/sign-in/sign-in-2.tsx create mode 100644 shadcn-admin/src/features/auth/sign-up/components/sign-up-form.tsx create mode 100644 shadcn-admin/src/features/auth/sign-up/index.tsx create mode 100644 shadcn-admin/src/features/characters/components/character-dialog-context.tsx create mode 100644 shadcn-admin/src/features/characters/components/character-dialog.tsx create mode 100644 shadcn-admin/src/features/characters/components/characters-primary-buttons.tsx create mode 100644 shadcn-admin/src/features/characters/components/characters-table.tsx create mode 100644 shadcn-admin/src/features/characters/components/columns.tsx create mode 100644 shadcn-admin/src/features/characters/components/data-table-row-actions.tsx create mode 100644 shadcn-admin/src/features/characters/data/api.ts create mode 100644 shadcn-admin/src/features/characters/data/data.ts create mode 100644 shadcn-admin/src/features/characters/data/schema.ts create mode 100644 shadcn-admin/src/features/characters/index.tsx create mode 100644 shadcn-admin/src/features/chats/components/new-chat.tsx create mode 100644 shadcn-admin/src/features/chats/data/chat-types.ts create mode 100644 shadcn-admin/src/features/chats/data/convo.json create mode 100644 shadcn-admin/src/features/chats/index.tsx create mode 100644 shadcn-admin/src/features/dashboard/components/analytics-chart.tsx create mode 100644 shadcn-admin/src/features/dashboard/components/analytics.tsx create mode 100644 shadcn-admin/src/features/dashboard/components/overview.tsx create mode 100644 shadcn-admin/src/features/dashboard/components/recent-sales.tsx create mode 100644 shadcn-admin/src/features/dashboard/index.tsx create mode 100644 shadcn-admin/src/features/errors/forbidden.tsx create mode 100644 shadcn-admin/src/features/errors/general-error.tsx create mode 100644 shadcn-admin/src/features/errors/maintenance-error.tsx create mode 100644 shadcn-admin/src/features/errors/not-found-error.tsx create mode 100644 shadcn-admin/src/features/errors/unauthorized-error.tsx create mode 100644 shadcn-admin/src/features/settings/account/account-form.tsx create mode 100644 shadcn-admin/src/features/settings/account/index.tsx create mode 100644 shadcn-admin/src/features/settings/appearance/appearance-form.tsx create mode 100644 shadcn-admin/src/features/settings/appearance/index.tsx create mode 100644 shadcn-admin/src/features/settings/components/content-section.tsx create mode 100644 shadcn-admin/src/features/settings/components/sidebar-nav.tsx create mode 100644 shadcn-admin/src/features/settings/display/display-form.tsx create mode 100644 shadcn-admin/src/features/settings/display/index.tsx create mode 100644 shadcn-admin/src/features/settings/index.tsx create mode 100644 shadcn-admin/src/features/settings/notifications/index.tsx create mode 100644 shadcn-admin/src/features/settings/notifications/notifications-form.tsx create mode 100644 shadcn-admin/src/features/settings/profile/index.tsx create mode 100644 shadcn-admin/src/features/settings/profile/profile-form.tsx create mode 100644 shadcn-admin/src/features/tasks/components/data-table-bulk-actions.tsx create mode 100644 shadcn-admin/src/features/tasks/components/data-table-row-actions.tsx create mode 100644 shadcn-admin/src/features/tasks/components/tasks-columns.tsx create mode 100644 shadcn-admin/src/features/tasks/components/tasks-dialogs.tsx create mode 100644 shadcn-admin/src/features/tasks/components/tasks-import-dialog.tsx create mode 100644 shadcn-admin/src/features/tasks/components/tasks-multi-delete-dialog.tsx create mode 100644 shadcn-admin/src/features/tasks/components/tasks-mutate-drawer.tsx create mode 100644 shadcn-admin/src/features/tasks/components/tasks-primary-buttons.tsx create mode 100644 shadcn-admin/src/features/tasks/components/tasks-provider.tsx create mode 100644 shadcn-admin/src/features/tasks/components/tasks-table.tsx create mode 100644 shadcn-admin/src/features/tasks/data/data.tsx create mode 100644 shadcn-admin/src/features/tasks/data/schema.ts create mode 100644 shadcn-admin/src/features/tasks/data/tasks.ts create mode 100644 shadcn-admin/src/features/tasks/index.tsx create mode 100644 shadcn-admin/src/features/users/components/data-table-bulk-actions.tsx create mode 100644 shadcn-admin/src/features/users/components/data-table-row-actions.tsx create mode 100644 shadcn-admin/src/features/users/components/users-action-dialog.tsx create mode 100644 shadcn-admin/src/features/users/components/users-columns.tsx create mode 100644 shadcn-admin/src/features/users/components/users-delete-dialog.tsx create mode 100644 shadcn-admin/src/features/users/components/users-dialogs.tsx create mode 100644 shadcn-admin/src/features/users/components/users-invite-dialog.tsx create mode 100644 shadcn-admin/src/features/users/components/users-multi-delete-dialog.tsx create mode 100644 shadcn-admin/src/features/users/components/users-primary-buttons.tsx create mode 100644 shadcn-admin/src/features/users/components/users-provider.tsx create mode 100644 shadcn-admin/src/features/users/components/users-table.tsx create mode 100644 shadcn-admin/src/features/users/data/data.ts create mode 100644 shadcn-admin/src/features/users/data/schema.ts create mode 100644 shadcn-admin/src/features/users/data/users.ts create mode 100644 shadcn-admin/src/features/users/index.tsx create mode 100644 shadcn-admin/src/hooks/use-dialog-state.tsx create mode 100644 shadcn-admin/src/hooks/use-mobile.tsx create mode 100644 shadcn-admin/src/hooks/use-table-url-state.ts create mode 100644 shadcn-admin/src/lib/cookies.ts create mode 100644 shadcn-admin/src/lib/handle-server-error.ts create mode 100644 shadcn-admin/src/lib/show-submitted-data.tsx create mode 100644 shadcn-admin/src/lib/supabase.ts create mode 100644 shadcn-admin/src/lib/utils.ts create mode 100644 shadcn-admin/src/main.tsx create mode 100644 shadcn-admin/src/routeTree.gen.ts create mode 100644 shadcn-admin/src/routes/(auth)/forgot-password.tsx create mode 100644 shadcn-admin/src/routes/(auth)/otp.tsx create mode 100644 shadcn-admin/src/routes/(auth)/sign-in-2.tsx create mode 100644 shadcn-admin/src/routes/(auth)/sign-in.tsx create mode 100644 shadcn-admin/src/routes/(auth)/sign-up.tsx create mode 100644 shadcn-admin/src/routes/(errors)/401.tsx create mode 100644 shadcn-admin/src/routes/(errors)/403.tsx create mode 100644 shadcn-admin/src/routes/(errors)/404.tsx create mode 100644 shadcn-admin/src/routes/(errors)/500.tsx create mode 100644 shadcn-admin/src/routes/(errors)/503.tsx create mode 100644 shadcn-admin/src/routes/__root.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/apps/index.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/characters.lazy.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/chats/index.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/errors/$error.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/help-center/index.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/index.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/route.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/settings/account.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/settings/appearance.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/settings/display.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/settings/index.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/settings/notifications.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/settings/route.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/tasks/index.tsx create mode 100644 shadcn-admin/src/routes/_authenticated/users/index.tsx create mode 100644 shadcn-admin/src/routes/clerk/(auth)/route.tsx create mode 100644 shadcn-admin/src/routes/clerk/(auth)/sign-in.tsx create mode 100644 shadcn-admin/src/routes/clerk/(auth)/sign-up.tsx create mode 100644 shadcn-admin/src/routes/clerk/_authenticated/route.tsx create mode 100644 shadcn-admin/src/routes/clerk/_authenticated/user-management.tsx create mode 100644 shadcn-admin/src/routes/clerk/route.tsx create mode 100644 shadcn-admin/src/stores/auth-store.ts create mode 100644 shadcn-admin/src/styles/index.css create mode 100644 shadcn-admin/src/styles/theme.css create mode 100644 shadcn-admin/src/tanstack-table.d.ts create mode 100644 shadcn-admin/src/vite-env.d.ts create mode 100644 shadcn-admin/tsconfig.app.json create mode 100644 shadcn-admin/tsconfig.json create mode 100644 shadcn-admin/tsconfig.node.json create mode 100644 shadcn-admin/vite.config.ts diff --git a/shadcn-admin/.env.example b/shadcn-admin/.env.example new file mode 100644 index 0000000..a32bad2 --- /dev/null +++ b/shadcn-admin/.env.example @@ -0,0 +1 @@ +VITE_CLERK_PUBLISHABLE_KEY= \ No newline at end of file diff --git a/shadcn-admin/.github/CODE_OF_CONDUCT.md b/shadcn-admin/.github/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..18c9147 --- /dev/null +++ b/shadcn-admin/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/shadcn-admin/.github/CONTRIBUTING.md b/shadcn-admin/.github/CONTRIBUTING.md new file mode 100644 index 0000000..3f1b058 --- /dev/null +++ b/shadcn-admin/.github/CONTRIBUTING.md @@ -0,0 +1,101 @@ +# Contributing to Shadcn-Admin + +Thank you for considering contributing to **shadcn-admin**! Every contribution is valuable, whether it's reporting bugs, suggesting improvements, adding features, or refining README. + +## Table of Contents + +1. [Getting Started](#getting-started) +2. [How to Contribute](#how-to-contribute) +3. [Code Standards](#code-standards) +4. [Pull Request Guidelines](#pull-request-guidelines) +5. [Reporting Issues](#reporting-issues) +6. [Community Guidelines](#community-guidelines) + +--- + +## Getting Started + +1. **Fork** the repository. +2. **Clone** your fork: + + ```bash + git clone https://github.com/your-username/shadcn-admin.git + ``` + +3. **Install dependencies:** + + ```bash + pnpm install + ``` + +4. **Run the project locally:** + + ```bash + pnpm dev + ``` + +5. Create a new branch for your contribution: + + ```bash + git checkout -b feature/your-feature + ``` + +--- + +## How to Contribute + +- **Feature Requests:** Open an issue or start a discussion to discuss the feature before implementation. +- **Bug Fixes:** Provide clear reproduction steps in your issue. +- **Documentation:** Improvements to the documentation (README) are always appreciated. + +> **Note:** Pull Requests adding new features without a prior issue or discussion will **not be accepted**. + +--- + +## Code Standards + +- Follow the existing **ESLint** and **Prettier** configurations. +- Ensure your code is **type-safe** with **TypeScript**. +- Maintain consistency with the existing code structure. + +> **Tips!** Before submitting your changes, run the following commands: + +```bash +pnpm lint && pnpm format && pnpm knip && pnpm build +``` + +--- + +## Pull Request Guidelines + +- **Follow the [PR Template](./PULL_REQUEST_TEMPLATE.md):** + - Description + - Types of changes + - Checklist + - Further comments + - Related Issue +- Ensure your changes pass **CI checks**. +- Keep PRs **focused** and **concise**. +- Reference related issues in your PR description. + +--- + +## Reporting Issues + +- Clearly describe the issue. +- Provide reproduction steps if applicable. +- Include screenshots or code examples if relevant. + +--- + +## Community Guidelines + +- Be respectful and constructive. +- Follow the [Code of Conduct](./CODE_OF_CONDUCT.md). +- Stay on topic in discussions. + +--- + +Thank you for helping make **shadcn-admin** better! 🚀 + +If you have any questions, feel free to reach out via [Discussions](https://github.com/satnaing/shadcn-admin/discussions). diff --git a/shadcn-admin/.github/FUNDING.yml b/shadcn-admin/.github/FUNDING.yml new file mode 100644 index 0000000..eca5346 --- /dev/null +++ b/shadcn-admin/.github/FUNDING.yml @@ -0,0 +1,14 @@ +github: [satnaing] +buy_me_a_coffee: satnaing + +# patreon: # Replace with a single Patreon username +# open_collective: # Replace with a single Open Collective username +# ko_fi: # Replace with a single Ko-fi username +# tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +# community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +# liberapay: # Replace with a single Liberapay username +# issuehunt: # Replace with a single IssueHunt username +# lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry +# polar: # Replace with a single Polar username +# thanks_dev: # Replace with a single thanks.dev username +# custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/shadcn-admin/.github/ISSUE_TEMPLATE/config.yml b/shadcn-admin/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..e9871e4 --- /dev/null +++ b/shadcn-admin/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Shadcn-Admin Discussions + url: https://github.com/satnaing/shadcn-admin/discussions + about: Please ask and answer questions here. \ No newline at end of file diff --git a/shadcn-admin/.github/ISSUE_TEMPLATE/✨-feature-request.md b/shadcn-admin/.github/ISSUE_TEMPLATE/✨-feature-request.md new file mode 100644 index 0000000..27ce55c --- /dev/null +++ b/shadcn-admin/.github/ISSUE_TEMPLATE/✨-feature-request.md @@ -0,0 +1,19 @@ +--- +name: "✨ Feature Request" +about: Suggest an idea for improving Shadcn-Admin +title: "[Feature Request]: " +labels: enhancement +assignees: "" +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/shadcn-admin/.github/ISSUE_TEMPLATE/🐞-bug-report.md b/shadcn-admin/.github/ISSUE_TEMPLATE/🐞-bug-report.md new file mode 100644 index 0000000..d8a4f11 --- /dev/null +++ b/shadcn-admin/.github/ISSUE_TEMPLATE/🐞-bug-report.md @@ -0,0 +1,27 @@ +--- +name: "\U0001F41E Bug report" +about: Report a bug or unexpected behavior in Shadcn-Admin +title: "[BUG]: " +labels: bug +assignees: "" +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: + +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Additional context** +Add any other context about the problem here. diff --git a/shadcn-admin/.github/PULL_REQUEST_TEMPLATE.md b/shadcn-admin/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..b6ea4ea --- /dev/null +++ b/shadcn-admin/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,27 @@ +## Description + + + +## Types of changes + + + +- [ ] Bug Fix (non-breaking change which fixes an issue) +- [ ] New Feature (non-breaking change which adds functionality) +- [ ] Others (any other types not listed above) + +## Checklist + + + +- [ ] I have read the [Contributing Guide](https://github.com/satnaing/shadcn-admin/blob/main/.github/CONTRIBUTING.md) + +## Further comments + + + +## Related Issue + + + +Closes: # \ No newline at end of file diff --git a/shadcn-admin/.github/workflows/ci.yml b/shadcn-admin/.github/workflows/ci.yml new file mode 100644 index 0000000..d31df14 --- /dev/null +++ b/shadcn-admin/.github/workflows/ci.yml @@ -0,0 +1,41 @@ +name: Continuous Integration + +on: + push: + branches: + - main + + pull_request: + branches: + - main + +jobs: + install-lint-build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Install pnpm + run: npm install -g pnpm + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Lint the code + run: pnpm lint + + # - name: Analyze unused files and dependencies + # run: pnpm knip + + - name: Run Prettier check + run: pnpm format:check + + - name: Build the project + run: pnpm build diff --git a/shadcn-admin/.github/workflows/stale.yml b/shadcn-admin/.github/workflows/stale.yml new file mode 100644 index 0000000..471f096 --- /dev/null +++ b/shadcn-admin/.github/workflows/stale.yml @@ -0,0 +1,29 @@ +name: Close inactive issues/PR + +on: + schedule: + - cron: '38 18 * * *' + +jobs: + stale: + + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + + steps: + - uses: actions/stale@v5 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + days-before-issue-stale: 120 + days-before-issue-close: 120 + stale-issue-label: "stale" + stale-issue-message: "This issue is stale because it has been open for 120 days with no activity." + close-issue-message: "This issue was closed because it has been inactive for 120 days since being marked as stale." + days-before-pr-stale: 120 + days-before-pr-close: 120 + stale-pr-label: "stale" + stale-pr-message: "This PR is stale because it has been open for 120 days with no activity." + close-pr-message: "This PR was closed because it has been inactive for 120 days since being marked as stale." + operations-per-run: 0 diff --git a/shadcn-admin/.gitignore b/shadcn-admin/.gitignore new file mode 100644 index 0000000..d7de12f --- /dev/null +++ b/shadcn-admin/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +.env + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/shadcn-admin/.prettierignore b/shadcn-admin/.prettierignore new file mode 100644 index 0000000..dc943a1 --- /dev/null +++ b/shadcn-admin/.prettierignore @@ -0,0 +1,18 @@ +# Ignore everything +/* + +# Except these files & folders +!/src +!index.html +!package.json +!tailwind.config.js +!tsconfig.json +!tsconfig.node.json +!vite.config.ts +!.prettierrc +!README.md +!eslint.config.js +!postcss.config.js + +# Ignore auto generated routeTree.gen.ts +/src/routeTree.gen.ts \ No newline at end of file diff --git a/shadcn-admin/.prettierrc b/shadcn-admin/.prettierrc new file mode 100644 index 0000000..d94a315 --- /dev/null +++ b/shadcn-admin/.prettierrc @@ -0,0 +1,50 @@ +{ + "arrowParens": "always", + "semi": false, + "tabWidth": 2, + "printWidth": 80, + "singleQuote": true, + "jsxSingleQuote": true, + "trailingComma": "es5", + "bracketSpacing": true, + "endOfLine": "lf", + "plugins": [ + "@trivago/prettier-plugin-sort-imports", + "prettier-plugin-tailwindcss" + ], + "tailwindStylesheet": "./src/styles/index.css", + "importOrder": [ + "^path$", + "^vite$", + "^@vitejs/(.*)$", + "^react$", + "^react-dom/client$", + "^react/(.*)$", + "^globals$", + "^zod$", + "^axios$", + "^date-fns$", + "^react-hook-form$", + "^use-intl$", + "^@radix-ui/(.*)$", + "^@hookform/resolvers/zod$", + "^@tanstack/react-query$", + "^@tanstack/react-router$", + "^@tanstack/react-table$", + "", + "^@/assets/(.*)", + "^@/api/(.*)$", + "^@/stores/(.*)$", + "^@/lib/(.*)$", + "^@/utils/(.*)$", + "^@/constants/(.*)$", + "^@/context/(.*)$", + "^@/hooks/(.*)$", + "^@/components/layouts/(.*)$", + "^@/components/ui/(.*)$", + "^@/components/errors/(.*)$", + "^@/components/(.*)$", + "^@/features/(.*)$", + "^[./]" + ] +} diff --git a/shadcn-admin/CHANGELOG.md b/shadcn-admin/CHANGELOG.md new file mode 100644 index 0000000..e68ec3c --- /dev/null +++ b/shadcn-admin/CHANGELOG.md @@ -0,0 +1,331 @@ +## v2.2.1 (2025-11-06) + +### Fix + +- **style**: update data attribute class in authenticated layout (#249) +- prevent navigation to 500 page during development (#240) +- **style**: apply variant 'destructive' to sign-out buttons (#236) +- add missing space in profile form (#235) + +### Refactor + +- enhance tables and update table layout (#234) + +## v2.2.0 (2025-10-09) + +### Feat + +- add analytics tab in dashboard page (#220) +- add extra AppTitle component for sidebar header (#216) +- update 2-column sign in page (#213) + +### Fix + +- update sidebar menu chevron direction in RTL mode (#229) +- pagination button spacing (#215) +- upgrade lucide-react to solve antivirus warning (#211) + +### Refactor + +- move sidebar related components into app-sidebar +- change SidebarInset component from 'main' to 'div' +- replace extra main container query with content container query +- replace inline svg logo with logo component (#214) + +## v2.1.0 (2025-08-23) + +### Feat + +- enhance data table pagination with page numbers (#207) +- enhance auth flow with sign-out dialogs and redirect functionality (#206) + +### Refactor + +- reorganize utility files into `lib/` folder (#209) +- extract data-table components and reorganize structure (#208) + +## v2.0.0 (2025-08-16) + +### BREAKING CHANGE + +- CSS file structure has been reorganized + +### Feat + +- add search param sync in apps route (#200) +- improve tables and sync table states with search param (#199) +- add data table bulk action toolbar (#196) +- add config drawer and update overall layout (#186) +- RTL support (#179) + +### Fix + +- adjust layout styles in search and top nav in dashboard page +- update spacing and layout styles +- update faceted icon color +- improve user table hover & selected styles (#195) +- add max-width for large screens to improve responsiveness (#194) +- adjust chat border radius for better responsiveness (#193) +- update hard-coded or inconsistent colors (#191) +- use variable for inset layout height calculation +- faded-bottom overflow issue in inset layout +- hide unnecessary configs on mobile (#189) +- adjust file input text vertical alignment (#188) + +### Refactor + +- enforce consistency and code quality (#198) +- improve code quality and consistency (#197) +- update error routes (#192) +- remove DirSwitch component and its usage in Tasks (#190) +- standardize using cookie as persist state (#187) +- separate CSS into modular theme and base styles (#185) +- replace tabler icons with lucide icons (#183) + +## v1.4.2 (2025-07-23) + +### Fix + +- remove unnecessary transitions in table (#176) +- overflow background in tables (#175) + +## v1.4.1 (2025-06-25) + +### Fix + +- user list overflow in chat (#160) +- prevent showing collapsed menu on mobile (#155) +- white background select dropdown in dark mode (#149) + +### Refactor + +- update font config guide in fonts.ts (#164) + +## v1.4.0 (2025-05-25) + +### Feat + +- **clerk**: add Clerk for auth and protected route (#146) + +### Fix + +- add an indicator for nested pages in search (#147) +- update faded-bottom color with css variable (#139) + +## v1.3.0 (2025-04-16) + +### Fix + +- replace custom otp with input-otp component (#131) +- disable layout animation on mobile (#130) +- upgrade react-day-picker and update calendar component (#129) + +### Others + +- upgrade Tailwind CSS to v4 (#125) +- upgrade dependencies (#128) +- configure automatic code-splitting (#127) + +## v1.2.0 (2025-04-12) + +### Feat + +- add loading indicator during page transitions (#119) +- add light favicons and theme-based switching (#112) +- add new chat dialog in chats page (#90) + +### Fix + +- add fallback font for fontFamily (#110) +- broken focus behavior in add user dialog (#113) + +## v1.1.0 (2025-01-30) + +### Feat + +- allow changing font family in setting + +### Fix + +- update sidebar color in dark mode for consistent look (#87) +- use overflow-clip in table paginations (#86) +- **style**: update global scrollbar style (#82) +- toolbar filter placeholder typo in user table (#76) + +## v1.0.3 (2024-12-28) + +### Fix + +- add gap between buttons in import task dialog (#70) +- hide button sort if column cannot be hidden & update filterFn (#69) +- nav links added in profile dropdown (#68) + +### Refactor + +- optimize states in users/tasks context (#71) + +## v1.0.2 (2024-12-25) + +### Fix + +- update overall layout due to scroll-lock bug (#66) + +### Refactor + +- analyze and remove unused files/exports with knip (#67) + +## v1.0.1 (2024-12-14) + +### Fix + +- merge two button components into one (#60) +- loading all tabler-icon chunks in dev mode (#59) +- display menu dropdown when sidebar collapsed (#58) +- update spacing & alignment in dialogs/drawers +- update border & transition of sticky columns in user table +- update heading alignment to left in user dialogs +- add height and scroll area in user mutation dialogs +- update `/dashboard` route to just `/` +- **build**: replace require with import in tailwind.config.js + +### Refactor + +- remove unnecessary layout-backup file + +## v1.0.0 (2024-12-09) + +### BREAKING CHANGE + +- Restructured the entire folder +hierarchy to adopt a feature-based structure. This +change improves code modularity and maintainability +but introduces breaking changes. + +### Feat + +- implement task dialogs +- implement user invite dialog +- implement users CRUD +- implement global command/search +- implement custom sidebar trigger +- implement coming-soon page + +### Fix + +- uncontrolled issue in account setting +- card layout issue in app integrations page +- remove form reset logic from useEffect in task import +- update JSX types due to react 19 +- prevent card stretch in filtered app layout +- layout wrap issue in tasks page on mobile +- update user column hover and selected colors +- add setTimeout in user dialog closing +- layout shift issue in dropdown modal +- z-axis overflow issue in header +- stretch search bar only in mobile +- language dropdown issue in account setting +- update overflow contents with scroll area + +### Refactor + +- update layouts and extract common layout +- reorganize project to feature-based structure + +## v1.0.0-beta.5 (2024-11-11) + +### Feat + +- add multiple language support (#37) + +### Fix + +- ensure site syncs with system theme changes (#49) +- recent sales responsive on ipad view (#40) + +## v1.0.0-beta.4 (2024-09-22) + +### Feat + +- upgrade theme button to theme dropdown (#33) +- **a11y**: add "Skip to Main" button to improve keyboard navigation (#27) + +### Fix + +- optimize onComplete/onIncomplete invocation (#32) +- solve asChild attribute issue in custom button (#31) +- improve custom Button component (#28) + +## v1.0.0-beta.3 (2024-08-25) + +### Feat + +- implement chat page (#21) +- add 401 error page (#12) +- implement apps page +- add otp page + +### Fix + +- prevent focus zoom on mobile devices (#20) +- resolve eslint script issue (#18) +- **a11y**: update default aria-label of each pin-input +- resolve OTP paste issue in multi-digit pin-input +- update layouts and solve overflow issues (#11) +- sync pin inputs programmatically + +## v1.0.0-beta.2 (2024-03-18) + +### Feat + +- implement custom pin-input component (#2) + +## v1.0.0-beta.1 (2024-02-08) + +### Feat + +- update theme-color meta tag when theme is updated +- add coming soon page in broken pages +- implement tasks table and page +- add remaining settings pages +- add example error page for settings +- update general error page to be more flexible +- implement settings layout and settings profile page +- add error pages +- add password-input custom component +- add sign-up page +- add forgot-password page +- add box sign in page +- add email + password sign in page +- make sidebar responsive and accessible +- add tailwind prettier plugin +- make sidebar collapsed state in local storage +- add check current active nav hook +- add loader component ui +- update dropdown nav by default if child is active +- add main-panel in dashboard +- **ui**: add dark mode +- **ui**: implement side nav ui + +### Fix + +- update incorrect overflow side nav height +- exclude shadcn components from linting and remove unused props +- solve text overflow issue when nav text is long +- replace nav with dropdown in mobile topnav +- make sidebar scrollable when overflow +- update nav link keys +- **ui**: update label style + +### Refactor + +- move password-input component into custom component dir +- add custom button component +- extract redundant codes into layout component +- update react-router to use new api for routing +- update main panel layout +- update major layouts and styling +- update main panel to be responsive +- update sidebar collapsed state to false in mobile +- update sidebar logo and title +- **ui**: remove unnecessary spacing +- remove unused files diff --git a/shadcn-admin/LICENSE b/shadcn-admin/LICENSE new file mode 100644 index 0000000..63b1aed --- /dev/null +++ b/shadcn-admin/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Sat Naing + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/shadcn-admin/README.md b/shadcn-admin/README.md new file mode 100644 index 0000000..82b6da5 --- /dev/null +++ b/shadcn-admin/README.md @@ -0,0 +1,119 @@ +# Shadcn Admin Dashboard + +Admin Dashboard UI crafted with Shadcn and Vite. Built with responsiveness and accessibility in mind. + +![alt text](public/images/shadcn-admin.png) + +[![Sponsored by Clerk](https://img.shields.io/badge/Sponsored%20by-Clerk-5b6ee1?logo=clerk)](https://go.clerk.com/GttUAaK) + +I've been creating dashboard UIs at work and for my personal projects. I always wanted to make a reusable collection of dashboard UI for future projects; and here it is now. While I've created a few custom components, some of the code is directly adapted from ShadcnUI examples. + +> This is not a starter project (template) though. I'll probably make one in the future. + +## Features + +- Light/dark mode +- Responsive +- Accessible +- With built-in Sidebar component +- Global search command +- 10+ pages +- Extra custom components +- RTL support + +
+Customized Components (click to expand) + +This project uses Shadcn UI components, but some have been slightly modified for better RTL (Right-to-Left) support and other improvements. These customized components differ from the original Shadcn UI versions. + +If you want to update components using the Shadcn CLI (e.g., `npx shadcn@latest add `), it's generally safe for non-customized components. For the listed customized ones, you may need to manually merge changes to preserve the project's modifications and avoid overwriting RTL support or other updates. + +> If you don't require RTL support, you can safely update the 'RTL Updated Components' via the Shadcn CLI, as these changes are primarily for RTL compatibility. The 'Modified Components' may have other customizations to consider. + +### Modified Components + +- scroll-area +- sonner +- separator + +### RTL Updated Components + +- alert-dialog +- calendar +- command +- dialog +- dropdown-menu +- select +- table +- sheet +- sidebar +- switch + +**Notes:** + +- **Modified Components**: These have general updates, potentially including RTL adjustments. +- **RTL Updated Components**: These have specific changes for RTL language support (e.g., layout, positioning). +- For implementation details, check the source files in `src/components/ui/`. +- All other Shadcn UI components in the project are standard and can be safely updated via the CLI. + +
+ +## Tech Stack + +**UI:** [ShadcnUI](https://ui.shadcn.com) (TailwindCSS + RadixUI) + +**Build Tool:** [Vite](https://vitejs.dev/) + +**Routing:** [TanStack Router](https://tanstack.com/router/latest) + +**Type Checking:** [TypeScript](https://www.typescriptlang.org/) + +**Linting/Formatting:** [ESLint](https://eslint.org/) & [Prettier](https://prettier.io/) + +**Icons:** [Lucide Icons](https://lucide.dev/icons/), [Tabler Icons](https://tabler.io/icons) (Brand icons only) + +**Auth (partial):** [Clerk](https://go.clerk.com/GttUAaK) + +## Run Locally + +Clone the project + +```bash + git clone https://github.com/satnaing/shadcn-admin.git +``` + +Go to the project directory + +```bash + cd shadcn-admin +``` + +Install dependencies + +```bash + pnpm install +``` + +Start the server + +```bash + pnpm run dev +``` + +## Sponsoring this project ❤️ + +If you find this project helpful or use this in your own work, consider [sponsoring me](https://github.com/sponsors/satnaing) to support development and maintenance. You can [buy me a coffee](https://buymeacoffee.com/satnaing) as well. Don’t worry, every penny helps. Thank you! 🙏 + +For questions or sponsorship inquiries, feel free to reach out at [satnaingdev@gmail.com](mailto:satnaingdev@gmail.com). + +### Current Sponsor + +- [Clerk](https://go.clerk.com/GttUAaK) - authentication and user management for the modern web + +## Author + +Crafted with 🤍 by [@satnaing](https://github.com/satnaing) + +## License + +Licensed under the [MIT License](https://choosealicense.com/licenses/mit/) diff --git a/shadcn-admin/components.json b/shadcn-admin/components.json new file mode 100644 index 0000000..0793c55 --- /dev/null +++ b/shadcn-admin/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "", + "css": "src/styles/index.css", + "baseColor": "slate", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} diff --git a/shadcn-admin/cz.yaml b/shadcn-admin/cz.yaml new file mode 100644 index 0000000..cc639d6 --- /dev/null +++ b/shadcn-admin/cz.yaml @@ -0,0 +1,7 @@ +--- +commitizen: + name: cz_conventional_commits + tag_format: v$version + update_changelog_on_bump: true + version_provider: npm + version_scheme: semver diff --git a/shadcn-admin/eslint.config.js b/shadcn-admin/eslint.config.js new file mode 100644 index 0000000..6469873 --- /dev/null +++ b/shadcn-admin/eslint.config.js @@ -0,0 +1,59 @@ +import globals from 'globals' +import js from '@eslint/js' +import pluginQuery from '@tanstack/eslint-plugin-query' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import { defineConfig } from 'eslint/config' +import tseslint from 'typescript-eslint' + +export default defineConfig( + { ignores: ['dist', 'src/components/ui'] }, + { + extends: [ + js.configs.recommended, + ...tseslint.configs.recommended, + ...pluginQuery.configs['flat/recommended'], + ], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + 'no-console': 'error', + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': [ + 'error', + { + args: 'all', + argsIgnorePattern: '^_', + caughtErrors: 'all', + caughtErrorsIgnorePattern: '^_', + destructuredArrayIgnorePattern: '^_', + varsIgnorePattern: '^_', + ignoreRestSiblings: true, + }, + ], + // Enforce type-only imports for TypeScript types + '@typescript-eslint/consistent-type-imports': [ + 'error', + { + prefer: 'type-imports', + fixStyle: 'inline-type-imports', + disallowTypeAnnotations: false, + }, + ], + // Prevent duplicate imports from the same module + 'no-duplicate-imports': 'error', + }, + } +) diff --git a/shadcn-admin/index.html b/shadcn-admin/index.html new file mode 100644 index 0000000..f569fc3 --- /dev/null +++ b/shadcn-admin/index.html @@ -0,0 +1,80 @@ + + + + + + + + + + + + Shadcn Admin + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + diff --git a/shadcn-admin/knip.config.ts b/shadcn-admin/knip.config.ts new file mode 100644 index 0000000..cd0e90e --- /dev/null +++ b/shadcn-admin/knip.config.ts @@ -0,0 +1,8 @@ +import type { KnipConfig } from 'knip'; + +const config: KnipConfig = { + ignore: ['src/components/ui/**', 'src/routeTree.gen.ts'], + ignoreDependencies: ["tailwindcss", "tw-animate-css"] +}; + +export default config; \ No newline at end of file diff --git a/shadcn-admin/netlify.toml b/shadcn-admin/netlify.toml new file mode 100644 index 0000000..ff1c050 --- /dev/null +++ b/shadcn-admin/netlify.toml @@ -0,0 +1,4 @@ +[[redirects]] + from = "/*" + to = "/index.html" + status = 200 \ No newline at end of file diff --git a/shadcn-admin/package.json b/shadcn-admin/package.json new file mode 100644 index 0000000..b19c643 --- /dev/null +++ b/shadcn-admin/package.json @@ -0,0 +1,84 @@ +{ + "name": "shadcn-admin", + "private": false, + "version": "2.2.1", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview", + "format:check": "prettier --check .", + "format": "prettier --write .", + "knip": "knip" + }, + "dependencies": { + "@clerk/clerk-react": "^5.58.1", + "@hookform/resolvers": "^5.2.2", + "@radix-ui/react-alert-dialog": "^1.1.15", + "@radix-ui/react-avatar": "^1.1.11", + "@radix-ui/react-checkbox": "^1.3.3", + "@radix-ui/react-collapsible": "^1.1.12", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-direction": "^1.1.1", + "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-icons": "^1.3.2", + "@radix-ui/react-label": "^2.1.8", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-radio-group": "^1.3.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-tabs": "^1.1.13", + "@radix-ui/react-tooltip": "^1.2.8", + "@supabase/supabase-js": "^2.93.3", + "@tailwindcss/vite": "^4.1.18", + "@tanstack/react-query": "^5.90.12", + "@tanstack/react-router": "^1.141.2", + "@tanstack/react-table": "^8.21.3", + "axios": "^1.13.2", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "1.1.1", + "date-fns": "^4.1.0", + "input-otp": "^1.4.2", + "lucide-react": "^0.561.0", + "react": "^19.2.3", + "react-day-picker": "9.12.0", + "react-dom": "^19.2.3", + "react-hook-form": "^7.68.0", + "react-top-loading-bar": "^3.0.2", + "recharts": "^3.6.0", + "sonner": "^2.0.7", + "tailwind-merge": "^3.4.0", + "tailwindcss": "^4.1.18", + "tw-animate-css": "^1.4.0", + "zod": "^4.2.0", + "zustand": "^5.0.9" + }, + "devDependencies": { + "@eslint/js": "^9.39.2", + "@faker-js/faker": "^10.1.0", + "@tanstack/eslint-plugin-query": "^5.91.2", + "@tanstack/react-query-devtools": "^5.91.1", + "@tanstack/react-router-devtools": "^1.141.2", + "@tanstack/router-plugin": "^1.141.2", + "@trivago/prettier-plugin-sort-imports": "^6.0.0", + "@types/node": "^25.0.2", + "@types/react": "^19.2.7", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react-swc": "^4.2.2", + "eslint": "^9.39.2", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.4.25", + "globals": "^16.5.0", + "knip": "^5.73.4", + "prettier": "^3.7.4", + "prettier-plugin-tailwindcss": "^0.7.2", + "typescript": "~5.9.3", + "typescript-eslint": "^8.49.0", + "vite": "^7.3.0" + } +} diff --git a/shadcn-admin/pnpm-lock.yaml b/shadcn-admin/pnpm-lock.yaml new file mode 100644 index 0000000..aac4a74 --- /dev/null +++ b/shadcn-admin/pnpm-lock.yaml @@ -0,0 +1,6151 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@clerk/clerk-react': + specifier: ^5.58.1 + version: 5.58.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@hookform/resolvers': + specifier: ^5.2.2 + version: 5.2.2(react-hook-form@7.68.0(react@19.2.3)) + '@radix-ui/react-alert-dialog': + specifier: ^1.1.15 + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-avatar': + specifier: ^1.1.11 + version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-checkbox': + specifier: ^1.3.3 + version: 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-collapsible': + specifier: ^1.1.12 + version: 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-dialog': + specifier: ^1.1.15 + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-direction': + specifier: ^1.1.1 + version: 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-dropdown-menu': + specifier: ^2.1.16 + version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-icons': + specifier: ^1.3.2 + version: 1.3.2(react@19.2.3) + '@radix-ui/react-label': + specifier: ^2.1.8 + version: 2.1.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-popover': + specifier: ^1.1.15 + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-radio-group': + specifier: ^1.3.8 + version: 1.3.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-scroll-area': + specifier: ^1.2.10 + version: 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-select': + specifier: ^2.2.6 + version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-separator': + specifier: ^1.1.8 + version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': + specifier: ^1.2.4 + version: 1.2.4(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-switch': + specifier: ^1.2.6 + version: 1.2.6(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-tabs': + specifier: ^1.1.13 + version: 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-tooltip': + specifier: ^1.2.8 + version: 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@supabase/supabase-js': + specifier: ^2.93.3 + version: 2.93.3 + '@tailwindcss/vite': + specifier: ^4.1.18 + version: 4.1.18(vite@7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.3)) + '@tanstack/react-query': + specifier: ^5.90.12 + version: 5.90.12(react@19.2.3) + '@tanstack/react-router': + specifier: ^1.141.2 + version: 1.141.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@tanstack/react-table': + specifier: ^8.21.3 + version: 8.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + axios: + specifier: ^1.13.2 + version: 1.13.2 + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + cmdk: + specifier: 1.1.1 + version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + date-fns: + specifier: ^4.1.0 + version: 4.1.0 + input-otp: + specifier: ^1.4.2 + version: 1.4.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + lucide-react: + specifier: ^0.561.0 + version: 0.561.0(react@19.2.3) + react: + specifier: ^19.2.3 + version: 19.2.3 + react-day-picker: + specifier: 9.12.0 + version: 9.12.0(react@19.2.3) + react-dom: + specifier: ^19.2.3 + version: 19.2.3(react@19.2.3) + react-hook-form: + specifier: ^7.68.0 + version: 7.68.0(react@19.2.3) + react-top-loading-bar: + specifier: ^3.0.2 + version: 3.0.2(react@19.2.3) + recharts: + specifier: ^3.6.0 + version: 3.6.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react-is@18.3.1)(react@19.2.3)(redux@5.0.1) + sonner: + specifier: ^2.0.7 + version: 2.0.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + tailwind-merge: + specifier: ^3.4.0 + version: 3.4.0 + tailwindcss: + specifier: ^4.1.18 + version: 4.1.18 + tw-animate-css: + specifier: ^1.4.0 + version: 1.4.0 + zod: + specifier: ^4.2.0 + version: 4.2.0 + zustand: + specifier: ^5.0.9 + version: 5.0.9(@types/react@19.2.7)(immer@10.1.1)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)) + devDependencies: + '@eslint/js': + specifier: ^9.39.2 + version: 9.39.2 + '@faker-js/faker': + specifier: ^10.1.0 + version: 10.1.0 + '@tanstack/eslint-plugin-query': + specifier: ^5.91.2 + version: 5.91.2(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@tanstack/react-query-devtools': + specifier: ^5.91.1 + version: 5.91.1(@tanstack/react-query@5.90.12(react@19.2.3))(react@19.2.3) + '@tanstack/react-router-devtools': + specifier: ^1.141.2 + version: 1.141.2(@tanstack/react-router@1.141.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@tanstack/router-core@1.141.2)(csstype@3.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(solid-js@1.9.7) + '@tanstack/router-plugin': + specifier: ^1.141.2 + version: 1.141.2(@tanstack/react-router@1.141.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.3)) + '@trivago/prettier-plugin-sort-imports': + specifier: ^6.0.0 + version: 6.0.0(prettier@3.7.4) + '@types/node': + specifier: ^25.0.2 + version: 25.0.2 + '@types/react': + specifier: ^19.2.7 + version: 19.2.7 + '@types/react-dom': + specifier: ^19.2.3 + version: 19.2.3(@types/react@19.2.7) + '@vitejs/plugin-react-swc': + specifier: ^4.2.2 + version: 4.2.2(@swc/helpers@0.5.17)(vite@7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.3)) + eslint: + specifier: ^9.39.2 + version: 9.39.2(jiti@2.6.1) + eslint-plugin-react-hooks: + specifier: ^7.0.1 + version: 7.0.1(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-react-refresh: + specifier: ^0.4.25 + version: 0.4.25(eslint@9.39.2(jiti@2.6.1)) + globals: + specifier: ^16.5.0 + version: 16.5.0 + knip: + specifier: ^5.73.4 + version: 5.73.4(@types/node@25.0.2)(typescript@5.9.3) + prettier: + specifier: ^3.7.4 + version: 3.7.4 + prettier-plugin-tailwindcss: + specifier: ^0.7.2 + version: 0.7.2(@trivago/prettier-plugin-sort-imports@6.0.0(prettier@3.7.4))(prettier@3.7.4) + typescript: + specifier: ~5.9.3 + version: 5.9.3 + typescript-eslint: + specifier: ^8.49.0 + version: 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + vite: + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.3) + +packages: + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.27.5': + resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.28.0': + resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.28.0': + resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.27.1': + resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.27.1': + resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.27.3': + resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.27.1': + resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.27.6': + resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.28.0': + resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.27.1': + resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.27.1': + resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-typescript@7.27.1': + resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.28.0': + resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.28.1': + resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==} + engines: {node: '>=6.9.0'} + + '@clerk/clerk-react@5.58.1': + resolution: {integrity: sha512-jN6mfuqwZakm99CKRQlTahMZEa8qLOpr3Z4lG6XtyJfIcyADleOdRxuOXYoN9sV8ZhNfDDAs+eKjUeusIzPpbg==} + engines: {node: '>=18.17.0'} + peerDependencies: + react: ^18.0.0 || ^19.0.0 || ^19.0.0-0 + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-0 + + '@clerk/shared@3.39.0': + resolution: {integrity: sha512-9kqqXGMPAdMQ7SXo5ZwUhbzbLLQeLp/1jdb8FQS5qlhmL0S0bAYKcyDjcmMB8xZPXNc7vZJRT72QHsGSlUAJxw==} + engines: {node: '>=18.17.0'} + peerDependencies: + react: ^18.0.0 || ^19.0.0 || ^19.0.0-0 + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + + '@date-fns/tz@1.4.1': + resolution: {integrity: sha512-P5LUNhtbj6YfI3iJjw5EL9eUAG6OitD0W3fWQcpQjDRc/QIsL0tRNuO1PcDvPccWL1fSTXXdE1ds+l95DV/OFA==} + + '@emnapi/core@1.7.1': + resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==} + + '@emnapi/runtime@1.7.1': + resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} + + '@emnapi/wasi-threads@1.1.0': + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + + '@esbuild/aix-ppc64@0.25.11': + resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.27.1': + resolution: {integrity: sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.25.11': + resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.27.1': + resolution: {integrity: sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.25.11': + resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.27.1': + resolution: {integrity: sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.25.11': + resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.27.1': + resolution: {integrity: sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.25.11': + resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.27.1': + resolution: {integrity: sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.11': + resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.1': + resolution: {integrity: sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.25.11': + resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.27.1': + resolution: {integrity: sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.11': + resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.1': + resolution: {integrity: sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.25.11': + resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.27.1': + resolution: {integrity: sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.25.11': + resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.27.1': + resolution: {integrity: sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.25.11': + resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.27.1': + resolution: {integrity: sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.25.11': + resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.27.1': + resolution: {integrity: sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.25.11': + resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.27.1': + resolution: {integrity: sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.25.11': + resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.27.1': + resolution: {integrity: sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.11': + resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.1': + resolution: {integrity: sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.25.11': + resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.27.1': + resolution: {integrity: sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.25.11': + resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.27.1': + resolution: {integrity: sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.11': + resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-arm64@0.27.1': + resolution: {integrity: sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.11': + resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.1': + resolution: {integrity: sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.11': + resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-arm64@0.27.1': + resolution: {integrity: sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.11': + resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.1': + resolution: {integrity: sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.11': + resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/openharmony-arm64@0.27.1': + resolution: {integrity: sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.11': + resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.27.1': + resolution: {integrity: sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.25.11': + resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.27.1': + resolution: {integrity: sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.25.11': + resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.27.1': + resolution: {integrity: sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.25.11': + resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.27.1': + resolution: {integrity: sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.39.2': + resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@faker-js/faker@10.1.0': + resolution: {integrity: sha512-C3mrr3b5dRVlKPJdfrAXS8+dq+rq8Qm5SNRazca0JKgw1HQERFmrVb0towvMmw5uu8hHKNiQasMaR/tydf3Zsg==} + engines: {node: ^20.19.0 || ^22.13.0 || ^23.5.0 || >=24.0.0, npm: '>=10'} + + '@floating-ui/core@1.7.1': + resolution: {integrity: sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==} + + '@floating-ui/dom@1.7.1': + resolution: {integrity: sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==} + + '@floating-ui/react-dom@2.1.3': + resolution: {integrity: sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + + '@hookform/resolvers@5.2.2': + resolution: {integrity: sha512-A/IxlMLShx3KjV/HeTcTfaMxdwy690+L/ZADoeaTltLx+CVuzkeVIPuybK3jrRfw7YZnmdKsVVHAlEPIAEUNlA==} + peerDependencies: + react-hook-form: ^7.55.0 + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@jridgewell/gen-mapping@0.3.12': + resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.29': + resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} + + '@napi-rs/wasm-runtime@1.1.0': + resolution: {integrity: sha512-Fq6DJW+Bb5jaWE69/qOE0D1TUN9+6uWhCeZpdnSBk14pjLcCWR7Q8n49PTSPHazM37JqrsdpEthXy2xn6jWWiA==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@oxc-resolver/binding-android-arm-eabi@11.15.0': + resolution: {integrity: sha512-Q+lWuFfq7whNelNJIP1dhXaVz4zO9Tu77GcQHyxDWh3MaCoO2Bisphgzmsh4ZoUe2zIchQh6OvQL99GlWHg9Tw==} + cpu: [arm] + os: [android] + + '@oxc-resolver/binding-android-arm64@11.15.0': + resolution: {integrity: sha512-vbdBttesHR0W1oJaxgWVTboyMUuu+VnPsHXJ6jrXf4czELzB6GIg5DrmlyhAmFBhjwov+yJH/DfTnHS+2sDgOw==} + cpu: [arm64] + os: [android] + + '@oxc-resolver/binding-darwin-arm64@11.15.0': + resolution: {integrity: sha512-R67lsOe1UzNjqVBCwCZX1rlItTsj/cVtBw4Uy19CvTicqEWvwaTn8t34zLD75LQwDDPCY3C8n7NbD+LIdw+ZoA==} + cpu: [arm64] + os: [darwin] + + '@oxc-resolver/binding-darwin-x64@11.15.0': + resolution: {integrity: sha512-77mya5F8WV0EtCxI0MlVZcqkYlaQpfNwl/tZlfg4jRsoLpFbaTeWv75hFm6TE84WULVlJtSgvf7DhoWBxp9+ZQ==} + cpu: [x64] + os: [darwin] + + '@oxc-resolver/binding-freebsd-x64@11.15.0': + resolution: {integrity: sha512-X1Sz7m5PC+6D3KWIDXMUtux+0Imj6HfHGdBStSvgdI60OravzI1t83eyn6eN0LPTrynuPrUgjk7tOnOsBzSWHw==} + cpu: [x64] + os: [freebsd] + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.15.0': + resolution: {integrity: sha512-L1x/wCaIRre+18I4cH/lTqSAymlV0k4HqfSYNNuI9oeL28Ks86lI6O5VfYL6sxxWYgjuWB98gNGo7tq7d4GarQ==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm-musleabihf@11.15.0': + resolution: {integrity: sha512-abGXd/zMGa0tH8nKlAXdOnRy4G7jZmkU0J85kMKWns161bxIgGn/j7zxqh3DKEW98wAzzU9GofZMJ0P5YCVPVw==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm64-gnu@11.15.0': + resolution: {integrity: sha512-SVjjjtMW66Mza76PBGJLqB0KKyFTBnxmtDXLJPbL6ZPGSctcXVmujz7/WAc0rb9m2oV0cHQTtVjnq6orQnI/jg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxc-resolver/binding-linux-arm64-musl@11.15.0': + resolution: {integrity: sha512-JDv2/AycPF2qgzEiDeMJCcSzKNDm3KxNg0KKWipoKEMDFqfM7LxNwwSVyAOGmrYlE4l3dg290hOMsr9xG7jv9g==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxc-resolver/binding-linux-ppc64-gnu@11.15.0': + resolution: {integrity: sha512-zbu9FhvBLW4KJxo7ElFvZWbSt4vP685Qc/Gyk/Ns3g2gR9qh2qWXouH8PWySy+Ko/qJ42+HJCLg+ZNcxikERfg==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxc-resolver/binding-linux-riscv64-gnu@11.15.0': + resolution: {integrity: sha512-Kfleehe6B09C2qCnyIU01xLFqFXCHI4ylzkicfX/89j+gNHh9xyNdpEvit88Kq6i5tTGdavVnM6DQfOE2qNtlg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxc-resolver/binding-linux-riscv64-musl@11.15.0': + resolution: {integrity: sha512-J7LPiEt27Tpm8P+qURDwNc8q45+n+mWgyys4/V6r5A8v5gDentHRGUx3iVk5NxdKhgoGulrzQocPTZVosq25Eg==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxc-resolver/binding-linux-s390x-gnu@11.15.0': + resolution: {integrity: sha512-+8/d2tAScPjVJNyqa7GPGnqleTB/XW9dZJQ2D/oIM3wpH3TG+DaFEXBbk4QFJ9K9AUGBhvQvWU2mQyhK/yYn3Q==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxc-resolver/binding-linux-x64-gnu@11.15.0': + resolution: {integrity: sha512-xtvSzH7Nr5MCZI2FKImmOdTl9kzuQ51RPyLh451tvD2qnkg3BaqI9Ox78bTk57YJhlXPuxWSOL5aZhKAc9J6qg==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxc-resolver/binding-linux-x64-musl@11.15.0': + resolution: {integrity: sha512-14YL1zuXj06+/tqsuUZuzL0T425WA/I4nSVN1kBXeC5WHxem6lQ+2HGvG+crjeJEqHgZUT62YIgj88W+8E7eyg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxc-resolver/binding-openharmony-arm64@11.15.0': + resolution: {integrity: sha512-/7Qli+1Wk93coxnrQaU8ySlICYN8HsgyIrzqjgIkQEpI//9eUeaeIHZptNl2fMvBGeXa7k2QgLbRNaBRgpnvMw==} + cpu: [arm64] + os: [openharmony] + + '@oxc-resolver/binding-wasm32-wasi@11.15.0': + resolution: {integrity: sha512-q5rn2eIMQLuc/AVGR2rQKb2EVlgreATGG8xXg8f4XbbYCVgpxaq+dgMbiPStyNywW1MH8VU2T09UEm30UtOQvg==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-resolver/binding-win32-arm64-msvc@11.15.0': + resolution: {integrity: sha512-yCAh2RWjU/8wWTxQDgGPgzV9QBv0/Ojb5ej1c/58iOjyTuy/J1ZQtYi2SpULjKmwIxLJdTiCHpMilauWimE31w==} + cpu: [arm64] + os: [win32] + + '@oxc-resolver/binding-win32-ia32-msvc@11.15.0': + resolution: {integrity: sha512-lmXKb6lvA6M6QIbtYfgjd+AryJqExZVSY2bfECC18OPu7Lv1mHFF171Mai5l9hG3r4IhHPPIwT10EHoilSCYeA==} + cpu: [ia32] + os: [win32] + + '@oxc-resolver/binding-win32-x64-msvc@11.15.0': + resolution: {integrity: sha512-HZsfne0s/tGOcJK9ZdTGxsNU2P/dH0Shf0jqrPvsC6wX0Wk+6AyhSpHFLQCnLOuFQiHHU0ePfM8iYsoJb5hHpQ==} + cpu: [x64] + os: [win32] + + '@radix-ui/number@1.1.1': + resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} + + '@radix-ui/primitive@1.1.3': + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + + '@radix-ui/react-alert-dialog@1.1.15': + resolution: {integrity: sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-arrow@1.1.7': + resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-avatar@1.1.11': + resolution: {integrity: sha512-0Qk603AHGV28BOBO34p7IgD5m+V5Sg/YovfayABkoDDBM5d3NCx0Mp4gGrjzLGes1jV5eNOE1r3itqOR33VC6Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-checkbox@1.3.3': + resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collapsible@1.1.12': + resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.1.3': + resolution: {integrity: sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dialog@1.1.15': + resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dismissable-layer@1.1.11': + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-dropdown-menu@2.1.16': + resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-focus-guards@1.1.3': + resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.1.7': + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-icons@1.3.2': + resolution: {integrity: sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==} + peerDependencies: + react: ^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc + + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-label@2.1.8': + resolution: {integrity: sha512-FmXs37I6hSBVDlO4y764TNz1rLgKwjJMQ0EGte6F3Cb3f4bIuHB/iLa/8I9VKkmOy+gNHq8rql3j686ACVV21A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-menu@2.1.16': + resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popover@1.1.15': + resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.2.8': + resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.5': + resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.4': + resolution: {integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-radio-group@1.3.8': + resolution: {integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.11': + resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-scroll-area@1.2.10': + resolution: {integrity: sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-select@2.2.6': + resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-separator@1.1.8': + resolution: {integrity: sha512-sDvqVY4itsKwwSMEe0jtKgfTh+72Sy3gPmQpjqcQneqQ4PFmr/1I0YA+2/puilhggCe2gJcx5EBAYFkWkdpa5g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-slot@1.2.4': + resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-switch@1.2.6': + resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tabs@1.1.13': + resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tooltip@1.2.8': + resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-is-hydrated@0.1.0': + resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.1.1': + resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.1': + resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.2.3': + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + + '@reduxjs/toolkit@2.8.2': + resolution: {integrity: sha512-MYlOhQ0sLdw4ud48FoC5w0dH9VfWQjtCjreKwYTT3l+r427qYC5Y8PihNutepr8XrNaBUDQo9khWUwQxZaqt5A==} + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18 || ^19 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 + peerDependenciesMeta: + react: + optional: true + react-redux: + optional: true + + '@rolldown/pluginutils@1.0.0-beta.47': + resolution: {integrity: sha512-8QagwMH3kNCuzD8EWL8R2YPW5e4OrHNSAHRFDdmFqEwEaD/KcNKjVoumo+gP2vW5eKB2UPbM6vTYiGZX0ixLnw==} + + '@rollup/rollup-android-arm-eabi@4.52.5': + resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.52.5': + resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.52.5': + resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.52.5': + resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.52.5': + resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.52.5': + resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.52.5': + resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.52.5': + resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.52.5': + resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.52.5': + resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.52.5': + resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-gnu@4.52.5': + resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-gnu@4.52.5': + resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.52.5': + resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.52.5': + resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.52.5': + resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.52.5': + resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openharmony-arm64@4.52.5': + resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.52.5': + resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.52.5': + resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.52.5': + resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.52.5': + resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==} + cpu: [x64] + os: [win32] + + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + + '@standard-schema/utils@0.3.0': + resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} + + '@supabase/auth-js@2.93.3': + resolution: {integrity: sha512-JdnkHZPKexVGSNONtu89RHU4bxz3X9kxx+f5ZnR5osoCIX+vs/MckwWRPZEybAEvlJXt5xjomDb3IB876QCxWQ==} + engines: {node: '>=20.0.0'} + + '@supabase/functions-js@2.93.3': + resolution: {integrity: sha512-qWO0gHNDm/5jRjROv/nv9L6sYabCWS1kzorOLUv3kqCwRvEJLYZga93ppJPrZwOgoZfXmJzvpjY8fODA4HQfBw==} + engines: {node: '>=20.0.0'} + + '@supabase/postgrest-js@2.93.3': + resolution: {integrity: sha512-+iJ96g94skO2e4clsRSmEXg22NUOjh9BziapsJSAvnB1grOBf/BA8vGtCHjNOA+Z6lvKXL1jwBqcL9+fS1W/Lg==} + engines: {node: '>=20.0.0'} + + '@supabase/realtime-js@2.93.3': + resolution: {integrity: sha512-gnYpcFzwy8IkezRP4CDbT5I8jOsiOjrWrqTY1B+7jIriXsnpifmlM6RRjLBm9oD7OwPG0/WksniGPdKW67sXOA==} + engines: {node: '>=20.0.0'} + + '@supabase/storage-js@2.93.3': + resolution: {integrity: sha512-cw4qXiLrx3apglDM02Tx/w/stvFlrkKocC6vCvuFAz3JtVEl1zH8MUfDQDTH59kJAQVaVdbewrMWSoBob7REnA==} + engines: {node: '>=20.0.0'} + + '@supabase/supabase-js@2.93.3': + resolution: {integrity: sha512-paUqEqdBI9ztr/4bbMoCgeJ6M8ZTm2fpfjSOlzarPuzYveKFM20ZfDZqUpi9CFfYagYj5Iv3m3ztUjaI9/tM1w==} + engines: {node: '>=20.0.0'} + + '@swc/core-darwin-arm64@1.13.5': + resolution: {integrity: sha512-lKNv7SujeXvKn16gvQqUQI5DdyY8v7xcoO3k06/FJbHJS90zEwZdQiMNRiqpYw/orU543tPaWgz7cIYWhbopiQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.13.5': + resolution: {integrity: sha512-ILd38Fg/w23vHb0yVjlWvQBoE37ZJTdlLHa8LRCFDdX4WKfnVBiblsCU9ar4QTMNdeTBEX9iUF4IrbNWhaF1Ng==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.13.5': + resolution: {integrity: sha512-Q6eS3Pt8GLkXxqz9TAw+AUk9HpVJt8Uzm54MvPsqp2yuGmY0/sNaPPNVqctCX9fu/Nu8eaWUen0si6iEiCsazQ==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.13.5': + resolution: {integrity: sha512-aNDfeN+9af+y+M2MYfxCzCy/VDq7Z5YIbMqRI739o8Ganz6ST+27kjQFd8Y/57JN/hcnUEa9xqdS3XY7WaVtSw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@swc/core-linux-arm64-musl@1.13.5': + resolution: {integrity: sha512-9+ZxFN5GJag4CnYnq6apKTnnezpfJhCumyz0504/JbHLo+Ue+ZtJnf3RhyA9W9TINtLE0bC4hKpWi8ZKoETyOQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@swc/core-linux-x64-gnu@1.13.5': + resolution: {integrity: sha512-WD530qvHrki8Ywt/PloKUjaRKgstQqNGvmZl54g06kA+hqtSE2FTG9gngXr3UJxYu/cNAjJYiBifm7+w4nbHbA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@swc/core-linux-x64-musl@1.13.5': + resolution: {integrity: sha512-Luj8y4OFYx4DHNQTWjdIuKTq2f5k6uSXICqx+FSabnXptaOBAbJHNbHT/06JZh6NRUouaf0mYXN0mcsqvkhd7Q==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@swc/core-win32-arm64-msvc@1.13.5': + resolution: {integrity: sha512-cZ6UpumhF9SDJvv4DA2fo9WIzlNFuKSkZpZmPG1c+4PFSEMy5DFOjBSllCvnqihCabzXzpn6ykCwBmHpy31vQw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.13.5': + resolution: {integrity: sha512-C5Yi/xIikrFUzZcyGj9L3RpKljFvKiDMtyDzPKzlsDrKIw2EYY+bF88gB6oGY5RGmv4DAX8dbnpRAqgFD0FMEw==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.13.5': + resolution: {integrity: sha512-YrKdMVxbYmlfybCSbRtrilc6UA8GF5aPmGKBdPvjrarvsmf4i7ZHGCEnLtfOMd3Lwbs2WUZq3WdMbozYeLU93Q==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.13.5': + resolution: {integrity: sha512-WezcBo8a0Dg2rnR82zhwoR6aRNxeTGfK5QCD6TQ+kg3xx/zNT02s/0o+81h/3zhvFSB24NtqEr8FTw88O5W/JQ==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '>=0.5.17' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/helpers@0.5.17': + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + + '@swc/types@0.1.25': + resolution: {integrity: sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==} + + '@tailwindcss/node@4.1.18': + resolution: {integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==} + + '@tailwindcss/oxide-android-arm64@4.1.18': + resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.1.18': + resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.1.18': + resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.1.18': + resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': + resolution: {integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': + resolution: {integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-arm64-musl@4.1.18': + resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-linux-x64-gnu@4.1.18': + resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-x64-musl@4.1.18': + resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-wasm32-wasi@4.1.18': + resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': + resolution: {integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.1.18': + resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.1.18': + resolution: {integrity: sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==} + engines: {node: '>= 10'} + + '@tailwindcss/vite@4.1.18': + resolution: {integrity: sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==} + peerDependencies: + vite: ^5.2.0 || ^6 || ^7 + + '@tanstack/eslint-plugin-query@5.91.2': + resolution: {integrity: sha512-UPeWKl/Acu1IuuHJlsN+eITUHqAaa9/04geHHPedY8siVarSaWprY0SVMKrkpKfk5ehRT7+/MZ5QwWuEtkWrFw==} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@tanstack/history@1.141.0': + resolution: {integrity: sha512-LS54XNyxyTs5m/pl1lkwlg7uZM3lvsv2FIIV1rsJgnfwVCnI+n4ZGZ2CcjNT13BPu/3hPP+iHmliBSscJxW5FQ==} + engines: {node: '>=12'} + + '@tanstack/query-core@5.90.12': + resolution: {integrity: sha512-T1/8t5DhV/SisWjDnaiU2drl6ySvsHj1bHBCWNXd+/T+Hh1cf6JodyEYMd5sgwm+b/mETT4EV3H+zCVczCU5hg==} + + '@tanstack/query-devtools@5.91.1': + resolution: {integrity: sha512-l8bxjk6BMsCaVQH6NzQEE/bEgFy1hAs5qbgXl0xhzezlaQbPk6Mgz9BqEg2vTLPOHD8N4k+w/gdgCbEzecGyNg==} + + '@tanstack/react-query-devtools@5.91.1': + resolution: {integrity: sha512-tRnJYwEbH0kAOuToy8Ew7bJw1lX3AjkkgSlf/vzb+NpnqmHPdWM+lA2DSdGQSLi1SU0PDRrrCI1vnZnci96CsQ==} + peerDependencies: + '@tanstack/react-query': ^5.90.10 + react: ^18 || ^19 + + '@tanstack/react-query@5.90.12': + resolution: {integrity: sha512-graRZspg7EoEaw0a8faiUASCyJrqjKPdqJ9EwuDRUF9mEYJ1YPczI9H+/agJ0mOJkPCJDk0lsz5QTrLZ/jQ2rg==} + peerDependencies: + react: ^18 || ^19 + + '@tanstack/react-router-devtools@1.141.2': + resolution: {integrity: sha512-E55O6sYRCHpTMDB+jDaZ8so4G+/Sg5D/bPvomx35hsHrXEc6RaiGHzzWy0bfrc+PVcmhP2sTTBfVakjJfQolAQ==} + engines: {node: '>=12'} + peerDependencies: + '@tanstack/react-router': ^1.141.2 + '@tanstack/router-core': ^1.141.2 + react: '>=18.0.0 || >=19.0.0' + react-dom: '>=18.0.0 || >=19.0.0' + peerDependenciesMeta: + '@tanstack/router-core': + optional: true + + '@tanstack/react-router@1.141.2': + resolution: {integrity: sha512-inPEgxYuGPNJvd7wo9BYVKW/BP9GwZO0EaZLBE7+l0RtPcIqAQQLqYhYwb2xikuQg6ueZectj7LObAGivkBpSw==} + engines: {node: '>=12'} + peerDependencies: + react: '>=18.0.0 || >=19.0.0' + react-dom: '>=18.0.0 || >=19.0.0' + + '@tanstack/react-store@0.8.0': + resolution: {integrity: sha512-1vG9beLIuB7q69skxK9r5xiLN3ztzIPfSQSs0GfeqWGO2tGIyInZx0x1COhpx97RKaONSoAb8C3dxacWksm1ow==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@tanstack/react-table@8.21.3': + resolution: {integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==} + engines: {node: '>=12'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@tanstack/router-core@1.141.2': + resolution: {integrity: sha512-6fJSQ+Xcqy6xvB+CTEJljynf5wxQXC/YbtvxAc7wkzBLQwXvwoYrkmUTzqWHFtDZVGKr0cxA+Tg1FikSAZOiQQ==} + engines: {node: '>=12'} + + '@tanstack/router-devtools-core@1.141.2': + resolution: {integrity: sha512-ZvXuq8ASvIzffyl61BwSdAWh//Tp+wBn0GcSIP/LOrp0f/bW8aODPXm1RSGY2/tXrSjntdP7XPID50YXZdyKfg==} + engines: {node: '>=12'} + peerDependencies: + '@tanstack/router-core': ^1.141.2 + csstype: ^3.0.10 + solid-js: '>=1.9.5' + peerDependenciesMeta: + csstype: + optional: true + + '@tanstack/router-generator@1.141.2': + resolution: {integrity: sha512-90xDdtHE1zHfL5J0sBV06h3H9Rv1qO+gQuGYUEEmRPGxluifx+ivIk/rD/8dpuqcjErofKi8io/DuKxxJ5kOmA==} + engines: {node: '>=12'} + + '@tanstack/router-plugin@1.141.2': + resolution: {integrity: sha512-9dordZdt1C8D6O5kp5iASa3DDCLGV/7v4MDB9nx0WXKnBRLv9ZpLt58jevIQ6Wov8V9zH5gLWKaRVfiWMAE4Gg==} + engines: {node: '>=12'} + peerDependencies: + '@rsbuild/core': '>=1.0.2' + '@tanstack/react-router': ^1.141.2 + vite: '>=5.0.0 || >=6.0.0 || >=7.0.0' + vite-plugin-solid: ^2.11.10 + webpack: '>=5.92.0' + peerDependenciesMeta: + '@rsbuild/core': + optional: true + '@tanstack/react-router': + optional: true + vite: + optional: true + vite-plugin-solid: + optional: true + webpack: + optional: true + + '@tanstack/router-utils@1.141.0': + resolution: {integrity: sha512-/eFGKCiix1SvjxwgzrmH4pHjMiMxc+GA4nIbgEkG2RdAJqyxLcRhd7RPLG0/LZaJ7d0ad3jrtRqsHLv2152Vbw==} + engines: {node: '>=12'} + + '@tanstack/store@0.8.0': + resolution: {integrity: sha512-Om+BO0YfMZe//X2z0uLF2j+75nQga6TpTJgLJQBiq85aOyZNIhkCgleNcud2KQg4k4v9Y9l+Uhru3qWMPGTOzQ==} + + '@tanstack/table-core@8.21.3': + resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==} + engines: {node: '>=12'} + + '@tanstack/virtual-file-routes@1.141.0': + resolution: {integrity: sha512-CJrWtr6L9TVzEImm9S7dQINx+xJcYP/aDkIi6gnaWtIgbZs1pnzsE0yJc2noqXZ+yAOqLx3TBGpBEs9tS0P9/A==} + engines: {node: '>=12'} + + '@trivago/prettier-plugin-sort-imports@6.0.0': + resolution: {integrity: sha512-Xarx55ow0R8oC7ViL5fPmDsg1EBa1dVhyZFVbFXNtPPJyW2w9bJADIla8YFSaNG9N06XfcklA9O9vmw4noNxkQ==} + engines: {node: '>= 20'} + peerDependencies: + '@vue/compiler-sfc': 3.x + prettier: 2.x - 3.x + prettier-plugin-ember-template-tag: '>= 2.0.0' + prettier-plugin-svelte: 3.x + svelte: 4.x || 5.x + peerDependenciesMeta: + '@vue/compiler-sfc': + optional: true + prettier-plugin-ember-template-tag: + optional: true + prettier-plugin-svelte: + optional: true + svelte: + optional: true + + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + + '@types/d3-array@3.2.1': + resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} + + '@types/d3-color@3.1.3': + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + + '@types/d3-ease@3.0.2': + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + + '@types/d3-interpolate@3.0.4': + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + + '@types/d3-path@3.1.1': + resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} + + '@types/d3-scale@4.0.9': + resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} + + '@types/d3-shape@3.1.7': + resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==} + + '@types/d3-time@3.0.4': + resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} + + '@types/d3-timer@3.0.2': + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/node@25.0.2': + resolution: {integrity: sha512-gWEkeiyYE4vqjON/+Obqcoeffmk0NF15WSBwSs7zwVA2bAbTaE0SJ7P0WNGoJn8uE7fiaV5a7dKYIJriEqOrmA==} + + '@types/phoenix@1.6.7': + resolution: {integrity: sha512-oN9ive//QSBkf19rfDv45M7eZPi0eEXylht2OLEXicu5b4KoQ1OzXIw+xDSGWxSxe1JmepRR/ZH283vsu518/Q==} + + '@types/react-dom@19.2.3': + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} + peerDependencies: + '@types/react': ^19.2.0 + + '@types/react@19.2.7': + resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==} + + '@types/use-sync-external-store@0.0.6': + resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} + + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + + '@typescript-eslint/eslint-plugin@8.49.0': + resolution: {integrity: sha512-JXij0vzIaTtCwu6SxTh8qBc66kmf1xs7pI4UOiMDFVct6q86G0Zs7KRcEoJgY3Cav3x5Tq0MF5jwgpgLqgKG3A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.49.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/parser@8.49.0': + resolution: {integrity: sha512-N9lBGA9o9aqb1hVMc9hzySbhKibHmB+N3IpoShyV6HyQYRGIhlrO5rQgttypi+yEeKsKI4idxC8Jw6gXKD4THA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/project-service@8.46.0': + resolution: {integrity: sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/project-service@8.49.0': + resolution: {integrity: sha512-/wJN0/DKkmRUMXjZUXYZpD1NEQzQAAn9QWfGwo+Ai8gnzqH7tvqS7oNVdTjKqOcPyVIdZdyCMoqN66Ia789e7g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/scope-manager@8.46.0': + resolution: {integrity: sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/scope-manager@8.49.0': + resolution: {integrity: sha512-npgS3zi+/30KSOkXNs0LQXtsg9ekZ8OISAOLGWA/ZOEn0ZH74Ginfl7foziV8DT+D98WfQ5Kopwqb/PZOaIJGg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.46.0': + resolution: {integrity: sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/tsconfig-utils@8.49.0': + resolution: {integrity: sha512-8prixNi1/6nawsRYxet4YOhnbW+W9FK/bQPxsGB1D3ZrDzbJ5FXw5XmzxZv82X3B+ZccuSxo/X8q9nQ+mFecWA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/type-utils@8.49.0': + resolution: {integrity: sha512-KTExJfQ+svY8I10P4HdxKzWsvtVnsuCifU5MvXrRwoP2KOlNZ9ADNEWWsQTJgMxLzS5VLQKDjkCT/YzgsnqmZg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/types@8.46.0': + resolution: {integrity: sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/types@8.49.0': + resolution: {integrity: sha512-e9k/fneezorUo6WShlQpMxXh8/8wfyc+biu6tnAqA81oWrEic0k21RHzP9uqqpyBBeBKu4T+Bsjy9/b8u7obXQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.46.0': + resolution: {integrity: sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/typescript-estree@8.49.0': + resolution: {integrity: sha512-jrLdRuAbPfPIdYNppHJ/D0wN+wwNfJ32YTAm10eJVsFmrVpXQnDWBn8niCSMlWjvml8jsce5E/O+86IQtTbJWA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/utils@8.46.0': + resolution: {integrity: sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/utils@8.49.0': + resolution: {integrity: sha512-N3W7rJw7Rw+z1tRsHZbK395TWSYvufBXumYtEGzypgMUthlg0/hmCImeA8hgO2d2G4pd7ftpxxul2J8OdtdaFA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/visitor-keys@8.46.0': + resolution: {integrity: sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/visitor-keys@8.49.0': + resolution: {integrity: sha512-LlKaciDe3GmZFphXIc79THF/YYBugZ7FS1pO581E/edlVVNbZKDy93evqmrfQ9/Y4uN0vVhX4iuchq26mK/iiA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@vitejs/plugin-react-swc@4.2.2': + resolution: {integrity: sha512-x+rE6tsxq/gxrEJN3Nv3dIV60lFflPj94c90b+NNo6n1QV1QQUTLoL0MpaOVasUZ0zqVBn7ead1B5ecx1JAGfA==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vite: ^4 || ^5 || ^6 || ^7 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansis@4.1.0: + resolution: {integrity: sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==} + engines: {node: '>=14'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} + + ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + axios@1.13.2: + resolution: {integrity: sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==} + + babel-dead-code-elimination@1.0.10: + resolution: {integrity: sha512-DV5bdJZTzZ0zn0DC24v3jD7Mnidh6xhKa4GfKCbq3sfW8kaWhDdZjP3i81geA8T33tdYqWKw4D3fVv0CwEgKVA==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.25.0: + resolution: {integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + caniuse-lite@1.0.30001724: + resolution: {integrity: sha512-WqJo7p0TbHDOythNTqYujmaJTvtYRZrjpP8TCvH6Vb9CYJerJNKamKzIWOM4BkQatWj9H2lYulpdAQNBe7QhNA==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + cmdk@1.1.1: + resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + react-dom: ^18 || ^19 || ^19.0.0-rc + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-es@2.0.0: + resolution: {integrity: sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + + d3-format@3.1.0: + resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} + + d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + + d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} + + d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + + d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + + date-fns-jalali@4.1.0-0: + resolution: {integrity: sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==} + + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decimal.js-light@2.5.1: + resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} + engines: {node: '>=8'} + + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + + diff@8.0.2: + resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==} + engines: {node: '>=0.3.1'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + electron-to-chromium@1.5.173: + resolution: {integrity: sha512-2bFhXP2zqSfQHugjqJIDFVwa+qIxyNApenmXTp9EjaKtdPrES5Qcn9/aSFy/NaP2E+fWG/zxKu/LBvY36p5VNQ==} + + enhanced-resolve@5.18.3: + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + engines: {node: '>=10.13.0'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-toolkit@1.39.5: + resolution: {integrity: sha512-z9V0qU4lx1TBXDNFWfAASWk6RNU6c6+TJBKE+FLIg8u0XJ6Yw58Hi0yX8ftEouj6p1QARRlXLFfHbIli93BdQQ==} + + esbuild@0.25.11: + resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==} + engines: {node: '>=18'} + hasBin: true + + esbuild@0.27.1: + resolution: {integrity: sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-plugin-react-hooks@7.0.1: + resolution: {integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + + eslint-plugin-react-refresh@0.4.25: + resolution: {integrity: sha512-dRUD2LOdEqI4zXHqbQ442blQAzdSuShAaiSq5Vtyy6LT08YUf0oOjBDo4VPx0dCPgiPWh1WB4dtbLOd0kOlDPQ==} + peerDependencies: + eslint: '>=8.40' + + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.39.2: + resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + fd-package-json@2.0.0: + resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + form-data@4.0.4: + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} + engines: {node: '>= 6'} + + formatly@0.3.0: + resolution: {integrity: sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==} + engines: {node: '>=18.3.0'} + hasBin: true + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@16.5.0: + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} + engines: {node: '>=18'} + + goober@2.1.16: + resolution: {integrity: sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==} + peerDependencies: + csstype: ^3.0.10 + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hermes-estree@0.25.1: + resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} + + hermes-parser@0.25.1: + resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + + iceberg-js@0.8.1: + resolution: {integrity: sha512-1dhVQZXhcHje7798IVM+xoo/1ZdVfzOMIc8/rgVSijRK38EDqOJoGula9N/8ZI5RD8QTxNQtK/Gozpr+qUqRRA==} + engines: {node: '>=20.0.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + immer@10.1.1: + resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + input-otp@1.4.2: + resolution: {integrity: sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + + internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + isbot@5.1.28: + resolution: {integrity: sha512-qrOp4g3xj8YNse4biorv6O5ZShwsJM0trsoda4y7j/Su7ZtTTfVXFzbKkpgcSoDrHS8FcTuUwcU04YimZlZOxw==} + engines: {node: '>=18'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + javascript-natural-sort@0.7.1: + resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} + + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + + js-cookie@3.0.5: + resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} + engines: {node: '>=14'} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + knip@5.73.4: + resolution: {integrity: sha512-q0DDgqsRMa4z2IMEPEblns0igitG8Fu7exkvEgQx1QMLKEqSvcvKP9fMk+C1Ehy+Ux6oayl6zfAEGt6DvFtidw==} + engines: {node: '>=18.18.0'} + hasBin: true + peerDependencies: + '@types/node': '>=18' + typescript: '>=5.0.4 <7' + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lightningcss-android-arm64@1.30.2: + resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.30.2: + resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.30.2: + resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.30.2: + resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.30.2: + resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.30.2: + resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + lightningcss-linux-arm64-musl@1.30.2: + resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + lightningcss-linux-x64-gnu@1.30.2: + resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + lightningcss-linux-x64-musl@1.30.2: + resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + lightningcss-win32-arm64-msvc@1.30.2: + resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.30.2: + resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.30.2: + resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} + engines: {node: '>= 12.0.0'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lucide-react@0.561.0: + resolution: {integrity: sha512-Y59gMY38tl4/i0qewcqohPdEbieBy7SovpBL9IFebhc2mDd8x4PZSOsiFRkpPcOq6bj1r/mjH/Rk73gSlIJP2A==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + oxc-resolver@11.15.0: + resolution: {integrity: sha512-Hk2J8QMYwmIO9XTCUiOH00+Xk2/+aBxRUnhrSlANDyCnLYc32R1WSIq1sU2yEdlqd53FfMpPEpnBYIKQMzliJw==} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-imports-exports@0.2.4: + resolution: {integrity: sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==} + + parse-statements@1.0.11: + resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-plugin-tailwindcss@0.7.2: + resolution: {integrity: sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA==} + engines: {node: '>=20.19'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-hermes': '*' + '@prettier/plugin-oxc': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + '@zackad/prettier-plugin-twig': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-multiline-arrays: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-svelte: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-hermes': + optional: true + '@prettier/plugin-oxc': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + '@zackad/prettier-plugin-twig': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-multiline-arrays: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-svelte: + optional: true + + prettier@3.7.4: + resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} + engines: {node: '>=14'} + hasBin: true + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + react-day-picker@9.12.0: + resolution: {integrity: sha512-t8OvG/Zrciso5CQJu5b1A7yzEmebvST+S3pOVQJWxwjjVngyG/CA2htN/D15dLI4uTEuLLkbZyS4YYt480FAtA==} + engines: {node: '>=18'} + peerDependencies: + react: '>=16.8.0' + + react-dom@19.2.3: + resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} + peerDependencies: + react: ^19.2.3 + + react-hook-form@7.68.0: + resolution: {integrity: sha512-oNN3fjrZ/Xo40SWlHf1yCjlMK417JxoSJVUXQjGdvdRCU07NTFei1i1f8ApUAts+IVh14e4EdakeLEA+BEAs/Q==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-redux@9.2.0: + resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==} + peerDependencies: + '@types/react': ^18.2.25 || ^19 + react: ^18.0 || ^19 + redux: ^5.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + redux: + optional: true + + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.7.1: + resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-top-loading-bar@3.0.2: + resolution: {integrity: sha512-hW0CHrHqKdBOBsVhms73ka0rgb9/aoiRfqo7jiS1vwIYDK7VkyMj52ypo5ewhshTQGHKE6mRvR99GZBZ+FuM/Q==} + engines: {node: '>=14'} + peerDependencies: + react: ^16 || ^17 || ^18 || ^19 + + react@19.2.3: + resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} + engines: {node: '>=0.10.0'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + recast@0.23.11: + resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} + engines: {node: '>= 4'} + + recharts@3.6.0: + resolution: {integrity: sha512-L5bjxvQRAe26RlToBAziKUB7whaGKEwD3znoM6fz3DrTowCIC/FnJYnuq1GEzB8Zv2kdTfaxQfi5GoH0tBinyg==} + engines: {node: '>=18'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-is: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + redux-thunk@3.1.0: + resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} + peerDependencies: + redux: ^5.0.0 + + redux@5.0.1: + resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} + + reselect@5.1.1: + resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rollup@4.52.5: + resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true + + seroval-plugins@1.3.3: + resolution: {integrity: sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w==} + engines: {node: '>=10'} + peerDependencies: + seroval: ^1.0 + + seroval-plugins@1.4.0: + resolution: {integrity: sha512-zir1aWzoiax6pbBVjoYVd0O1QQXgIL3eVGBMsBsNmM8Ukq90yGaWlfx0AB9dTS8GPqrOrbXn79vmItCUP9U3BQ==} + engines: {node: '>=10'} + peerDependencies: + seroval: ^1.0 + + seroval@1.3.2: + resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} + engines: {node: '>=10'} + + seroval@1.4.0: + resolution: {integrity: sha512-BdrNXdzlofomLTiRnwJTSEAaGKyHHZkbMXIywOh7zlzp4uZnXErEwl9XZ+N1hJSNpeTtNxWvVwN0wUzAIQ4Hpg==} + engines: {node: '>=10'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + smol-toml@1.5.2: + resolution: {integrity: sha512-QlaZEqcAH3/RtNyet1IPIYPsEWAaYyXXv1Krsi+1L/QHppjX4Ifm8MQsBISz9vE8cHicIq3clogsheili5vhaQ==} + engines: {node: '>= 18'} + + solid-js@1.9.7: + resolution: {integrity: sha512-/saTKi8iWEM233n5OSi1YHCCuh66ZIQ7aK2hsToPe4tqGm7qAejU1SwNuTPivbWAYq7SjuHVVYxxuZQNRbICiw==} + + sonner@2.0.7: + resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + std-env@3.9.0: + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-json-comments@5.0.3: + resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} + engines: {node: '>=14.16'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + swr@2.3.4: + resolution: {integrity: sha512-bYd2lrhc+VarcpkgWclcUi92wYCpOgMws9Sd1hG1ntAu0NEy+14CbotuFjshBU2kt9rYj9TSmDcybpxpeTU1fg==} + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + tailwind-merge@3.4.0: + resolution: {integrity: sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==} + + tailwindcss@4.1.18: + resolution: {integrity: sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==} + + tapable@2.2.2: + resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} + engines: {node: '>=6'} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsx@4.20.3: + resolution: {integrity: sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==} + engines: {node: '>=18.0.0'} + hasBin: true + + tw-animate-css@1.4.0: + resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + typescript-eslint@8.49.0: + resolution: {integrity: sha512-zRSVH1WXD0uXczCXw+nsdjGPUdx4dfrs5VQoHnUWmv1U3oNlAKv4FUNdLDhVUg+gYn+a5hUESqch//Rv5wVhrg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + + unplugin@2.3.5: + resolution: {integrity: sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw==} + engines: {node: '>=18.12.0'} + + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sync-external-store@1.5.0: + resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + victory-vendor@37.3.6: + resolution: {integrity: sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==} + + vite@7.3.0: + resolution: {integrity: sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + walk-up-path@4.0.0: + resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} + engines: {node: 20 || >=22} + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + ws@8.19.0: + resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zod-validation-error@4.0.2: + resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + + zod@4.2.0: + resolution: {integrity: sha512-Bd5fw9wlIhtqCCxotZgdTOMwGm1a0u75wARVEY9HMs1X17trvA/lMi4+MGK5EUfYkXVTbX8UDiDKW4OgzHVUZw==} + + zustand@5.0.9: + resolution: {integrity: sha512-ALBtUj0AfjJt3uNRQoL1tL2tMvj6Gp/6e39dnfT6uzpelGru8v1tPOGBzayOWbPJvujM8JojDk3E1LxeFisBNg==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.27.5': {} + + '@babel/core@7.28.0': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/helpers': 7.27.6 + '@babel/parser': 7.28.0 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.1 + convert-source-map: 2.0.0 + debug: 4.4.1 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.28.0': + dependencies: + '@babel/parser': 7.28.0 + '@babel/types': 7.28.1 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.27.3': + dependencies: + '@babel/types': 7.28.1 + + '@babel/helper-compilation-targets@7.27.2': + dependencies: + '@babel/compat-data': 7.27.5 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.25.0 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.28.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-member-expression-to-functions@7.27.1': + dependencies: + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.27.1': + dependencies: + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.27.1': + dependencies: + '@babel/types': 7.28.1 + + '@babel/helper-plugin-utils@7.27.1': {} + + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + dependencies: + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.27.6': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.1 + + '@babel/parser@7.28.0': + dependencies: + '@babel/types': 7.28.1 + + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) + transitivePeerDependencies: + - supports-color + + '@babel/preset-typescript@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.28.0) + transitivePeerDependencies: + - supports-color + + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.1 + + '@babel/traverse@7.28.0': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.0 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.0 + '@babel/template': 7.27.2 + '@babel/types': 7.28.1 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.28.1': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@clerk/clerk-react@5.58.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@clerk/shared': 3.39.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + tslib: 2.8.1 + + '@clerk/shared@3.39.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + csstype: 3.1.3 + dequal: 2.0.3 + glob-to-regexp: 0.4.1 + js-cookie: 3.0.5 + std-env: 3.9.0 + swr: 2.3.4(react@19.2.3) + optionalDependencies: + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + + '@date-fns/tz@1.4.1': {} + + '@emnapi/core@1.7.1': + dependencies: + '@emnapi/wasi-threads': 1.1.0 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.7.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.1.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild/aix-ppc64@0.25.11': + optional: true + + '@esbuild/aix-ppc64@0.27.1': + optional: true + + '@esbuild/android-arm64@0.25.11': + optional: true + + '@esbuild/android-arm64@0.27.1': + optional: true + + '@esbuild/android-arm@0.25.11': + optional: true + + '@esbuild/android-arm@0.27.1': + optional: true + + '@esbuild/android-x64@0.25.11': + optional: true + + '@esbuild/android-x64@0.27.1': + optional: true + + '@esbuild/darwin-arm64@0.25.11': + optional: true + + '@esbuild/darwin-arm64@0.27.1': + optional: true + + '@esbuild/darwin-x64@0.25.11': + optional: true + + '@esbuild/darwin-x64@0.27.1': + optional: true + + '@esbuild/freebsd-arm64@0.25.11': + optional: true + + '@esbuild/freebsd-arm64@0.27.1': + optional: true + + '@esbuild/freebsd-x64@0.25.11': + optional: true + + '@esbuild/freebsd-x64@0.27.1': + optional: true + + '@esbuild/linux-arm64@0.25.11': + optional: true + + '@esbuild/linux-arm64@0.27.1': + optional: true + + '@esbuild/linux-arm@0.25.11': + optional: true + + '@esbuild/linux-arm@0.27.1': + optional: true + + '@esbuild/linux-ia32@0.25.11': + optional: true + + '@esbuild/linux-ia32@0.27.1': + optional: true + + '@esbuild/linux-loong64@0.25.11': + optional: true + + '@esbuild/linux-loong64@0.27.1': + optional: true + + '@esbuild/linux-mips64el@0.25.11': + optional: true + + '@esbuild/linux-mips64el@0.27.1': + optional: true + + '@esbuild/linux-ppc64@0.25.11': + optional: true + + '@esbuild/linux-ppc64@0.27.1': + optional: true + + '@esbuild/linux-riscv64@0.25.11': + optional: true + + '@esbuild/linux-riscv64@0.27.1': + optional: true + + '@esbuild/linux-s390x@0.25.11': + optional: true + + '@esbuild/linux-s390x@0.27.1': + optional: true + + '@esbuild/linux-x64@0.25.11': + optional: true + + '@esbuild/linux-x64@0.27.1': + optional: true + + '@esbuild/netbsd-arm64@0.25.11': + optional: true + + '@esbuild/netbsd-arm64@0.27.1': + optional: true + + '@esbuild/netbsd-x64@0.25.11': + optional: true + + '@esbuild/netbsd-x64@0.27.1': + optional: true + + '@esbuild/openbsd-arm64@0.25.11': + optional: true + + '@esbuild/openbsd-arm64@0.27.1': + optional: true + + '@esbuild/openbsd-x64@0.25.11': + optional: true + + '@esbuild/openbsd-x64@0.27.1': + optional: true + + '@esbuild/openharmony-arm64@0.25.11': + optional: true + + '@esbuild/openharmony-arm64@0.27.1': + optional: true + + '@esbuild/sunos-x64@0.25.11': + optional: true + + '@esbuild/sunos-x64@0.27.1': + optional: true + + '@esbuild/win32-arm64@0.25.11': + optional: true + + '@esbuild/win32-arm64@0.27.1': + optional: true + + '@esbuild/win32-ia32@0.25.11': + optional: true + + '@esbuild/win32-ia32@0.27.1': + optional: true + + '@esbuild/win32-x64@0.25.11': + optional: true + + '@esbuild/win32-x64@0.27.1': + optional: true + + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2(jiti@2.6.1))': + dependencies: + eslint: 9.39.2(jiti@2.6.1) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/config-array@0.21.1': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.1 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.1': + dependencies: + ajv: 6.12.6 + debug: 4.4.1 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.39.2': {} + + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + + '@faker-js/faker@10.1.0': {} + + '@floating-ui/core@1.7.1': + dependencies: + '@floating-ui/utils': 0.2.9 + + '@floating-ui/dom@1.7.1': + dependencies: + '@floating-ui/core': 1.7.1 + '@floating-ui/utils': 0.2.9 + + '@floating-ui/react-dom@2.1.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@floating-ui/dom': 1.7.1 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + + '@floating-ui/utils@0.2.9': {} + + '@hookform/resolvers@5.2.2(react-hook-form@7.68.0(react@19.2.3))': + dependencies: + '@standard-schema/utils': 0.3.0 + react-hook-form: 7.68.0(react@19.2.3) + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@jridgewell/gen-mapping@0.3.12': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.29 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.29': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@napi-rs/wasm-runtime@1.1.0': + dependencies: + '@emnapi/core': 1.7.1 + '@emnapi/runtime': 1.7.1 + '@tybys/wasm-util': 0.10.1 + optional: true + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@oxc-resolver/binding-android-arm-eabi@11.15.0': + optional: true + + '@oxc-resolver/binding-android-arm64@11.15.0': + optional: true + + '@oxc-resolver/binding-darwin-arm64@11.15.0': + optional: true + + '@oxc-resolver/binding-darwin-x64@11.15.0': + optional: true + + '@oxc-resolver/binding-freebsd-x64@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-arm-musleabihf@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-arm64-gnu@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-arm64-musl@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-ppc64-gnu@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-riscv64-gnu@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-riscv64-musl@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-s390x-gnu@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-x64-gnu@11.15.0': + optional: true + + '@oxc-resolver/binding-linux-x64-musl@11.15.0': + optional: true + + '@oxc-resolver/binding-openharmony-arm64@11.15.0': + optional: true + + '@oxc-resolver/binding-wasm32-wasi@11.15.0': + dependencies: + '@napi-rs/wasm-runtime': 1.1.0 + optional: true + + '@oxc-resolver/binding-win32-arm64-msvc@11.15.0': + optional: true + + '@oxc-resolver/binding-win32-ia32-msvc@11.15.0': + optional: true + + '@oxc-resolver/binding-win32-x64-msvc@11.15.0': + optional: true + + '@radix-ui/number@1.1.1': {} + + '@radix-ui/primitive@1.1.3': {} + + '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-avatar@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-context': 1.1.3(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.7)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-context@1.1.2(@types/react@19.2.7)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-context@1.1.3(@types/react@19.2.7)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + aria-hidden: 1.2.6 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.1(@types/react@19.2.7)(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-direction@1.1.1(@types/react@19.2.7)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.7)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-icons@1.3.2(react@19.2.3)': + dependencies: + react: 19.2.3 + + '@radix-ui/react-id@1.1.1(@types/react@19.2.7)(react@19.2.3)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-label@2.1.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) + aria-hidden: 1.2.6 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.1(@types/react@19.2.7)(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + aria-hidden: 1.2.6 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.1(@types/react@19.2.7)(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@floating-ui/react-dom': 2.1.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/rect': 1.1.1 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + aria-hidden: 1.2.6 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.1(@types/react@19.2.7)(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-separator@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-slot@1.2.3(@types/react@19.2.7)(react@19.2.3)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-slot@1.2.4(@types/react@19.2.7)(react@19.2.3)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-switch@1.2.6(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.7)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.7)(react@19.2.3)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.7)(react@19.2.3)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.7)(react@19.2.3)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.2.7)(react@19.2.3)': + dependencies: + react: 19.2.3 + use-sync-external-store: 1.5.0(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.7)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.7)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.7)(react@19.2.3)': + dependencies: + '@radix-ui/rect': 1.1.1 + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.7)(react@19.2.3)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.7 + + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + + '@radix-ui/rect@1.1.1': {} + + '@reduxjs/toolkit@2.8.2(react-redux@9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1))(react@19.2.3)': + dependencies: + '@standard-schema/spec': 1.0.0 + '@standard-schema/utils': 0.3.0 + immer: 10.1.1 + redux: 5.0.1 + redux-thunk: 3.1.0(redux@5.0.1) + reselect: 5.1.1 + optionalDependencies: + react: 19.2.3 + react-redux: 9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1) + + '@rolldown/pluginutils@1.0.0-beta.47': {} + + '@rollup/rollup-android-arm-eabi@4.52.5': + optional: true + + '@rollup/rollup-android-arm64@4.52.5': + optional: true + + '@rollup/rollup-darwin-arm64@4.52.5': + optional: true + + '@rollup/rollup-darwin-x64@4.52.5': + optional: true + + '@rollup/rollup-freebsd-arm64@4.52.5': + optional: true + + '@rollup/rollup-freebsd-x64@4.52.5': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.52.5': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.52.5': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.52.5': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.52.5': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-x64-musl@4.52.5': + optional: true + + '@rollup/rollup-openharmony-arm64@4.52.5': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.52.5': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.52.5': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.52.5': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.52.5': + optional: true + + '@standard-schema/spec@1.0.0': {} + + '@standard-schema/utils@0.3.0': {} + + '@supabase/auth-js@2.93.3': + dependencies: + tslib: 2.8.1 + + '@supabase/functions-js@2.93.3': + dependencies: + tslib: 2.8.1 + + '@supabase/postgrest-js@2.93.3': + dependencies: + tslib: 2.8.1 + + '@supabase/realtime-js@2.93.3': + dependencies: + '@types/phoenix': 1.6.7 + '@types/ws': 8.18.1 + tslib: 2.8.1 + ws: 8.19.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@supabase/storage-js@2.93.3': + dependencies: + iceberg-js: 0.8.1 + tslib: 2.8.1 + + '@supabase/supabase-js@2.93.3': + dependencies: + '@supabase/auth-js': 2.93.3 + '@supabase/functions-js': 2.93.3 + '@supabase/postgrest-js': 2.93.3 + '@supabase/realtime-js': 2.93.3 + '@supabase/storage-js': 2.93.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@swc/core-darwin-arm64@1.13.5': + optional: true + + '@swc/core-darwin-x64@1.13.5': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.13.5': + optional: true + + '@swc/core-linux-arm64-gnu@1.13.5': + optional: true + + '@swc/core-linux-arm64-musl@1.13.5': + optional: true + + '@swc/core-linux-x64-gnu@1.13.5': + optional: true + + '@swc/core-linux-x64-musl@1.13.5': + optional: true + + '@swc/core-win32-arm64-msvc@1.13.5': + optional: true + + '@swc/core-win32-ia32-msvc@1.13.5': + optional: true + + '@swc/core-win32-x64-msvc@1.13.5': + optional: true + + '@swc/core@1.13.5(@swc/helpers@0.5.17)': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.25 + optionalDependencies: + '@swc/core-darwin-arm64': 1.13.5 + '@swc/core-darwin-x64': 1.13.5 + '@swc/core-linux-arm-gnueabihf': 1.13.5 + '@swc/core-linux-arm64-gnu': 1.13.5 + '@swc/core-linux-arm64-musl': 1.13.5 + '@swc/core-linux-x64-gnu': 1.13.5 + '@swc/core-linux-x64-musl': 1.13.5 + '@swc/core-win32-arm64-msvc': 1.13.5 + '@swc/core-win32-ia32-msvc': 1.13.5 + '@swc/core-win32-x64-msvc': 1.13.5 + '@swc/helpers': 0.5.17 + + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.17': + dependencies: + tslib: 2.8.1 + optional: true + + '@swc/types@0.1.25': + dependencies: + '@swc/counter': 0.1.3 + + '@tailwindcss/node@4.1.18': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.18.3 + jiti: 2.6.1 + lightningcss: 1.30.2 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.1.18 + + '@tailwindcss/oxide-android-arm64@4.1.18': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.1.18': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.1.18': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.1.18': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.1.18': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.1.18': + optional: true + + '@tailwindcss/oxide@4.1.18': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.1.18 + '@tailwindcss/oxide-darwin-arm64': 4.1.18 + '@tailwindcss/oxide-darwin-x64': 4.1.18 + '@tailwindcss/oxide-freebsd-x64': 4.1.18 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.18 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.18 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.18 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.18 + '@tailwindcss/oxide-linux-x64-musl': 4.1.18 + '@tailwindcss/oxide-wasm32-wasi': 4.1.18 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.18 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.18 + + '@tailwindcss/vite@4.1.18(vite@7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.3))': + dependencies: + '@tailwindcss/node': 4.1.18 + '@tailwindcss/oxide': 4.1.18 + tailwindcss: 4.1.18 + vite: 7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.3) + + '@tanstack/eslint-plugin-query@5.91.2(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/utils': 8.46.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) + transitivePeerDependencies: + - supports-color + - typescript + + '@tanstack/history@1.141.0': {} + + '@tanstack/query-core@5.90.12': {} + + '@tanstack/query-devtools@5.91.1': {} + + '@tanstack/react-query-devtools@5.91.1(@tanstack/react-query@5.90.12(react@19.2.3))(react@19.2.3)': + dependencies: + '@tanstack/query-devtools': 5.91.1 + '@tanstack/react-query': 5.90.12(react@19.2.3) + react: 19.2.3 + + '@tanstack/react-query@5.90.12(react@19.2.3)': + dependencies: + '@tanstack/query-core': 5.90.12 + react: 19.2.3 + + '@tanstack/react-router-devtools@1.141.2(@tanstack/react-router@1.141.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@tanstack/router-core@1.141.2)(csstype@3.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(solid-js@1.9.7)': + dependencies: + '@tanstack/react-router': 1.141.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@tanstack/router-devtools-core': 1.141.2(@tanstack/router-core@1.141.2)(csstype@3.2.3)(solid-js@1.9.7) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@tanstack/router-core': 1.141.2 + transitivePeerDependencies: + - csstype + - solid-js + + '@tanstack/react-router@1.141.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@tanstack/history': 1.141.0 + '@tanstack/react-store': 0.8.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@tanstack/router-core': 1.141.2 + isbot: 5.1.28 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + + '@tanstack/react-store@0.8.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@tanstack/store': 0.8.0 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + use-sync-external-store: 1.6.0(react@19.2.3) + + '@tanstack/react-table@8.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@tanstack/table-core': 8.21.3 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + + '@tanstack/router-core@1.141.2': + dependencies: + '@tanstack/history': 1.141.0 + '@tanstack/store': 0.8.0 + cookie-es: 2.0.0 + seroval: 1.4.0 + seroval-plugins: 1.4.0(seroval@1.4.0) + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + + '@tanstack/router-devtools-core@1.141.2(@tanstack/router-core@1.141.2)(csstype@3.2.3)(solid-js@1.9.7)': + dependencies: + '@tanstack/router-core': 1.141.2 + clsx: 2.1.1 + goober: 2.1.16(csstype@3.2.3) + solid-js: 1.9.7 + tiny-invariant: 1.3.3 + optionalDependencies: + csstype: 3.2.3 + + '@tanstack/router-generator@1.141.2': + dependencies: + '@tanstack/router-core': 1.141.2 + '@tanstack/router-utils': 1.141.0 + '@tanstack/virtual-file-routes': 1.141.0 + prettier: 3.7.4 + recast: 0.23.11 + source-map: 0.7.4 + tsx: 4.20.3 + zod: 3.25.76 + transitivePeerDependencies: + - supports-color + + '@tanstack/router-plugin@1.141.2(@tanstack/react-router@1.141.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.3))': + dependencies: + '@babel/core': 7.28.0 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.1 + '@tanstack/router-core': 1.141.2 + '@tanstack/router-generator': 1.141.2 + '@tanstack/router-utils': 1.141.0 + '@tanstack/virtual-file-routes': 1.141.0 + babel-dead-code-elimination: 1.0.10 + chokidar: 3.6.0 + unplugin: 2.3.5 + zod: 3.25.76 + optionalDependencies: + '@tanstack/react-router': 1.141.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + vite: 7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.3) + transitivePeerDependencies: + - supports-color + + '@tanstack/router-utils@1.141.0': + dependencies: + '@babel/core': 7.28.0 + '@babel/generator': 7.28.0 + '@babel/parser': 7.28.0 + '@babel/preset-typescript': 7.27.1(@babel/core@7.28.0) + ansis: 4.1.0 + diff: 8.0.2 + pathe: 2.0.3 + tinyglobby: 0.2.15 + transitivePeerDependencies: + - supports-color + + '@tanstack/store@0.8.0': {} + + '@tanstack/table-core@8.21.3': {} + + '@tanstack/virtual-file-routes@1.141.0': {} + + '@trivago/prettier-plugin-sort-imports@6.0.0(prettier@3.7.4)': + dependencies: + '@babel/generator': 7.28.0 + '@babel/parser': 7.28.0 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.1 + javascript-natural-sort: 0.7.1 + lodash-es: 4.17.21 + minimatch: 9.0.5 + parse-imports-exports: 0.2.4 + prettier: 3.7.4 + transitivePeerDependencies: + - supports-color + + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/d3-array@3.2.1': {} + + '@types/d3-color@3.1.3': {} + + '@types/d3-ease@3.0.2': {} + + '@types/d3-interpolate@3.0.4': + dependencies: + '@types/d3-color': 3.1.3 + + '@types/d3-path@3.1.1': {} + + '@types/d3-scale@4.0.9': + dependencies: + '@types/d3-time': 3.0.4 + + '@types/d3-shape@3.1.7': + dependencies: + '@types/d3-path': 3.1.1 + + '@types/d3-time@3.0.4': {} + + '@types/d3-timer@3.0.2': {} + + '@types/estree@1.0.8': {} + + '@types/json-schema@7.0.15': {} + + '@types/node@25.0.2': + dependencies: + undici-types: 7.16.0 + + '@types/phoenix@1.6.7': {} + + '@types/react-dom@19.2.3(@types/react@19.2.7)': + dependencies: + '@types/react': 19.2.7 + + '@types/react@19.2.7': + dependencies: + csstype: 3.2.3 + + '@types/use-sync-external-store@0.0.6': {} + + '@types/ws@8.18.1': + dependencies: + '@types/node': 25.0.2 + + '@typescript-eslint/eslint-plugin@8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.49.0 + '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.49.0 + eslint: 9.39.2(jiti@2.6.1) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.49.0 + '@typescript-eslint/types': 8.49.0 + '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.49.0 + debug: 4.4.1 + eslint: 9.39.2(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.46.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3) + '@typescript-eslint/types': 8.46.0 + debug: 4.4.1 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.49.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.49.0(typescript@5.9.3) + '@typescript-eslint/types': 8.49.0 + debug: 4.4.1 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.46.0': + dependencies: + '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/visitor-keys': 8.46.0 + + '@typescript-eslint/scope-manager@8.49.0': + dependencies: + '@typescript-eslint/types': 8.49.0 + '@typescript-eslint/visitor-keys': 8.49.0 + + '@typescript-eslint/tsconfig-utils@8.46.0(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + + '@typescript-eslint/tsconfig-utils@8.49.0(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + + '@typescript-eslint/type-utils@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.49.0 + '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + debug: 4.4.1 + eslint: 9.39.2(jiti@2.6.1) + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.46.0': {} + + '@typescript-eslint/types@8.49.0': {} + + '@typescript-eslint/typescript-estree@8.46.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.46.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3) + '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/visitor-keys': 8.46.0 + debug: 4.4.1 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.49.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.49.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.49.0(typescript@5.9.3) + '@typescript-eslint/types': 8.49.0 + '@typescript-eslint/visitor-keys': 8.49.0 + debug: 4.4.1 + minimatch: 9.0.5 + semver: 7.7.2 + tinyglobby: 0.2.15 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.46.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.46.0 + '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.49.0 + '@typescript-eslint/types': 8.49.0 + '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.46.0': + dependencies: + '@typescript-eslint/types': 8.46.0 + eslint-visitor-keys: 4.2.1 + + '@typescript-eslint/visitor-keys@8.49.0': + dependencies: + '@typescript-eslint/types': 8.49.0 + eslint-visitor-keys: 4.2.1 + + '@vitejs/plugin-react-swc@4.2.2(@swc/helpers@0.5.17)(vite@7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.3))': + dependencies: + '@rolldown/pluginutils': 1.0.0-beta.47 + '@swc/core': 1.13.5(@swc/helpers@0.5.17) + vite: 7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.3) + transitivePeerDependencies: + - '@swc/helpers' + + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn@8.15.0: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansis@4.1.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@2.0.1: {} + + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + + ast-types@0.16.1: + dependencies: + tslib: 2.8.1 + + asynckit@0.4.0: {} + + axios@1.13.2: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.4 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + babel-dead-code-elimination@1.0.10: + dependencies: + '@babel/core': 7.28.0 + '@babel/parser': 7.28.0 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.1 + transitivePeerDependencies: + - supports-color + + balanced-match@1.0.2: {} + + binary-extensions@2.3.0: {} + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.25.0: + dependencies: + caniuse-lite: 1.0.30001724 + electron-to-chromium: 1.5.173 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.25.0) + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + callsites@3.1.0: {} + + caniuse-lite@1.0.30001724: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + + clsx@2.1.1: {} + + cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + concat-map@0.0.1: {} + + convert-source-map@2.0.0: {} + + cookie-es@2.0.0: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + csstype@3.1.3: {} + + csstype@3.2.3: {} + + d3-array@3.2.4: + dependencies: + internmap: 2.0.3 + + d3-color@3.1.0: {} + + d3-ease@3.0.1: {} + + d3-format@3.1.0: {} + + d3-interpolate@3.0.1: + dependencies: + d3-color: 3.1.0 + + d3-path@3.1.0: {} + + d3-scale@4.0.2: + dependencies: + d3-array: 3.2.4 + d3-format: 3.1.0 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + + d3-shape@3.2.0: + dependencies: + d3-path: 3.1.0 + + d3-time-format@4.1.0: + dependencies: + d3-time: 3.1.0 + + d3-time@3.1.0: + dependencies: + d3-array: 3.2.4 + + d3-timer@3.0.1: {} + + date-fns-jalali@4.1.0-0: {} + + date-fns@4.1.0: {} + + debug@4.4.1: + dependencies: + ms: 2.1.3 + + decimal.js-light@2.5.1: {} + + deep-is@0.1.4: {} + + delayed-stream@1.0.0: {} + + dequal@2.0.3: {} + + detect-libc@2.0.4: {} + + detect-node-es@1.1.0: {} + + diff@8.0.2: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + electron-to-chromium@1.5.173: {} + + enhanced-resolve@5.18.3: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.2 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-toolkit@1.39.5: {} + + esbuild@0.25.11: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.11 + '@esbuild/android-arm': 0.25.11 + '@esbuild/android-arm64': 0.25.11 + '@esbuild/android-x64': 0.25.11 + '@esbuild/darwin-arm64': 0.25.11 + '@esbuild/darwin-x64': 0.25.11 + '@esbuild/freebsd-arm64': 0.25.11 + '@esbuild/freebsd-x64': 0.25.11 + '@esbuild/linux-arm': 0.25.11 + '@esbuild/linux-arm64': 0.25.11 + '@esbuild/linux-ia32': 0.25.11 + '@esbuild/linux-loong64': 0.25.11 + '@esbuild/linux-mips64el': 0.25.11 + '@esbuild/linux-ppc64': 0.25.11 + '@esbuild/linux-riscv64': 0.25.11 + '@esbuild/linux-s390x': 0.25.11 + '@esbuild/linux-x64': 0.25.11 + '@esbuild/netbsd-arm64': 0.25.11 + '@esbuild/netbsd-x64': 0.25.11 + '@esbuild/openbsd-arm64': 0.25.11 + '@esbuild/openbsd-x64': 0.25.11 + '@esbuild/openharmony-arm64': 0.25.11 + '@esbuild/sunos-x64': 0.25.11 + '@esbuild/win32-arm64': 0.25.11 + '@esbuild/win32-ia32': 0.25.11 + '@esbuild/win32-x64': 0.25.11 + + esbuild@0.27.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.1 + '@esbuild/android-arm': 0.27.1 + '@esbuild/android-arm64': 0.27.1 + '@esbuild/android-x64': 0.27.1 + '@esbuild/darwin-arm64': 0.27.1 + '@esbuild/darwin-x64': 0.27.1 + '@esbuild/freebsd-arm64': 0.27.1 + '@esbuild/freebsd-x64': 0.27.1 + '@esbuild/linux-arm': 0.27.1 + '@esbuild/linux-arm64': 0.27.1 + '@esbuild/linux-ia32': 0.27.1 + '@esbuild/linux-loong64': 0.27.1 + '@esbuild/linux-mips64el': 0.27.1 + '@esbuild/linux-ppc64': 0.27.1 + '@esbuild/linux-riscv64': 0.27.1 + '@esbuild/linux-s390x': 0.27.1 + '@esbuild/linux-x64': 0.27.1 + '@esbuild/netbsd-arm64': 0.27.1 + '@esbuild/netbsd-x64': 0.27.1 + '@esbuild/openbsd-arm64': 0.27.1 + '@esbuild/openbsd-x64': 0.27.1 + '@esbuild/openharmony-arm64': 0.27.1 + '@esbuild/sunos-x64': 0.27.1 + '@esbuild/win32-arm64': 0.27.1 + '@esbuild/win32-ia32': 0.27.1 + '@esbuild/win32-x64': 0.27.1 + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@2.6.1)): + dependencies: + '@babel/core': 7.28.0 + '@babel/parser': 7.28.0 + eslint: 9.39.2(jiti@2.6.1) + hermes-parser: 0.25.1 + zod: 4.2.0 + zod-validation-error: 4.0.2(zod@4.2.0) + transitivePeerDependencies: + - supports-color + + eslint-plugin-react-refresh@0.4.25(eslint@9.39.2(jiti@2.6.1)): + dependencies: + eslint: 9.39.2(jiti@2.6.1) + + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.1: {} + + eslint@9.39.2(jiti@2.6.1): + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.39.2 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.1 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.6.1 + transitivePeerDependencies: + - supports-color + + espree@10.4.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + eventemitter3@5.0.1: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + fd-package-json@2.0.0: + dependencies: + walk-up-path: 4.0.0 + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + + flatted@3.3.3: {} + + follow-redirects@1.15.9: {} + + form-data@4.0.4: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 + + formatly@0.3.0: + dependencies: + fd-package-json: 2.0.0 + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + gensync@1.0.0-beta.2: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-nonce@1.0.1: {} + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-tsconfig@4.10.1: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + globals@14.0.0: {} + + globals@16.5.0: {} + + goober@2.1.16(csstype@3.2.3): + dependencies: + csstype: 3.2.3 + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + has-flag@4.0.0: {} + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hermes-estree@0.25.1: {} + + hermes-parser@0.25.1: + dependencies: + hermes-estree: 0.25.1 + + iceberg-js@0.8.1: {} + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + immer@10.1.1: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + input-otp@1.4.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + + internmap@2.0.3: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + isbot@5.1.28: {} + + isexe@2.0.0: {} + + javascript-natural-sort@0.7.1: {} + + jiti@2.6.1: {} + + js-cookie@3.0.5: {} + + js-tokens@4.0.0: {} + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@2.2.3: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + knip@5.73.4(@types/node@25.0.2)(typescript@5.9.3): + dependencies: + '@nodelib/fs.walk': 1.2.8 + '@types/node': 25.0.2 + fast-glob: 3.3.3 + formatly: 0.3.0 + jiti: 2.6.1 + js-yaml: 4.1.1 + minimist: 1.2.8 + oxc-resolver: 11.15.0 + picocolors: 1.1.1 + picomatch: 4.0.3 + smol-toml: 1.5.2 + strip-json-comments: 5.0.3 + typescript: 5.9.3 + zod: 4.2.0 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lightningcss-android-arm64@1.30.2: + optional: true + + lightningcss-darwin-arm64@1.30.2: + optional: true + + lightningcss-darwin-x64@1.30.2: + optional: true + + lightningcss-freebsd-x64@1.30.2: + optional: true + + lightningcss-linux-arm-gnueabihf@1.30.2: + optional: true + + lightningcss-linux-arm64-gnu@1.30.2: + optional: true + + lightningcss-linux-arm64-musl@1.30.2: + optional: true + + lightningcss-linux-x64-gnu@1.30.2: + optional: true + + lightningcss-linux-x64-musl@1.30.2: + optional: true + + lightningcss-win32-arm64-msvc@1.30.2: + optional: true + + lightningcss-win32-x64-msvc@1.30.2: + optional: true + + lightningcss@1.30.2: + dependencies: + detect-libc: 2.0.4 + optionalDependencies: + lightningcss-android-arm64: 1.30.2 + lightningcss-darwin-arm64: 1.30.2 + lightningcss-darwin-x64: 1.30.2 + lightningcss-freebsd-x64: 1.30.2 + lightningcss-linux-arm-gnueabihf: 1.30.2 + lightningcss-linux-arm64-gnu: 1.30.2 + lightningcss-linux-arm64-musl: 1.30.2 + lightningcss-linux-x64-gnu: 1.30.2 + lightningcss-linux-x64-musl: 1.30.2 + lightningcss-win32-arm64-msvc: 1.30.2 + lightningcss-win32-x64-msvc: 1.30.2 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash-es@4.17.21: {} + + lodash.merge@4.6.2: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lucide-react@0.561.0(react@19.2.3): + dependencies: + react: 19.2.3 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + math-intrinsics@1.1.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.2 + + minimist@1.2.8: {} + + ms@2.1.3: {} + + nanoid@3.3.11: {} + + natural-compare@1.4.0: {} + + node-releases@2.0.19: {} + + normalize-path@3.0.0: {} + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + oxc-resolver@11.15.0: + optionalDependencies: + '@oxc-resolver/binding-android-arm-eabi': 11.15.0 + '@oxc-resolver/binding-android-arm64': 11.15.0 + '@oxc-resolver/binding-darwin-arm64': 11.15.0 + '@oxc-resolver/binding-darwin-x64': 11.15.0 + '@oxc-resolver/binding-freebsd-x64': 11.15.0 + '@oxc-resolver/binding-linux-arm-gnueabihf': 11.15.0 + '@oxc-resolver/binding-linux-arm-musleabihf': 11.15.0 + '@oxc-resolver/binding-linux-arm64-gnu': 11.15.0 + '@oxc-resolver/binding-linux-arm64-musl': 11.15.0 + '@oxc-resolver/binding-linux-ppc64-gnu': 11.15.0 + '@oxc-resolver/binding-linux-riscv64-gnu': 11.15.0 + '@oxc-resolver/binding-linux-riscv64-musl': 11.15.0 + '@oxc-resolver/binding-linux-s390x-gnu': 11.15.0 + '@oxc-resolver/binding-linux-x64-gnu': 11.15.0 + '@oxc-resolver/binding-linux-x64-musl': 11.15.0 + '@oxc-resolver/binding-openharmony-arm64': 11.15.0 + '@oxc-resolver/binding-wasm32-wasi': 11.15.0 + '@oxc-resolver/binding-win32-arm64-msvc': 11.15.0 + '@oxc-resolver/binding-win32-ia32-msvc': 11.15.0 + '@oxc-resolver/binding-win32-x64-msvc': 11.15.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-imports-exports@0.2.4: + dependencies: + parse-statements: 1.0.11 + + parse-statements@1.0.11: {} + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + pathe@2.0.3: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.3: {} + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier-plugin-tailwindcss@0.7.2(@trivago/prettier-plugin-sort-imports@6.0.0(prettier@3.7.4))(prettier@3.7.4): + dependencies: + prettier: 3.7.4 + optionalDependencies: + '@trivago/prettier-plugin-sort-imports': 6.0.0(prettier@3.7.4) + + prettier@3.7.4: {} + + proxy-from-env@1.1.0: {} + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + react-day-picker@9.12.0(react@19.2.3): + dependencies: + '@date-fns/tz': 1.4.1 + date-fns: 4.1.0 + date-fns-jalali: 4.1.0-0 + react: 19.2.3 + + react-dom@19.2.3(react@19.2.3): + dependencies: + react: 19.2.3 + scheduler: 0.27.0 + + react-hook-form@7.68.0(react@19.2.3): + dependencies: + react: 19.2.3 + + react-is@18.3.1: {} + + react-redux@9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1): + dependencies: + '@types/use-sync-external-store': 0.0.6 + react: 19.2.3 + use-sync-external-store: 1.6.0(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + redux: 5.0.1 + + react-remove-scroll-bar@2.3.8(@types/react@19.2.7)(react@19.2.3): + dependencies: + react: 19.2.3 + react-style-singleton: 2.2.3(@types/react@19.2.7)(react@19.2.3) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.7 + + react-remove-scroll@2.7.1(@types/react@19.2.7)(react@19.2.3): + dependencies: + react: 19.2.3 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.7)(react@19.2.3) + react-style-singleton: 2.2.3(@types/react@19.2.7)(react@19.2.3) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.2.7)(react@19.2.3) + use-sidecar: 1.1.3(@types/react@19.2.7)(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + + react-style-singleton@2.2.3(@types/react@19.2.7)(react@19.2.3): + dependencies: + get-nonce: 1.0.1 + react: 19.2.3 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.7 + + react-top-loading-bar@3.0.2(react@19.2.3): + dependencies: + react: 19.2.3 + + react@19.2.3: {} + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + recast@0.23.11: + dependencies: + ast-types: 0.16.1 + esprima: 4.0.1 + source-map: 0.6.1 + tiny-invariant: 1.3.3 + tslib: 2.8.1 + + recharts@3.6.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react-is@18.3.1)(react@19.2.3)(redux@5.0.1): + dependencies: + '@reduxjs/toolkit': 2.8.2(react-redux@9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1))(react@19.2.3) + clsx: 2.1.1 + decimal.js-light: 2.5.1 + es-toolkit: 1.39.5 + eventemitter3: 5.0.1 + immer: 10.1.1 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-is: 18.3.1 + react-redux: 9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1) + reselect: 5.1.1 + tiny-invariant: 1.3.3 + use-sync-external-store: 1.6.0(react@19.2.3) + victory-vendor: 37.3.6 + transitivePeerDependencies: + - '@types/react' + - redux + + redux-thunk@3.1.0(redux@5.0.1): + dependencies: + redux: 5.0.1 + + redux@5.0.1: {} + + reselect@5.1.1: {} + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + reusify@1.1.0: {} + + rollup@4.52.5: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.52.5 + '@rollup/rollup-android-arm64': 4.52.5 + '@rollup/rollup-darwin-arm64': 4.52.5 + '@rollup/rollup-darwin-x64': 4.52.5 + '@rollup/rollup-freebsd-arm64': 4.52.5 + '@rollup/rollup-freebsd-x64': 4.52.5 + '@rollup/rollup-linux-arm-gnueabihf': 4.52.5 + '@rollup/rollup-linux-arm-musleabihf': 4.52.5 + '@rollup/rollup-linux-arm64-gnu': 4.52.5 + '@rollup/rollup-linux-arm64-musl': 4.52.5 + '@rollup/rollup-linux-loong64-gnu': 4.52.5 + '@rollup/rollup-linux-ppc64-gnu': 4.52.5 + '@rollup/rollup-linux-riscv64-gnu': 4.52.5 + '@rollup/rollup-linux-riscv64-musl': 4.52.5 + '@rollup/rollup-linux-s390x-gnu': 4.52.5 + '@rollup/rollup-linux-x64-gnu': 4.52.5 + '@rollup/rollup-linux-x64-musl': 4.52.5 + '@rollup/rollup-openharmony-arm64': 4.52.5 + '@rollup/rollup-win32-arm64-msvc': 4.52.5 + '@rollup/rollup-win32-ia32-msvc': 4.52.5 + '@rollup/rollup-win32-x64-gnu': 4.52.5 + '@rollup/rollup-win32-x64-msvc': 4.52.5 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + scheduler@0.27.0: {} + + semver@6.3.1: {} + + semver@7.7.2: {} + + seroval-plugins@1.3.3(seroval@1.3.2): + dependencies: + seroval: 1.3.2 + + seroval-plugins@1.4.0(seroval@1.4.0): + dependencies: + seroval: 1.4.0 + + seroval@1.3.2: {} + + seroval@1.4.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + smol-toml@1.5.2: {} + + solid-js@1.9.7: + dependencies: + csstype: 3.2.3 + seroval: 1.3.2 + seroval-plugins: 1.3.3(seroval@1.3.2) + + sonner@2.0.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + + source-map-js@1.2.1: {} + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + std-env@3.9.0: {} + + strip-json-comments@3.1.1: {} + + strip-json-comments@5.0.3: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + swr@2.3.4(react@19.2.3): + dependencies: + dequal: 2.0.3 + react: 19.2.3 + use-sync-external-store: 1.6.0(react@19.2.3) + + tailwind-merge@3.4.0: {} + + tailwindcss@4.1.18: {} + + tapable@2.2.2: {} + + tiny-invariant@1.3.3: {} + + tiny-warning@1.0.3: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + ts-api-utils@2.1.0(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + + tslib@2.8.1: {} + + tsx@4.20.3: + dependencies: + esbuild: 0.25.11 + get-tsconfig: 4.10.1 + optionalDependencies: + fsevents: 2.3.3 + + tw-animate-css@1.4.0: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + typescript-eslint@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + typescript@5.9.3: {} + + undici-types@7.16.0: {} + + unplugin@2.3.5: + dependencies: + acorn: 8.15.0 + picomatch: 4.0.3 + webpack-virtual-modules: 0.6.2 + + update-browserslist-db@1.1.3(browserslist@4.25.0): + dependencies: + browserslist: 4.25.0 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + use-callback-ref@1.3.3(@types/react@19.2.7)(react@19.2.3): + dependencies: + react: 19.2.3 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.7 + + use-sidecar@1.1.3(@types/react@19.2.7)(react@19.2.3): + dependencies: + detect-node-es: 1.1.0 + react: 19.2.3 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.7 + + use-sync-external-store@1.5.0(react@19.2.3): + dependencies: + react: 19.2.3 + + use-sync-external-store@1.6.0(react@19.2.3): + dependencies: + react: 19.2.3 + + victory-vendor@37.3.6: + dependencies: + '@types/d3-array': 3.2.1 + '@types/d3-ease': 3.0.2 + '@types/d3-interpolate': 3.0.4 + '@types/d3-scale': 4.0.9 + '@types/d3-shape': 3.1.7 + '@types/d3-time': 3.0.4 + '@types/d3-timer': 3.0.2 + d3-array: 3.2.4 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-scale: 4.0.2 + d3-shape: 3.2.0 + d3-time: 3.1.0 + d3-timer: 3.0.1 + + vite@7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.3): + dependencies: + esbuild: 0.27.1 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.52.5 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 25.0.2 + fsevents: 2.3.3 + jiti: 2.6.1 + lightningcss: 1.30.2 + tsx: 4.20.3 + + walk-up-path@4.0.0: {} + + webpack-virtual-modules@0.6.2: {} + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + ws@8.19.0: {} + + yallist@3.1.1: {} + + yocto-queue@0.1.0: {} + + zod-validation-error@4.0.2(zod@4.2.0): + dependencies: + zod: 4.2.0 + + zod@3.25.76: {} + + zod@4.2.0: {} + + zustand@5.0.9(@types/react@19.2.7)(immer@10.1.1)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)): + optionalDependencies: + '@types/react': 19.2.7 + immer: 10.1.1 + react: 19.2.3 + use-sync-external-store: 1.6.0(react@19.2.3) diff --git a/shadcn-admin/public/images/favicon.png b/shadcn-admin/public/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..b34bb5cbfa147e080f1b9f36c1e0569daecc42c4 GIT binary patch literal 494 zcmVPx$s7XXYRA@u(SnYBGAqI<*cxTxUSiB=J)&x*}hH3Fgnmxvr< za*(zAJ(@s!LU)sB?J{)+B8L=eE+?$+0Dj;*a`5Zr?^Bp!rU2e5;kPd?B~}(IGO8ZxQJELbHLld|KbhjqfFZ>@=ZR kNdTJ80kBkHAZgGgUv>GoF(VQ?YXATM07*qoM6N<$g1mI%M*si- literal 0 HcmV?d00001 diff --git a/shadcn-admin/public/images/favicon.svg b/shadcn-admin/public/images/favicon.svg new file mode 100644 index 0000000..37d40ff --- /dev/null +++ b/shadcn-admin/public/images/favicon.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/shadcn-admin/public/images/favicon_light.png b/shadcn-admin/public/images/favicon_light.png new file mode 100644 index 0000000000000000000000000000000000000000..6d11aaae51d31f1e1fb4e9495a3fe2d553239720 GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDH3?y^UWFG-ijKx9jPK-BC>eK@{oCO|{#S9GG z!XV7ZFl&wkP>?OaC&U#<|NsAg>CO3ffh?wyAirRS|IrhbwgP!Io-U3d6?2kP7?|Dm zgv1I97#jV{&iQlw#ECyomVKT)yXQ>lw{xZ6dfwQ}ulQfXu=qxus?P7JK)Rl3CA&e_ z&Tj`d-Ty5)^Szl)@*PeSo{S=8W#?Mv!}V$lTpd(-M1lnlFK~0#ZHnrCC00_d^qcXO l;R^GG^V--LA0A+0xSF4}aZ>p|po1A0JYD@<);T3K0RS(5Sb+cl literal 0 HcmV?d00001 diff --git a/shadcn-admin/public/images/favicon_light.svg b/shadcn-admin/public/images/favicon_light.svg new file mode 100644 index 0000000..85241c6 --- /dev/null +++ b/shadcn-admin/public/images/favicon_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shadcn-admin/public/images/shadcn-admin.png b/shadcn-admin/public/images/shadcn-admin.png new file mode 100644 index 0000000000000000000000000000000000000000..ab9cef2a37b618759c81feeebbebce7f381b682e GIT binary patch literal 279656 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 XSNYmG@K)Q ztWII|P;wH7aC`YG8~En^%&m?mFgihn3gLxAXvqF#2!BGA@xm40ZX^4qd;L0P?uErj zAH&i^NXiVN9yQ-@Im&VK=zN)bJLt^n0{FZxQmSQq9F zU+mk*1I`=c>w}7BpbW%QP*2J9$`WiEwFWxBch!NN9wSqD$0HPAjl(1t7X2P!5mzxJ z4-CBU9=`tWSgvQPH&iJb{2B)^$(h%Kp`>Lko$Jd{d;k4y%egiv!aaLbToCowALHx! zGSr^BCWHzpN}eqlbhO$PK{ko=)O%F7aH}EBxuoWUI@Dpm4ZbHU^xxqqP_-45$jIPO z+fc*xG44FDrP(NcT{5_RU{HXL@w7@KCY3!R#_jRE2ci(HPLoRgEFtGDrv(e5#6&G; z?JsZ zr#jeX$Uu!{ba_vR;8ch)h_)e;)ix+k=>Dk7!Bvu0hMv@X_oiNMvv9QTEH4$6__w_( z_;vlBoHFedCC*oJZvsg-E7-unS~<;~MrZ2L;(ULot3u^&Q2wDIvR=7H2Z=d}KgS-{ zngU~svbYfv1VTs^2Krdq4DrSiPDPPH@Kj{DaP|=*AKLFNx)O|>J;a_7be=9Ev%4NQ zOVpaG=f?cKLTu=a!~^|G%5M(Qtd;!mA}vfBQV^nBvWuzGF~xn(EyI0*PCRUHn0-^M{sMY$TvVxb=#F%fd{~8lDM7)vm zY?S-AEyYoalLD&CzW1H&ejNFLj2r;5O#c)qR(k(yGTEE^EOJ|Ms_IY7Ni$~rA9O=_gu+#g z3k{J?$|1M?fnLwgB3odjR?T0U#LwNH9abFcqJE{Q)x8^`&~*xX9(4hneTyD2?zz%D_8ycW;wJHR zqT$k^Q@!v}-IVIQ$FUUt)x^~Ex0ZoQlbp{BgkMyU!8vH1fb{~Ug+|WeVejDO)D|H- zngEtA2KpJHrAaaqMv_D}6!gC6wJLE79%jTte%T|NS&eC;#3u8;WN&~xor3}SmB5+% zeuDc9!1-xE6gg=xTrv?v@l#3|C9I8pz@J8$7I)7I#SD6R`untVV`o&x$I)gUBq_yw zyR{;Sj^?XAf9WR<_-Ea51#ts-CG8~yI=H+b1&B;aVgve38p|S{_v0q-0F3sZ4E^Hu z|9pa}`>UGkmjUvrGbCEWvPgpF(Di>K#MR%Pa5_8zcv0U&N2mc-z@nbDJlvepkY!Xw z5Uz!W%v}H~J$|Rp3GqizP^ew_O>9o*GHnYnCVCib@#gD1Ihg}2toTI@UKN24y{dW% zo`S?WNr~-6Z=mdr(HZvK*4dkJLeozmClVJxXW?W{EKh)h-4upR3$5|d|lEvk7T>nBdY-%&O zWPZ7|y8Qs$^myJO#Pg{+li~i2Iru}b$w%0g8TE3D4_9r=SIpO6$ACA@Q)kwe_t9$I z*eHzGDjN+wUe*Tmf3OX~_#2Z6Iqxa#-p^QYi`;=V*|?8!+reU*0J+&IaQMC4#&326 zMg)6C)sE;OO4Qx36PDvsd65P`M4Ze24nnq6;wE|{!ykJPk|`##zbevj&F$qDM0h&v z?hz%vHiGKYG^GgQ7jJ%}%m;w^QJ0B81hY>}nLV|IPQDV=n_Z6&sF{t@UgLsI^4zy` zTQJ9jG$QD5sx8R<{d_sb8y^6YjyUcgnHU)f81XSvya8PgXg>+Nzy0*2^2PTgS2o*e;`qLi zx9oraIUvJ}9-UIAJtt9TPjSJ^+r8ydA;4udu$PfLKw?A?87K7Z0L9$oCgynIli*f`L4M~5ehMQ2HmNg^;@K4<_Ptyk!ELB(UQjZyrc)48 z6sqXXn+(my%X8NcX%INj?@EhfgNdne>>zxrLx2#uC0U8}1ml9tRf=E%R1tf>vGlQw z7NEI_cqDQtO7-s8JC7a|c+vRJs}qC!*0VnsR7VmV#b6!b=e&Qqhh@0_dSPc^jXt%g z0e0y$h;jJ-snY;#)#c~+__eo`a-YS9m@NMp-cNak!tEa^eQA}>6eWPj0wu*khh}iq z)Ly&}@LBa*>F3$=zU4Wg-%5i-$VC(H1ywV_CGW>8y0BOc2xcFsh%*T;G~1)#MczER zUjU%piFdvhr~j#Fc~7`UxCZ}EF-69uOvTSRxQWl~LKW|^X4Jy1QMS)p82kzC3c)lgF5Eyk&X9gk>y zxbH6@A;j>`RR`UNq&OID*Fysf&vhys*W}(WcR#7VllccT?V#62lZnpg@|J9WqN0;N z;Cel~68Ww_<*KblS-JlbU}?w;FgJM+Er8%JWixsn+>|D0W7ZUG|JU*3R)YTebMh-3 z3sCY|K2ai|y&aag7z!~$IssQF?z)&Zk&vr2<}^ImVHwLIf<;OKfw3V;o?cEXVhUi+ zc}g=>Ki^Hc#kp$Vq(q$Ih!s{=d59i}45U7VDfcEGo_YJqSLpwkK0;au8>qd5D zha{UUTD-^Nq&)?p>XU%S4QY0M}#MH~#QxDPjyL8wtO#T&QMty6{rPXC=G_t3d0UfZTG_h{|*;#r)lGmGM z_W{(KVU{k9H<=I{rc~<9Vc`Zh37^5><&j!!&^e#ip?(gq;XCR**{dW&{DQw%YN!v$ z1NbulxW6pLlOd8c(D)l+M-7ki75QfWh8y6Ki_U!R1=OHyLXB#NlgqMvbq#(btreaM z&NkylCkvy(LsCeP?=IK}D2yF`WN6E$R#|>CewwC{JDIn%O8|H?N``ZvYwW|fe%hDp z-`)5$<$(UIBODC}Igmk*oPgwTJPTFc-Z1fL{1^3zD%=9MdV)k<4#p4y={YHBwd?mR z;~-Ol)AbIaN6xf5BjboBo4|och(>^D7PW&h?2jjC!w0a z3;2QXf5YA*Df7YEwdWO=P~h(D==KpPP!`G#Z2#ov#ZBP@Y5XiZ@+CAs##$@owSL!_ zotU)uiehGE%VjJT^-Nb5>{-j2%yz^Z)dRQA_ z_xR=Nw?!I0@-w$1T`6F)h^Kjx=S3~YNT|AIw#r>U4dVKQ;5+sxH>WziDg!`_G7+I* zDAfW+i0t3NF`3IpRJ7r4(C58{S|x+|gwh&UDxhBC+-RfdQcz*6oV3rzy9DYykI@^p zuUn5iM3t8yf!Y#v`W(RqeKciRy$+QhIG)ITc#z1nTe>AX!tnNX{FT7yG0CIs8%ohV zl{$mUkCEMZu>2{LLBQbS=z$Kw%Qvt%u$TH%ak!Z;OcN9qN%J$EKu6y;G|xbk%=ZAV zIxQ@mRZ7#6hVvNvTY@k;;s)(X-)^a%5h)#phlJA7GPk}A@@+}4vhmLCfZk?B5)O9! z6MRp?@aIXRr}+idYUSww)e6~l>2mCK$f3;7-`e{|oo5!DH=4tx*P&FmAikDR-vO+@Tx6*$R*fiYG{4`f-a`fk>e!1L|LNhG-U+w3S*MNh{IS zFK_L7@+b+vEu{@6&-ar@ z7U%5U2V`Zq4R}mx&H7!FthkFD>ZXyx4(4VVaec0EVYA zq`OUL()+hPR85()N1=p^r%zMmrj*th&reT!cp@;T<7$jby@&XFh01E^uNLn$(C(rtVbfXVH7R(?5gOzD|CR#sI3#{r^mh)&;p`{>HK{yk69wvsS) zq`~BLPDKJB5k`nsl777weDNc$yzPB9F$tv!vOoG2ZCtQ9pQ!YAT$vY}>!|Mj-ZSJ2+YojoWXE6zV(<^PhsP!3KEd5j;)mA6fN(!8C9o zKuQsmxT{uP=53#TlUI-IG0>Ucym zpZ;{JCi$3DrPn}GTYppP^LMt><@9-ZS=S#dRN+T8Ywi2P%7H?CdFD+YpMIfl7|}#m zGZts{SvQG{BPKHkrnEbAdURl(mA9_SED5Ebec;<{8cq)9QM7I8BV(Yk0Z&m5MBn3@ ztL|272(`?CROYI}sy{-}s=0vHdM_{@Q`xHR$$q$gMEPGljKS*ndf+52!jmE2{h3NF z(WBK5``mR7tmq{`-}%QZ69n9+=20c;jZX zqGd;B=Qom%vF*onL{OM<8)*FMMleJWc^bJs)6w+&BS|V?QQ$kh^?cO#K|1j#II2`> zNx%O&hU{n&y!*S9To++&K;kC*Tzz(RE92~qN|5PX8U{_R^>{&xr|qUw$-vVRF21|3Pv1pFqyWQhssxYdktP9ckwp+WU2?MTywyXgK~v zA>R{P0y=*E;>FF(*x2HjETxb?dDwlBe-@bMD7~ZEBu_g|@y5d%(CSWIDW0qmaM{V?^q+FYDCho!l@y-i*BL(1Z#C`yx8^b@VjYCq|BR zo8+mgYNY-PP^s@-bv=*`0U61n!RFk+2Ff~uTK-^g19C`7cAY93amA$-EYRPYW^gm# zX}t>FL23}x$hUnj1x|mjzuX->pPSqLRo;4$b+804=(x9HDy%9sU?h%f_+j4@qzmku znMXxE#&PkaM)*-tyD|(S*Ol)?64rg zafex8ZB{9p4lFDYgyao_EF#?H363=OWzl)pW4hogxsDK(u`|L|JqQ*@jqFV zuq_oC2Gm8ssCGpiU_3g1g2)q1OR}X?RJ406RJ9Ds8%|Ee!>+5KjPS^RFbr9y?*dPKf=0 zu3qoPZ``n3b=gxifsfRa6R%vgJ}^%@>OPj%W`V?+$m7XUiq=R7ljx%eKwl|zo-%*lgAUGp08B`? zFc+sH_y1CL+6d;f;07M~zkb$Tmbnw&=7H#ztTrK?sBW_dVE>s==qNy!A7^kCe#q0T z;IC?1$a1vE<*_XC_Qqg*qumffm}=~Wlr70Je<)6ucs_xgp4nWK_DUnqE1%#FG6L4} zNLBoZj=kr`Z0rB3&SNVY-M%ofjwr>$1meJYN*}Fm*@&Nn#Z>YTR_G3g) zuh7B4O^1J>Hv%)G@MCvq`2THz3l+$mcXa)p0i>t`ATk4JK-Yb35h#|Vc%0AgZJytm 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 { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + Discord + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-docker.tsx b/shadcn-admin/src/assets/brand-icons/icon-docker.tsx new file mode 100644 index 0000000..176ae3f --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-docker.tsx @@ -0,0 +1,33 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconDocker({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + Docker + + + + + + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-facebook.tsx b/shadcn-admin/src/assets/brand-icons/icon-facebook.tsx new file mode 100644 index 0000000..edb1c47 --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-facebook.tsx @@ -0,0 +1,25 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconFacebook({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + Facebook + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-figma.tsx b/shadcn-admin/src/assets/brand-icons/icon-figma.tsx new file mode 100644 index 0000000..9e73cd3 --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-figma.tsx @@ -0,0 +1,27 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconFigma({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + Figma + + + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-github.tsx b/shadcn-admin/src/assets/brand-icons/icon-github.tsx new file mode 100644 index 0000000..b478aa8 --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-github.tsx @@ -0,0 +1,25 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconGithub({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + GitHub + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-gitlab.tsx b/shadcn-admin/src/assets/brand-icons/icon-gitlab.tsx new file mode 100644 index 0000000..6d5aa2f --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-gitlab.tsx @@ -0,0 +1,25 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconGitlab({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + GitLab + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-gmail.tsx b/shadcn-admin/src/assets/brand-icons/icon-gmail.tsx new file mode 100644 index 0000000..e9e2f3a --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-gmail.tsx @@ -0,0 +1,28 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconGmail({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + Gmail + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-medium.tsx b/shadcn-admin/src/assets/brand-icons/icon-medium.tsx new file mode 100644 index 0000000..815223e --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-medium.tsx @@ -0,0 +1,30 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconMedium({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + Medium + + + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-notion.tsx b/shadcn-admin/src/assets/brand-icons/icon-notion.tsx new file mode 100644 index 0000000..a6867bb --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-notion.tsx @@ -0,0 +1,28 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconNotion({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + Notion + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-skype.tsx b/shadcn-admin/src/assets/brand-icons/icon-skype.tsx new file mode 100644 index 0000000..272180e --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-skype.tsx @@ -0,0 +1,26 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconSkype({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + Skype + + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-slack.tsx b/shadcn-admin/src/assets/brand-icons/icon-slack.tsx new file mode 100644 index 0000000..022b5fe --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-slack.tsx @@ -0,0 +1,28 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconSlack({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + Slack + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-stripe.tsx b/shadcn-admin/src/assets/brand-icons/icon-stripe.tsx new file mode 100644 index 0000000..8e009ef --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-stripe.tsx @@ -0,0 +1,25 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconStripe({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + Stripe + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-telegram.tsx b/shadcn-admin/src/assets/brand-icons/icon-telegram.tsx new file mode 100644 index 0000000..1143fc7 --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-telegram.tsx @@ -0,0 +1,25 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconTelegram({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + Telegram + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-trello.tsx b/shadcn-admin/src/assets/brand-icons/icon-trello.tsx new file mode 100644 index 0000000..8bcefa6 --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-trello.tsx @@ -0,0 +1,27 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconTrello({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + Trello + + + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-whatsapp.tsx b/shadcn-admin/src/assets/brand-icons/icon-whatsapp.tsx new file mode 100644 index 0000000..32ac7d2 --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-whatsapp.tsx @@ -0,0 +1,26 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconWhatsapp({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + WhatsApp + + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/icon-zoom.tsx b/shadcn-admin/src/assets/brand-icons/icon-zoom.tsx new file mode 100644 index 0000000..0116466 --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/icon-zoom.tsx @@ -0,0 +1,26 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconZoom({ className, ...props }: SVGProps) { + return ( + path]:stroke-current', className)} + fill='none' + stroke='currentColor' + strokeWidth='2' + strokeLinecap='round' + strokeLinejoin='round' + {...props} + > + Zoom + + + + + ) +} diff --git a/shadcn-admin/src/assets/brand-icons/index.ts b/shadcn-admin/src/assets/brand-icons/index.ts new file mode 100644 index 0000000..530491c --- /dev/null +++ b/shadcn-admin/src/assets/brand-icons/index.ts @@ -0,0 +1,16 @@ +export { IconDiscord } from './icon-discord' +export { IconDocker } from './icon-docker' +export { IconFacebook } from './icon-facebook' +export { IconFigma } from './icon-figma' +export { IconGithub } from './icon-github' +export { IconGitlab } from './icon-gitlab' +export { IconGmail } from './icon-gmail' +export { IconMedium } from './icon-medium' +export { IconNotion } from './icon-notion' +export { IconSkype } from './icon-skype' +export { IconSlack } from './icon-slack' +export { IconStripe } from './icon-stripe' +export { IconTelegram } from './icon-telegram' +export { IconTrello } from './icon-trello' +export { IconWhatsapp } from './icon-whatsapp' +export { IconZoom } from './icon-zoom' diff --git a/shadcn-admin/src/assets/clerk-full-logo.tsx b/shadcn-admin/src/assets/clerk-full-logo.tsx new file mode 100644 index 0000000..9635f9e --- /dev/null +++ b/shadcn-admin/src/assets/clerk-full-logo.tsx @@ -0,0 +1,41 @@ +import { type SVGProps } from 'react' + +export function ClerkFullLogo(props: SVGProps) { + return ( + + + + + + + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/clerk-logo.tsx b/shadcn-admin/src/assets/clerk-logo.tsx new file mode 100644 index 0000000..efae313 --- /dev/null +++ b/shadcn-admin/src/assets/clerk-logo.tsx @@ -0,0 +1,23 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function ClerkLogo({ className, ...props }: SVGProps) { + return ( + path]:fill-foreground', className)} + {...props} + > + Clerk + + + ) +} diff --git a/shadcn-admin/src/assets/custom/icon-dir.tsx b/shadcn-admin/src/assets/custom/icon-dir.tsx new file mode 100644 index 0000000..af4ada1 --- /dev/null +++ b/shadcn-admin/src/assets/custom/icon-dir.tsx @@ -0,0 +1,110 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' +import { type Direction } from '@/context/direction-provider' + +type IconDirProps = SVGProps & { + dir: Direction +} + +export function IconDir({ dir, className, ...props }: IconDirProps) { + return ( + + + + + + + + + + + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/custom/icon-layout-compact.tsx b/shadcn-admin/src/assets/custom/icon-layout-compact.tsx new file mode 100644 index 0000000..5bcaa7b --- /dev/null +++ b/shadcn-admin/src/assets/custom/icon-layout-compact.tsx @@ -0,0 +1,131 @@ +import { type SVGProps } from 'react' + +export function IconLayoutCompact(props: SVGProps) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/custom/icon-layout-default.tsx b/shadcn-admin/src/assets/custom/icon-layout-default.tsx new file mode 100644 index 0000000..57722c6 --- /dev/null +++ b/shadcn-admin/src/assets/custom/icon-layout-default.tsx @@ -0,0 +1,124 @@ +import { type SVGProps } from 'react' + +export function IconLayoutDefault(props: SVGProps) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/custom/icon-layout-full.tsx b/shadcn-admin/src/assets/custom/icon-layout-full.tsx new file mode 100644 index 0000000..cdb5313 --- /dev/null +++ b/shadcn-admin/src/assets/custom/icon-layout-full.tsx @@ -0,0 +1,100 @@ +import { type SVGProps } from 'react' + +export function IconLayoutFull(props: SVGProps) { + return ( + + + + + + + + + + + + + + + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/custom/icon-sidebar-floating.tsx b/shadcn-admin/src/assets/custom/icon-sidebar-floating.tsx new file mode 100644 index 0000000..2bfe4a6 --- /dev/null +++ b/shadcn-admin/src/assets/custom/icon-sidebar-floating.tsx @@ -0,0 +1,82 @@ +import { type SVGProps } from 'react' + +export function IconSidebarFloating(props: SVGProps) { + return ( + + + + + + + + + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/custom/icon-sidebar-inset.tsx b/shadcn-admin/src/assets/custom/icon-sidebar-inset.tsx new file mode 100644 index 0000000..695b7b7 --- /dev/null +++ b/shadcn-admin/src/assets/custom/icon-sidebar-inset.tsx @@ -0,0 +1,58 @@ +import { type SVGProps } from 'react' + +export function IconSidebarInset(props: SVGProps) { + return ( + + + + + + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/custom/icon-sidebar-sidebar.tsx b/shadcn-admin/src/assets/custom/icon-sidebar-sidebar.tsx new file mode 100644 index 0000000..b049d7c --- /dev/null +++ b/shadcn-admin/src/assets/custom/icon-sidebar-sidebar.tsx @@ -0,0 +1,53 @@ +import { type SVGProps } from 'react' + +export function IconSidebarSidebar(props: SVGProps) { + return ( + + + + + + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/custom/icon-theme-dark.tsx b/shadcn-admin/src/assets/custom/icon-theme-dark.tsx new file mode 100644 index 0000000..b9ea2eb --- /dev/null +++ b/shadcn-admin/src/assets/custom/icon-theme-dark.tsx @@ -0,0 +1,79 @@ +import { type SVGProps } from 'react' + +export function IconThemeDark(props: SVGProps) { + return ( + + + + + + + + + + + + + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/custom/icon-theme-light.tsx b/shadcn-admin/src/assets/custom/icon-theme-light.tsx new file mode 100644 index 0000000..7e9c50d --- /dev/null +++ b/shadcn-admin/src/assets/custom/icon-theme-light.tsx @@ -0,0 +1,78 @@ +import { type SVGProps } from 'react' + +export function IconThemeLight(props: SVGProps) { + return ( + + + + + + + + + + + + + + + + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/custom/icon-theme-system.tsx b/shadcn-admin/src/assets/custom/icon-theme-system.tsx new file mode 100644 index 0000000..6c678ba --- /dev/null +++ b/shadcn-admin/src/assets/custom/icon-theme-system.tsx @@ -0,0 +1,116 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function IconThemeSystem({ + className, + ...props +}: SVGProps) { + return ( + + + + + + + + + + + + + + + + + + ) +} diff --git a/shadcn-admin/src/assets/logo.tsx b/shadcn-admin/src/assets/logo.tsx new file mode 100644 index 0000000..7571f44 --- /dev/null +++ b/shadcn-admin/src/assets/logo.tsx @@ -0,0 +1,24 @@ +import { type SVGProps } from 'react' +import { cn } from '@/lib/utils' + +export function Logo({ className, ...props }: SVGProps) { + return ( + + ) +} diff --git a/shadcn-admin/src/components/coming-soon.tsx b/shadcn-admin/src/components/coming-soon.tsx new file mode 100644 index 0000000..f8955c8 --- /dev/null +++ b/shadcn-admin/src/components/coming-soon.tsx @@ -0,0 +1,16 @@ +import { Telescope } from 'lucide-react' + +export function ComingSoon() { + return ( +
+
+ +

Coming Soon!

+

+ This page has not been created yet.
+ Stay tuned though! +

+
+
+ ) +} diff --git a/shadcn-admin/src/components/command-menu.tsx b/shadcn-admin/src/components/command-menu.tsx new file mode 100644 index 0000000..223b04d --- /dev/null +++ b/shadcn-admin/src/components/command-menu.tsx @@ -0,0 +1,91 @@ +import React from 'react' +import { useNavigate } from '@tanstack/react-router' +import { ArrowRight, ChevronRight, Laptop, Moon, Sun } from 'lucide-react' +import { useSearch } from '@/context/search-provider' +import { useTheme } from '@/context/theme-provider' +import { + CommandDialog, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, + CommandSeparator, +} from '@/components/ui/command' +import { sidebarData } from './layout/data/sidebar-data' +import { ScrollArea } from './ui/scroll-area' + +export function CommandMenu() { + const navigate = useNavigate() + const { setTheme } = useTheme() + const { open, setOpen } = useSearch() + + const runCommand = React.useCallback( + (command: () => unknown) => { + setOpen(false) + command() + }, + [setOpen] + ) + + return ( + + + + + No results found. + {sidebarData.navGroups.map((group) => ( + + {group.items.map((navItem, i) => { + if (navItem.url) + return ( + { + runCommand(() => navigate({ to: navItem.url })) + }} + > +
+ +
+ {navItem.title} +
+ ) + + return navItem.items?.map((subItem, i) => ( + { + runCommand(() => navigate({ to: subItem.url })) + }} + > +
+ +
+ {navItem.title} {subItem.title} +
+ )) + })} +
+ ))} + + + runCommand(() => setTheme('light'))}> + Light + + runCommand(() => setTheme('dark'))}> + + Dark + + runCommand(() => setTheme('system'))}> + + System + + +
+
+
+ ) +} diff --git a/shadcn-admin/src/components/config-drawer.tsx b/shadcn-admin/src/components/config-drawer.tsx new file mode 100644 index 0000000..4532e32 --- /dev/null +++ b/shadcn-admin/src/components/config-drawer.tsx @@ -0,0 +1,354 @@ +import { type SVGProps } from 'react' +import { Root as Radio, Item } from '@radix-ui/react-radio-group' +import { CircleCheck, RotateCcw, Settings } from 'lucide-react' +import { IconDir } from '@/assets/custom/icon-dir' +import { IconLayoutCompact } from '@/assets/custom/icon-layout-compact' +import { IconLayoutDefault } from '@/assets/custom/icon-layout-default' +import { IconLayoutFull } from '@/assets/custom/icon-layout-full' +import { IconSidebarFloating } from '@/assets/custom/icon-sidebar-floating' +import { IconSidebarInset } from '@/assets/custom/icon-sidebar-inset' +import { IconSidebarSidebar } from '@/assets/custom/icon-sidebar-sidebar' +import { IconThemeDark } from '@/assets/custom/icon-theme-dark' +import { IconThemeLight } from '@/assets/custom/icon-theme-light' +import { IconThemeSystem } from '@/assets/custom/icon-theme-system' +import { cn } from '@/lib/utils' +import { useDirection } from '@/context/direction-provider' +import { type Collapsible, useLayout } from '@/context/layout-provider' +import { useTheme } from '@/context/theme-provider' +import { Button } from '@/components/ui/button' +import { + Sheet, + SheetContent, + SheetDescription, + SheetFooter, + SheetHeader, + SheetTitle, + SheetTrigger, +} from '@/components/ui/sheet' +import { useSidebar } from './ui/sidebar' + +export function ConfigDrawer() { + const { setOpen } = useSidebar() + const { resetDir } = useDirection() + const { resetTheme } = useTheme() + const { resetLayout } = useLayout() + + const handleReset = () => { + setOpen(true) + resetDir() + resetTheme() + resetLayout() + } + + return ( + + + + + + + Theme Settings + + Adjust the appearance and layout to suit your preferences. + + +
+ + + + +
+ + + +
+
+ ) +} + +function SectionTitle({ + title, + showReset = false, + onReset, + className, +}: { + title: string + showReset?: boolean + onReset?: () => void + className?: string +}) { + return ( +
+ {title} + {showReset && onReset && ( + + )} +
+ ) +} + +function RadioGroupItem({ + item, + isTheme = false, +}: { + item: { + value: string + label: string + icon: (props: SVGProps) => React.ReactElement + } + isTheme?: boolean +}) { + return ( + +
+
+
+ {item.label} +
+
+ ) +} + +function ThemeConfig() { + const { defaultTheme, theme, setTheme } = useTheme() + return ( +
+ setTheme(defaultTheme)} + /> + + {[ + { + value: 'system', + label: 'System', + icon: IconThemeSystem, + }, + { + value: 'light', + label: 'Light', + icon: IconThemeLight, + }, + { + value: 'dark', + label: 'Dark', + icon: IconThemeDark, + }, + ].map((item) => ( + + ))} + +
+ Choose between system preference, light mode, or dark mode +
+
+ ) +} + +function SidebarConfig() { + const { defaultVariant, variant, setVariant } = useLayout() + return ( +
+ setVariant(defaultVariant)} + /> + + {[ + { + value: 'inset', + label: 'Inset', + icon: IconSidebarInset, + }, + { + value: 'floating', + label: 'Floating', + icon: IconSidebarFloating, + }, + { + value: 'sidebar', + label: 'Sidebar', + icon: IconSidebarSidebar, + }, + ].map((item) => ( + + ))} + + +
+ ) +} + +function LayoutConfig() { + const { open, setOpen } = useSidebar() + const { defaultCollapsible, collapsible, setCollapsible } = useLayout() + + const radioState = open ? 'default' : collapsible + + return ( +
+ { + setOpen(true) + setCollapsible(defaultCollapsible) + }} + /> + { + if (v === 'default') { + setOpen(true) + return + } + setOpen(false) + setCollapsible(v as Collapsible) + }} + className='grid w-full max-w-md grid-cols-3 gap-4' + aria-label='Select layout style' + aria-describedby='layout-description' + > + {[ + { + value: 'default', + label: 'Default', + icon: IconLayoutDefault, + }, + { + value: 'icon', + label: 'Compact', + icon: IconLayoutCompact, + }, + { + value: 'offcanvas', + label: 'Full layout', + icon: IconLayoutFull, + }, + ].map((item) => ( + + ))} + +
+ Choose between default expanded, compact icon-only, or full layout mode +
+
+ ) +} + +function DirConfig() { + const { defaultDir, dir, setDir } = useDirection() + return ( +
+ setDir(defaultDir)} + /> + + {[ + { + value: 'ltr', + label: 'Left to Right', + icon: (props: SVGProps) => ( + + ), + }, + { + value: 'rtl', + label: 'Right to Left', + icon: (props: SVGProps) => ( + + ), + }, + ].map((item) => ( + + ))} + +
+ Choose between left-to-right or right-to-left site direction +
+
+ ) +} diff --git a/shadcn-admin/src/components/confirm-dialog.tsx b/shadcn-admin/src/components/confirm-dialog.tsx new file mode 100644 index 0000000..2db6b25 --- /dev/null +++ b/shadcn-admin/src/components/confirm-dialog.tsx @@ -0,0 +1,67 @@ +import { cn } from '@/lib/utils' +import { + AlertDialog, + AlertDialogCancel, + AlertDialogContent, + AlertDialogDescription, + AlertDialogFooter, + AlertDialogHeader, + AlertDialogTitle, +} from '@/components/ui/alert-dialog' +import { Button } from '@/components/ui/button' + +type ConfirmDialogProps = { + open: boolean + onOpenChange: (open: boolean) => void + title: React.ReactNode + disabled?: boolean + desc: React.JSX.Element | string + cancelBtnText?: string + confirmText?: React.ReactNode + destructive?: boolean + handleConfirm: () => void + isLoading?: boolean + className?: string + children?: React.ReactNode +} + +export function ConfirmDialog(props: ConfirmDialogProps) { + const { + title, + desc, + children, + className, + confirmText, + cancelBtnText, + destructive, + isLoading, + disabled = false, + handleConfirm, + ...actions + } = props + return ( + + + + {title} + +
{desc}
+
+
+ {children} + + + {cancelBtnText ?? 'Cancel'} + + + +
+
+ ) +} diff --git a/shadcn-admin/src/components/data-table/bulk-actions.tsx b/shadcn-admin/src/components/data-table/bulk-actions.tsx new file mode 100644 index 0000000..ebdeb05 --- /dev/null +++ b/shadcn-admin/src/components/data-table/bulk-actions.tsx @@ -0,0 +1,213 @@ +import { useState, useEffect, useRef } from 'react' +import { type Table } from '@tanstack/react-table' +import { X } from 'lucide-react' +import { cn } from '@/lib/utils' +import { Badge } from '@/components/ui/badge' +import { Button } from '@/components/ui/button' +import { Separator } from '@/components/ui/separator' +import { + Tooltip, + TooltipContent, + TooltipTrigger, +} from '@/components/ui/tooltip' + +type DataTableBulkActionsProps = { + table: Table + entityName: string + children: React.ReactNode +} + +/** + * A modular toolbar for displaying bulk actions when table rows are selected. + * + * @template TData The type of data in the table. + * @param {object} props The component props. + * @param {Table} props.table The react-table instance. + * @param {string} props.entityName The name of the entity being acted upon (e.g., "task", "user"). + * @param {React.ReactNode} props.children The action buttons to be rendered inside the toolbar. + * @returns {React.ReactNode | null} The rendered component or null if no rows are selected. + */ +export function DataTableBulkActions({ + table, + entityName, + children, +}: DataTableBulkActionsProps): React.ReactNode | null { + const selectedRows = table.getFilteredSelectedRowModel().rows + const selectedCount = selectedRows.length + const toolbarRef = useRef(null) + const [announcement, setAnnouncement] = useState('') + + // Announce selection changes to screen readers + useEffect(() => { + if (selectedCount > 0) { + const message = `${selectedCount} ${entityName}${selectedCount > 1 ? 's' : ''} selected. Bulk actions toolbar is available.` + + // Use queueMicrotask to defer state update and avoid cascading renders + queueMicrotask(() => { + setAnnouncement(message) + }) + + // Clear announcement after a delay + const timer = setTimeout(() => setAnnouncement(''), 3000) + return () => clearTimeout(timer) + } + }, [selectedCount, entityName]) + + const handleClearSelection = () => { + table.resetRowSelection() + } + + const handleKeyDown = (event: React.KeyboardEvent) => { + const buttons = toolbarRef.current?.querySelectorAll('button') + if (!buttons) return + + const currentIndex = Array.from(buttons).findIndex( + (button) => button === document.activeElement + ) + + switch (event.key) { + case 'ArrowRight': { + event.preventDefault() + const nextIndex = (currentIndex + 1) % buttons.length + buttons[nextIndex]?.focus() + break + } + case 'ArrowLeft': { + event.preventDefault() + const prevIndex = + currentIndex === 0 ? buttons.length - 1 : currentIndex - 1 + buttons[prevIndex]?.focus() + break + } + case 'Home': + event.preventDefault() + buttons[0]?.focus() + break + case 'End': + event.preventDefault() + buttons[buttons.length - 1]?.focus() + break + case 'Escape': { + // Check if the Escape key came from a dropdown trigger or content + // We can't check dropdown state because Radix UI closes it before our handler runs + const target = event.target as HTMLElement + const activeElement = document.activeElement as HTMLElement + + // Check if the event target or currently focused element is a dropdown trigger + const isFromDropdownTrigger = + target?.getAttribute('data-slot') === 'dropdown-menu-trigger' || + activeElement?.getAttribute('data-slot') === + 'dropdown-menu-trigger' || + target?.closest('[data-slot="dropdown-menu-trigger"]') || + activeElement?.closest('[data-slot="dropdown-menu-trigger"]') + + // Check if the focused element is inside dropdown content (which is portaled) + const isFromDropdownContent = + activeElement?.closest('[data-slot="dropdown-menu-content"]') || + target?.closest('[data-slot="dropdown-menu-content"]') + + if (isFromDropdownTrigger || isFromDropdownContent) { + // Escape was meant for the dropdown - don't clear selection + return + } + + // Escape was meant for the toolbar - clear selection + event.preventDefault() + handleClearSelection() + break + } + } + } + + if (selectedCount === 0) { + return null + } + + return ( + <> + {/* Live region for screen reader announcements */} +
+ {announcement} +
+ +
1 ? 's' : ''}`} + aria-describedby='bulk-actions-description' + tabIndex={-1} + onKeyDown={handleKeyDown} + className={cn( + 'fixed bottom-6 left-1/2 z-50 -translate-x-1/2 rounded-xl', + 'transition-all delay-100 duration-300 ease-out hover:scale-105', + 'focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:outline-none' + )} + > +
+ + + + + +

Clear selection (Escape)

+
+
+ +
+
+ + ) +} diff --git a/shadcn-admin/src/components/data-table/column-header.tsx b/shadcn-admin/src/components/data-table/column-header.tsx new file mode 100644 index 0000000..180037a --- /dev/null +++ b/shadcn-admin/src/components/data-table/column-header.tsx @@ -0,0 +1,74 @@ +import { + ArrowDownIcon, + ArrowUpIcon, + CaretSortIcon, + EyeNoneIcon, +} from '@radix-ui/react-icons' +import { type Column } from '@tanstack/react-table' +import { cn } from '@/lib/utils' +import { Button } from '@/components/ui/button' +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from '@/components/ui/dropdown-menu' + +type DataTableColumnHeaderProps = + React.HTMLAttributes & { + column: Column + title: string + } + +export function DataTableColumnHeader({ + column, + title, + className, +}: DataTableColumnHeaderProps) { + if (!column.getCanSort()) { + return
{title}
+ } + + return ( +
+ + + + + + column.toggleSorting(false)}> + + Asc + + column.toggleSorting(true)}> + + Desc + + {column.getCanHide() && ( + <> + + column.toggleVisibility(false)}> + + Hide + + + )} + + +
+ ) +} diff --git a/shadcn-admin/src/components/data-table/faceted-filter.tsx b/shadcn-admin/src/components/data-table/faceted-filter.tsx new file mode 100644 index 0000000..eff125c --- /dev/null +++ b/shadcn-admin/src/components/data-table/faceted-filter.tsx @@ -0,0 +1,146 @@ +import * as React from 'react' +import { CheckIcon, PlusCircledIcon } from '@radix-ui/react-icons' +import { type Column } from '@tanstack/react-table' +import { cn } from '@/lib/utils' +import { Badge } from '@/components/ui/badge' +import { Button } from '@/components/ui/button' +import { + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, + CommandSeparator, +} from '@/components/ui/command' +import { + Popover, + PopoverContent, + PopoverTrigger, +} from '@/components/ui/popover' +import { Separator } from '@/components/ui/separator' + +type DataTableFacetedFilterProps = { + column?: Column + title?: string + options: { + label: string + value: string + icon?: React.ComponentType<{ className?: string }> + }[] +} + +export function DataTableFacetedFilter({ + column, + title, + options, +}: DataTableFacetedFilterProps) { + const facets = column?.getFacetedUniqueValues() + const selectedValues = new Set(column?.getFilterValue() as string[]) + + return ( + + + + + + + + + No results found. + + {options.map((option) => { + const isSelected = selectedValues.has(option.value) + return ( + { + if (isSelected) { + selectedValues.delete(option.value) + } else { + selectedValues.add(option.value) + } + const filterValues = Array.from(selectedValues) + column?.setFilterValue( + filterValues.length ? filterValues : undefined + ) + }} + > +
+ +
+ {option.icon && ( + + )} + {option.label} + {facets?.get(option.value) && ( + + {facets.get(option.value)} + + )} +
+ ) + })} +
+ {selectedValues.size > 0 && ( + <> + + + column?.setFilterValue(undefined)} + className='justify-center text-center' + > + Clear filters + + + + )} +
+
+
+
+ ) +} diff --git a/shadcn-admin/src/components/data-table/index.ts b/shadcn-admin/src/components/data-table/index.ts new file mode 100644 index 0000000..59df9f9 --- /dev/null +++ b/shadcn-admin/src/components/data-table/index.ts @@ -0,0 +1,6 @@ +export { DataTablePagination } from './pagination' +export { DataTableColumnHeader } from './column-header' +export { DataTableFacetedFilter } from './faceted-filter' +export { DataTableViewOptions } from './view-options' +export { DataTableToolbar } from './toolbar' +export { DataTableBulkActions } from './bulk-actions' diff --git a/shadcn-admin/src/components/data-table/pagination.tsx b/shadcn-admin/src/components/data-table/pagination.tsx new file mode 100644 index 0000000..f9bcd81 --- /dev/null +++ b/shadcn-admin/src/components/data-table/pagination.tsx @@ -0,0 +1,130 @@ +import { + ChevronLeftIcon, + ChevronRightIcon, + DoubleArrowLeftIcon, + DoubleArrowRightIcon, +} from '@radix-ui/react-icons' +import { type Table } from '@tanstack/react-table' +import { cn, getPageNumbers } from '@/lib/utils' +import { Button } from '@/components/ui/button' +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select' + +type DataTablePaginationProps = { + table: Table + className?: string +} + +export function DataTablePagination({ + table, + className, +}: DataTablePaginationProps) { + const currentPage = table.getState().pagination.pageIndex + 1 + const totalPages = table.getPageCount() + const pageNumbers = getPageNumbers(currentPage, totalPages) + + return ( +
+
+
+ Page {currentPage} of {totalPages} +
+
+ +

Rows per page

+
+
+ +
+
+ Page {currentPage} of {totalPages} +
+
+ + + + {/* Page number buttons */} + {pageNumbers.map((pageNumber, index) => ( +
+ {pageNumber === '...' ? ( + ... + ) : ( + + )} +
+ ))} + + + +
+
+
+ ) +} diff --git a/shadcn-admin/src/components/data-table/toolbar.tsx b/shadcn-admin/src/components/data-table/toolbar.tsx new file mode 100644 index 0000000..473e6b0 --- /dev/null +++ b/shadcn-admin/src/components/data-table/toolbar.tsx @@ -0,0 +1,85 @@ +import { Cross2Icon } from '@radix-ui/react-icons' +import { type Table } from '@tanstack/react-table' +import { Button } from '@/components/ui/button' +import { Input } from '@/components/ui/input' +import { DataTableFacetedFilter } from './faceted-filter' +import { DataTableViewOptions } from './view-options' + +type DataTableToolbarProps = { + table: Table + searchPlaceholder?: string + searchKey?: string + filters?: { + columnId: string + title: string + options: { + label: string + value: string + icon?: React.ComponentType<{ className?: string }> + }[] + }[] +} + +export function DataTableToolbar({ + table, + searchPlaceholder = 'Filter...', + searchKey, + filters = [], +}: DataTableToolbarProps) { + const isFiltered = + table.getState().columnFilters.length > 0 || table.getState().globalFilter + + return ( +
+
+ {searchKey ? ( + + table.getColumn(searchKey)?.setFilterValue(event.target.value) + } + className='h-8 w-[150px] lg:w-[250px]' + /> + ) : ( + table.setGlobalFilter(event.target.value)} + className='h-8 w-[150px] lg:w-[250px]' + /> + )} +
+ {filters.map((filter) => { + const column = table.getColumn(filter.columnId) + if (!column) return null + return ( + + ) + })} +
+ {isFiltered && ( + + )} +
+ +
+ ) +} diff --git a/shadcn-admin/src/components/data-table/view-options.tsx b/shadcn-admin/src/components/data-table/view-options.tsx new file mode 100644 index 0000000..f972624 --- /dev/null +++ b/shadcn-admin/src/components/data-table/view-options.tsx @@ -0,0 +1,56 @@ +import { DropdownMenuTrigger } from '@radix-ui/react-dropdown-menu' +import { MixerHorizontalIcon } from '@radix-ui/react-icons' +import { type Table } from '@tanstack/react-table' +import { Button } from '@/components/ui/button' +import { + DropdownMenu, + DropdownMenuCheckboxItem, + DropdownMenuContent, + DropdownMenuLabel, + DropdownMenuSeparator, +} from '@/components/ui/dropdown-menu' + +type DataTableViewOptionsProps = { + table: Table +} + +export function DataTableViewOptions({ + table, +}: DataTableViewOptionsProps) { + return ( + + + + + + Toggle columns + + {table + .getAllColumns() + .filter( + (column) => + typeof column.accessorFn !== 'undefined' && column.getCanHide() + ) + .map((column) => { + return ( + column.toggleVisibility(!!value)} + > + {column.id} + + ) + })} + + + ) +} diff --git a/shadcn-admin/src/components/date-picker.tsx b/shadcn-admin/src/components/date-picker.tsx new file mode 100644 index 0000000..a917be5 --- /dev/null +++ b/shadcn-admin/src/components/date-picker.tsx @@ -0,0 +1,51 @@ +import { format } from 'date-fns' +import { Calendar as CalendarIcon } from 'lucide-react' +import { Button } from '@/components/ui/button' +import { Calendar } from '@/components/ui/calendar' +import { + Popover, + PopoverContent, + PopoverTrigger, +} from '@/components/ui/popover' + +type DatePickerProps = { + selected: Date | undefined + onSelect: (date: Date | undefined) => void + placeholder?: string +} + +export function DatePicker({ + selected, + onSelect, + placeholder = 'Pick a date', +}: DatePickerProps) { + return ( + + + + + + + date > new Date() || date < new Date('1900-01-01') + } + /> + + + ) +} diff --git a/shadcn-admin/src/components/layout/app-sidebar.tsx b/shadcn-admin/src/components/layout/app-sidebar.tsx new file mode 100644 index 0000000..32d9443 --- /dev/null +++ b/shadcn-admin/src/components/layout/app-sidebar.tsx @@ -0,0 +1,37 @@ +import { useLayout } from '@/context/layout-provider' +import { + Sidebar, + SidebarContent, + SidebarFooter, + SidebarHeader, + SidebarRail, +} from '@/components/ui/sidebar' +// import { AppTitle } from './app-title' +import { sidebarData } from './data/sidebar-data' +import { NavGroup } from './nav-group' +import { NavUser } from './nav-user' +import { TeamSwitcher } from './team-switcher' + +export function AppSidebar() { + const { collapsible, variant } = useLayout() + return ( + + + + + {/* Replace with the following + /* if you want to use the normal app title instead of TeamSwitch dropdown */} + {/* */} + + + {sidebarData.navGroups.map((props) => ( + + ))} + + + + + + + ) +} diff --git a/shadcn-admin/src/components/layout/app-title.tsx b/shadcn-admin/src/components/layout/app-title.tsx new file mode 100644 index 0000000..112e463 --- /dev/null +++ b/shadcn-admin/src/components/layout/app-title.tsx @@ -0,0 +1,64 @@ +import { Link } from '@tanstack/react-router' +import { Menu, X } from 'lucide-react' +import { cn } from '@/lib/utils' +import { + SidebarMenu, + SidebarMenuButton, + SidebarMenuItem, + useSidebar, +} from '@/components/ui/sidebar' +import { Button } from '../ui/button' + +export function AppTitle() { + const { setOpenMobile } = useSidebar() + return ( + + + +
+ setOpenMobile(false)} + className='grid flex-1 text-start text-sm leading-tight' + > + Shadcn-Admin + Vite + ShadcnUI + + +
+
+
+
+ ) +} + +function ToggleSidebar({ + className, + onClick, + ...props +}: React.ComponentProps) { + const { toggleSidebar } = useSidebar() + + return ( + + ) +} diff --git a/shadcn-admin/src/components/layout/authenticated-layout.tsx b/shadcn-admin/src/components/layout/authenticated-layout.tsx new file mode 100644 index 0000000..003e6e2 --- /dev/null +++ b/shadcn-admin/src/components/layout/authenticated-layout.tsx @@ -0,0 +1,42 @@ +import { Outlet } from '@tanstack/react-router' +import { getCookie } from '@/lib/cookies' +import { cn } from '@/lib/utils' +import { LayoutProvider } from '@/context/layout-provider' +import { SearchProvider } from '@/context/search-provider' +import { SidebarInset, SidebarProvider } from '@/components/ui/sidebar' +import { AppSidebar } from '@/components/layout/app-sidebar' +import { SkipToMain } from '@/components/skip-to-main' + +type AuthenticatedLayoutProps = { + children?: React.ReactNode +} + +export function AuthenticatedLayout({ children }: AuthenticatedLayoutProps) { + const defaultOpen = getCookie('sidebar_state') !== 'false' + return ( + + + + + + + {children ?? } + + + + + ) +} diff --git a/shadcn-admin/src/components/layout/data/sidebar-data.ts b/shadcn-admin/src/components/layout/data/sidebar-data.ts new file mode 100644 index 0000000..738a130 --- /dev/null +++ b/shadcn-admin/src/components/layout/data/sidebar-data.ts @@ -0,0 +1,210 @@ +import { + Construction, + LayoutDashboard, + Monitor, + Bug, + ListTodo, + FileX, + HelpCircle, + Lock, + Bell, + Package, + Palette, + ServerOff, + Settings, + Wrench, + UserCog, + UserX, + Users, + MessagesSquare, + ShieldCheck, + AudioWaveform, + Command, + GalleryVerticalEnd, +} from 'lucide-react' +import { ClerkLogo } from '@/assets/clerk-logo' +import { type SidebarData } from '../types' + +export const sidebarData: SidebarData = { + user: { + name: 'satnaing', + email: 'satnaingdev@gmail.com', + avatar: '/avatars/shadcn.jpg', + }, + teams: [ + { + name: 'Shadcn Admin', + logo: Command, + plan: 'Vite + ShadcnUI', + }, + { + name: 'Acme Inc', + logo: GalleryVerticalEnd, + plan: 'Enterprise', + }, + { + name: 'Acme Corp.', + logo: AudioWaveform, + plan: 'Startup', + }, + ], + navGroups: [ + { + title: 'General', + items: [ + { + title: 'Dashboard', + url: '/', + icon: LayoutDashboard, + }, + { + title: 'Tasks', + url: '/tasks', + icon: ListTodo, + }, + { + title: 'Characters', + url: '/characters', + icon: Users, + }, + { + title: 'Apps', + url: '/apps', + icon: Package, + }, + { + title: 'Chats', + url: '/chats', + badge: '3', + icon: MessagesSquare, + }, + { + title: 'Users', + url: '/users', + icon: Users, + }, + { + title: 'Secured by Clerk', + icon: ClerkLogo, + items: [ + { + title: 'Sign In', + url: '/clerk/sign-in', + }, + { + title: 'Sign Up', + url: '/clerk/sign-up', + }, + { + title: 'User Management', + url: '/clerk/user-management', + }, + ], + }, + ], + }, + { + title: 'Pages', + items: [ + { + title: 'Auth', + icon: ShieldCheck, + items: [ + { + title: 'Sign In', + url: '/sign-in', + }, + { + title: 'Sign In (2 Col)', + url: '/sign-in-2', + }, + { + title: 'Sign Up', + url: '/sign-up', + }, + { + title: 'Forgot Password', + url: '/forgot-password', + }, + { + title: 'OTP', + url: '/otp', + }, + ], + }, + { + title: 'Errors', + icon: Bug, + items: [ + { + title: 'Unauthorized', + url: '/errors/unauthorized', + icon: Lock, + }, + { + title: 'Forbidden', + url: '/errors/forbidden', + icon: UserX, + }, + { + title: 'Not Found', + url: '/errors/not-found', + icon: FileX, + }, + { + title: 'Internal Server Error', + url: '/errors/internal-server-error', + icon: ServerOff, + }, + { + title: 'Maintenance Error', + url: '/errors/maintenance-error', + icon: Construction, + }, + ], + }, + ], + }, + { + title: 'Other', + items: [ + { + title: 'Settings', + icon: Settings, + items: [ + { + title: 'Profile', + url: '/settings', + icon: UserCog, + }, + { + title: 'Account', + url: '/settings/account', + icon: Wrench, + }, + { + title: 'Appearance', + url: '/settings/appearance', + icon: Palette, + }, + { + title: 'Notifications', + url: '/settings/notifications', + icon: Bell, + }, + { + title: 'Display', + url: '/settings/display', + icon: Monitor, + }, + ], + }, + { + title: 'Help Center', + url: '/help-center', + icon: HelpCircle, + }, + ], + }, + ], +} diff --git a/shadcn-admin/src/components/layout/header.tsx b/shadcn-admin/src/components/layout/header.tsx new file mode 100644 index 0000000..4c07798 --- /dev/null +++ b/shadcn-admin/src/components/layout/header.tsx @@ -0,0 +1,50 @@ +import { useEffect, useState } from 'react' +import { cn } from '@/lib/utils' +import { Separator } from '@/components/ui/separator' +import { SidebarTrigger } from '@/components/ui/sidebar' + +type HeaderProps = React.HTMLAttributes & { + fixed?: boolean + ref?: React.Ref +} + +export function Header({ className, fixed, children, ...props }: HeaderProps) { + const [offset, setOffset] = useState(0) + + useEffect(() => { + const onScroll = () => { + setOffset(document.body.scrollTop || document.documentElement.scrollTop) + } + + // Add scroll listener to the body + document.addEventListener('scroll', onScroll, { passive: true }) + + // Clean up the event listener on unmount + return () => document.removeEventListener('scroll', onScroll) + }, []) + + return ( +
10 && fixed ? 'shadow' : 'shadow-none', + className + )} + {...props} + > +
10 && + fixed && + 'after:absolute after:inset-0 after:-z-10 after:bg-background/20 after:backdrop-blur-lg' + )} + > + + + {children} +
+
+ ) +} diff --git a/shadcn-admin/src/components/layout/main.tsx b/shadcn-admin/src/components/layout/main.tsx new file mode 100644 index 0000000..b3d6d0a --- /dev/null +++ b/shadcn-admin/src/components/layout/main.tsx @@ -0,0 +1,27 @@ +import { cn } from '@/lib/utils' + +type MainProps = React.HTMLAttributes & { + fixed?: boolean + fluid?: boolean + ref?: React.Ref +} + +export function Main({ fixed, className, fluid, ...props }: MainProps) { + return ( +
+ ) +} diff --git a/shadcn-admin/src/components/layout/nav-group.tsx b/shadcn-admin/src/components/layout/nav-group.tsx new file mode 100644 index 0000000..3a0b73c --- /dev/null +++ b/shadcn-admin/src/components/layout/nav-group.tsx @@ -0,0 +1,185 @@ +import { type ReactNode } from 'react' +import { Link, useLocation } from '@tanstack/react-router' +import { ChevronRight } from 'lucide-react' +import { + Collapsible, + CollapsibleContent, + CollapsibleTrigger, +} from '@/components/ui/collapsible' +import { + SidebarGroup, + SidebarGroupLabel, + SidebarMenu, + SidebarMenuButton, + SidebarMenuItem, + SidebarMenuSub, + SidebarMenuSubButton, + SidebarMenuSubItem, + useSidebar, +} from '@/components/ui/sidebar' +import { Badge } from '../ui/badge' +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from '../ui/dropdown-menu' +import { + type NavCollapsible, + type NavItem, + type NavLink, + type NavGroup as NavGroupProps, +} from './types' + +export function NavGroup({ title, items }: NavGroupProps) { + const { state, isMobile } = useSidebar() + const href = useLocation({ select: (location) => location.href }) + return ( + + {title} + + {items.map((item) => { + const key = `${item.title}-${item.url}` + + if (!item.items) + return + + if (state === 'collapsed' && !isMobile) + return ( + + ) + + return + })} + + + ) +} + +function NavBadge({ children }: { children: ReactNode }) { + return {children} +} + +function SidebarMenuLink({ item, href }: { item: NavLink; href: string }) { + const { setOpenMobile } = useSidebar() + return ( + + + setOpenMobile(false)}> + {item.icon && } + {item.title} + {item.badge && {item.badge}} + + + + ) +} + +function SidebarMenuCollapsible({ + item, + href, +}: { + item: NavCollapsible + href: string +}) { + const { setOpenMobile } = useSidebar() + return ( + + + + + {item.icon && } + {item.title} + {item.badge && {item.badge}} + + + + + + {item.items.map((subItem) => ( + + + setOpenMobile(false)}> + {subItem.icon && } + {subItem.title} + {subItem.badge && {subItem.badge}} + + + + ))} + + + + + ) +} + +function SidebarMenuCollapsedDropdown({ + item, + href, +}: { + item: NavCollapsible + href: string +}) { + return ( + + + + + {item.icon && } + {item.title} + {item.badge && {item.badge}} + + + + + + {item.title} {item.badge ? `(${item.badge})` : ''} + + + {item.items.map((sub) => ( + + + {sub.icon && } + {sub.title} + {sub.badge && ( + {sub.badge} + )} + + + ))} + + + + ) +} + +function checkIsActive(href: string, item: NavItem, mainNav = false) { + return ( + href === item.url || // /endpint?search=param + href.split('?')[0] === item.url || // endpoint + !!item?.items?.filter((i) => i.url === href).length || // if child nav is active + (mainNav && + href.split('/')[1] !== '' && + href.split('/')[1] === item?.url?.split('/')[1]) + ) +} diff --git a/shadcn-admin/src/components/layout/nav-user.tsx b/shadcn-admin/src/components/layout/nav-user.tsx new file mode 100644 index 0000000..daa75da --- /dev/null +++ b/shadcn-admin/src/components/layout/nav-user.tsx @@ -0,0 +1,124 @@ +import { Link } from '@tanstack/react-router' +import { + BadgeCheck, + Bell, + ChevronsUpDown, + CreditCard, + LogOut, + Sparkles, +} from 'lucide-react' +import useDialogState from '@/hooks/use-dialog-state' +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuGroup, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from '@/components/ui/dropdown-menu' +import { + SidebarMenu, + SidebarMenuButton, + SidebarMenuItem, + useSidebar, +} from '@/components/ui/sidebar' +import { SignOutDialog } from '@/components/sign-out-dialog' + +type NavUserProps = { + user: { + name: string + email: string + avatar: string + } +} + +export function NavUser({ user }: NavUserProps) { + const { isMobile } = useSidebar() + const [open, setOpen] = useDialogState() + + return ( + <> + + + + + + + + SN + +
+ {user.name} + {user.email} +
+ +
+
+ + +
+ + + SN + +
+ {user.name} + {user.email} +
+
+
+ + + + + Upgrade to Pro + + + + + + + + Account + + + + + + Billing + + + + + + Notifications + + + + + setOpen(true)} + > + + Sign out + +
+
+
+
+ + + + ) +} diff --git a/shadcn-admin/src/components/layout/team-switcher.tsx b/shadcn-admin/src/components/layout/team-switcher.tsx new file mode 100644 index 0000000..95ce82c --- /dev/null +++ b/shadcn-admin/src/components/layout/team-switcher.tsx @@ -0,0 +1,86 @@ +import * as React from 'react' +import { ChevronsUpDown, Plus } from 'lucide-react' +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuTrigger, +} from '@/components/ui/dropdown-menu' +import { + SidebarMenu, + SidebarMenuButton, + SidebarMenuItem, + useSidebar, +} from '@/components/ui/sidebar' + +type TeamSwitcherProps = { + teams: { + name: string + logo: React.ElementType + plan: string + }[] +} + +export function TeamSwitcher({ teams }: TeamSwitcherProps) { + const { isMobile } = useSidebar() + const [activeTeam, setActiveTeam] = React.useState(teams[0]) + + return ( + + + + + +
+ +
+
+ + {activeTeam.name} + + {activeTeam.plan} +
+ +
+
+ + + Teams + + {teams.map((team, index) => ( + setActiveTeam(team)} + className='gap-2 p-2' + > +
+ +
+ {team.name} + ⌘{index + 1} +
+ ))} + + +
+ +
+
Add team
+
+
+
+
+
+ ) +} diff --git a/shadcn-admin/src/components/layout/top-nav.tsx b/shadcn-admin/src/components/layout/top-nav.tsx new file mode 100644 index 0000000..2e6fb82 --- /dev/null +++ b/shadcn-admin/src/components/layout/top-nav.tsx @@ -0,0 +1,67 @@ +import { Link } from '@tanstack/react-router' +import { Menu } from 'lucide-react' +import { cn } from '@/lib/utils' +import { Button } from '@/components/ui/button' +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from '@/components/ui/dropdown-menu' + +type TopNavProps = React.HTMLAttributes & { + links: { + title: string + href: string + isActive: boolean + disabled?: boolean + }[] +} + +export function TopNav({ className, links, ...props }: TopNavProps) { + return ( + <> +
+ + + + + + {links.map(({ title, href, isActive, disabled }) => ( + + + {title} + + + ))} + + +
+ + + + ) +} diff --git a/shadcn-admin/src/components/layout/types.ts b/shadcn-admin/src/components/layout/types.ts new file mode 100644 index 0000000..df34573 --- /dev/null +++ b/shadcn-admin/src/components/layout/types.ts @@ -0,0 +1,44 @@ +import { type LinkProps } from '@tanstack/react-router' + +type User = { + name: string + email: string + avatar: string +} + +type Team = { + name: string + logo: React.ElementType + plan: string +} + +type BaseNavItem = { + title: string + badge?: string + icon?: React.ElementType +} + +type NavLink = BaseNavItem & { + url: LinkProps['to'] | (string & {}) + items?: never +} + +type NavCollapsible = BaseNavItem & { + items: (BaseNavItem & { url: LinkProps['to'] | (string & {}) })[] + url?: never +} + +type NavItem = NavCollapsible | NavLink + +type NavGroup = { + title: string + items: NavItem[] +} + +type SidebarData = { + user: User + teams: Team[] + navGroups: NavGroup[] +} + +export type { SidebarData, NavGroup, NavItem, NavCollapsible, NavLink } diff --git a/shadcn-admin/src/components/learn-more.tsx b/shadcn-admin/src/components/learn-more.tsx new file mode 100644 index 0000000..54e2785 --- /dev/null +++ b/shadcn-admin/src/components/learn-more.tsx @@ -0,0 +1,44 @@ +import { type Root, type Content, type Trigger } from '@radix-ui/react-popover' +import { CircleQuestionMark } from 'lucide-react' +import { cn } from '@/lib/utils' +import { Button } from '@/components/ui/button' +import { + Popover, + PopoverContent, + PopoverTrigger, +} from '@/components/ui/popover' + +type LearnMoreProps = React.ComponentProps & { + contentProps?: React.ComponentProps + triggerProps?: React.ComponentProps +} + +export function LearnMore({ + children, + contentProps, + triggerProps, + ...props +}: LearnMoreProps) { + return ( + + + + + + {children} + + + ) +} diff --git a/shadcn-admin/src/components/long-text.tsx b/shadcn-admin/src/components/long-text.tsx new file mode 100644 index 0000000..74bf47d --- /dev/null +++ b/shadcn-admin/src/components/long-text.tsx @@ -0,0 +1,84 @@ +import { useRef, useState } from 'react' +import { cn } from '@/lib/utils' +import { + Popover, + PopoverContent, + PopoverTrigger, +} from '@/components/ui/popover' +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from '@/components/ui/tooltip' + +type LongTextProps = { + children: React.ReactNode + className?: string + contentClassName?: string +} + +export function LongText({ + children, + className = '', + contentClassName = '', +}: LongTextProps) { + const ref = useRef(null) + const [isOverflown, setIsOverflown] = useState(false) + + // Use ref callback to check overflow when element is mounted + const refCallback = (node: HTMLDivElement | null) => { + ref.current = node + if (node && checkOverflow(node)) { + queueMicrotask(() => setIsOverflown(true)) + } + } + + if (!isOverflown) + return ( +
+ {children} +
+ ) + + return ( + <> +
+ + + +
+ {children} +
+
+ +

{children}

+
+
+
+
+
+ + +
+ {children} +
+
+ +

{children}

+
+
+
+ + ) +} + +const checkOverflow = (textContainer: HTMLDivElement | null) => { + if (textContainer) { + return ( + textContainer.offsetHeight < textContainer.scrollHeight || + textContainer.offsetWidth < textContainer.scrollWidth + ) + } + return false +} diff --git a/shadcn-admin/src/components/navigation-progress.tsx b/shadcn-admin/src/components/navigation-progress.tsx new file mode 100644 index 0000000..e233820 --- /dev/null +++ b/shadcn-admin/src/components/navigation-progress.tsx @@ -0,0 +1,25 @@ +import { useEffect, useRef } from 'react' +import { useRouterState } from '@tanstack/react-router' +import LoadingBar, { type LoadingBarRef } from 'react-top-loading-bar' + +export function NavigationProgress() { + const ref = useRef(null) + const state = useRouterState() + + useEffect(() => { + if (state.status === 'pending') { + ref.current?.continuousStart() + } else { + ref.current?.complete() + } + }, [state.status]) + + return ( + + ) +} diff --git a/shadcn-admin/src/components/password-input.tsx b/shadcn-admin/src/components/password-input.tsx new file mode 100644 index 0000000..dafd1bf --- /dev/null +++ b/shadcn-admin/src/components/password-input.tsx @@ -0,0 +1,42 @@ +import * as React from 'react' +import { Eye, EyeOff } from 'lucide-react' +import { cn } from '@/lib/utils' +import { Button } from './ui/button' + +type PasswordInputProps = Omit< + React.InputHTMLAttributes, + 'type' +> & { + ref?: React.Ref +} + +export function PasswordInput({ + className, + disabled, + ref, + ...props +}: PasswordInputProps) { + const [showPassword, setShowPassword] = React.useState(false) + + return ( +
+ + +
+ ) +} diff --git a/shadcn-admin/src/components/profile-dropdown.tsx b/shadcn-admin/src/components/profile-dropdown.tsx new file mode 100644 index 0000000..8d8cb87 --- /dev/null +++ b/shadcn-admin/src/components/profile-dropdown.tsx @@ -0,0 +1,75 @@ +import { Link } from '@tanstack/react-router' +import useDialogState from '@/hooks/use-dialog-state' +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' +import { Button } from '@/components/ui/button' +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuGroup, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuTrigger, +} from '@/components/ui/dropdown-menu' +import { SignOutDialog } from '@/components/sign-out-dialog' + +export function ProfileDropdown() { + const [open, setOpen] = useDialogState() + + return ( + <> + + + + + + +
+

satnaing

+

+ satnaingdev@gmail.com +

+
+
+ + + + + Profile + ⇧⌘P + + + + + Billing + ⌘B + + + + + Settings + ⌘S + + + New Team + + + setOpen(true)}> + Sign out + + ⇧⌘Q + + +
+
+ + + + ) +} diff --git a/shadcn-admin/src/components/search.tsx b/shadcn-admin/src/components/search.tsx new file mode 100644 index 0000000..3539340 --- /dev/null +++ b/shadcn-admin/src/components/search.tsx @@ -0,0 +1,37 @@ +import { SearchIcon } from 'lucide-react' +import { cn } from '@/lib/utils' +import { useSearch } from '@/context/search-provider' +import { Button } from './ui/button' + +type SearchProps = { + className?: string + type?: React.HTMLInputTypeAttribute + placeholder?: string +} + +export function Search({ + className = '', + placeholder = 'Search', +}: SearchProps) { + const { setOpen } = useSearch() + return ( + + ) +} diff --git a/shadcn-admin/src/components/select-dropdown.tsx b/shadcn-admin/src/components/select-dropdown.tsx new file mode 100644 index 0000000..2bba569 --- /dev/null +++ b/shadcn-admin/src/components/select-dropdown.tsx @@ -0,0 +1,62 @@ +import { Loader } from 'lucide-react' +import { cn } from '@/lib/utils' +import { FormControl } from '@/components/ui/form' +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select' + +type SelectDropdownProps = { + onValueChange?: (value: string) => void + defaultValue: string | undefined + placeholder?: string + isPending?: boolean + items: { label: string; value: string }[] | undefined + disabled?: boolean + className?: string + isControlled?: boolean +} + +export function SelectDropdown({ + defaultValue, + onValueChange, + isPending, + items, + placeholder, + disabled, + className = '', + isControlled = false, +}: SelectDropdownProps) { + const defaultState = isControlled + ? { value: defaultValue, onValueChange } + : { defaultValue, onValueChange } + return ( + + ) +} diff --git a/shadcn-admin/src/components/sign-out-dialog.tsx b/shadcn-admin/src/components/sign-out-dialog.tsx new file mode 100644 index 0000000..c4eb368 --- /dev/null +++ b/shadcn-admin/src/components/sign-out-dialog.tsx @@ -0,0 +1,38 @@ +import { useNavigate, useLocation } from '@tanstack/react-router' +import { useAuthStore } from '@/stores/auth-store' +import { ConfirmDialog } from '@/components/confirm-dialog' + +interface SignOutDialogProps { + open: boolean + onOpenChange: (open: boolean) => void +} + +export function SignOutDialog({ open, onOpenChange }: SignOutDialogProps) { + const navigate = useNavigate() + const location = useLocation() + const { auth } = useAuthStore() + + const handleSignOut = () => { + auth.reset() + // Preserve current location for redirect after sign-in + const currentPath = location.href + navigate({ + to: '/sign-in', + search: { redirect: currentPath }, + replace: true, + }) + } + + return ( + + ) +} diff --git a/shadcn-admin/src/components/skip-to-main.tsx b/shadcn-admin/src/components/skip-to-main.tsx new file mode 100644 index 0000000..48a8d54 --- /dev/null +++ b/shadcn-admin/src/components/skip-to-main.tsx @@ -0,0 +1,10 @@ +export function SkipToMain() { + return ( +
+ Skip to Main + + ) +} diff --git a/shadcn-admin/src/components/theme-switch.tsx b/shadcn-admin/src/components/theme-switch.tsx new file mode 100644 index 0000000..16137bc --- /dev/null +++ b/shadcn-admin/src/components/theme-switch.tsx @@ -0,0 +1,58 @@ +import { useEffect } from 'react' +import { Check, Moon, Sun } from 'lucide-react' +import { cn } from '@/lib/utils' +import { useTheme } from '@/context/theme-provider' +import { Button } from '@/components/ui/button' +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from '@/components/ui/dropdown-menu' + +export function ThemeSwitch() { + const { theme, setTheme } = useTheme() + + /* Update theme-color meta tag + * when theme is updated */ + useEffect(() => { + const themeColor = theme === 'dark' ? '#020817' : '#fff' + const metaThemeColor = document.querySelector("meta[name='theme-color']") + if (metaThemeColor) metaThemeColor.setAttribute('content', themeColor) + }, [theme]) + + return ( + + + + + + setTheme('light')}> + Light{' '} + + + setTheme('dark')}> + Dark + + + setTheme('system')}> + System + + + + + ) +} diff --git a/shadcn-admin/src/components/ui/alert-dialog.tsx b/shadcn-admin/src/components/ui/alert-dialog.tsx new file mode 100644 index 0000000..184fa90 --- /dev/null +++ b/shadcn-admin/src/components/ui/alert-dialog.tsx @@ -0,0 +1,154 @@ +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' + +function AlertDialog({ + ...props +}: React.ComponentProps) { + return +} + +function AlertDialogTrigger({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function AlertDialogPortal({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function AlertDialogOverlay({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function AlertDialogContent({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + + ) +} + +function AlertDialogHeader({ + className, + ...props +}: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function AlertDialogFooter({ + className, + ...props +}: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function AlertDialogTitle({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function AlertDialogDescription({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function AlertDialogAction({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function AlertDialogCancel({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +export { + AlertDialog, + AlertDialogPortal, + AlertDialogOverlay, + AlertDialogTrigger, + AlertDialogContent, + AlertDialogHeader, + AlertDialogFooter, + AlertDialogTitle, + AlertDialogDescription, + AlertDialogAction, + AlertDialogCancel, +} diff --git a/shadcn-admin/src/components/ui/alert.tsx b/shadcn-admin/src/components/ui/alert.tsx new file mode 100644 index 0000000..debcdf6 --- /dev/null +++ b/shadcn-admin/src/components/ui/alert.tsx @@ -0,0 +1,65 @@ +import * as React from 'react' +import { cva, type VariantProps } from 'class-variance-authority' +import { cn } from '@/lib/utils' + +const alertVariants = cva( + 'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current', + { + variants: { + variant: { + default: 'bg-card text-card-foreground', + destructive: + 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90', + }, + }, + defaultVariants: { + variant: 'default', + }, + } +) + +function Alert({ + className, + variant, + ...props +}: React.ComponentProps<'div'> & VariantProps) { + return ( +
+ ) +} + +function AlertTitle({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function AlertDescription({ + className, + ...props +}: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +export { Alert, AlertTitle, AlertDescription } diff --git a/shadcn-admin/src/components/ui/avatar.tsx b/shadcn-admin/src/components/ui/avatar.tsx new file mode 100644 index 0000000..b2a343e --- /dev/null +++ b/shadcn-admin/src/components/ui/avatar.tsx @@ -0,0 +1,50 @@ +import * as React from 'react' +import * as AvatarPrimitive from '@radix-ui/react-avatar' +import { cn } from '@/lib/utils' + +function Avatar({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function AvatarImage({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function AvatarFallback({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +export { Avatar, AvatarImage, AvatarFallback } diff --git a/shadcn-admin/src/components/ui/badge.tsx b/shadcn-admin/src/components/ui/badge.tsx new file mode 100644 index 0000000..26769c3 --- /dev/null +++ b/shadcn-admin/src/components/ui/badge.tsx @@ -0,0 +1,45 @@ +import * as React from 'react' +import { Slot } from '@radix-ui/react-slot' +import { cva, type VariantProps } from 'class-variance-authority' +import { cn } from '@/lib/utils' + +const badgeVariants = cva( + 'inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden', + { + variants: { + variant: { + default: + 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90', + secondary: + 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90', + destructive: + 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60', + outline: + 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground', + }, + }, + defaultVariants: { + variant: 'default', + }, + } +) + +function Badge({ + className, + variant, + asChild = false, + ...props +}: React.ComponentProps<'span'> & + VariantProps & { asChild?: boolean }) { + const Comp = asChild ? Slot : 'span' + + return ( + + ) +} + +export { Badge, badgeVariants } diff --git a/shadcn-admin/src/components/ui/button.tsx b/shadcn-admin/src/components/ui/button.tsx new file mode 100644 index 0000000..27b86ed --- /dev/null +++ b/shadcn-admin/src/components/ui/button.tsx @@ -0,0 +1,58 @@ +import * as React from 'react' +import { Slot } from '@radix-ui/react-slot' +import { cva, type VariantProps } from 'class-variance-authority' +import { cn } from '@/lib/utils' + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", + { + variants: { + variant: { + default: + 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90', + destructive: + 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60', + outline: + 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50', + secondary: + 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80', + ghost: + 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50', + link: 'text-primary underline-offset-4 hover:underline', + }, + size: { + default: 'h-9 px-4 py-2 has-[>svg]:px-3', + sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5', + lg: 'h-10 rounded-md px-6 has-[>svg]:px-4', + icon: 'size-9', + }, + }, + defaultVariants: { + variant: 'default', + size: 'default', + }, + } +) + +function Button({ + className, + variant, + size, + asChild = false, + ...props +}: React.ComponentProps<'button'> & + VariantProps & { + asChild?: boolean + }) { + const Comp = asChild ? Slot : 'button' + + return ( + + ) +} + +export { Button, buttonVariants } diff --git a/shadcn-admin/src/components/ui/calendar.tsx b/shadcn-admin/src/components/ui/calendar.tsx new file mode 100644 index 0000000..39bc4af --- /dev/null +++ b/shadcn-admin/src/components/ui/calendar.tsx @@ -0,0 +1,210 @@ +import * as React from 'react' +import { + ChevronDownIcon, + ChevronLeftIcon, + ChevronRightIcon, +} from 'lucide-react' +import { DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker' +import { cn } from '@/lib/utils' +import { Button, buttonVariants } from '@/components/ui/button' + +function Calendar({ + className, + classNames, + showOutsideDays = true, + captionLayout = 'label', + buttonVariant = 'ghost', + formatters, + components, + ...props +}: React.ComponentProps & { + buttonVariant?: React.ComponentProps['variant'] +}) { + const defaultClassNames = getDefaultClassNames() + + return ( + svg]:rotate-180`, + String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`, + className + )} + captionLayout={captionLayout} + formatters={{ + formatMonthDropdown: (date) => + date.toLocaleString('default', { month: 'short' }), + ...formatters, + }} + classNames={{ + root: cn('w-fit', defaultClassNames.root), + months: cn( + 'flex gap-4 flex-col md:flex-row relative', + defaultClassNames.months + ), + month: cn('flex flex-col w-full gap-4', defaultClassNames.month), + nav: cn( + 'flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between', + defaultClassNames.nav + ), + button_previous: cn( + buttonVariants({ variant: buttonVariant }), + 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none', + defaultClassNames.button_previous + ), + button_next: cn( + buttonVariants({ variant: buttonVariant }), + 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none', + defaultClassNames.button_next + ), + month_caption: cn( + 'flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)', + defaultClassNames.month_caption + ), + dropdowns: cn( + 'w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5', + defaultClassNames.dropdowns + ), + dropdown_root: cn( + 'relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md', + defaultClassNames.dropdown_root + ), + dropdown: cn( + 'absolute bg-popover inset-0 opacity-0', + defaultClassNames.dropdown + ), + caption_label: cn( + 'select-none font-medium', + captionLayout === 'label' + ? 'text-sm' + : 'rounded-md ps-2 pe-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5', + defaultClassNames.caption_label + ), + table: 'w-full border-collapse', + weekdays: cn('flex', defaultClassNames.weekdays), + weekday: cn( + 'text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none', + defaultClassNames.weekday + ), + week: cn('flex w-full mt-2', defaultClassNames.week), + week_number_header: cn( + 'select-none w-(--cell-size)', + defaultClassNames.week_number_header + ), + week_number: cn( + 'text-[0.8rem] select-none text-muted-foreground', + defaultClassNames.week_number + ), + day: cn( + 'relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none', + defaultClassNames.day + ), + range_start: cn( + 'rounded-l-md bg-accent', + defaultClassNames.range_start + ), + range_middle: cn('rounded-none', defaultClassNames.range_middle), + range_end: cn('rounded-r-md bg-accent', defaultClassNames.range_end), + today: cn( + 'bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none', + defaultClassNames.today + ), + outside: cn( + 'text-muted-foreground aria-selected:text-muted-foreground', + defaultClassNames.outside + ), + disabled: cn( + 'text-muted-foreground opacity-50', + defaultClassNames.disabled + ), + hidden: cn('invisible', defaultClassNames.hidden), + ...classNames, + }} + components={{ + Root: ({ className, rootRef, ...props }) => { + return ( +
+ ) + }, + Chevron: ({ className, orientation, ...props }) => { + if (orientation === 'left') { + return ( + + ) + } + + if (orientation === 'right') { + return ( + + ) + } + + return ( + + ) + }, + DayButton: CalendarDayButton, + WeekNumber: ({ children, ...props }) => { + return ( + +
+ {children} +
+ + ) + }, + ...components, + }} + {...props} + /> + ) +} + +function CalendarDayButton({ + className, + day, + modifiers, + ...props +}: React.ComponentProps) { + const defaultClassNames = getDefaultClassNames() + + const ref = React.useRef(null) + React.useEffect(() => { + if (modifiers.focused) ref.current?.focus() + }, [modifiers.focused]) + + return ( + + ) +} + +function SidebarRail({ className, ...props }: React.ComponentProps<'button'>) { + const { toggleSidebar } = useSidebar() + + return ( +