From 1da66c1be51c47ba9df3462cfc5793c7d1706db2 Mon Sep 17 00:00:00 2001 From: Sicherhaven Date: Sat, 7 Mar 2026 11:55:18 +0530 Subject: [PATCH] feat: add Review Management module and UI layout fixes --- .gitignore | 24 + .lovable/plan.md | 216 + API_AND_DB_SPEC.md | 159 + MASTER_API_INVENTORY.md | 270 + README.md | 142 + bun.lockb | Bin 0 -> 248496 bytes components.json | 20 + eslint.config.js | 26 + index.html | 28 + nginx_admin_config | 27 + package-lock.json | 8347 +++++++++++++++++ package.json | 92 + postcss.config.js | 6 + prisma/schema.prisma | 217 + public/favicon.ico | Bin 0 -> 22889 bytes public/favicon.png | Bin 0 -> 172939 bytes public/placeholder.svg | 1 + public/robots.txt | 14 + src/App.css | 42 + src/App.tsx | 141 + src/components/NavLink.tsx | 28 + src/components/auth/ProtectedRoute.tsx | 27 + src/components/dashboard/ActionItemsPanel.tsx | 86 + src/components/dashboard/ActivityFeed.tsx | 85 + .../dashboard/DashboardMetricCard.tsx | 64 + src/components/dashboard/RevenueChart.tsx | 76 + src/components/layout/AppLayout.tsx | 23 + src/components/layout/Sidebar.tsx | 98 + src/components/layout/TopBar.tsx | 93 + .../notifications/NotificationPopover.tsx | 273 + src/components/ui/PageLoader.tsx | 74 + src/components/ui/accordion.tsx | 52 + src/components/ui/alert-dialog.tsx | 104 + src/components/ui/alert.tsx | 43 + src/components/ui/aspect-ratio.tsx | 5 + src/components/ui/avatar.tsx | 38 + src/components/ui/badge.tsx | 29 + src/components/ui/breadcrumb.tsx | 90 + src/components/ui/button.tsx | 47 + src/components/ui/calendar.tsx | 54 + src/components/ui/card.tsx | 43 + src/components/ui/carousel.tsx | 224 + src/components/ui/chart.tsx | 303 + src/components/ui/checkbox.tsx | 26 + src/components/ui/collapsible.tsx | 9 + src/components/ui/command.tsx | 132 + src/components/ui/context-menu.tsx | 178 + src/components/ui/dialog.tsx | 95 + src/components/ui/drawer.tsx | 87 + src/components/ui/dropdown-menu.tsx | 179 + src/components/ui/form.tsx | 129 + src/components/ui/hover-card.tsx | 27 + src/components/ui/input-otp.tsx | 61 + src/components/ui/input.tsx | 22 + src/components/ui/label.tsx | 17 + src/components/ui/menubar.tsx | 207 + src/components/ui/navigation-menu.tsx | 120 + src/components/ui/pagination.tsx | 81 + src/components/ui/popover.tsx | 29 + src/components/ui/progress.tsx | 23 + src/components/ui/radio-group.tsx | 36 + src/components/ui/resizable.tsx | 37 + src/components/ui/scroll-area.tsx | 38 + src/components/ui/select.tsx | 143 + src/components/ui/separator.tsx | 20 + src/components/ui/sheet.tsx | 107 + src/components/ui/sidebar.tsx | 637 ++ src/components/ui/skeleton.tsx | 7 + src/components/ui/slider.tsx | 23 + src/components/ui/sonner.tsx | 27 + src/components/ui/switch.tsx | 27 + src/components/ui/table.tsx | 72 + src/components/ui/tabs.tsx | 53 + src/components/ui/textarea.tsx | 21 + src/components/ui/toast.tsx | 111 + src/components/ui/toaster.tsx | 24 + src/components/ui/toggle-group.tsx | 49 + src/components/ui/toggle.tsx | 37 + src/components/ui/tooltip.tsx | 28 + src/components/ui/use-toast.ts | 3 + src/contexts/AuthContext.tsx | 124 + src/data/mockData.ts | 216 + src/data/mockFinancialData.ts | 120 + src/data/mockPartnerData.ts | 310 + .../components/EventPickerModal.tsx | 167 + .../components/PlacementConfigDrawer.tsx | 282 + .../ad-control/components/PlacementList.tsx | 257 + .../ad-control/components/SurfaceTabs.tsx | 74 + .../sponsored/CampaignReportPage.tsx | 230 + .../components/sponsored/CampaignWizard.tsx | 426 + .../sponsored/SponsoredDashboard.tsx | 271 + src/features/ad-control/data/mockAdData.ts | 269 + src/features/ad-control/data/mockAdsData.ts | 193 + .../events/components/CreateEventSheet.tsx | 579 ++ .../financials/components/SettlementTable.tsx | 116 + .../components/TaxSettingsSheet.tsx | 172 + .../components/TransactionDetailsSheet.tsx | 93 + .../financials/components/TransactionList.tsx | 114 + src/features/partners/PartnerDirectory.tsx | 303 + src/features/partners/PartnerProfile.tsx | 397 + .../partners/components/AddPartnerSheet.tsx | 221 + .../components/EventApprovalQueue.tsx | 279 + .../components/ImpersonationDialog.tsx | 122 + .../partners/components/KYCReviewSheet.tsx | 150 + .../partners/components/KYCVaultPanel.tsx | 223 + .../partners/components/PartnerBadges.tsx | 35 + .../partners/components/PartnerCard.tsx | 111 + .../partners/components/PartnerFilters.tsx | 35 + .../reviews/components/DeleteReviewDialog.tsx | 98 + .../reviews/components/LiveReviewsTable.tsx | 147 + .../components/PendingReviewsTable.tsx | 138 + .../reviews/components/RejectReviewDialog.tsx | 98 + .../reviews/components/ReviewDrawer.tsx | 169 + .../reviews/components/ReviewEmptyState.tsx | 29 + .../reviews/components/ReviewMetricsBar.tsx | 74 + .../reviews/components/StarRating.tsx | 48 + src/features/reviews/data/mockReviewData.ts | 419 + .../settings/components/DeveloperSection.tsx | 106 + .../components/GatewayConfigSheet.tsx | 219 + .../components/OrganizationProfileCard.tsx | 91 + .../components/PaymentGatewayCard.tsx | 132 + .../settings/components/PayoutBankingCard.tsx | 63 + .../settings/components/SettingsLayout.tsx | 169 + .../settings/components/TeamSecurityCard.tsx | 65 + .../dialogs/CreateDepartmentDialog.tsx | 115 + .../components/dialogs/CreateSquadDialog.tsx | 125 + .../components/dialogs/InviteStaffDialog.tsx | 111 + .../components/tabs/OrganizationSettings.tsx | 158 + .../components/tabs/PartnerGovernance.tsx | 173 + .../components/tabs/PaymentConfig.tsx | 196 + .../components/tabs/PublicAppConfig.tsx | 193 + .../components/tabs/StaffDirectory.tsx | 203 + .../settings/components/tabs/SystemHealth.tsx | 244 + .../settings/components/tabs/TeamTreeView.tsx | 190 + .../users/components/ActionButtons.tsx | 204 + src/features/users/components/BanModal.tsx | 218 + .../users/components/BulkActionBar.tsx | 146 + .../users/components/BulkActionsDropdown.tsx | 297 + .../users/components/CreateUserDialog.tsx | 477 + .../users/components/DeleteConfirmDialog.tsx | 151 + .../users/components/InternalTeamTab.tsx | 107 + .../users/components/NotificationComposer.tsx | 365 + .../users/components/PartnerAdminTab.tsx | 116 + src/features/users/components/RoleMatrix.tsx | 97 + .../users/components/SuspensionModal.tsx | 215 + src/features/users/components/UserBaseTab.tsx | 194 + src/features/users/components/UserCard.tsx | 135 + .../users/components/UserDetailSheet.tsx | 179 + src/features/users/components/UserFilters.tsx | 382 + .../users/components/UserInspectorSheet.tsx | 289 + .../users/components/UserMetricsBar.tsx | 101 + src/features/users/components/UsersTable.tsx | 459 + .../components/dialogs/BulkSuspendDialog.tsx | 164 + .../components/dialogs/BulkTagDialog.tsx | 162 + .../components/dialogs/EscalationForm.tsx | 265 + .../components/dialogs/ModerationDialog.tsx | 222 + .../dialogs/NotificationComposer.tsx | 276 + .../dialogs/OrdersExportPopover.tsx | 134 + .../components/dialogs/ReceiptViewer.tsx | 134 + .../users/components/shared/AdminNote.tsx | 76 + .../users/components/tabs/AuditTab.tsx | 101 + .../users/components/tabs/BookingsTab.tsx | 224 + .../users/components/tabs/OverviewTab.tsx | 224 + .../users/components/tabs/SecurityTab.tsx | 145 + .../users/components/tabs/SupportTab.tsx | 186 + src/features/users/data/mockRbacData.ts | 178 + src/features/users/data/mockUserCrmData.ts | 713 ++ src/hooks/use-mobile.tsx | 19 + src/hooks/use-toast.ts | 186 + src/index.css | 165 + src/lib/actions/ad-control.ts | 280 + src/lib/actions/ads.ts | 388 + src/lib/actions/bulk-users.ts | 240 + src/lib/actions/partner-governance.ts | 287 + src/lib/actions/payment-settings.ts | 79 + src/lib/actions/settings.ts | 95 + src/lib/actions/staff-management.ts | 178 + src/lib/actions/support.ts | 80 + src/lib/actions/user-management.ts | 245 + src/lib/actions/user-tabs.ts | 163 + src/lib/actions/userActions.ts | 220 + src/lib/ads/serving.ts | 115 + src/lib/ads/tracking.ts | 194 + src/lib/api/public-ads.ts | 175 + src/lib/audit-logger.ts | 26 + src/lib/audit/placement-audit.ts | 50 + src/lib/auth/permissions.ts | 83 + src/lib/payment-encryption.ts | 33 + src/lib/types/ad-control.ts | 110 + src/lib/types/ads.ts | 129 + src/lib/types/settings.ts | 173 + src/lib/types/staff.ts | 203 + src/lib/types/user.ts | 367 + src/lib/utils.ts | 6 + src/lib/validations/support.ts | 67 + src/lib/validations/user.ts | 274 + src/main.tsx | 10 + src/pages/AdControl.tsx | 256 + src/pages/CampaignReport.tsx | 13 + src/pages/Dashboard.tsx | 79 + src/pages/Events.tsx | 292 + src/pages/Financials.tsx | 136 + src/pages/Index.tsx | 14 + src/pages/Login.tsx | 109 + src/pages/NewCampaign.tsx | 13 + src/pages/NotFound.tsx | 24 + src/pages/Partners.tsx | 129 + src/pages/Reviews.tsx | 238 + src/pages/Settings.tsx | 10 + src/pages/SponsoredAds.tsx | 13 + src/pages/Users.tsx | 444 + src/services/auth.ts | 165 + src/services/partnerApi.ts | 207 + src/services/userAppApi.ts | 220 + src/test/example.test.ts | 7 + src/test/setup.ts | 15 + src/types/dashboard.ts | 68 + src/types/partner.ts | 149 + src/types/review.ts | 28 + src/vite-env.d.ts | 1 + tailwind.config.ts | 124 + tsconfig.app.json | 31 + tsconfig.json | 16 + tsconfig.node.json | 22 + vite.config.ts | 30 + vitest.config.ts | 16 + 226 files changed, 39160 insertions(+) create mode 100644 .gitignore create mode 100644 .lovable/plan.md create mode 100644 API_AND_DB_SPEC.md create mode 100644 MASTER_API_INVENTORY.md create mode 100644 README.md create mode 100755 bun.lockb create mode 100644 components.json create mode 100644 eslint.config.js create mode 100644 index.html create mode 100644 nginx_admin_config create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 prisma/schema.prisma create mode 100644 public/favicon.ico create mode 100644 public/favicon.png create mode 100644 public/placeholder.svg create mode 100644 public/robots.txt create mode 100644 src/App.css create mode 100644 src/App.tsx create mode 100644 src/components/NavLink.tsx create mode 100644 src/components/auth/ProtectedRoute.tsx create mode 100644 src/components/dashboard/ActionItemsPanel.tsx create mode 100644 src/components/dashboard/ActivityFeed.tsx create mode 100644 src/components/dashboard/DashboardMetricCard.tsx create mode 100644 src/components/dashboard/RevenueChart.tsx create mode 100644 src/components/layout/AppLayout.tsx create mode 100644 src/components/layout/Sidebar.tsx create mode 100644 src/components/layout/TopBar.tsx create mode 100644 src/components/notifications/NotificationPopover.tsx create mode 100644 src/components/ui/PageLoader.tsx create mode 100644 src/components/ui/accordion.tsx create mode 100644 src/components/ui/alert-dialog.tsx create mode 100644 src/components/ui/alert.tsx create mode 100644 src/components/ui/aspect-ratio.tsx create mode 100644 src/components/ui/avatar.tsx create mode 100644 src/components/ui/badge.tsx create mode 100644 src/components/ui/breadcrumb.tsx create mode 100644 src/components/ui/button.tsx create mode 100644 src/components/ui/calendar.tsx create mode 100644 src/components/ui/card.tsx create mode 100644 src/components/ui/carousel.tsx create mode 100644 src/components/ui/chart.tsx create mode 100644 src/components/ui/checkbox.tsx create mode 100644 src/components/ui/collapsible.tsx create mode 100644 src/components/ui/command.tsx create mode 100644 src/components/ui/context-menu.tsx create mode 100644 src/components/ui/dialog.tsx create mode 100644 src/components/ui/drawer.tsx create mode 100644 src/components/ui/dropdown-menu.tsx create mode 100644 src/components/ui/form.tsx create mode 100644 src/components/ui/hover-card.tsx create mode 100644 src/components/ui/input-otp.tsx create mode 100644 src/components/ui/input.tsx create mode 100644 src/components/ui/label.tsx create mode 100644 src/components/ui/menubar.tsx create mode 100644 src/components/ui/navigation-menu.tsx create mode 100644 src/components/ui/pagination.tsx create mode 100644 src/components/ui/popover.tsx create mode 100644 src/components/ui/progress.tsx create mode 100644 src/components/ui/radio-group.tsx create mode 100644 src/components/ui/resizable.tsx create mode 100644 src/components/ui/scroll-area.tsx create mode 100644 src/components/ui/select.tsx create mode 100644 src/components/ui/separator.tsx create mode 100644 src/components/ui/sheet.tsx create mode 100644 src/components/ui/sidebar.tsx create mode 100644 src/components/ui/skeleton.tsx create mode 100644 src/components/ui/slider.tsx create mode 100644 src/components/ui/sonner.tsx create mode 100644 src/components/ui/switch.tsx create mode 100644 src/components/ui/table.tsx create mode 100644 src/components/ui/tabs.tsx create mode 100644 src/components/ui/textarea.tsx create mode 100644 src/components/ui/toast.tsx create mode 100644 src/components/ui/toaster.tsx create mode 100644 src/components/ui/toggle-group.tsx create mode 100644 src/components/ui/toggle.tsx create mode 100644 src/components/ui/tooltip.tsx create mode 100644 src/components/ui/use-toast.ts create mode 100644 src/contexts/AuthContext.tsx create mode 100644 src/data/mockData.ts create mode 100644 src/data/mockFinancialData.ts create mode 100644 src/data/mockPartnerData.ts create mode 100644 src/features/ad-control/components/EventPickerModal.tsx create mode 100644 src/features/ad-control/components/PlacementConfigDrawer.tsx create mode 100644 src/features/ad-control/components/PlacementList.tsx create mode 100644 src/features/ad-control/components/SurfaceTabs.tsx create mode 100644 src/features/ad-control/components/sponsored/CampaignReportPage.tsx create mode 100644 src/features/ad-control/components/sponsored/CampaignWizard.tsx create mode 100644 src/features/ad-control/components/sponsored/SponsoredDashboard.tsx create mode 100644 src/features/ad-control/data/mockAdData.ts create mode 100644 src/features/ad-control/data/mockAdsData.ts create mode 100644 src/features/events/components/CreateEventSheet.tsx create mode 100644 src/features/financials/components/SettlementTable.tsx create mode 100644 src/features/financials/components/TaxSettingsSheet.tsx create mode 100644 src/features/financials/components/TransactionDetailsSheet.tsx create mode 100644 src/features/financials/components/TransactionList.tsx create mode 100644 src/features/partners/PartnerDirectory.tsx create mode 100644 src/features/partners/PartnerProfile.tsx create mode 100644 src/features/partners/components/AddPartnerSheet.tsx create mode 100644 src/features/partners/components/EventApprovalQueue.tsx create mode 100644 src/features/partners/components/ImpersonationDialog.tsx create mode 100644 src/features/partners/components/KYCReviewSheet.tsx create mode 100644 src/features/partners/components/KYCVaultPanel.tsx create mode 100644 src/features/partners/components/PartnerBadges.tsx create mode 100644 src/features/partners/components/PartnerCard.tsx create mode 100644 src/features/partners/components/PartnerFilters.tsx create mode 100644 src/features/reviews/components/DeleteReviewDialog.tsx create mode 100644 src/features/reviews/components/LiveReviewsTable.tsx create mode 100644 src/features/reviews/components/PendingReviewsTable.tsx create mode 100644 src/features/reviews/components/RejectReviewDialog.tsx create mode 100644 src/features/reviews/components/ReviewDrawer.tsx create mode 100644 src/features/reviews/components/ReviewEmptyState.tsx create mode 100644 src/features/reviews/components/ReviewMetricsBar.tsx create mode 100644 src/features/reviews/components/StarRating.tsx create mode 100644 src/features/reviews/data/mockReviewData.ts create mode 100644 src/features/settings/components/DeveloperSection.tsx create mode 100644 src/features/settings/components/GatewayConfigSheet.tsx create mode 100644 src/features/settings/components/OrganizationProfileCard.tsx create mode 100644 src/features/settings/components/PaymentGatewayCard.tsx create mode 100644 src/features/settings/components/PayoutBankingCard.tsx create mode 100644 src/features/settings/components/SettingsLayout.tsx create mode 100644 src/features/settings/components/TeamSecurityCard.tsx create mode 100644 src/features/settings/components/dialogs/CreateDepartmentDialog.tsx create mode 100644 src/features/settings/components/dialogs/CreateSquadDialog.tsx create mode 100644 src/features/settings/components/dialogs/InviteStaffDialog.tsx create mode 100644 src/features/settings/components/tabs/OrganizationSettings.tsx create mode 100644 src/features/settings/components/tabs/PartnerGovernance.tsx create mode 100644 src/features/settings/components/tabs/PaymentConfig.tsx create mode 100644 src/features/settings/components/tabs/PublicAppConfig.tsx create mode 100644 src/features/settings/components/tabs/StaffDirectory.tsx create mode 100644 src/features/settings/components/tabs/SystemHealth.tsx create mode 100644 src/features/settings/components/tabs/TeamTreeView.tsx create mode 100644 src/features/users/components/ActionButtons.tsx create mode 100644 src/features/users/components/BanModal.tsx create mode 100644 src/features/users/components/BulkActionBar.tsx create mode 100644 src/features/users/components/BulkActionsDropdown.tsx create mode 100644 src/features/users/components/CreateUserDialog.tsx create mode 100644 src/features/users/components/DeleteConfirmDialog.tsx create mode 100644 src/features/users/components/InternalTeamTab.tsx create mode 100644 src/features/users/components/NotificationComposer.tsx create mode 100644 src/features/users/components/PartnerAdminTab.tsx create mode 100644 src/features/users/components/RoleMatrix.tsx create mode 100644 src/features/users/components/SuspensionModal.tsx create mode 100644 src/features/users/components/UserBaseTab.tsx create mode 100644 src/features/users/components/UserCard.tsx create mode 100644 src/features/users/components/UserDetailSheet.tsx create mode 100644 src/features/users/components/UserFilters.tsx create mode 100644 src/features/users/components/UserInspectorSheet.tsx create mode 100644 src/features/users/components/UserMetricsBar.tsx create mode 100644 src/features/users/components/UsersTable.tsx create mode 100644 src/features/users/components/dialogs/BulkSuspendDialog.tsx create mode 100644 src/features/users/components/dialogs/BulkTagDialog.tsx create mode 100644 src/features/users/components/dialogs/EscalationForm.tsx create mode 100644 src/features/users/components/dialogs/ModerationDialog.tsx create mode 100644 src/features/users/components/dialogs/NotificationComposer.tsx create mode 100644 src/features/users/components/dialogs/OrdersExportPopover.tsx create mode 100644 src/features/users/components/dialogs/ReceiptViewer.tsx create mode 100644 src/features/users/components/shared/AdminNote.tsx create mode 100644 src/features/users/components/tabs/AuditTab.tsx create mode 100644 src/features/users/components/tabs/BookingsTab.tsx create mode 100644 src/features/users/components/tabs/OverviewTab.tsx create mode 100644 src/features/users/components/tabs/SecurityTab.tsx create mode 100644 src/features/users/components/tabs/SupportTab.tsx create mode 100644 src/features/users/data/mockRbacData.ts create mode 100644 src/features/users/data/mockUserCrmData.ts create mode 100644 src/hooks/use-mobile.tsx create mode 100644 src/hooks/use-toast.ts create mode 100644 src/index.css create mode 100644 src/lib/actions/ad-control.ts create mode 100644 src/lib/actions/ads.ts create mode 100644 src/lib/actions/bulk-users.ts create mode 100644 src/lib/actions/partner-governance.ts create mode 100644 src/lib/actions/payment-settings.ts create mode 100644 src/lib/actions/settings.ts create mode 100644 src/lib/actions/staff-management.ts create mode 100644 src/lib/actions/support.ts create mode 100644 src/lib/actions/user-management.ts create mode 100644 src/lib/actions/user-tabs.ts create mode 100644 src/lib/actions/userActions.ts create mode 100644 src/lib/ads/serving.ts create mode 100644 src/lib/ads/tracking.ts create mode 100644 src/lib/api/public-ads.ts create mode 100644 src/lib/audit-logger.ts create mode 100644 src/lib/audit/placement-audit.ts create mode 100644 src/lib/auth/permissions.ts create mode 100644 src/lib/payment-encryption.ts create mode 100644 src/lib/types/ad-control.ts create mode 100644 src/lib/types/ads.ts create mode 100644 src/lib/types/settings.ts create mode 100644 src/lib/types/staff.ts create mode 100644 src/lib/types/user.ts create mode 100644 src/lib/utils.ts create mode 100644 src/lib/validations/support.ts create mode 100644 src/lib/validations/user.ts create mode 100644 src/main.tsx create mode 100644 src/pages/AdControl.tsx create mode 100644 src/pages/CampaignReport.tsx create mode 100644 src/pages/Dashboard.tsx create mode 100644 src/pages/Events.tsx create mode 100644 src/pages/Financials.tsx create mode 100644 src/pages/Index.tsx create mode 100644 src/pages/Login.tsx create mode 100644 src/pages/NewCampaign.tsx create mode 100644 src/pages/NotFound.tsx create mode 100644 src/pages/Partners.tsx create mode 100644 src/pages/Reviews.tsx create mode 100644 src/pages/Settings.tsx create mode 100644 src/pages/SponsoredAds.tsx create mode 100644 src/pages/Users.tsx create mode 100644 src/services/auth.ts create mode 100644 src/services/partnerApi.ts create mode 100644 src/services/userAppApi.ts create mode 100644 src/test/example.test.ts create mode 100644 src/test/setup.ts create mode 100644 src/types/dashboard.ts create mode 100644 src/types/partner.ts create mode 100644 src/types/review.ts create mode 100644 src/vite-env.d.ts create mode 100644 tailwind.config.ts create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts create mode 100644 vitest.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.lovable/plan.md b/.lovable/plan.md new file mode 100644 index 0000000..efa4cea --- /dev/null +++ b/.lovable/plan.md @@ -0,0 +1,216 @@ + + +# Eventify Backoffice - Implementation Plan + +## Overview +A beautiful admin command center using the **Neumorphic Blue Theme** design system with React + Vite, featuring a full navigation shell with dashboard home and placeholder pages for all modules. + +--- + +## 1. Design System Foundation + +### Tailwind Configuration +- Extend `tailwind.config.ts` with custom neumorphic shadows: + - `shadow-neu` - Raised elements (cards, buttons) + - `shadow-neu-inset` - Pressed/input fields + - `shadow-neu-hover` - Elevated hover states + - `shadow-neu-flat` - Subtle depth +- Add custom colors: `neu-base`, `neu-surface`, `neu-raised`, `neu-inset` +- Configure Deep Blue, Royal Blue, Ocean Blue, Sky Blue, Ice Blue palette + +--- + +## 2. Core Layout Components + +### AppLayout (Shell) +- **Fixed Sidebar** (264px width): + - Eventify logo and "BACKOFFICE" label + - Navigation items with neumorphic buttons: + - Dashboard (Home icon) + - Partner Management (Users icon) + - Events (Calendar icon) + - Users (User icon) + - Financials (DollarSign icon) + - Settings (Settings icon) + - Active state with Royal Blue background + - Hover effects with `shadow-neu-hover` + +### Top Bar +- Page title with description +- Global search input (neumorphic inset style) +- Notification bell (neumorphic icon button with badge) +- Admin profile avatar with dropdown + +--- + +## 3. Dashboard Home Page + +### Metrics Grid (4 cards in responsive grid) +Using the reusable **DashboardMetricCard** component: + +1. **Total Platform Revenue** + - Value: ₹24,50,000 + - Growth indicator: +12.5% MoM + - Icon: TrendingUp (green) + +2. **Active Partners** + - Value: 156 + - Subtitle: 12 pending approval + - Icon: Users + +3. **Live Events** + - Value: 43 + - Subtitle: 8 starting today + - Icon: Calendar + +4. **Ticket Sales Volume** + - Value: 12,847 + - Growth indicator: +8.3% this week + - Icon: Ticket + +### Action Items Section (Priority Queue) +Neumorphic card containing urgent items from Partner Controls: + +- **Partner Approval Queue**: "5 Partners awaiting KYC verification" → Link to review +- **Flagged Events**: "3 Events reported for review" → Link to moderation +- **Pending Payouts**: "₹8,45,000 ready for release" → Link to financials +- **Stripe Issues**: "2 Connected accounts need attention" → Link to fix + +Each item shows count badge, description, and action button. + +### Revenue Analytics Section +- **Revenue vs Payouts Chart** placeholder + - Static SVG bar chart visualization + - Legend: Platform Revenue (blue) vs Partner Payouts (green) + - Time period: Last 7 days + +### Recent Activity Feed +- Compact list showing latest platform activities +- Examples: "New partner registered", "Event approved", "Payout completed" +- Timestamps and status indicators + +--- + +## 4. Navigation Pages (Placeholders) + +Each page will have: +- Consistent top bar with title +- "Coming Soon" neumorphic card +- Relevant icon and brief description + +### Partner Management +- Placeholder with stats preview +- Quick access buttons for KYC queue + +### Events +- Placeholder with calendar icon +- Event count summary + +### Users +- Placeholder with user stats + +### Financials +- Placeholder with revenue summary + +### Settings +- Placeholder with configuration options + +--- + +## 5. Reusable Components + +### DashboardMetricCard +- Accepts: `title`, `value`, `subtitle`, `icon`, `trend` +- Neumorphic styling with icon container +- Hover elevation effect + +### ActionItemCard +- Accepts: `title`, `count`, `description`, `actionLabel`, `href` +- Warning/attention styling +- Badge with count + +### NeuButton (Primary/Secondary/Icon variants) +- Primary: Blue background with white text +- Secondary: Neumorphic surface with blue text +- Icon: Square neumorphic button + +### NeuInput +- Inset shadow styling +- Focus ring animation +- Label support + +--- + +## 6. API-Ready Architecture + +### Data Interfaces +All components will use TypeScript interfaces ready for API integration: + +```typescript +interface DashboardMetrics { + totalRevenue: number; + revenueGrowth: number; + activePartners: number; + pendingPartners: number; + liveEvents: number; + eventsToday: number; + ticketSales: number; + ticketGrowth: number; +} + +interface ActionItem { + id: string; + type: 'kyc' | 'flagged' | 'payout' | 'stripe'; + count: number; + description: string; +} +``` + +### Hooks Structure +- `useDashboardMetrics()` - Ready to fetch from API +- `useActionItems()` - Ready to fetch pending actions +- Static mock data initially, easily replaceable + +--- + +## 7. File Structure + +``` +src/ +├── components/ +│ ├── layout/ +│ │ ├── AppLayout.tsx # Main shell with sidebar +│ │ ├── Sidebar.tsx # Navigation sidebar +│ │ └── TopBar.tsx # Header with search/profile +│ ├── dashboard/ +│ │ ├── DashboardMetricCard.tsx +│ │ ├── ActionItemsPanel.tsx +│ │ └── RevenueChart.tsx +│ └── ui/ +│ ├── NeuButton.tsx +│ └── NeuInput.tsx +├── pages/ +│ ├── Dashboard.tsx # Main dashboard +│ ├── Partners.tsx # Partner management +│ ├── Events.tsx # Events management +│ ├── Users.tsx # User management +│ ├── Financials.tsx # Financial overview +│ └── Settings.tsx # Platform settings +├── types/ +│ └── dashboard.ts # TypeScript interfaces +└── data/ + └── mockData.ts # Static demo data +``` + +--- + +## Visual Design Summary + +- **Background**: `#E8EFF8` (neu-base) - Soft blue-gray +- **Cards**: `#DFE9F5` (neu-surface) with `shadow-neu` +- **Text**: `#0F1E3D` (Deep Blue) primary +- **Accents**: `#1E3A8A` (Royal Blue) for active states +- **Interactive**: `#3B82F6` (Ocean Blue) for links/buttons +- **Rounded corners**: `rounded-xl` (12px) and `rounded-2xl` (16px) +- **Smooth transitions**: All interactive elements animate on hover/press + diff --git a/API_AND_DB_SPEC.md b/API_AND_DB_SPEC.md new file mode 100644 index 0000000..87a1af1 --- /dev/null +++ b/API_AND_DB_SPEC.md @@ -0,0 +1,159 @@ +# Eventify Command Center - API & Database Specification + +This document outlines the required API endpoints and Database schema to support the current features of the Eventify Command Center (Admin Panel). + +--- + +## 🏗 Database Schema + +### 1. User Management (RBAC) + +**`admin_users`** (Internal Staff) +| Column | Type | Description | +| :--- | :--- | :--- | +| `id` | UUID | Primary Key | +| `email` | VARCHAR | Unique email | +| `password_hash` | VARCHAR | Hashed password | +| `full_name` | VARCHAR | Display name | +| `role_id` | UUID | FK to `roles` | +| `status` | ENUM | 'Active', 'Inactive' | +| `last_active_at` | TIMESTAMP | Last login time | + +**`roles`** +| Column | Type | Description | +| :--- | :--- | :--- | +| `id` | UUID | Primary Key | +| `name` | VARCHAR | e.g. "Super Admin", "Content Moderator" | +| `description` | TEXT | | +| `is_system` | BOOLEAN | If true, cannot be deleted | + +**`permissions`** +| Column | Type | Description | +| :--- | :--- | :--- | +| `id` | VARCHAR | Primary Key (e.g. `manage_partners`) | +| `name` | VARCHAR | Human readable name | +| `group` | VARCHAR | e.g. "Finance", "Users" | + +**`role_permissions`** (Junction Table) +| Column | Type | Description | +| :--- | :--- | :--- | +| `role_id` | UUID | FK to `roles` | +| `permission_id` | VARCHAR | FK to `permissions` | + +--- + +### 2. Partner Management + +**`partners`** (Organizations) +| Column | Type | Description | +| :--- | :--- | :--- | +| `id` | UUID | Primary Key | +| `name` | VARCHAR | Business Name | +| `type` | ENUM | 'Venue', 'Promoter', 'Sponsor', 'Vendor' | +| `status` | ENUM | 'Active', 'Invited', 'Suspended' | +| `logo_url` | VARCHAR | | +| `verification_status` | ENUM | 'Pending', 'Verified', 'Rejected' | +| `total_revenue` | DECIMAL | Cache field for performance | +| `open_balance` | DECIMAL | Amount owed to/by partner | +| `joined_at` | TIMESTAMP | | + +**`partner_contacts`** +| Column | Type | Description | +| :--- | :--- | :--- | +| `id` | UUID | Primary Key | +| `partner_id` | UUID | FK to `partners` | +| `name` | VARCHAR | | +| `email` | VARCHAR | | +| `phone` | VARCHAR | | +| `is_primary` | BOOLEAN | | + +**`partner_documents`** (KYC) +| Column | Type | Description | +| :--- | :--- | :--- | +| `id` | UUID | Primary Key | +| `partner_id` | UUID | FK to `partners` | +| `type` | ENUM | 'Company_Reg', 'PAN', 'Cheque', 'Other' | +| `file_url` | VARCHAR | S3/Blob URL | +| `status` | ENUM | 'Pending', 'Verified', 'Rejected' | +| `uploaded_at` | TIMESTAMP | | +| `verified_at` | TIMESTAMP | | + +--- + +### 3. End Users (B2C) + +**`end_users`** +| Column | Type | Description | +| :--- | :--- | :--- | +| `id` | UUID | Primary Key | +| `email` | VARCHAR | | +| `phone` | VARCHAR | | +| `full_name` | VARCHAR | | +| `status` | ENUM | 'Active', 'Banned' | +| `total_spent` | DECIMAL | Lifetime value | +| `created_at` | TIMESTAMP | | + +--- + +### 4. Operations & Logs + +**`audit_logs`** +| Column | Type | Description | +| :--- | :--- | :--- | +| `id` | UUID | Primary Key | +| `actor_id` | UUID | FK to `admin_users` | +| `action` | VARCHAR | e.g. "APPROVED_KYC" | +| `target_resource` | VARCHAR | e.g. "partner_123" | +| `details` | JSONB | Metadata about changes | +| `created_at` | TIMESTAMP | | + +**`notifications`** +| Column | Type | Description | +| :--- | :--- | :--- | +| `id` | UUID | Primary Key | +| `recipient_id` | UUID | FK to `admin_users` | +| `type` | ENUM | 'Critical', 'Info', 'Success' | +| `title` | VARCHAR | | +| `message` | TEXT | | +| `is_read` | BOOLEAN | | +| `created_at` | TIMESTAMP | | + +--- + +## 🔌 API Endpoints + +### Authentication +- `POST /api/v1/auth/login` - Admin login (returns JWT) +- `POST /api/v1/auth/logout` - Invalidate session +- `GET /api/v1/auth/me` - Get current admin profile & permissions + +### Dashboard +- `GET /api/v1/dashboard/metrics` - Aggregate stats (revenue, active partners, etc.) +- `GET /api/v1/dashboard/revenue-chart` - Data for the main revenue graph +- `GET /api/v1/dashboard/activity` - Recent system activity feed + +### Partner Management +- `GET /api/v1/partners` - List partners (Supports filtering by status, type, search) +- `POST /api/v1/partners` - Invite/Create new partner +- `GET /api/v1/partners/:id` - Get full partner profile +- `GET /api/v1/partners/:id/documents` - List KYC documents +- `PATCH /api/v1/partners/:id/status` - Suspend/Activate partner +- `POST /api/v1/partners/:id/kyc/review` - Approve/Reject specific documents + +### User Management (Command Center) +- **Internal Team** + - `GET /api/v1/admin/users` - List internal staff + - `POST /api/v1/admin/users` - Create staff account + - `PATCH /api/v1/admin/users/:id/role` - Assign role + - `DELETE /api/v1/admin/users/:id` - Revoke access +- **Roles & Permissions** + - `GET /api/v1/admin/roles` - List available roles + - `PUT /api/v1/admin/roles/:id/permissions` - Update permission matrix for a role +- **End Users** + - `GET /api/v1/users` - List B2C users + - `POST /api/v1/users/:id/ban` - Ban a user + - `POST /api/v1/users/:id/reset-2fa` - Reset 2FA + +### Financials (Placeholder) +- `GET /api/v1/financials/entries` - List ledger entries +- `POST /api/v1/financials/payouts` - Trigger batch payouts diff --git a/MASTER_API_INVENTORY.md b/MASTER_API_INVENTORY.md new file mode 100644 index 0000000..3a37fbc --- /dev/null +++ b/MASTER_API_INVENTORY.md @@ -0,0 +1,270 @@ +# Eventify Master API Inventory + +> **Version:** 1.0 | **Last Updated:** 2026-02-09 | **Status:** Definitive Reference + +--- + +## 1. Auth & Identity + +| ID | Endpoint / Action Name | Method | Direction | Source -> Target | Purpose | Criticality | +| :--- | :--- | :--- | :--- | :--- | :--- | :--- | +| AUTH-01 | `/api/v1/auth/login/otp/request` | POST | Inbound | App/Web -> Server | Request OTP for phone login | High | +| AUTH-02 | `/api/v1/auth/login/otp/verify` | POST | Inbound | App/Web -> Server | Verify OTP and issue tokens | High | +| AUTH-03 | `/api/v1/auth/login/password` | POST | Inbound | App/Web -> Server | Email/password login | High | +| AUTH-04 | `/api/v1/auth/register` | POST | Inbound | App/Web -> Server | New user registration | High | +| AUTH-05 | `/api/v1/auth/logout` | POST | Inbound | App/Web -> Server | Invalidate session/tokens | Medium | +| AUTH-06 | `/api/v1/auth/refresh` | POST | Inbound | App/Web -> Server | Refresh access token | High | +| AUTH-07 | `/api/v1/auth/forgot-password` | POST | Inbound | App/Web -> Server | Initiate password reset | Medium | +| AUTH-08 | `/api/v1/auth/reset-password` | POST | Inbound | App/Web -> Server | Complete password reset | Medium | +| AUTH-09 | `/api/v1/auth/mfa/setup` | POST | Inbound | App/Web -> Server | Enable 2FA (TOTP/SMS) | Medium | +| AUTH-10 | `/api/v1/auth/mfa/verify` | POST | Inbound | App/Web -> Server | Verify 2FA code | High | +| AUTH-11 | `/api/v1/auth/oauth/google` | GET | Inbound | App/Web -> Server | Google OAuth redirect | Medium | +| AUTH-12 | `/api/v1/auth/oauth/google/callback` | GET | Inbound | Google -> Server | Google OAuth callback | Medium | +| AUTH-13 | `/api/v1/auth/oauth/apple` | GET | Inbound | App -> Server | Apple Sign-In redirect | Medium | +| AUTH-14 | `/api/v1/auth/oauth/apple/callback` | POST | Inbound | Apple -> Server | Apple Sign-In callback | Medium | +| AUTH-15 | `/api/v1/auth/sessions` | GET | Inbound | App/Web -> Server | List active sessions | Low | +| AUTH-16 | `/api/v1/auth/sessions/:id` | DELETE | Inbound | App/Web -> Server | Revoke specific session | Medium | +| AUTH-17 | `/api/v1/auth/sessions/all` | DELETE | Inbound | App/Web -> Server | Revoke all sessions (except current) | Medium | +| AUTH-18 | `/api/v1/partner/auth/login` | POST | Inbound | Partner -> Server | Partner/Organizer login | High | +| AUTH-19 | `/api/v1/admin/auth/login` | POST | Inbound | Control Center -> Server | Admin login | High | +| AUTH-20 | `/api/v1/admin/auth/impersonate/:userId` | POST | Inbound | Control Center -> Server | Impersonate user session | High | + +--- + +## 2. User Entity (CRUD & Profile) + +| ID | Endpoint / Action Name | Method | Direction | Source -> Target | Purpose | Criticality | +| :--- | :--- | :--- | :--- | :--- | :--- | :--- | +| USER-01 | `/api/v1/users/me` | GET | Inbound | App/Web -> Server | Get current user profile | High | +| USER-02 | `/api/v1/users/me` | PATCH | Inbound | App/Web -> Server | Update profile (name, bio, avatar) | Medium | +| USER-03 | `/api/v1/users/me/phone` | PATCH | Inbound | App/Web -> Server | Update phone number | Medium | +| USER-04 | `/api/v1/users/me/email` | PATCH | Inbound | App/Web -> Server | Update email address | Medium | +| USER-05 | `/api/v1/users/me/preferences` | PATCH | Inbound | App/Web -> Server | Update notification/privacy preferences | Low | +| USER-06 | `/api/v1/users/me/avatar` | POST | Inbound | App/Web -> Server | Upload avatar image | Low | +| USER-07 | `/api/v1/users/me/delete` | POST | Inbound | App/Web -> Server | Request account deletion (GDPR) | Medium | +| USER-08 | `/api/v1/users/:id` | GET | Inbound | App/Web -> Server | Get public user profile | Low | +| USER-09 | `/api/v1/users/:id/follow` | POST | Inbound | App -> Server | Follow another user | Low | +| USER-10 | `/api/v1/users/:id/unfollow` | POST | Inbound | App -> Server | Unfollow user | Low | +| USER-11 | `/api/v1/users/me/followers` | GET | Inbound | App -> Server | List followers | Low | +| USER-12 | `/api/v1/users/me/following` | GET | Inbound | App -> Server | List following | Low | +| USER-13 | `/api/v1/admin/users` | GET | Inbound | Control Center -> Server | List all users (paginated, filterable) | High | +| USER-14 | `/api/v1/admin/users/:id` | GET | Inbound | Control Center -> Server | Get user details (admin view) | High | +| USER-15 | `/api/v1/admin/users/:id` | PATCH | Inbound | Control Center -> Server | Update user (admin override) | High | +| USER-16 | `/api/v1/admin/users/:id/suspend` | POST | Inbound | Control Center -> Server | Suspend user account | High | +| USER-17 | `/api/v1/admin/users/:id/ban` | POST | Inbound | Control Center -> Server | Ban user permanently | High | +| USER-18 | `/api/v1/admin/users/:id/reinstate` | POST | Inbound | Control Center -> Server | Reinstate suspended/banned user | High | +| USER-19 | `/api/v1/admin/users/:id/notes` | POST | Inbound | Control Center -> Server | Add internal admin note | Low | +| USER-20 | `/api/v1/admin/users/:id/tags` | PATCH | Inbound | Control Center -> Server | Update user tags | Low | + +--- + +## 3. Events (Discovery, CRUD, Publishing) + +| ID | Endpoint / Action Name | Method | Direction | Source -> Target | Purpose | Criticality | +| :--- | :--- | :--- | :--- | :--- | :--- | :--- | +| EVT-01 | `/api/v1/events` | GET | Inbound | App/Web -> Server | List/search events (public) | High | +| EVT-02 | `/api/v1/events/:id` | GET | Inbound | App/Web -> Server | Get event details | High | +| EVT-03 | `/api/v1/events/:id/tickets` | GET | Inbound | App/Web -> Server | Get ticket types for event | High | +| EVT-04 | `/api/v1/events/featured` | GET | Inbound | App/Web -> Server | Get featured/promoted events | Medium | +| EVT-05 | `/api/v1/events/nearby` | GET | Inbound | App -> Server | Get events near user (geo) | Medium | +| EVT-06 | `/api/v1/events/categories` | GET | Inbound | App/Web -> Server | List event categories | Low | +| EVT-07 | `/api/v1/events/:id/similar` | GET | Inbound | App/Web -> Server | Get similar events | Low | +| EVT-08 | `/api/v1/partner/events` | GET | Inbound | Partner -> Server | List organizer's events | High | +| EVT-09 | `/api/v1/partner/events` | POST | Inbound | Partner -> Server | Create new event | High | +| EVT-10 | `/api/v1/partner/events/:id` | GET | Inbound | Partner -> Server | Get event details (owner) | High | +| EVT-11 | `/api/v1/partner/events/:id` | PATCH | Inbound | Partner -> Server | Update event | High | +| EVT-12 | `/api/v1/partner/events/:id` | DELETE | Inbound | Partner -> Server | Delete/cancel event | High | +| EVT-13 | `/api/v1/partner/events/:id/publish` | POST | Inbound | Partner -> Server | Publish event (make live) | High | +| EVT-14 | `/api/v1/partner/events/:id/unpublish` | POST | Inbound | Partner -> Server | Unpublish/draft event | Medium | +| EVT-15 | `/api/v1/partner/events/:id/duplicate` | POST | Inbound | Partner -> Server | Clone event | Low | +| EVT-16 | `/api/v1/partner/events/:id/tickets` | POST | Inbound | Partner -> Server | Create ticket type | High | +| EVT-17 | `/api/v1/partner/events/:id/tickets/:ticketId` | PATCH | Inbound | Partner -> Server | Update ticket type | High | +| EVT-18 | `/api/v1/partner/events/:id/tickets/:ticketId` | DELETE | Inbound | Partner -> Server | Delete ticket type | Medium | +| EVT-19 | `/api/v1/admin/events` | GET | Inbound | Control Center -> Server | List all events (admin) | High | +| EVT-20 | `/api/v1/admin/events/:id` | PATCH | Inbound | Control Center -> Server | Override event details | High | +| EVT-21 | `/api/v1/admin/events/:id/approve` | POST | Inbound | Control Center -> Server | Approve pending event | High | +| EVT-22 | `/api/v1/admin/events/:id/reject` | POST | Inbound | Control Center -> Server | Reject pending event | High | +| EVT-23 | `/api/v1/admin/events/:id/feature` | POST | Inbound | Control Center -> Server | Feature event on homepage | Medium | + +--- + +## 4. Orders & Tickets (Commerce) + +| ID | Endpoint / Action Name | Method | Direction | Source -> Target | Purpose | Criticality | +| :--- | :--- | :--- | :--- | :--- | :--- | :--- | +| ORD-01 | `/api/v1/orders` | POST | Inbound | App/Web -> Server | Create order (cart checkout) | High | +| ORD-02 | `/api/v1/orders/:id` | GET | Inbound | App/Web -> Server | Get order details | High | +| ORD-03 | `/api/v1/orders/:id/pay` | POST | Inbound | App/Web -> Server | Initiate payment for order | High | +| ORD-04 | `/api/v1/orders/:id/cancel` | POST | Inbound | App/Web -> Server | Cancel pending order | Medium | +| ORD-05 | `/api/v1/users/me/orders` | GET | Inbound | App/Web -> Server | List user's orders | High | +| ORD-06 | `/api/v1/users/me/tickets` | GET | Inbound | App/Web -> Server | List user's tickets (wallet) | High | +| ORD-07 | `/api/v1/tickets/:id` | GET | Inbound | App/Web -> Server | Get ticket details (for wallet) | High | +| ORD-08 | `/api/v1/tickets/:id/qr` | GET | Inbound | App -> Server | Get QR code data for ticket | High | +| ORD-09 | `/api/v1/tickets/:id/transfer` | POST | Inbound | App -> Server | Transfer ticket to another user | Medium | +| ORD-10 | `/api/v1/tickets/:id/accept-transfer` | POST | Inbound | App -> Server | Accept incoming ticket transfer | Medium | +| ORD-11 | `/api/v1/partner/orders` | GET | Inbound | Partner -> Server | List orders for organizer's events | High | +| ORD-12 | `/api/v1/partner/orders/:id` | GET | Inbound | Partner -> Server | Get order details (organizer) | High | +| ORD-13 | `/api/v1/partner/orders/:id/refund` | POST | Inbound | Partner -> Server | Initiate refund | High | +| ORD-14 | `/api/v1/partner/attendees` | GET | Inbound | Partner -> Server | List attendees for event | High | +| ORD-15 | `/api/v1/admin/orders` | GET | Inbound | Control Center -> Server | List all orders (admin) | High | +| ORD-16 | `/api/v1/admin/orders/:id` | GET | Inbound | Control Center -> Server | Get order details (admin) | High | +| ORD-17 | `/api/v1/admin/orders/:id/refund` | POST | Inbound | Control Center -> Server | Force refund (admin override) | High | +| ORD-18 | `/api/v1/admin/orders/:id/receipt` | GET | Inbound | Control Center -> Server | Generate/download receipt | Medium | + +--- + +## 5. Payments & Payouts + +| ID | Endpoint / Action Name | Method | Direction | Source -> Target | Purpose | Criticality | +| :--- | :--- | :--- | :--- | :--- | :--- | :--- | +| PAY-01 | `/api/v1/payments/razorpay/create-order` | POST | Inbound | App/Web -> Server | Create Razorpay order | High | +| PAY-02 | `/api/v1/payments/razorpay/verify` | POST | Inbound | App/Web -> Server | Verify Razorpay payment signature | High | +| PAY-03 | `/api/v1/payments/stripe/create-intent` | POST | Inbound | App/Web -> Server | Create Stripe PaymentIntent | High | +| PAY-04 | `/api/v1/payments/stripe/confirm` | POST | Inbound | App/Web -> Server | Confirm Stripe payment | High | +| PAY-05 | `/api/v1/webhooks/razorpay` | POST | Inbound | Razorpay -> Server | Razorpay webhook events | High | +| PAY-06 | `/api/v1/webhooks/stripe` | POST | Inbound | Stripe -> Server | Stripe webhook events | High | +| PAY-07 | `/api/v1/partner/payouts` | GET | Inbound | Partner -> Server | List payout history | High | +| PAY-08 | `/api/v1/partner/payouts/:id` | GET | Inbound | Partner -> Server | Get payout details | High | +| PAY-09 | `/api/v1/partner/bank-account` | GET | Inbound | Partner -> Server | Get linked bank account | High | +| PAY-10 | `/api/v1/partner/bank-account` | POST | Inbound | Partner -> Server | Link bank account for payouts | High | +| PAY-11 | `/api/v1/partner/bank-account` | PATCH | Inbound | Partner -> Server | Update bank account | High | +| PAY-12 | `/api/v1/admin/payouts` | GET | Inbound | Control Center -> Server | List all payouts (admin) | High | +| PAY-13 | `/api/v1/admin/payouts/:id/approve` | POST | Inbound | Control Center -> Server | Approve payout | High | +| PAY-14 | `/api/v1/admin/payouts/:id/hold` | POST | Inbound | Control Center -> Server | Hold payout | High | +| PAY-15 | `/api/v1/admin/payouts/:id/release` | POST | Inbound | Control Center -> Server | Release held payout | High | +| PAY-16 | `Razorpay Payout API` | POST | Outbound | Server -> Razorpay | Initiate payout to organizer | High | +| PAY-17 | `Stripe Connect Payout` | POST | Outbound | Server -> Stripe | Transfer funds to connected account | High | + +--- + +## 6. Operations (Check-in, Scanning, Staff) + +| ID | Endpoint / Action Name | Method | Direction | Source -> Target | Purpose | Criticality | +| :--- | :--- | :--- | :--- | :--- | :--- | :--- | +| OPS-01 | `/api/v1/partner/scan/validate` | POST | Inbound | Partner App -> Server | Validate scanned QR code | High | +| OPS-02 | `/api/v1/partner/scan/checkin` | POST | Inbound | Partner App -> Server | Check-in attendee | High | +| OPS-03 | `/api/v1/partner/scan/checkout` | POST | Inbound | Partner App -> Server | Check-out attendee (optional) | Low | +| OPS-04 | `/api/v1/partner/events/:id/checkin-stats` | GET | Inbound | Partner -> Server | Get live check-in statistics | Medium | +| OPS-05 | `/api/v1/partner/staff` | GET | Inbound | Partner -> Server | List event staff | Medium | +| OPS-06 | `/api/v1/partner/staff` | POST | Inbound | Partner -> Server | Invite staff member | Medium | +| OPS-07 | `/api/v1/partner/staff/:id` | DELETE | Inbound | Partner -> Server | Remove staff member | Medium | +| OPS-08 | `/api/v1/partner/staff/:id/permissions` | PATCH | Inbound | Partner -> Server | Update staff permissions | Medium | +| OPS-09 | `/api/v1/staff/auth/login` | POST | Inbound | Staff App -> Server | Staff member login | High | +| OPS-10 | `/api/v1/staff/events` | GET | Inbound | Staff App -> Server | List assigned events | Medium | + +--- + +## 7. Communication (Email, Push, SMS, Chat) + +| ID | Endpoint / Action Name | Method | Direction | Source -> Target | Purpose | Criticality | +| :--- | :--- | :--- | :--- | :--- | :--- | :--- | +| COM-01 | `Resend API - Transactional` | POST | Outbound | Server -> Resend | Send order confirmation email | High | +| COM-02 | `Resend API - Marketing` | POST | Outbound | Server -> Resend | Send marketing/promo email | Low | +| COM-03 | `FCM - Push Notification` | POST | Outbound | Server -> FCM | Send push notification to user | Medium | +| COM-04 | `APNs - Push Notification` | POST | Outbound | Server -> APNs | Send iOS push notification | Medium | +| COM-05 | `Twilio SMS` | POST | Outbound | Server -> Twilio | Send SMS (OTP, alerts) | High | +| COM-06 | `/api/v1/users/me/devices` | POST | Inbound | App -> Server | Register device for push | Medium | +| COM-07 | `/api/v1/users/me/devices/:id` | DELETE | Inbound | App -> Server | Unregister device | Low | +| COM-08 | `/api/v1/webhooks/resend` | POST | Inbound | Resend -> Server | Email delivery status webhook | Medium | +| COM-09 | `/api/v1/webhooks/twilio` | POST | Inbound | Twilio -> Server | SMS delivery status webhook | Medium | +| COM-10 | `/api/v1/admin/notifications/send` | POST | Inbound | Control Center -> Server | Send notification to user | Medium | +| COM-11 | `/api/v1/admin/notifications/broadcast` | POST | Inbound | Control Center -> Server | Broadcast to user segment | Medium | +| COM-12 | `/api/v1/chat/conversations` | GET | Inbound | App -> Server | List user's conversations | Low | +| COM-13 | `/api/v1/chat/conversations/:id/messages` | GET | Inbound | App -> Server | Get messages in conversation | Low | +| COM-14 | `/api/v1/chat/conversations/:id/messages` | POST | Inbound | App -> Server | Send message | Low | +| COM-15 | `WebSocket /ws/chat` | WS | Bidirectional | App <-> Server | Real-time chat connection | Low | + +--- + +## 8. Data & Analytics + +| ID | Endpoint / Action Name | Method | Direction | Source -> Target | Purpose | Criticality | +| :--- | :--- | :--- | :--- | :--- | :--- | :--- | +| DAT-01 | `/api/v1/partner/analytics/overview` | GET | Inbound | Partner -> Server | Get sales overview dashboard | Medium | +| DAT-02 | `/api/v1/partner/analytics/sales` | GET | Inbound | Partner -> Server | Get detailed sales data | Medium | +| DAT-03 | `/api/v1/partner/analytics/attendees` | GET | Inbound | Partner -> Server | Get attendee demographics | Low | +| DAT-04 | `/api/v1/partner/analytics/traffic` | GET | Inbound | Partner -> Server | Get page view/traffic data | Low | +| DAT-05 | `/api/v1/partner/export/attendees` | GET | Outbound | Server -> Browser | Export attendee list (CSV) | Medium | +| DAT-06 | `/api/v1/partner/export/orders` | GET | Outbound | Server -> Browser | Export orders (CSV) | Medium | +| DAT-07 | `/api/v1/admin/analytics/overview` | GET | Inbound | Control Center -> Server | Platform-wide analytics | Medium | +| DAT-08 | `/api/v1/admin/analytics/revenue` | GET | Inbound | Control Center -> Server | Revenue breakdown | High | +| DAT-09 | `/api/v1/admin/analytics/users` | GET | Inbound | Control Center -> Server | User growth metrics | Medium | +| DAT-10 | `/api/v1/admin/export/users` | GET | Outbound | Server -> Browser | Export users (CSV) | Medium | +| DAT-11 | `/api/v1/admin/export/orders` | GET | Outbound | Server -> Browser | Export orders (CSV) | Medium | +| DAT-12 | `/api/v1/admin/export/payouts` | GET | Outbound | Server -> Browser | Export payouts (CSV) | Medium | +| DAT-13 | `/api/v1/admin/audit-logs` | GET | Inbound | Control Center -> Server | Get admin activity logs | High | + +--- + +## 9. Third-Party Integrations + +| ID | Endpoint / Action Name | Method | Direction | Source -> Target | Purpose | Criticality | +| :--- | :--- | :--- | :--- | :--- | :--- | :--- | +| INT-01 | `AWS S3 - Presigned URL` | POST | Outbound | Server -> S3 | Generate upload URL | Medium | +| INT-02 | `/api/v1/uploads/presigned` | GET | Inbound | App/Web -> Server | Request presigned URL for upload | Medium | +| INT-03 | `Google Maps Geocoding API` | GET | Outbound | Server -> Google | Geocode event address | Low | +| INT-04 | `Google Maps Places API` | GET | Outbound | Server -> Google | Autocomplete venue search | Low | +| INT-05 | `/api/v1/geo/ip` | GET | Inbound | App/Web -> Server | Get location from IP | Low | +| INT-06 | `MaxMind GeoIP` | GET | Internal | Server -> MaxMind DB | IP to location lookup | Low | +| INT-07 | `/api/v1/calendar/google/export` | GET | Inbound | App/Web -> Server | Generate Google Calendar link | Low | +| INT-08 | `/api/v1/calendar/ical/export` | GET | Inbound | App/Web -> Server | Generate iCal file | Low | +| INT-09 | `Sentry - Error Reporting` | POST | Outbound | Server -> Sentry | Log errors | Medium | +| INT-10 | `Slack Webhook` | POST | Outbound | Server -> Slack | Alert on critical events | Medium | +| INT-11 | `PagerDuty API` | POST | Outbound | Server -> PagerDuty | Trigger on-call alerts | High | + +--- + +## 10. Support & Moderation + +| ID | Endpoint / Action Name | Method | Direction | Source -> Target | Purpose | Criticality | +| :--- | :--- | :--- | :--- | :--- | :--- | :--- | +| SUP-01 | `/api/v1/admin/tickets` | GET | Inbound | Control Center -> Server | List support tickets | Medium | +| SUP-02 | `/api/v1/admin/tickets/:id` | GET | Inbound | Control Center -> Server | Get ticket details | Medium | +| SUP-03 | `/api/v1/admin/tickets` | POST | Inbound | Control Center -> Server | Create escalation ticket | Medium | +| SUP-04 | `/api/v1/admin/tickets/:id/reply` | POST | Inbound | Control Center -> Server | Reply to ticket | Medium | +| SUP-05 | `/api/v1/admin/tickets/:id/close` | POST | Inbound | Control Center -> Server | Close ticket | Medium | +| SUP-06 | `/api/v1/admin/tickets/:id/assign` | POST | Inbound | Control Center -> Server | Assign ticket to agent | Medium | +| SUP-07 | `/api/v1/users/me/tickets` | GET | Inbound | App/Web -> Server | List user's support tickets | Low | +| SUP-08 | `/api/v1/users/me/tickets` | POST | Inbound | App/Web -> Server | Create support ticket | Low | +| SUP-09 | `/api/v1/admin/moderation/reports` | GET | Inbound | Control Center -> Server | List content reports | Medium | +| SUP-10 | `/api/v1/admin/moderation/reports/:id/action` | POST | Inbound | Control Center -> Server | Take action on report | Medium | + +--- + +## 11. System & Utilities + +| ID | Endpoint / Action Name | Method | Direction | Source -> Target | Purpose | Criticality | +| :--- | :--- | :--- | :--- | :--- | :--- | :--- | +| SYS-01 | `/api/v1/health` | GET | Inbound | Any -> Server | Health check | High | +| SYS-02 | `/api/v1/health/db` | GET | Inbound | Internal -> Server | Database connectivity check | High | +| SYS-03 | `/api/v1/health/redis` | GET | Inbound | Internal -> Server | Redis connectivity check | High | +| SYS-04 | `/api/v1/config/mobile` | GET | Inbound | App -> Server | Get mobile app config (feature flags) | Medium | +| SYS-05 | `/api/v1/config/web` | GET | Inbound | Web -> Server | Get web config (feature flags) | Medium | +| SYS-06 | `/api/v1/version` | GET | Inbound | Any -> Server | Get API version info | Low | +| SYS-07 | `Cron: Payout Processor` | CRON | Internal | Scheduler -> Server | Process pending payouts | High | +| SYS-08 | `Cron: Reminder Emails` | CRON | Internal | Scheduler -> Server | Send event reminder emails | Medium | +| SYS-09 | `Cron: Expired Orders Cleanup` | CRON | Internal | Scheduler -> Server | Cancel expired pending orders | Medium | +| SYS-10 | `Cron: Analytics Aggregation` | CRON | Internal | Scheduler -> Server | Pre-compute analytics | Low | + +--- + +## Summary Statistics + +| Category | Total Endpoints | +| :--- | :---: | +| Auth & Identity | 20 | +| User Entity | 20 | +| Events | 23 | +| Orders & Tickets | 18 | +| Payments & Payouts | 17 | +| Operations | 10 | +| Communication | 15 | +| Data & Analytics | 13 | +| Third-Party Integrations | 11 | +| Support & Moderation | 10 | +| System & Utilities | 10 | +| **TOTAL** | **167** | + +--- + +> **Note:** This inventory represents the definitive API surface for the Eventify ecosystem. All development should reference this document for endpoint naming, method conventions, and integration points. diff --git a/README.md b/README.md new file mode 100644 index 0000000..242627a --- /dev/null +++ b/README.md @@ -0,0 +1,142 @@ +# Eventify Command Center 🚀 + +![Status](https://img.shields.io/badge/Status-Active-success) +![Version](https://img.shields.io/badge/Version-1.0.0-blue) +![Tech](https://img.shields.io/badge/Built%20With-Vite%20%7C%20React%20%7C%20Shadcn-purple) + +The **Eventify Command Center** is the central administration dashboard for the Eventify platform. It provides sophisticated tools for User Management, Event Analytics, Support CRM, and Platform Moderation. Designed with a premium **Neumorphic** aesthetic, it serves as the cockpit for platform administrators. + +--- + +## 📸 Overview + +The Command Center is built to be an "Operating System for Events", offering high-density information displays and quick actions. + +### Key Modules +- **User Management (CRM)**: comprehensive 360° view of users, bookings, and LTV. +- **Moderation Tools**: Suspensions, Bans, and "Refund Risk" analysis. +- **Notification System**: Push notifications and email communication to users. +- **Analytics Dashboard**: Real-time sales and engagement metrics. + +--- + +## 🏗 Architecture + +The application follows a **Feature-Based Architecture** ensuring scalability and maintainability. + +```mermaid +graph TD + Client[Client UI (React/Vite)] -->|User Actions| Actions[Action Handlers] + Actions -->|Validate| Zod[Zod Schemas] + Actions -->|Execute| Service[Mock Backend Services] + Service -->|Log| Audit[Audit Logger] + + subgraph UI Layer + Client + Components[Shadcn UI Components] + end + + subgraph Logic Layer + Actions + Hooks[Custom Hooks / Nuqs] + end + + subgraph Data Layer + Service + Types[TypeScript Interfaces] + end +``` + +### Tech Stack +- **Framework**: [Vite](https://vitejs.dev/) + React 18 +- **Language**: TypeScript +- **Styling**: [Tailwind CSS v4](https://tailwindcss.com/) +- **UI Components**: [Shadcn UI](https://ui.shadcn.com/) + Radix Primitives +- **State Management**: URL-based state with `nuqs` +- **Icons**: `lucide-react` +- **Validation**: `zod` + +--- + +## 🚀 Getting Started + +### Prerequisites +- Node.js 18+ +- npm 9+ + +### Installation + +1. **Clone the repository** + ```bash + git clone https://code.bshtech.net/Sicherhaven/eventify-command-center.git + cd eventify-command-center + ``` + +2. **Install dependencies** + ```bash + npm install + ``` + +3. **Run Development Server** + ```bash + npm run dev + ``` + Access the app at `http://localhost:8080` (or the port shown in terminal). + +--- + +## 📂 Project Structure + +```text +src/ +├── features/ # Feature-based modules +│ └── users/ # User Management specific code +│ ├── components/ # UI Components (Inspector, Table, etc.) +│ └── data/ # Mock data and services +├── components/ # Shared global components (ui/ folders) +├── lib/ # Core utilities +│ ├── actions/ # Server-style actions (Action handlers) +│ ├── types/ # TypeScript definitions +│ └── utils.ts # Helper functions +├── pages/ # Main route pages +└── styles/ # Global CSS and Tailwind config +``` + +--- + +## 🛠 Deployment + +The application is deployed on the **Sicherh** infrastructure. + +- **Primary URL**: [https://admin.prototype.eventifyplus.com](https://admin.prototype.eventifyplus.com) +- **Server**: `sicherh` (Managed via SSH) +- **Process Manager**: PM2 + +### Deployment Command +To deploy the latest changes from `main`: + +```bash +# SSH into the server +ssh sicherh + +# Navigate and Pull +cd eventify-command-center +git pull + +# Build and Restart +npm install +npm run build +pm2 restart next-server +``` + +--- + +## 🛡 Security & Permissions + +- **Authentication**: Stubbed for prototype (Admin verification mocks). +- **Audit Logs**: All administrative actions (Ban, Suspend, Impersonate) are logged to the console/server logs via `lib/audit-logger.ts`. +- **RBAC**: Role-base access control logic is implemented in the `verifyAdmin` helper. + +--- + +> Built with ❤️ by **BSH Technologies** for the Eventify Platform. diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..a2059947ec0859f4edf6a62ae3689c27fcbc0e21 GIT binary patch literal 248496 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

