From 8a23fbd842f62c5aeba2076eb52130c81b4dfa65 Mon Sep 17 00:00:00 2001 From: Mikaal Naik Date: Fri, 19 Jun 2026 11:44:09 -0400 Subject: [PATCH 1/5] initial port of builder mp into trading post --- package.json | 40 + pnpm-lock.yaml | 2306 ++++++++++++++++- public/bills/builder-mp-seo-image.png | Bin 0 -> 31182 bytes public/bills/file.svg | 1 + public/bills/globe.svg | 1 + public/bills/next.svg | 1 + public/bills/window.svg | 1 + src/app/bills/BillExplorer.tsx | 304 +++ src/app/bills/FAQModalTrigger.tsx | 183 ++ src/app/bills/[id]/edit/page.tsx | 226 ++ src/app/bills/[id]/opengraph-image.tsx | 98 + src/app/bills/[id]/page.tsx | 216 ++ .../question/[number]/opengraph-image.tsx | 51 + src/app/bills/api/[id]/reprocess/route.ts | 142 + src/app/bills/api/[id]/route.ts | 320 +++ src/app/bills/api/auth/[...nextauth]/route.ts | 6 + src/app/bills/api/auth/debug/route.ts | 13 + src/app/bills/api/dev/users/route.ts | 77 + src/app/bills/api/health/route.ts | 8 + .../bills/api/users/[email]/allow/route.ts | 25 + src/app/bills/api/users/route.ts | 89 + src/app/bills/dev/users/page.tsx | 73 + src/app/bills/layout.tsx | 54 + src/app/bills/opengraph-image.tsx | 102 + src/app/bills/page.tsx | 237 ++ src/app/bills/sign-in/page.tsx | 62 + src/app/bills/types.ts | 49 + src/app/bills/unauthorized/page.tsx | 16 + src/app/globals.css | 4 + src/bills/bills.css | 123 + src/bills/components/BillCard.tsx | 116 + .../components/BillDetail/BillAnalysis.tsx | 94 + .../components/BillDetail/BillContact.tsx | 27 + .../components/BillDetail/BillFullText.tsx | 22 + .../components/BillDetail/BillHeader.tsx | 47 + .../components/BillDetail/BillMetadata.tsx | 64 + .../components/BillDetail/BillQuestions.tsx | 125 + src/bills/components/BillDetail/BillShare.tsx | 217 ++ .../components/BillDetail/BillSummary.tsx | 21 + .../components/BillDetail/BillTenets.tsx | 33 + src/bills/components/BillDetail/index.ts | 7 + .../BillTimeline/bill-timeline.component.tsx | 103 + .../filter-section.component.tsx | 288 ++ .../components/Footer/footer.component.tsx | 59 + .../Judgement/judgement.component.tsx | 111 + src/bills/components/Markdown/markdown.tsx | 66 + src/bills/components/Nav/nav.component.tsx | 44 + src/bills/components/OG | 85 + src/bills/components/OpenGraph/BillOgCard.tsx | 151 ++ .../components/OpenGraph/QuestionOgCard.tsx | 156 ++ .../reprocess-button.component.tsx | 62 + src/bills/components/SessionProvider.tsx | 18 + .../components/SignIn/sign-in.component.tsx | 11 + src/bills/components/SimpleAnalytics.tsx | 9 + src/bills/components/ui/accordion.tsx | 66 + src/bills/components/ui/alert-dialog.tsx | 157 ++ src/bills/components/ui/alert.tsx | 66 + src/bills/components/ui/aspect-ratio.tsx | 11 + src/bills/components/ui/avatar.tsx | 53 + src/bills/components/ui/badge.tsx | 46 + src/bills/components/ui/breadcrumb.tsx | 109 + src/bills/components/ui/button.tsx | 58 + src/bills/components/ui/card.tsx | 92 + src/bills/components/ui/checkbox.tsx | 32 + src/bills/components/ui/collapsible.tsx | 33 + src/bills/components/ui/command.tsx | 177 ++ src/bills/components/ui/context-menu.tsx | 252 ++ src/bills/components/ui/dialog.tsx | 135 + src/bills/components/ui/drawer.tsx | 132 + src/bills/components/ui/dropdown-menu.tsx | 257 ++ src/bills/components/ui/form.tsx | 168 ++ src/bills/components/ui/hover-card.tsx | 44 + src/bills/components/ui/input-otp.tsx | 77 + src/bills/components/ui/input.tsx | 21 + src/bills/components/ui/label.tsx | 24 + src/bills/components/ui/menubar.tsx | 276 ++ src/bills/components/ui/navigation-menu.tsx | 168 ++ src/bills/components/ui/pagination.tsx | 126 + src/bills/components/ui/popover.tsx | 48 + src/bills/components/ui/progress.tsx | 31 + src/bills/components/ui/radio-group.tsx | 45 + src/bills/components/ui/resizable.tsx | 56 + src/bills/components/ui/scroll-area.tsx | 58 + src/bills/components/ui/select.tsx | 185 ++ src/bills/components/ui/separator.tsx | 28 + src/bills/components/ui/sheet.tsx | 139 + src/bills/components/ui/sidebar.tsx | 726 ++++++ src/bills/components/ui/skeleton.tsx | 13 + src/bills/components/ui/slider.tsx | 63 + src/bills/components/ui/sonner.tsx | 25 + src/bills/components/ui/switch.tsx | 31 + src/bills/components/ui/table.tsx | 116 + src/bills/components/ui/tabs.tsx | 66 + src/bills/components/ui/textarea.tsx | 18 + src/bills/components/ui/toggle-group.tsx | 73 + src/bills/components/ui/toggle.tsx | 47 + src/bills/components/ui/tooltip.tsx | 61 + src/bills/components/ui/use-mobile.ts | 21 + src/bills/components/ui/utils.ts | 6 + src/bills/consts/general.ts | 11 + src/bills/env.ts | 54 + src/bills/lib/auth-guards.ts | 48 + src/bills/lib/auth.ts | 95 + src/bills/lib/auth/allowed-users.ts | 2 + src/bills/lib/auth/config.ts | 2 + src/bills/lib/auth/types.d.ts | 21 + src/bills/lib/mongoose.ts | 45 + src/bills/lib/utils.ts | 6 + src/bills/migrations/1.ts | 28 + src/bills/models/Bill.ts | 147 ++ src/bills/models/User.ts | 24 + src/bills/prompt/summary-and-vote-prompt.ts | 156 ++ .../get-all-bills-from-civics-project.ts | 20 + src/bills/server/get-all-bills-from-db.ts | 27 + src/bills/server/get-bill-by-id-from-db.ts | 20 + src/bills/server/get-unified-bill-by-id.ts | 16 + src/bills/services/billApi.ts | 535 ++++ src/bills/services/social-issue-grader.ts | 56 + src/bills/types/global.d.ts | 8 + src/bills/types/markdown.d.ts | 2 + src/bills/utils/basePath.ts | 66 + .../bill-category-to-icon.util.ts | 68 + src/bills/utils/billConverters.ts | 297 +++ .../get-party-colors/get-party-colors.util.ts | 77 + .../should-show-determination.util.ts | 7 + .../stage-summarizer/stage-summarizer.util.ts | 252 ++ .../utils/stages-to-dates/stages-to-dates.ts | 71 + src/bills/utils/vote-display.ts | 34 + src/bills/utils/xml-to-md/xml-to-md.util.ts | 344 +++ 129 files changed, 13693 insertions(+), 46 deletions(-) create mode 100644 public/bills/builder-mp-seo-image.png create mode 100644 public/bills/file.svg create mode 100644 public/bills/globe.svg create mode 100644 public/bills/next.svg create mode 100644 public/bills/window.svg create mode 100644 src/app/bills/BillExplorer.tsx create mode 100644 src/app/bills/FAQModalTrigger.tsx create mode 100644 src/app/bills/[id]/edit/page.tsx create mode 100644 src/app/bills/[id]/opengraph-image.tsx create mode 100644 src/app/bills/[id]/page.tsx create mode 100644 src/app/bills/[id]/question/[number]/opengraph-image.tsx create mode 100644 src/app/bills/api/[id]/reprocess/route.ts create mode 100644 src/app/bills/api/[id]/route.ts create mode 100644 src/app/bills/api/auth/[...nextauth]/route.ts create mode 100644 src/app/bills/api/auth/debug/route.ts create mode 100644 src/app/bills/api/dev/users/route.ts create mode 100644 src/app/bills/api/health/route.ts create mode 100644 src/app/bills/api/users/[email]/allow/route.ts create mode 100644 src/app/bills/api/users/route.ts create mode 100644 src/app/bills/dev/users/page.tsx create mode 100644 src/app/bills/layout.tsx create mode 100644 src/app/bills/opengraph-image.tsx create mode 100644 src/app/bills/page.tsx create mode 100644 src/app/bills/sign-in/page.tsx create mode 100644 src/app/bills/types.ts create mode 100644 src/app/bills/unauthorized/page.tsx create mode 100644 src/bills/bills.css create mode 100644 src/bills/components/BillCard.tsx create mode 100644 src/bills/components/BillDetail/BillAnalysis.tsx create mode 100644 src/bills/components/BillDetail/BillContact.tsx create mode 100644 src/bills/components/BillDetail/BillFullText.tsx create mode 100644 src/bills/components/BillDetail/BillHeader.tsx create mode 100644 src/bills/components/BillDetail/BillMetadata.tsx create mode 100644 src/bills/components/BillDetail/BillQuestions.tsx create mode 100644 src/bills/components/BillDetail/BillShare.tsx create mode 100644 src/bills/components/BillDetail/BillSummary.tsx create mode 100644 src/bills/components/BillDetail/BillTenets.tsx create mode 100644 src/bills/components/BillDetail/index.ts create mode 100644 src/bills/components/BillTimeline/bill-timeline.component.tsx create mode 100644 src/bills/components/FilterSection/filter-section.component.tsx create mode 100644 src/bills/components/Footer/footer.component.tsx create mode 100644 src/bills/components/Judgement/judgement.component.tsx create mode 100644 src/bills/components/Markdown/markdown.tsx create mode 100644 src/bills/components/Nav/nav.component.tsx create mode 100644 src/bills/components/OG create mode 100644 src/bills/components/OpenGraph/BillOgCard.tsx create mode 100644 src/bills/components/OpenGraph/QuestionOgCard.tsx create mode 100644 src/bills/components/ReprocessButton/reprocess-button.component.tsx create mode 100644 src/bills/components/SessionProvider.tsx create mode 100644 src/bills/components/SignIn/sign-in.component.tsx create mode 100644 src/bills/components/SimpleAnalytics.tsx create mode 100644 src/bills/components/ui/accordion.tsx create mode 100644 src/bills/components/ui/alert-dialog.tsx create mode 100644 src/bills/components/ui/alert.tsx create mode 100644 src/bills/components/ui/aspect-ratio.tsx create mode 100644 src/bills/components/ui/avatar.tsx create mode 100644 src/bills/components/ui/badge.tsx create mode 100644 src/bills/components/ui/breadcrumb.tsx create mode 100644 src/bills/components/ui/button.tsx create mode 100644 src/bills/components/ui/card.tsx create mode 100644 src/bills/components/ui/checkbox.tsx create mode 100644 src/bills/components/ui/collapsible.tsx create mode 100644 src/bills/components/ui/command.tsx create mode 100644 src/bills/components/ui/context-menu.tsx create mode 100644 src/bills/components/ui/dialog.tsx create mode 100644 src/bills/components/ui/drawer.tsx create mode 100644 src/bills/components/ui/dropdown-menu.tsx create mode 100644 src/bills/components/ui/form.tsx create mode 100644 src/bills/components/ui/hover-card.tsx create mode 100644 src/bills/components/ui/input-otp.tsx create mode 100644 src/bills/components/ui/input.tsx create mode 100644 src/bills/components/ui/label.tsx create mode 100644 src/bills/components/ui/menubar.tsx create mode 100644 src/bills/components/ui/navigation-menu.tsx create mode 100644 src/bills/components/ui/pagination.tsx create mode 100644 src/bills/components/ui/popover.tsx create mode 100644 src/bills/components/ui/progress.tsx create mode 100644 src/bills/components/ui/radio-group.tsx create mode 100644 src/bills/components/ui/resizable.tsx create mode 100644 src/bills/components/ui/scroll-area.tsx create mode 100644 src/bills/components/ui/select.tsx create mode 100644 src/bills/components/ui/separator.tsx create mode 100644 src/bills/components/ui/sheet.tsx create mode 100644 src/bills/components/ui/sidebar.tsx create mode 100644 src/bills/components/ui/skeleton.tsx create mode 100644 src/bills/components/ui/slider.tsx create mode 100644 src/bills/components/ui/sonner.tsx create mode 100644 src/bills/components/ui/switch.tsx create mode 100644 src/bills/components/ui/table.tsx create mode 100644 src/bills/components/ui/tabs.tsx create mode 100644 src/bills/components/ui/textarea.tsx create mode 100644 src/bills/components/ui/toggle-group.tsx create mode 100644 src/bills/components/ui/toggle.tsx create mode 100644 src/bills/components/ui/tooltip.tsx create mode 100644 src/bills/components/ui/use-mobile.ts create mode 100644 src/bills/components/ui/utils.ts create mode 100644 src/bills/consts/general.ts create mode 100644 src/bills/env.ts create mode 100644 src/bills/lib/auth-guards.ts create mode 100644 src/bills/lib/auth.ts create mode 100644 src/bills/lib/auth/allowed-users.ts create mode 100644 src/bills/lib/auth/config.ts create mode 100644 src/bills/lib/auth/types.d.ts create mode 100644 src/bills/lib/mongoose.ts create mode 100644 src/bills/lib/utils.ts create mode 100644 src/bills/migrations/1.ts create mode 100644 src/bills/models/Bill.ts create mode 100644 src/bills/models/User.ts create mode 100644 src/bills/prompt/summary-and-vote-prompt.ts create mode 100644 src/bills/server/get-all-bills-from-civics-project.ts create mode 100644 src/bills/server/get-all-bills-from-db.ts create mode 100644 src/bills/server/get-bill-by-id-from-db.ts create mode 100644 src/bills/server/get-unified-bill-by-id.ts create mode 100644 src/bills/services/billApi.ts create mode 100644 src/bills/services/social-issue-grader.ts create mode 100644 src/bills/types/global.d.ts create mode 100644 src/bills/types/markdown.d.ts create mode 100644 src/bills/utils/basePath.ts create mode 100644 src/bills/utils/bill-category-to-icon/bill-category-to-icon.util.ts create mode 100644 src/bills/utils/billConverters.ts create mode 100644 src/bills/utils/get-party-colors/get-party-colors.util.ts create mode 100644 src/bills/utils/should-show-determination/should-show-determination.util.ts create mode 100644 src/bills/utils/stage-summarizer/stage-summarizer.util.ts create mode 100644 src/bills/utils/stages-to-dates/stages-to-dates.ts create mode 100644 src/bills/utils/vote-display.ts create mode 100644 src/bills/utils/xml-to-md/xml-to-md.util.ts diff --git a/package.json b/package.json index 58b58ca..6d3ccac 100644 --- a/package.json +++ b/package.json @@ -17,25 +17,65 @@ "@buildcanada/colours": "^0.3.3", "@buildcanada/components": "^0.3.5", "@cloudflare/stream-react": "^1.9.3", + "@google/genai": "^1.15.0", + "@google/generative-ai": "^0.24.1", + "@radix-ui/react-accordion": "^1.2.12", + "@radix-ui/react-alert-dialog": "^1.1.15", + "@radix-ui/react-aspect-ratio": "^1.1.7", + "@radix-ui/react-avatar": "^1.1.10", + "@radix-ui/react-checkbox": "^1.3.3", + "@radix-ui/react-collapsible": "^1.1.12", + "@radix-ui/react-context-menu": "^2.2.16", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-hover-card": "^1.1.15", + "@radix-ui/react-label": "^2.1.7", + "@radix-ui/react-menubar": "^1.1.16", + "@radix-ui/react-navigation-menu": "^1.2.14", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-progress": "^1.1.7", + "@radix-ui/react-radio-group": "^1.3.8", + "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-select": "^2.2.5", + "@radix-ui/react-separator": "^1.1.7", + "@radix-ui/react-slider": "^1.3.6", + "@radix-ui/react-slot": "^1.2.3", + "@radix-ui/react-switch": "^1.2.6", + "@radix-ui/react-tabs": "^1.1.13", + "@radix-ui/react-toggle": "^1.1.10", + "@radix-ui/react-toggle-group": "^1.1.11", + "@radix-ui/react-tooltip": "^1.2.8", "chart.js": "^4.4.7", "chartjs-adapter-date-fns": "^3.0.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "cmdk": "^1.1.1", "date-fns": "^4.1.0", + "dayjs": "^1.11.18", + "fast-xml-parser": "^5.3.8", + "input-otp": "^1.4.2", + "jose": "^5.9.6", "lucide-react": "^1.7.0", + "mongoose": "^8.18.0", "next": "16.1.6", + "next-auth": "4.24.13", + "next-themes": "^0.4.6", + "openai": "^5.15.0", "posthog-js": "^1.368.0", "posthog-node": "^5.35.11", "react": "19.2.3", "react-chartjs-2": "^5.3.0", "react-dom": "19.2.3", + "react-hook-form": "^7.62.0", "react-markdown": "^10.1.0", + "react-resizable-panels": "^3.0.6", + "remark-gfm": "^4.0.1", "schema-dts": "^2.0.0", "sonner": "^2.0.7", "swr": "^2.3.8", "tailwind-merge": "^3.5.0", "tw-animate-css": "^1.4.0", + "vaul": "^1.1.2", "zustand": "^5.0.12" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6de003a..8adfcdb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,9 +23,90 @@ importers: '@cloudflare/stream-react': specifier: ^1.9.3 version: 1.9.3(react@19.2.3) + '@google/genai': + specifier: ^1.15.0 + version: 1.52.0 + '@google/generative-ai': + specifier: ^0.24.1 + version: 0.24.1 + '@radix-ui/react-accordion': + specifier: ^1.2.12 + version: 1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-alert-dialog': + specifier: ^1.1.15 + version: 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-aspect-ratio': + specifier: ^1.1.7 + version: 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-avatar': + specifier: ^1.1.10 + version: 1.2.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-checkbox': + specifier: ^1.3.3 + version: 1.3.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-collapsible': + specifier: ^1.1.12 + version: 1.1.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-context-menu': + specifier: ^2.2.16 + version: 2.3.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-dialog': + specifier: ^1.1.15 + version: 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-dropdown-menu': + specifier: ^2.1.16 + version: 2.1.18(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-hover-card': + specifier: ^1.1.15 + version: 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-label': + specifier: ^2.1.7 + version: 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-menubar': + specifier: ^1.1.16 + version: 1.1.18(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-navigation-menu': + specifier: ^1.2.14 + version: 1.2.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-popover': + specifier: ^1.1.15 + version: 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-progress': + specifier: ^1.1.7 + version: 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-radio-group': + specifier: ^1.3.8 + version: 1.4.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-scroll-area': + specifier: ^1.2.10 + version: 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-select': specifier: ^2.2.5 version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-separator': + specifier: ^1.1.7 + version: 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slider': + specifier: ^1.3.6 + version: 1.4.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': + specifier: ^1.2.3 + version: 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-switch': + specifier: ^1.2.6 + version: 1.3.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-tabs': + specifier: ^1.1.13 + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-toggle': + specifier: ^1.1.10 + version: 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-toggle-group': + specifier: ^1.1.11 + version: 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-tooltip': + specifier: ^1.2.8 + version: 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) chart.js: specifier: ^4.4.7 version: 4.5.1 @@ -38,15 +119,42 @@ importers: clsx: specifier: ^2.1.1 version: 2.1.1 + cmdk: + specifier: ^1.1.1 + version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) date-fns: specifier: ^4.1.0 version: 4.1.0 + dayjs: + specifier: ^1.11.18 + version: 1.11.20 + fast-xml-parser: + specifier: ^5.3.8 + version: 5.9.2 + input-otp: + specifier: ^1.4.2 + version: 1.4.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + jose: + specifier: ^5.9.6 + version: 5.10.0 lucide-react: specifier: ^1.7.0 version: 1.7.0(react@19.2.3) + mongoose: + specifier: ^8.18.0 + version: 8.24.0 next: specifier: 16.1.6 version: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.99.0) + next-auth: + specifier: 4.24.13 + version: 4.24.13(@auth/core@0.34.3)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.99.0))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next-themes: + specifier: ^0.4.6 + version: 0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + openai: + specifier: ^5.15.0 + version: 5.23.2(ws@8.21.0)(zod@4.3.6) posthog-js: specifier: ^1.368.0 version: 1.368.0 @@ -62,9 +170,18 @@ importers: react-dom: specifier: 19.2.3 version: 19.2.3(react@19.2.3) + react-hook-form: + specifier: ^7.62.0 + version: 7.79.0(react@19.2.3) react-markdown: specifier: ^10.1.0 version: 10.1.0(@types/react@19.2.14)(react@19.2.3) + react-resizable-panels: + specifier: ^3.0.6 + version: 3.0.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + remark-gfm: + specifier: ^4.0.1 + version: 4.0.1 schema-dts: specifier: ^2.0.0 version: 2.0.0(typescript@5.9.3) @@ -80,6 +197,9 @@ importers: tw-animate-css: specifier: ^1.4.0 version: 1.4.0 + vaul: + specifier: ^1.1.2 + version: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) zustand: specifier: ^5.0.12 version: 5.0.12(@types/react@19.2.14)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)) @@ -118,6 +238,20 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + '@auth/core@0.34.3': + resolution: {integrity: sha512-jMjY/S0doZnWYNV90x0jmU3B+UcrsfGYnukxYrRbj0CVvGI/MX3JbHsxSrx2d4mbnXaUsqJmAcDfoQWA6r0lOw==} + peerDependencies: + '@simplewebauthn/browser': ^9.0.1 + '@simplewebauthn/server': ^9.0.2 + nodemailer: ^7 + peerDependenciesMeta: + '@simplewebauthn/browser': + optional: true + '@simplewebauthn/server': + optional: true + nodemailer: + optional: true + '@babel/code-frame@7.29.0': resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} @@ -517,6 +651,19 @@ packages: '@fortawesome/fontawesome-svg-core': ~1 || ~6 || ~7 react: ^16.3 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@google/genai@1.52.0': + resolution: {integrity: sha512-gwSvbpiN/17O9TbsqSsE/OzZcpv5Fo4RQjdngGgogtuB9RsyJ8ZHhX5KjHj1bp5N9snN2eK8LDGXSaWW2hof8Q==} + engines: {node: '>=20.0.0'} + peerDependencies: + '@modelcontextprotocol/sdk': ^1.25.2 + peerDependenciesMeta: + '@modelcontextprotocol/sdk': + optional: true + + '@google/generative-ai@0.24.1': + resolution: {integrity: sha512-MqO+MLfM6kjxcKoy0p1wRzG3b4ZZXtPI+z2IE26UogS2Cm/XHO+7gGRBh6gcJsOiIVoH93UwKvW4HdgiOZCy9Q==} + engines: {node: '>=18.0.0'} + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -698,6 +845,9 @@ packages: '@kurkle/color@0.3.4': resolution: {integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==} + '@mongodb-js/saslprep@1.4.11': + resolution: {integrity: sha512-o9rAHc0IpIjuPSxRutWpE1F62x7n+4mVS4rCNHkzhIUMQcc18bb6xEq5wd2NdN0WjepIyXIppRshYI2kQDOZVA==} + '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} @@ -755,6 +905,9 @@ packages: cpu: [x64] os: [win32] + '@nodable/entities@2.2.0': + resolution: {integrity: sha512-9uGyhaQavEUMC8AIddIjau4NsnsXhou+j5sBAGojCM1oxmQpVKTWR/9JxABD6UAv12vpIms55fPZKFQEhG6uBg==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -843,6 +996,9 @@ packages: resolution: {integrity: sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw==} engines: {node: '>=14'} + '@panva/hkdf@1.2.1': + resolution: {integrity: sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==} + '@parcel/watcher-android-arm64@2.5.6': resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} engines: {node: '>= 10.0.0'} @@ -973,9 +1129,54 @@ packages: '@radix-ui/number@1.1.1': resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} + '@radix-ui/number@1.1.2': + resolution: {integrity: sha512-ceTwaxc4I5IOi97DgCotl3pqiyRGvffcc0oOsE2dQYaJOFIDsDt4VWG6xEbg1QePv9QWausCEIppud/tJ1wNig==} + '@radix-ui/primitive@1.1.3': resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + '@radix-ui/primitive@1.1.4': + resolution: {integrity: sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==} + + '@radix-ui/react-accordion@1.2.14': + resolution: {integrity: sha512-iE8YB9nmTBH8zd73ofBISZ8JCzgMoMkATJr7qDwa6u5F1+7mTM81V6fa71jgZ65rpjVpecDf1vSnwIFP9Ly1zw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-alert-dialog@1.1.17': + resolution: {integrity: sha512-563ygGeyWPrxyVCNp7OV4rE2aIXhFPknpFyo4wbDlcyMMPZ6ySh+zC5WTvY0ZFLgPTg/QB6tA8PyDQyJ2b4cPg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-arrow@1.1.10': + resolution: {integrity: sha512-j2VTDz1vgCsmuG0k5lBfOcM8n5JPFqZBcMryasFjHYMhwxYL5SRUV5lMSUpRdNtw3D/Sv8pzJtrlAgkssYSsQQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-arrow@1.1.7': resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} peerDependencies: @@ -989,6 +1190,71 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-aspect-ratio@1.1.10': + resolution: {integrity: sha512-kbI7NrqhDeuytYrq7JjAsoXczvL8wgj2tc1MyaYWm+50bMKHCHQtVWCryslx4cCpmCTTkBcwQckE4CmmGV2haQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-avatar@1.2.0': + resolution: {integrity: sha512-am/CwltXtmtdtP+5FbYblYDnMa/zuKcMJP1i3/SJMDXXfj2mG+BTqLH2wucqeyyiQMursUtg/5cK+Nh2pCaSOA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-checkbox@1.3.5': + resolution: {integrity: sha512-pREzrmNnVwGvYaBoM64huTRK7B3lrTRuwj8A9nwhPiEtMb+yudiWh6zWAqEtP0Dzd5+iBa1Ki7V1pCxV8ExMdA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collapsible@1.1.14': + resolution: {integrity: sha512-9bT+FvifX1FK2Mj6UEsTdyu0cN3JaA3KdfhaBao+ONrYFy/pyOy3TU1TNw7iOk1o+0hOEq67RojlUUmoFGwxyA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collection@1.1.10': + resolution: {integrity: sha512-IVVz4EvBcKjrzKgof714qDnz/SzQAkLA2Emh5edlHbgcE6fNd3Un6CJLlaYcnm8N4JmAtzQgse4dOKxcD2yc9g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-collection@1.1.7': resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} peerDependencies: @@ -1011,6 +1277,28 @@ packages: '@types/react': optional: true + '@radix-ui/react-compose-refs@1.1.3': + resolution: {integrity: sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context-menu@2.3.1': + resolution: {integrity: sha512-XbrxS68W5dyiE4fAb96yvJwSVU5x66B20A99sD5Mk3xSWK/LqeOnx6TZnim1KieMjXS/CTFq8reOAjWxas2G8Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-context@1.1.2': resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: @@ -1020,6 +1308,28 @@ packages: '@types/react': optional: true + '@radix-ui/react-context@1.1.4': + resolution: {integrity: sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dialog@1.1.17': + resolution: {integrity: sha512-TDTYmpdq8dI2+Xgvgj9AJ8Ghqq+Eph/TRVEdaFQPDItIY+6QSkU7MJMeevw1568Yw/2Ijz8BTphPSP2XejKphw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-direction@1.1.1': resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: @@ -1029,6 +1339,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-direction@1.1.2': + resolution: {integrity: sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-dismissable-layer@1.1.11': resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} peerDependencies: @@ -1042,17 +1361,21 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-focus-guards@1.1.3': - resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + '@radix-ui/react-dismissable-layer@1.1.13': + resolution: {integrity: sha512-2v+zNAWWe0ySxgC0D0yeXMPQ23xZVgXZTerTz+JKlmdRj6gfTqmCcR29jb6d290DezXPGgruHWDX/vYUebtErg==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-focus-scope@1.1.7': - resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + '@radix-ui/react-dropdown-menu@2.1.18': + resolution: {integrity: sha512-PZGV82gFk0WltDRI//SsG28ZIjlo9ANTmoNYg0jLNzXXiDsAy5PkOOYQaVD1pPxY6t7gxffb1QMD6qaUvsBZdw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1064,8 +1387,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-id@1.1.1': - resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + '@radix-ui/react-focus-guards@1.1.3': + resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1073,8 +1396,17 @@ packages: '@types/react': optional: true - '@radix-ui/react-popper@1.2.8': - resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} + '@radix-ui/react-focus-guards@1.1.4': + resolution: {integrity: sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.1.10': + resolution: {integrity: sha512-Fas/lXQqhVvqwAb64s5RFeHiHYElZ6SUQbZaNd6EkfhP/Al7wTIQ9WIR4QVX475tlu5yFCEdDcJH6/UwsZjMWw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1086,8 +1418,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-portal@1.1.9': - resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + '@radix-ui/react-focus-scope@1.1.7': + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1099,8 +1431,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.1.3': - resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + '@radix-ui/react-hover-card@1.1.17': + resolution: {integrity: sha512-GjZQIEANVkuuWeztlKz6QEHe31ZX2iDfHzcTMCQVZXC0JyQrgfKWSC+LOOEw6aVV64zyjzobIzSA4AU4eKWrHA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1112,8 +1444,26 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-select@2.2.6': - resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-id@1.1.2': + resolution: {integrity: sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-label@2.1.10': + resolution: {integrity: sha512-ib0zvq2ZsAqKm5tRnqGJn3vOxSgIts5ToxsXT0q1S/GfLD1Zj7UOEnkw8u2w6sRmn47djpQWuSU1DCL1R29/yw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1125,89 +1475,125 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-slot@1.2.3': - resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + '@radix-ui/react-menu@2.1.18': + resolution: {integrity: sha512-lj8Rxjtn6zJq1oSbE/uDtAwCbB9BnxgHD+8MwJMuTh6u1dPamYhW9iuELr/Z8d0D/UysFblYYHeBPwi7T4k0YQ==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-callback-ref@1.1.1': - resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + '@radix-ui/react-menubar@1.1.18': + resolution: {integrity: sha512-hX7EGx/oFq6DPY27GQuP/2wP48GHf5LG6r06VgNJlG+znmDS8OfopZcRcGly3L4lsB9FqpmLx6JQSE9P3BUpyw==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-controllable-state@1.2.2': - resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + '@radix-ui/react-navigation-menu@1.2.16': + resolution: {integrity: sha512-nJ0SkrSQgudyYhMiYeHA1ayLVuduEJCFLan1RZZN7c9kqzzCFLaU9kuy81uNtqzweM9YaQPgWzxi9MwQ9jZ04g==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-effect-event@0.0.2': - resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + '@radix-ui/react-popover@1.1.17': + resolution: {integrity: sha512-/YSAOdJ7YJvdn7bn5sdSx2egW+SKY+u7O5RyAVs94Ymrg2fg5QTSFPMRkzvhGyFuE4/qsmPBdrwYoZMZh/4f+g==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-escape-keydown@1.1.1': - resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + '@radix-ui/react-popper@1.2.8': + resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-layout-effect@1.1.1': - resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + '@radix-ui/react-popper@1.3.1': + resolution: {integrity: sha512-bhnq/0DEPTi2lsOD3J5rTL65qUKHbKbhqHsmN9TMiclSXpipi651ooUKPPp6G5lF/WiHBdn1s0Wuqsn+myVAvw==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-previous@1.1.1': - resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} + '@radix-ui/react-portal@1.1.12': + resolution: {integrity: sha512-m309havGzsjLHHaIX50G5PlvRs3xkgPCsGk/5PTvYm8D5q33yG0J7w/712PTOhid7NTaFETtnSXjngHQavvhVw==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-rect@1.1.1': - resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-size@1.1.1': - resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + '@radix-ui/react-presence@1.1.6': + resolution: {integrity: sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-visually-hidden@1.2.3': - resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1219,9 +1605,378 @@ packages: '@types/react-dom': optional: true - '@radix-ui/rect@1.1.1': + '@radix-ui/react-primitive@2.1.6': + resolution: {integrity: sha512-wetd0QI77DbvrPpTAvH1SqOxsYF2wZe5TNxqwOd5Ty4XDpV3dpV0s8K/1MGMJBeY5o7lg8ub5VIt1Ub+yVen6g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-progress@1.1.10': + resolution: {integrity: sha512-JYzEg60lk79PwKM27WZyKd7PW8O4OM5jOaFfRPfOyeXmMw7tLJh5kSj+CEjVTehszuwml/AdCzPGMXBTGf4BBw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-radio-group@1.4.1': + resolution: {integrity: sha512-/SSxZdKEo2Eo29FFRKd06EfFDYp8HryKg0WYg7QLXaydPzl52YfSvCH2a3QDBRdtcuwACroJT8UVjQVgOJ7P9A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.13': + resolution: {integrity: sha512-9gkwneI0guf8JDmrFxPjJF6Ozzgioyw+/lonYNCwefS9ZHA05er0BVHiXr+LbWGHxUfczvMY6G1oiZZi1VzjRw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-scroll-area@1.2.12': + resolution: {integrity: sha512-xuafVzQiTCLsyEjakowTdG3OgTXsmO7IdCiO77otIa+z44xoLNs9Do5eg7POFumIOCjtG6djfm6RKUKpUa/csA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-select@2.2.6': + resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-separator@1.1.10': + resolution: {integrity: sha512-Y6K6jLQCVfCnTL2MEtGxDLffkhNfEfHsEg3Wa8JU+IWdn3EWbLXd3OuOfQRN7p/W/cUce1WyTk3QeuAoDBzN9g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slider@1.4.1': + resolution: {integrity: sha512-r91WSpQucNGFKAIxT8FT0H0zyjd5tJlqObLp7LOMV4z49KoDCwjy01w3vDOU4e1wxhF9IgjYco7SB6byOW7Buw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-slot@1.3.0': + resolution: {integrity: sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-switch@1.3.1': + resolution: {integrity: sha512-55bQtCnOB0BohomSHi6qvQXpJEEqUGDm6hRrM0Bph5OXwhSegqkd8IqgBAQkM1IlgUlWZIxpxRcpOEfRIgimyw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tabs@1.1.15': + resolution: {integrity: sha512-kxc9gI6/HfcU4nfMMVS3AmQK414kbU1IE6UCJmMmxjhO3cRPXOyYnmvyKD+ODt7q56nRq9l7Wovi6uaGwKgMlg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toggle-group@1.1.13': + resolution: {integrity: sha512-Xb9PLtlvU66F36LiKba6dFswu6V2mDkgidO4fNSbQHQwmZ9ObxMIO17MN/LJ4aWJecVuSVLAHPZjyeMzJrgeiA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toggle@1.1.12': + resolution: {integrity: sha512-AsAVsYNZIlRBsci7BhE+QyQeKd1h6TffJYt+lF0QQkd5OpQ3klfIByPsCb4G0h/Fq6PJwh1FYNluzBFYzhk4+w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tooltip@1.2.10': + resolution: {integrity: sha512-NlNe8D0dWEpVfXFli90IO6X07Josx/b1iu98tDnx9Xv0HT4wLIL+m2VOheMHhK7qbp2HoTBqALEFzGyZs/levw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.2': + resolution: {integrity: sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.2.3': + resolution: {integrity: sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-effect-event@0.0.3': + resolution: {integrity: sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.2': + resolution: {integrity: sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-is-hydrated@0.1.1': + resolution: {integrity: sha512-qwOiz4Tjo8CNnrOLAYUMXeZwDzXgXpvK4TKQPmWLECM9XoWvA6+0Z2/7Ag3A4ivjS4ovbLJPbskkxioFyBhr8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.2': + resolution: {integrity: sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.1.1': + resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.1.2': + resolution: {integrity: sha512-IGBQPtRFdhN6MQ8dbegVmBq1LVZluya3F1jWY+puIcQC3MHctRwTDSBWCkL/3ZcnMJLTMJ++Z+ktmvg0F89iCw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.2': + resolution: {integrity: sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.1': + resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.2': + resolution: {integrity: sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.2.3': + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-visually-hidden@1.2.6': + resolution: {integrity: sha512-jCE0WljWifTI4niIMCll06kGpsJTAPiZVU9H4WR1N6qW7At9ystHbN7dDB+we2xH535roFHj7qKS+RGj0FMDWQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.1': resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + '@radix-ui/rect@1.1.2': + resolution: {integrity: sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA==} + '@react-types/shared@3.34.0': resolution: {integrity: sha512-gp6xo/s2lX54AlTjOiqwDnxA7UW79BNvI9dB9pr3LZTzRKCd1ZA+ZbgKw/ReIiWuvvVw/8QFJpnqeeFyLocMcQ==} peerDependencies: @@ -1360,6 +2115,9 @@ packages: '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + '@types/debug@4.1.13': resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} @@ -1406,6 +2164,9 @@ packages: '@types/react@19.2.14': resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} + '@types/retry@0.12.0': + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -1415,6 +2176,12 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/webidl-conversions@7.0.3': + resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==} + + '@types/whatwg-url@11.0.5': + resolution: {integrity: sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==} + '@typescript-eslint/eslint-plugin@8.58.0': resolution: {integrity: sha512-RLkVSiNuUP1C2ROIWfqX+YcUfLaSnxGE/8M+Y57lopVwg9VTYYfhuz15Yf1IzCKgZj6/rIbYTmJCUSqr76r0Wg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1582,6 +2349,10 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} @@ -1589,6 +2360,9 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + anynum@1.0.1: + resolution: {integrity: sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A==} + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -1665,11 +2439,17 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + baseline-browser-mapping@2.10.12: resolution: {integrity: sha512-qyq26DxfY4awP2gIRXhhLWfwzwI+N5Nxk6iQi8EFizIaWIjqicQTE4sLnZZVdeKPRcVNoJOkkpfzoIYuvCKaIQ==} engines: {node: '>=6.0.0'} hasBin: true + bignumber.js@9.3.1: + resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + brace-expansion@1.1.13: resolution: {integrity: sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==} @@ -1686,6 +2466,13 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + bson@6.10.4: + resolution: {integrity: sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==} + engines: {node: '>=16.20.1'} + + buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -1751,6 +2538,12 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + cmdk@1.1.1: + resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + react-dom: ^18 || ^19 || ^19.0.0-rc + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -1780,6 +2573,14 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + core-js@3.49.0: resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==} @@ -1927,6 +2728,10 @@ packages: damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} @@ -2007,6 +2812,9 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} + ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + electron-to-chromium@1.5.328: resolution: {integrity: sha512-QNQ5l45DzYytThO21403XN3FvK0hOkWDG8viNf6jqS42msJ8I4tGDSpBCgvDRRPnkffafiwAym2X2eHeGD2V0w==} @@ -2208,6 +3016,13 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-xml-builder@1.2.0: + resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==} + + fast-xml-parser@5.9.2: + resolution: {integrity: sha512-DYPkXnVSJHAGAkSBeVYhEo/seIpz2SLr9OQcX7m6lXaX3gvoB+DCKzFdZIEhZGI3I1DUhObBAUOT/v2xfoXz/w==} + hasBin: true + fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} @@ -2220,6 +3035,10 @@ packages: picomatch: optional: true + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + fflate@0.4.8: resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==} @@ -2253,6 +3072,10 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + fparser@3.1.0: resolution: {integrity: sha512-P9hS9RjO7l4JvWHcDUqos0BXAGzJN4WwJBCh7gwja/23TuW7jfpOKZ+jlGoYp4ZUDnbAJ+rDyKLkIJFCLzgZ+w==} @@ -2274,6 +3097,14 @@ packages: fuzzysort@3.1.0: resolution: {integrity: sha512-sR9BNCjBg6LNgwvxlBd0sBABvQitkLzoVY9MYYROQVX/FvfJ4Mai9LsGhDgd8qYdds0bY77VzYd5iuB+v5rwQQ==} + gaxios@7.1.5: + resolution: {integrity: sha512-5FZy72Rh8LhtjmvDrKkI+lVhrsQrVKVsItxMoDm5mNQE+xR0WVIIs+jzPSJgBvKVsLi24fZhXJIsNI0bihDzFg==} + engines: {node: '>=18'} + + gcp-metadata@8.1.2: + resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==} + engines: {node: '>=18'} + generator-function@2.0.1: resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} engines: {node: '>= 0.4'} @@ -2321,6 +3152,14 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} + google-auth-library@10.7.0: + resolution: {integrity: sha512-QpTAbNJ36TliZLx3TTtahR8HG0hN9RllL1e3FymOvQSIKK8JmgV58H924ub2wa2DsS3ANjjP1Aw1N+Ramc8hqQ==} + engines: {node: '>=18'} + + google-logging-utils@1.1.3: + resolution: {integrity: sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==} + engines: {node: '>=14'} + gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -2373,6 +3212,10 @@ packages: html-url-attributes@3.0.1: resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -2403,6 +3246,12 @@ packages: inline-style-parser@0.2.7: resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} + input-otp@1.4.2: + resolution: {integrity: sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} @@ -2521,6 +3370,9 @@ packages: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} + is-unsafe@1.0.1: + resolution: {integrity: sha512-CLK2+VdgERgD96EYm5lUQssZYlRg2tkZnbsxZoacmSiRxiFJ4Nk4SzjCl+Ur+v3kXIY9dTIdb3IH22y1mZ56LA==} + is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -2547,6 +3399,12 @@ packages: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true + jose@4.15.9: + resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} + + jose@5.10.0: + resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} + js-cookie@3.0.5: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} engines: {node: '>=14'} @@ -2563,6 +3421,9 @@ packages: engines: {node: '>=6'} hasBin: true + json-bigint@1.0.0: + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -2588,9 +3449,19 @@ packages: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} + jwa@2.0.1: + resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} + + jws@4.0.1: + resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} + kapellmeister@3.0.1: resolution: {integrity: sha512-S7+gYcziMREv8RxG46138mb1O4Xf9II/bCxEJPYkhlZ7PgGWTlicgsyNad/DGc5oEAlWGLXE5ExLbTDVvJmgDA==} + kareem@2.6.3: + resolution: {integrity: sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==} + engines: {node: '>=12.0.0'} + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -2704,6 +3575,10 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + lucide-react@1.7.0: resolution: {integrity: sha512-yI7BeItCLZJTXikmK4KNUGCKoGzSvbKlfCvw44bU4fXAL6v3gYS4uHD1jzsLkfwODYwI6Drw5Tu9Z5ulDe0TSg==} peerDependencies: @@ -2712,6 +3587,9 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -2722,6 +3600,24 @@ packages: mdast-util-from-markdown@2.0.3: resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + mdast-util-mdx-expression@2.0.1: resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} @@ -2746,6 +3642,9 @@ packages: memoize-one@6.0.0: resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + memory-pager@1.5.0: + resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -2753,6 +3652,27 @@ packages: micromark-core-commonmark@2.0.3: resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + micromark-factory-destination@2.0.1: resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} @@ -2856,9 +3776,51 @@ packages: mobx@6.15.3: resolution: {integrity: sha512-6+ZSYDs5zgH5CdGfEU2q2Lsa5PztVryL1ys7kAImTU25n2A9LAMj/yneVsQpd03MfwMLDQF+7kakJR9Z+cQxSw==} + mongodb-connection-string-url@3.0.2: + resolution: {integrity: sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==} + + mongodb@6.20.0: + resolution: {integrity: sha512-Tl6MEIU3K4Rq3TSHd+sZQqRBoGlFsOgNrH5ltAcFBV62Re3Fd+FcaVf8uSEQFOJ51SDowDVttBTONMfoYWrWlQ==} + engines: {node: '>=16.20.1'} + peerDependencies: + '@aws-sdk/credential-providers': ^3.188.0 + '@mongodb-js/zstd': ^1.1.0 || ^2.0.0 + gcp-metadata: ^5.2.0 + kerberos: ^2.0.1 + mongodb-client-encryption: '>=6.0.0 <7' + snappy: ^7.3.2 + socks: ^2.7.1 + peerDependenciesMeta: + '@aws-sdk/credential-providers': + optional: true + '@mongodb-js/zstd': + optional: true + gcp-metadata: + optional: true + kerberos: + optional: true + mongodb-client-encryption: + optional: true + snappy: + optional: true + socks: + optional: true + + mongoose@8.24.0: + resolution: {integrity: sha512-EEZwOibDPZ5uZN3bFapfnRskEbdljAf6sP9ln6u+P4e5IfkOAh6Tqw2g8/Tag++KHOAJ095WXT/c0uqRq4Vckg==} + engines: {node: '>=16.20.1'} + mousetrap@1.6.5: resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==} + mpath@0.9.0: + resolution: {integrity: sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==} + engines: {node: '>=4.0.0'} + + mquery@5.0.0: + resolution: {integrity: sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==} + engines: {node: '>=14.0.0'} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -2875,6 +3837,26 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + next-auth@4.24.13: + resolution: {integrity: sha512-sgObCfcfL7BzIK76SS5TnQtc3yo2Oifp/yIpfv6fMfeBOiBJkDWF3A2y9+yqnmJ4JKc2C+nMjSjmgDeTwgN1rQ==} + peerDependencies: + '@auth/core': 0.34.3 + next: ^12.2.5 || ^13 || ^14 || ^15 || ^16 + nodemailer: ^7.0.7 + react: ^17.0.2 || ^18 || ^19 + react-dom: ^17.0.2 || ^18 || ^19 + peerDependenciesMeta: + '@auth/core': + optional: true + nodemailer: + optional: true + + next-themes@0.4.6: + resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} + peerDependencies: + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + next@16.1.6: resolution: {integrity: sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==} engines: {node: '>=20.9.0'} @@ -2899,17 +3881,36 @@ packages: node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead + node-exports-info@1.6.0: resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} engines: {node: '>= 0.4'} + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-releases@2.0.36: resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} + oauth4webapi@2.17.0: + resolution: {integrity: sha512-lbC0Z7uzAFNFyzEYRIC+pkSVvDHJTbEW+dYlSBAlCYDe6RxUkJ26bClhk8ocBZip1wfI9uKTe0fm4Ib4RHn6uQ==} + + oauth@0.9.15: + resolution: {integrity: sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-hash@2.2.0: + resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} + engines: {node: '>= 6'} + object-inspect@1.13.4: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} @@ -2938,6 +3939,25 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} + oidc-token-hash@5.2.0: + resolution: {integrity: sha512-6gj2m8cJZ+iSW8bm0FXdGF0YhIQbKrfP4yWTNzxc31U6MOjfEmB1rHvlYvxI1B7t7BCi1F2vYTT6YhtQRG4hxw==} + engines: {node: ^10.13.0 || >=12.0.0} + + openai@5.23.2: + resolution: {integrity: sha512-MQBzmTulj+MM5O8SKEk/gL8a7s5mktS9zUtAkU257WjvobGc9nKcBuVwjyEEcb9SI8a8Y2G/mzn3vm9n1Jlleg==} + hasBin: true + peerDependencies: + ws: ^8.18.0 + zod: ^3.23.8 + peerDependenciesMeta: + ws: + optional: true + zod: + optional: true + + openid-client@5.7.1: + resolution: {integrity: sha512-jDBPgSVfTnkIh71Hg9pRvtJc6wTwqjRkN88+gCFtYWrlP4Yx2Dsrow8uPi3qLr/aeymPF3o2+dS+wOpglK04ew==} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -2954,6 +3974,10 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} + p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + papaparse@5.5.3: resolution: {integrity: sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==} @@ -2972,6 +3996,10 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + path-expression-matcher@1.5.0: + resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==} + engines: {node: '>=14.0.0'} + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -3021,6 +4049,19 @@ packages: rxjs: optional: true + preact-render-to-string@5.2.3: + resolution: {integrity: sha512-aPDxUn5o3GhWdtJtW0svRC2SS/l8D9MAgo2+AWml+BhDImb27ALf04Q2d+AHqUUOc6RdSXFIBVa2gxzgMKgtZA==} + peerDependencies: + preact: '>=10' + + preact-render-to-string@5.2.6: + resolution: {integrity: sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==} + peerDependencies: + preact: '>=10' + + preact@10.11.3: + resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==} + preact@10.29.1: resolution: {integrity: sha512-gQCLc/vWroE8lIpleXtdJhTFDogTdZG9AjMUpVkDf2iTCNwYNWA+u16dL41TqUDJO4gm2IgrcMv3uTpjd4Pwmg==} @@ -3028,6 +4069,9 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + pretty-format@3.8.0: + resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} + prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -3081,6 +4125,12 @@ packages: react: '>= 16.x' react-dom: '>= 16.x' + react-hook-form@7.79.0: + resolution: {integrity: sha512-mhYp/MTmXvzYX6AJcJVko0rktoIhhmRnEouObj4wF5i/tCttgJvnp1+9wRkpITZjDTqpo4IOSJqu0dBlPlV/Lw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -3115,6 +4165,12 @@ packages: '@types/react': optional: true + react-resizable-panels@3.0.6: + resolution: {integrity: sha512-b3qKHQ3MLqOgSS+FRYKapNkJZf5EQzuf6+RLiq1/IlTHw99YrZ2NJZLk4hQIzTnnIkRg2LUqyVinu6YWWpUYew==} + 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 + react-select@5.10.2: resolution: {integrity: sha512-Z33nHdEFWq9tfnfVXaiM12rbJmk+QjFEztWLtmXqQhz6Al4UZZ9xc0wiatmGtUOCCnHN0WizL3tCMYRENX4rVQ==} peerDependencies: @@ -3158,12 +4214,18 @@ packages: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} remark-rehype@11.1.2: resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + rematrix@0.2.2: resolution: {integrity: sha512-agFFS3RzrLXJl5LY5xg/xYyXvUuVAnkhgKO7RaO9J1Ssth6yvbO+PIiV67V59MB5NCdAK2flvGvNT4mdKVniFA==} @@ -3193,6 +4255,10 @@ packages: engines: {node: '>= 0.4'} hasBin: true + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -3210,6 +4276,9 @@ packages: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-push-apply@1.0.0: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} @@ -3287,6 +4356,9 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} + sift@17.1.3: + resolution: {integrity: sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==} + simple-statistics@7.8.9: resolution: {integrity: sha512-YT6MLqYsz7y1rQZOLFlOCCgSRpCi6bqY417yhoOLI7aVoBi29dD39EPrOE03W9DY25H0J0jizVsHZnkLzyGJFg==} @@ -3307,6 +4379,9 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + sparse-bitfield@3.0.3: + resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} + stable-hash@0.0.5: resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} @@ -3354,6 +4429,9 @@ packages: striptags@3.2.0: resolution: {integrity: sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==} + strnum@2.4.1: + resolution: {integrity: sha512-M9eUSMT2dCB2cTNPG7UYj6KuK7RJR2SN2+yCV/fTW3xzTCS6EaGZ5pSMgDIjB7r8zSfTGk+dvvn9rTjpVS9Mwg==} + style-to-js@1.1.21: resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} @@ -3423,6 +4501,10 @@ packages: resolution: {integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==} hasBin: true + tr46@5.1.1: + resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} + engines: {node: '>=18'} + trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -3566,10 +4648,21 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). + hasBin: true + uuidv7@1.2.1: resolution: {integrity: sha512-4kPkK3/XTQW9Hbm4CaqfICn+kY9LJtDVEOfgsRRra/+n2Ofg4NqzRFceAkxvQ/Ud/6BpHOPzj8cirqM7TzTN5Q==} hasBin: true + vaul@1.1.2: + resolution: {integrity: sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==} + 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 + versor@0.2.0: resolution: {integrity: sha512-2UJ32VNh+lMUP9RlLoneEdrnupW3eIM9TGdTuaa+HSUqKACt9Vvw+xoGFGdd0YsUnGidTNyuxdhQRhJVpDAvqw==} engines: {node: '>=12'} @@ -3580,9 +4673,21 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + web-vitals@5.2.0: resolution: {integrity: sha512-i2z98bEmaCqSDiHEDu+gHl/dmR4Q+TxFmG3/13KkMO+o8UxQzCqWaDRCiLgEa41nlO4VpXSI0ASa1xWmO9sBlA==} + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + + whatwg-url@14.2.0: + resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} + engines: {node: '>=18'} + which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -3608,9 +4713,28 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} + ws@8.21.0: + resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} + 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 + + xml-naming@0.1.0: + resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==} + engines: {node: '>=16.0.0'} + yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yaml@1.10.3: resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} engines: {node: '>= 6'} @@ -3653,6 +4777,17 @@ snapshots: '@alloc/quick-lru@5.2.0': {} + '@auth/core@0.34.3': + dependencies: + '@panva/hkdf': 1.2.1 + '@types/cookie': 0.6.0 + cookie: 0.6.0 + jose: 5.10.0 + oauth4webapi: 2.17.0 + preact: 10.11.3 + preact-render-to-string: 5.2.3(preact@10.11.3) + optional: true + '@babel/code-frame@7.29.0': dependencies: '@babel/helper-validator-identifier': 7.28.5 @@ -4089,6 +5224,19 @@ snapshots: prop-types: 15.8.1 react: 19.2.3 + '@google/genai@1.52.0': + dependencies: + google-auth-library: 10.7.0 + p-retry: 4.6.2 + protobufjs: 7.5.4 + ws: 8.21.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@google/generative-ai@0.24.1': {} + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.7': @@ -4230,6 +5378,10 @@ snapshots: '@kurkle/color@0.3.4': {} + '@mongodb-js/saslprep@1.4.11': + dependencies: + sparse-bitfield: 3.0.3 + '@napi-rs/wasm-runtime@0.2.12': dependencies: '@emnapi/core': 1.9.1 @@ -4267,6 +5419,8 @@ snapshots: '@next/swc-win32-x64-msvc@16.1.6': optional: true + '@nodable/entities@2.2.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4357,6 +5511,8 @@ snapshots: '@opentelemetry/semantic-conventions@1.40.0': {} + '@panva/hkdf@1.2.1': {} + '@parcel/watcher-android-arm64@2.5.6': optional: true @@ -4455,47 +5611,209 @@ snapshots: '@radix-ui/number@1.1.1': {} + '@radix-ui/number@1.1.2': {} + '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/primitive@1.1.4': {} + + '@radix-ui/react-accordion@1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collapsible': 1.1.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-collection': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-alert-dialog@1.1.17(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dialog': 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-arrow@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-aspect-ratio@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-avatar@1.2.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-is-hydrated': 0.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-checkbox@1.3.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-collapsible@1.1.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-collection@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-compose-refs@1.1.3(@types/react@19.2.14)(react@19.2.3)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-context-menu@2.3.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-menu': 2.1.18(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.14)(react@19.2.3)': + '@radix-ui/react-context@1.1.2(@types/react@19.2.14)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-context@1.1.2(@types/react@19.2.14)(react@19.2.3)': + '@radix-ui/react-context@1.1.4(@types/react@19.2.14)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-dialog@1.1.17(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-portal': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + aria-hidden: 1.2.6 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-direction@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-direction@1.1.2(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -4509,12 +5827,57 @@ snapshots: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-dismissable-layer@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-escape-keydown': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-dropdown-menu@2.1.18(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-menu': 2.1.18(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.14)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-focus-guards@1.1.4(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-focus-scope@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) @@ -4526,6 +5889,23 @@ snapshots: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-hover-card@1.1.17(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-popper': 1.3.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-id@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) @@ -4533,6 +5913,111 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-id@1.1.2(@types/react@19.2.14)(react@19.2.3)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-label@2.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-menu@2.1.18(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collection': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-popper': 1.3.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.3) + aria-hidden: 1.2.6 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-menubar@1.1.18(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collection': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-menu': 2.1.18(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-navigation-menu@1.2.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collection': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-visually-hidden': 1.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-popover@1.1.17(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-popper': 1.3.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + aria-hidden: 1.2.6 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@floating-ui/react-dom': 2.1.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -4551,6 +6036,34 @@ snapshots: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-popper@1.3.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@floating-ui/react-dom': 2.1.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-arrow': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-rect': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/rect': 1.1.2 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-portal@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -4561,6 +6074,15 @@ snapshots: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-presence@1.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.3) @@ -4570,6 +6092,77 @@ snapshots: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-primitive@2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-progress@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-radio-group@1.4.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-roving-focus@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collection': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-scroll-area@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/number': 1.1.2 + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/number': 1.1.1 @@ -4599,6 +6192,34 @@ snapshots: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-separator@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-slider@1.4.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/number': 1.1.2 + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collection': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-slot@1.2.3(@types/react@19.2.14)(react@19.2.3)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) @@ -4606,12 +6227,102 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-slot@1.3.0(@types/react@19.2.14)(react@19.2.3)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-switch@1.3.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-tabs@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-toggle-group@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-toggle': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-toggle@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-tooltip@1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-popper': 1.3.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-visually-hidden': 1.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-use-callback-ref@1.1.2(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.14)(react@19.2.3)': dependencies: '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.14)(react@19.2.3) @@ -4620,6 +6331,14 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-use-controllable-state@1.2.3(@types/react@19.2.14)(react@19.2.3)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.14)(react@19.2.3)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) @@ -4627,6 +6346,13 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-use-effect-event@0.0.3(@types/react@19.2.14)(react@19.2.3)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) @@ -4634,18 +6360,43 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-use-escape-keydown@1.1.2(@types/react@19.2.14)(react@19.2.3)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-use-is-hydrated@0.1.1(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-use-layout-effect@1.1.2(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-use-previous@1.1.2(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: '@radix-ui/rect': 1.1.1 @@ -4653,6 +6404,13 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-use-rect@1.1.2(@types/react@19.2.14)(react@19.2.3)': + dependencies: + '@radix-ui/rect': 1.1.2 + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) @@ -4660,6 +6418,13 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-use-size@1.1.2(@types/react@19.2.14)(react@19.2.3)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -4669,8 +6434,19 @@ snapshots: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/react-visually-hidden@1.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@radix-ui/rect@1.1.1': {} + '@radix-ui/rect@1.1.2': {} + '@react-types/shared@3.34.0(react@19.2.3)': dependencies: react: 19.2.3 @@ -4832,6 +6608,9 @@ snapshots: tslib: 2.8.1 optional: true + '@types/cookie@0.6.0': + optional: true + '@types/debug@4.1.13': dependencies: '@types/ms': 2.1.0 @@ -4876,6 +6655,8 @@ snapshots: dependencies: csstype: 3.2.3 + '@types/retry@0.12.0': {} + '@types/trusted-types@2.0.7': optional: true @@ -4883,6 +6664,12 @@ snapshots: '@types/unist@3.0.3': {} + '@types/webidl-conversions@7.0.3': {} + + '@types/whatwg-url@11.0.5': + dependencies: + '@types/webidl-conversions': 7.0.3 + '@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -5041,6 +6828,8 @@ snapshots: acorn@8.16.0: {} + agent-base@7.1.4: {} + ajv@6.14.0: dependencies: fast-deep-equal: 3.1.3 @@ -5052,6 +6841,8 @@ snapshots: dependencies: color-convert: 2.0.1 + anynum@1.0.1: {} + argparse@2.0.1: {} aria-hidden@1.2.6: @@ -5151,8 +6942,12 @@ snapshots: balanced-match@4.0.4: {} + base64-js@1.5.1: {} + baseline-browser-mapping@2.10.12: {} + bignumber.js@9.3.1: {} + brace-expansion@1.1.13: dependencies: balanced-match: 1.0.2 @@ -5174,6 +6969,10 @@ snapshots: node-releases: 2.0.36 update-browserslist-db: 1.2.3(browserslist@4.28.1) + bson@6.10.4: {} + + buffer-equal-constant-time@1.0.1: {} + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -5234,6 +7033,18 @@ snapshots: clsx@2.1.1: {} + cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dialog': 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -5254,6 +7065,11 @@ snapshots: convert-source-map@2.0.0: {} + cookie@0.6.0: + optional: true + + cookie@0.7.2: {} + core-js@3.49.0: {} cosmiconfig@7.1.0: @@ -5428,6 +7244,8 @@ snapshots: damerau-levenshtein@1.0.8: {} + data-uri-to-buffer@4.0.1: {} + data-view-buffer@1.0.2: dependencies: call-bound: 1.0.4 @@ -5509,6 +7327,10 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + ecdsa-sig-formatter@1.0.11: + dependencies: + safe-buffer: 5.2.1 + electron-to-chromium@1.5.328: {} emoji-regex@9.2.2: {} @@ -5882,6 +7704,20 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-xml-builder@1.2.0: + dependencies: + path-expression-matcher: 1.5.0 + xml-naming: 0.1.0 + + fast-xml-parser@5.9.2: + dependencies: + '@nodable/entities': 2.2.0 + fast-xml-builder: 1.2.0 + is-unsafe: 1.0.1 + path-expression-matcher: 1.5.0 + strnum: 2.4.1 + xml-naming: 0.1.0 + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -5890,6 +7726,11 @@ snapshots: optionalDependencies: picomatch: 4.0.4 + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + fflate@0.4.8: {} file-entry-cache@8.0.0: @@ -5922,6 +7763,10 @@ snapshots: dependencies: is-callable: 1.2.7 + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + fparser@3.1.0: {} fsevents@2.3.3: @@ -5942,6 +7787,22 @@ snapshots: fuzzysort@3.1.0: {} + gaxios@7.1.5: + dependencies: + extend: 3.0.2 + https-proxy-agent: 7.0.6 + node-fetch: 3.3.2 + transitivePeerDependencies: + - supports-color + + gcp-metadata@8.1.2: + dependencies: + gaxios: 7.1.5 + google-logging-utils: 1.1.3 + json-bigint: 1.0.0 + transitivePeerDependencies: + - supports-color + generator-function@2.0.1: {} gensync@1.0.0-beta.2: {} @@ -5993,6 +7854,19 @@ snapshots: define-properties: 1.2.1 gopd: 1.2.0 + google-auth-library@10.7.0: + dependencies: + base64-js: 1.5.1 + ecdsa-sig-formatter: 1.0.11 + gaxios: 7.1.5 + gcp-metadata: 8.1.2 + google-logging-utils: 1.1.3 + jws: 4.0.1 + transitivePeerDependencies: + - supports-color + + google-logging-utils@1.1.3: {} + gopd@1.2.0: {} graceful-fs@4.2.11: {} @@ -6055,6 +7929,13 @@ snapshots: html-url-attributes@3.0.1: {} + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 @@ -6077,6 +7958,11 @@ snapshots: inline-style-parser@0.2.7: {} + input-otp@1.4.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 @@ -6201,6 +8087,8 @@ snapshots: dependencies: which-typed-array: 1.1.20 + is-unsafe@1.0.1: {} + is-weakmap@2.0.2: {} is-weakref@1.1.1: @@ -6227,6 +8115,10 @@ snapshots: jiti@2.6.1: {} + jose@4.15.9: {} + + jose@5.10.0: {} + js-cookie@3.0.5: {} js-tokens@4.0.0: {} @@ -6237,6 +8129,10 @@ snapshots: jsesc@3.1.0: {} + json-bigint@1.0.0: + dependencies: + bignumber.js: 9.3.1 + json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} @@ -6258,10 +8154,23 @@ snapshots: object.assign: 4.1.7 object.values: 1.2.1 + jwa@2.0.1: + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + + jws@4.0.1: + dependencies: + jwa: 2.0.1 + safe-buffer: 5.2.1 + kapellmeister@3.0.1: dependencies: d3-timer: 1.0.10 + kareem@2.6.3: {} + keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -6350,6 +8259,10 @@ snapshots: dependencies: yallist: 3.1.1 + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + lucide-react@1.7.0(react@19.2.3): dependencies: react: 19.2.3 @@ -6358,6 +8271,8 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + markdown-table@3.0.4: {} + math-intrinsics@1.1.0: {} mdast-util-find-and-replace@3.0.2: @@ -6384,6 +8299,63 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.3 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-mdx-expression@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 @@ -6458,6 +8430,8 @@ snapshots: memoize-one@6.0.0: {} + memory-pager@1.5.0: {} + merge2@1.4.1: {} micromark-core-commonmark@2.0.3: @@ -6479,6 +8453,64 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + micromark-factory-destination@2.0.1: dependencies: micromark-util-character: 2.1.1 @@ -6625,8 +8657,46 @@ snapshots: mobx@6.15.3: {} + mongodb-connection-string-url@3.0.2: + dependencies: + '@types/whatwg-url': 11.0.5 + whatwg-url: 14.2.0 + + mongodb@6.20.0: + dependencies: + '@mongodb-js/saslprep': 1.4.11 + bson: 6.10.4 + mongodb-connection-string-url: 3.0.2 + + mongoose@8.24.0: + dependencies: + bson: 6.10.4 + kareem: 2.6.3 + mongodb: 6.20.0 + mpath: 0.9.0 + mquery: 5.0.0 + ms: 2.1.3 + sift: 17.1.3 + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@mongodb-js/zstd' + - gcp-metadata + - kerberos + - mongodb-client-encryption + - snappy + - socks + - supports-color + mousetrap@1.6.5: {} + mpath@0.9.0: {} + + mquery@5.0.0: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + ms@2.1.3: {} nanoid@3.3.11: {} @@ -6635,6 +8705,28 @@ snapshots: natural-compare@1.4.0: {} + next-auth@4.24.13(@auth/core@0.34.3)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.99.0))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + '@babel/runtime': 7.29.2 + '@panva/hkdf': 1.2.1 + cookie: 0.7.2 + jose: 4.15.9 + next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.99.0) + oauth: 0.9.15 + openid-client: 5.7.1 + preact: 10.29.1 + preact-render-to-string: 5.2.6(preact@10.29.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + uuid: 8.3.2 + optionalDependencies: + '@auth/core': 0.34.3 + + next-themes@0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.99.0): dependencies: '@next/env': 16.1.6 @@ -6664,6 +8756,8 @@ snapshots: node-addon-api@7.1.1: optional: true + node-domexception@1.0.0: {} + node-exports-info@1.6.0: dependencies: array.prototype.flatmap: 1.3.3 @@ -6671,10 +8765,23 @@ snapshots: object.entries: 1.1.9 semver: 6.3.1 + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + node-releases@2.0.36: {} + oauth4webapi@2.17.0: + optional: true + + oauth@0.9.15: {} + object-assign@4.1.1: {} + object-hash@2.2.0: {} + object-inspect@1.13.4: {} object-keys@1.1.1: {} @@ -6715,6 +8822,20 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 + oidc-token-hash@5.2.0: {} + + openai@5.23.2(ws@8.21.0)(zod@4.3.6): + optionalDependencies: + ws: 8.21.0 + zod: 4.3.6 + + openid-client@5.7.1: + dependencies: + jose: 4.15.9 + lru-cache: 6.0.0 + object-hash: 2.2.0 + oidc-token-hash: 5.2.0 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -6738,6 +8859,11 @@ snapshots: dependencies: p-limit: 3.1.0 + p-retry@4.6.2: + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + papaparse@5.5.3: {} parent-module@1.0.1: @@ -6763,6 +8889,8 @@ snapshots: path-exists@4.0.0: {} + path-expression-matcher@1.5.0: {} + path-key@3.1.1: {} path-parse@1.0.7: {} @@ -6813,10 +8941,26 @@ snapshots: dependencies: '@posthog/core': 1.30.2 + preact-render-to-string@5.2.3(preact@10.11.3): + dependencies: + preact: 10.11.3 + pretty-format: 3.8.0 + optional: true + + preact-render-to-string@5.2.6(preact@10.29.1): + dependencies: + preact: 10.29.1 + pretty-format: 3.8.0 + + preact@10.11.3: + optional: true + preact@10.29.1: {} prelude-ls@1.2.1: {} + pretty-format@3.8.0: {} + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -6890,6 +9034,10 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) + react-hook-form@7.79.0(react@19.2.3): + dependencies: + react: 19.2.3 + react-is@16.13.1: {} react-markdown@10.1.0(@types/react@19.2.14)(react@19.2.3): @@ -6936,6 +9084,11 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + react-resizable-panels@3.0.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-select@5.10.2(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: '@babel/runtime': 7.29.2 @@ -7005,6 +9158,17 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 + remark-gfm@4.0.1: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 @@ -7022,6 +9186,12 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + rematrix@0.2.2: {} remeda@2.34.0: {} @@ -7049,6 +9219,8 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + retry@0.13.1: {} + reusify@1.1.0: {} robust-predicates@3.0.3: {} @@ -7067,6 +9239,8 @@ snapshots: has-symbols: 1.1.0 isarray: 2.0.5 + safe-buffer@5.2.1: {} + safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 @@ -7193,6 +9367,8 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + sift@17.1.3: {} + simple-statistics@7.8.9: {} sonner@2.0.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3): @@ -7206,6 +9382,10 @@ snapshots: space-separated-tokens@2.0.2: {} + sparse-bitfield@3.0.3: + dependencies: + memory-pager: 1.5.0 + stable-hash@0.0.5: {} stop-iteration-iterator@1.1.0: @@ -7278,6 +9458,10 @@ snapshots: striptags@3.2.0: {} + strnum@2.4.1: + dependencies: + anynum: 1.0.1 + style-to-js@1.1.21: dependencies: style-to-object: 1.0.14 @@ -7338,6 +9522,10 @@ snapshots: dependencies: commander: 2.20.3 + tr46@5.1.1: + dependencies: + punycode: 2.3.1 + trim-lines@3.0.1: {} trough@2.2.0: {} @@ -7526,8 +9714,19 @@ snapshots: dependencies: react: 19.2.3 + uuid@8.3.2: {} + uuidv7@1.2.1: {} + vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + '@radix-ui/react-dialog': 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + versor@0.2.0: {} vfile-message@4.0.3: @@ -7540,8 +9739,17 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 + web-streams-polyfill@3.3.3: {} + web-vitals@5.2.0: {} + webidl-conversions@7.0.0: {} + + whatwg-url@14.2.0: + dependencies: + tr46: 5.1.1 + webidl-conversions: 7.0.0 + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -7589,8 +9797,14 @@ snapshots: word-wrap@1.2.5: {} + ws@8.21.0: {} + + xml-naming@0.1.0: {} + yallist@3.1.1: {} + yallist@4.0.0: {} + yaml@1.10.3: {} yocto-queue@0.1.0: {} diff --git a/public/bills/builder-mp-seo-image.png b/public/bills/builder-mp-seo-image.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0c210d52ff9976a82663ec1905bef13c1910f7 GIT binary patch literal 31182 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

