add more shadcn components
Browse files- package.json +4 -0
- pnpm-lock.yaml +474 -0
- src/components/ui/button.tsx +59 -0
- src/components/ui/input.tsx +21 -0
- src/components/ui/select.tsx +183 -0
- src/components/ui/separator.tsx +28 -0
- src/components/ui/skeleton.tsx +13 -0
- src/components/ui/tooltip.tsx +59 -0
package.json
CHANGED
@@ -5,8 +5,12 @@
|
|
5 |
"private": true,
|
6 |
"dependencies": {
|
7 |
"@headlessui/react": "^2.2.4",
|
|
|
|
|
8 |
"@radix-ui/react-slider": "^1.3.5",
|
|
|
9 |
"@radix-ui/react-switch": "^1.2.5",
|
|
|
10 |
"@tailwindcss/typography": "^0.5.16",
|
11 |
"@tailwindcss/vite": "^4.1.11",
|
12 |
"@testing-library/dom": "^10.4.0",
|
|
|
5 |
"private": true,
|
6 |
"dependencies": {
|
7 |
"@headlessui/react": "^2.2.4",
|
8 |
+
"@radix-ui/react-select": "^2.2.5",
|
9 |
+
"@radix-ui/react-separator": "^1.1.7",
|
10 |
"@radix-ui/react-slider": "^1.3.5",
|
11 |
+
"@radix-ui/react-slot": "^1.2.3",
|
12 |
"@radix-ui/react-switch": "^1.2.5",
|
13 |
+
"@radix-ui/react-tooltip": "^1.2.7",
|
14 |
"@tailwindcss/typography": "^0.5.16",
|
15 |
"@tailwindcss/vite": "^4.1.11",
|
16 |
"@testing-library/dom": "^10.4.0",
|
pnpm-lock.yaml
CHANGED
@@ -11,12 +11,24 @@ importers:
|
|
11 |
'@headlessui/react':
|
12 |
specifier: ^2.2.4
|
13 |
version: 2.2.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
'@radix-ui/react-slider':
|
15 |
specifier: ^1.3.5
|
16 |
version: 1.3.5(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
|
|
|
|
|
|
17 |
'@radix-ui/react-switch':
|
18 |
specifier: ^1.2.5
|
19 |
version: 1.2.5(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
|
|
|
|
|
|
20 |
'@tailwindcss/typography':
|
21 |
specifier: ^0.5.16
|
22 |
version: 0.5.16(tailwindcss@4.1.11)
|
@@ -431,6 +443,19 @@ packages:
|
|
431 |
'@radix-ui/primitive@1.1.2':
|
432 |
resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==}
|
433 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
434 |
'@radix-ui/react-collection@1.1.7':
|
435 |
resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==}
|
436 |
peerDependencies:
|
@@ -471,6 +496,89 @@ packages:
|
|
471 |
'@types/react':
|
472 |
optional: true
|
473 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
474 |
'@radix-ui/react-primitive@2.1.3':
|
475 |
resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==}
|
476 |
peerDependencies:
|
@@ -484,6 +592,32 @@ packages:
|
|
484 |
'@types/react-dom':
|
485 |
optional: true
|
486 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
487 |
'@radix-ui/react-slider@1.3.5':
|
488 |
resolution: {integrity: sha512-rkfe2pU2NBAYfGaxa3Mqosi7VZEWX5CxKaanRv0vZd4Zhl9fvQrg0VM93dv3xGLGfrHuoTRF3JXH8nb9g+B3fw==}
|
489 |
peerDependencies:
|
@@ -519,6 +653,28 @@ packages:
|
|
519 |
'@types/react-dom':
|
520 |
optional: true
|
521 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
522 |
'@radix-ui/react-use-controllable-state@1.2.2':
|
523 |
resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==}
|
524 |
peerDependencies:
|
@@ -537,6 +693,15 @@ packages:
|
|
537 |
'@types/react':
|
538 |
optional: true
|
539 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
540 |
'@radix-ui/react-use-layout-effect@1.1.1':
|
541 |
resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==}
|
542 |
peerDependencies:
|
@@ -555,6 +720,15 @@ packages:
|
|
555 |
'@types/react':
|
556 |
optional: true
|
557 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
558 |
'@radix-ui/react-use-size@1.1.1':
|
559 |
resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==}
|
560 |
peerDependencies:
|
@@ -564,6 +738,22 @@ packages:
|
|
564 |
'@types/react':
|
565 |
optional: true
|
566 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
567 |
'@react-aria/focus@3.20.5':
|
568 |
resolution: {integrity: sha512-JpFtXmWQ0Oca7FcvkqgjSyo6xEP7v3oQOLUId6o0xTvm4AD5W0mU2r3lYrbhsJ+XxdUUX4AVR5473sZZ85kU4A==}
|
569 |
peerDependencies:
|
@@ -1086,6 +1276,10 @@ packages:
|
|
1086 |
argparse@2.0.1:
|
1087 |
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
1088 |
|
|
|
|
|
|
|
|
|
1089 |
aria-query@5.3.0:
|
1090 |
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
|
1091 |
|
@@ -1237,6 +1431,9 @@ packages:
|
|
1237 |
resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==}
|
1238 |
engines: {node: '>=8'}
|
1239 |
|
|
|
|
|
|
|
1240 |
devlop@1.1.0:
|
1241 |
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
|
1242 |
|
@@ -1326,6 +1523,10 @@ packages:
|
|
1326 |
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
|
1327 |
engines: {node: '>=6.9.0'}
|
1328 |
|
|
|
|
|
|
|
|
|
1329 |
globrex@0.1.2:
|
1330 |
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
|
1331 |
|
@@ -1816,6 +2017,36 @@ packages:
|
|
1816 |
resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
|
1817 |
engines: {node: '>=0.10.0'}
|
1818 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1819 |
react-syntax-highlighter@15.6.1:
|
1820 |
resolution: {integrity: sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==}
|
1821 |
peerDependencies:
|
@@ -2003,6 +2234,26 @@ packages:
|
|
2003 |
peerDependencies:
|
2004 |
browserslist: '>= 4.21.0'
|
2005 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006 |
use-sync-external-store@1.5.0:
|
2007 |
resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==}
|
2008 |
peerDependencies:
|
@@ -2369,6 +2620,15 @@ snapshots:
|
|
2369 |
|
2370 |
'@radix-ui/primitive@1.1.2': {}
|
2371 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2372 |
'@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2373 |
dependencies:
|
2374 |
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0)
|
@@ -2399,6 +2659,81 @@ snapshots:
|
|
2399 |
optionalDependencies:
|
2400 |
'@types/react': 19.1.8
|
2401 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2402 |
'@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2403 |
dependencies:
|
2404 |
'@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0)
|
@@ -2408,6 +2743,44 @@ snapshots:
|
|
2408 |
'@types/react': 19.1.8
|
2409 |
'@types/react-dom': 19.1.6(@types/react@19.1.8)
|
2410 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2411 |
'@radix-ui/react-slider@1.3.5(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2412 |
dependencies:
|
2413 |
'@radix-ui/number': 1.1.1
|
@@ -2449,6 +2822,32 @@ snapshots:
|
|
2449 |
'@types/react': 19.1.8
|
2450 |
'@types/react-dom': 19.1.6(@types/react@19.1.8)
|
2451 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2452 |
'@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.8)(react@19.1.0)':
|
2453 |
dependencies:
|
2454 |
'@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.8)(react@19.1.0)
|
@@ -2464,6 +2863,13 @@ snapshots:
|
|
2464 |
optionalDependencies:
|
2465 |
'@types/react': 19.1.8
|
2466 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2467 |
'@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.8)(react@19.1.0)':
|
2468 |
dependencies:
|
2469 |
react: 19.1.0
|
@@ -2476,6 +2882,13 @@ snapshots:
|
|
2476 |
optionalDependencies:
|
2477 |
'@types/react': 19.1.8
|
2478 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2479 |
'@radix-ui/react-use-size@1.1.1(@types/react@19.1.8)(react@19.1.0)':
|
2480 |
dependencies:
|
2481 |
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
@@ -2483,6 +2896,17 @@ snapshots:
|
|
2483 |
optionalDependencies:
|
2484 |
'@types/react': 19.1.8
|
2485 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2486 |
'@react-aria/focus@3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2487 |
dependencies:
|
2488 |
'@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
@@ -2958,6 +3382,10 @@ snapshots:
|
|
2958 |
|
2959 |
argparse@2.0.1: {}
|
2960 |
|
|
|
|
|
|
|
|
|
2961 |
aria-query@5.3.0:
|
2962 |
dependencies:
|
2963 |
dequal: 2.0.3
|
@@ -3090,6 +3518,8 @@ snapshots:
|
|
3090 |
|
3091 |
detect-libc@2.0.4: {}
|
3092 |
|
|
|
|
|
3093 |
devlop@1.1.0:
|
3094 |
dependencies:
|
3095 |
dequal: 2.0.3
|
@@ -3180,6 +3610,8 @@ snapshots:
|
|
3180 |
|
3181 |
gensync@1.0.0-beta.2: {}
|
3182 |
|
|
|
|
|
3183 |
globrex@0.1.2: {}
|
3184 |
|
3185 |
graceful-fs@4.2.11: {}
|
@@ -3870,6 +4302,33 @@ snapshots:
|
|
3870 |
|
3871 |
react-refresh@0.17.0: {}
|
3872 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3873 |
react-syntax-highlighter@15.6.1(react@19.1.0):
|
3874 |
dependencies:
|
3875 |
'@babel/runtime': 7.27.6
|
@@ -4098,6 +4557,21 @@ snapshots:
|
|
4098 |
escalade: 3.2.0
|
4099 |
picocolors: 1.1.1
|
4100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4101 |
use-sync-external-store@1.5.0(react@19.1.0):
|
4102 |
dependencies:
|
4103 |
react: 19.1.0
|
|
|
11 |
'@headlessui/react':
|
12 |
specifier: ^2.2.4
|
13 |
version: 2.2.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
14 |
+
'@radix-ui/react-select':
|
15 |
+
specifier: ^2.2.5
|
16 |
+
version: 2.2.5(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
17 |
+
'@radix-ui/react-separator':
|
18 |
+
specifier: ^1.1.7
|
19 |
+
version: 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
20 |
'@radix-ui/react-slider':
|
21 |
specifier: ^1.3.5
|
22 |
version: 1.3.5(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
23 |
+
'@radix-ui/react-slot':
|
24 |
+
specifier: ^1.2.3
|
25 |
+
version: 1.2.3(@types/react@19.1.8)(react@19.1.0)
|
26 |
'@radix-ui/react-switch':
|
27 |
specifier: ^1.2.5
|
28 |
version: 1.2.5(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
29 |
+
'@radix-ui/react-tooltip':
|
30 |
+
specifier: ^1.2.7
|
31 |
+
version: 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
32 |
'@tailwindcss/typography':
|
33 |
specifier: ^0.5.16
|
34 |
version: 0.5.16(tailwindcss@4.1.11)
|
|
|
443 |
'@radix-ui/primitive@1.1.2':
|
444 |
resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==}
|
445 |
|
446 |
+
'@radix-ui/react-arrow@1.1.7':
|
447 |
+
resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==}
|
448 |
+
peerDependencies:
|
449 |
+
'@types/react': '*'
|
450 |
+
'@types/react-dom': '*'
|
451 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
452 |
+
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
453 |
+
peerDependenciesMeta:
|
454 |
+
'@types/react':
|
455 |
+
optional: true
|
456 |
+
'@types/react-dom':
|
457 |
+
optional: true
|
458 |
+
|
459 |
'@radix-ui/react-collection@1.1.7':
|
460 |
resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==}
|
461 |
peerDependencies:
|
|
|
496 |
'@types/react':
|
497 |
optional: true
|
498 |
|
499 |
+
'@radix-ui/react-dismissable-layer@1.1.10':
|
500 |
+
resolution: {integrity: sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==}
|
501 |
+
peerDependencies:
|
502 |
+
'@types/react': '*'
|
503 |
+
'@types/react-dom': '*'
|
504 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
505 |
+
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
506 |
+
peerDependenciesMeta:
|
507 |
+
'@types/react':
|
508 |
+
optional: true
|
509 |
+
'@types/react-dom':
|
510 |
+
optional: true
|
511 |
+
|
512 |
+
'@radix-ui/react-focus-guards@1.1.2':
|
513 |
+
resolution: {integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==}
|
514 |
+
peerDependencies:
|
515 |
+
'@types/react': '*'
|
516 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
517 |
+
peerDependenciesMeta:
|
518 |
+
'@types/react':
|
519 |
+
optional: true
|
520 |
+
|
521 |
+
'@radix-ui/react-focus-scope@1.1.7':
|
522 |
+
resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==}
|
523 |
+
peerDependencies:
|
524 |
+
'@types/react': '*'
|
525 |
+
'@types/react-dom': '*'
|
526 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
527 |
+
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
528 |
+
peerDependenciesMeta:
|
529 |
+
'@types/react':
|
530 |
+
optional: true
|
531 |
+
'@types/react-dom':
|
532 |
+
optional: true
|
533 |
+
|
534 |
+
'@radix-ui/react-id@1.1.1':
|
535 |
+
resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==}
|
536 |
+
peerDependencies:
|
537 |
+
'@types/react': '*'
|
538 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
539 |
+
peerDependenciesMeta:
|
540 |
+
'@types/react':
|
541 |
+
optional: true
|
542 |
+
|
543 |
+
'@radix-ui/react-popper@1.2.7':
|
544 |
+
resolution: {integrity: sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==}
|
545 |
+
peerDependencies:
|
546 |
+
'@types/react': '*'
|
547 |
+
'@types/react-dom': '*'
|
548 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
549 |
+
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
550 |
+
peerDependenciesMeta:
|
551 |
+
'@types/react':
|
552 |
+
optional: true
|
553 |
+
'@types/react-dom':
|
554 |
+
optional: true
|
555 |
+
|
556 |
+
'@radix-ui/react-portal@1.1.9':
|
557 |
+
resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==}
|
558 |
+
peerDependencies:
|
559 |
+
'@types/react': '*'
|
560 |
+
'@types/react-dom': '*'
|
561 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
562 |
+
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
563 |
+
peerDependenciesMeta:
|
564 |
+
'@types/react':
|
565 |
+
optional: true
|
566 |
+
'@types/react-dom':
|
567 |
+
optional: true
|
568 |
+
|
569 |
+
'@radix-ui/react-presence@1.1.4':
|
570 |
+
resolution: {integrity: sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==}
|
571 |
+
peerDependencies:
|
572 |
+
'@types/react': '*'
|
573 |
+
'@types/react-dom': '*'
|
574 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
575 |
+
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
576 |
+
peerDependenciesMeta:
|
577 |
+
'@types/react':
|
578 |
+
optional: true
|
579 |
+
'@types/react-dom':
|
580 |
+
optional: true
|
581 |
+
|
582 |
'@radix-ui/react-primitive@2.1.3':
|
583 |
resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==}
|
584 |
peerDependencies:
|
|
|
592 |
'@types/react-dom':
|
593 |
optional: true
|
594 |
|
595 |
+
'@radix-ui/react-select@2.2.5':
|
596 |
+
resolution: {integrity: sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==}
|
597 |
+
peerDependencies:
|
598 |
+
'@types/react': '*'
|
599 |
+
'@types/react-dom': '*'
|
600 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
601 |
+
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
602 |
+
peerDependenciesMeta:
|
603 |
+
'@types/react':
|
604 |
+
optional: true
|
605 |
+
'@types/react-dom':
|
606 |
+
optional: true
|
607 |
+
|
608 |
+
'@radix-ui/react-separator@1.1.7':
|
609 |
+
resolution: {integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==}
|
610 |
+
peerDependencies:
|
611 |
+
'@types/react': '*'
|
612 |
+
'@types/react-dom': '*'
|
613 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
614 |
+
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
615 |
+
peerDependenciesMeta:
|
616 |
+
'@types/react':
|
617 |
+
optional: true
|
618 |
+
'@types/react-dom':
|
619 |
+
optional: true
|
620 |
+
|
621 |
'@radix-ui/react-slider@1.3.5':
|
622 |
resolution: {integrity: sha512-rkfe2pU2NBAYfGaxa3Mqosi7VZEWX5CxKaanRv0vZd4Zhl9fvQrg0VM93dv3xGLGfrHuoTRF3JXH8nb9g+B3fw==}
|
623 |
peerDependencies:
|
|
|
653 |
'@types/react-dom':
|
654 |
optional: true
|
655 |
|
656 |
+
'@radix-ui/react-tooltip@1.2.7':
|
657 |
+
resolution: {integrity: sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==}
|
658 |
+
peerDependencies:
|
659 |
+
'@types/react': '*'
|
660 |
+
'@types/react-dom': '*'
|
661 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
662 |
+
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
663 |
+
peerDependenciesMeta:
|
664 |
+
'@types/react':
|
665 |
+
optional: true
|
666 |
+
'@types/react-dom':
|
667 |
+
optional: true
|
668 |
+
|
669 |
+
'@radix-ui/react-use-callback-ref@1.1.1':
|
670 |
+
resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==}
|
671 |
+
peerDependencies:
|
672 |
+
'@types/react': '*'
|
673 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
674 |
+
peerDependenciesMeta:
|
675 |
+
'@types/react':
|
676 |
+
optional: true
|
677 |
+
|
678 |
'@radix-ui/react-use-controllable-state@1.2.2':
|
679 |
resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==}
|
680 |
peerDependencies:
|
|
|
693 |
'@types/react':
|
694 |
optional: true
|
695 |
|
696 |
+
'@radix-ui/react-use-escape-keydown@1.1.1':
|
697 |
+
resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==}
|
698 |
+
peerDependencies:
|
699 |
+
'@types/react': '*'
|
700 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
701 |
+
peerDependenciesMeta:
|
702 |
+
'@types/react':
|
703 |
+
optional: true
|
704 |
+
|
705 |
'@radix-ui/react-use-layout-effect@1.1.1':
|
706 |
resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==}
|
707 |
peerDependencies:
|
|
|
720 |
'@types/react':
|
721 |
optional: true
|
722 |
|
723 |
+
'@radix-ui/react-use-rect@1.1.1':
|
724 |
+
resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==}
|
725 |
+
peerDependencies:
|
726 |
+
'@types/react': '*'
|
727 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
728 |
+
peerDependenciesMeta:
|
729 |
+
'@types/react':
|
730 |
+
optional: true
|
731 |
+
|
732 |
'@radix-ui/react-use-size@1.1.1':
|
733 |
resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==}
|
734 |
peerDependencies:
|
|
|
738 |
'@types/react':
|
739 |
optional: true
|
740 |
|
741 |
+
'@radix-ui/react-visually-hidden@1.2.3':
|
742 |
+
resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==}
|
743 |
+
peerDependencies:
|
744 |
+
'@types/react': '*'
|
745 |
+
'@types/react-dom': '*'
|
746 |
+
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
747 |
+
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
748 |
+
peerDependenciesMeta:
|
749 |
+
'@types/react':
|
750 |
+
optional: true
|
751 |
+
'@types/react-dom':
|
752 |
+
optional: true
|
753 |
+
|
754 |
+
'@radix-ui/rect@1.1.1':
|
755 |
+
resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==}
|
756 |
+
|
757 |
'@react-aria/focus@3.20.5':
|
758 |
resolution: {integrity: sha512-JpFtXmWQ0Oca7FcvkqgjSyo6xEP7v3oQOLUId6o0xTvm4AD5W0mU2r3lYrbhsJ+XxdUUX4AVR5473sZZ85kU4A==}
|
759 |
peerDependencies:
|
|
|
1276 |
argparse@2.0.1:
|
1277 |
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
1278 |
|
1279 |
+
aria-hidden@1.2.6:
|
1280 |
+
resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
|
1281 |
+
engines: {node: '>=10'}
|
1282 |
+
|
1283 |
aria-query@5.3.0:
|
1284 |
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
|
1285 |
|
|
|
1431 |
resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==}
|
1432 |
engines: {node: '>=8'}
|
1433 |
|
1434 |
+
detect-node-es@1.1.0:
|
1435 |
+
resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
|
1436 |
+
|
1437 |
devlop@1.1.0:
|
1438 |
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
|
1439 |
|
|
|
1523 |
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
|
1524 |
engines: {node: '>=6.9.0'}
|
1525 |
|
1526 |
+
get-nonce@1.0.1:
|
1527 |
+
resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
|
1528 |
+
engines: {node: '>=6'}
|
1529 |
+
|
1530 |
globrex@0.1.2:
|
1531 |
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
|
1532 |
|
|
|
2017 |
resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
|
2018 |
engines: {node: '>=0.10.0'}
|
2019 |
|
2020 |
+
react-remove-scroll-bar@2.3.8:
|
2021 |
+
resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
|
2022 |
+
engines: {node: '>=10'}
|
2023 |
+
peerDependencies:
|
2024 |
+
'@types/react': '*'
|
2025 |
+
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
2026 |
+
peerDependenciesMeta:
|
2027 |
+
'@types/react':
|
2028 |
+
optional: true
|
2029 |
+
|
2030 |
+
react-remove-scroll@2.7.1:
|
2031 |
+
resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==}
|
2032 |
+
engines: {node: '>=10'}
|
2033 |
+
peerDependencies:
|
2034 |
+
'@types/react': '*'
|
2035 |
+
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
|
2036 |
+
peerDependenciesMeta:
|
2037 |
+
'@types/react':
|
2038 |
+
optional: true
|
2039 |
+
|
2040 |
+
react-style-singleton@2.2.3:
|
2041 |
+
resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==}
|
2042 |
+
engines: {node: '>=10'}
|
2043 |
+
peerDependencies:
|
2044 |
+
'@types/react': '*'
|
2045 |
+
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
|
2046 |
+
peerDependenciesMeta:
|
2047 |
+
'@types/react':
|
2048 |
+
optional: true
|
2049 |
+
|
2050 |
react-syntax-highlighter@15.6.1:
|
2051 |
resolution: {integrity: sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==}
|
2052 |
peerDependencies:
|
|
|
2234 |
peerDependencies:
|
2235 |
browserslist: '>= 4.21.0'
|
2236 |
|
2237 |
+
use-callback-ref@1.3.3:
|
2238 |
+
resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
|
2239 |
+
engines: {node: '>=10'}
|
2240 |
+
peerDependencies:
|
2241 |
+
'@types/react': '*'
|
2242 |
+
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
|
2243 |
+
peerDependenciesMeta:
|
2244 |
+
'@types/react':
|
2245 |
+
optional: true
|
2246 |
+
|
2247 |
+
use-sidecar@1.1.3:
|
2248 |
+
resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==}
|
2249 |
+
engines: {node: '>=10'}
|
2250 |
+
peerDependencies:
|
2251 |
+
'@types/react': '*'
|
2252 |
+
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
|
2253 |
+
peerDependenciesMeta:
|
2254 |
+
'@types/react':
|
2255 |
+
optional: true
|
2256 |
+
|
2257 |
use-sync-external-store@1.5.0:
|
2258 |
resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==}
|
2259 |
peerDependencies:
|
|
|
2620 |
|
2621 |
'@radix-ui/primitive@1.1.2': {}
|
2622 |
|
2623 |
+
'@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2624 |
+
dependencies:
|
2625 |
+
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2626 |
+
react: 19.1.0
|
2627 |
+
react-dom: 19.1.0(react@19.1.0)
|
2628 |
+
optionalDependencies:
|
2629 |
+
'@types/react': 19.1.8
|
2630 |
+
'@types/react-dom': 19.1.6(@types/react@19.1.8)
|
2631 |
+
|
2632 |
'@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2633 |
dependencies:
|
2634 |
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0)
|
|
|
2659 |
optionalDependencies:
|
2660 |
'@types/react': 19.1.8
|
2661 |
|
2662 |
+
'@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2663 |
+
dependencies:
|
2664 |
+
'@radix-ui/primitive': 1.1.2
|
2665 |
+
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0)
|
2666 |
+
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2667 |
+
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2668 |
+
'@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2669 |
+
react: 19.1.0
|
2670 |
+
react-dom: 19.1.0(react@19.1.0)
|
2671 |
+
optionalDependencies:
|
2672 |
+
'@types/react': 19.1.8
|
2673 |
+
'@types/react-dom': 19.1.6(@types/react@19.1.8)
|
2674 |
+
|
2675 |
+
'@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.8)(react@19.1.0)':
|
2676 |
+
dependencies:
|
2677 |
+
react: 19.1.0
|
2678 |
+
optionalDependencies:
|
2679 |
+
'@types/react': 19.1.8
|
2680 |
+
|
2681 |
+
'@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2682 |
+
dependencies:
|
2683 |
+
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0)
|
2684 |
+
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2685 |
+
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2686 |
+
react: 19.1.0
|
2687 |
+
react-dom: 19.1.0(react@19.1.0)
|
2688 |
+
optionalDependencies:
|
2689 |
+
'@types/react': 19.1.8
|
2690 |
+
'@types/react-dom': 19.1.6(@types/react@19.1.8)
|
2691 |
+
|
2692 |
+
'@radix-ui/react-id@1.1.1(@types/react@19.1.8)(react@19.1.0)':
|
2693 |
+
dependencies:
|
2694 |
+
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2695 |
+
react: 19.1.0
|
2696 |
+
optionalDependencies:
|
2697 |
+
'@types/react': 19.1.8
|
2698 |
+
|
2699 |
+
'@radix-ui/react-popper@1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2700 |
+
dependencies:
|
2701 |
+
'@floating-ui/react-dom': 2.1.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2702 |
+
'@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2703 |
+
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0)
|
2704 |
+
'@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0)
|
2705 |
+
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2706 |
+
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2707 |
+
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2708 |
+
'@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2709 |
+
'@radix-ui/react-use-size': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2710 |
+
'@radix-ui/rect': 1.1.1
|
2711 |
+
react: 19.1.0
|
2712 |
+
react-dom: 19.1.0(react@19.1.0)
|
2713 |
+
optionalDependencies:
|
2714 |
+
'@types/react': 19.1.8
|
2715 |
+
'@types/react-dom': 19.1.6(@types/react@19.1.8)
|
2716 |
+
|
2717 |
+
'@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2718 |
+
dependencies:
|
2719 |
+
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2720 |
+
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2721 |
+
react: 19.1.0
|
2722 |
+
react-dom: 19.1.0(react@19.1.0)
|
2723 |
+
optionalDependencies:
|
2724 |
+
'@types/react': 19.1.8
|
2725 |
+
'@types/react-dom': 19.1.6(@types/react@19.1.8)
|
2726 |
+
|
2727 |
+
'@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2728 |
+
dependencies:
|
2729 |
+
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0)
|
2730 |
+
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2731 |
+
react: 19.1.0
|
2732 |
+
react-dom: 19.1.0(react@19.1.0)
|
2733 |
+
optionalDependencies:
|
2734 |
+
'@types/react': 19.1.8
|
2735 |
+
'@types/react-dom': 19.1.6(@types/react@19.1.8)
|
2736 |
+
|
2737 |
'@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2738 |
dependencies:
|
2739 |
'@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0)
|
|
|
2743 |
'@types/react': 19.1.8
|
2744 |
'@types/react-dom': 19.1.6(@types/react@19.1.8)
|
2745 |
|
2746 |
+
'@radix-ui/react-select@2.2.5(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2747 |
+
dependencies:
|
2748 |
+
'@radix-ui/number': 1.1.1
|
2749 |
+
'@radix-ui/primitive': 1.1.2
|
2750 |
+
'@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2751 |
+
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0)
|
2752 |
+
'@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0)
|
2753 |
+
'@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2754 |
+
'@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2755 |
+
'@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.8)(react@19.1.0)
|
2756 |
+
'@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2757 |
+
'@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2758 |
+
'@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2759 |
+
'@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2760 |
+
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2761 |
+
'@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0)
|
2762 |
+
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2763 |
+
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0)
|
2764 |
+
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2765 |
+
'@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2766 |
+
'@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2767 |
+
aria-hidden: 1.2.6
|
2768 |
+
react: 19.1.0
|
2769 |
+
react-dom: 19.1.0(react@19.1.0)
|
2770 |
+
react-remove-scroll: 2.7.1(@types/react@19.1.8)(react@19.1.0)
|
2771 |
+
optionalDependencies:
|
2772 |
+
'@types/react': 19.1.8
|
2773 |
+
'@types/react-dom': 19.1.6(@types/react@19.1.8)
|
2774 |
+
|
2775 |
+
'@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2776 |
+
dependencies:
|
2777 |
+
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2778 |
+
react: 19.1.0
|
2779 |
+
react-dom: 19.1.0(react@19.1.0)
|
2780 |
+
optionalDependencies:
|
2781 |
+
'@types/react': 19.1.8
|
2782 |
+
'@types/react-dom': 19.1.6(@types/react@19.1.8)
|
2783 |
+
|
2784 |
'@radix-ui/react-slider@1.3.5(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2785 |
dependencies:
|
2786 |
'@radix-ui/number': 1.1.1
|
|
|
2822 |
'@types/react': 19.1.8
|
2823 |
'@types/react-dom': 19.1.6(@types/react@19.1.8)
|
2824 |
|
2825 |
+
'@radix-ui/react-tooltip@1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2826 |
+
dependencies:
|
2827 |
+
'@radix-ui/primitive': 1.1.2
|
2828 |
+
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0)
|
2829 |
+
'@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0)
|
2830 |
+
'@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2831 |
+
'@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2832 |
+
'@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2833 |
+
'@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2834 |
+
'@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2835 |
+
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2836 |
+
'@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0)
|
2837 |
+
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0)
|
2838 |
+
'@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2839 |
+
react: 19.1.0
|
2840 |
+
react-dom: 19.1.0(react@19.1.0)
|
2841 |
+
optionalDependencies:
|
2842 |
+
'@types/react': 19.1.8
|
2843 |
+
'@types/react-dom': 19.1.6(@types/react@19.1.8)
|
2844 |
+
|
2845 |
+
'@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.8)(react@19.1.0)':
|
2846 |
+
dependencies:
|
2847 |
+
react: 19.1.0
|
2848 |
+
optionalDependencies:
|
2849 |
+
'@types/react': 19.1.8
|
2850 |
+
|
2851 |
'@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.8)(react@19.1.0)':
|
2852 |
dependencies:
|
2853 |
'@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.8)(react@19.1.0)
|
|
|
2863 |
optionalDependencies:
|
2864 |
'@types/react': 19.1.8
|
2865 |
|
2866 |
+
'@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.8)(react@19.1.0)':
|
2867 |
+
dependencies:
|
2868 |
+
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
2869 |
+
react: 19.1.0
|
2870 |
+
optionalDependencies:
|
2871 |
+
'@types/react': 19.1.8
|
2872 |
+
|
2873 |
'@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.8)(react@19.1.0)':
|
2874 |
dependencies:
|
2875 |
react: 19.1.0
|
|
|
2882 |
optionalDependencies:
|
2883 |
'@types/react': 19.1.8
|
2884 |
|
2885 |
+
'@radix-ui/react-use-rect@1.1.1(@types/react@19.1.8)(react@19.1.0)':
|
2886 |
+
dependencies:
|
2887 |
+
'@radix-ui/rect': 1.1.1
|
2888 |
+
react: 19.1.0
|
2889 |
+
optionalDependencies:
|
2890 |
+
'@types/react': 19.1.8
|
2891 |
+
|
2892 |
'@radix-ui/react-use-size@1.1.1(@types/react@19.1.8)(react@19.1.0)':
|
2893 |
dependencies:
|
2894 |
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0)
|
|
|
2896 |
optionalDependencies:
|
2897 |
'@types/react': 19.1.8
|
2898 |
|
2899 |
+
'@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2900 |
+
dependencies:
|
2901 |
+
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
2902 |
+
react: 19.1.0
|
2903 |
+
react-dom: 19.1.0(react@19.1.0)
|
2904 |
+
optionalDependencies:
|
2905 |
+
'@types/react': 19.1.8
|
2906 |
+
'@types/react-dom': 19.1.6(@types/react@19.1.8)
|
2907 |
+
|
2908 |
+
'@radix-ui/rect@1.1.1': {}
|
2909 |
+
|
2910 |
'@react-aria/focus@3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
2911 |
dependencies:
|
2912 |
'@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
|
|
3382 |
|
3383 |
argparse@2.0.1: {}
|
3384 |
|
3385 |
+
aria-hidden@1.2.6:
|
3386 |
+
dependencies:
|
3387 |
+
tslib: 2.8.1
|
3388 |
+
|
3389 |
aria-query@5.3.0:
|
3390 |
dependencies:
|
3391 |
dequal: 2.0.3
|
|
|
3518 |
|
3519 |
detect-libc@2.0.4: {}
|
3520 |
|
3521 |
+
detect-node-es@1.1.0: {}
|
3522 |
+
|
3523 |
devlop@1.1.0:
|
3524 |
dependencies:
|
3525 |
dequal: 2.0.3
|
|
|
3610 |
|
3611 |
gensync@1.0.0-beta.2: {}
|
3612 |
|
3613 |
+
get-nonce@1.0.1: {}
|
3614 |
+
|
3615 |
globrex@0.1.2: {}
|
3616 |
|
3617 |
graceful-fs@4.2.11: {}
|
|
|
4302 |
|
4303 |
react-refresh@0.17.0: {}
|
4304 |
|
4305 |
+
react-remove-scroll-bar@2.3.8(@types/react@19.1.8)(react@19.1.0):
|
4306 |
+
dependencies:
|
4307 |
+
react: 19.1.0
|
4308 |
+
react-style-singleton: 2.2.3(@types/react@19.1.8)(react@19.1.0)
|
4309 |
+
tslib: 2.8.1
|
4310 |
+
optionalDependencies:
|
4311 |
+
'@types/react': 19.1.8
|
4312 |
+
|
4313 |
+
react-remove-scroll@2.7.1(@types/react@19.1.8)(react@19.1.0):
|
4314 |
+
dependencies:
|
4315 |
+
react: 19.1.0
|
4316 |
+
react-remove-scroll-bar: 2.3.8(@types/react@19.1.8)(react@19.1.0)
|
4317 |
+
react-style-singleton: 2.2.3(@types/react@19.1.8)(react@19.1.0)
|
4318 |
+
tslib: 2.8.1
|
4319 |
+
use-callback-ref: 1.3.3(@types/react@19.1.8)(react@19.1.0)
|
4320 |
+
use-sidecar: 1.1.3(@types/react@19.1.8)(react@19.1.0)
|
4321 |
+
optionalDependencies:
|
4322 |
+
'@types/react': 19.1.8
|
4323 |
+
|
4324 |
+
react-style-singleton@2.2.3(@types/react@19.1.8)(react@19.1.0):
|
4325 |
+
dependencies:
|
4326 |
+
get-nonce: 1.0.1
|
4327 |
+
react: 19.1.0
|
4328 |
+
tslib: 2.8.1
|
4329 |
+
optionalDependencies:
|
4330 |
+
'@types/react': 19.1.8
|
4331 |
+
|
4332 |
react-syntax-highlighter@15.6.1(react@19.1.0):
|
4333 |
dependencies:
|
4334 |
'@babel/runtime': 7.27.6
|
|
|
4557 |
escalade: 3.2.0
|
4558 |
picocolors: 1.1.1
|
4559 |
|
4560 |
+
use-callback-ref@1.3.3(@types/react@19.1.8)(react@19.1.0):
|
4561 |
+
dependencies:
|
4562 |
+
react: 19.1.0
|
4563 |
+
tslib: 2.8.1
|
4564 |
+
optionalDependencies:
|
4565 |
+
'@types/react': 19.1.8
|
4566 |
+
|
4567 |
+
use-sidecar@1.1.3(@types/react@19.1.8)(react@19.1.0):
|
4568 |
+
dependencies:
|
4569 |
+
detect-node-es: 1.1.0
|
4570 |
+
react: 19.1.0
|
4571 |
+
tslib: 2.8.1
|
4572 |
+
optionalDependencies:
|
4573 |
+
'@types/react': 19.1.8
|
4574 |
+
|
4575 |
use-sync-external-store@1.5.0(react@19.1.0):
|
4576 |
dependencies:
|
4577 |
react: 19.1.0
|
src/components/ui/button.tsx
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import * as React from "react"
|
2 |
+
import { Slot } from "@radix-ui/react-slot"
|
3 |
+
import { cva, type VariantProps } from "class-variance-authority"
|
4 |
+
|
5 |
+
import { cn } from "@/lib/utils"
|
6 |
+
|
7 |
+
const buttonVariants = cva(
|
8 |
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
9 |
+
{
|
10 |
+
variants: {
|
11 |
+
variant: {
|
12 |
+
default:
|
13 |
+
"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
14 |
+
destructive:
|
15 |
+
"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
|
16 |
+
outline:
|
17 |
+
"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
18 |
+
secondary:
|
19 |
+
"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
|
20 |
+
ghost:
|
21 |
+
"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
22 |
+
link: "text-primary underline-offset-4 hover:underline",
|
23 |
+
},
|
24 |
+
size: {
|
25 |
+
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
26 |
+
sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
|
27 |
+
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
28 |
+
icon: "size-9",
|
29 |
+
},
|
30 |
+
},
|
31 |
+
defaultVariants: {
|
32 |
+
variant: "default",
|
33 |
+
size: "default",
|
34 |
+
},
|
35 |
+
}
|
36 |
+
)
|
37 |
+
|
38 |
+
function Button({
|
39 |
+
className,
|
40 |
+
variant,
|
41 |
+
size,
|
42 |
+
asChild = false,
|
43 |
+
...props
|
44 |
+
}: React.ComponentProps<"button"> &
|
45 |
+
VariantProps<typeof buttonVariants> & {
|
46 |
+
asChild?: boolean
|
47 |
+
}) {
|
48 |
+
const Comp = asChild ? Slot : "button"
|
49 |
+
|
50 |
+
return (
|
51 |
+
<Comp
|
52 |
+
data-slot="button"
|
53 |
+
className={cn(buttonVariants({ variant, size, className }))}
|
54 |
+
{...props}
|
55 |
+
/>
|
56 |
+
)
|
57 |
+
}
|
58 |
+
|
59 |
+
export { Button, buttonVariants }
|
src/components/ui/input.tsx
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import * as React from "react"
|
2 |
+
|
3 |
+
import { cn } from "@/lib/utils"
|
4 |
+
|
5 |
+
function Input({ className, type, ...props }: React.ComponentProps<"input">) {
|
6 |
+
return (
|
7 |
+
<input
|
8 |
+
type={type}
|
9 |
+
data-slot="input"
|
10 |
+
className={cn(
|
11 |
+
"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
12 |
+
"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
|
13 |
+
"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
14 |
+
className
|
15 |
+
)}
|
16 |
+
{...props}
|
17 |
+
/>
|
18 |
+
)
|
19 |
+
}
|
20 |
+
|
21 |
+
export { Input }
|
src/components/ui/select.tsx
ADDED
@@ -0,0 +1,183 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import * as React from "react"
|
2 |
+
import * as SelectPrimitive from "@radix-ui/react-select"
|
3 |
+
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react"
|
4 |
+
|
5 |
+
import { cn } from "@/lib/utils"
|
6 |
+
|
7 |
+
function Select({
|
8 |
+
...props
|
9 |
+
}: React.ComponentProps<typeof SelectPrimitive.Root>) {
|
10 |
+
return <SelectPrimitive.Root data-slot="select" {...props} />
|
11 |
+
}
|
12 |
+
|
13 |
+
function SelectGroup({
|
14 |
+
...props
|
15 |
+
}: React.ComponentProps<typeof SelectPrimitive.Group>) {
|
16 |
+
return <SelectPrimitive.Group data-slot="select-group" {...props} />
|
17 |
+
}
|
18 |
+
|
19 |
+
function SelectValue({
|
20 |
+
...props
|
21 |
+
}: React.ComponentProps<typeof SelectPrimitive.Value>) {
|
22 |
+
return <SelectPrimitive.Value data-slot="select-value" {...props} />
|
23 |
+
}
|
24 |
+
|
25 |
+
function SelectTrigger({
|
26 |
+
className,
|
27 |
+
size = "default",
|
28 |
+
children,
|
29 |
+
...props
|
30 |
+
}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {
|
31 |
+
size?: "sm" | "default"
|
32 |
+
}) {
|
33 |
+
return (
|
34 |
+
<SelectPrimitive.Trigger
|
35 |
+
data-slot="select-trigger"
|
36 |
+
data-size={size}
|
37 |
+
className={cn(
|
38 |
+
"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
39 |
+
className
|
40 |
+
)}
|
41 |
+
{...props}
|
42 |
+
>
|
43 |
+
{children}
|
44 |
+
<SelectPrimitive.Icon asChild>
|
45 |
+
<ChevronDownIcon className="size-4 opacity-50" />
|
46 |
+
</SelectPrimitive.Icon>
|
47 |
+
</SelectPrimitive.Trigger>
|
48 |
+
)
|
49 |
+
}
|
50 |
+
|
51 |
+
function SelectContent({
|
52 |
+
className,
|
53 |
+
children,
|
54 |
+
position = "popper",
|
55 |
+
...props
|
56 |
+
}: React.ComponentProps<typeof SelectPrimitive.Content>) {
|
57 |
+
return (
|
58 |
+
<SelectPrimitive.Portal>
|
59 |
+
<SelectPrimitive.Content
|
60 |
+
data-slot="select-content"
|
61 |
+
className={cn(
|
62 |
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
|
63 |
+
position === "popper" &&
|
64 |
+
"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
65 |
+
className
|
66 |
+
)}
|
67 |
+
position={position}
|
68 |
+
{...props}
|
69 |
+
>
|
70 |
+
<SelectScrollUpButton />
|
71 |
+
<SelectPrimitive.Viewport
|
72 |
+
className={cn(
|
73 |
+
"p-1",
|
74 |
+
position === "popper" &&
|
75 |
+
"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
|
76 |
+
)}
|
77 |
+
>
|
78 |
+
{children}
|
79 |
+
</SelectPrimitive.Viewport>
|
80 |
+
<SelectScrollDownButton />
|
81 |
+
</SelectPrimitive.Content>
|
82 |
+
</SelectPrimitive.Portal>
|
83 |
+
)
|
84 |
+
}
|
85 |
+
|
86 |
+
function SelectLabel({
|
87 |
+
className,
|
88 |
+
...props
|
89 |
+
}: React.ComponentProps<typeof SelectPrimitive.Label>) {
|
90 |
+
return (
|
91 |
+
<SelectPrimitive.Label
|
92 |
+
data-slot="select-label"
|
93 |
+
className={cn("text-muted-foreground px-2 py-1.5 text-xs", className)}
|
94 |
+
{...props}
|
95 |
+
/>
|
96 |
+
)
|
97 |
+
}
|
98 |
+
|
99 |
+
function SelectItem({
|
100 |
+
className,
|
101 |
+
children,
|
102 |
+
...props
|
103 |
+
}: React.ComponentProps<typeof SelectPrimitive.Item>) {
|
104 |
+
return (
|
105 |
+
<SelectPrimitive.Item
|
106 |
+
data-slot="select-item"
|
107 |
+
className={cn(
|
108 |
+
"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
109 |
+
className
|
110 |
+
)}
|
111 |
+
{...props}
|
112 |
+
>
|
113 |
+
<span className="absolute right-2 flex size-3.5 items-center justify-center">
|
114 |
+
<SelectPrimitive.ItemIndicator>
|
115 |
+
<CheckIcon className="size-4" />
|
116 |
+
</SelectPrimitive.ItemIndicator>
|
117 |
+
</span>
|
118 |
+
<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
|
119 |
+
</SelectPrimitive.Item>
|
120 |
+
)
|
121 |
+
}
|
122 |
+
|
123 |
+
function SelectSeparator({
|
124 |
+
className,
|
125 |
+
...props
|
126 |
+
}: React.ComponentProps<typeof SelectPrimitive.Separator>) {
|
127 |
+
return (
|
128 |
+
<SelectPrimitive.Separator
|
129 |
+
data-slot="select-separator"
|
130 |
+
className={cn("bg-border pointer-events-none -mx-1 my-1 h-px", className)}
|
131 |
+
{...props}
|
132 |
+
/>
|
133 |
+
)
|
134 |
+
}
|
135 |
+
|
136 |
+
function SelectScrollUpButton({
|
137 |
+
className,
|
138 |
+
...props
|
139 |
+
}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {
|
140 |
+
return (
|
141 |
+
<SelectPrimitive.ScrollUpButton
|
142 |
+
data-slot="select-scroll-up-button"
|
143 |
+
className={cn(
|
144 |
+
"flex cursor-default items-center justify-center py-1",
|
145 |
+
className
|
146 |
+
)}
|
147 |
+
{...props}
|
148 |
+
>
|
149 |
+
<ChevronUpIcon className="size-4" />
|
150 |
+
</SelectPrimitive.ScrollUpButton>
|
151 |
+
)
|
152 |
+
}
|
153 |
+
|
154 |
+
function SelectScrollDownButton({
|
155 |
+
className,
|
156 |
+
...props
|
157 |
+
}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {
|
158 |
+
return (
|
159 |
+
<SelectPrimitive.ScrollDownButton
|
160 |
+
data-slot="select-scroll-down-button"
|
161 |
+
className={cn(
|
162 |
+
"flex cursor-default items-center justify-center py-1",
|
163 |
+
className
|
164 |
+
)}
|
165 |
+
{...props}
|
166 |
+
>
|
167 |
+
<ChevronDownIcon className="size-4" />
|
168 |
+
</SelectPrimitive.ScrollDownButton>
|
169 |
+
)
|
170 |
+
}
|
171 |
+
|
172 |
+
export {
|
173 |
+
Select,
|
174 |
+
SelectContent,
|
175 |
+
SelectGroup,
|
176 |
+
SelectItem,
|
177 |
+
SelectLabel,
|
178 |
+
SelectScrollDownButton,
|
179 |
+
SelectScrollUpButton,
|
180 |
+
SelectSeparator,
|
181 |
+
SelectTrigger,
|
182 |
+
SelectValue,
|
183 |
+
}
|
src/components/ui/separator.tsx
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"use client"
|
2 |
+
|
3 |
+
import * as React from "react"
|
4 |
+
import * as SeparatorPrimitive from "@radix-ui/react-separator"
|
5 |
+
|
6 |
+
import { cn } from "@/lib/utils"
|
7 |
+
|
8 |
+
function Separator({
|
9 |
+
className,
|
10 |
+
orientation = "horizontal",
|
11 |
+
decorative = true,
|
12 |
+
...props
|
13 |
+
}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {
|
14 |
+
return (
|
15 |
+
<SeparatorPrimitive.Root
|
16 |
+
data-slot="separator"
|
17 |
+
decorative={decorative}
|
18 |
+
orientation={orientation}
|
19 |
+
className={cn(
|
20 |
+
"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
|
21 |
+
className
|
22 |
+
)}
|
23 |
+
{...props}
|
24 |
+
/>
|
25 |
+
)
|
26 |
+
}
|
27 |
+
|
28 |
+
export { Separator }
|
src/components/ui/skeleton.tsx
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { cn } from "@/lib/utils"
|
2 |
+
|
3 |
+
function Skeleton({ className, ...props }: React.ComponentProps<"div">) {
|
4 |
+
return (
|
5 |
+
<div
|
6 |
+
data-slot="skeleton"
|
7 |
+
className={cn("bg-accent animate-pulse rounded-md", className)}
|
8 |
+
{...props}
|
9 |
+
/>
|
10 |
+
)
|
11 |
+
}
|
12 |
+
|
13 |
+
export { Skeleton }
|
src/components/ui/tooltip.tsx
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import * as React from "react"
|
2 |
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip"
|
3 |
+
|
4 |
+
import { cn } from "@/lib/utils"
|
5 |
+
|
6 |
+
function TooltipProvider({
|
7 |
+
delayDuration = 0,
|
8 |
+
...props
|
9 |
+
}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {
|
10 |
+
return (
|
11 |
+
<TooltipPrimitive.Provider
|
12 |
+
data-slot="tooltip-provider"
|
13 |
+
delayDuration={delayDuration}
|
14 |
+
{...props}
|
15 |
+
/>
|
16 |
+
)
|
17 |
+
}
|
18 |
+
|
19 |
+
function Tooltip({
|
20 |
+
...props
|
21 |
+
}: React.ComponentProps<typeof TooltipPrimitive.Root>) {
|
22 |
+
return (
|
23 |
+
<TooltipProvider>
|
24 |
+
<TooltipPrimitive.Root data-slot="tooltip" {...props} />
|
25 |
+
</TooltipProvider>
|
26 |
+
)
|
27 |
+
}
|
28 |
+
|
29 |
+
function TooltipTrigger({
|
30 |
+
...props
|
31 |
+
}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {
|
32 |
+
return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />
|
33 |
+
}
|
34 |
+
|
35 |
+
function TooltipContent({
|
36 |
+
className,
|
37 |
+
sideOffset = 0,
|
38 |
+
children,
|
39 |
+
...props
|
40 |
+
}: React.ComponentProps<typeof TooltipPrimitive.Content>) {
|
41 |
+
return (
|
42 |
+
<TooltipPrimitive.Portal>
|
43 |
+
<TooltipPrimitive.Content
|
44 |
+
data-slot="tooltip-content"
|
45 |
+
sideOffset={sideOffset}
|
46 |
+
className={cn(
|
47 |
+
"bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
|
48 |
+
className
|
49 |
+
)}
|
50 |
+
{...props}
|
51 |
+
>
|
52 |
+
{children}
|
53 |
+
<TooltipPrimitive.Arrow className="bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" />
|
54 |
+
</TooltipPrimitive.Content>
|
55 |
+
</TooltipPrimitive.Portal>
|
56 |
+
)
|
57 |
+
}
|
58 |
+
|
59 |
+
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }
|