Avijit Ghosh commited on
Commit
a58dac7
·
1 Parent(s): f7c8d87

unit tests added

Browse files
app/evaluation/[id]/page.client.tsx CHANGED
@@ -10,6 +10,7 @@ import { ArrowLeft, Download } from "lucide-react"
10
  import { CATEGORIES } from "@/lib/category-data"
11
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip"
12
  import { BENCHMARK_QUESTIONS, PROCESS_QUESTIONS } from "@/lib/category-data"
 
13
 
14
  const loadEvaluationDetails = async (id: string) => {
15
  const evaluationFiles = [
@@ -84,72 +85,13 @@ export default function EvaluationDetailsPage() {
84
  // eslint-disable-next-line react-hooks/exhaustive-deps
85
  }, [evaluationId, evaluation?.selectedCategories])
86
 
87
- // Determine if a category is effectively 'Not applicable' and return a reason string when available
88
  const naReasonForCategory = (categoryId: string): string | undefined => {
89
  const catEval = evaluation?.categoryEvaluations?.[categoryId]
90
  if (!catEval) return undefined
91
-
92
- // Helper to check sources for explicit NA notes
93
- const checkSourcesForNA = (sourcesObj: any) => {
94
- if (!sourcesObj) return undefined
95
- for (const entries of Object.values(sourcesObj)) {
96
- if (Array.isArray(entries)) {
97
- for (const ent of entries) {
98
- if (!ent) continue
99
- if (typeof ent.scope === "string" && /not applicable/i.test(ent.scope)) return ent.scope
100
- if (typeof ent.description === "string" && /not applicable/i.test(ent.description)) return ent.description
101
- }
102
- }
103
- }
104
- return undefined
105
- }
106
-
107
- // If there are any non-NA answers (yes/no or any non 'n/a' text), the category is applicable
108
- const isNonNAAnswer = (ans: any) => {
109
- if (ans === undefined || ans === null) return false
110
- if (Array.isArray(ans)) {
111
- return ans.some((a) => {
112
- const s = String(a || "").trim().toLowerCase()
113
- return s !== "n/a" && !/not applicable/i.test(s) && s.length > 0
114
- })
115
- }
116
- const s = String(ans).trim().toLowerCase()
117
- return s !== "n/a" && !/not applicable/i.test(s) && s.length > 0
118
- }
119
-
120
  const benchmarkQs = BENCHMARK_QUESTIONS.map((q) => q.id)
121
  const processQs = PROCESS_QUESTIONS.map((q) => q.id)
122
-
123
- // Check answers for any non-NA content
124
- let anyNonNA = false
125
- if (catEval.benchmarkAnswers) {
126
- for (const k of benchmarkQs) {
127
- if (isNonNAAnswer(catEval.benchmarkAnswers[k])) {
128
- anyNonNA = true
129
- break
130
- }
131
- }
132
- }
133
- if (!anyNonNA && catEval.processAnswers) {
134
- for (const k of processQs) {
135
- if (isNonNAAnswer(catEval.processAnswers[k])) {
136
- anyNonNA = true
137
- break
138
- }
139
- }
140
- }
141
-
142
- if (anyNonNA) return undefined
143
-
144
- // Only treat category as fully N/A when the category-level field `additionalAspects`
145
- // explicitly marks it as not applicable (page 2 of the form). Question-level markers
146
- // (process/benchmark source descriptions or scopes) should NOT make the entire category
147
- // non-selectable — they will still be shown as per-question NA in the details view.
148
- if (typeof catEval.additionalAspects === "string" && /not applicable/i.test(catEval.additionalAspects)) {
149
- return catEval.additionalAspects
150
- }
151
-
152
- return undefined
153
  }
154
 
155
  useEffect(() => {
 
10
  import { CATEGORIES } from "@/lib/category-data"
11
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip"
12
  import { BENCHMARK_QUESTIONS, PROCESS_QUESTIONS } from "@/lib/category-data"
13
+ import { naReasonForCategoryFromEval } from "@/lib/na-utils"
14
 
15
  const loadEvaluationDetails = async (id: string) => {
16
  const evaluationFiles = [
 
85
  // eslint-disable-next-line react-hooks/exhaustive-deps
86
  }, [evaluationId, evaluation?.selectedCategories])
87
 
88
+ // Proxy to the centralized helper
89
  const naReasonForCategory = (categoryId: string): string | undefined => {
90
  const catEval = evaluation?.categoryEvaluations?.[categoryId]
91
  if (!catEval) return undefined
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
  const benchmarkQs = BENCHMARK_QUESTIONS.map((q) => q.id)
93
  const processQs = PROCESS_QUESTIONS.map((q) => q.id)
94
+ return naReasonForCategoryFromEval(catEval, benchmarkQs, processQs)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
  }
96
 
97
  useEffect(() => {
lib/na-utils.ts ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Lightweight helper to determine whether a category should be considered fully Not Applicable.
2
+ // It intentionally only treats the category as NA when the category-level field
3
+ // `additionalAspects` explicitly marks it as not applicable. Question-level/source
4
+ // markers are ignored for category selectability (they are relevant to question details).
5
+ export function naReasonForCategoryFromEval(
6
+ catEval: any,
7
+ benchmarkQuestionIds: string[] = [],
8
+ processQuestionIds: string[] = []
9
+ ): string | undefined {
10
+ if (!catEval) return undefined
11
+
12
+ const isNonNAAnswer = (ans: any) => {
13
+ if (ans === undefined || ans === null) return false
14
+ if (Array.isArray(ans)) {
15
+ return ans.some((a) => {
16
+ const s = String(a || "").trim().toLowerCase()
17
+ return s !== "n/a" && !/not applicable/i.test(s) && s.length > 0
18
+ })
19
+ }
20
+ const s = String(ans).trim().toLowerCase()
21
+ return s !== "n/a" && !/not applicable/i.test(s) && s.length > 0
22
+ }
23
+
24
+ let anyNonNA = false
25
+ if (catEval.benchmarkAnswers) {
26
+ for (const k of benchmarkQuestionIds) {
27
+ if (isNonNAAnswer(catEval.benchmarkAnswers[k])) {
28
+ anyNonNA = true
29
+ break
30
+ }
31
+ }
32
+ }
33
+ if (!anyNonNA && catEval.processAnswers) {
34
+ for (const k of processQuestionIds) {
35
+ if (isNonNAAnswer(catEval.processAnswers[k])) {
36
+ anyNonNA = true
37
+ break
38
+ }
39
+ }
40
+ }
41
+
42
+ if (anyNonNA) return undefined
43
+
44
+ if (typeof catEval.additionalAspects === "string" && /not applicable/i.test(catEval.additionalAspects)) {
45
+ return catEval.additionalAspects
46
+ }
47
+
48
+ return undefined
49
+ }
package-lock.json CHANGED
@@ -45,8 +45,8 @@
45
  "geist": "^1.3.1",
46
  "input-otp": "1.4.1",
47
  "lucide-react": "^0.454.0",
48
- "next": "^15.2.4",
49
- "next-themes": "^0.4.6",
50
  "react": "^19",
51
  "react-day-picker": "9.8.0",
52
  "react-dom": "^19",
@@ -56,7 +56,7 @@
56
  "sonner": "^1.7.4",
57
  "tailwind-merge": "^2.5.5",
58
  "tailwindcss-animate": "^1.0.7",
59
- "vaul": "^1.1.2",
60
  "zod": "3.25.67"
61
  },
62
  "devDependencies": {
@@ -67,7 +67,8 @@
67
  "postcss": "^8.5",
68
  "tailwindcss": "^4.1.9",
69
  "tw-animate-css": "1.3.3",
70
- "typescript": "^5"
 
71
  }
72
  },
73
  "node_modules/@alloc/quick-lru": {
@@ -99,6 +100,397 @@
99
  "tslib": "^2.4.0"
100
  }
101
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
  "node_modules/@floating-ui/core": {
103
  "version": "1.7.3",
104
  "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz",
@@ -514,10 +906,23 @@
514
  "dev": true,
515
  "license": "ISC",
516
  "dependencies": {
517
- "minipass": "^7.0.4"
 
 
 
 
 
 
 
 
 
 
 
 
 
518
  },
519
  "engines": {
520
- "node": ">=18.0.0"
521
  }
522
  },
523
  "node_modules/@jridgewell/gen-mapping": {
@@ -1907,144 +2312,431 @@
1907
  }
1908
  }
1909
  },
1910
- "node_modules/@radix-ui/react-use-escape-keydown": {
1911
- "version": "1.1.0",
1912
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz",
1913
- "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1914
  "license": "MIT",
1915
- "dependencies": {
1916
- "@radix-ui/react-use-callback-ref": "1.1.0"
1917
- },
1918
- "peerDependencies": {
1919
- "@types/react": "*",
1920
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1921
- },
1922
- "peerDependenciesMeta": {
1923
- "@types/react": {
1924
- "optional": true
1925
- }
1926
- }
1927
  },
1928
- "node_modules/@radix-ui/react-use-layout-effect": {
1929
- "version": "1.1.0",
1930
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz",
1931
- "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==",
 
 
 
 
1932
  "license": "MIT",
1933
- "peerDependencies": {
1934
- "@types/react": "*",
1935
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1936
- },
1937
- "peerDependenciesMeta": {
1938
- "@types/react": {
1939
- "optional": true
1940
- }
1941
- }
1942
  },
1943
- "node_modules/@radix-ui/react-use-previous": {
1944
- "version": "1.1.0",
1945
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz",
1946
- "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==",
 
 
 
 
1947
  "license": "MIT",
1948
- "peerDependencies": {
1949
- "@types/react": "*",
1950
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1951
- },
1952
- "peerDependenciesMeta": {
1953
- "@types/react": {
1954
- "optional": true
1955
- }
1956
- }
1957
  },
1958
- "node_modules/@radix-ui/react-use-rect": {
1959
- "version": "1.1.0",
1960
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz",
1961
- "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==",
 
 
 
 
1962
  "license": "MIT",
1963
- "dependencies": {
1964
- "@radix-ui/rect": "1.1.0"
1965
- },
1966
- "peerDependencies": {
1967
- "@types/react": "*",
1968
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1969
- },
1970
- "peerDependenciesMeta": {
1971
- "@types/react": {
1972
- "optional": true
1973
- }
1974
- }
1975
  },
1976
- "node_modules/@radix-ui/react-use-size": {
1977
- "version": "1.1.0",
1978
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz",
1979
- "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==",
 
 
 
 
1980
  "license": "MIT",
1981
- "dependencies": {
1982
- "@radix-ui/react-use-layout-effect": "1.1.0"
1983
- },
1984
- "peerDependencies": {
1985
- "@types/react": "*",
1986
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1987
- },
1988
- "peerDependenciesMeta": {
1989
- "@types/react": {
1990
- "optional": true
1991
- }
1992
- }
1993
  },
1994
- "node_modules/@radix-ui/react-visually-hidden": {
1995
- "version": "1.1.1",
1996
- "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.1.tgz",
1997
- "integrity": "sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==",
 
 
 
 
1998
  "license": "MIT",
1999
- "dependencies": {
2000
- "@radix-ui/react-primitive": "2.0.1"
2001
- },
2002
- "peerDependencies": {
2003
- "@types/react": "*",
2004
- "@types/react-dom": "*",
2005
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
2006
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
2007
- },
2008
- "peerDependenciesMeta": {
2009
- "@types/react": {
2010
- "optional": true
2011
- },
2012
- "@types/react-dom": {
2013
- "optional": true
2014
- }
2015
- }
2016
  },
2017
- "node_modules/@radix-ui/rect": {
2018
- "version": "1.1.0",
2019
- "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz",
2020
- "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==",
2021
- "license": "MIT"
 
 
 
 
 
 
 
 
2022
  },
2023
- "node_modules/@reduxjs/toolkit": {
2024
- "version": "2.8.2",
2025
- "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.8.2.tgz",
2026
- "integrity": "sha512-MYlOhQ0sLdw4ud48FoC5w0dH9VfWQjtCjreKwYTT3l+r427qYC5Y8PihNutepr8XrNaBUDQo9khWUwQxZaqt5A==",
 
 
 
 
2027
  "license": "MIT",
2028
- "dependencies": {
2029
- "@standard-schema/spec": "^1.0.0",
2030
- "@standard-schema/utils": "^0.3.0",
2031
- "immer": "^10.0.3",
2032
- "redux": "^5.0.1",
2033
- "redux-thunk": "^3.1.0",
2034
- "reselect": "^5.1.0"
2035
- },
2036
- "peerDependencies": {
2037
- "react": "^16.9.0 || ^17.0.0 || ^18 || ^19",
2038
- "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0"
2039
- },
2040
- "peerDependenciesMeta": {
2041
- "react": {
2042
- "optional": true
2043
- },
2044
- "react-redux": {
2045
- "optional": true
2046
- }
2047
- }
2048
  },
2049
  "node_modules/@standard-schema/spec": {
2050
  "version": "1.0.0",
@@ -2412,6 +3104,13 @@
2412
  "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
2413
  "license": "MIT"
2414
  },
 
 
 
 
 
 
 
2415
  "node_modules/@types/node": {
2416
  "version": "22.17.2",
2417
  "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.2.tgz",
@@ -2419,34 +3118,147 @@
2419
  "dev": true,
2420
  "license": "MIT",
2421
  "dependencies": {
2422
- "undici-types": "~6.21.0"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2423
  }
2424
  },
2425
- "node_modules/@types/react": {
2426
- "version": "19.1.10",
2427
- "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.10.tgz",
2428
- "integrity": "sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==",
2429
- "devOptional": true,
2430
  "license": "MIT",
2431
- "dependencies": {
2432
- "csstype": "^3.0.2"
 
 
 
2433
  }
2434
  },
2435
- "node_modules/@types/react-dom": {
2436
- "version": "19.1.7",
2437
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.7.tgz",
2438
- "integrity": "sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==",
2439
- "devOptional": true,
2440
  "license": "MIT",
2441
- "peerDependencies": {
2442
- "@types/react": "^19.0.0"
 
 
 
2443
  }
2444
  },
2445
- "node_modules/@types/use-sync-external-store": {
2446
- "version": "0.0.6",
2447
- "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz",
2448
- "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==",
2449
- "license": "MIT"
 
 
 
 
 
 
 
2450
  },
2451
  "node_modules/aria-hidden": {
2452
  "version": "1.2.6",
@@ -2460,6 +3272,16 @@
2460
  "node": ">=10"
2461
  }
2462
  },
 
 
 
 
 
 
 
 
 
 