yLJQ3#K3A%o~Zp2RMK~%A3q5+ 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

MS`vNoYZ#QZ)Fd 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 hD&W`ut>rL \ No newline at end of file diff --git a/public/bills/globe.svg b/public/bills/globe.svg new file mode 100644 index 0000000..567f17b --- /dev/null +++ b/public/bills/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/bills/next.svg b/public/bills/next.svg new file mode 100644 index 0000000..5174b28 --- /dev/null +++ b/public/bills/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/bills/window.svg b/public/bills/window.svg new file mode 100644 index 0000000..b2b2a44 --- /dev/null +++ b/public/bills/window.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/app/bills/BillExplorer.tsx b/src/app/bills/BillExplorer.tsx new file mode 100644 index 0000000..8a3e5b7 --- /dev/null +++ b/src/app/bills/BillExplorer.tsx @@ -0,0 +1,304 @@ +"use client"; + +import { useEffect, useMemo, useState, useCallback, memo } from "react"; +import { BillSummary } from "./types"; +import BillCard from "@/bills/components/BillCard"; +import { + FilterSidebar, + FilterState, + FilterOptions, +} from "@/bills/components/FilterSection/filter-section.component"; +import { useIsMobile } from "@/bills/components/ui/use-mobile"; +import type { JudgementValue } from "@/bills/components/Judgement/judgement.component"; +import { TenetEvaluation } from "@/bills/models/Bill"; +import { sortBillsByMostRecent } from "@/bills/utils/stages-to-dates/stages-to-dates"; + +interface BillExplorerProps { + bills: BillSummary[]; +} + +// type GroupedBills = Array<{ +// statusLabel: string; +// key: string; // normalized status key +// rank: number; +// items: BillSummary[]; +// }>; + +// --- helpers --------------------------------------------------------- + +/** Normalize status to a stable key (case/whitespace/emoji safe) */ +function normalizeStatus(s?: string) { + return (s || "unknown").toLowerCase().replace(/\s+/g, " ").trim(); +} + +function statusRank(statusKey: string): number { + // order buckets from most advanced to least + const buckets: Array<[number, RegExp]> = [ + [0, /\b(royal assent|assented|became law)\b/], + [1, /\b(passed both|passed parliament)\b/], + [2, /\b(third reading).*(senate)\b/], + [3, /\b(report stage).*(senate)\b/], + [4, /\b(committee).*(senate)\b/], + [5, /\b(second reading).*(senate)\b/], + [6, /\b(passed senate)\b/], + + [7, /\b(third reading)\b/], + [8, /\b(report stage)\b/], + [9, /\b(committee)\b/], + [10, /\b(second reading)\b/], + [11, /\b(first reading|introduced|tabled|presented)\b/], + + [20, /\b(reinstated|restored)\b/], + [30, /\b(inactive|no further action)\b/], + [40, /\b(defeated|failed|died|withdrawn)\b/], + ]; + + for (const [rank, rx] of buckets) { + if (rx.test(statusKey)) return rank; + } + return 25; // unknown/misc middle bucket +} + +// /** Humanize a normalized status using the most common original label seen */ +// function pickLabel(statusKey: string, originals: string[]) { +// // choose the most frequent original label for prettier headings +// const counts = new Map(); +// for (const s of originals) counts.set(s, (counts.get(s) || 0) + 1); +// return [...counts.entries()].sort((a, b) => b[1] - a[1])[0]?.[0] || statusKey; +// } + +// -------------------------------------------------------------------- + +function BillExplorer({ bills }: BillExplorerProps) { + const isMobile = useIsMobile(); + const [isFilterCollapsed, setIsFilterCollapsed] = useState(false); + const [filters, setFilters] = useState({ + search: "", + status: [], + category: [], + party: [], + chamber: [], + dateRange: "all", + judgement: [], + }); + + // Filter bills + const filteredBills = useMemo(() => { + const filtered = bills.filter((bill) => { + const displayJudgement: JudgementValue = bill.final_judgment || "abstain"; + + // Search + if (filters.search.trim()) { + const q = filters.search.trim().toLowerCase(); + const qNormalized = q.replace(/[\s-]/g, ""); + + const haystack = [ + bill.billID, + bill.title, + bill.description, + bill.summary || "", + bill.shortTitle || "", + ] + .filter(Boolean) + .map((value) => value.toLowerCase()); + + const hayJoined = haystack.join(" "); + const hayNormalized = haystack.map((value) => + value.replace(/[\s-]/g, ""), + ); + + const matchesSearch = + hayJoined.includes(q) || + (qNormalized !== "" && + hayNormalized.some((value) => value.includes(qNormalized))); + + if (!matchesSearch) return false; + } + + // Status (normalize both sides) + if (filters.status.length > 0) { + const billStatusKey = normalizeStatus(bill.status); + const activeStatusKeys = filters.status.map(normalizeStatus); + if (!activeStatusKeys.includes(billStatusKey)) return false; + } + + // Category (alignment + genres) + if (filters.category.length > 0) { + let ok = false; + if (bill.alignment && filters.category.includes(bill.alignment)) + ok = true; + if (bill.genres?.some((g: string) => filters.category.includes(g))) + ok = true; + if (!ok) return false; + } + + // Judgement (final_judgment) + if (filters.judgement.length > 0) { + if (!filters.judgement.includes(displayJudgement)) return false; + } + + // Party + if ( + filters.party.length > 0 && + bill.sponsorParty && + !filters.party.includes(bill.sponsorParty) + ) { + return false; + } + + // Chamber + if (filters.chamber.length > 0) { + const chamber = + bill.chamber === "House of Commons" ? "House" : "Senate"; + if (!filters.chamber.includes(chamber)) return false; + } + + // Date range (introducedOn) + if (filters.dateRange && filters.dateRange !== "all") { + const now = new Date(); + const billDate = new Date(bill.introducedOn); + let cutoff: Date; + switch (filters.dateRange) { + case "last-month": + cutoff = new Date( + now.getFullYear(), + now.getMonth() - 1, + now.getDate(), + ); + break; + case "last-3-months": + cutoff = new Date( + now.getFullYear(), + now.getMonth() - 3, + now.getDate(), + ); + break; + case "last-6-months": + cutoff = new Date( + now.getFullYear(), + now.getMonth() - 6, + now.getDate(), + ); + break; + case "last-year": + cutoff = new Date( + now.getFullYear() - 1, + now.getMonth(), + now.getDate(), + ); + break; + default: + cutoff = new Date(0); + } + if (billDate < cutoff) return false; + } + + return true; + }); + + return filtered.sort(sortBillsByMostRecent); + }, [bills, filters]); + + // Sidebar filter options (normalize statuses for consistency) + const filterOptions: FilterOptions = useMemo(() => { + const statusKeyToLabel = new Map(); + const partySet = new Set(); + const chamberSet = new Set(); + const categorySet = new Set(); + + bills.forEach((bill) => { + // statuses + const key = normalizeStatus(bill.status); + if (bill.status) statusKeyToLabel.set(key, bill.status); + + // parties + if (bill.sponsorParty?.trim()) partySet.add(bill.sponsorParty.trim()); + + // chamber + if (bill.chamber) { + const chamber = + bill.chamber === "House of Commons" ? "House" : "Senate"; + chamberSet.add(chamber); + } + + // categories + if (bill.genres) { + bill.genres.forEach((g: string) => { + if (g?.trim()) categorySet.add(g.trim()); + }); + } + if (bill.alignment) categorySet.add(bill.alignment); + }); + + // present statuses sorted by advancement rank + const statuses = [...statusKeyToLabel.entries()] + .map(([key, label]) => ({ key, label, rank: statusRank(key) })) + // .sort((a, b) => a.rank - b.rank || a.label.localeCompare(b.label)) + .map((x) => x.label); + + const options = { + statuses, + parties: Array.from(partySet).sort(), + chambers: Array.from(chamberSet).sort(), + categories: Array.from(categorySet).sort(), + }; + + return options; + }, [bills]); + + // Keep filters panel behavior + useEffect(() => { + setIsFilterCollapsed(isMobile); + }, [isMobile]); + + const clearFilters = useCallback(() => { + setFilters({ + search: "", + status: [], + category: [], + party: [], + chamber: [], + dateRange: "all", + judgement: [], + }); + }, []); + + return ( +

