@thangnqdev/ui 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +54 -206
- package/dist/bento/index.cjs.map +1 -1
- package/dist/bento/index.js +2 -2
- package/dist/bento/styles.css +2 -46
- package/dist/buttons/index.cjs +111 -18
- package/dist/buttons/index.cjs.map +1 -1
- package/dist/buttons/index.d.cts +1 -1
- package/dist/buttons/index.d.ts +1 -1
- package/dist/buttons/index.js +3 -3
- package/dist/buttons/styles.css +2 -6
- package/dist/{chunk-4S6L5V7X.js → chunk-2YJBW4E2.js} +2 -2
- package/dist/chunk-2YJBW4E2.js.map +1 -0
- package/dist/{chunk-F5Q7BTMH.js → chunk-4CRFNALF.js} +1011 -556
- package/dist/chunk-4CRFNALF.js.map +1 -0
- package/dist/{chunk-LWFRUJRU.js → chunk-4MS6ZHFQ.js} +225 -41
- package/dist/chunk-4MS6ZHFQ.js.map +1 -0
- package/dist/{chunk-2OXZK6IP.js → chunk-77KTYOMQ.js} +3 -3
- package/dist/chunk-77KTYOMQ.js.map +1 -0
- package/dist/{chunk-IABPUCAQ.js → chunk-ADO3SVUA.js} +2 -2
- package/dist/chunk-ADO3SVUA.js.map +1 -0
- package/dist/{chunk-GXI2H5XA.js → chunk-D7FB3TCA.js} +3 -3
- package/dist/chunk-D7FB3TCA.js.map +1 -0
- package/dist/chunk-DSEL7ELZ.js +314 -0
- package/dist/chunk-DSEL7ELZ.js.map +1 -0
- package/dist/{chunk-KJRBRTQE.js → chunk-EXFR2BFJ.js} +37 -28
- package/dist/chunk-EXFR2BFJ.js.map +1 -0
- package/dist/{chunk-PF4ZHGVW.js → chunk-GXWB6BSY.js} +116 -23
- package/dist/chunk-GXWB6BSY.js.map +1 -0
- package/dist/{chunk-66VWUJEI.js → chunk-I2FQBMVW.js} +3 -3
- package/dist/chunk-I2FQBMVW.js.map +1 -0
- package/dist/{chunk-EU2LPUYP.js → chunk-I5O2WCGF.js} +3 -3
- package/dist/chunk-I5O2WCGF.js.map +1 -0
- package/dist/{chunk-ATYGDTMK.js → chunk-ME4XILG5.js} +5 -5
- package/dist/chunk-ME4XILG5.js.map +1 -0
- package/dist/{chunk-5FZ6ZFII.js → chunk-PC5SZFZC.js} +373 -150
- package/dist/chunk-PC5SZFZC.js.map +1 -0
- package/dist/{chunk-C4SUXMI3.js → chunk-S6XJMYME.js} +3 -3
- package/dist/chunk-S6XJMYME.js.map +1 -0
- package/dist/{chunk-A7P3O5Z5.js → chunk-V52JOSDF.js} +3 -3
- package/dist/chunk-V52JOSDF.js.map +1 -0
- package/dist/{chunk-NFVONJUK.js → chunk-W5WNWTQC.js} +455 -211
- package/dist/chunk-W5WNWTQC.js.map +1 -0
- package/dist/{chunk-WAFHC4DQ.js → chunk-YJ64RI7J.js} +3 -3
- package/dist/chunk-YJ64RI7J.js.map +1 -0
- package/dist/chunk-YOCGBORV.js +155 -0
- package/dist/chunk-YOCGBORV.js.map +1 -0
- package/dist/chunk-ZEDXARXW.js +96 -0
- package/dist/chunk-ZEDXARXW.js.map +1 -0
- package/dist/components.css +2 -0
- package/dist/core/index.cjs +33 -24
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.js +2 -2
- package/dist/core/styles.css +2 -134
- package/dist/data-display/index.cjs +770 -247
- package/dist/data-display/index.cjs.map +1 -1
- package/dist/data-display/index.d.cts +1 -1
- package/dist/data-display/index.d.ts +1 -1
- package/dist/data-display/index.js +5 -4
- package/dist/data-display/styles.css +2 -4
- package/dist/feedback/index.cjs.map +1 -1
- package/dist/feedback/index.js +2 -2
- package/dist/feedback/styles.css +2 -4
- package/dist/forms/index.cjs +1211 -459
- package/dist/forms/index.cjs.map +1 -1
- package/dist/forms/index.d.cts +1 -1
- package/dist/forms/index.d.ts +1 -1
- package/dist/forms/index.js +8 -8
- package/dist/forms/styles.css +2 -6
- package/dist/glass/index.cjs.map +1 -1
- package/dist/glass/index.js +2 -2
- package/dist/glass/styles.css +2 -81
- package/dist/{index-D6fE7w-b.d.cts → index-BGt_hecO.d.cts} +1 -0
- package/dist/{index-D6fE7w-b.d.ts → index-BGt_hecO.d.ts} +1 -0
- package/dist/{index-DzcWh1Hs.d.cts → index-BtDvpZCf.d.cts} +7 -0
- package/dist/{index-DzcWh1Hs.d.ts → index-BtDvpZCf.d.ts} +7 -0
- package/dist/{index-Cle6QzQl.d.ts → index-COX1sBUN.d.ts} +27 -3
- package/dist/{index-BkRqGNG1.d.ts → index-Cg8MuP7u.d.cts} +40 -13
- package/dist/{index-BkRqGNG1.d.cts → index-Cg8MuP7u.d.ts} +40 -13
- package/dist/{index-CenuF_P2.d.ts → index-DHkPRTvE.d.cts} +39 -8
- package/dist/{index-CenuF_P2.d.cts → index-DHkPRTvE.d.ts} +39 -8
- package/dist/{index-TyK-Ldpy.d.cts → index-Du_oht9k.d.cts} +27 -3
- package/dist/index.cjs +2481 -917
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +19 -19
- package/dist/layout/index.cjs.map +1 -1
- package/dist/layout/index.js +2 -2
- package/dist/layout/styles.css +2 -8
- package/dist/navigation/index.cjs +288 -48
- package/dist/navigation/index.cjs.map +1 -1
- package/dist/navigation/index.d.cts +1 -1
- package/dist/navigation/index.d.ts +1 -1
- package/dist/navigation/index.js +6 -6
- package/dist/navigation/styles.css +2 -4
- package/dist/overlays/index.cjs +566 -229
- package/dist/overlays/index.cjs.map +1 -1
- package/dist/overlays/index.d.cts +1 -1
- package/dist/overlays/index.d.ts +1 -1
- package/dist/overlays/index.js +7 -7
- package/dist/overlays/styles.css +2 -8
- package/dist/reset.css +45 -0
- package/dist/styles.css +1 -1
- package/dist/tokens.css +11 -0
- package/dist/typography/index.cjs.map +1 -1
- package/dist/typography/index.js +4 -4
- package/dist/typography/styles.css +2 -5
- package/llms.txt +211 -113
- package/package.json +160 -116
- package/src/bento/BentoCard.tsx +140 -140
- package/src/bento/BentoGrid.tsx +50 -50
- package/src/bento/index.ts +2 -2
- package/src/bento/tokens.css +46 -46
- package/src/buttons/Button.tsx +104 -104
- package/src/buttons/ButtonGroup.tsx +43 -43
- package/src/buttons/IconButton.tsx +79 -79
- package/src/buttons/SplitButton.tsx +186 -86
- package/src/buttons/ToggleButton.tsx +157 -157
- package/src/buttons/index.ts +5 -5
- package/src/buttons/tokens.css +6 -6
- package/src/core/ThemeProvider.tsx +135 -123
- package/src/core/index.ts +2 -2
- package/src/core/tokens.css +134 -134
- package/src/data-display/Accordion.tsx +147 -147
- package/src/data-display/Avatar.tsx +134 -134
- package/src/data-display/Card.tsx +112 -112
- package/src/data-display/Chip.tsx +74 -74
- package/src/data-display/DataTablePro.tsx +299 -121
- package/src/data-display/StatCard.tsx +60 -60
- package/src/data-display/Table.tsx +74 -74
- package/src/data-display/Timeline.tsx +62 -62
- package/src/data-display/TreeView.tsx +243 -104
- package/src/data-display/tokens.css +4 -4
- package/src/feedback/Alert.tsx +80 -80
- package/src/feedback/EmptyState.tsx +45 -45
- package/src/feedback/Skeleton.tsx +66 -66
- package/src/feedback/Spinner.tsx +65 -65
- package/src/feedback/index.ts +5 -5
- package/src/feedback/tokens.css +4 -4
- package/src/forms/Checkbox.tsx +149 -69
- package/src/forms/CheckboxGroup.tsx +76 -29
- package/src/forms/Combobox.tsx +172 -28
- package/src/forms/DatePicker.tsx +385 -81
- package/src/forms/FileUpload.tsx +51 -7
- package/src/forms/FormField.tsx +115 -115
- package/src/forms/Input.tsx +151 -151
- package/src/forms/NumberInput.tsx +34 -20
- package/src/forms/PasswordInput.tsx +35 -35
- package/src/forms/PinInput.tsx +139 -125
- package/src/forms/Radio.tsx +142 -142
- package/src/forms/RangeSlider.tsx +237 -111
- package/src/forms/SearchInput.tsx +34 -34
- package/src/forms/Select.tsx +103 -103
- package/src/forms/Slider.tsx +85 -85
- package/src/forms/Textarea.tsx +114 -114
- package/src/forms/tokens.css +6 -6
- package/src/glass/GlassButton.tsx +59 -59
- package/src/glass/GlassCard.tsx +71 -71
- package/src/glass/index.ts +3 -3
- package/src/glass/tokens.css +81 -81
- package/src/index.ts +26 -26
- package/src/layout/AspectRatio.tsx +39 -39
- package/src/layout/Container.tsx +53 -53
- package/src/layout/Divider.tsx +61 -61
- package/src/layout/Flex.tsx +79 -79
- package/src/layout/Grid.tsx +124 -124
- package/src/layout/PageLayout.tsx +59 -59
- package/src/layout/Section.tsx +47 -47
- package/src/layout/Spacer.tsx +30 -30
- package/src/layout/Stack.tsx +88 -88
- package/src/layout/tokens.css +8 -8
- package/src/navigation/Breadcrumb.tsx +73 -73
- package/src/navigation/CommandPalette.tsx +142 -142
- package/src/navigation/DropdownMenu.tsx +244 -160
- package/src/navigation/Pagination.tsx +114 -114
- package/src/navigation/Stepper.tsx +93 -93
- package/src/navigation/Tabs.tsx +265 -133
- package/src/navigation/index.ts +6 -6
- package/src/navigation/tokens.css +4 -4
- package/src/overlays/AlertDialog.tsx +63 -54
- package/src/overlays/BottomSheet.tsx +30 -10
- package/src/overlays/ContextMenu.tsx +51 -9
- package/src/overlays/Drawer.tsx +160 -145
- package/src/overlays/FocusTrap.tsx +122 -49
- package/src/overlays/Modal.tsx +296 -219
- package/src/overlays/Popover.tsx +55 -25
- package/src/overlays/Portal.tsx +23 -23
- package/src/overlays/Toast.tsx +175 -137
- package/src/overlays/Tooltip.tsx +125 -100
- package/src/overlays/tokens.css +8 -8
- package/src/registry/components.ts +1368 -0
- package/src/styles/components.css +39 -0
- package/src/styles/index.css +2 -93
- package/src/styles/reset.css +45 -0
- package/src/styles/tokens.css +11 -2
- package/src/typography/Blockquote.tsx +32 -32
- package/src/typography/Code.tsx +89 -89
- package/src/typography/Heading.tsx +56 -56
- package/src/typography/Kbd.tsx +25 -25
- package/src/typography/Label.tsx +47 -47
- package/src/typography/Link.tsx +56 -56
- package/src/typography/Text.tsx +62 -62
- package/src/typography/index.ts +7 -7
- package/src/typography/tokens.css +5 -5
- package/src/utils/cn.ts +6 -6
- package/src/utils/scroll-lock.ts +19 -0
- package/src/utils/useControllableState.ts +54 -0
- package/ui-contract.json +192 -35
- package/dist/chunk-2OXZK6IP.js.map +0 -1
- package/dist/chunk-4S6L5V7X.js.map +0 -1
- package/dist/chunk-5FZ6ZFII.js.map +0 -1
- package/dist/chunk-66VWUJEI.js.map +0 -1
- package/dist/chunk-A7P3O5Z5.js.map +0 -1
- package/dist/chunk-ATYGDTMK.js.map +0 -1
- package/dist/chunk-C4SUXMI3.js.map +0 -1
- package/dist/chunk-EU2LPUYP.js.map +0 -1
- package/dist/chunk-F5Q7BTMH.js.map +0 -1
- package/dist/chunk-GXI2H5XA.js.map +0 -1
- package/dist/chunk-H3LCNPMC.js +0 -101
- package/dist/chunk-H3LCNPMC.js.map +0 -1
- package/dist/chunk-IABPUCAQ.js.map +0 -1
- package/dist/chunk-KJRBRTQE.js.map +0 -1
- package/dist/chunk-LBUBXUYQ.js +0 -40
- package/dist/chunk-LBUBXUYQ.js.map +0 -1
- package/dist/chunk-LWFRUJRU.js.map +0 -1
- package/dist/chunk-NFVONJUK.js.map +0 -1
- package/dist/chunk-PF4ZHGVW.js.map +0 -1
- package/dist/chunk-WAFHC4DQ.js.map +0 -1
- package/dist/chunk-X76KBH4Y.js +0 -71
- package/dist/chunk-X76KBH4Y.js.map +0 -1
package/ui-contract.json
CHANGED
|
@@ -1,62 +1,219 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"packageName": "@
|
|
4
|
-
"version": "0.
|
|
3
|
+
"packageName": "@thangnqdev/ui",
|
|
4
|
+
"version": "0.2.0",
|
|
5
|
+
"totalComponents": 145,
|
|
5
6
|
"modules": {
|
|
6
7
|
"core": {
|
|
7
|
-
"exportPath": "@
|
|
8
|
-
"stylePath": "@
|
|
9
|
-
"components": [
|
|
8
|
+
"exportPath": "@thangnqdev/ui/core",
|
|
9
|
+
"stylePath": "@thangnqdev/ui/core/styles.css",
|
|
10
|
+
"components": [
|
|
11
|
+
"ThemeProvider",
|
|
12
|
+
"useTheme",
|
|
13
|
+
"cn"
|
|
14
|
+
]
|
|
10
15
|
},
|
|
11
16
|
"layout": {
|
|
12
|
-
"exportPath": "@
|
|
13
|
-
"stylePath": "@
|
|
14
|
-
"components": [
|
|
17
|
+
"exportPath": "@thangnqdev/ui/layout",
|
|
18
|
+
"stylePath": "@thangnqdev/ui/layout/styles.css",
|
|
19
|
+
"components": [
|
|
20
|
+
"Container",
|
|
21
|
+
"Stack",
|
|
22
|
+
"HStack",
|
|
23
|
+
"VStack",
|
|
24
|
+
"Grid",
|
|
25
|
+
"GridItem",
|
|
26
|
+
"Flex",
|
|
27
|
+
"Divider",
|
|
28
|
+
"Spacer",
|
|
29
|
+
"AspectRatio",
|
|
30
|
+
"PageLayout",
|
|
31
|
+
"PageHeader",
|
|
32
|
+
"PageSidebar",
|
|
33
|
+
"ScrollArea"
|
|
34
|
+
]
|
|
15
35
|
},
|
|
16
36
|
"typography": {
|
|
17
|
-
"exportPath": "@
|
|
18
|
-
"stylePath": "@
|
|
19
|
-
"components": [
|
|
37
|
+
"exportPath": "@thangnqdev/ui/typography",
|
|
38
|
+
"stylePath": "@thangnqdev/ui/typography/styles.css",
|
|
39
|
+
"components": [
|
|
40
|
+
"Heading",
|
|
41
|
+
"Text",
|
|
42
|
+
"Label",
|
|
43
|
+
"Link",
|
|
44
|
+
"Code",
|
|
45
|
+
"CodeBlock",
|
|
46
|
+
"Blockquote",
|
|
47
|
+
"Kbd"
|
|
48
|
+
]
|
|
20
49
|
},
|
|
21
50
|
"buttons": {
|
|
22
|
-
"exportPath": "@
|
|
23
|
-
"stylePath": "@
|
|
24
|
-
"components": [
|
|
51
|
+
"exportPath": "@thangnqdev/ui/buttons",
|
|
52
|
+
"stylePath": "@thangnqdev/ui/buttons/styles.css",
|
|
53
|
+
"components": [
|
|
54
|
+
"Button",
|
|
55
|
+
"IconButton",
|
|
56
|
+
"ButtonGroup",
|
|
57
|
+
"ToggleButton",
|
|
58
|
+
"ToggleGroup",
|
|
59
|
+
"SplitButton"
|
|
60
|
+
]
|
|
25
61
|
},
|
|
26
62
|
"forms": {
|
|
27
|
-
"exportPath": "@
|
|
28
|
-
"stylePath": "@
|
|
29
|
-
"components": [
|
|
63
|
+
"exportPath": "@thangnqdev/ui/forms",
|
|
64
|
+
"stylePath": "@thangnqdev/ui/forms/styles.css",
|
|
65
|
+
"components": [
|
|
66
|
+
"FormField",
|
|
67
|
+
"FormLabel",
|
|
68
|
+
"FormHelperText",
|
|
69
|
+
"FormErrorMessage",
|
|
70
|
+
"Input",
|
|
71
|
+
"SearchInput",
|
|
72
|
+
"PasswordInput",
|
|
73
|
+
"Textarea",
|
|
74
|
+
"Select",
|
|
75
|
+
"Checkbox",
|
|
76
|
+
"CheckboxGroup",
|
|
77
|
+
"Radio",
|
|
78
|
+
"RadioGroup",
|
|
79
|
+
"Switch",
|
|
80
|
+
"Slider",
|
|
81
|
+
"RangeSlider",
|
|
82
|
+
"PinInput",
|
|
83
|
+
"DatePicker",
|
|
84
|
+
"DateRangePicker",
|
|
85
|
+
"TimePicker",
|
|
86
|
+
"Combobox",
|
|
87
|
+
"MultiSelect",
|
|
88
|
+
"FileUpload",
|
|
89
|
+
"NumberInput",
|
|
90
|
+
"CurrencyInput",
|
|
91
|
+
"MaskedInput"
|
|
92
|
+
]
|
|
30
93
|
},
|
|
31
94
|
"overlays": {
|
|
32
|
-
"exportPath": "@
|
|
33
|
-
"stylePath": "@
|
|
34
|
-
"components": [
|
|
95
|
+
"exportPath": "@thangnqdev/ui/overlays",
|
|
96
|
+
"stylePath": "@thangnqdev/ui/overlays/styles.css",
|
|
97
|
+
"components": [
|
|
98
|
+
"Portal",
|
|
99
|
+
"FocusTrap",
|
|
100
|
+
"Modal",
|
|
101
|
+
"ModalOverlay",
|
|
102
|
+
"ModalContent",
|
|
103
|
+
"ModalHeader",
|
|
104
|
+
"ModalTitle",
|
|
105
|
+
"ModalDescription",
|
|
106
|
+
"ModalBody",
|
|
107
|
+
"ModalFooter",
|
|
108
|
+
"ModalCloseButton",
|
|
109
|
+
"AlertDialog",
|
|
110
|
+
"Drawer",
|
|
111
|
+
"DrawerHeader",
|
|
112
|
+
"DrawerBody",
|
|
113
|
+
"DrawerFooter",
|
|
114
|
+
"Tooltip",
|
|
115
|
+
"Popover",
|
|
116
|
+
"Toast",
|
|
117
|
+
"ToasterProvider",
|
|
118
|
+
"useToast",
|
|
119
|
+
"BottomSheet",
|
|
120
|
+
"BottomSheetHeader",
|
|
121
|
+
"BottomSheetBody",
|
|
122
|
+
"BottomSheetFooter",
|
|
123
|
+
"ContextMenu",
|
|
124
|
+
"ContextMenuItem",
|
|
125
|
+
"ContextMenuSeparator",
|
|
126
|
+
"HoverCard"
|
|
127
|
+
]
|
|
35
128
|
},
|
|
36
129
|
"navigation": {
|
|
37
|
-
"exportPath": "@
|
|
38
|
-
"stylePath": "@
|
|
39
|
-
"components": [
|
|
130
|
+
"exportPath": "@thangnqdev/ui/navigation",
|
|
131
|
+
"stylePath": "@thangnqdev/ui/navigation/styles.css",
|
|
132
|
+
"components": [
|
|
133
|
+
"Tabs",
|
|
134
|
+
"TabsList",
|
|
135
|
+
"TabsTrigger",
|
|
136
|
+
"TabsContent",
|
|
137
|
+
"Breadcrumb",
|
|
138
|
+
"BreadcrumbItem",
|
|
139
|
+
"BreadcrumbLink",
|
|
140
|
+
"BreadcrumbPage",
|
|
141
|
+
"BreadcrumbSeparator",
|
|
142
|
+
"Pagination",
|
|
143
|
+
"Stepper",
|
|
144
|
+
"DropdownMenu",
|
|
145
|
+
"DropdownMenuTrigger",
|
|
146
|
+
"DropdownMenuContent",
|
|
147
|
+
"DropdownMenuItem",
|
|
148
|
+
"DropdownMenuSeparator",
|
|
149
|
+
"DropdownMenuLabel",
|
|
150
|
+
"CommandPalette"
|
|
151
|
+
]
|
|
40
152
|
},
|
|
41
153
|
"data-display": {
|
|
42
|
-
"exportPath": "@
|
|
43
|
-
"stylePath": "@
|
|
44
|
-
"components": [
|
|
154
|
+
"exportPath": "@thangnqdev/ui/data-display",
|
|
155
|
+
"stylePath": "@thangnqdev/ui/data-display/styles.css",
|
|
156
|
+
"components": [
|
|
157
|
+
"Card",
|
|
158
|
+
"CardHeader",
|
|
159
|
+
"CardTitle",
|
|
160
|
+
"CardDescription",
|
|
161
|
+
"CardContent",
|
|
162
|
+
"CardFooter",
|
|
163
|
+
"Table",
|
|
164
|
+
"TableHeader",
|
|
165
|
+
"TableBody",
|
|
166
|
+
"TableFooter",
|
|
167
|
+
"TableRow",
|
|
168
|
+
"TableHead",
|
|
169
|
+
"TableCell",
|
|
170
|
+
"TableCaption",
|
|
171
|
+
"Avatar",
|
|
172
|
+
"AvatarGroup",
|
|
173
|
+
"Accordion",
|
|
174
|
+
"AccordionItem",
|
|
175
|
+
"AccordionTrigger",
|
|
176
|
+
"AccordionContent",
|
|
177
|
+
"Chip",
|
|
178
|
+
"StatCard",
|
|
179
|
+
"Timeline",
|
|
180
|
+
"DataTablePro",
|
|
181
|
+
"TreeView",
|
|
182
|
+
"Carousel"
|
|
183
|
+
]
|
|
45
184
|
},
|
|
46
185
|
"feedback": {
|
|
47
|
-
"exportPath": "@
|
|
48
|
-
"stylePath": "@
|
|
49
|
-
"components": [
|
|
186
|
+
"exportPath": "@thangnqdev/ui/feedback",
|
|
187
|
+
"stylePath": "@thangnqdev/ui/feedback/styles.css",
|
|
188
|
+
"components": [
|
|
189
|
+
"Spinner",
|
|
190
|
+
"Skeleton",
|
|
191
|
+
"SkeletonText",
|
|
192
|
+
"SkeletonCircle",
|
|
193
|
+
"ProgressBar",
|
|
194
|
+
"CircularProgress",
|
|
195
|
+
"Alert",
|
|
196
|
+
"AlertTitle",
|
|
197
|
+
"AlertDescription",
|
|
198
|
+
"EmptyState"
|
|
199
|
+
]
|
|
50
200
|
},
|
|
51
201
|
"glass": {
|
|
52
|
-
"exportPath": "@
|
|
53
|
-
"stylePath": "@
|
|
54
|
-
"components": [
|
|
202
|
+
"exportPath": "@thangnqdev/ui/glass",
|
|
203
|
+
"stylePath": "@thangnqdev/ui/glass/styles.css",
|
|
204
|
+
"components": [
|
|
205
|
+
"GlassCard",
|
|
206
|
+
"GlassButton",
|
|
207
|
+
"GlassBadge"
|
|
208
|
+
]
|
|
55
209
|
},
|
|
56
210
|
"bento": {
|
|
57
|
-
"exportPath": "@
|
|
58
|
-
"stylePath": "@
|
|
59
|
-
"components": [
|
|
211
|
+
"exportPath": "@thangnqdev/ui/bento",
|
|
212
|
+
"stylePath": "@thangnqdev/ui/bento/styles.css",
|
|
213
|
+
"components": [
|
|
214
|
+
"BentoGrid",
|
|
215
|
+
"BentoCard"
|
|
216
|
+
]
|
|
60
217
|
}
|
|
61
218
|
}
|
|
62
219
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/layout/index.ts","../src/layout/Container.tsx","../src/layout/Section.tsx","../src/layout/Stack.tsx","../src/layout/Grid.tsx","../src/layout/Flex.tsx","../src/layout/Divider.tsx","../src/layout/Spacer.tsx","../src/layout/AspectRatio.tsx","../src/layout/PageLayout.tsx","../src/layout/ScrollArea.tsx"],"names":["cva","forwardRef","jsx","jsxs"],"mappings":"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","file":"chunk-2OXZK6IP.js","sourcesContent":["export * from './Container';\nexport * from './Section';\nexport * from './Stack';\nexport * from './Grid';\nexport * from './Flex';\nexport * from './Divider';\nexport * from './Spacer';\nexport * from './AspectRatio';\nexport * from './PageLayout';\nexport * from './ScrollArea';\n","import React, { forwardRef } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport const containerVariants = cva('w-full mx-auto', {\r\n variants: {\r\n size: {\r\n sm: 'max-w-screen-sm',\r\n md: 'max-w-screen-md',\r\n lg: 'max-w-screen-lg',\r\n xl: 'max-w-screen-xl',\r\n '2xl': 'max-w-screen-2xl',\r\n fluid: 'max-w-full',\r\n },\r\n padding: {\r\n none: 'px-0',\r\n sm: 'px-4',\r\n md: 'px-6',\r\n lg: 'px-8 sm:px-12',\r\n },\r\n centered: {\r\n true: 'flex flex-col items-center justify-center',\r\n false: '',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'xl',\r\n padding: 'md',\r\n centered: false,\r\n },\r\n});\r\n\r\nexport interface ContainerProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof containerVariants> {\r\n as?: React.ElementType;\r\n}\r\n\r\nexport const Container = forwardRef<HTMLDivElement, ContainerProps>(\r\n ({ className, size, padding, centered, as: Component = 'div', children, ...props }, ref) => {\r\n return (\r\n <Component\r\n ref={ref}\r\n className={cn(containerVariants({ size, padding, centered }), className)}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n }\r\n);\r\n\r\nContainer.displayName = 'Container';\r\n","import React, { forwardRef } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport const sectionVariants = cva('w-full relative', {\r\n variants: {\r\n spacing: {\r\n none: 'py-0',\r\n sm: 'py-6 md:py-8',\r\n md: 'py-12 md:py-16',\r\n lg: 'py-16 md:py-24',\r\n xl: 'py-24 md:py-32',\r\n },\r\n variant: {\r\n default: 'bg-transparent text-[var(--ui-text-primary)]',\r\n subtle: 'bg-[var(--ui-bg-secondary)] text-[var(--ui-text-primary)]',\r\n surface: 'bg-[var(--ui-bg-surface)] text-[var(--ui-text-primary)]',\r\n muted: 'bg-[var(--ui-bg-tertiary)] text-[var(--ui-text-primary)]',\r\n },\r\n },\r\n defaultVariants: {\r\n spacing: 'md',\r\n variant: 'default',\r\n },\r\n});\r\n\r\nexport interface SectionProps\r\n extends React.HTMLAttributes<HTMLElement>,\r\n VariantProps<typeof sectionVariants> {\r\n as?: React.ElementType;\r\n}\r\n\r\nexport const Section = forwardRef<HTMLElement, SectionProps>(\r\n ({ className, spacing, variant, as: Component = 'section', children, ...props }, ref) => {\r\n return (\r\n <Component\r\n ref={ref}\r\n className={cn(sectionVariants({ spacing, variant }), className)}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n }\r\n);\r\n\r\nSection.displayName = 'Section';\r\n","import React, { forwardRef } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport const stackVariants = cva('flex', {\r\n variants: {\r\n direction: {\r\n row: 'flex-row',\r\n 'row-reverse': 'flex-row-reverse',\r\n column: 'flex-col',\r\n 'column-reverse': 'flex-col-reverse',\r\n },\r\n gap: {\r\n 0: 'gap-0',\r\n 1: 'gap-1',\r\n 2: 'gap-2',\r\n 3: 'gap-3',\r\n 4: 'gap-4',\r\n 5: 'gap-5',\r\n 6: 'gap-6',\r\n 8: 'gap-8',\r\n 10: 'gap-10',\r\n 12: 'gap-12',\r\n },\r\n align: {\r\n start: 'items-start',\r\n center: 'items-center',\r\n end: 'items-end',\r\n stretch: 'items-stretch',\r\n baseline: 'items-baseline',\r\n },\r\n justify: {\r\n start: 'justify-start',\r\n center: 'justify-center',\r\n end: 'justify-end',\r\n between: 'justify-between',\r\n around: 'justify-around',\r\n evenly: 'justify-evenly',\r\n },\r\n wrap: {\r\n nowrap: 'flex-nowrap',\r\n wrap: 'flex-wrap',\r\n 'wrap-reverse': 'flex-wrap-reverse',\r\n },\r\n },\r\n defaultVariants: {\r\n direction: 'column',\r\n gap: 4,\r\n align: 'stretch',\r\n justify: 'start',\r\n wrap: 'nowrap',\r\n },\r\n});\r\n\r\nexport interface StackProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof stackVariants> {\r\n as?: React.ElementType;\r\n}\r\n\r\nexport const Stack = forwardRef<HTMLDivElement, StackProps>(\r\n ({ className, direction, gap, align, justify, wrap, as: Component = 'div', children, ...props }, ref) => {\r\n return (\r\n <Component\r\n ref={ref}\r\n className={cn(stackVariants({ direction, gap, align, justify, wrap }), className)}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n }\r\n);\r\nStack.displayName = 'Stack';\r\n\r\nexport const HStack = forwardRef<HTMLDivElement, Omit<StackProps, 'direction'>>(\r\n ({ align = 'center', ...props }, ref) => {\r\n return <Stack ref={ref} direction=\"row\" align={align} {...props} />;\r\n }\r\n);\r\nHStack.displayName = 'HStack';\r\n\r\nexport const VStack = forwardRef<HTMLDivElement, Omit<StackProps, 'direction'>>(\r\n ({ align = 'stretch', ...props }, ref) => {\r\n return <Stack ref={ref} direction=\"column\" align={align} {...props} />;\r\n }\r\n);\r\nVStack.displayName = 'VStack';\r\n","import React, { forwardRef } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport const gridVariants = cva('grid', {\r\n variants: {\r\n cols: {\r\n 1: 'grid-cols-1',\r\n 2: 'grid-cols-1 sm:grid-cols-2',\r\n 3: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-3',\r\n 4: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-4',\r\n 5: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5',\r\n 6: 'grid-cols-2 sm:grid-cols-3 lg:grid-cols-6',\r\n 12: 'grid-cols-12',\r\n },\r\n gap: {\r\n 0: 'gap-0',\r\n 1: 'gap-1',\r\n 2: 'gap-2',\r\n 3: 'gap-3',\r\n 4: 'gap-4',\r\n 5: 'gap-5',\r\n 6: 'gap-6',\r\n 8: 'gap-8',\r\n 10: 'gap-10',\r\n 12: 'gap-12',\r\n },\r\n flow: {\r\n row: 'grid-flow-row',\r\n col: 'grid-flow-col',\r\n dense: 'grid-flow-dense',\r\n 'row-dense': 'grid-flow-row-dense',\r\n 'col-dense': 'grid-flow-col-dense',\r\n },\r\n },\r\n defaultVariants: {\r\n cols: 1,\r\n gap: 4,\r\n flow: 'row',\r\n },\r\n});\r\n\r\nexport interface GridProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof gridVariants> {\r\n as?: React.ElementType;\r\n}\r\n\r\nexport const Grid = forwardRef<HTMLDivElement, GridProps>(\r\n ({ className, cols, gap, flow, as: Component = 'div', children, ...props }, ref) => {\r\n return (\r\n <Component\r\n ref={ref}\r\n className={cn(gridVariants({ cols, gap, flow }), className)}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n }\r\n);\r\nGrid.displayName = 'Grid';\r\n\r\nexport const gridItemVariants = cva('', {\r\n variants: {\r\n colSpan: {\r\n 1: 'col-span-1',\r\n 2: 'col-span-2',\r\n 3: 'col-span-3',\r\n 4: 'col-span-4',\r\n 5: 'col-span-5',\r\n 6: 'col-span-6',\r\n 7: 'col-span-7',\r\n 8: 'col-span-8',\r\n 9: 'col-span-9',\r\n 10: 'col-span-10',\r\n 11: 'col-span-11',\r\n 12: 'col-span-12',\r\n full: 'col-span-full',\r\n },\r\n rowSpan: {\r\n 1: 'row-span-1',\r\n 2: 'row-span-2',\r\n 3: 'row-span-3',\r\n 4: 'row-span-4',\r\n 5: 'row-span-5',\r\n 6: 'row-span-6',\r\n full: 'row-span-full',\r\n },\r\n colStart: {\r\n 1: 'col-start-1',\r\n 2: 'col-start-2',\r\n 3: 'col-start-3',\r\n 4: 'col-start-4',\r\n 5: 'col-start-5',\r\n 6: 'col-start-6',\r\n auto: 'col-start-auto',\r\n },\r\n },\r\n defaultVariants: {\r\n colSpan: 1,\r\n },\r\n});\r\n\r\nexport interface GridItemProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof gridItemVariants> {\r\n as?: React.ElementType;\r\n}\r\n\r\nexport const GridItem = forwardRef<HTMLDivElement, GridItemProps>(\r\n ({ className, colSpan, rowSpan, colStart, as: Component = 'div', children, ...props }, ref) => {\r\n return (\r\n <Component\r\n ref={ref}\r\n className={cn(gridItemVariants({ colSpan, rowSpan, colStart }), className)}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n }\r\n);\r\nGridItem.displayName = 'GridItem';\r\n","import React, { forwardRef } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport const flexVariants = cva('flex', {\r\n variants: {\r\n direction: {\r\n row: 'flex-row',\r\n 'row-reverse': 'flex-row-reverse',\r\n column: 'flex-col',\r\n 'column-reverse': 'flex-col-reverse',\r\n },\r\n align: {\r\n start: 'items-start',\r\n center: 'items-center',\r\n end: 'items-end',\r\n stretch: 'items-stretch',\r\n baseline: 'items-baseline',\r\n },\r\n justify: {\r\n start: 'justify-start',\r\n center: 'justify-center',\r\n end: 'justify-end',\r\n between: 'justify-between',\r\n around: 'justify-around',\r\n evenly: 'justify-evenly',\r\n },\r\n wrap: {\r\n nowrap: 'flex-nowrap',\r\n wrap: 'flex-wrap',\r\n 'wrap-reverse': 'flex-wrap-reverse',\r\n },\r\n gap: {\r\n 0: 'gap-0',\r\n 1: 'gap-1',\r\n 2: 'gap-2',\r\n 3: 'gap-3',\r\n 4: 'gap-4',\r\n 5: 'gap-5',\r\n 6: 'gap-6',\r\n 8: 'gap-8',\r\n 10: 'gap-10',\r\n 12: 'gap-12',\r\n },\r\n inline: {\r\n true: 'inline-flex',\r\n false: 'flex',\r\n },\r\n },\r\n defaultVariants: {\r\n direction: 'row',\r\n align: 'stretch',\r\n justify: 'start',\r\n wrap: 'nowrap',\r\n inline: false,\r\n },\r\n});\r\n\r\nexport interface FlexProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof flexVariants> {\r\n as?: React.ElementType;\r\n}\r\n\r\nexport const Flex = forwardRef<HTMLDivElement, FlexProps>(\r\n ({ className, direction, align, justify, wrap, gap, inline, as: Component = 'div', children, ...props }, ref) => {\r\n return (\r\n <Component\r\n ref={ref}\r\n className={cn(flexVariants({ direction, align, justify, wrap, gap, inline }), className)}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n }\r\n);\r\n\r\nFlex.displayName = 'Flex';\r\n","import React, { forwardRef } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport const dividerVariants = cva('border-0 flex-shrink-0', {\r\n variants: {\r\n orientation: {\r\n horizontal: 'w-full h-px border-t border-[var(--ui-border-subtle)] my-4',\r\n vertical: 'h-full w-px border-l border-[var(--ui-border-subtle)] mx-4 inline-block align-middle self-stretch',\r\n },\r\n variant: {\r\n solid: 'border-solid',\r\n dashed: 'border-dashed',\r\n dotted: 'border-dotted',\r\n },\r\n },\r\n defaultVariants: {\r\n orientation: 'horizontal',\r\n variant: 'solid',\r\n },\r\n});\r\n\r\nexport interface DividerProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof dividerVariants> {\r\n label?: React.ReactNode;\r\n}\r\n\r\nexport const Divider = forwardRef<HTMLDivElement, DividerProps>(\r\n ({ className, orientation = 'horizontal', variant, label, children, ...props }, ref) => {\r\n const content = label || children;\r\n\r\n if (orientation === 'horizontal' && content) {\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"separator\"\r\n aria-orientation=\"horizontal\"\r\n className={cn('flex items-center w-full my-4 text-xs font-medium text-[var(--ui-text-muted)]', className)}\r\n {...props}\r\n >\r\n <div className={cn('flex-grow border-t border-[var(--ui-border-subtle)]', dividerVariants({ variant }))} />\r\n <span className=\"px-3 select-none\">{content}</span>\r\n <div className={cn('flex-grow border-t border-[var(--ui-border-subtle)]', dividerVariants({ variant }))} />\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"separator\"\r\n aria-orientation={orientation || 'horizontal'}\r\n className={cn(dividerVariants({ orientation, variant }), className)}\r\n {...props}\r\n />\r\n );\r\n }\r\n);\r\n\r\nDivider.displayName = 'Divider';\r\n","import React, { forwardRef } from 'react';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport interface SpacerProps extends React.HTMLAttributes<HTMLDivElement> {\r\n x?: number | string;\r\n y?: number | string;\r\n}\r\n\r\nexport const Spacer = forwardRef<HTMLDivElement, SpacerProps>(\r\n ({ className, x, y, style, ...props }, ref) => {\r\n const spacingStyle: React.CSSProperties = {\r\n ...style,\r\n ...(x !== undefined && {\r\n width: typeof x === 'number' ? `${x * 0.25}rem` : x,\r\n minWidth: typeof x === 'number' ? `${x * 0.25}rem` : x,\r\n }),\r\n ...(y !== undefined && {\r\n height: typeof y === 'number' ? `${y * 0.25}rem` : y,\r\n minHeight: typeof y === 'number' ? `${y * 0.25}rem` : y,\r\n }),\r\n ...(x === undefined && y === undefined && {\r\n flex: '1 1 0%',\r\n }),\r\n };\r\n\r\n return <div ref={ref} aria-hidden=\"true\" style={spacingStyle} className={cn('pointer-events-none', className)} {...props} />;\r\n }\r\n);\r\n\r\nSpacer.displayName = 'Spacer';\r\n","import React, { forwardRef } from 'react';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport interface AspectRatioProps extends React.HTMLAttributes<HTMLDivElement> {\r\n ratio?: number | `${number}/${number}`;\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const AspectRatio = forwardRef<HTMLDivElement, AspectRatioProps>(\r\n ({ className, ratio = 16 / 9, style, children, ...props }, ref) => {\r\n const computedRatio =\r\n typeof ratio === 'string'\r\n ? ratio\r\n .split('/')\r\n .map(Number)\r\n .reduce((w, h) => (h ? w / h : 1))\r\n : ratio;\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n style={{\r\n ...style,\r\n position: 'relative',\r\n width: '100%',\r\n paddingBottom: `${(1 / computedRatio) * 100}%`,\r\n }}\r\n className={cn('overflow-hidden', className)}\r\n {...props}\r\n >\r\n <div className=\"absolute inset-0 w-full h-full [&>img]:object-cover [&>video]:object-cover [&>img]:w-full [&>img]:h-full [&>video]:w-full [&>video]:h-full\">\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nAspectRatio.displayName = 'AspectRatio';\r\n","import React, { forwardRef } from 'react';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport interface PageLayoutProps extends React.HTMLAttributes<HTMLDivElement> {\r\n header?: React.ReactNode;\r\n sidebar?: React.ReactNode;\r\n footer?: React.ReactNode;\r\n sidebarWidth?: string;\r\n sidebarCollapsed?: boolean;\r\n}\r\n\r\nexport const PageLayout = forwardRef<HTMLDivElement, PageLayoutProps>(\r\n ({ className, header, sidebar, footer, children, sidebarWidth = '16rem', sidebarCollapsed = false, ...props }, ref) => {\r\n return (\r\n <div ref={ref} className={cn('min-h-screen flex flex-col bg-[var(--ui-bg-primary)] text-[var(--ui-text-primary)]', className)} {...props}>\r\n {header && <header className=\"sticky top-0 z-30 w-full border-b border-[var(--ui-border-subtle)] bg-[var(--ui-bg-surface)] backdrop-blur-md\">{header}</header>}\r\n \r\n <div className=\"flex-1 flex w-full\">\r\n {sidebar && (\r\n <aside\r\n style={{ width: sidebarCollapsed ? '4rem' : sidebarWidth }}\r\n className=\"hidden md:flex flex-col flex-shrink-0 border-r border-[var(--ui-border-subtle)] bg-[var(--ui-bg-secondary)] transition-[width] duration-200\"\r\n >\r\n {sidebar}\r\n </aside>\r\n )}\r\n\r\n <main className=\"flex-1 flex flex-col min-w-0 overflow-y-auto\">\r\n <div className=\"flex-1 p-4 md:p-6 lg:p-8\">{children}</div>\r\n {footer && <footer className=\"border-t border-[var(--ui-border-subtle)] bg-[var(--ui-bg-surface)] p-4 md:p-6\">{footer}</footer>}\r\n </main>\r\n </div>\r\n </div>\r\n );\r\n }\r\n);\r\nPageLayout.displayName = 'PageLayout';\r\n\r\nexport const PageHeader = forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement>>(\r\n ({ className, children, ...props }, ref) => {\r\n return (\r\n <div ref={ref as any} className={cn('flex items-center justify-between h-16 px-4 md:px-6 w-full', className)} {...props}>\r\n {children}\r\n </div>\r\n );\r\n }\r\n);\r\nPageHeader.displayName = 'PageHeader';\r\n\r\nexport const PageSidebar = forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement>>(\r\n ({ className, children, ...props }, ref) => {\r\n return (\r\n <div ref={ref as any} className={cn('flex flex-col h-full p-4 overflow-y-auto', className)} {...props}>\r\n {children}\r\n </div>\r\n );\r\n }\r\n);\r\nPageSidebar.displayName = 'PageSidebar';\r\n","import React, { forwardRef, useRef, useState, useEffect } from 'react';\nimport { cn } from '../utils/cn';\n\nexport interface ScrollAreaProps extends React.HTMLAttributes<HTMLDivElement> {\n maxHeight?: string | number;\n orientation?: 'vertical' | 'horizontal' | 'both';\n hideScrollbar?: boolean;\n}\n\nexport const ScrollArea = forwardRef<HTMLDivElement, ScrollAreaProps>(\n (\n {\n maxHeight = '100%',\n orientation = 'vertical',\n hideScrollbar = false,\n children,\n className,\n style,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n style={{ maxHeight, ...style }}\n className={cn(\n 'relative w-full overflow-auto',\n orientation === 'vertical' && 'overflow-y-auto overflow-x-hidden',\n orientation === 'horizontal' && 'overflow-x-auto overflow-y-hidden',\n orientation === 'both' && 'overflow-auto',\n hideScrollbar && '[scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden',\n !hideScrollbar && '[scrollbar-width:thin] [scrollbar-color:rgba(150,150,160,0.3)_transparent]',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\nScrollArea.displayName = 'ScrollArea';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/cn.ts"],"names":[],"mappings":";;;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B","file":"chunk-4S6L5V7X.js","sourcesContent":["import { clsx, type ClassValue } from 'clsx';\r\nimport { twMerge } from 'tailwind-merge';\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/overlays/index.ts","../src/overlays/Modal.tsx","../src/overlays/AlertDialog.tsx","../src/overlays/Drawer.tsx","../src/overlays/Tooltip.tsx","../src/overlays/Toast.tsx","../src/overlays/BottomSheet.tsx","../src/overlays/ContextMenu.tsx","../src/overlays/HoverCard.tsx"],"names":["jsx","createContext","useContext","cva","useEffect","jsxs","forwardRef","X","useState","useRef","Fragment"],"mappings":"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","file":"chunk-5FZ6ZFII.js","sourcesContent":["export * from './Portal';\nexport * from './FocusTrap';\nexport * from './Modal';\nexport * from './AlertDialog';\nexport * from './Drawer';\nexport * from './Tooltip';\nexport * from './Popover';\nexport * from './Toast';\nexport * from './BottomSheet';\nexport * from './ContextMenu';\nexport * from './HoverCard';\n","import React, { forwardRef, createContext, useContext, useEffect } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { X } from 'lucide-react';\r\nimport { Portal } from './Portal';\r\nimport { FocusTrap } from './FocusTrap';\r\nimport { cn } from '../utils/cn';\r\n\r\ninterface ModalContextType {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n closeOnOverlayClick?: boolean;\r\n}\r\n\r\nconst ModalContext = createContext<ModalContextType | null>(null);\r\n\r\nexport function useModal() {\r\n const context = useContext(ModalContext);\r\n if (!context) {\r\n throw new Error('Modal compound components must be used within a <Modal />');\r\n }\r\n return context;\r\n}\r\n\r\nexport interface ModalProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n children: React.ReactNode;\r\n closeOnEsc?: boolean;\r\n closeOnOverlayClick?: boolean;\r\n}\r\n\r\nexport function Modal({\r\n isOpen,\r\n onClose,\r\n children,\r\n closeOnEsc = true,\r\n closeOnOverlayClick = true,\r\n}: ModalProps) {\r\n useEffect(() => {\r\n if (!isOpen) return;\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (closeOnEsc && e.key === 'Escape') {\r\n onClose();\r\n }\r\n };\r\n\r\n const originalOverflow = document.body.style.overflow;\r\n document.body.style.overflow = 'hidden';\r\n\r\n window.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n window.removeEventListener('keydown', handleKeyDown);\r\n document.body.style.overflow = originalOverflow;\r\n };\r\n }, [isOpen, closeOnEsc, onClose]);\r\n\r\n if (!isOpen) return null;\r\n\r\n return (\r\n <Portal>\r\n <ModalContext.Provider value={{ isOpen, onClose, closeOnOverlayClick }}>\r\n <FocusTrap active={isOpen}>\r\n <div\r\n className=\"fixed inset-0 z-50 flex items-center justify-center p-4 sm:p-6\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n >\r\n {children}\r\n </div>\r\n </FocusTrap>\r\n </ModalContext.Provider>\r\n </Portal>\r\n );\r\n}\r\n\r\nexport interface ModalOverlayProps extends React.HTMLAttributes<HTMLDivElement> {}\r\n\r\nexport const ModalOverlay = forwardRef<HTMLDivElement, ModalOverlayProps>(\r\n ({ className, onClick, ...props }, ref) => {\r\n const { onClose, closeOnOverlayClick } = useModal();\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n aria-hidden=\"true\"\r\n onClick={(e) => {\r\n onClick?.(e);\r\n if (closeOnOverlayClick) onClose();\r\n }}\r\n className={cn(\r\n 'fixed inset-0 bg-[var(--ui-bg-overlay)] backdrop-blur-sm transition-opacity animate-in fade-in duration-200',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n }\r\n);\r\nModalOverlay.displayName = 'ModalOverlay';\r\n\r\nexport const modalContentVariants = cva(\r\n 'relative w-full max-w-lg rounded-[var(--ui-radius-xl)] bg-[var(--ui-bg-surface)] border border-[var(--ui-border-default)] p-6 text-[var(--ui-text-primary)] shadow-2xl transition-all animate-in zoom-in-95 duration-200 z-10',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'max-w-sm',\r\n md: 'max-w-md',\r\n lg: 'max-w-lg',\r\n xl: 'max-w-xl',\r\n '2xl': 'max-w-2xl',\r\n full: 'max-w-[calc(100vw-2rem)] h-[calc(100vh-2rem)]',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport interface ModalContentProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof modalContentVariants> {}\r\n\r\nexport const ModalContent = forwardRef<HTMLDivElement, ModalContentProps>(\r\n ({ className, size, children, ...props }, ref) => {\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(modalContentVariants({ size }), className)}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n );\r\n }\r\n);\r\nModalContent.displayName = 'ModalContent';\r\n\r\nexport const ModalHeader = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, children, ...props }, ref) => {\r\n return (\r\n <div ref={ref} className={cn('flex flex-col space-y-1.5 mb-4', className)} {...props}>\r\n {children}\r\n </div>\r\n );\r\n }\r\n);\r\nModalHeader.displayName = 'ModalHeader';\r\n\r\nexport const ModalTitle = forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(\r\n ({ className, children, ...props }, ref) => {\r\n return (\r\n <h2 ref={ref} className={cn('text-lg sm:text-xl font-bold tracking-tight text-[var(--ui-text-primary)]', className)} {...props}>\r\n {children}\r\n </h2>\r\n );\r\n }\r\n);\r\nModalTitle.displayName = 'ModalTitle';\r\n\r\nexport const ModalDescription = forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\r\n ({ className, children, ...props }, ref) => {\r\n return (\r\n <p ref={ref} className={cn('text-sm text-[var(--ui-text-muted)]', className)} {...props}>\r\n {children}\r\n </p>\r\n );\r\n }\r\n);\r\nModalDescription.displayName = 'ModalDescription';\r\n\r\nexport const ModalBody = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, children, ...props }, ref) => {\r\n return (\r\n <div ref={ref} className={cn('py-2', className)} {...props}>\r\n {children}\r\n </div>\r\n );\r\n }\r\n);\r\nModalBody.displayName = 'ModalBody';\r\n\r\nexport const ModalFooter = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, children, ...props }, ref) => {\r\n return (\r\n <div ref={ref} className={cn('flex items-center justify-end gap-3 mt-6 pt-4 border-t border-[var(--ui-border-subtle)]', className)} {...props}>\r\n {children}\r\n </div>\r\n );\r\n }\r\n);\r\nModalFooter.displayName = 'ModalFooter';\r\n\r\nexport const ModalCloseButton = forwardRef<HTMLButtonElement, React.ButtonHTMLAttributes<HTMLButtonElement>>(\r\n ({ className, onClick, ...props }, ref) => {\r\n const { onClose } = useModal();\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n type=\"button\"\r\n onClick={(e) => {\r\n onClick?.(e);\r\n onClose();\r\n }}\r\n aria-label=\"Close dialog\"\r\n className={cn(\r\n 'absolute top-4 right-4 p-1.5 rounded-full text-[var(--ui-text-muted)] hover:text-[var(--ui-text-primary)] hover:bg-[var(--ui-bg-tertiary)] transition-colors',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <X className=\"w-4 h-4\" />\r\n </button>\r\n );\r\n }\r\n);\r\nModalCloseButton.displayName = 'ModalCloseButton';\r\n","import React, { forwardRef } from 'react';\r\nimport { Modal, ModalOverlay, ModalContent, ModalHeader, ModalTitle, ModalDescription, ModalFooter, ModalCloseButton } from './Modal';\r\nimport { Button } from '../buttons/Button';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport interface AlertDialogProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n onConfirm: () => void;\r\n title: string;\r\n description: string;\r\n confirmText?: string;\r\n cancelText?: string;\r\n variant?: 'danger' | 'primary';\r\n isLoading?: boolean;\r\n}\r\n\r\nexport function AlertDialog({\r\n isOpen,\r\n onClose,\r\n onConfirm,\r\n title,\r\n description,\r\n confirmText = 'Confirm',\r\n cancelText = 'Cancel',\r\n variant = 'danger',\r\n isLoading = false,\r\n}: AlertDialogProps) {\r\n return (\r\n <Modal isOpen={isOpen} onClose={onClose}>\r\n <ModalOverlay />\r\n <ModalContent size=\"sm\">\r\n <ModalCloseButton />\r\n <ModalHeader>\r\n <ModalTitle>{title}</ModalTitle>\r\n <ModalDescription>{description}</ModalDescription>\r\n </ModalHeader>\r\n <ModalFooter>\r\n <Button variant=\"outline\" size=\"sm\" onClick={onClose} disabled={isLoading}>\r\n {cancelText}\r\n </Button>\r\n <Button\r\n variant={variant === 'danger' ? 'danger' : 'primary'}\r\n size=\"sm\"\r\n loading={isLoading}\r\n onClick={onConfirm}\r\n >\r\n {confirmText}\r\n </Button>\r\n </ModalFooter>\r\n </ModalContent>\r\n </Modal>\r\n );\r\n}\r\n","import React, { forwardRef, createContext, useContext, useEffect } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { X } from 'lucide-react';\r\nimport { Portal } from './Portal';\r\nimport { FocusTrap } from './FocusTrap';\r\nimport { cn } from '../utils/cn';\r\n\r\ninterface DrawerContextType {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n}\r\n\r\nconst DrawerContext = createContext<DrawerContextType | null>(null);\r\n\r\nexport function useDrawer() {\r\n const context = useContext(DrawerContext);\r\n if (!context) {\r\n throw new Error('Drawer compound components must be used within a <Drawer />');\r\n }\r\n return context;\r\n}\r\n\r\nexport const drawerVariants = cva(\r\n 'fixed z-50 bg-[var(--ui-bg-surface)] text-[var(--ui-text-primary)] border-[var(--ui-border-default)] shadow-2xl transition-transform duration-300 ease-in-out flex flex-col',\r\n {\r\n variants: {\r\n placement: {\r\n right: 'inset-y-0 right-0 h-full w-full sm:max-w-md border-l animate-in slide-in-from-right',\r\n left: 'inset-y-0 left-0 h-full w-full sm:max-w-md border-r animate-in slide-in-from-left',\r\n top: 'inset-x-0 top-0 w-full max-h-[80vh] border-b animate-in slide-in-from-top',\r\n bottom: 'inset-x-0 bottom-0 w-full max-h-[80vh] border-t rounded-t-[var(--ui-radius-xl)] animate-in slide-in-from-bottom',\r\n },\r\n },\r\n defaultVariants: {\r\n placement: 'right',\r\n },\r\n }\r\n);\r\n\r\nexport interface DrawerProps extends VariantProps<typeof drawerVariants> {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n children: React.ReactNode;\r\n closeOnEsc?: boolean;\r\n}\r\n\r\nexport function Drawer({\r\n isOpen,\r\n onClose,\r\n placement = 'right',\r\n children,\r\n closeOnEsc = true,\r\n}: DrawerProps) {\r\n useEffect(() => {\r\n if (!isOpen) return;\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (closeOnEsc && e.key === 'Escape') {\r\n onClose();\r\n }\r\n };\r\n\r\n const originalOverflow = document.body.style.overflow;\r\n document.body.style.overflow = 'hidden';\r\n\r\n window.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n window.removeEventListener('keydown', handleKeyDown);\r\n document.body.style.overflow = originalOverflow;\r\n };\r\n }, [isOpen, closeOnEsc, onClose]);\r\n\r\n if (!isOpen) return null;\r\n\r\n return (\r\n <Portal>\r\n <DrawerContext.Provider value={{ isOpen, onClose }}>\r\n <FocusTrap active={isOpen}>\r\n <div className=\"fixed inset-0 z-50 overflow-hidden\">\r\n {/* Backdrop */}\r\n <div\r\n aria-hidden=\"true\"\r\n onClick={onClose}\r\n className=\"fixed inset-0 bg-[var(--ui-bg-overlay)] backdrop-blur-sm transition-opacity animate-in fade-in duration-200\"\r\n />\r\n {/* Drawer Panel */}\r\n <div className={cn(drawerVariants({ placement }))}>\r\n {children}\r\n </div>\r\n </div>\r\n </FocusTrap>\r\n </DrawerContext.Provider>\r\n </Portal>\r\n );\r\n}\r\n\r\nexport const DrawerHeader = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, children, ...props }, ref) => {\r\n const { onClose } = useDrawer();\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn('flex items-center justify-between p-5 border-b border-[var(--ui-border-subtle)]', className)}\r\n {...props}\r\n >\r\n <div className=\"flex-1\">{children}</div>\r\n <button\r\n type=\"button\"\r\n onClick={onClose}\r\n aria-label=\"Close drawer\"\r\n className=\"p-1.5 rounded-full text-[var(--ui-text-muted)] hover:text-[var(--ui-text-primary)] hover:bg-[var(--ui-bg-tertiary)] transition-colors ml-4\"\r\n >\r\n <X className=\"w-4 h-4\" />\r\n </button>\r\n </div>\r\n );\r\n }\r\n);\r\nDrawerHeader.displayName = 'DrawerHeader';\r\n\r\nexport const DrawerBody = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, children, ...props }, ref) => {\r\n return (\r\n <div ref={ref} className={cn('flex-1 p-5 overflow-y-auto', className)} {...props}>\r\n {children}\r\n </div>\r\n );\r\n }\r\n);\r\nDrawerBody.displayName = 'DrawerBody';\r\n\r\nexport const DrawerFooter = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n ({ className, children, ...props }, ref) => {\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn('p-4 border-t border-[var(--ui-border-subtle)] bg-[var(--ui-bg-secondary)] flex items-center justify-end gap-3', className)}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n );\r\n }\r\n);\r\nDrawerFooter.displayName = 'DrawerFooter';\r\n","import React, { useState, useRef } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { Portal } from './Portal';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport const tooltipVariants = cva(\r\n 'z-50 overflow-hidden rounded-[var(--ui-radius-sm)] bg-[var(--ui-bg-primary)] border border-[var(--ui-border-default)] px-2.5 py-1 text-xs font-medium text-[var(--ui-text-primary)] shadow-md animate-in fade-in zoom-in-95 pointer-events-none select-none',\r\n {\r\n variants: {\r\n placement: {\r\n top: '-translate-x-1/2 -translate-y-full mb-1.5',\r\n bottom: '-translate-x-1/2 mt-1.5',\r\n left: '-translate-x-full -translate-y-1/2 mr-1.5',\r\n right: 'translate-y-[-50%] ml-1.5',\r\n },\r\n },\r\n defaultVariants: {\r\n placement: 'top',\r\n },\r\n }\r\n);\r\n\r\nexport interface TooltipProps extends VariantProps<typeof tooltipVariants> {\r\n content: React.ReactNode;\r\n children: React.ReactNode;\r\n delayDuration?: number;\r\n className?: string;\r\n}\r\n\r\nexport function Tooltip({\r\n content,\r\n children,\r\n placement = 'top',\r\n delayDuration = 200,\r\n className,\r\n}: TooltipProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [coords, setCoords] = useState<{ top: number; left: number }>({ top: 0, left: 0 });\r\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const triggerRef = useRef<HTMLDivElement | null>(null);\r\n\r\n const handleMouseEnter = () => {\r\n timeoutRef.current = setTimeout(() => {\r\n if (triggerRef.current) {\r\n const rect = triggerRef.current.getBoundingClientRect();\r\n let top = 0;\r\n let left = 0;\r\n\r\n if (placement === 'top') {\r\n top = rect.top + window.scrollY;\r\n left = rect.left + rect.width / 2 + window.scrollX;\r\n } else if (placement === 'bottom') {\r\n top = rect.bottom + window.scrollY;\r\n left = rect.left + rect.width / 2 + window.scrollX;\r\n } else if (placement === 'left') {\r\n top = rect.top + rect.height / 2 + window.scrollY;\r\n left = rect.left + window.scrollX;\r\n } else if (placement === 'right') {\r\n top = rect.top + rect.height / 2 + window.scrollY;\r\n left = rect.right + window.scrollX;\r\n }\r\n\r\n setCoords({ top, left });\r\n setIsVisible(true);\r\n }\r\n }, delayDuration);\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n setIsVisible(false);\r\n };\r\n\r\n return (\r\n <>\r\n <div\r\n ref={triggerRef}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n onFocus={handleMouseEnter}\r\n onBlur={handleMouseLeave}\r\n className=\"inline-flex cursor-pointer\"\r\n >\r\n {children}\r\n </div>\r\n\r\n {isVisible && (\r\n <Portal>\r\n <div\r\n style={{ top: `${coords.top}px`, left: `${coords.left}px`, position: 'absolute' }}\r\n role=\"tooltip\"\r\n className={cn(tooltipVariants({ placement }), className)}\r\n >\r\n {content}\r\n </div>\r\n </Portal>\r\n )}\r\n </>\r\n );\r\n}\r\n","import React, { createContext, useContext, useState, useCallback } from 'react';\r\nimport { cva } from 'class-variance-authority';\r\nimport { CheckCircle2, AlertTriangle, AlertCircle, Info, X } from 'lucide-react';\r\nimport { Portal } from './Portal';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport type ToastType = 'info' | 'success' | 'warning' | 'error';\r\n\r\nexport interface ToastOptions {\r\n id?: string;\r\n title: string;\r\n description?: string;\r\n type?: ToastType;\r\n duration?: number;\r\n}\r\n\r\nexport interface ToastItem extends ToastOptions {\r\n id: string;\r\n}\r\n\r\ninterface ToastContextType {\r\n toast: (options: ToastOptions) => string;\r\n dismiss: (id: string) => void;\r\n toasts: ToastItem[];\r\n}\r\n\r\nconst ToastContext = createContext<ToastContextType | null>(null);\r\n\r\nexport function useToast() {\r\n const context = useContext(ToastContext);\r\n if (!context) {\r\n throw new Error('useToast must be used within a ToasterProvider');\r\n }\r\n return context;\r\n}\r\n\r\nexport const toastVariants = cva(\r\n 'pointer-events-auto flex w-full max-w-md items-start gap-3 rounded-[var(--ui-radius-lg)] border p-4 shadow-lg transition-all animate-in slide-in-from-bottom-5 duration-300',\r\n {\r\n variants: {\r\n type: {\r\n info: 'bg-[var(--ui-bg-surface)] border-[var(--ui-info)]/30 text-[var(--ui-text-primary)]',\r\n success: 'bg-[var(--ui-bg-surface)] border-[var(--ui-success)]/30 text-[var(--ui-text-primary)]',\r\n warning: 'bg-[var(--ui-bg-surface)] border-[var(--ui-warning)]/30 text-[var(--ui-text-primary)]',\r\n error: 'bg-[var(--ui-bg-surface)] border-[var(--ui-error)]/30 text-[var(--ui-text-primary)]',\r\n },\r\n },\r\n defaultVariants: {\r\n type: 'info',\r\n },\r\n }\r\n);\r\n\r\nconst toastIcons: Record<ToastType, React.ReactNode> = {\r\n info: <Info className=\"w-5 h-5 text-[var(--ui-info)] flex-shrink-0\" />,\r\n success: <CheckCircle2 className=\"w-5 h-5 text-[var(--ui-success)] flex-shrink-0\" />,\r\n warning: <AlertTriangle className=\"w-5 h-5 text-[var(--ui-warning)] flex-shrink-0\" />,\r\n error: <AlertCircle className=\"w-5 h-5 text-[var(--ui-error)] flex-shrink-0\" />,\r\n};\r\n\r\nexport interface ToasterProviderProps {\r\n children: React.ReactNode;\r\n position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center';\r\n}\r\n\r\nexport function ToasterProvider({ children, position = 'bottom-right' }: ToasterProviderProps) {\r\n const [toasts, setToasts] = useState<ToastItem[]>([]);\r\n\r\n const dismiss = useCallback((id: string) => {\r\n setToasts((prev) => prev.filter((t) => t.id !== id));\r\n }, []);\r\n\r\n const toast = useCallback(\r\n ({ id = Math.random().toString(36).slice(2, 9), title, description, type = 'info', duration = 4000 }: ToastOptions) => {\r\n const item: ToastItem = { id, title, description, type, duration };\r\n\r\n setToasts((prev) => [...prev, item]);\r\n\r\n if (duration > 0) {\r\n setTimeout(() => {\r\n dismiss(id);\r\n }, duration);\r\n }\r\n\r\n return id;\r\n },\r\n [dismiss]\r\n );\r\n\r\n const getPositionClasses = () => {\r\n switch (position) {\r\n case 'top-left':\r\n return 'top-4 left-4 items-start';\r\n case 'top-center':\r\n return 'top-4 left-1/2 -translate-x-1/2 items-center';\r\n case 'top-right':\r\n return 'top-4 right-4 items-end';\r\n case 'bottom-left':\r\n return 'bottom-4 left-4 items-start';\r\n case 'bottom-center':\r\n return 'bottom-4 left-1/2 -translate-x-1/2 items-center';\r\n case 'bottom-right':\r\n default:\r\n return 'bottom-4 right-4 items-end';\r\n }\r\n };\r\n\r\n return (\r\n <ToastContext.Provider value={{ toast, dismiss, toasts }}>\r\n {children}\r\n <Portal>\r\n <div\r\n aria-live=\"polite\"\r\n className={cn('fixed z-[100] flex flex-col gap-2 pointer-events-none p-4 w-full max-w-sm sm:max-w-md', getPositionClasses())}\r\n >\r\n {toasts.map((t) => (\r\n <div key={t.id} className={cn(toastVariants({ type: t.type }))}>\r\n {toastIcons[t.type || 'info']}\r\n <div className=\"flex-1 space-y-1\">\r\n <h4 className=\"text-sm font-semibold text-[var(--ui-text-primary)]\">{t.title}</h4>\r\n {t.description && <p className=\"text-xs text-[var(--ui-text-muted)]\">{t.description}</p>}\r\n </div>\r\n <button\r\n type=\"button\"\r\n onClick={() => dismiss(t.id)}\r\n aria-label=\"Dismiss toast\"\r\n className=\"p-1 rounded text-[var(--ui-text-muted)] hover:text-[var(--ui-text-primary)] hover:bg-[var(--ui-bg-tertiary)] transition-colors\"\r\n >\r\n <X className=\"w-3.5 h-3.5\" />\r\n </button>\r\n </div>\r\n ))}\r\n </div>\r\n </Portal>\r\n </ToastContext.Provider>\r\n );\r\n}\r\n","import React, { forwardRef, useEffect, useRef } from 'react';\nimport { X } from 'lucide-react';\nimport { cn } from '../utils/cn';\nimport { Portal } from './Portal';\nimport { FocusTrap } from './FocusTrap';\n\nexport interface BottomSheetProps {\n isOpen: boolean;\n onClose: () => void;\n children: React.ReactNode;\n title?: string;\n description?: string;\n className?: string;\n showHandle?: boolean;\n maxHeight?: string;\n}\n\nexport const BottomSheet = forwardRef<HTMLDivElement, BottomSheetProps>(\n (\n {\n isOpen,\n onClose,\n children,\n title,\n description,\n className,\n showHandle = true,\n maxHeight = 'max-h-[85vh]',\n },\n ref\n ) => {\n const sheetRef = useRef<HTMLDivElement | null>(null);\n\n // Escape key listener\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && isOpen) {\n onClose();\n }\n };\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [isOpen, onClose]);\n\n if (!isOpen) return null;\n\n return (\n <Portal>\n <FocusTrap active={isOpen}>\n <div className=\"fixed inset-0 z-50 flex flex-col justify-end\">\n {/* Backdrop */}\n <div\n onClick={onClose}\n className=\"fixed inset-0 bg-black/60 backdrop-blur-md transition-opacity animate-in fade-in duration-300\"\n aria-hidden=\"true\"\n />\n\n {/* Slide-up Sheet Panel */}\n <div\n ref={ref}\n className={cn(\n 'relative z-50 w-full max-w-2xl mx-auto rounded-t-[2rem] border-t border-x border-[var(--ui-border-default)] bg-[var(--ui-bg-surface)] backdrop-blur-3xl shadow-2xl overflow-hidden flex flex-col transition-transform animate-in slide-in-from-bottom duration-300',\n maxHeight,\n className\n )}\n >\n {/* Drag Handle */}\n {showHandle && (\n <div\n onClick={onClose}\n className=\"w-full py-3 flex items-center justify-center cursor-grab active:cursor-grabbing\"\n >\n <div className=\"w-12 h-1.5 rounded-full bg-[var(--ui-text-muted)]/40 hover:bg-[var(--ui-text-muted)] transition-colors\" />\n </div>\n )}\n\n {/* Header */}\n {(title || description) && (\n <div className=\"px-6 pb-3 flex items-center justify-between border-b border-[var(--ui-border-subtle)]\">\n <div>\n {title && <h3 className=\"text-base font-bold tracking-tight text-[var(--ui-text-primary)]\">{title}</h3>}\n {description && <p className=\"text-xs text-[var(--ui-text-muted)]\">{description}</p>}\n </div>\n <button\n type=\"button\"\n onClick={onClose}\n className=\"p-1.5 rounded-full hover:bg-[var(--ui-bg-tertiary)] text-[var(--ui-text-muted)] hover:text-[var(--ui-text-primary)] transition-colors\"\n >\n <X className=\"w-4 h-4\" />\n </button>\n </div>\n )}\n\n {/* Content Body */}\n <div className=\"p-6 overflow-y-auto flex-1 space-y-4\">\n {children}\n </div>\n </div>\n </div>\n </FocusTrap>\n </Portal>\n );\n }\n);\nBottomSheet.displayName = 'BottomSheet';\n\nexport const BottomSheetHeader: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({ className, children, ...props }) => (\n <div className={cn('px-6 pb-2', className)} {...props}>\n {children}\n </div>\n);\n\nexport const BottomSheetBody: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({ className, children, ...props }) => (\n <div className={cn('px-6 py-2 overflow-y-auto', className)} {...props}>\n {children}\n </div>\n);\n\nexport const BottomSheetFooter: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({ className, children, ...props }) => (\n <div className={cn('p-6 pt-3 border-t border-[var(--ui-border-subtle)] flex items-center justify-end gap-3', className)} {...props}>\n {children}\n </div>\n);\n","import React, { useState, useEffect, useRef, forwardRef } from 'react';\nimport { cn } from '../utils/cn';\nimport { Portal } from './Portal';\nimport { Kbd } from '../typography/Kbd';\n\nexport interface ContextMenuItemProps extends React.HTMLAttributes<HTMLDivElement> {\n icon?: React.ReactNode;\n shortcut?: string;\n disabled?: boolean;\n destructive?: boolean;\n onSelect?: () => void;\n}\n\nexport const ContextMenuItem: React.FC<ContextMenuItemProps> = ({\n icon,\n shortcut,\n disabled = false,\n destructive = false,\n onSelect,\n children,\n className,\n ...props\n}) => {\n return (\n <div\n role=\"menuitem\"\n aria-disabled={disabled}\n onClick={() => {\n if (!disabled) onSelect?.();\n }}\n className={cn(\n 'flex items-center justify-between px-3 py-1.5 rounded-xl text-xs font-medium cursor-pointer transition-colors select-none',\n disabled && 'opacity-40 cursor-not-allowed pointer-events-none',\n destructive\n ? 'text-rose-500 hover:bg-rose-500/10'\n : 'text-[var(--ui-text-primary)] hover:bg-[var(--ui-bg-tertiary)]',\n className\n )}\n {...props}\n >\n <div className=\"flex items-center gap-2 truncate\">\n {icon && <span className=\"w-4 h-4 shrink-0\">{icon}</span>}\n <span className=\"truncate\">{children}</span>\n </div>\n\n {shortcut && <Kbd className=\"text-[10px] py-0 px-1\">{shortcut}</Kbd>}\n </div>\n );\n};\n\nexport const ContextMenuSeparator: React.FC = () => (\n <div className=\"h-px my-1 bg-[var(--ui-border-subtle)]\" role=\"separator\" />\n);\n\nexport interface ContextMenuProps {\n children: React.ReactNode;\n menuContent: React.ReactNode;\n className?: string;\n}\n\nexport const ContextMenu = forwardRef<HTMLDivElement, ContextMenuProps>(\n ({ children, menuContent, className }, ref) => {\n const [isOpen, setIsOpen] = useState(false);\n const [position, setPosition] = useState<{ x: number; y: number }>({ x: 0, y: 0 });\n const menuRef = useRef<HTMLDivElement | null>(null);\n\n const handleContextMenu = (e: React.MouseEvent) => {\n e.preventDefault();\n const x = Math.min(window.innerWidth - 220, e.clientX);\n const y = Math.min(window.innerHeight - 260, e.clientY);\n setPosition({ x, y });\n setIsOpen(true);\n };\n\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (menuRef.current && !menuRef.current.contains(e.target as Node)) {\n setIsOpen(false);\n }\n };\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') setIsOpen(false);\n };\n\n if (isOpen) {\n window.addEventListener('click', handleClickOutside);\n window.addEventListener('contextmenu', handleClickOutside);\n window.addEventListener('keydown', handleKeyDown);\n }\n return () => {\n window.removeEventListener('click', handleClickOutside);\n window.removeEventListener('contextmenu', handleClickOutside);\n window.removeEventListener('keydown', handleKeyDown);\n };\n }, [isOpen]);\n\n return (\n <>\n <div ref={ref} onContextMenu={handleContextMenu} className={className}>\n {children}\n </div>\n\n {isOpen && (\n <Portal>\n <div\n ref={menuRef}\n style={{ top: `${position.y}px`, left: `${position.x}px` }}\n onClick={() => setIsOpen(false)}\n className=\"fixed z-50 min-w-48 p-1.5 rounded-2xl bg-[var(--ui-bg-surface)]/90 backdrop-blur-3xl border border-[var(--ui-border-default)] shadow-2xl space-y-0.5 animate-in fade-in zoom-in-95 duration-150\"\n >\n {menuContent}\n </div>\n </Portal>\n )}\n </>\n );\n }\n);\nContextMenu.displayName = 'ContextMenu';\n","import React, { useState, useRef, forwardRef } from 'react';\nimport { cn } from '../utils/cn';\nimport { Portal } from './Portal';\n\nexport interface HoverCardProps {\n trigger: React.ReactNode;\n content: React.ReactNode;\n openDelay?: number;\n closeDelay?: number;\n className?: string;\n}\n\nexport const HoverCard = forwardRef<HTMLDivElement, HoverCardProps>(\n ({ trigger, content, openDelay = 200, closeDelay = 250, className }, ref) => {\n const [isOpen, setIsOpen] = useState(false);\n const [coords, setCoords] = useState<{ top: number; left: number }>({ top: 0, left: 0 });\n const triggerRef = useRef<HTMLDivElement | null>(null);\n const openTimerRef = useRef<any>(null);\n const closeTimerRef = useRef<any>(null);\n\n const handleMouseEnter = () => {\n clearTimeout(closeTimerRef.current);\n openTimerRef.current = setTimeout(() => {\n if (triggerRef.current) {\n const rect = triggerRef.current.getBoundingClientRect();\n setCoords({\n top: rect.bottom + window.scrollY + 8,\n left: Math.max(16, Math.min(window.innerWidth - 320, rect.left + window.scrollX)),\n });\n setIsOpen(true);\n }\n }, openDelay);\n };\n\n const handleMouseLeave = () => {\n clearTimeout(openTimerRef.current);\n closeTimerRef.current = setTimeout(() => {\n setIsOpen(false);\n }, closeDelay);\n };\n\n return (\n <div\n ref={ref}\n className=\"inline-block relative\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <div ref={triggerRef} className=\"inline-block\">\n {trigger}\n </div>\n\n {isOpen && (\n <Portal>\n <div\n style={{ top: `${coords.top}px`, left: `${coords.left}px` }}\n onMouseEnter={() => clearTimeout(closeTimerRef.current)}\n onMouseLeave={handleMouseLeave}\n className={cn(\n 'fixed z-50 w-72 p-4 rounded-2xl bg-[var(--ui-bg-surface)] backdrop-blur-3xl border border-[var(--ui-border-default)] shadow-2xl animate-in fade-in zoom-in-95 duration-200',\n className\n )}\n >\n {content}\n </div>\n </Portal>\n )}\n </div>\n );\n }\n);\nHoverCard.displayName = 'HoverCard';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/buttons/Button.tsx"],"names":[],"mappings":";;;;;;AAKO,IAAM,cAAA,GAAiB,GAAA;AAAA,EAC5B,oSAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,sJAAA;AAAA,QACF,SAAA,EACE,4IAAA;AAAA,QACF,OAAA,EACE,wMAAA;AAAA,QACF,KAAA,EACE,kFAAA;AAAA,QACF,MAAA,EACE,+IAAA;AAAA,QACF,IAAA,EACE,oHAAA;AAAA,QACF,KAAA,EACE;AAAA,OACJ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,wDAAA;AAAA,QACJ,EAAA,EAAI,4DAAA;AAAA,QACJ,EAAA,EAAI,uEAAA;AAAA,QACJ,EAAA,EAAI,yEAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,QAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM,IAAA;AAAA,MACN,SAAA,EAAW;AAAA;AACb;AAEJ;AAWO,IAAM,MAAA,GAAS,UAAA;AAAA,EACpB,CACE;AAAA,IACE,SAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,WAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,aAAa,QAAA,IAAY,OAAA;AAE/B,IAAA,uBACE,IAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,QAAA,EAAU,UAAA;AAAA,QACV,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAA,EAAG,SAAS,CAAA;AAAA,QACpE,GAAG,KAAA;AAAA,QAGJ,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,aAAA,EAAY,MAAA;AAAA,cACZ,SAAA,EAAU;AAAA;AAAA,WACZ;AAAA,UAEC,0BACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,WAAU,sBAAA,EAAuB,CAAA;AAAA,4BAC1C,GAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,WAAA,IAAe,QAAA,EAAS;AAAA,WAAA,EACjC,oBAEA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,YAAA,QAAA,oBAAY,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wCAAA,EAA0C,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,4BAChF,GAAA,CAAC,UAAM,QAAA,EAAS,CAAA;AAAA,YACf,SAAA,oBAAa,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0CAA0C,QAAA,EAAA,SAAA,EAAU;AAAA,WAAA,EACpF;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA","file":"chunk-66VWUJEI.js","sourcesContent":["import React, { forwardRef } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { Loader2 } from 'lucide-react';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport const buttonVariants = cva(\r\n 'relative inline-flex items-center justify-center font-medium transition-all duration-200 select-none cursor-pointer disabled:pointer-events-none disabled:opacity-40 focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-[var(--ui-primary)]/30 active:scale-[0.97] overflow-hidden',\r\n {\r\n variants: {\r\n variant: {\r\n primary:\r\n 'bg-[var(--ui-primary)] hover:bg-[var(--ui-primary-hover)] text-white shadow-sm hover:shadow-[0_4px_16px_rgba(0,113,227,0.35)] border border-white/20',\r\n secondary:\r\n 'bg-[var(--ui-bg-tertiary)] hover:bg-[var(--ui-bg-surface)] text-[var(--ui-text-primary)] border border-[var(--ui-border-subtle)] shadow-sm',\r\n outline:\r\n 'border border-[var(--ui-border-default)] bg-[var(--ui-bg-surface)]/60 backdrop-blur-xl text-[var(--ui-text-primary)] hover:bg-[var(--ui-bg-tertiary)] hover:border-[var(--ui-border-strong)] shadow-sm',\r\n ghost:\r\n 'bg-transparent text-[var(--ui-text-primary)] hover:bg-[var(--ui-bg-tertiary)]/70',\r\n danger:\r\n 'bg-[var(--ui-error)] hover:bg-[var(--ui-error)]/90 text-white shadow-sm hover:shadow-[0_4px_16px_rgba(255,59,48,0.35)] border border-white/15',\r\n link:\r\n 'bg-transparent text-[var(--ui-primary)] underline-offset-4 hover:underline p-0 h-auto active:scale-100 font-normal',\r\n glass:\r\n 'bg-white/10 dark:bg-white/10 backdrop-blur-2xl border border-white/20 dark:border-white/15 text-[var(--ui-text-primary)] hover:bg-white/20 dark:hover:bg-white/15 shadow-[0_8px_32px_rgba(0,0,0,0.12)] hover:shadow-[0_8px_32px_rgba(0,113,227,0.25)]',\r\n },\r\n size: {\r\n xs: 'h-7 px-2.5 text-xs rounded-[var(--ui-radius-sm)] gap-1',\r\n sm: 'h-8.5 px-3.5 text-xs rounded-[var(--ui-radius-md)] gap-1.5',\r\n md: 'h-10 px-4.5 text-sm rounded-[var(--ui-radius-md)] gap-2 font-semibold',\r\n lg: 'h-12 px-6 text-base rounded-[var(--ui-radius-lg)] gap-2.5 font-semibold',\r\n xl: 'h-14 px-8 text-lg rounded-[var(--ui-radius-xl)] gap-3 font-bold',\r\n },\r\n fullWidth: {\r\n true: 'w-full',\r\n false: '',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'primary',\r\n size: 'md',\r\n fullWidth: false,\r\n },\r\n }\r\n);\r\n\r\nexport interface ButtonProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\r\n VariantProps<typeof buttonVariants> {\r\n loading?: boolean;\r\n loadingText?: string;\r\n leftIcon?: React.ReactNode;\r\n rightIcon?: React.ReactNode;\r\n}\r\n\r\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\r\n (\r\n {\r\n className,\r\n variant,\r\n size,\r\n fullWidth,\r\n loading = false,\r\n loadingText,\r\n leftIcon,\r\n rightIcon,\r\n disabled,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const isDisabled = disabled || loading;\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n disabled={isDisabled}\r\n className={cn(buttonVariants({ variant, size, fullWidth }), className)}\r\n {...props}\r\n >\r\n {/* Apple subtle top specular highlight */}\r\n <span\r\n aria-hidden=\"true\"\r\n className=\"absolute inset-x-0 top-0 h-[1px] bg-gradient-to-r from-transparent via-white/35 to-transparent pointer-events-none\"\r\n />\r\n\r\n {loading ? (\r\n <>\r\n <Loader2 className=\"w-4 h-4 animate-spin\" />\r\n <span>{loadingText || children}</span>\r\n </>\r\n ) : (\r\n <>\r\n {leftIcon && <span className=\"flex-shrink-0 inline-flex items-center\">{leftIcon}</span>}\r\n <span>{children}</span>\r\n {rightIcon && <span className=\"flex-shrink-0 inline-flex items-center\">{rightIcon}</span>}\r\n </>\r\n )}\r\n </button>\r\n );\r\n }\r\n);\r\n\r\nButton.displayName = 'Button';\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/glass/index.ts","../src/glass/GlassCard.tsx","../src/glass/GlassButton.tsx","../src/glass/GlassBadge.tsx"],"names":["cva","forwardRef","jsxs","jsx"],"mappings":"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","file":"chunk-A7P3O5Z5.js","sourcesContent":["export * from './GlassCard';\r\nexport * from './GlassButton';\r\nexport * from './GlassBadge';\r\n","import React, { forwardRef } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { cn } from '../utils/cn';\r\n\r\nconst glassCardVariants = cva(\r\n 'relative overflow-hidden transition-all duration-300 text-[var(--ui-glass-text-primary)]',\r\n {\r\n variants: {\r\n intensity: {\r\n subtle:\r\n 'bg-[var(--ui-glass-subtle-bg)] backdrop-blur-[var(--ui-glass-subtle-blur)] border border-[var(--ui-glass-subtle-border)]',\r\n standard:\r\n 'bg-[var(--ui-glass-standard-bg)] backdrop-blur-[var(--ui-glass-standard-blur)] border border-[var(--ui-glass-standard-border)] shadow-[var(--ui-glass-standard-shadow)]',\r\n frosted:\r\n 'bg-[var(--ui-glass-frosted-bg)] backdrop-blur-[var(--ui-glass-frosted-blur)] border border-[var(--ui-glass-frosted-border)] shadow-[var(--ui-glass-frosted-shadow)]',\r\n acrylic:\r\n 'bg-[image:var(--ui-glass-acrylic-bg)] backdrop-blur-[var(--ui-glass-acrylic-blur)] border border-[var(--ui-glass-acrylic-border)] shadow-[var(--ui-glass-acrylic-shadow)]',\r\n },\r\n glow: {\r\n none: '',\r\n cyan: 'hover:shadow-[0_0_40px_-8px_rgba(56,189,248,0.3)] hover:border-sky-400/40',\r\n purple: 'hover:shadow-[0_0_40px_-8px_rgba(192,132,252,0.3)] hover:border-purple-400/40',\r\n white: 'hover:shadow-[0_0_35px_-8px_rgba(255,255,255,0.25)] hover:border-white/30',\r\n },\r\n radius: {\r\n md: 'rounded-xl',\r\n lg: 'rounded-2xl',\r\n xl: 'rounded-3xl',\r\n },\r\n padding: {\r\n sm: 'p-4',\r\n md: 'p-6',\r\n lg: 'p-8',\r\n },\r\n },\r\n defaultVariants: {\r\n intensity: 'standard',\r\n glow: 'none',\r\n radius: 'lg',\r\n padding: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport interface GlassCardProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof glassCardVariants> {\r\n specularLight?: boolean;\r\n}\r\n\r\nexport const GlassCard = forwardRef<HTMLDivElement, GlassCardProps>(\r\n ({ className, intensity, glow, radius, padding, specularLight = true, children, ...props }, ref) => {\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(glassCardVariants({ intensity, glow, radius, padding, className }))}\r\n {...props}\r\n >\r\n {specularLight && (\r\n <div\r\n className=\"pointer-events-none absolute inset-x-0 top-0 h-px bg-[image:var(--ui-glass-specular-light)] opacity-80\"\r\n aria-hidden=\"true\"\r\n />\r\n )}\r\n {children}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nGlassCard.displayName = 'GlassCard';\r\n","import React, { forwardRef } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { cn } from '../utils/cn';\r\n\r\nconst glassButtonVariants = cva(\r\n 'group relative inline-flex items-center justify-center font-medium tracking-tight transition-all duration-300 active:scale-[0.97] disabled:pointer-events-none disabled:opacity-40 overflow-hidden cursor-pointer select-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-900 dark:focus-visible:ring-white/90 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--ui-focus-ring-offset)]',\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n 'bg-[var(--ui-glass-btn-default-bg)] hover:bg-[var(--ui-glass-btn-default-hover)] backdrop-blur-md border border-[var(--ui-glass-btn-default-border)] text-[var(--ui-glass-btn-default-text)] shadow-sm dark:shadow-[0_4px_24px_rgba(0,0,0,0.35)] hover:border-black/20 dark:hover:border-white/35',\r\n primary:\r\n 'bg-slate-900 text-white dark:bg-white dark:text-slate-950 font-semibold shadow-md hover:bg-slate-800 dark:hover:bg-slate-100 border border-slate-700 dark:border-white shadow-[0_4px_20px_rgba(0,0,0,0.2)] dark:shadow-[0_0_24px_rgba(255,255,255,0.25)]',\r\n luminescent:\r\n 'bg-gradient-to-r from-slate-800/80 to-slate-900/80 text-white dark:from-white/15 dark:to-white/5 dark:text-white backdrop-blur-xl border border-white/20 dark:border-white/30 shadow-[0_0_20px_-4px_rgba(255,255,255,0.15)] hover:border-white/50 hover:shadow-[0_0_30px_-4px_rgba(255,255,255,0.3)]',\r\n ghost:\r\n 'bg-transparent hover:bg-black/5 dark:hover:bg-white/10 backdrop-blur-sm border border-transparent hover:border-black/10 dark:hover:border-white/15 text-[var(--ui-glass-text-secondary)] hover:text-[var(--ui-glass-text-primary)]',\r\n },\r\n size: {\r\n sm: 'h-8 px-3.5 text-xs rounded-xl gap-1.5',\r\n md: 'h-10 px-5 text-sm rounded-2xl gap-2',\r\n lg: 'h-12 px-7 text-base rounded-2xl gap-2.5',\r\n icon: 'h-10 w-10 rounded-2xl',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport interface GlassButtonProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\r\n VariantProps<typeof glassButtonVariants> {\r\n shimmer?: boolean;\r\n}\r\n\r\nexport const GlassButton = forwardRef<HTMLButtonElement, GlassButtonProps>(\r\n ({ className, variant, size, shimmer = true, children, ...props }, ref) => {\r\n return (\r\n <button\r\n ref={ref}\r\n className={cn(glassButtonVariants({ variant, size, className }))}\r\n {...props}\r\n >\r\n {shimmer && (\r\n <span\r\n className=\"pointer-events-none absolute -inset-full top-0 block -rotate-45 bg-gradient-to-r from-transparent via-white/25 dark:via-white/15 to-transparent transition-all duration-700 motion-safe:group-hover:translate-x-full\"\r\n aria-hidden=\"true\"\r\n />\r\n )}\r\n <span className=\"relative z-10 inline-flex items-center gap-2\">{children}</span>\r\n </button>\r\n );\r\n }\r\n);\r\n\r\nGlassButton.displayName = 'GlassButton';\r\n","import React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst glassBadgeVariants = cva(\n 'inline-flex items-center font-sans font-semibold tracking-tight rounded-full backdrop-blur-xl border transition-all select-none',\n {\n variants: {\n variant: {\n default:\n 'bg-[var(--ui-bg-secondary)]/80 text-[var(--ui-text-primary)] border-[var(--ui-border-default)] shadow-xs',\n emerald:\n 'bg-emerald-500/15 text-emerald-600 dark:text-emerald-400 border-emerald-500/25 shadow-xs shadow-emerald-500/10',\n cyan:\n 'bg-blue-500/15 text-blue-600 dark:text-blue-400 border-blue-500/25 shadow-xs shadow-blue-500/10',\n purple:\n 'bg-purple-500/15 text-purple-600 dark:text-purple-400 border-purple-500/25 shadow-xs shadow-purple-500/10',\n amber:\n 'bg-amber-500/15 text-amber-600 dark:text-amber-400 border-amber-500/25 shadow-xs shadow-amber-500/10',\n rose:\n 'bg-rose-500/15 text-rose-600 dark:text-rose-400 border-rose-500/25 shadow-xs shadow-rose-500/10',\n },\n size: {\n sm: 'text-[10px] px-2 py-0.5 gap-1',\n md: 'text-[11px] px-2.5 py-0.5 gap-1.5',\n lg: 'text-xs px-3 py-1 gap-1.5',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nexport interface GlassBadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof glassBadgeVariants> {\n dot?: boolean;\n}\n\nexport const GlassBadge: React.FC<GlassBadgeProps> = ({\n className,\n variant,\n size,\n dot = false,\n children,\n ...props\n}) => {\n return (\n <span className={cn(glassBadgeVariants({ variant, size, className }))} {...props}>\n {dot && (\n <span\n className=\"h-1.5 w-1.5 rounded-full bg-current motion-safe:animate-pulse shrink-0\"\n aria-hidden=\"true\"\n />\n )}\n <span>{children}</span>\n </span>\n );\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/typography/index.ts","../src/typography/Heading.tsx","../src/typography/Text.tsx","../src/typography/Link.tsx","../src/typography/Code.tsx","../src/typography/Blockquote.tsx"],"names":["cva","forwardRef","jsx","jsxs"],"mappings":"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","file":"chunk-ATYGDTMK.js","sourcesContent":["export * from './Heading';\r\nexport * from './Text';\r\nexport * from './Label';\r\nexport * from './Link';\r\nexport * from './Code';\r\nexport * from './Blockquote';\r\nexport * from './Kbd';\r\n","import React, { forwardRef } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport const headingVariants = cva('font-bold tracking-tight text-[var(--ui-text-primary)]', {\r\n variants: {\r\n size: {\r\n h1: 'text-4xl sm:text-5xl lg:text-6xl font-extrabold tracking-tight',\r\n h2: 'text-3xl sm:text-4xl font-bold tracking-tight',\r\n h3: 'text-2xl sm:text-3xl font-bold tracking-tight',\r\n h4: 'text-xl sm:text-2xl font-semibold',\r\n h5: 'text-lg sm:text-xl font-semibold',\r\n h6: 'text-base sm:text-lg font-medium',\r\n },\r\n weight: {\r\n normal: 'font-normal',\r\n medium: 'font-medium',\r\n semibold: 'font-semibold',\r\n bold: 'font-bold',\r\n extrabold: 'font-extrabold',\r\n },\r\n align: {\r\n left: 'text-left',\r\n center: 'text-center',\r\n right: 'text-right',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'h2',\r\n align: 'left',\r\n },\r\n});\r\n\r\nexport interface HeadingProps\r\n extends React.HTMLAttributes<HTMLHeadingElement>,\r\n VariantProps<typeof headingVariants> {\r\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'div' | 'span';\r\n}\r\n\r\nexport const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(\r\n ({ className, size = 'h2', weight, align, as, children, ...props }, ref) => {\r\n const Component = (as || size || 'h2') as React.ElementType;\r\n\r\n return (\r\n <Component\r\n ref={ref}\r\n className={cn(headingVariants({ size, weight, align }), className)}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n }\r\n);\r\n\r\nHeading.displayName = 'Heading';\r\n","import React, { forwardRef } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport const textVariants = cva('leading-relaxed', {\r\n variants: {\r\n variant: {\r\n body: 'text-base text-[var(--ui-text-primary)]',\r\n lead: 'text-lg sm:text-xl text-[var(--ui-text-secondary)] font-normal leading-relaxed',\r\n muted: 'text-sm text-[var(--ui-text-muted)]',\r\n small: 'text-xs text-[var(--ui-text-secondary)] font-normal',\r\n caption: 'text-xs text-[var(--ui-text-muted)] uppercase tracking-wider font-semibold',\r\n destructive: 'text-sm text-[var(--ui-error)] font-medium',\r\n success: 'text-sm text-[var(--ui-success)] font-medium',\r\n },\r\n weight: {\r\n light: 'font-light',\r\n normal: 'font-normal',\r\n medium: 'font-medium',\r\n semibold: 'font-semibold',\r\n bold: 'font-bold',\r\n },\r\n align: {\r\n left: 'text-left',\r\n center: 'text-center',\r\n right: 'text-right',\r\n justify: 'text-justify',\r\n },\r\n truncate: {\r\n true: 'truncate',\r\n false: '',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'body',\r\n weight: 'normal',\r\n align: 'left',\r\n truncate: false,\r\n },\r\n});\r\n\r\nexport interface TextProps\r\n extends React.HTMLAttributes<HTMLElement>,\r\n VariantProps<typeof textVariants> {\r\n as?: React.ElementType;\r\n}\r\n\r\nexport const Text = forwardRef<HTMLElement, TextProps>(\r\n ({ className, variant, weight, align, truncate, as: Component = 'p', children, ...props }, ref) => {\r\n return (\r\n <Component\r\n ref={ref}\r\n className={cn(textVariants({ variant, weight, align, truncate }), className)}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n }\r\n);\r\n\r\nText.displayName = 'Text';\r\n","import React, { forwardRef } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { ExternalLink } from 'lucide-react';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport const linkVariants = cva(\r\n 'inline-flex items-center gap-1 font-medium transition-colors cursor-pointer text-[var(--ui-primary)] hover:text-[var(--ui-primary-hover)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ui-primary)] rounded-sm',\r\n {\r\n variants: {\r\n underline: {\r\n always: 'underline underline-offset-4',\r\n hover: 'hover:underline underline-offset-4',\r\n none: 'no-underline',\r\n },\r\n variant: {\r\n primary: 'text-[var(--ui-primary)] hover:text-[var(--ui-primary-hover)]',\r\n secondary: 'text-[var(--ui-text-secondary)] hover:text-[var(--ui-text-primary)]',\r\n muted: 'text-[var(--ui-text-muted)] hover:text-[var(--ui-text-secondary)]',\r\n },\r\n },\r\n defaultVariants: {\r\n underline: 'hover',\r\n variant: 'primary',\r\n },\r\n }\r\n);\r\n\r\nexport interface LinkProps\r\n extends React.AnchorHTMLAttributes<HTMLAnchorElement>,\r\n VariantProps<typeof linkVariants> {\r\n external?: boolean;\r\n showExternalIcon?: boolean;\r\n}\r\n\r\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(\r\n ({ className, underline, variant, external, showExternalIcon = true, children, ...props }, ref) => {\r\n const isExternal = external ?? (props.href?.startsWith('http') || props.target === '_blank');\r\n\r\n return (\r\n <a\r\n ref={ref}\r\n target={isExternal ? '_blank' : props.target}\r\n rel={isExternal ? 'noopener noreferrer' : props.rel}\r\n className={cn(linkVariants({ underline, variant }), className)}\r\n {...props}\r\n >\r\n {children}\r\n {isExternal && showExternalIcon && (\r\n <ExternalLink className=\"w-3.5 h-3.5 opacity-70 inline-block ml-0.5 flex-shrink-0\" />\r\n )}\r\n </a>\r\n );\r\n }\r\n);\r\n\r\nLink.displayName = 'Link';\r\n","import React, { forwardRef, useState } from 'react';\r\nimport { Copy, Check } from 'lucide-react';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport interface CodeProps extends React.HTMLAttributes<HTMLElement> {\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const Code = forwardRef<HTMLElement, CodeProps>(\r\n ({ className, children, ...props }, ref) => {\r\n return (\r\n <code\r\n ref={ref}\r\n className={cn(\r\n 'relative rounded bg-[var(--ui-bg-tertiary)] px-[0.35rem] py-[0.15rem] font-mono text-sm font-semibold text-[var(--ui-text-primary)] border border-[var(--ui-border-subtle)]',\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </code>\r\n );\r\n }\r\n);\r\nCode.displayName = 'Code';\r\n\r\nexport interface CodeBlockProps extends React.HTMLAttributes<HTMLDivElement> {\r\n code: string;\r\n language?: string;\r\n copyable?: boolean;\r\n}\r\n\r\nexport const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(\r\n ({ className, code, language = 'bash', copyable = true, ...props }, ref) => {\r\n const [copied, setCopied] = useState(false);\r\n\r\n const handleCopy = async () => {\r\n try {\r\n await navigator.clipboard.writeText(code);\r\n setCopied(true);\r\n setTimeout(() => setCopied(false), 2000);\r\n } catch (err) {\r\n console.error('Failed to copy text', err);\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(\r\n 'relative rounded-lg border border-[var(--ui-border-subtle)] bg-[var(--ui-bg-secondary)] overflow-hidden font-mono text-sm shadow-sm',\r\n className\r\n )}\r\n {...props}\r\n >\r\n {/* Header */}\r\n <div className=\"flex items-center justify-between px-4 py-2 bg-[var(--ui-bg-tertiary)]/50 border-b border-[var(--ui-border-subtle)] text-xs text-[var(--ui-text-muted)] select-none\">\r\n <span className=\"font-semibold uppercase tracking-wider\">{language}</span>\r\n {copyable && (\r\n <button\r\n type=\"button\"\r\n onClick={handleCopy}\r\n className=\"flex items-center gap-1 hover:text-[var(--ui-text-primary)] transition-colors p-1 rounded hover:bg-[var(--ui-bg-surface)]\"\r\n aria-label={copied ? 'Copied code' : 'Copy code to clipboard'}\r\n >\r\n {copied ? (\r\n <>\r\n <Check className=\"w-3.5 h-3.5 text-[var(--ui-success)]\" />\r\n <span className=\"text-[var(--ui-success)] text-[11px]\">Copied</span>\r\n </>\r\n ) : (\r\n <>\r\n <Copy className=\"w-3.5 h-3.5\" />\r\n <span className=\"text-[11px]\">Copy</span>\r\n </>\r\n )}\r\n </button>\r\n )}\r\n </div>\r\n\r\n {/* Code Content */}\r\n <pre className=\"p-4 overflow-x-auto text-[var(--ui-text-primary)] leading-relaxed\">\r\n <code>{code}</code>\r\n </pre>\r\n </div>\r\n );\r\n }\r\n);\r\nCodeBlock.displayName = 'CodeBlock';\r\n","import React, { forwardRef } from 'react';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport interface BlockquoteProps extends React.BlockquoteHTMLAttributes<HTMLQuoteElement> {\r\n citeAuthor?: string;\r\n citeSource?: string;\r\n}\r\n\r\nexport const Blockquote = forwardRef<HTMLQuoteElement, BlockquoteProps>(\r\n ({ className, citeAuthor, citeSource, children, ...props }, ref) => {\r\n return (\r\n <blockquote\r\n ref={ref}\r\n className={cn(\r\n 'mt-6 border-l-4 border-[var(--ui-primary)] pl-6 italic text-[var(--ui-text-secondary)] space-y-2',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div className=\"text-base sm:text-lg\">{children}</div>\r\n {(citeAuthor || citeSource) && (\r\n <footer className=\"not-italic text-xs font-semibold text-[var(--ui-text-muted)] tracking-wider\">\r\n {citeAuthor && <span>— {citeAuthor}</span>}\r\n {citeSource && <span className=\"opacity-75 ml-1\">({citeSource})</span>}\r\n </footer>\r\n )}\r\n </blockquote>\r\n );\r\n }\r\n);\r\n\r\nBlockquote.displayName = 'Blockquote';\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bento/index.ts","../src/bento/BentoGrid.tsx","../src/bento/BentoCard.tsx"],"names":["cva","jsx"],"mappings":"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","file":"chunk-C4SUXMI3.js","sourcesContent":["export * from './BentoGrid';\r\nexport * from './BentoCard';\r\n","import React from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { cn } from '../utils/cn';\r\n\r\nconst bentoGridVariants = cva('grid w-full auto-rows-[minmax(240px,auto)]', {\r\n variants: {\r\n cols: {\r\n 1: 'grid-cols-1',\r\n 2: 'grid-cols-1 md:grid-cols-2',\r\n 3: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',\r\n 4: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-4',\r\n },\r\n gap: {\r\n sm: 'gap-4',\r\n md: 'gap-6',\r\n lg: 'gap-8',\r\n },\r\n flow: {\r\n row: 'grid-flow-row',\r\n col: 'grid-flow-col',\r\n dense: 'grid-flow-dense',\r\n 'row-dense': 'grid-flow-row-dense',\r\n 'col-dense': 'grid-flow-col-dense',\r\n },\r\n },\r\n defaultVariants: {\r\n cols: 3,\r\n gap: 'md',\r\n flow: 'row',\r\n },\r\n});\r\n\r\nexport interface BentoGridProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof bentoGridVariants> {}\r\n\r\nexport const BentoGrid: React.FC<BentoGridProps> = ({\r\n className,\r\n cols,\r\n gap,\r\n flow,\r\n children,\r\n ...props\r\n}) => {\r\n return (\r\n <div className={cn(bentoGridVariants({ cols, gap, flow, className }))} {...props}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import React, { forwardRef } from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { cn } from '../utils/cn';\r\n\r\nconst bentoCardVariants = cva(\r\n 'group relative flex flex-col justify-between overflow-hidden transition-all duration-500 ease-out border text-[var(--ui-bento-text-title)]',\r\n {\r\n variants: {\r\n colSpan: {\r\n 1: 'col-span-1',\r\n 2: 'col-span-1 md:col-span-2',\r\n 3: 'col-span-1 md:col-span-2 lg:col-span-3',\r\n },\r\n rowSpan: {\r\n 1: 'row-span-1',\r\n 2: 'row-span-1 md:row-span-2 md:min-h-[460px]',\r\n 3: 'row-span-1 md:row-span-3 md:min-h-[680px]',\r\n },\r\n variant: {\r\n default:\r\n 'bg-[var(--ui-bento-bg-card)] border-[var(--ui-bento-border)] hover:border-[var(--ui-bento-border-hover)] hover:bg-[var(--ui-bento-bg-card-hover)] shadow-[var(--ui-bento-shadow)]',\r\n spotlight:\r\n 'bg-[var(--ui-bento-bg-card)] border-[var(--ui-bento-border)] hover:border-white/30 dark:hover:border-white/30 hover:shadow-[0_0_35px_-8px_rgba(255,255,255,0.12)]',\r\n elevated:\r\n 'bg-[image:var(--ui-bento-bg-elevated)] border-[var(--ui-bento-border)] hover:border-[var(--ui-bento-border-hover)] shadow-[var(--ui-bento-shadow-elevated)]',\r\n },\r\n radius: {\r\n md: 'rounded-[var(--ui-bento-radius-md)]',\r\n lg: 'rounded-[var(--ui-bento-radius-lg)]',\r\n },\r\n padding: {\r\n sm: 'p-4 sm:p-5',\r\n md: 'p-5 sm:p-7',\r\n lg: 'p-6 sm:p-9',\r\n },\r\n },\r\n defaultVariants: {\r\n colSpan: 1,\r\n rowSpan: 1,\r\n variant: 'default',\r\n radius: 'lg',\r\n padding: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport interface BentoCardProps\r\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>,\r\n VariantProps<typeof bentoCardVariants> {\r\n title?: React.ReactNode;\r\n description?: React.ReactNode;\r\n icon?: React.ReactNode;\r\n tag?: React.ReactNode;\r\n /**\r\n * Decorative background graphic. Non-interactive backdrop element.\r\n */\r\n backgroundGraphic?: React.ReactNode;\r\n /**\r\n * @deprecated Use `backgroundGraphic` instead.\r\n */\r\n graphic?: React.ReactNode;\r\n}\r\n\r\nexport const BentoCard = forwardRef<HTMLDivElement, BentoCardProps>(\r\n (\r\n {\r\n className,\r\n colSpan,\r\n rowSpan,\r\n variant,\r\n radius,\r\n padding,\r\n title,\r\n description,\r\n icon,\r\n tag,\r\n backgroundGraphic,\r\n graphic,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const bgGraphic = backgroundGraphic ?? graphic;\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(bentoCardVariants({ colSpan, rowSpan, variant, radius, padding, className }))}\r\n {...props}\r\n >\r\n {/* Subtle Specular Top Line */}\r\n <div\r\n className=\"pointer-events-none absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-white/20 to-transparent opacity-50\"\r\n aria-hidden=\"true\"\r\n />\r\n\r\n {/* Background Visual Graphic Slot (Decorative) */}\r\n {bgGraphic && (\r\n <div className=\"absolute inset-0 z-0 overflow-hidden pointer-events-none opacity-70 transition-transform duration-700 ease-out motion-safe:group-hover:scale-105\">\r\n {bgGraphic}\r\n </div>\r\n )}\r\n\r\n {/* Top Header Section */}\r\n {(icon || tag) && (\r\n <div className=\"relative z-10 flex items-start justify-between gap-4\">\r\n {icon && (\r\n <div className=\"flex h-11 w-11 items-center justify-center rounded-2xl bg-[var(--ui-bento-icon-bg)] border border-[var(--ui-bento-icon-border)] backdrop-blur-md shadow-inner transition-transform duration-300 group-hover:scale-105\">\r\n {icon}\r\n </div>\r\n )}\r\n {tag && (\r\n <div className=\"font-mono text-[10px] font-semibold uppercase tracking-widest text-[var(--ui-bento-text-tag)] border border-[var(--ui-bento-icon-border)] bg-[var(--ui-bento-icon-bg)] px-2.5 py-1 rounded-md backdrop-blur-sm\">\r\n {tag}\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* Main Content Area */}\r\n <div className=\"relative z-10 mt-auto pt-6\">\r\n {title && (\r\n <h3 className=\"text-xl font-bold tracking-tight text-[var(--ui-bento-text-title)] transition-colors group-hover:text-[var(--ui-primary)] dark:group-hover:text-white\">\r\n {title}\r\n </h3>\r\n )}\r\n {description && (\r\n <p className=\"mt-2 text-sm leading-relaxed text-[var(--ui-bento-text-desc)] font-normal\">\r\n {description}\r\n </p>\r\n )}\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nBentoCard.displayName = 'BentoCard';\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/typography/Kbd.tsx"],"names":[],"mappings":";;;;AAOO,IAAM,GAAA,GAAM,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC1C,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,6OAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,GAAA,CAAI,WAAA,GAAc,KAAA","file":"chunk-EU2LPUYP.js","sourcesContent":["import React, { forwardRef } from 'react';\r\nimport { cn } from '../utils/cn';\r\n\r\nexport interface KbdProps extends React.HTMLAttributes<HTMLElement> {\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const Kbd = forwardRef<HTMLElement, KbdProps>(\r\n ({ className, children, ...props }, ref) => {\r\n return (\r\n <kbd\r\n ref={ref}\r\n className={cn(\r\n 'pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border border-[var(--ui-border-default)] bg-[var(--ui-bg-tertiary)] px-1.5 font-mono text-[10px] font-semibold text-[var(--ui-text-muted)] opacity-100 shadow-sm',\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </kbd>\r\n );\r\n }\r\n);\r\n\r\nKbd.displayName = 'Kbd';\r\n"]}
|