2463
  "node_modules/autoprefixer": {
2464
  "version": "10.4.21",
2465
  "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
@@ -2540,6 +3362,16 @@
2540
  "node": ">=10.16.0"
2541
  }
2542
  },
 
 
 
 
 
 
 
 
 
 
2543
  "node_modules/caniuse-lite": {
2544
  "version": "1.0.30001735",
2545
  "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001735.tgz",
@@ -2560,6 +3392,38 @@
2560
  ],
2561
  "license": "CC-BY-4.0"
2562
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2563
  "node_modules/chownr": {
2564
  "version": "3.0.0",
2565
  "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
@@ -2658,11 +3522,33 @@
2658
  "simple-swizzle": "^0.2.2"
2659
  }
2660
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2661
  "node_modules/csstype": {
2662
  "version": "3.1.3",
2663
  "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
2664
  "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
2665
- "devOptional": true,
2666
  "license": "MIT"
2667
  },
2668
  "node_modules/d3-array": {
@@ -2802,12 +3688,43 @@
2802
  "integrity": "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==",
2803
  "license": "MIT"
2804
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2805
  "node_modules/decimal.js-light": {
2806
  "version": "2.5.1",
2807
  "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz",
2808
  "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==",
2809
  "license": "MIT"
2810
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
2811
  "node_modules/detect-libc": {
2812
  "version": "2.0.4",
2813
  "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
@@ -2824,6 +3741,16 @@
2824
  "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
2825
  "license": "MIT"
2826
  },
 
 
 
 
 
 
 
 
 
 
2827
  "node_modules/electron-to-chromium": {
2828
  "version": "1.5.202",
2829
  "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.202.tgz",
@@ -2882,6 +3809,45 @@
2882
  "benchmarks"
2883
  ]
2884
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2885
  "node_modules/escalade": {
2886
  "version": "3.2.0",
2887
  "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
@@ -2891,12 +3857,46 @@
2891
  "node": ">=6"
2892
  }
2893
  },
 
 
 
 
 
 
 
 
 
 
2894
  "node_modules/eventemitter3": {
2895
  "version": "5.0.1",
2896
  "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
2897
  "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
2898
  "license": "MIT"
2899
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2900
  "node_modules/fraction.js": {
2901
  "version": "4.3.7",
2902
  "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
@@ -2910,6 +3910,21 @@
2910
  "url": "https://github.com/sponsors/rawify"
2911
  }
2912
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2913
  "node_modules/geist": {
2914
  "version": "1.4.2",
2915
  "resolved": "https://registry.npmjs.org/geist/-/geist-1.4.2.tgz",
@@ -2919,6 +3934,16 @@
2919
  "next": ">=13.2.0"
2920
  }
2921
  },
 
 
 
 
 
 
 
 
 
 
2922
  "node_modules/get-nonce": {
2923
  "version": "1.0.1",
2924
  "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
@@ -2928,6 +3953,19 @@
2928
  "node": ">=6"
2929
  }
2930
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
2931
  "node_modules/graceful-fs": {
2932
  "version": "4.2.11",
2933
  "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
@@ -2935,6 +3973,16 @@
2935
  "dev": true,
2936
  "license": "ISC"
2937
  },
 
 
 
 
 
 
 
 
 
 
2938
  "node_modules/immer": {
2939
  "version": "10.1.1",
2940
  "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz",
@@ -2971,6 +4019,26 @@
2971
  "license": "MIT",
2972
  "optional": true
2973
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2974
  "node_modules/jiti": {
2975
  "version": "2.5.1",
2976
  "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.5.1.tgz",
@@ -2981,6 +4049,13 @@
2981
  "jiti": "lib/jiti-cli.mjs"
2982
  }
2983
  },
 
 
 
 
 
 
 
2984
  "node_modules/lightningcss": {
2985
  "version": "1.30.1",
2986
  "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz",
@@ -3220,6 +4295,33 @@
3220
  "url": "https://opencollective.com/parcel"
3221
  }
3222
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3223
  "node_modules/lucide-react": {
3224
  "version": "0.454.0",
3225
  "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.454.0.tgz",
@@ -3239,6 +4341,26 @@
3239
  "@jridgewell/sourcemap-codec": "^1.5.0"
3240
  }
3241
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3242
  "node_modules/minipass": {
3243
  "version": "7.1.2",
3244
  "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
@@ -3278,6 +4400,33 @@
3278
  "url": "https://github.com/sponsors/isaacs"
3279
  }
3280
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3281
  "node_modules/nanoid": {
3282
  "version": "3.3.11",
3283
  "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
@@ -3380,27 +4529,115 @@
3380
  ],
3381
  "license": "MIT",
3382
  "dependencies": {
3383
- "nanoid": "^3.3.6",
3384
- "picocolors": "^1.0.0",
3385
- "source-map-js": "^1.0.2"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3386
  },
3387
  "engines": {
3388
- "node": "^10 || ^12 || >=14"
 
 
 
3389
  }
3390
  },
3391
- "node_modules/node-releases": {
3392
- "version": "2.0.19",
3393
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
3394
- "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3395
  "license": "MIT"
3396
  },
3397
- "node_modules/normalize-range": {
3398
- "version": "0.1.2",
3399
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
3400
- "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
 
3401
  "license": "MIT",
3402
  "engines": {
3403
- "node": ">=0.10.0"
3404
  }
3405
  },
3406
  "node_modules/picocolors": {
@@ -3409,10 +4646,30 @@
3409
  "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
3410
  "license": "ISC"
3411
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3412
  "node_modules/postcss": {
3413
  "version": "8.5.6",
3414
  "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
3415
  "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
 
3416
  "funding": [
3417
  {
3418
  "type": "opencollective",
@@ -3443,6 +4700,28 @@
3443
  "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
3444
  "license": "MIT"
3445
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3446
  "node_modules/react": {
3447
  "version": "19.1.1",
3448
  "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz",
@@ -3501,13 +4780,6 @@
3501
  "react": "^16.8.0 || ^17 || ^18 || ^19"
3502
  }
3503
  },
3504
- "node_modules/react-is": {
3505
- "version": "19.1.1",
3506
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.1.tgz",
3507
- "integrity": "sha512-tr41fA15Vn8p4X9ntI+yCyeGSf1TlYaY5vlTZfQmeLBrFo3psOPX6HhTDnFNL9uj3EhP0KAQ80cugCl4b4BERA==",
3508
- "license": "MIT",
3509
- "peer": true
3510
- },
3511
  "node_modules/react-redux": {
3512
  "version": "9.2.0",
3513
  "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz",
@@ -3658,6 +4930,46 @@
3658
  "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==",
3659
  "license": "MIT"
3660
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3661
  "node_modules/scheduler": {
3662
  "version": "0.26.0",
3663
  "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
@@ -3717,6 +5029,49 @@
3717
  "@img/sharp-win32-x64": "0.33.5"
3718
  }
3719
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3720
  "node_modules/simple-swizzle": {
3721
  "version": "0.2.2",
3722
  "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
@@ -3746,6 +5101,20 @@
3746
  "node": ">=0.10.0"
3747
  }
3748
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3749
  "node_modules/streamsearch": {
3750
  "version": "1.1.0",
3751
  "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
@@ -3754,6 +5123,32 @@
3754
  "node": ">=10.0.0"
3755
  }
3756
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3757
  "node_modules/styled-jsx": {
3758
  "version": "5.1.6",
3759
  "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
@@ -3791,6 +5186,7 @@
3791
  "version": "4.1.12",
3792
  "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.12.tgz",
3793
  "integrity": "sha512-DzFtxOi+7NsFf7DBtI3BJsynR+0Yp6etH+nRPTbpWnS2pZBaSksv/JGctNwSWzbFjp0vxSqknaUylseZqMDGrA==",
 
3794
  "license": "MIT"
3795
  },
3796
  "node_modules/tailwindcss-animate": {
@@ -3836,6 +5232,33 @@
3836
  "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
3837
  "license": "MIT"
3838
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3839
  "node_modules/tslib": {
3840
  "version": "2.8.1",
3841
  "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
@@ -3852,6 +5275,16 @@
3852
  "url": "https://github.com/sponsors/Wombosvideo"
3853
  }
3854
  },
 
 
 
 
 
 
 
 
 
 
3855
  "node_modules/typescript": {
3856
  "version": "5.9.2",
3857
  "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz",
@@ -3866,6 +5299,13 @@
3866
  "node": ">=14.17"
3867
  }
3868
  },
 
 
 
 
 
 
 
3869
  "node_modules/undici-types": {
3870
  "version": "6.21.0",
3871
  "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
@@ -3956,16 +5396,16 @@
3956
  }
3957
  },
3958
  "node_modules/vaul": {
3959
- "version": "1.1.2",
3960
- "resolved": "https://registry.npmjs.org/vaul/-/vaul-1.1.2.tgz",
3961
- "integrity": "sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==",
3962
  "license": "MIT",
3963
  "dependencies": {
3964
  "@radix-ui/react-dialog": "^1.1.1"
3965
  },
3966
  "peerDependencies": {
3967
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc",
3968
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc"
3969
  }
3970
  },
3971
  "node_modules/victory-vendor": {
@@ -3990,6 +5430,188 @@
3990
  "d3-timer": "^3.0.1"
3991
  }
3992
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3993
  "node_modules/yallist": {
3994
  "version": "5.0.0",
3995
  "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
@@ -4000,6 +5622,19 @@
4000
  "node": ">=18"
4001
  }
4002
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
4003
  "node_modules/zod": {
4004
  "version": "3.25.67",
4005
  "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.67.tgz",
 
45
  "geist": "^1.3.1",
46
  "input-otp": "1.4.1",
47
  "lucide-react": "^0.454.0",
48
+ "next": "15.2.4",
49
+ "next-themes": "latest",
50
  "react": "^19",
51
  "react-day-picker": "9.8.0",
52
  "react-dom": "^19",
 
56
  "sonner": "^1.7.4",
57
  "tailwind-merge": "^2.5.5",
58
  "tailwindcss-animate": "^1.0.7",
59
+ "vaul": "^0.9.9",
60
  "zod": "3.25.67"
61
  },
62
  "devDependencies": {
 
67
  "postcss": "^8.5",
68
  "tailwindcss": "^4.1.9",
69
  "tw-animate-css": "1.3.3",
70
+ "typescript": "^5",
71
+ "vitest": "^1.1.5"
72
  }
73
  },
74
  "node_modules/@alloc/quick-lru": {
 
100
  "tslib": "^2.4.0"
101
  }
102
  },