+
+ + +
+ {filteredBills.length === 0 ? ( +
No bills match your filters.
+ ) : ( +
    + {filteredBills.map((bill) => ( + + ))} +
+ )} +
+
+
+ ); +} + +// Memoize the component to prevent unnecessary re-renders +export default memo(BillExplorer); diff --git a/src/app/bills/FAQModalTrigger.tsx b/src/app/bills/FAQModalTrigger.tsx new file mode 100644 index 0000000..c6d71eb --- /dev/null +++ b/src/app/bills/FAQModalTrigger.tsx @@ -0,0 +1,183 @@ +"use client"; + +import { useEffect, useRef, useState } from "react"; + +export default function FAQModalTrigger() { + const [mounted, setMounted] = useState(false); + const [visible, setVisible] = useState(false); + const dialogRef = useRef(null); + const buttonRef = useRef(null); + + function openModal() { + setMounted(true); + // Ensure the element is mounted before starting the transition + requestAnimationFrame(() => setVisible(true)); + } + + function closeModal() { + setVisible(false); + // Wait for exit animation to finish before unmounting + window.setTimeout(() => { + setMounted(false); + buttonRef.current?.focus(); + }, 200); + } + + useEffect(() => { + function onKeyDown(e: KeyboardEvent) { + if (e.key === "Escape") closeModal(); + } + if (mounted) { + document.addEventListener("keydown", onKeyDown); + const prev = document.body.style.overflow; + document.body.style.overflow = "hidden"; + return () => { + document.removeEventListener("keydown", onKeyDown); + document.body.style.overflow = prev; + }; + } + }, [mounted]); + + useEffect(() => { + if (mounted && visible && dialogRef.current) { + dialogRef.current.focus(); + } + }, [mounted, visible]); + + function onBackdropClick(e: React.MouseEvent) { + if (e.target === e.currentTarget) closeModal(); + } + + return ( + <> + + + {mounted && ( +
+
+
+
+