l5Luz`w=Lz2OS{a11Enf)cukD3M%BM|8_W4{ z(vT@DvEEr~tCo8$uSn*lf8&=@T+7IV8tt@<24v~Yz^JxkOFk_Hv`Ta;!^r6Tw@ zkC{r(T1 CwZhN< literal 0 HcmV?d00001 diff --git a/components.json b/components.json new file mode 100644 index 0000000..62e1011 --- /dev/null +++ b/components.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "default", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/index.css", + "baseColor": "slate", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + } +} diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..40f72cc --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,26 @@ +import js from "@eslint/js"; +import globals from "globals"; +import reactHooks from "eslint-plugin-react-hooks"; +import reactRefresh from "eslint-plugin-react-refresh"; +import tseslint from "typescript-eslint"; + +export default tseslint.config( + { ignores: ["dist"] }, + { + extends: [js.configs.recommended, ...tseslint.configs.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 }], + "@typescript-eslint/no-unused-vars": "off", + }, + }, +); diff --git a/index.html b/index.html new file mode 100644 index 0000000..a38c824 --- /dev/null +++ b/index.html @@ -0,0 +1,28 @@ + + + + + + + + + Eventify Command Center + + + + + + + + + + + + + + +

+ + + + \ No newline at end of file diff --git a/nginx_admin_config b/nginx_admin_config new file mode 100644 index 0000000..12916c1 --- /dev/null +++ b/nginx_admin_config @@ -0,0 +1,27 @@ +server { + server_name admin.prototype.eventifyplus.com; + + root /var/www/admin.prototype.eventifyplus.com; + index index.html; + + location / { + try_files $uri $uri/ /index.html; + } + + listen 443 ssl; # managed by Certbot + ssl_certificate /etc/letsencrypt/live/admin.prototype.eventifyplus.com/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/admin.prototype.eventifyplus.com/privkey.pem; # managed by Certbot + include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot + +} +server { + if ($host = admin.prototype.eventifyplus.com) { + return 301 https://$host$request_uri; + } # managed by Certbot + + + listen 80; + server_name admin.prototype.eventifyplus.com; + return 404; # managed by Certbot +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..08e7085 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,8347 @@ +{ + "name": "vite_react_shadcn_ts", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "vite_react_shadcn_ts", + "version": "0.0.0", + "dependencies": { + "@hookform/resolvers": "^3.10.0", + "@radix-ui/react-accordion": "^1.2.11", + "@radix-ui/react-alert-dialog": "^1.1.14", + "@radix-ui/react-aspect-ratio": "^1.1.7", + "@radix-ui/react-avatar": "^1.1.10", + "@radix-ui/react-checkbox": "^1.3.2", + "@radix-ui/react-collapsible": "^1.1.11", + "@radix-ui/react-context-menu": "^2.2.15", + "@radix-ui/react-dialog": "^1.1.14", + "@radix-ui/react-dropdown-menu": "^2.1.15", + "@radix-ui/react-hover-card": "^1.1.14", + "@radix-ui/react-label": "^2.1.7", + "@radix-ui/react-menubar": "^1.1.15", + "@radix-ui/react-navigation-menu": "^1.2.13", + "@radix-ui/react-popover": "^1.1.14", + "@radix-ui/react-progress": "^1.1.7", + "@radix-ui/react-radio-group": "^1.3.7", + "@radix-ui/react-scroll-area": "^1.2.9", + "@radix-ui/react-select": "^2.2.5", + "@radix-ui/react-separator": "^1.1.7", + "@radix-ui/react-slider": "^1.3.5", + "@radix-ui/react-slot": "^1.2.3", + "@radix-ui/react-switch": "^1.2.5", + "@radix-ui/react-tabs": "^1.1.12", + "@radix-ui/react-toast": "^1.2.14", + "@radix-ui/react-toggle": "^1.1.9", + "@radix-ui/react-toggle-group": "^1.1.10", + "@radix-ui/react-tooltip": "^1.2.7", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-table": "^8.21.3", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "^1.1.1", + "date-fns": "^3.6.0", + "embla-carousel-react": "^8.6.0", + "framer-motion": "^12.31.0", + "input-otp": "^1.4.2", + "lucide-react": "^0.462.0", + "next-themes": "^0.3.0", + "nuqs": "^2.8.8", + "react": "^18.3.1", + "react-day-picker": "^8.10.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.61.1", + "react-resizable-panels": "^2.1.9", + "react-router-dom": "^6.30.1", + "recharts": "^2.15.4", + "sonner": "^1.7.4", + "tailwind-merge": "^2.6.0", + "tailwindcss-animate": "^1.0.7", + "vaul": "^0.9.9", + "zod": "^3.25.76" + }, + "devDependencies": { + "@eslint/js": "^9.32.0", + "@tailwindcss/typography": "^0.5.16", + "@testing-library/jest-dom": "^6.6.0", + "@testing-library/react": "^16.0.0", + "@types/node": "^22.16.5", + "@types/react": "^18.3.23", + "@types/react-dom": "^18.3.7", + "@vitejs/plugin-react-swc": "^3.11.0", + "autoprefixer": "^10.4.21", + "eslint": "^9.32.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.20", + "globals": "^15.15.0", + "jsdom": "^20.0.3", + "lovable-tagger": "^1.1.13", + "postcss": "^8.5.6", + "tailwindcss": "^3.4.17", + "typescript": "^5.8.3", + "typescript-eslint": "^8.38.0", + "vite": "^5.4.19", + "vitest": "^3.2.4" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz", + "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", + "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", + "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", + "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", + "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.32.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.32.0.tgz", + "integrity": "sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", + "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.2.tgz", + "integrity": "sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.2.tgz", + "integrity": "sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.2", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.4.tgz", + "integrity": "sha512-JbbpPhp38UmXDDAu60RJmbeme37Jbgsm7NrHGgzYYFKmblzRUh6Pa641dII6LsjwF4XlScDrde2UAzDo/b9KPw==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.2" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" + }, + "node_modules/@hookform/resolvers": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.10.0.tgz", + "integrity": "sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==", + "license": "MIT", + "peerDependencies": { + "react-hook-form": "^7.0.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@radix-ui/number": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz", + "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-accordion": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.11.tgz", + "integrity": "sha512-l3W5D54emV2ues7jjeG1xcyN7S3jnK3zE2zHqgn0CmMsy9lNJwmgcrmaxS+7ipw15FAivzKNzH3d5EcGoFKw0A==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collapsible": "1.1.11", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.14.tgz", + "integrity": "sha512-IOZfZ3nPvN6lXpJTBCunFQPRSvK8MDgSc1FB85xnIpUKOw9en0dJj8JmCAxV7BiZdtYlUpmrQjoTFkVYtdoWzQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dialog": "1.1.14", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-aspect-ratio": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.7.tgz", + "integrity": "sha512-Yq6lvO9HQyPwev1onK1daHCHqXVLzPhSVjmsNjCa2Zcxy2f7uJD2itDtxknv6FzAKCwD1qQkeVDmX/cev13n/g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.10.tgz", + "integrity": "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-is-hydrated": "0.1.0", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.2.tgz", + "integrity": "sha512-yd+dI56KZqawxKZrJ31eENUwqc1QSqg4OZ15rybGjF2ZNwMO+wCyHzAVLRp9qoYJf7kYy0YpZ2b0JCzJ42HZpA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.11.tgz", + "integrity": "sha512-2qrRsVGSCYasSz1RFOorXwl0H7g7J1frQtgpQgYrt+MOidtPAINHn9CPovQXb83r8ahapdx3Tu0fa/pdFFSdPg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context-menu": { + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.15.tgz", + "integrity": "sha512-UsQUMjcYTsBjTSXw0P3GO0werEQvUY2plgRQuKoCTtkNr45q1DiL51j4m7gxhABzZ0BadoXNsIbg7F3KwiUBbw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-menu": "2.1.15", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.14.tgz", + "integrity": "sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz", + "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.15.tgz", + "integrity": "sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.15", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz", + "integrity": "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-hover-card": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.14.tgz", + "integrity": "sha512-CPYZ24Mhirm+g6D8jArmLzjYu4Eyg3TTUHswR26QgzXBHBe64BO/RHOJKzmF/Dxb4y4f9PKyJdwm/O/AhNkb+Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.7.tgz", + "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.15.tgz", + "integrity": "sha512-tVlmA3Vb9n8SZSd+YSbuFR66l87Wiy4du+YE+0hzKQEANA+7cWKH1WgqcEX4pXqxUFQKrWQGHdvEfw00TjFiew==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.10", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-menubar": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.15.tgz", + "integrity": "sha512-Z71C7LGD+YDYo3TV81paUs8f3Zbmkvg6VLRQpKYfzioOE6n7fOhA3ApK/V/2Odolxjoc4ENk8AYCjohCNayd5A==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.15", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.10", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-navigation-menu": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.13.tgz", + "integrity": "sha512-WG8wWfDiJlSF5hELjwfjSGOXcBR/ZMhBFCGYe8vERpC39CQYZeq1PQ2kaYHdye3V95d06H89KGMsVCIE4LWo3g==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.14.tgz", + "integrity": "sha512-ODz16+1iIbGUfFEfKx2HTPKizg2MN39uIOV8MXeHnmdd3i/N9Wt7vU46wbHsqA0xoaQyXVcs0KIlBdOA2Y95bw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.7.tgz", + "integrity": "sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-rect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/rect": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.4.tgz", + "integrity": "sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-progress": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.7.tgz", + "integrity": "sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-radio-group": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.7.tgz", + "integrity": "sha512-9w5XhD0KPOrm92OTTE0SysH3sYzHsSTHNvZgUBo/VZ80VdYyB5RneDbc0dKpURS24IxkoFRu/hI0i4XyfFwY6g==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.10", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.10.tgz", + "integrity": "sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.9.tgz", + "integrity": "sha512-YSjEfBXnhUELsO2VzjdtYYD4CfQjvao+lhhrX5XsHD7/cyUNzljF1FHEbgTPN7LH2MClfwRMIsYlqTYpKTTe2A==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.5.tgz", + "integrity": "sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz", + "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-slider": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.5.tgz", + "integrity": "sha512-rkfe2pU2NBAYfGaxa3Mqosi7VZEWX5CxKaanRv0vZd4Zhl9fvQrg0VM93dv3xGLGfrHuoTRF3JXH8nb9g+B3fw==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.5.tgz", + "integrity": "sha512-5ijLkak6ZMylXsaImpZ8u4Rlf5grRmoc0p0QeX9VJtlrM4f5m3nCTX8tWga/zOA8PZYIR/t0p2Mnvd7InrJ6yQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.12.tgz", + "integrity": "sha512-GTVAlRVrQrSw3cEARM0nAx73ixrWDPNZAruETn3oHCNP6SbZ/hNxdxp+u7VkIEv3/sFoLq1PfcHrl7Pnp0CDpw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.10", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-toast": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.14.tgz", + "integrity": "sha512-nAP5FBxBJGQ/YfUB+r+O6USFVkWq3gAInkxyEnmvEV5jtSbfDhfa4hwX8CraCnbjMLsE7XSf/K75l9xXY7joWg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-toggle": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.9.tgz", + "integrity": "sha512-ZoFkBBz9zv9GWer7wIjvdRxmh2wyc2oKWw6C6CseWd6/yq1DK/l5lJ+wnsmFwJZbBYqr02mrf8A2q/CVCuM3ZA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-toggle-group": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.10.tgz", + "integrity": "sha512-kiU694Km3WFLTC75DdqgM/3Jauf3rD9wxeS9XtyWFKsBUeZA337lC+6uUazT7I1DhanZ5gyD5Stf8uf2dbQxOQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.10", + "@radix-ui/react-toggle": "1.1.9", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.7.tgz", + "integrity": "sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-is-hydrated": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz", + "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==", + "license": "MIT", + "dependencies": { + "use-sync-external-store": "^1.5.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "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 + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", + "license": "MIT" + }, + "node_modules/@remix-run/router": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.0.tgz", + "integrity": "sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "license": "MIT" + }, + "node_modules/@swc/core": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.13.2.tgz", + "integrity": "sha512-YWqn+0IKXDhqVLKoac4v2tV6hJqB/wOh8/Br8zjqeqBkKa77Qb0Kw2i7LOFzjFNZbZaPH6AlMGlBwNrxaauaAg==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.23" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.13.2", + "@swc/core-darwin-x64": "1.13.2", + "@swc/core-linux-arm-gnueabihf": "1.13.2", + "@swc/core-linux-arm64-gnu": "1.13.2", + "@swc/core-linux-arm64-musl": "1.13.2", + "@swc/core-linux-x64-gnu": "1.13.2", + "@swc/core-linux-x64-musl": "1.13.2", + "@swc/core-win32-arm64-msvc": "1.13.2", + "@swc/core-win32-ia32-msvc": "1.13.2", + "@swc/core-win32-x64-msvc": "1.13.2" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.17" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.13.2.tgz", + "integrity": "sha512-44p7ivuLSGFJ15Vly4ivLJjg3ARo4879LtEBAabcHhSZygpmkP8eyjyWxrH3OxkY1eRZSIJe8yRZPFw4kPXFPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.13.2.tgz", + "integrity": "sha512-Lb9EZi7X2XDAVmuUlBm2UvVAgSCbD3qKqDCxSI4jEOddzVOpNCnyZ/xEampdngUIyDDhhJLYU9duC+Mcsv5Y+A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.13.2.tgz", + "integrity": "sha512-9TDe/92ee1x57x+0OqL1huG4BeljVx0nWW4QOOxp8CCK67Rpc/HHl2wciJ0Kl9Dxf2NvpNtkPvqj9+BUmM9WVA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.13.2.tgz", + "integrity": "sha512-KJUSl56DBk7AWMAIEcU83zl5mg3vlQYhLELhjwRFkGFMvghQvdqQ3zFOYa4TexKA7noBZa3C8fb24rI5sw9Exg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.13.2.tgz", + "integrity": "sha512-teU27iG1oyWpNh9CzcGQ48ClDRt/RCem7mYO7ehd2FY102UeTws2+OzLESS1TS1tEZipq/5xwx3FzbVgiolCiQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.13.2.tgz", + "integrity": "sha512-dRPsyPyqpLD0HMRCRpYALIh4kdOir8pPg4AhNQZLehKowigRd30RcLXGNVZcc31Ua8CiPI4QSgjOIxK+EQe4LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.13.2.tgz", + "integrity": "sha512-CCxETW+KkYEQDqz1SYC15YIWYheqFC+PJVOW76Maa/8yu8Biw+HTAcblKf2isrlUtK8RvrQN94v3UXkC2NzCEw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.13.2.tgz", + "integrity": "sha512-Wv/QTA6PjyRLlmKcN6AmSI4jwSMRl0VTLGs57PHTqYRwwfwd7y4s2fIPJVBNbAlXd795dOEP6d/bGSQSyhOX3A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.13.2.tgz", + "integrity": "sha512-PuCdtNynEkUNbUXX/wsyUC+t4mamIU5y00lT5vJcAvco3/r16Iaxl5UCzhXYaWZSNVZMzPp9qN8NlSL8M5pPxw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.13.2.tgz", + "integrity": "sha512-qlmMkFZJus8cYuBURx1a3YAG2G7IW44i+FEYV5/32ylKkzGNAr9tDJSA53XNnNXkAB5EXSPsOz7bn5C3JlEtdQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.23", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.23.tgz", + "integrity": "sha512-u1iIVZV9Q0jxY+yM2vw/hZGDNudsN85bBpTqzAQ9rzkxW9D+e3aEM4Han+ow518gSewkXgjmEK0BD79ZcNVgPw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz", + "integrity": "sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" + } + }, + "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.83.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.83.0.tgz", + "integrity": "sha512-0M8dA+amXUkyz5cVUm/B+zSk3xkQAcuXuz5/Q/LveT4ots2rBpPTZOzd7yJa2Utsf8D2Upl5KyjhHRY+9lB/XA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.83.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.83.0.tgz", + "integrity": "sha512-/XGYhZ3foc5H0VM2jLSD/NyBRIOK4q9kfeml4+0x2DlL6xVuAcVEW+hTlTapAmejObg0i3eNqhkr2dT+eciwoQ==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.83.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@tanstack/react-table": { + "version": "8.21.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.21.3.tgz", + "integrity": "sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==", + "license": "MIT", + "dependencies": { + "@tanstack/table-core": "8.21.3" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/@tanstack/table-core": { + "version": "8.21.3", + "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.21.3.tgz", + "integrity": "sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/react": { + "version": "16.3.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz", + "integrity": "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", + "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-shape": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz", + "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", + "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", + "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.23", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz", + "integrity": "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==", + "devOptional": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "devOptional": true, + "license": "MIT", + "peer": true, + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.38.0.tgz", + "integrity": "sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/type-utils": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.38.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.38.0.tgz", + "integrity": "sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.38.0.tgz", + "integrity": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.38.0", + "@typescript-eslint/types": "^8.38.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.38.0.tgz", + "integrity": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.38.0.tgz", + "integrity": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.38.0.tgz", + "integrity": "sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.38.0.tgz", + "integrity": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.38.0.tgz", + "integrity": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.38.0", + "@typescript-eslint/tsconfig-utils": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.38.0.tgz", + "integrity": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.38.0.tgz", + "integrity": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.11.0.tgz", + "integrity": "sha512-YTJCGFdNMHCMfjODYtxRNVAYmTWQ1Lb8PulP/2/f/oEEtglw8oKxKIZmmRkyXrVrHfsKOaVkAc3NT9/dMutO5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.27", + "@swc/core": "^1.12.11" + }, + "peerDependencies": { + "vite": "^4 || ^5 || ^6 || ^7" + } + }, + "node_modules/@vitest/expect": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", + "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", + "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", + "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001727", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", + "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cmdk": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.1.1.tgz", + "integrity": "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "^1.1.1", + "@radix-ui/react-dialog": "^1.1.6", + "@radix-ui/react-id": "^1.1.0", + "@radix-ui/react-primitive": "^2.0.2" + }, + "peerDependencies": { + "react": "^18 || ^19 || ^19.0.0-rc", + "react-dom": "^18 || ^19 || ^19.0.0-rc" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/date-fns": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", + "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "license": "MIT", + "peer": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true, + "license": "MIT" + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", + "license": "MIT" + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "license": "MIT", + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.192", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.192.tgz", + "integrity": "sha512-rP8Ez0w7UNw/9j5eSXCe10o1g/8B1P5SM90PCCMVkIRQn2R0LEHWz4Eh9RnxkniuDe1W0cTSOB3MLlkTGDcuCg==", + "dev": true, + "license": "ISC" + }, + "node_modules/embla-carousel": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz", + "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==", + "license": "MIT", + "peer": true + }, + "node_modules/embla-carousel-react": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-react/-/embla-carousel-react-8.6.0.tgz", + "integrity": "sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==", + "license": "MIT", + "dependencies": { + "embla-carousel": "8.6.0", + "embla-carousel-reactive-utils": "8.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, + "node_modules/embla-carousel-reactive-utils": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-reactive-utils/-/embla-carousel-reactive-utils-8.6.0.tgz", + "integrity": "sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==", + "license": "MIT", + "peerDependencies": { + "embla-carousel": "8.6.0" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint": { + "version": "9.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.32.0.tgz", + "integrity": "sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.15.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.32.0", + "@eslint/plugin-kit": "^0.3.4", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.20.tgz", + "integrity": "sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-equals": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.2.2.tgz", + "integrity": "sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "12.31.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.31.0.tgz", + "integrity": "sha512-Tnd0FU05zGRFI3JJmBegXonF1rfuzYeuXd1QSdQ99Ysnppk0yWBWSW2wUsqzRpS5nv0zPNx+y0wtDj4kf0q5RQ==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.30.1", + "motion-utils": "^12.29.2", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/input-otp": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.4.2.tgz", + "integrity": "sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==", + "license": "MIT", + "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" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lovable-tagger": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/lovable-tagger/-/lovable-tagger-1.1.13.tgz", + "integrity": "sha512-RBEYDxao7Xf8ya29L0cd+ocE7Gs80xPOIOwwck65Hoie8YDKViuXi3UYV14DoNWIvaJ7WVPf7SG3cc844nFqGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "tailwindcss": "^3.4.17" + }, + "peerDependencies": { + "vite": ">=5.0.0 <8.0.0" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/aix-ppc64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", + "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/android-arm": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", + "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/android-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", + "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/android-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", + "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/darwin-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", + "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/darwin-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", + "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", + "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/freebsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", + "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/linux-arm": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", + "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/linux-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", + "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/linux-ia32": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", + "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/linux-loong64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", + "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/linux-mips64el": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", + "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/linux-ppc64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", + "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/linux-riscv64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", + "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/linux-s390x": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", + "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/linux-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", + "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/netbsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", + "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/openbsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", + "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/sunos-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", + "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/win32-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", + "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/win32-ia32": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", + "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/@esbuild/win32-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", + "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/lovable-tagger/node_modules/esbuild": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", + "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.0", + "@esbuild/android-arm": "0.25.0", + "@esbuild/android-arm64": "0.25.0", + "@esbuild/android-x64": "0.25.0", + "@esbuild/darwin-arm64": "0.25.0", + "@esbuild/darwin-x64": "0.25.0", + "@esbuild/freebsd-arm64": "0.25.0", + "@esbuild/freebsd-x64": "0.25.0", + "@esbuild/linux-arm": "0.25.0", + "@esbuild/linux-arm64": "0.25.0", + "@esbuild/linux-ia32": "0.25.0", + "@esbuild/linux-loong64": "0.25.0", + "@esbuild/linux-mips64el": "0.25.0", + "@esbuild/linux-ppc64": "0.25.0", + "@esbuild/linux-riscv64": "0.25.0", + "@esbuild/linux-s390x": "0.25.0", + "@esbuild/linux-x64": "0.25.0", + "@esbuild/netbsd-arm64": "0.25.0", + "@esbuild/netbsd-x64": "0.25.0", + "@esbuild/openbsd-arm64": "0.25.0", + "@esbuild/openbsd-x64": "0.25.0", + "@esbuild/sunos-x64": "0.25.0", + "@esbuild/win32-arm64": "0.25.0", + "@esbuild/win32-ia32": "0.25.0", + "@esbuild/win32-x64": "0.25.0" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/lucide-react": { + "version": "0.462.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.462.0.tgz", + "integrity": "sha512-NTL7EbAao9IFtuSivSZgrAh4fZd09Lr+6MTkqIxuHaH2nnYiYIzXPo06cOxHg9wKLdj6LL8TByG4qpePqwgx/g==", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/motion-dom": { + "version": "12.30.1", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.30.1.tgz", + "integrity": "sha512-QXB+iFJRzZTqL+Am4a1CRoHdH+0Nq12wLdqQQZZsfHlp9AMt6PA098L/61oVZsDA+Ep3QSGudzpViyRrhYhGcQ==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.29.2" + } + }, + "node_modules/motion-utils": { + "version": "12.29.2", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.29.2.tgz", + "integrity": "sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/next-themes": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.3.0.tgz", + "integrity": "sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8 || ^17 || ^18", + "react-dom": "^16.8 || ^17 || ^18" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nuqs": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/nuqs/-/nuqs-2.8.8.tgz", + "integrity": "sha512-LF5sw9nWpHyPWzMMu9oho3r9C5DvkpmBIg4LQN78sexIzGaeRx8DWr0uy3YiFx5i2QGZN1Qqcb+OAtEVRa2bnA==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/franky47" + }, + "peerDependencies": { + "@remix-run/react": ">=2", + "@tanstack/react-router": "^1", + "next": ">=14.2.0", + "react": ">=18.2.0 || ^19.0.0-0", + "react-router": "^5 || ^6 || ^7", + "react-router-dom": "^5 || ^6 || ^7" + }, + "peerDependenciesMeta": { + "@remix-run/react": { + "optional": true + }, + "@tanstack/react-router": { + "optional": true + }, + "next": { + "optional": true + }, + "react-router": { + "optional": true + }, + "react-router-dom": { + "optional": true + } + } + }, + "node_modules/nwsapi": { + "version": "2.2.23", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz", + "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-day-picker": { + "version": "8.10.1", + "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.1.tgz", + "integrity": "sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==", + "license": "MIT", + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/gpbl" + }, + "peerDependencies": { + "date-fns": "^2.28.0 || ^3.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-hook-form": { + "version": "7.61.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.61.1.tgz", + "integrity": "sha512-2vbXUFDYgqEgM2RcXcAT2PwDW/80QARi+PKmHy5q2KhuKvOlG8iIYgf7eIlIANR5trW9fJbP4r5aub3a4egsew==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/react-remove-scroll": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz", + "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "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 + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-resizable-panels": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-2.1.9.tgz", + "integrity": "sha512-z77+X08YDIrgAes4jl8xhnUu1LNIRp4+E7cv4xHmLOxxUPO/ML7PSrE813b90vj7xvQ1lcf7g2uA9GeMZonjhQ==", + "license": "MIT", + "peerDependencies": { + "react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, + "node_modules/react-router": { + "version": "6.30.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.1.tgz", + "integrity": "sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@remix-run/router": "1.23.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.30.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.1.tgz", + "integrity": "sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@remix-run/router": "1.23.0", + "react-router": "6.30.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-smooth": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz", + "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==", + "license": "MIT", + "dependencies": { + "fast-equals": "^5.0.1", + "prop-types": "^15.8.1", + "react-transition-group": "^4.4.5" + }, + "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" + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "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 + } + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recharts": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.4.tgz", + "integrity": "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==", + "license": "MIT", + "dependencies": { + "clsx": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.21", + "react-is": "^18.3.1", + "react-smooth": "^4.0.4", + "recharts-scale": "^0.4.4", + "tiny-invariant": "^1.3.1", + "victory-vendor": "^36.6.8" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/recharts-scale": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", + "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", + "license": "MIT", + "dependencies": { + "decimal.js-light": "^2.4.1" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sonner": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-1.7.4.tgz", + "integrity": "sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw==", + "license": "MIT", + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tailwind-merge": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", + "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "license": "MIT", + "peer": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", + "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.38.0.tgz", + "integrity": "sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.38.0", + "@typescript-eslint/parser": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "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 + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "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 + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", + "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/vaul": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/vaul/-/vaul-0.9.9.tgz", + "integrity": "sha512-7afKg48srluhZwIkaU+lgGtFCUsYBSGOl8vcc8N/M3YQlZFlynHD15AE+pwrYdc826o7nrIND4lL9Y6b9WWZZQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-dialog": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + } + }, + "node_modules/victory-vendor": { + "version": "36.9.2", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", + "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/vite": { + "version": "5.4.19", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", + "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", + "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "dev": true, + "license": "MIT", + "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 + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/yaml": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..89170c6 --- /dev/null +++ b/package.json @@ -0,0 +1,92 @@ +{ + "name": "vite_react_shadcn_ts", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "build:dev": "vite build --mode development", + "lint": "eslint .", + "preview": "vite preview", + "test": "vitest run", + "test:watch": "vitest" + }, + "dependencies": { + "@hookform/resolvers": "^3.10.0", + "@radix-ui/react-accordion": "^1.2.11", + "@radix-ui/react-alert-dialog": "^1.1.14", + "@radix-ui/react-aspect-ratio": "^1.1.7", + "@radix-ui/react-avatar": "^1.1.10", + "@radix-ui/react-checkbox": "^1.3.2", + "@radix-ui/react-collapsible": "^1.1.11", + "@radix-ui/react-context-menu": "^2.2.15", + "@radix-ui/react-dialog": "^1.1.14", + "@radix-ui/react-dropdown-menu": "^2.1.15", + "@radix-ui/react-hover-card": "^1.1.14", + "@radix-ui/react-label": "^2.1.7", + "@radix-ui/react-menubar": "^1.1.15", + "@radix-ui/react-navigation-menu": "^1.2.13", + "@radix-ui/react-popover": "^1.1.14", + "@radix-ui/react-progress": "^1.1.7", + "@radix-ui/react-radio-group": "^1.3.7", + "@radix-ui/react-scroll-area": "^1.2.9", + "@radix-ui/react-select": "^2.2.5", + "@radix-ui/react-separator": "^1.1.7", + "@radix-ui/react-slider": "^1.3.5", + "@radix-ui/react-slot": "^1.2.3", + "@radix-ui/react-switch": "^1.2.5", + "@radix-ui/react-tabs": "^1.1.12", + "@radix-ui/react-toast": "^1.2.14", + "@radix-ui/react-toggle": "^1.1.9", + "@radix-ui/react-toggle-group": "^1.1.10", + "@radix-ui/react-tooltip": "^1.2.7", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-table": "^8.21.3", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "^1.1.1", + "date-fns": "^3.6.0", + "embla-carousel-react": "^8.6.0", + "framer-motion": "^12.31.0", + "input-otp": "^1.4.2", + "lucide-react": "^0.462.0", + "next-themes": "^0.3.0", + "nuqs": "^2.8.8", + "react": "^18.3.1", + "react-day-picker": "^8.10.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.61.1", + "react-resizable-panels": "^2.1.9", + "react-router-dom": "^6.30.1", + "recharts": "^2.15.4", + "sonner": "^1.7.4", + "tailwind-merge": "^2.6.0", + "tailwindcss-animate": "^1.0.7", + "vaul": "^0.9.9", + "zod": "^3.25.76" + }, + "devDependencies": { + "@eslint/js": "^9.32.0", + "@tailwindcss/typography": "^0.5.16", + "@testing-library/jest-dom": "^6.6.0", + "@testing-library/react": "^16.0.0", + "@types/node": "^22.16.5", + "@types/react": "^18.3.23", + "@types/react-dom": "^18.3.7", + "@vitejs/plugin-react-swc": "^3.11.0", + "autoprefixer": "^10.4.21", + "eslint": "^9.32.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.20", + "globals": "^15.15.0", + "jsdom": "^20.0.3", + "lovable-tagger": "^1.1.13", + "postcss": "^8.5.6", + "tailwindcss": "^3.4.17", + "typescript": "^5.8.3", + "typescript-eslint": "^8.38.0", + "vite": "^5.4.19", + "vitest": "^3.2.4" + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..2aa7205 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/prisma/schema.prisma b/prisma/schema.prisma new file mode 100644 index 0000000..dfc1a48 --- /dev/null +++ b/prisma/schema.prisma @@ -0,0 +1,217 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +generator client { + provider = "prisma-client-js" +} + +datasource db { + provider = "postgresql" + url = env("DATABASE_URL") +} + +// ===== ENUMS ===== + +enum CampaignStatus { + DRAFT + IN_REVIEW + ACTIVE + PAUSED + ENDED + REJECTED +} + +enum BillingModel { + FIXED + CPM + CPC +} + +enum CampaignObjective { + AWARENESS + SALES +} + +enum SurfaceKey { + HOME_FEATURED_CAROUSEL + HOME_TOP_EVENTS + CATEGORY_FEATURED + CITY_TRENDING + SEARCH_BOOSTED +} + +enum TrackingEventType { + IMPRESSION + CLICK +} + +// ===== MODELS ===== + +model Campaign { + id String @id @default(uuid()) + partnerId String + name String + objective CampaignObjective + status CampaignStatus @default(DRAFT) + + startAt DateTime + endAt DateTime + + billingModel BillingModel + totalBudget Decimal @db.Decimal(10, 2) + dailyCap Decimal? @db.Decimal(10, 2) + spent Decimal @default(0) @db.Decimal(10, 2) + + // Targeting (stored as JSON) + targeting Json // { cityIds: [], categoryIds: [], countryCodes: [] } + frequencyCap Int @default(0) // 0 = unlimited + + // Relations + placements SponsoredPlacement[] + events CampaignEvent[] // Many-to-many via join table or array of IDs + + approvedBy String? + rejectedReason String? + createdBy String + + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + auditLogs CampaignAuditLog[] +} + +model SponsoredPlacement { + id String @id @default(uuid()) + campaignId String + campaign Campaign @relation(fields: [campaignId], references: [id]) + + eventId String + surfaceKey SurfaceKey + priority String @default("SPONSORED") + + bid Decimal @db.Decimal(10, 2) + status String @default("ACTIVE") // ACTIVE, PAUSED + rank Int @default(0) + + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@unique([campaignId, eventId, surfaceKey]) +} + +model CampaignEvent { + id String @id @default(uuid()) + campaignId String + campaign Campaign @relation(fields: [campaignId], references: [id]) + eventId String // Reference to Event table (not shown here) + + @@unique([campaignId, eventId]) +} + +model AdTrackingEvent { + id String @id @default(uuid()) + type TrackingEventType + + placementId String + campaignId String + surfaceKey SurfaceKey + eventId String + + userId String? + anonId String + sessionId String + + timestamp DateTime @default(now()) + device String? + cityId String? + + @@index([campaignId, type, timestamp]) + @@index([anonId, timestamp]) // For frequency capping queries +} + +model PlacementDailyStats { + id String @id @default(uuid()) + campaignId String + placementId String + surfaceKey SurfaceKey + + date DateTime @db.Date + + impressions Int @default(0) + clicks Int @default(0) + spend Decimal @default(0) @db.Decimal(10, 2) + + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@unique([campaignId, placementId, surfaceKey, date]) +} + +model CampaignAuditLog { + id String @id @default(uuid()) + campaignId String + campaign Campaign @relation(fields: [campaignId], references: [id]) + + actorId String + action String // CREATED, UPDATED, SUBMITTED, APPROVED, REJECTED, PAUSED, RESUMED + details Json? // Changed fields, reason, etc. + + createdAt DateTime @default(now()) +} + +// ===== PARTNER GOVERNANCE ===== + +enum KYCStatus { + PENDING + VERIFIED + REJECTED +} + +enum KYCDocStatus { + PENDING + APPROVED + REJECTED +} + +enum PartnerEventStatus { + PENDING_REVIEW + LIVE + DRAFT + COMPLETED + CANCELLED + REJECTED +} + +model PartnerProfile { + id String @id @default(cuid()) + userId String @unique // FK to User table + verification KYCStatus @default(PENDING) + riskScore Int @default(0) + + documents PartnerDoc[] + + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} + +model PartnerDoc { + id String @id @default(cuid()) + partnerId String + partner PartnerProfile @relation(fields: [partnerId], references: [id]) + + type String // "PAN", "GST", "AADHAAR", "CANCELLED_CHEQUE", "BUSINESS_REG" + name String + url String + status KYCDocStatus @default(PENDING) + mandatory Boolean @default(true) + + adminNote String? + reviewedBy String? + reviewedAt DateTime? + + uploadedBy String + uploadedAt DateTime @default(now()) + + @@index([partnerId, status]) +} + diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..90d421cb13de3314063992d41cd32ed6d444ecab GIT binary patch literal 22889 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%0DTqF9vUlYdxO%a&Q}#BK!(7 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 E2MakyLI3~& literal 0 HcmV?d00001 diff --git a/public/placeholder.svg b/public/placeholder.svg new file mode 100644 index 0000000..e763910 --- /dev/null +++ b/public/placeholder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..6018e70 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,14 @@ +User-agent: Googlebot +Allow: / + +User-agent: Bingbot +Allow: / + +User-agent: Twitterbot +Allow: / + +User-agent: facebookexternalhit +Allow: / + +User-agent: * +Allow: / diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..c91cff5 --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,141 @@ +import { Toaster } from "@/components/ui/toaster"; +import { Toaster as Sonner } from "@/components/ui/sonner"; +import { TooltipProvider } from "@/components/ui/tooltip"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { BrowserRouter, Routes, Route, Navigate } from "react-router-dom"; +import { AuthProvider } from "@/contexts/AuthContext"; +import { ProtectedRoute } from "@/components/auth/ProtectedRoute"; +import { PageLoader } from "@/components/ui/PageLoader"; // Added import for PageLoader +import Login from "./pages/Login"; +import Dashboard from "./pages/Dashboard"; +import PartnerDirectory from "./features/partners/PartnerDirectory"; +import PartnerProfile from "./features/partners/PartnerProfile"; +import Events from "./pages/Events"; +import Users from "./pages/Users"; +import AdControl from "./pages/AdControl"; +import SponsoredAds from "./pages/SponsoredAds"; +import NewCampaign from "./pages/NewCampaign"; +import CampaignReport from "./pages/CampaignReport"; +import Financials from "./pages/Financials"; +import Settings from "./pages/Settings"; +import Reviews from "./pages/Reviews"; +import NotFound from "./pages/NotFound"; + +const queryClient = new QueryClient(); + +const App = () => ( + + + + + + + {/* Rendered PageLoader here */} + + } /> + + + + } + /> + + + + } + /> + + + + } + /> + + + + } + /> + + + + } + /> + + + + } + /> + + + + } + /> + + + + } + /> + + + + } + /> + + + + } + /> + + + + } + /> + + + + } + /> + {/* ADD ALL CUSTOM ROUTES ABOVE THE CATCH-ALL "*" ROUTE */} + } /> + + + + + +); + +export default App; diff --git a/src/components/NavLink.tsx b/src/components/NavLink.tsx new file mode 100644 index 0000000..a561a95 --- /dev/null +++ b/src/components/NavLink.tsx @@ -0,0 +1,28 @@ +import { NavLink as RouterNavLink, NavLinkProps } from "react-router-dom"; +import { forwardRef } from "react"; +import { cn } from "@/lib/utils"; + +interface NavLinkCompatProps extends Omit { + className?: string; + activeClassName?: string; + pendingClassName?: string; +} + +const NavLink = forwardRef( + ({ className, activeClassName, pendingClassName, to, ...props }, ref) => { + return ( + + cn(className, isActive && activeClassName, isPending && pendingClassName) + } + {...props} + /> + ); + }, +); + +NavLink.displayName = "NavLink"; + +export { NavLink }; diff --git a/src/components/auth/ProtectedRoute.tsx b/src/components/auth/ProtectedRoute.tsx new file mode 100644 index 0000000..cfe6ba7 --- /dev/null +++ b/src/components/auth/ProtectedRoute.tsx @@ -0,0 +1,27 @@ +import { Navigate } from 'react-router-dom'; +import { useAuth } from '@/contexts/AuthContext'; + +interface ProtectedRouteProps { + children: React.ReactNode; +} + +export const ProtectedRoute: React.FC = ({ children }) => { + const { isAuthenticated, isLoading } = useAuth(); + + if (isLoading) { + return ( +
+
+
+

Loading...

+
+
+ ); + } + + if (!isAuthenticated) { + return ; + } + + return <>{children}; +}; diff --git a/src/components/dashboard/ActionItemsPanel.tsx b/src/components/dashboard/ActionItemsPanel.tsx new file mode 100644 index 0000000..c74220f --- /dev/null +++ b/src/components/dashboard/ActionItemsPanel.tsx @@ -0,0 +1,86 @@ +import { Link } from 'react-router-dom'; +import { + UserCheck, + Flag, + Wallet, + AlertTriangle, + ArrowRight +} from 'lucide-react'; +import { cn } from '@/lib/utils'; +import { ActionItem } from '@/types/dashboard'; +import { formatCurrency } from '@/data/mockData'; + +interface ActionItemsPanelProps { + items: ActionItem[]; +} + +const iconMap = { + kyc: UserCheck, + flagged: Flag, + payout: Wallet, + stripe: AlertTriangle, +}; + +const colorMap = { + kyc: 'text-warning bg-warning/10', + flagged: 'text-error bg-error/10', + payout: 'text-success bg-success/10', + stripe: 'text-warning bg-warning/10', +}; + +export function ActionItemsPanel({ items }: ActionItemsPanelProps) { + return ( +
+
+
+

Pending Actions

+

Items requiring your attention

+
+ + {items.length} urgent + +
+ +
+ {items.map((item) => { + const Icon = iconMap[item.type]; + const colorClass = colorMap[item.type]; + + return ( + +
+ +
+ +
+
+ + {item.type === 'payout' ? formatCurrency(item.count) : item.count} + +

{item.title}

+
+

{item.description}

+
+ + + + ); + })} +
+
+ ); +} diff --git a/src/components/dashboard/ActivityFeed.tsx b/src/components/dashboard/ActivityFeed.tsx new file mode 100644 index 0000000..b11d10a --- /dev/null +++ b/src/components/dashboard/ActivityFeed.tsx @@ -0,0 +1,85 @@ +import { + Users, + Calendar, + Wallet, + User, + CheckCircle2, + Clock, + AlertTriangle, + XCircle +} from 'lucide-react'; +import { cn } from '@/lib/utils'; +import { ActivityItem } from '@/types/dashboard'; +import { formatRelativeTime } from '@/data/mockData'; + +interface ActivityFeedProps { + items: ActivityItem[]; +} + +const typeIconMap = { + partner: Users, + event: Calendar, + payout: Wallet, + user: User, +}; + +const statusIconMap = { + success: CheckCircle2, + pending: Clock, + warning: AlertTriangle, + error: XCircle, +}; + +const statusColorMap = { + success: 'text-success', + pending: 'text-warning', + warning: 'text-warning', + error: 'text-error', +}; + +export function ActivityFeed({ items }: ActivityFeedProps) { + return ( +
+
+
+

Recent Activity

+

Latest platform updates

+
+
+ +
+ {items.map((item, index) => { + const TypeIcon = typeIconMap[item.type]; + const StatusIcon = statusIconMap[item.status]; + const statusColor = statusColorMap[item.status]; + + return ( +
+
+ +
+ +
+
+

{item.title}

+ +
+

{item.description}

+
+ + + {formatRelativeTime(item.timestamp)} + +
+ ); + })} +
+
+ ); +} diff --git a/src/components/dashboard/DashboardMetricCard.tsx b/src/components/dashboard/DashboardMetricCard.tsx new file mode 100644 index 0000000..b6161ad --- /dev/null +++ b/src/components/dashboard/DashboardMetricCard.tsx @@ -0,0 +1,64 @@ +import { LucideIcon, TrendingUp, TrendingDown } from 'lucide-react'; +import { cn } from '@/lib/utils'; + +interface DashboardMetricCardProps { + title: string; + value: string; + subtitle?: string; + icon: LucideIcon; + trend?: { + value: number; + label: string; + positive?: boolean; + }; + iconColor?: string; +} + +export function DashboardMetricCard({ + title, + value, + subtitle, + icon: Icon, + trend, + iconColor = "text-accent" +}: DashboardMetricCardProps) { + return ( +
+
+
+

{title}

+

{value}

+ + {trend && ( +
+ {trend.positive !== false ? ( + + ) : ( + + )} + + {trend.positive !== false ? '+' : ''}{trend.value}% + + {trend.label} +
+ )} + + {subtitle && !trend && ( +

{subtitle}

+ )} +
+ +
+ +
+
+
+ ); +} diff --git a/src/components/dashboard/RevenueChart.tsx b/src/components/dashboard/RevenueChart.tsx new file mode 100644 index 0000000..412c303 --- /dev/null +++ b/src/components/dashboard/RevenueChart.tsx @@ -0,0 +1,76 @@ +import { RevenueDataPoint } from '@/types/dashboard'; +import { formatCurrency } from '@/data/mockData'; + +interface RevenueChartProps { + data: RevenueDataPoint[]; +} + +export function RevenueChart({ data }: RevenueChartProps) { + const maxValue = Math.max(...data.map(d => Math.max(d.revenue, d.payouts))); + + return ( +
+
+
+

Revenue vs Payouts

+

Last 7 days comparison

+
+
+
+ + Revenue +
+
+ + Payouts +
+
+
+ + {/* Chart Area */} +
+ {data.map((point, index) => ( +
+
+ {/* Revenue Bar */} +
+ {/* Payout Bar */} +
+
+ {point.day} +
+ ))} +
+ + {/* Summary */} +
+
+

+ {formatCurrency(data.reduce((sum, d) => sum + d.revenue, 0))} +

+

Total Revenue

+
+
+

+ {formatCurrency(data.reduce((sum, d) => sum + d.payouts, 0))} +

+

Total Payouts

+
+
+
+ ); +} diff --git a/src/components/layout/AppLayout.tsx b/src/components/layout/AppLayout.tsx new file mode 100644 index 0000000..849d070 --- /dev/null +++ b/src/components/layout/AppLayout.tsx @@ -0,0 +1,23 @@ +import { ReactNode } from 'react'; +import { Sidebar } from './Sidebar'; +import { TopBar } from './TopBar'; + +interface AppLayoutProps { + children: ReactNode; + title: string; + description?: string; +} + +export function AppLayout({ children, title, description }: AppLayoutProps) { + return ( +
+ +
+ +
+ {children} +
+
+
+ ); +} diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx new file mode 100644 index 0000000..1adb652 --- /dev/null +++ b/src/components/layout/Sidebar.tsx @@ -0,0 +1,98 @@ +import { NavLink, useLocation } from 'react-router-dom'; +import { + LayoutDashboard, + Users, + Calendar, + User, + DollarSign, + Settings, + Ticket, + Megaphone, + Zap, + MessageSquareText +} from 'lucide-react'; +import { cn } from '@/lib/utils'; + +const navItems = [ + { title: 'Dashboard', href: '/', icon: LayoutDashboard }, + { title: 'Partner Management', href: '/partners', icon: Users }, + { title: 'Events', href: '/events', icon: Calendar }, + { title: 'Ad Control', href: '/ad-control', icon: Megaphone }, + { title: 'Sponsored Ads', href: '/ad-control/sponsored', icon: Zap }, + { title: 'Users', href: '/users', icon: User }, + { title: 'Review Management', href: '/reviews', icon: MessageSquareText, badge: '12' }, + { title: 'Financials', href: '/financials', icon: DollarSign }, + { title: 'Settings', href: '/settings', icon: Settings }, +] as const; + +export function Sidebar() { + const location = useLocation(); + + return ( + + ); +} diff --git a/src/components/layout/TopBar.tsx b/src/components/layout/TopBar.tsx new file mode 100644 index 0000000..3aa8544 --- /dev/null +++ b/src/components/layout/TopBar.tsx @@ -0,0 +1,93 @@ +import { Search, ChevronDown, LogOut } from 'lucide-react'; +import { NotificationPopover } from '@/components/notifications/NotificationPopover'; +import { cn } from '@/lib/utils'; +import { useAuth } from '@/contexts/AuthContext'; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from '@/components/ui/dropdown-menu'; + +interface TopBarProps { + title: string; + description?: string; +} + +export function TopBar({ title, description }: TopBarProps) { + const { user, logout } = useAuth(); + + const getInitials = () => { + if (user?.first_name && user?.last_name) { + return `${user.first_name[0]}${user.last_name[0]}`.toUpperCase(); + } + return user?.username?.substring(0, 2).toUpperCase() || 'AD'; + }; + + const getDisplayName = () => { + if (user?.first_name && user?.last_name) { + return `${user.first_name} ${user.last_name}`; + } + return user?.username || 'Admin User'; + }; + + return ( +
+ {/* Page Title */} +
+

{title}

+ {description && ( +

{description}

+ )} +
+ + {/* Right Section */} +
+ {/* Search */} +
+ + +
+ + {/* Notifications */} + + + {/* Profile Dropdown */} + + + + + + My Account + + logout()} className="text-error cursor-pointer"> + + Log out + + + +
+
+ ); +} + diff --git a/src/components/notifications/NotificationPopover.tsx b/src/components/notifications/NotificationPopover.tsx new file mode 100644 index 0000000..95f31b8 --- /dev/null +++ b/src/components/notifications/NotificationPopover.tsx @@ -0,0 +1,273 @@ + +import { useState } from 'react'; +import { + Bell, + Check, + CheckCircle2, + AlertTriangle, + Banknote, + Info, + X, + CreditCard +} from 'lucide-react'; +import { + Popover, + PopoverContent, + PopoverTrigger, +} from '@/components/ui/popover'; +import { + Tabs, + TabsContent, + TabsList, + TabsTrigger, +} from '@/components/ui/tabs'; +import { ScrollArea } from '@/components/ui/scroll-area'; +import { Button } from '@/components/ui/button'; +import { Badge } from '@/components/ui/badge'; +import { cn } from '@/lib/utils'; + +// --- Types --- +export type NotificationType = 'critical' | 'info' | 'success' | 'warning'; +export type NotificationCategory = 'finance' | 'security' | 'system'; + +export interface Notification { + id: string; + type: NotificationType; + category: NotificationCategory; + title: string; + message: string; + time: string; + actionLabel?: string; + isRead: boolean; +} + +// --- Mock Data --- +const initialNotifications: Notification[] = [ + { + id: '1', + type: 'critical', + category: 'security', + title: 'Suspicious Login Detected', + message: 'New login from IP 192.168.1.1 (Hamburg, DE).', + time: '2m ago', + actionLabel: 'Block', + isRead: false, + }, + { + id: '2', + type: 'info', + category: 'finance', + title: 'Payment Received', + message: 'Partner "Neon Arena" settled invoice #KB-902.', + time: '1h ago', + actionLabel: 'View', + isRead: false, + }, + { + id: '3', + type: 'warning', + category: 'system', + title: 'High Server Load', + message: 'CPU usage is continuously above 85%.', + time: '3h ago', + isRead: true, + }, + { + id: '4', + type: 'success', + category: 'finance', + title: 'Payout Processed', + message: 'Monthly payouts for 12 partners completed.', + time: '5h ago', + isRead: true, + }, + { + id: '5', + type: 'info', + category: 'system', + title: 'System Update', + message: 'Eventify Core v2.4.0 is now live.', + time: '1d ago', + isRead: true, + }, +]; + +export function NotificationPopover() { + const [notifications, setNotifications] = useState(initialNotifications); + const [isOpen, setIsOpen] = useState(false); + + const unreadCount = notifications.filter(n => !n.isRead && n.type === 'critical').length; + const allUnreadCount = notifications.filter(n => !n.isRead).length; + + const markAsRead = (id: string) => { + setNotifications(prev => prev.map(n => n.id === id ? { ...n, isRead: true } : n)); + }; + + const markAllAsRead = () => { + setNotifications(prev => prev.map(n => ({ ...n, isRead: true }))); + }; + + const deleteNotification = (id: string, e: React.MouseEvent) => { + e.stopPropagation(); + setNotifications(prev => prev.filter(n => n.id !== id)); + }; + + const getIcon = (type: NotificationType, category: NotificationCategory) => { + if (category === 'finance') return ; + if (type === 'critical') return ; + if (type === 'success') return ; + return ; + }; + + const getStyles = (n: Notification) => { + if (n.type === 'critical') return "bg-red-500/10 border-l-4 border-red-500 hover:bg-red-500/15"; + if (n.category === 'finance') return "bg-blue-500/10 border-l-4 border-blue-500 hover:bg-blue-500/15"; + if (n.type === 'success') return "bg-green-500/10 border-l-4 border-green-500 hover:bg-green-500/15"; + return "bg-secondary/30 border-l-4 border-secondary hover:bg-secondary/50"; + }; + + const NotificationList = ({ items }: { items: Notification[] }) => { + if (items.length === 0) { + return ( +
+
+ +
+