103
+ "node_modules/@esbuild/aix-ppc64": {
104
+ "version": "0.21.5",
105
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
106
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
107
+ "cpu": [
108
+ "ppc64"
109
+ ],
110
+ "dev": true,
111
+ "license": "MIT",
112
+ "optional": true,
113
+ "os": [
114
+ "aix"
115
+ ],
116
+ "engines": {
117
+ "node": ">=12"
118
+ }
119
+ },
120
+ "node_modules/@esbuild/android-arm": {
121
+ "version": "0.21.5",
122
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
123
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
124
+ "cpu": [
125
+ "arm"
126
+ ],
127
+ "dev": true,
128
+ "license": "MIT",
129
+ "optional": true,
130
+ "os": [
131
+ "android"
132
+ ],
133
+ "engines": {
134
+ "node": ">=12"
135
+ }
136
+ },
137
+ "node_modules/@esbuild/android-arm64": {
138
+ "version": "0.21.5",
139
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
140
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
141
+ "cpu": [
142
+ "arm64"
143
+ ],
144
+ "dev": true,
145
+ "license": "MIT",
146
+ "optional": true,
147
+ "os": [
148
+ "android"
149
+ ],
150
+ "engines": {
151
+ "node": ">=12"
152
+ }
153
+ },
154
+ "node_modules/@esbuild/android-x64": {
155
+ "version": "0.21.5",
156
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
157
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
158
+ "cpu": [
159
+ "x64"
160
+ ],
161
+ "dev": true,
162
+ "license": "MIT",
163
+ "optional": true,
164
+ "os": [
165
+ "android"
166
+ ],
167
+ "engines": {
168
+ "node": ">=12"
169
+ }
170
+ },
171
+ "node_modules/@esbuild/darwin-arm64": {
172
+ "version": "0.21.5",
173
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
174
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
175
+ "cpu": [
176
+ "arm64"
177
+ ],
178
+ "dev": true,
179
+ "license": "MIT",
180
+ "optional": true,
181
+ "os": [
182
+ "darwin"
183
+ ],
184
+ "engines": {
185
+ "node": ">=12"
186
+ }
187
+ },
188
+ "node_modules/@esbuild/darwin-x64": {
189
+ "version": "0.21.5",
190
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
191
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
192
+ "cpu": [
193
+ "x64"
194
+ ],
195
+ "dev": true,
196
+ "license": "MIT",
197
+ "optional": true,
198
+ "os": [
199
+ "darwin"
200
+ ],
201
+ "engines": {
202
+ "node": ">=12"
203
+ }
204
+ },
205
+ "node_modules/@esbuild/freebsd-arm64": {
206
+ "version": "0.21.5",
207
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
208
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
209
+ "cpu": [
210
+ "arm64"
211
+ ],
212
+ "dev": true,
213
+ "license": "MIT",
214
+ "optional": true,
215
+ "os": [
216
+ "freebsd"
217
+ ],
218
+ "engines": {
219
+ "node": ">=12"
220
+ }
221
+ },
222
+ "node_modules/@esbuild/freebsd-x64": {
223
+ "version": "0.21.5",
224
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
225
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
226
+ "cpu": [
227
+ "x64"
228
+ ],
229
+ "dev": true,
230
+ "license": "MIT",
231
+ "optional": true,
232
+ "os": [
233
+ "freebsd"
234
+ ],
235
+ "engines": {
236
+ "node": ">=12"
237
+ }
238
+ },
239
+ "node_modules/@esbuild/linux-arm": {
240
+ "version": "0.21.5",
241
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
242
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
243
+ "cpu": [
244
+ "arm"
245
+ ],
246
+ "dev": true,
247
+ "license": "MIT",
248
+ "optional": true,
249
+ "os": [
250
+ "linux"
251
+ ],
252
+ "engines": {
253
+ "node": ">=12"
254
+ }
255
+ },
256
+ "node_modules/@esbuild/linux-arm64": {
257
+ "version": "0.21.5",
258
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
259
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
260
+ "cpu": [
261
+ "arm64"
262
+ ],
263
+ "dev": true,
264
+ "license": "MIT",
265
+ "optional": true,
266
+ "os": [
267
+ "linux"
268
+ ],
269
+ "engines": {
270
+ "node": ">=12"
271
+ }
272
+ },
273
+ "node_modules/@esbuild/linux-ia32": {
274
+ "version": "0.21.5",
275
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
276
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
277
+ "cpu": [
278
+ "ia32"
279
+ ],
280
+ "dev": true,
281
+ "license": "MIT",
282
+ "optional": true,
283
+ "os": [
284
+ "linux"
285
+ ],
286
+ "engines": {
287
+ "node": ">=12"
288
+ }
289
+ },
290
+ "node_modules/@esbuild/linux-loong64": {
291
+ "version": "0.21.5",
292
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
293
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
294
+ "cpu": [
295
+ "loong64"
296
+ ],
297
+ "dev": true,
298
+ "license": "MIT",
299
+ "optional": true,
300
+ "os": [
301
+ "linux"
302
+ ],
303
+ "engines": {
304
+ "node": ">=12"
305
+ }
306
+ },
307
+ "node_modules/@esbuild/linux-mips64el": {
308
+ "version": "0.21.5",
309
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
310
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
311
+ "cpu": [
312
+ "mips64el"
313
+ ],
314
+ "dev": true,
315
+ "license": "MIT",
316
+ "optional": true,
317
+ "os": [
318
+ "linux"
319
+ ],
320
+ "engines": {
321
+ "node": ">=12"
322
+ }
323
+ },
324
+ "node_modules/@esbuild/linux-ppc64": {
325
+ "version": "0.21.5",
326
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
327
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
328
+ "cpu": [
329
+ "ppc64"
330
+ ],
331
+ "dev": true,
332
+ "license": "MIT",
333
+ "optional": true,
334
+ "os": [
335
+ "linux"
336
+ ],
337
+ "engines": {
338
+ "node": ">=12"
339
+ }
340
+ },
341
+ "node_modules/@esbuild/linux-riscv64": {
342
+ "version": "0.21.5",
343
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
344
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
345
+ "cpu": [
346
+ "riscv64"
347
+ ],
348
+ "dev": true,
349
+ "license": "MIT",
350
+ "optional": true,
351
+ "os": [
352
+ "linux"
353
+ ],
354
+ "engines": {
355
+ "node": ">=12"
356
+ }
357
+ },
358
+ "node_modules/@esbuild/linux-s390x": {
359
+ "version": "0.21.5",
360
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
361
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
362
+ "cpu": [
363
+ "s390x"
364
+ ],
365
+ "dev": true,
366
+ "license": "MIT",
367
+ "optional": true,
368
+ "os": [
369
+ "linux"
370
+ ],
371
+ "engines": {
372
+ "node": ">=12"
373
+ }
374
+ },
375
+ "node_modules/@esbuild/linux-x64": {
376
+ "version": "0.21.5",
377
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
378
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
379
+ "cpu": [
380
+ "x64"
381
+ ],
382
+ "dev": true,
383
+ "license": "MIT",
384
+ "optional": true,
385
+ "os": [
386
+ "linux"
387
+ ],
388
+ "engines": {
389
+ "node": ">=12"
390
+ }
391
+ },
392
+ "node_modules/@esbuild/netbsd-x64": {
393
+ "version": "0.21.5",
394
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
395
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
396
+ "cpu": [
397
+ "x64"
398
+ ],
399
+ "dev": true,
400
+ "license": "MIT",
401
+ "optional": true,
402
+ "os": [
403
+ "netbsd"
404
+ ],
405
+ "engines": {
406
+ "node": ">=12"
407
+ }
408
+ },
409
+ "node_modules/@esbuild/openbsd-x64": {
410
+ "version": "0.21.5",
411
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
412
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
413
+ "cpu": [
414
+ "x64"
415
+ ],
416
+ "dev": true,
417
+ "license": "MIT",
418
+ "optional": true,
419
+ "os": [
420
+ "openbsd"
421
+ ],
422
+ "engines": {
423
+ "node": ">=12"
424
+ }
425
+ },
426
+ "node_modules/@esbuild/sunos-x64": {
427
+ "version": "0.21.5",
428
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
429
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
430
+ "cpu": [
431
+ "x64"
432
+ ],
433
+ "dev": true,
434
+ "license": "MIT",
435
+ "optional": true,
436
+ "os": [
437
+ "sunos"
438
+ ],
439
+ "engines": {
440
+ "node": ">=12"
441
+ }
442
+ },
443
+ "node_modules/@esbuild/win32-arm64": {
444
+ "version": "0.21.5",
445
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
446
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
447
+ "cpu": [
448
+ "arm64"
449
+ ],
450
+ "dev": true,
451
+ "license": "MIT",
452
+ "optional": true,
453
+ "os": [
454
+ "win32"
455
+ ],
456
+ "engines": {
457
+ "node": ">=12"
458
+ }
459
+ },
460
+ "node_modules/@esbuild/win32-ia32": {
461
+ "version": "0.21.5",
462
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
463
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
464
+ "cpu": [
465
+ "ia32"
466
+ ],
467
+ "dev": true,
468
+ "license": "MIT",
469
+ "optional": true,
470
+ "os": [
471
+ "win32"
472
+ ],
473
+ "engines": {
474
+ "node": ">=12"
475
+ }
476
+ },
477
+ "node_modules/@esbuild/win32-x64": {
478
+ "version": "0.21.5",
479
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
480
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
481
+ "cpu": [
482
+ "x64"
483
+ ],
484
+ "dev": true,
485
+ "license": "MIT",
486
+ "optional": true,
487
+ "os": [
488
+ "win32"
489
+ ],
490
+ "engines": {
491
+ "node": ">=12"
492
+ }
493
+ },
494
  "node_modules/@floating-ui/core": {
495
  "version": "1.7.3",
496
  "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz",
 
906
  "dev": true,
907
  "license": "ISC",
908
  "dependencies": {
909
+ "minipass": "^7.0.4"
910
+ },
911
+ "engines": {
912
+ "node": ">=18.0.0"
913
+ }
914
+ },
915
+ "node_modules/@jest/schemas": {
916
+ "version": "29.6.3",
917
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
918
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
919
+ "dev": true,
920
+ "license": "MIT",
921
+ "dependencies": {
922
+ "@sinclair/typebox": "^0.27.8"
923
  },
924
  "engines": {
925
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
926
  }
927
  },