+ Frequently Asked Questions +

+ +
+ +
+

Why did you build this?

+

+ We built this tool so that Canadians could easily understand + parliamentary bills and how they align with a pro-growth stance. +

+ +

+ Where does the bill data come from? +

+

+ We are powered by{" "} + + The Civics Project + + , which pulls data from the Government of Canada's open + parliamentary data feeds. +

+ +

+ How do you determine a bill's judgement? +

+

+ Each bill is evaluated against a set of pro-growth principles + using an LLM. The LLM uses these principles to make a judgement + on the bill. We show all of this, including the principles, + evaluation and rationale, on the bill's page. +

+ +

+ Was this tool created to vote on bills? +

+

+ No. This tool was created to help Canadians better understand + bills and their economic impact. It is meant to be educational + and informative. +

+ +

+ What prompt do you use to evaluate the bills? +

+

+ This project, including the prompt, is open sourced on{" "} + + Github + + . +

+ +

How can I contribute?

+

+ This is a work in progress and we would love help from others. + Join us on{" "} + + Discord + + . +

+ +

How can I get in touch?

+

+ You can reach out to us at{" "} + + hi@buildcanada.com + +

+
+
+
+ )} + + ); +} diff --git a/src/app/bills/[id]/edit/page.tsx b/src/app/bills/[id]/edit/page.tsx new file mode 100644 index 0000000..e5fd20e --- /dev/null +++ b/src/app/bills/[id]/edit/page.tsx @@ -0,0 +1,226 @@ +import { redirect } from "next/navigation"; +import { getBillByIdFromDB } from "@/bills/server/get-bill-by-id-from-db"; +import { requireAuthenticatedUser } from "@/bills/lib/auth-guards"; +import { BASE_PATH } from "@/bills/utils/basePath"; +import { Button } from "@/bills/components/ui/button"; +import { ReprocessButton } from "@/bills/components/ReprocessButton/reprocess-button.component"; + +interface Params { + params: Promise<{ id: string }>; +} + +export default async function EditBillPage({ params }: Params) { + const { id } = await params; + + // Use reusable auth guard for consistent authentication + await requireAuthenticatedUser(); + + const bill = await getBillByIdFromDB(id); + if (!bill) { + redirect(`${BASE_PATH}/${id}`); + } + + const questionPeriodQuestions = bill.question_period_questions || []; + const questionFields = [...questionPeriodQuestions, { question: "" }]; + + return ( +
+

Edit Bill

+
+ +
+
+
+ +