All caught up!

+

No new alerts to review at this time.

+
+ ); + } + + return ( +
+ {items.map((n) => ( +
markAsRead(n.id)} + > +
+
+ {getIcon(n.type, n.category)} +
+
+
+

+ {n.title} +

+ {n.time} +
+

+ {n.message} +

+ {n.actionLabel && ( + + )} +
+ +
+ {!n.isRead && ( + + )} +
+ ))} +
+ ); + }; + + return ( + + + + + + +
+

Notifications

+ {allUnreadCount > 0 && ( + + )} +
+ + + All + + + Alerts + {unreadCount > 0 && ( + + {unreadCount} + + )} + + + Finance + + + + + + + + + n.type === 'critical')} /> + + + n.category === 'finance')} /> + + +
+
+
+ ); +} diff --git a/src/components/ui/PageLoader.tsx b/src/components/ui/PageLoader.tsx new file mode 100644 index 0000000..1f99287 --- /dev/null +++ b/src/components/ui/PageLoader.tsx @@ -0,0 +1,74 @@ + +import { useEffect, useState } from "react"; +import { animate, transform } from "framer-motion"; + +export function PageLoader() { + const [isLoaded, setIsLoaded] = useState(false); + + useEffect(() => { + const textFill = document.querySelector(".text-fill") as HTMLElement; + + if (textFill) { + let progress = 0; + const mapProgressToClipPath = transform( + [0, 1], + ["inset(0 100% 0 0)", "inset(0 0% 0 0)"] + ); + + const interval = setInterval(() => { + progress = progress + Math.random() * 0.2; + if (progress > 1) progress = 1; + + animate( + textFill, + { clipPath: mapProgressToClipPath(progress) }, + { type: "spring", stiffness: 100, damping: 10 } + ); + + if (progress >= 1) { + clearInterval(interval); + setTimeout(() => setIsLoaded(true), 500); // Wait a bit before hiding + } + }, 500); + + return () => clearInterval(interval); + } + }, []); + + if (isLoaded) return null; + + return ( +
+ +
+ +
EVENTIFY
+
+
+ ); +} diff --git a/src/components/ui/accordion.tsx b/src/components/ui/accordion.tsx new file mode 100644 index 0000000..1e7878c --- /dev/null +++ b/src/components/ui/accordion.tsx @@ -0,0 +1,52 @@ +import * as React from "react"; +import * as AccordionPrimitive from "@radix-ui/react-accordion"; +import { ChevronDown } from "lucide-react"; + +import { cn } from "@/lib/utils"; + +const Accordion = AccordionPrimitive.Root; + +const AccordionItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +AccordionItem.displayName = "AccordionItem"; + +const AccordionTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + svg]:rotate-180", + className, + )} + {...props} + > + {children} + + + +)); +AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName; + +const AccordionContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + +
{children}
+
+)); + +AccordionContent.displayName = AccordionPrimitive.Content.displayName; + +export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }; diff --git a/src/components/ui/alert-dialog.tsx b/src/components/ui/alert-dialog.tsx new file mode 100644 index 0000000..6dfbfb4 --- /dev/null +++ b/src/components/ui/alert-dialog.tsx @@ -0,0 +1,104 @@ +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"; + +const AlertDialog = AlertDialogPrimitive.Root; + +const AlertDialogTrigger = AlertDialogPrimitive.Trigger; + +const AlertDialogPortal = AlertDialogPrimitive.Portal; + +const AlertDialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName; + +const AlertDialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + + +)); +AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName; + +const AlertDialogHeader = ({ className, ...props }: React.HTMLAttributes) => ( +
+); +AlertDialogHeader.displayName = "AlertDialogHeader"; + +const AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes) => ( +
+); +AlertDialogFooter.displayName = "AlertDialogFooter"; + +const AlertDialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName; + +const AlertDialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName; + +const AlertDialogAction = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName; + +const AlertDialogCancel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName; + +export { + AlertDialog, + AlertDialogPortal, + AlertDialogOverlay, + AlertDialogTrigger, + AlertDialogContent, + AlertDialogHeader, + AlertDialogFooter, + AlertDialogTitle, + AlertDialogDescription, + AlertDialogAction, + AlertDialogCancel, +}; diff --git a/src/components/ui/alert.tsx b/src/components/ui/alert.tsx new file mode 100644 index 0000000..2efc3c8 --- /dev/null +++ b/src/components/ui/alert.tsx @@ -0,0 +1,43 @@ +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 p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground", + { + variants: { + variant: { + default: "bg-background text-foreground", + destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive", + }, + }, + defaultVariants: { + variant: "default", + }, + }, +); + +const Alert = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes & VariantProps +>(({ className, variant, ...props }, ref) => ( +
+)); +Alert.displayName = "Alert"; + +const AlertTitle = React.forwardRef>( + ({ className, ...props }, ref) => ( +
+ ), +); +AlertTitle.displayName = "AlertTitle"; + +const AlertDescription = React.forwardRef>( + ({ className, ...props }, ref) => ( +
+ ), +); +AlertDescription.displayName = "AlertDescription"; + +export { Alert, AlertTitle, AlertDescription }; diff --git a/src/components/ui/aspect-ratio.tsx b/src/components/ui/aspect-ratio.tsx new file mode 100644 index 0000000..c9e6f4b --- /dev/null +++ b/src/components/ui/aspect-ratio.tsx @@ -0,0 +1,5 @@ +import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio"; + +const AspectRatio = AspectRatioPrimitive.Root; + +export { AspectRatio }; diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx new file mode 100644 index 0000000..68d21bb --- /dev/null +++ b/src/components/ui/avatar.tsx @@ -0,0 +1,38 @@ +import * as React from "react"; +import * as AvatarPrimitive from "@radix-ui/react-avatar"; + +import { cn } from "@/lib/utils"; + +const Avatar = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +Avatar.displayName = AvatarPrimitive.Root.displayName; + +const AvatarImage = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +AvatarImage.displayName = AvatarPrimitive.Image.displayName; + +const AvatarFallback = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName; + +export { Avatar, AvatarImage, AvatarFallback }; diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx new file mode 100644 index 0000000..0853c44 --- /dev/null +++ b/src/components/ui/badge.tsx @@ -0,0 +1,29 @@ +import * as React from "react"; +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "@/lib/utils"; + +const badgeVariants = cva( + "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + { + variants: { + variant: { + default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80", + secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + }, +); + +export interface BadgeProps extends React.HTMLAttributes, VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return
; +} + +export { Badge, badgeVariants }; diff --git a/src/components/ui/breadcrumb.tsx b/src/components/ui/breadcrumb.tsx new file mode 100644 index 0000000..ca91ff5 --- /dev/null +++ b/src/components/ui/breadcrumb.tsx @@ -0,0 +1,90 @@ +import * as React from "react"; +import { Slot } from "@radix-ui/react-slot"; +import { ChevronRight, MoreHorizontal } from "lucide-react"; + +import { cn } from "@/lib/utils"; + +const Breadcrumb = React.forwardRef< + HTMLElement, + React.ComponentPropsWithoutRef<"nav"> & { + separator?: React.ReactNode; + } +>(({ ...props }, ref) =>