928
  "node_modules/@jridgewell/gen-mapping": {
 
2312
  }
2313
  }
2314
  },
2315
+ "node_modules/@radix-ui/react-use-escape-keydown": {
2316
+ "version": "1.1.0",
2317
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz",
2318
+ "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==",
2319
+ "license": "MIT",
2320
+ "dependencies": {
2321
+ "@radix-ui/react-use-callback-ref": "1.1.0"
2322
+ },
2323
+ "peerDependencies": {
2324
+ "@types/react": "*",
2325
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
2326
+ },
2327
+ "peerDependenciesMeta": {
2328
+ "@types/react": {
2329
+ "optional": true
2330
+ }
2331
+ }
2332
+ },
2333
+ "node_modules/@radix-ui/react-use-layout-effect": {
2334
+ "version": "1.1.0",
2335
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz",
2336
+ "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==",
2337
+ "license": "MIT",
2338
+ "peerDependencies": {
2339
+ "@types/react": "*",
2340
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
2341
+ },
2342
+ "peerDependenciesMeta": {
2343
+ "@types/react": {
2344
+ "optional": true
2345
+ }
2346
+ }
2347
+ },
2348
+ "node_modules/@radix-ui/react-use-previous": {
2349
+ "version": "1.1.0",
2350
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz",
2351
+ "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==",
2352
+ "license": "MIT",
2353
+ "peerDependencies": {
2354
+ "@types/react": "*",
2355
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
2356
+ },
2357
+ "peerDependenciesMeta": {
2358
+ "@types/react": {
2359
+ "optional": true
2360
+ }
2361
+ }
2362
+ },
2363
+ "node_modules/@radix-ui/react-use-rect": {
2364
+ "version": "1.1.0",
2365
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz",
2366
+ "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==",
2367
+ "license": "MIT",
2368
+ "dependencies": {
2369
+ "@radix-ui/rect": "1.1.0"
2370
+ },
2371
+ "peerDependencies": {
2372
+ "@types/react": "*",
2373
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
2374
+ },
2375
+ "peerDependenciesMeta": {
2376
+ "@types/react": {
2377
+ "optional": true
2378
+ }
2379
+ }
2380
+ },
2381
+ "node_modules/@radix-ui/react-use-size": {
2382
+ "version": "1.1.0",
2383
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz",
2384
+ "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==",
2385
+ "license": "MIT",
2386
+ "dependencies": {
2387
+ "@radix-ui/react-use-layout-effect": "1.1.0"
2388
+ },
2389
+ "peerDependencies": {
2390
+ "@types/react": "*",
2391
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
2392
+ },
2393
+ "peerDependenciesMeta": {
2394
+ "@types/react": {
2395
+ "optional": true
2396
+ }
2397
+ }
2398
+ },
2399
+ "node_modules/@radix-ui/react-visually-hidden": {
2400
+ "version": "1.1.1",
2401
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.1.tgz",
2402
+ "integrity": "sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==",
2403
+ "license": "MIT",
2404
+ "dependencies": {
2405
+ "@radix-ui/react-primitive": "2.0.1"
2406
+ },
2407
+ "peerDependencies": {
2408
+ "@types/react": "*",
2409
+ "@types/react-dom": "*",
2410
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
2411
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
2412
+ },
2413
+ "peerDependenciesMeta": {
2414
+ "@types/react": {
2415
+ "optional": true
2416
+ },
2417
+ "@types/react-dom": {
2418
+ "optional": true
2419
+ }
2420
+ }
2421
+ },
2422
+ "node_modules/@radix-ui/rect": {
2423
+ "version": "1.1.0",
2424
+ "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz",
2425
+ "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==",
2426
+ "license": "MIT"
2427
+ },
2428
+ "node_modules/@reduxjs/toolkit": {
2429
+ "version": "2.8.2",
2430
+ "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.8.2.tgz",
2431
+ "integrity": "sha512-MYlOhQ0sLdw4ud48FoC5w0dH9VfWQjtCjreKwYTT3l+r427qYC5Y8PihNutepr8XrNaBUDQo9khWUwQxZaqt5A==",
2432
+ "license": "MIT",
2433
+ "dependencies": {
2434
+ "@standard-schema/spec": "^1.0.0",
2435
+ "@standard-schema/utils": "^0.3.0",
2436
+ "immer": "^10.0.3",
2437
+ "redux": "^5.0.1",
2438
+ "redux-thunk": "^3.1.0",
2439
+ "reselect": "^5.1.0"
2440
+ },
2441
+ "peerDependencies": {
2442
+ "react": "^16.9.0 || ^17.0.0 || ^18 || ^19",
2443
+ "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0"
2444
+ },
2445
+ "peerDependenciesMeta": {
2446
+ "react": {
2447
+ "optional": true
2448
+ },
2449
+ "react-redux": {
2450
+ "optional": true
2451
+ }
2452
+ }
2453
+ },
2454
+ "node_modules/@rollup/rollup-android-arm-eabi": {
2455
+ "version": "4.46.2",
2456
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz",
2457
+ "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==",
2458
+ "cpu": [
2459
+ "arm"
2460
+ ],
2461
+ "dev": true,
2462
+ "license": "MIT",
2463
+ "optional": true,
2464
+ "os": [
2465
+ "android"
2466
+ ]
2467
+ },
2468
+ "node_modules/@rollup/rollup-android-arm64": {
2469
+ "version": "4.46.2",
2470
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz",
2471
+ "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==",
2472
+ "cpu": [
2473
+ "arm64"
2474
+ ],
2475
+ "dev": true,
2476
+ "license": "MIT",
2477
+ "optional": true,
2478
+ "os": [
2479
+ "android"
2480
+ ]
2481
+ },
2482
+ "node_modules/@rollup/rollup-darwin-arm64": {
2483
+ "version": "4.46.2",
2484
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz",
2485
+ "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==",
2486
+ "cpu": [
2487
+ "arm64"
2488
+ ],
2489
+ "dev": true,
2490
+ "license": "MIT",
2491
+ "optional": true,
2492
+ "os": [
2493
+ "darwin"
2494
+ ]
2495
+ },
2496
+ "node_modules/@rollup/rollup-darwin-x64": {
2497
+ "version": "4.46.2",
2498
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz",
2499
+ "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==",
2500
+ "cpu": [
2501
+ "x64"
2502
+ ],
2503
+ "dev": true,
2504
+ "license": "MIT",
2505
+ "optional": true,
2506
+ "os": [
2507
+ "darwin"
2508
+ ]
2509
+ },
2510
+ "node_modules/@rollup/rollup-freebsd-arm64": {
2511
+ "version": "4.46.2",
2512
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz",
2513
+ "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==",
2514
+ "cpu": [
2515
+ "arm64"
2516
+ ],
2517
+ "dev": true,
2518
+ "license": "MIT",
2519
+ "optional": true,
2520
+ "os": [
2521
+ "freebsd"
2522
+ ]
2523
+ },
2524
+ "node_modules/@rollup/rollup-freebsd-x64": {
2525
+ "version": "4.46.2",
2526
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz",
2527
+ "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==",
2528
+ "cpu": [
2529
+ "x64"
2530
+ ],
2531
+ "dev": true,
2532
+ "license": "MIT",
2533
+ "optional": true,
2534
+ "os": [
2535
+ "freebsd"
2536
+ ]
2537
+ },
2538
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
2539
+ "version": "4.46.2",
2540
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz",
2541
+ "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==",
2542
+ "cpu": [
2543
+ "arm"
2544
+ ],
2545
+ "dev": true,
2546
+ "license": "MIT",
2547
+ "optional": true,
2548
+ "os": [
2549
+ "linux"
2550
+ ]
2551
+ },
2552
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
2553
+ "version": "4.46.2",
2554
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz",
2555
+ "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==",
2556
+ "cpu": [
2557
+ "arm"
2558
+ ],
2559
+ "dev": true,
2560
+ "license": "MIT",
2561
+ "optional": true,
2562
+ "os": [
2563
+ "linux"
2564
+ ]
2565
+ },
2566
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
2567
+ "version": "4.46.2",
2568
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz",
2569
+ "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==",
2570
+ "cpu": [
2571
+ "arm64"
2572
+ ],
2573
+ "dev": true,
2574
+ "license": "MIT",
2575
+ "optional": true,
2576
+ "os": [
2577
+ "linux"
2578
+ ]
2579
+ },
2580
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
2581
+ "version": "4.46.2",
2582
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz",
2583
+ "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==",
2584
+ "cpu": [
2585
+ "arm64"
2586
+ ],
2587
+ "dev": true,
2588
+ "license": "MIT",
2589
+ "optional": true,
2590
+ "os": [
2591
+ "linux"
2592
+ ]
2593
+ },
2594
+ "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
2595
+ "version": "4.46.2",
2596
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz",
2597
+ "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==",
2598
+ "cpu": [
2599
+ "loong64"
2600
+ ],
2601
+ "dev": true,
2602
+ "license": "MIT",
2603
+ "optional": true,
2604
+ "os": [
2605
+ "linux"
2606
+ ]
2607
+ },
2608
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
2609
+ "version": "4.46.2",
2610
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz",
2611
+ "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==",
2612
+ "cpu": [
2613
+ "ppc64"
2614
+ ],
2615
+ "dev": true,
2616
+ "license": "MIT",
2617
+ "optional": true,
2618
+ "os": [
2619
+ "linux"
2620
+ ]
2621
+ },
2622
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
2623
+ "version": "4.46.2",
2624
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz",
2625
+ "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==",
2626
+ "cpu": [
2627
+ "riscv64"
2628
+ ],
2629
+ "dev": true,
2630
  "license": "MIT",
2631
+ "optional": true,
2632
+ "os": [
2633
+ "linux"
2634
+ ]
 
 
 
 
 
 
 
 
2635
  },
2636
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
2637
+ "version": "4.46.2",
2638
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz",
2639
+ "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==",
2640
+ "cpu": [
2641
+ "riscv64"
2642
+ ],
2643
+ "dev": true,
2644
  "license": "MIT",
2645
+ "optional": true,
2646
+ "os": [
2647
+ "linux"
2648
+ ]
 
 
 
 
 
2649
  },
2650
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
2651
+ "version": "4.46.2",
2652
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz",
2653
+ "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==",
2654
+ "cpu": [
2655
+ "s390x"
2656
+ ],
2657
+ "dev": true,
2658
  "license": "MIT",
2659
+ "optional": true,
2660
+ "os": [
2661
+ "linux"
2662
+ ]
 
 
 
 
 
2663
  },
2664
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
2665
+ "version": "4.46.2",
2666
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz",
2667
+ "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==",
2668
+ "cpu": [
2669
+ "x64"
2670
+ ],
2671
+ "dev": true,
2672
  "license": "MIT",
2673
+ "optional": true,
2674
+ "os": [
2675
+ "linux"
2676
+ ]
 
 
 
 
 
 
 
 
2677
  },
2678
+ "node_modules/@rollup/rollup-linux-x64-musl": {
2679
+ "version": "4.46.2",
2680
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz",
2681
+ "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==",
2682
+ "cpu": [
2683
+ "x64"
2684
+ ],
2685
+ "dev": true,
2686
  "license": "MIT",
2687
+ "optional": true,
2688
+ "os": [
2689
+ "linux"
2690
+ ]
 
 
 
 
 
 
 
 
2691
  },
2692
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
2693
+ "version": "4.46.2",
2694
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz",
2695
+ "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==",
2696
+ "cpu": [
2697
+ "arm64"
2698
+ ],
2699
+ "dev": true,
2700
  "license": "MIT",
2701
+ "optional": true,
2702
+ "os": [
2703
+ "win32"
2704
+ ]
 
 
 
 
 
 
 
 
 
 
 
 
 
2705
  },
2706
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
2707
+ "version": "4.46.2",
2708
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz",
2709
+ "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==",
2710
+ "cpu": [
2711
+ "ia32"
2712
+ ],
2713
+ "dev": true,
2714
+ "license": "MIT",
2715
+ "optional": true,
2716
+ "os": [
2717
+ "win32"
2718
+ ]
2719
  },
2720
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
2721
+ "version": "4.46.2",
2722
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz",
2723
+ "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==",
2724
+ "cpu": [
2725
+ "x64"
2726
+ ],
2727
+ "dev": true,
2728
  "license": "MIT",
2729
+ "optional": true,
2730
+ "os": [
2731
+ "win32"
2732
+ ]
2733
+ },
2734
+ "node_modules/@sinclair/typebox": {
2735
+ "version": "0.27.8",
2736
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
2737
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
2738
+ "dev": true,
2739
+ "license": "MIT"
 
 
 
 
 
 
 
 
 
2740
  },
2741
  "node_modules/@standard-schema/spec": {
2742
  "version": "1.0.0",
 
3104
  "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
3105
  "license": "MIT"
3106
  },
3107
+ "node_modules/@types/estree": {
3108
+ "version": "1.0.8",
3109
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
3110
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
3111
+ "dev": true,
3112
+ "license": "MIT"
3113
+ },
3114
  "node_modules/@types/node": {
3115
  "version": "22.17.2",
3116
  "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.2.tgz",
 
3118
  "dev": true,
3119
  "license": "MIT",
3120
  "dependencies": {
3121
+ "undici-types": "~6.21.0"
3122
+ }
3123
+ },
3124
+ "node_modules/@types/react": {
3125
+ "version": "19.1.10",
3126
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.10.tgz",
3127
+ "integrity": "sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==",
3128
+ "dev": true,
3129
+ "license": "MIT",
3130
+ "dependencies": {
3131
+ "csstype": "^3.0.2"
3132
+ }
3133
+ },
3134
+ "node_modules/@types/react-dom": {
3135
+ "version": "19.1.7",
3136
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.7.tgz",
3137
+ "integrity": "sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==",
3138
+ "dev": true,
3139
+ "license": "MIT",
3140
+ "peerDependencies": {
3141
+ "@types/react": "^19.0.0"
3142
+ }
3143
+ },
3144
+ "node_modules/@types/use-sync-external-store": {
3145
+ "version": "0.0.6",
3146
+ "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz",
3147
+ "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==",
3148
+ "license": "MIT"
3149
+ },
3150
+ "node_modules/@vitest/expect": {
3151
+ "version": "1.6.1",
3152
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz",
3153
+ "integrity": "sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==",
3154
+ "dev": true,
3155
+ "license": "MIT",
3156
+ "dependencies": {
3157
+ "@vitest/spy": "1.6.1",
3158
+ "@vitest/utils": "1.6.1",
3159
+ "chai": "^4.3.10"
3160
+ },
3161
+ "funding": {
3162
+ "url": "https://opencollective.com/vitest"
3163
+ }
3164
+ },
3165
+ "node_modules/@vitest/runner": {
3166
+ "version": "1.6.1",
3167
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz",
3168
+ "integrity": "sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==",
3169
+ "dev": true,
3170
+ "license": "MIT",
3171
+ "dependencies": {
3172
+ "@vitest/utils": "1.6.1",
3173
+ "p-limit": "^5.0.0",
3174
+ "pathe": "^1.1.1"
3175
+ },
3176
+ "funding": {
3177
+ "url": "https://opencollective.com/vitest"
3178
+ }
3179
+ },
3180
+ "node_modules/@vitest/snapshot": {
3181
+ "version": "1.6.1",
3182
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz",
3183
+ "integrity": "sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==",
3184
+ "dev": true,
3185
+ "license": "MIT",
3186
+ "dependencies": {
3187
+ "magic-string": "^0.30.5",
3188
+ "pathe": "^1.1.1",
3189
+ "pretty-format": "^29.7.0"
3190
+ },
3191
+ "funding": {
3192
+ "url": "https://opencollective.com/vitest"
3193
+ }
3194
+ },
3195
+ "node_modules/@vitest/spy": {
3196
+ "version": "1.6.1",
3197
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz",
3198
+ "integrity": "sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==",
3199
+ "dev": true,
3200
+ "license": "MIT",
3201
+ "dependencies": {
3202
+ "tinyspy": "^2.2.0"
3203
+ },
3204
+ "funding": {
3205
+ "url": "https://opencollective.com/vitest"
3206
+ }
3207
+ },
3208
+ "node_modules/@vitest/utils": {
3209
+ "version": "1.6.1",
3210
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz",
3211
+ "integrity": "sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==",
3212
+ "dev": true,
3213
+ "license": "MIT",
3214
+ "dependencies": {
3215
+ "diff-sequences": "^29.6.3",
3216
+ "estree-walker": "^3.0.3",
3217
+ "loupe": "^2.3.7",
3218
+ "pretty-format": "^29.7.0"
3219
+ },
3220
+ "funding": {
3221
+ "url": "https://opencollective.com/vitest"
3222
  }
3223
  },
3224
+ "node_modules/acorn": {
3225
+ "version": "8.15.0",
3226
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
3227
+ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
3228
+ "dev": true,
3229
  "license": "MIT",
3230
+ "bin": {
3231
+ "acorn": "bin/acorn"
3232
+ },
3233
+ "engines": {
3234
+ "node": ">=0.4.0"
3235
  }
3236
  },
3237
+ "node_modules/acorn-walk": {
3238
+ "version": "8.3.4",
3239
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
3240
+ "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
3241
+ "dev": true,
3242
  "license": "MIT",
3243
+ "dependencies": {
3244
+ "acorn": "^8.11.0"
3245
+ },
3246
+ "engines": {
3247
+ "node": ">=0.4.0"
3248
  }
3249
  },
3250
+ "node_modules/ansi-styles": {
3251
+ "version": "5.2.0",
3252
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
3253
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
3254
+ "dev": true,
3255
+ "license": "MIT",
3256
+ "engines": {
3257
+ "node": ">=10"
3258
+ },
3259
+ "funding": {
3260
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3261
+ }
3262
  },
3263
  "node_modules/aria-hidden": {
3264
  "version": "1.2.6",
 
3272
  "node": ">=10"
3273
  }
3274
  },
3275
+ "node_modules/assertion-error": {
3276
+ "version": "1.1.0",
3277
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
3278
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
3279
+ "dev": true,
3280
+ "license": "MIT",
3281
+ "engines": {
3282
+ "node": "*"
3283
+ }
3284
+ },
3285
  "node_modules/autoprefixer": {
3286
  "version": "10.4.21",
3287
  "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
 
3362
  "node": ">=10.16.0"
3363
  }
3364
  },
3365
+ "node_modules/cac": {
3366
+ "version": "6.7.14",
3367
+ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
3368
+ "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
3369
+ "dev": true,
3370
+ "license": "MIT",
3371
+ "engines": {
3372
+ "node": ">=8"
3373
+ }
3374
+ },
3375
  "node_modules/caniuse-lite": {
3376
  "version": "1.0.30001735",
3377
  "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001735.tgz",
 
3392
  ],
3393
  "license": "CC-BY-4.0"
3394
  },
3395
+ "node_modules/chai": {
3396
+ "version": "4.5.0",
3397
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz",
3398
+ "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==",
3399
+ "dev": true,
3400
+ "license": "MIT",
3401
+ "dependencies": {
3402
+ "assertion-error": "^1.1.0",
3403
+ "check-error": "^1.0.3",
3404
+ "deep-eql": "^4.1.3",
3405
+ "get-func-name": "^2.0.2",
3406
+ "loupe": "^2.3.6",
3407
+ "pathval": "^1.1.1",
3408
+ "type-detect": "^4.1.0"
3409
+ },
3410
+ "engines": {
3411
+ "node": ">=4"
3412
+ }
3413
+ },
3414
+ "node_modules/check-error": {
3415
+ "version": "1.0.3",
3416
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
3417
+ "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
3418
+ "dev": true,
3419
+ "license": "MIT",
3420
+ "dependencies": {
3421
+ "get-func-name": "^2.0.2"
3422
+ },
3423
+ "engines": {
3424
+ "node": "*"
3425
+ }
3426
+ },
3427
  "node_modules/chownr": {
3428
  "version": "3.0.0",
3429
  "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
 
3522
  "simple-swizzle": "^0.2.2"
3523
  }
3524
  },
3525
+ "node_modules/confbox": {
3526
+ "version": "0.1.8",
3527
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
3528
+ "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
3529
+ "dev": true,
3530
+ "license": "MIT"
3531
+ },
3532
+ "node_modules/cross-spawn": {
3533
+ "version": "7.0.6",
3534
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
3535
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
3536
+ "dev": true,
3537
+ "license": "MIT",
3538
+ "dependencies": {
3539
+ "path-key": "^3.1.0",
3540
+ "shebang-command": "^2.0.0",
3541
+ "which": "^2.0.1"
3542
+ },
3543
+ "engines": {
3544
+ "node": ">= 8"
3545
+ }
3546
+ },
3547
  "node_modules/csstype": {
3548
  "version": "3.1.3",
3549
  "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
3550
  "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
3551
+ "dev": true,
3552
  "license": "MIT"
3553
  },
3554
  "node_modules/d3-array": {
 
3688
  "integrity": "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==",
3689
  "license": "MIT"
3690
  },
3691
+ "node_modules/debug": {
3692
+ "version": "4.4.1",
3693
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
3694
+ "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
3695
+ "dev": true,
3696
+ "license": "MIT",
3697
+ "dependencies": {
3698
+ "ms": "^2.1.3"
3699
+ },
3700
+ "engines": {
3701
+ "node": ">=6.0"
3702
+ },
3703
+ "peerDependenciesMeta": {
3704
+ "supports-color": {
3705
+ "optional": true
3706
+ }
3707
+ }
3708
+ },
3709
  "node_modules/decimal.js-light": {
3710
  "version": "2.5.1",
3711
  "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz",
3712
  "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==",
3713
  "license": "MIT"
3714
  },
3715
+ "node_modules/deep-eql": {
3716
+ "version": "4.1.4",
3717
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz",
3718
+ "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==",
3719
+ "dev": true,
3720
+ "license": "MIT",
3721
+ "dependencies": {
3722
+ "type-detect": "^4.0.0"
3723
+ },
3724
+ "engines": {
3725
+ "node": ">=6"
3726
+ }
3727
+ },
3728
  "node_modules/detect-libc": {
3729
  "version": "2.0.4",
3730
  "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
 
3741
  "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
3742
  "license": "MIT"
3743
  },
3744
+ "node_modules/diff-sequences": {
3745
+ "version": "29.6.3",
3746
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
3747
+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
3748
+ "dev": true,
3749
+ "license": "MIT",
3750
+ "engines": {
3751
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3752
+ }
3753
+ },
3754
  "node_modules/electron-to-chromium": {
3755
  "version": "1.5.202",
3756
  "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.202.tgz",
 
3809
  "benchmarks"
3810
  ]
3811
  },
3812
+ "node_modules/esbuild": {
3813
+ "version": "0.21.5",
3814
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
3815
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
3816
+ "dev": true,
3817
+ "hasInstallScript": true,
3818
+ "license": "MIT",
3819
+ "bin": {
3820
+ "esbuild": "bin/esbuild"
3821
+ },
3822
+ "engines": {
3823
+ "node": ">=12"
3824
+ },
3825
+ "optionalDependencies": {
3826
+ "@esbuild/aix-ppc64": "0.21.5",
3827
+ "@esbuild/android-arm": "0.21.5",
3828
+ "@esbuild/android-arm64": "0.21.5",
3829
+ "@esbuild/android-x64": "0.21.5",
3830
+ "@esbuild/darwin-arm64": "0.21.5",
3831
+ "@esbuild/darwin-x64": "0.21.5",
3832
+ "@esbuild/freebsd-arm64": "0.21.5",
3833
+ "@esbuild/freebsd-x64": "0.21.5",
3834
+ "@esbuild/linux-arm": "0.21.5",
3835
+ "@esbuild/linux-arm64": "0.21.5",
3836
+ "@esbuild/linux-ia32": "0.21.5",
3837
+ "@esbuild/linux-loong64": "0.21.5",
3838
+ "@esbuild/linux-mips64el": "0.21.5",
3839
+ "@esbuild/linux-ppc64": "0.21.5",
3840
+ "@esbuild/linux-riscv64": "0.21.5",
3841
+ "@esbuild/linux-s390x": "0.21.5",
3842
+ "@esbuild/linux-x64": "0.21.5",
3843
+ "@esbuild/netbsd-x64": "0.21.5",
3844
+ "@esbuild/openbsd-x64": "0.21.5",
3845
+ "@esbuild/sunos-x64": "0.21.5",
3846
+ "@esbuild/win32-arm64": "0.21.5",
3847
+ "@esbuild/win32-ia32": "0.21.5",
3848
+ "@esbuild/win32-x64": "0.21.5"
3849
+ }
3850
+ },
3851
  "node_modules/escalade": {
3852
  "version": "3.2.0",
3853
  "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
 
3857
  "node": ">=6"
3858
  }
3859
  },
3860
+ "node_modules/estree-walker": {
3861
+ "version": "3.0.3",
3862
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
3863
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
3864
+ "dev": true,
3865
+ "license": "MIT",
3866
+ "dependencies": {
3867
+ "@types/estree": "^1.0.0"
3868
+ }
3869
+ },
3870
  "node_modules/eventemitter3": {
3871
  "version": "5.0.1",
3872
  "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
3873
  "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
3874
  "license": "MIT"
3875
  },
3876
+ "node_modules/execa": {
3877
+ "version": "8.0.1",
3878
+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
3879
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
3880
+ "dev": true,
3881
+ "license": "MIT",
3882
+ "dependencies": {
3883
+ "cross-spawn": "^7.0.3",
3884
+ "get-stream": "^8.0.1",
3885
+ "human-signals": "^5.0.0",
3886
+ "is-stream": "^3.0.0",
3887
+ "merge-stream": "^2.0.0",
3888
+ "npm-run-path": "^5.1.0",
3889
+ "onetime": "^6.0.0",
3890
+ "signal-exit": "^4.1.0",
3891
+ "strip-final-newline": "^3.0.0"
3892
+ },
3893
+ "engines": {
3894
+ "node": ">=16.17"
3895
+ },
3896
+ "funding": {
3897
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
3898
+ }
3899
+ },
3900
  "node_modules/fraction.js": {
3901
  "version": "4.3.7",
3902
  "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
 
3910
  "url": "https://github.com/sponsors/rawify"
3911
  }
3912
  },
3913
+ "node_modules/fsevents": {
3914
+ "version": "2.3.3",
3915
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
3916
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
3917
+ "dev": true,
3918
+ "hasInstallScript": true,
3919
+ "license": "MIT",
3920
+ "optional": true,
3921
+ "os": [
3922
+ "darwin"
3923
+ ],
3924
+ "engines": {
3925
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
3926
+ }
3927
+ },
3928
  "node_modules/geist": {
3929
  "version": "1.4.2",
3930
  "resolved": "https://registry.npmjs.org/geist/-/geist-1.4.2.tgz",
 
3934
  "next": ">=13.2.0"
3935
  }
3936
  },
3937
+ "node_modules/get-func-name": {
3938
+ "version": "2.0.2",
3939
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
3940
+ "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
3941
+ "dev": true,
3942
+ "license": "MIT",
3943
+ "engines": {
3944
+ "node": "*"
3945
+ }
3946
+ },
3947
  "node_modules/get-nonce": {
3948
  "version": "1.0.1",
3949
  "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
 
3953
  "node": ">=6"
3954
  }
3955
  },
3956
+ "node_modules/get-stream": {
3957
+ "version": "8.0.1",
3958
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
3959
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
3960
+ "dev": true,
3961
+ "license": "MIT",
3962
+ "engines": {
3963
+ "node": ">=16"
3964
+ },
3965
+ "funding": {
3966
+ "url": "https://github.com/sponsors/sindresorhus"
3967
+ }
3968
+ },
3969
  "node_modules/graceful-fs": {
3970
  "version": "4.2.11",
3971
  "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
 
3973
  "dev": true,
3974
  "license": "ISC"
3975
  },
3976
+ "node_modules/human-signals": {
3977
+ "version": "5.0.0",
3978
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
3979
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
3980
+ "dev": true,
3981
+ "license": "Apache-2.0",
3982
+ "engines": {
3983
+ "node": ">=16.17.0"
3984
+ }
3985
+ },
3986
  "node_modules/immer": {
3987
  "version": "10.1.1",
3988
  "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz",
 
4019
  "license": "MIT",
4020
  "optional": true
4021
  },
4022
+ "node_modules/is-stream": {
4023
+ "version": "3.0.0",
4024
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
4025
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
4026
+ "dev": true,
4027
+ "license": "MIT",
4028
+ "engines": {
4029
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
4030
+ },
4031
+ "funding": {
4032
+ "url": "https://github.com/sponsors/sindresorhus"
4033
+ }
4034
+ },
4035
+ "node_modules/isexe": {
4036
+ "version": "2.0.0",
4037
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
4038
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
4039
+ "dev": true,
4040
+ "license": "ISC"
4041
+ },
4042
  "node_modules/jiti": {
4043
  "version": "2.5.1",
4044
  "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.5.1.tgz",
 
4049
  "jiti": "lib/jiti-cli.mjs"
4050
  }
4051
  },
4052
+ "node_modules/js-tokens": {
4053
+ "version": "9.0.1",
4054
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
4055
+ "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
4056
+ "dev": true,
4057
+ "license": "MIT"
4058
+ },
4059
  "node_modules/lightningcss": {
4060
  "version": "1.30.1",
4061
  "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz",
 
4295
  "url": "https://opencollective.com/parcel"
4296
  }
4297
  },
4298
+ "node_modules/local-pkg": {
4299
+ "version": "0.5.1",
4300
+ "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz",
4301
+ "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==",
4302
+ "dev": true,
4303
+ "license": "MIT",
4304
+ "dependencies": {
4305
+ "mlly": "^1.7.3",
4306
+ "pkg-types": "^1.2.1"
4307
+ },
4308
+ "engines": {
4309
+ "node": ">=14"
4310
+ },
4311
+ "funding": {
4312
+ "url": "https://github.com/sponsors/antfu"
4313
+ }
4314
+ },
4315
+ "node_modules/loupe": {
4316
+ "version": "2.3.7",
4317
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
4318
+ "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
4319
+ "dev": true,
4320
+ "license": "MIT",
4321
+ "dependencies": {
4322
+ "get-func-name": "^2.0.1"
4323
+ }
4324
+ },
4325
  "node_modules/lucide-react": {
4326
  "version": "0.454.0",
4327
  "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.454.0.tgz",
 
4341
  "@jridgewell/sourcemap-codec": "^1.5.0"
4342
  }
4343
  },
4344
+ "node_modules/merge-stream": {
4345
+ "version": "2.0.0",
4346
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
4347
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
4348
+ "dev": true,
4349
+ "license": "MIT"
4350
+ },
4351
+ "node_modules/mimic-fn": {
4352
+ "version": "4.0.0",
4353
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
4354
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
4355
+ "dev": true,
4356
+ "license": "MIT",
4357
+ "engines": {
4358
+ "node": ">=12"
4359
+ },
4360
+ "funding": {
4361
+ "url": "https://github.com/sponsors/sindresorhus"
4362
+ }
4363
+ },
4364
  "node_modules/minipass": {
4365
  "version": "7.1.2",
4366
  "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
 
4400
  "url": "https://github.com/sponsors/isaacs"
4401
  }
4402
  },
4403
+ "node_modules/mlly": {
4404
+ "version": "1.7.4",
4405
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz",
4406
+ "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==",
4407
+ "dev": true,
4408
+ "license": "MIT",
4409
+ "dependencies": {
4410
+ "acorn": "^8.14.0",
4411
+ "pathe": "^2.0.1",
4412
+ "pkg-types": "^1.3.0",
4413
+ "ufo": "^1.5.4"
4414
+ }
4415
+ },
4416
+ "node_modules/mlly/node_modules/pathe": {
4417
+ "version": "2.0.3",
4418
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
4419
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
4420
+ "dev": true,
4421
+ "license": "MIT"
4422
+ },
4423
+ "node_modules/ms": {
4424
+ "version": "2.1.3",
4425
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
4426
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
4427
+ "dev": true,
4428
+ "license": "MIT"
4429
+ },
4430
  "node_modules/nanoid": {
4431
  "version": "3.3.11",
4432
  "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
 
4529
  ],
4530
  "license": "MIT",
4531
  "dependencies": {
4532
+ "nanoid": "^3.3.6",
4533
+ "picocolors": "^1.0.0",
4534
+ "source-map-js": "^1.0.2"
4535
+ },
4536
+ "engines": {
4537
+ "node": "^10 || ^12 || >=14"
4538
+ }
4539
+ },
4540
+ "node_modules/node-releases": {
4541
+ "version": "2.0.19",
4542
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
4543
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
4544
+ "license": "MIT"
4545
+ },
4546
+ "node_modules/normalize-range": {
4547
+ "version": "0.1.2",
4548
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
4549
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
4550
+ "license": "MIT",
4551
+ "engines": {
4552
+ "node": ">=0.10.0"
4553
+ }
4554
+ },
4555
+ "node_modules/npm-run-path": {
4556
+ "version": "5.3.0",
4557
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
4558
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
4559
+ "dev": true,
4560
+ "license": "MIT",
4561
+ "dependencies": {
4562
+ "path-key": "^4.0.0"
4563
+ },
4564
+ "engines": {
4565
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
4566
+ },
4567
+ "funding": {
4568
+ "url": "https://github.com/sponsors/sindresorhus"
4569
+ }
4570
+ },
4571
+ "node_modules/npm-run-path/node_modules/path-key": {
4572
+ "version": "4.0.0",
4573
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
4574
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
4575
+ "dev": true,
4576
+ "license": "MIT",
4577
+ "engines": {
4578
+ "node": ">=12"
4579
+ },
4580
+ "funding": {
4581
+ "url": "https://github.com/sponsors/sindresorhus"
4582
+ }
4583
+ },
4584
+ "node_modules/onetime": {
4585
+ "version": "6.0.0",
4586
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
4587
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
4588
+ "dev": true,
4589
+ "license": "MIT",
4590
+ "dependencies": {
4591
+ "mimic-fn": "^4.0.0"
4592
  },
4593
  "engines": {
4594
+ "node": ">=12"
4595
+ },
4596
+ "funding": {
4597
+ "url": "https://github.com/sponsors/sindresorhus"
4598
  }
4599
  },
4600
+ "node_modules/p-limit": {
4601
+ "version": "5.0.0",
4602
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz",
4603
+ "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==",
4604
+ "dev": true,
4605
+ "license": "MIT",
4606
+ "dependencies": {
4607
+ "yocto-queue": "^1.0.0"
4608
+ },
4609
+ "engines": {
4610
+ "node": ">=18"
4611
+ },
4612
+ "funding": {
4613
+ "url": "https://github.com/sponsors/sindresorhus"
4614
+ }
4615
+ },
4616
+ "node_modules/path-key": {
4617
+ "version": "3.1.1",
4618
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
4619
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
4620
+ "dev": true,
4621
+ "license": "MIT",
4622
+ "engines": {
4623
+ "node": ">=8"
4624
+ }
4625
+ },
4626
+ "node_modules/pathe": {
4627
+ "version": "1.1.2",
4628
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
4629
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
4630
+ "dev": true,
4631
  "license": "MIT"
4632
  },
4633
+ "node_modules/pathval": {
4634
+ "version": "1.1.1",
4635
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
4636
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
4637
+ "dev": true,
4638
  "license": "MIT",
4639
  "engines": {
4640
+ "node": "*"
4641
  }
4642
  },
4643
  "node_modules/picocolors": {
 
4646
  "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
4647
  "license": "ISC"
4648
  },
4649
+ "node_modules/pkg-types": {
4650
+ "version": "1.3.1",
4651
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
4652
+ "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
4653
+ "dev": true,
4654
+ "license": "MIT",
4655
+ "dependencies": {
4656
+ "confbox": "^0.1.8",
4657
+ "mlly": "^1.7.4",
4658
+ "pathe": "^2.0.1"
4659
+ }
4660
+ },
4661
+ "node_modules/pkg-types/node_modules/pathe": {
4662
+ "version": "2.0.3",
4663
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
4664
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
4665
+ "dev": true,
4666
+ "license": "MIT"
4667
+ },
4668
  "node_modules/postcss": {
4669
  "version": "8.5.6",
4670
  "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
4671
  "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
4672
+ "dev": true,
4673
  "funding": [
4674
  {
4675
  "type": "opencollective",
 
4700
  "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
4701
  "license": "MIT"
4702
  },
4703
+ "node_modules/pretty-format": {
4704
+ "version": "29.7.0",
4705
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
4706
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
4707
+ "dev": true,
4708
+ "license": "MIT",
4709
+ "dependencies": {
4710
+ "@jest/schemas": "^29.6.3",
4711
+ "ansi-styles": "^5.0.0",
4712
+ "react-is": "^18.0.0"
4713
+ },
4714
+ "engines": {
4715
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
4716
+ }
4717
+ },
4718
+ "node_modules/pretty-format/node_modules/react-is": {
4719
+ "version": "18.3.1",
4720
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
4721
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
4722
+ "dev": true,
4723
+ "license": "MIT"
4724
+ },
4725
  "node_modules/react": {
4726
  "version": "19.1.1",
4727
  "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz",
 
4780
  "react": "^16.8.0 || ^17 || ^18 || ^19"
4781
  }
4782
  },
 
 
 
 
 
 
 
4783
  "node_modules/react-redux": {
4784
  "version": "9.2.0",
4785
  "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz",
 
4930
  "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==",
4931
  "license": "MIT"
4932
  },
4933
+ "node_modules/rollup": {
4934
+ "version": "4.46.2",
4935
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz",
4936
+ "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==",
4937
+ "dev": true,
4938
+ "license": "MIT",
4939
+ "dependencies": {
4940
+ "@types/estree": "1.0.8"
4941
+ },
4942
+ "bin": {
4943
+ "rollup": "dist/bin/rollup"
4944
+ },
4945
+ "engines": {
4946
+ "node": ">=18.0.0",
4947
+ "npm": ">=8.0.0"
4948
+ },
4949
+ "optionalDependencies": {
4950
+ "@rollup/rollup-android-arm-eabi": "4.46.2",
4951
+ "@rollup/rollup-android-arm64": "4.46.2",
4952
+ "@rollup/rollup-darwin-arm64": "4.46.2",
4953
+ "@rollup/rollup-darwin-x64": "4.46.2",
4954
+ "@rollup/rollup-freebsd-arm64": "4.46.2",
4955
+ "@rollup/rollup-freebsd-x64": "4.46.2",
4956
+ "@rollup/rollup-linux-arm-gnueabihf": "4.46.2",
4957
+ "@rollup/rollup-linux-arm-musleabihf": "4.46.2",
4958
+ "@rollup/rollup-linux-arm64-gnu": "4.46.2",
4959
+ "@rollup/rollup-linux-arm64-musl": "4.46.2",
4960
+ "@rollup/rollup-linux-loongarch64-gnu": "4.46.2",
4961
+ "@rollup/rollup-linux-ppc64-gnu": "4.46.2",
4962
+ "@rollup/rollup-linux-riscv64-gnu": "4.46.2",
4963
+ "@rollup/rollup-linux-riscv64-musl": "4.46.2",
4964
+ "@rollup/rollup-linux-s390x-gnu": "4.46.2",
4965
+ "@rollup/rollup-linux-x64-gnu": "4.46.2",
4966
+ "@rollup/rollup-linux-x64-musl": "4.46.2",
4967
+ "@rollup/rollup-win32-arm64-msvc": "4.46.2",
4968
+ "@rollup/rollup-win32-ia32-msvc": "4.46.2",
4969
+ "@rollup/rollup-win32-x64-msvc": "4.46.2",
4970
+ "fsevents": "~2.3.2"
4971
+ }
4972
+ },
4973
  "node_modules/scheduler": {
4974
  "version": "0.26.0",
4975
  "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
 
5029
  "@img/sharp-win32-x64": "0.33.5"
5030
  }
5031
  },
5032
+ "node_modules/shebang-command": {
5033
+ "version": "2.0.0",
5034
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
5035
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
5036
+ "dev": true,
5037
+ "license": "MIT",
5038
+ "dependencies": {
5039
+ "shebang-regex": "^3.0.0"
5040
+ },
5041
+ "engines": {
5042
+ "node": ">=8"
5043
+ }
5044
+ },
5045
+ "node_modules/shebang-regex": {
5046
+ "version": "3.0.0",
5047
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
5048
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
5049
+ "dev": true,
5050
+ "license": "MIT",
5051
+ "engines": {
5052
+ "node": ">=8"
5053
+ }
5054
+ },
5055
+ "node_modules/siginfo": {
5056
+ "version": "2.0.0",
5057
+ "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
5058
+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
5059
+ "dev": true,
5060
+ "license": "ISC"
5061
+ },
5062
+ "node_modules/signal-exit": {
5063
+ "version": "4.1.0",
5064
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
5065
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
5066
+ "dev": true,
5067
+ "license": "ISC",
5068
+ "engines": {
5069
+ "node": ">=14"
5070
+ },
5071
+ "funding": {
5072
+ "url": "https://github.com/sponsors/isaacs"
5073
+ }
5074
+ },
5075
  "node_modules/simple-swizzle": {
5076
  "version": "0.2.2",
5077
  "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
 
5101
  "node": ">=0.10.0"
5102
  }
5103
  },
5104
+ "node_modules/stackback": {
5105
+ "version": "0.0.2",
5106
+ "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
5107
+ "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
5108
+ "dev": true,
5109
+ "license": "MIT"
5110
+ },
5111
+ "node_modules/std-env": {
5112
+ "version": "3.9.0",
5113
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz",
5114
+ "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==",
5115
+ "dev": true,
5116
+ "license": "MIT"
5117
+ },
5118
  "node_modules/streamsearch": {
5119
  "version": "1.1.0",
5120
  "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
 
5123
  "node": ">=10.0.0"
5124
  }
5125
  },
5126
+ "node_modules/strip-final-newline": {
5127
+ "version": "3.0.0",
5128
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
5129
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
5130
+ "dev": true,
5131
+ "license": "MIT",
5132
+ "engines": {
5133
+ "node": ">=12"
5134
+ },
5135
+ "funding": {
5136
+ "url": "https://github.com/sponsors/sindresorhus"
5137
+ }
5138
+ },
5139
+ "node_modules/strip-literal": {
5140
+ "version": "2.1.1",
5141
+ "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz",
5142
+ "integrity": "sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==",
5143
+ "dev": true,
5144
+ "license": "MIT",
5145
+ "dependencies": {
5146
+ "js-tokens": "^9.0.1"
5147
+ },
5148
+ "funding": {
5149
+ "url": "https://github.com/sponsors/antfu"
5150
+ }
5151
+ },
5152
  "node_modules/styled-jsx": {
5153
  "version": "5.1.6",
5154
  "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
 
5186
  "version": "4.1.12",
5187
  "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.12.tgz",
5188
  "integrity": "sha512-DzFtxOi+7NsFf7DBtI3BJsynR+0Yp6etH+nRPTbpWnS2pZBaSksv/JGctNwSWzbFjp0vxSqknaUylseZqMDGrA==",
5189
+ "dev": true,
5190
  "license": "MIT"
5191
  },
5192
  "node_modules/tailwindcss-animate": {
 
5232
  "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
5233
  "license": "MIT"
5234
  },
5235
+ "node_modules/tinybench": {
5236
+ "version": "2.9.0",
5237
+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
5238
+ "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
5239
+ "dev": true,
5240
+ "license": "MIT"
5241
+ },
5242
+ "node_modules/tinypool": {
5243
+ "version": "0.8.4",
5244
+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz",
5245
+ "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==",
5246
+ "dev": true,
5247
+ "license": "MIT",
5248
+ "engines": {
5249
+ "node": ">=14.0.0"
5250
+ }
5251
+ },
5252
+ "node_modules/tinyspy": {
5253
+ "version": "2.2.1",
5254
+ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz",
5255
+ "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==",
5256
+ "dev": true,
5257
+ "license": "MIT",
5258
+ "engines": {
5259
+ "node": ">=14.0.0"
5260
+ }
5261
+ },
5262
  "node_modules/tslib": {
5263
  "version": "2.8.1",
5264
  "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
 
5275
  "url": "https://github.com/sponsors/Wombosvideo"
5276
  }
5277
  },
5278
+ "node_modules/type-detect": {
5279
+ "version": "4.1.0",
5280
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz",
5281
+ "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==",
5282
+ "dev": true,
5283
+ "license": "MIT",
5284
+ "engines": {
5285
+ "node": ">=4"
5286
+ }
5287
+ },
5288
  "node_modules/typescript": {
5289
  "version": "5.9.2",
5290
  "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz",
 
5299
  "node": ">=14.17"
5300
  }
5301
  },
5302
+ "node_modules/ufo": {
5303
+ "version": "1.6.1",
5304
+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz",
5305
+ "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==",
5306
+ "dev": true,
5307
+ "license": "MIT"
5308
+ },
5309
  "node_modules/undici-types": {
5310
  "version": "6.21.0",
5311
  "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
 
5396
  }
5397
  },
5398
  "node_modules/vaul": {
5399
+ "version": "0.9.9",
5400
+ "resolved": "https://registry.npmjs.org/vaul/-/vaul-0.9.9.tgz",
5401
+ "integrity": "sha512-7afKg48srluhZwIkaU+lgGtFCUsYBSGOl8vcc8N/M3YQlZFlynHD15AE+pwrYdc826o7nrIND4lL9Y6b9WWZZQ==",
5402
  "license": "MIT",
5403
  "dependencies": {
5404
  "@radix-ui/react-dialog": "^1.1.1"
5405
  },
5406
  "peerDependencies": {
5407
+ "react": "^16.8 || ^17.0 || ^18.0",
5408
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
5409
  }
5410
  },
5411
  "node_modules/victory-vendor": {
 
5430
  "d3-timer": "^3.0.1"
5431
  }
5432
  },
5433
+ "node_modules/vite": {
5434
+ "version": "5.4.19",
5435
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz",
5436
+ "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==",
5437
+ "dev": true,
5438
+ "license": "MIT",
5439
+ "dependencies": {
5440
+ "esbuild": "^0.21.3",
5441
+ "postcss": "^8.4.43",
5442
+ "rollup": "^4.20.0"
5443
+ },
5444
+ "bin": {
5445
+ "vite": "bin/vite.js"
5446
+ },
5447
+ "engines": {
5448
+ "node": "^18.0.0 || >=20.0.0"
5449
+ },
5450
+ "funding": {
5451
+ "url": "https://github.com/vitejs/vite?sponsor=1"
5452
+ },
5453
+ "optionalDependencies": {
5454
+ "fsevents": "~2.3.3"
5455
+ },
5456
+ "peerDependencies": {
5457
+ "@types/node": "^18.0.0 || >=20.0.0",
5458
+ "less": "*",
5459
+ "lightningcss": "^1.21.0",
5460
+ "sass": "*",
5461
+ "sass-embedded": "*",
5462
+ "stylus": "*",
5463
+ "sugarss": "*",
5464
+ "terser": "^5.4.0"
5465
+ },
5466
+ "peerDependenciesMeta": {
5467
+ "@types/node": {
5468
+ "optional": true
5469
+ },
5470
+ "less": {
5471
+ "optional": true
5472
+ },
5473
+ "lightningcss": {
5474
+ "optional": true
5475
+ },
5476
+ "sass": {
5477
+ "optional": true
5478
+ },
5479
+ "sass-embedded": {
5480
+ "optional": true
5481
+ },
5482
+ "stylus": {
5483
+ "optional": true
5484
+ },
5485
+ "sugarss": {
5486
+ "optional": true
5487
+ },
5488
+ "terser": {
5489
+ "optional": true
5490
+ }
5491
+ }
5492
+ },
5493
+ "node_modules/vite-node": {
5494
+ "version": "1.6.1",
5495
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz",
5496
+ "integrity": "sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==",
5497
+ "dev": true,
5498
+ "license": "MIT",
5499
+ "dependencies": {
5500
+ "cac": "^6.7.14",
5501
+ "debug": "^4.3.4",
5502
+ "pathe": "^1.1.1",
5503
+ "picocolors": "^1.0.0",
5504
+ "vite": "^5.0.0"
5505
+ },
5506
+ "bin": {
5507
+ "vite-node": "vite-node.mjs"
5508
+ },
5509
+ "engines": {
5510
+ "node": "^18.0.0 || >=20.0.0"
5511
+ },
5512
+ "funding": {
5513
+ "url": "https://opencollective.com/vitest"
5514
+ }
5515
+ },
5516
+ "node_modules/vitest": {
5517
+ "version": "1.6.1",
5518
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz",
5519
+ "integrity": "sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==",
5520
+ "dev": true,
5521
+ "license": "MIT",
5522
+ "dependencies": {
5523
+ "@vitest/expect": "1.6.1",
5524
+ "@vitest/runner": "1.6.1",
5525
+ "@vitest/snapshot": "1.6.1",
5526
+ "@vitest/spy": "1.6.1",
5527
+ "@vitest/utils": "1.6.1",
5528
+ "acorn-walk": "^8.3.2",
5529
+ "chai": "^4.3.10",
5530
+ "debug": "^4.3.4",
5531
+ "execa": "^8.0.1",
5532
+ "local-pkg": "^0.5.0",
5533
+ "magic-string": "^0.30.5",
5534
+ "pathe": "^1.1.1",
5535
+ "picocolors": "^1.0.0",
5536
+ "std-env": "^3.5.0",
5537
+ "strip-literal": "^2.0.0",
5538
+ "tinybench": "^2.5.1",
5539
+ "tinypool": "^0.8.3",
5540
+ "vite": "^5.0.0",
5541
+ "vite-node": "1.6.1",
5542
+ "why-is-node-running": "^2.2.2"
5543
+ },
5544
+ "bin": {
5545
+ "vitest": "vitest.mjs"
5546
+ },
5547
+ "engines": {
5548
+ "node": "^18.0.0 || >=20.0.0"
5549
+ },
5550
+ "funding": {
5551
+ "url": "https://opencollective.com/vitest"
5552
+ },
5553
+ "peerDependencies": {
5554
+ "@edge-runtime/vm": "*",
5555
+ "@types/node": "^18.0.0 || >=20.0.0",
5556
+ "@vitest/browser": "1.6.1",
5557
+ "@vitest/ui": "1.6.1",
5558
+ "happy-dom": "*",
5559
+ "jsdom": "*"
5560
+ },
5561
+ "peerDependenciesMeta": {
5562
+ "@edge-runtime/vm": {
5563
+ "optional": true
5564
+ },
5565
+ "@types/node": {
5566
+ "optional": true
5567
+ },
5568
+ "@vitest/browser": {
5569
+ "optional": true
5570
+ },
5571
+ "@vitest/ui": {
5572
+ "optional": true
5573
+ },
5574
+ "happy-dom": {
5575
+ "optional": true
5576
+ },
5577
+ "jsdom": {
5578
+ "optional": true
5579
+ }
5580
+ }
5581
+ },
5582
+ "node_modules/which": {
5583
+ "version": "2.0.2",
5584
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
5585
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
5586
+ "dev": true,
5587
+ "license": "ISC",
5588
+ "dependencies": {
5589
+ "isexe": "^2.0.0"
5590
+ },
5591
+ "bin": {
5592
+ "node-which": "bin/node-which"
5593
+ },
5594
+ "engines": {
5595
+ "node": ">= 8"
5596
+ }
5597
+ },
5598
+ "node_modules/why-is-node-running": {
5599
+ "version": "2.3.0",
5600
+ "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
5601
+ "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
5602
+ "dev": true,
5603
+ "license": "MIT",
5604
+ "dependencies": {
5605
+ "siginfo": "^2.0.0",
5606
+ "stackback": "0.0.2"
5607
+ },
5608
+ "bin": {
5609
+ "why-is-node-running": "cli.js"
5610
+ },
5611
+ "engines": {
5612
+ "node": ">=8"
5613
+ }
5614
+ },
5615
  "node_modules/yallist": {
5616
  "version": "5.0.0",
5617
  "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
 
5622
  "node": ">=18"
5623
  }
5624
  },
5625
+ "node_modules/yocto-queue": {
5626
+ "version": "1.2.1",
5627
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz",
5628
+ "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==",
5629
+ "dev": true,
5630
+ "license": "MIT",
5631
+ "engines": {
5632
+ "node": ">=12.20"
5633
+ },
5634
+ "funding": {
5635
+ "url": "https://github.com/sponsors/sindresorhus"
5636
+ }
5637
+ },
5638
  "node_modules/zod": {
5639
  "version": "3.25.67",
5640
  "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.67.tgz",
package.json CHANGED
@@ -6,7 +6,8 @@
6
  "build": "next build",
7
  "dev": "next dev",
8
  "lint": "next lint",
9
- "start": "next start"
 
10
  },
11
  "dependencies": {
12
  "@hookform/resolvers": "^3.10.0",
@@ -67,7 +68,8 @@
67
  "@types/react-dom": "^19",
68
  "postcss": "^8.5",
69
  "tailwindcss": "^4.1.9",
70
- "tw-animate-css": "1.3.3",
71
- "typescript": "^5"
 
72
  }
73
  }
 
6
  "build": "next build",
7
  "dev": "next dev",
8
  "lint": "next lint",
9
+ "start": "next start",
10
+ "test": "vitest"
11
  },
12
  "dependencies": {
13
  "@hookform/resolvers": "^3.10.0",
 
68
  "@types/react-dom": "^19",
69
  "postcss": "^8.5",
70
  "tailwindcss": "^4.1.9",
71
+ "tw-animate-css": "1.3.3",
72
+ "typescript": "^5",
73
+ "vitest": "^1.1.5"
74
  }
75
  }
tests/na-utils.test.ts ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { describe, it, expect } from 'vitest'
2
+ import { naReasonForCategoryFromEval } from '../lib/na-utils'
3
+
4
+ const benchIds = ['Q1', 'Q2']
5
+ const procIds = ['P1']
6
+
7
+ describe('naReasonForCategoryFromEval', () => {
8
+ it('returns reason when additionalAspects marks not applicable', () => {
9
+ const cat = {
10
+ additionalAspects: 'Not applicable: this category does not apply',
11
+ benchmarkAnswers: { Q1: 'N/A', Q2: 'N/A' },
12
+ processAnswers: { P1: 'N/A' }
13
+ }
14
+ const r = naReasonForCategoryFromEval(cat, benchIds, procIds)
15
+ expect(r).toBe('Not applicable: this category does not apply')
16
+ })
17
+
18
+ it('returns undefined when any non-NA answer exists', () => {
19
+ const cat = {
20
+ additionalAspects: 'Not applicable: but answers exist',
21
+ benchmarkAnswers: { Q1: 'yes', Q2: 'N/A' },
22
+ processAnswers: { P1: 'N/A' }
23
+ }
24
+ const r = naReasonForCategoryFromEval(cat, benchIds, procIds)
25
+ expect(r).toBeUndefined()
26
+ })
27
+
28
+ it('ignores question-level source NA markers for category selectability', () => {
29
+ const cat = {
30
+ additionalAspects: '',
31
+ benchmarkAnswers: { Q1: 'N/A', Q2: 'N/A' },
32
+ processAnswers: { P1: 'N/A' },
33
+ benchmarkSources: {
34
+ Q1: [ { description: 'Not applicable for this question' } ]
35
+ }
36
+ }
37
+ const r = naReasonForCategoryFromEval(cat, benchIds, procIds)
38
+ expect(r).toBeUndefined()
39
+ })
40
+ })