@thangnqdev/ui 0.1.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.
Files changed (253) hide show
  1. package/README.md +196 -0
  2. package/dist/Label-DWOlgSNW.d.cts +14 -0
  3. package/dist/Label-DWOlgSNW.d.ts +14 -0
  4. package/dist/bento/index.cjs +140 -0
  5. package/dist/bento/index.cjs.map +1 -0
  6. package/dist/bento/index.d.cts +4 -0
  7. package/dist/bento/index.d.ts +4 -0
  8. package/dist/bento/index.js +4 -0
  9. package/dist/bento/index.js.map +1 -0
  10. package/dist/bento/styles.css +46 -0
  11. package/dist/buttons/index.cjs +365 -0
  12. package/dist/buttons/index.cjs.map +1 -0
  13. package/dist/buttons/index.d.cts +4 -0
  14. package/dist/buttons/index.d.ts +4 -0
  15. package/dist/buttons/index.js +5 -0
  16. package/dist/buttons/index.js.map +1 -0
  17. package/dist/buttons/styles.css +6 -0
  18. package/dist/chunk-2OXZK6IP.js +514 -0
  19. package/dist/chunk-2OXZK6IP.js.map +1 -0
  20. package/dist/chunk-4S6L5V7X.js +15 -0
  21. package/dist/chunk-4S6L5V7X.js.map +1 -0
  22. package/dist/chunk-5FZ6ZFII.js +728 -0
  23. package/dist/chunk-5FZ6ZFII.js.map +1 -0
  24. package/dist/chunk-66VWUJEI.js +86 -0
  25. package/dist/chunk-66VWUJEI.js.map +1 -0
  26. package/dist/chunk-A7P3O5Z5.js +163 -0
  27. package/dist/chunk-A7P3O5Z5.js.map +1 -0
  28. package/dist/chunk-ATYGDTMK.js +257 -0
  29. package/dist/chunk-ATYGDTMK.js.map +1 -0
  30. package/dist/chunk-C4SUXMI3.js +138 -0
  31. package/dist/chunk-C4SUXMI3.js.map +1 -0
  32. package/dist/chunk-EU2LPUYP.js +25 -0
  33. package/dist/chunk-EU2LPUYP.js.map +1 -0
  34. package/dist/chunk-F5Q7BTMH.js +1991 -0
  35. package/dist/chunk-F5Q7BTMH.js.map +1 -0
  36. package/dist/chunk-GXI2H5XA.js +46 -0
  37. package/dist/chunk-GXI2H5XA.js.map +1 -0
  38. package/dist/chunk-H3LCNPMC.js +101 -0
  39. package/dist/chunk-H3LCNPMC.js.map +1 -0
  40. package/dist/chunk-IABPUCAQ.js +19 -0
  41. package/dist/chunk-IABPUCAQ.js.map +1 -0
  42. package/dist/chunk-KJRBRTQE.js +101 -0
  43. package/dist/chunk-KJRBRTQE.js.map +1 -0
  44. package/dist/chunk-LBUBXUYQ.js +40 -0
  45. package/dist/chunk-LBUBXUYQ.js.map +1 -0
  46. package/dist/chunk-LWFRUJRU.js +537 -0
  47. package/dist/chunk-LWFRUJRU.js.map +1 -0
  48. package/dist/chunk-NFVONJUK.js +882 -0
  49. package/dist/chunk-NFVONJUK.js.map +1 -0
  50. package/dist/chunk-PF4ZHGVW.js +284 -0
  51. package/dist/chunk-PF4ZHGVW.js.map +1 -0
  52. package/dist/chunk-WAFHC4DQ.js +366 -0
  53. package/dist/chunk-WAFHC4DQ.js.map +1 -0
  54. package/dist/chunk-X76KBH4Y.js +71 -0
  55. package/dist/chunk-X76KBH4Y.js.map +1 -0
  56. package/dist/core/index.cjs +103 -0
  57. package/dist/core/index.cjs.map +1 -0
  58. package/dist/core/index.d.cts +3 -0
  59. package/dist/core/index.d.ts +3 -0
  60. package/dist/core/index.js +4 -0
  61. package/dist/core/index.js.map +1 -0
  62. package/dist/core/styles.css +128 -0
  63. package/dist/data-display/index.cjs +1023 -0
  64. package/dist/data-display/index.cjs.map +1 -0
  65. package/dist/data-display/index.d.cts +4 -0
  66. package/dist/data-display/index.d.ts +4 -0
  67. package/dist/data-display/index.js +6 -0
  68. package/dist/data-display/index.js.map +1 -0
  69. package/dist/data-display/styles.css +4 -0
  70. package/dist/feedback/index.cjs +368 -0
  71. package/dist/feedback/index.cjs.map +1 -0
  72. package/dist/feedback/index.d.cts +4 -0
  73. package/dist/feedback/index.d.ts +4 -0
  74. package/dist/feedback/index.js +4 -0
  75. package/dist/feedback/index.js.map +1 -0
  76. package/dist/feedback/styles.css +4 -0
  77. package/dist/forms/index.cjs +2287 -0
  78. package/dist/forms/index.cjs.map +1 -0
  79. package/dist/forms/index.d.cts +5 -0
  80. package/dist/forms/index.d.ts +5 -0
  81. package/dist/forms/index.js +10 -0
  82. package/dist/forms/index.js.map +1 -0
  83. package/dist/forms/styles.css +6 -0
  84. package/dist/glass/index.cjs +165 -0
  85. package/dist/glass/index.cjs.map +1 -0
  86. package/dist/glass/index.d.cts +4 -0
  87. package/dist/glass/index.d.ts +4 -0
  88. package/dist/glass/index.js +4 -0
  89. package/dist/glass/index.js.map +1 -0
  90. package/dist/glass/styles.css +81 -0
  91. package/dist/index-BTvkbCIj.d.cts +146 -0
  92. package/dist/index-BTvkbCIj.d.ts +146 -0
  93. package/dist/index-BkRqGNG1.d.cts +201 -0
  94. package/dist/index-BkRqGNG1.d.ts +201 -0
  95. package/dist/index-BlPcGeW-.d.cts +45 -0
  96. package/dist/index-BlPcGeW-.d.ts +45 -0
  97. package/dist/index-BzOCqvC6.d.cts +32 -0
  98. package/dist/index-BzOCqvC6.d.ts +32 -0
  99. package/dist/index-CCeWYAvn.d.cts +83 -0
  100. package/dist/index-COQ7uwt9.d.cts +44 -0
  101. package/dist/index-COQ7uwt9.d.ts +44 -0
  102. package/dist/index-CenuF_P2.d.cts +221 -0
  103. package/dist/index-CenuF_P2.d.ts +221 -0
  104. package/dist/index-Cle6QzQl.d.ts +371 -0
  105. package/dist/index-D6fE7w-b.d.cts +90 -0
  106. package/dist/index-D6fE7w-b.d.ts +90 -0
  107. package/dist/index-DR8cfJUG.d.ts +83 -0
  108. package/dist/index-DzcWh1Hs.d.cts +131 -0
  109. package/dist/index-DzcWh1Hs.d.ts +131 -0
  110. package/dist/index-TyK-Ldpy.d.cts +371 -0
  111. package/dist/index-ugj5s6a3.d.cts +95 -0
  112. package/dist/index-ugj5s6a3.d.ts +95 -0
  113. package/dist/index.cjs +6400 -0
  114. package/dist/index.cjs.map +1 -0
  115. package/dist/index.d.cts +16 -0
  116. package/dist/index.d.ts +16 -0
  117. package/dist/index.js +21 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/layout/index.cjs +516 -0
  120. package/dist/layout/index.cjs.map +1 -0
  121. package/dist/layout/index.d.cts +4 -0
  122. package/dist/layout/index.d.ts +4 -0
  123. package/dist/layout/index.js +4 -0
  124. package/dist/layout/index.js.map +1 -0
  125. package/dist/layout/styles.css +8 -0
  126. package/dist/navigation/index.cjs +673 -0
  127. package/dist/navigation/index.cjs.map +1 -0
  128. package/dist/navigation/index.d.cts +2 -0
  129. package/dist/navigation/index.d.ts +2 -0
  130. package/dist/navigation/index.js +8 -0
  131. package/dist/navigation/index.js.map +1 -0
  132. package/dist/navigation/styles.css +4 -0
  133. package/dist/overlays/index.cjs +954 -0
  134. package/dist/overlays/index.cjs.map +1 -0
  135. package/dist/overlays/index.d.cts +4 -0
  136. package/dist/overlays/index.d.ts +4 -0
  137. package/dist/overlays/index.js +9 -0
  138. package/dist/overlays/index.js.map +1 -0
  139. package/dist/overlays/styles.css +8 -0
  140. package/dist/styles.css +333 -0
  141. package/dist/typography/index.cjs +311 -0
  142. package/dist/typography/index.cjs.map +1 -0
  143. package/dist/typography/index.d.cts +5 -0
  144. package/dist/typography/index.d.ts +5 -0
  145. package/dist/typography/index.js +6 -0
  146. package/dist/typography/index.js.map +1 -0
  147. package/dist/typography/styles.css +5 -0
  148. package/llms.txt +113 -0
  149. package/package.json +116 -0
  150. package/src/bento/BentoCard.tsx +140 -0
  151. package/src/bento/BentoGrid.tsx +50 -0
  152. package/src/bento/index.ts +2 -0
  153. package/src/bento/tokens.css +46 -0
  154. package/src/buttons/Button.tsx +104 -0
  155. package/src/buttons/ButtonGroup.tsx +43 -0
  156. package/src/buttons/IconButton.tsx +79 -0
  157. package/src/buttons/SplitButton.tsx +86 -0
  158. package/src/buttons/ToggleButton.tsx +157 -0
  159. package/src/buttons/index.ts +5 -0
  160. package/src/buttons/tokens.css +6 -0
  161. package/src/core/ThemeProvider.tsx +123 -0
  162. package/src/core/index.ts +2 -0
  163. package/src/core/tokens.css +128 -0
  164. package/src/data-display/Accordion.tsx +147 -0
  165. package/src/data-display/Avatar.tsx +134 -0
  166. package/src/data-display/Card.tsx +112 -0
  167. package/src/data-display/Carousel.tsx +130 -0
  168. package/src/data-display/Chip.tsx +74 -0
  169. package/src/data-display/DataTablePro.tsx +356 -0
  170. package/src/data-display/StatCard.tsx +60 -0
  171. package/src/data-display/Table.tsx +74 -0
  172. package/src/data-display/Timeline.tsx +62 -0
  173. package/src/data-display/TreeView.tsx +140 -0
  174. package/src/data-display/index.ts +10 -0
  175. package/src/data-display/tokens.css +4 -0
  176. package/src/feedback/Alert.tsx +80 -0
  177. package/src/feedback/EmptyState.tsx +45 -0
  178. package/src/feedback/ProgressBar.tsx +174 -0
  179. package/src/feedback/Skeleton.tsx +66 -0
  180. package/src/feedback/Spinner.tsx +65 -0
  181. package/src/feedback/index.ts +5 -0
  182. package/src/feedback/tokens.css +4 -0
  183. package/src/forms/Checkbox.tsx +69 -0
  184. package/src/forms/CheckboxGroup.tsx +29 -0
  185. package/src/forms/Combobox.tsx +368 -0
  186. package/src/forms/DatePicker.tsx +480 -0
  187. package/src/forms/FileUpload.tsx +222 -0
  188. package/src/forms/FormField.tsx +115 -0
  189. package/src/forms/Input.tsx +151 -0
  190. package/src/forms/MaskedInput.tsx +97 -0
  191. package/src/forms/NumberInput.tsx +248 -0
  192. package/src/forms/PasswordInput.tsx +35 -0
  193. package/src/forms/PinInput.tsx +125 -0
  194. package/src/forms/Radio.tsx +142 -0
  195. package/src/forms/RangeSlider.tsx +111 -0
  196. package/src/forms/SearchInput.tsx +34 -0
  197. package/src/forms/Select.tsx +103 -0
  198. package/src/forms/Slider.tsx +85 -0
  199. package/src/forms/Switch.tsx +95 -0
  200. package/src/forms/Textarea.tsx +114 -0
  201. package/src/forms/index.ts +18 -0
  202. package/src/forms/tokens.css +6 -0
  203. package/src/glass/GlassBadge.tsx +61 -0
  204. package/src/glass/GlassButton.tsx +59 -0
  205. package/src/glass/GlassCard.tsx +71 -0
  206. package/src/glass/index.ts +3 -0
  207. package/src/glass/tokens.css +81 -0
  208. package/src/index.ts +26 -0
  209. package/src/layout/AspectRatio.tsx +39 -0
  210. package/src/layout/Container.tsx +53 -0
  211. package/src/layout/Divider.tsx +61 -0
  212. package/src/layout/Flex.tsx +79 -0
  213. package/src/layout/Grid.tsx +124 -0
  214. package/src/layout/PageLayout.tsx +59 -0
  215. package/src/layout/ScrollArea.tsx +43 -0
  216. package/src/layout/Section.tsx +47 -0
  217. package/src/layout/Spacer.tsx +30 -0
  218. package/src/layout/Stack.tsx +88 -0
  219. package/src/layout/index.ts +10 -0
  220. package/src/layout/tokens.css +8 -0
  221. package/src/navigation/Breadcrumb.tsx +73 -0
  222. package/src/navigation/CommandPalette.tsx +142 -0
  223. package/src/navigation/DropdownMenu.tsx +160 -0
  224. package/src/navigation/Pagination.tsx +114 -0
  225. package/src/navigation/Stepper.tsx +93 -0
  226. package/src/navigation/Tabs.tsx +133 -0
  227. package/src/navigation/index.ts +6 -0
  228. package/src/navigation/tokens.css +4 -0
  229. package/src/overlays/AlertDialog.tsx +54 -0
  230. package/src/overlays/BottomSheet.tsx +123 -0
  231. package/src/overlays/ContextMenu.tsx +119 -0
  232. package/src/overlays/Drawer.tsx +145 -0
  233. package/src/overlays/FocusTrap.tsx +49 -0
  234. package/src/overlays/HoverCard.tsx +72 -0
  235. package/src/overlays/Modal.tsx +219 -0
  236. package/src/overlays/Popover.tsx +126 -0
  237. package/src/overlays/Portal.tsx +23 -0
  238. package/src/overlays/Toast.tsx +137 -0
  239. package/src/overlays/Tooltip.tsx +100 -0
  240. package/src/overlays/index.ts +11 -0
  241. package/src/overlays/tokens.css +8 -0
  242. package/src/styles/tokens.css +2 -0
  243. package/src/typography/Blockquote.tsx +32 -0
  244. package/src/typography/Code.tsx +89 -0
  245. package/src/typography/Heading.tsx +56 -0
  246. package/src/typography/Kbd.tsx +25 -0
  247. package/src/typography/Label.tsx +47 -0
  248. package/src/typography/Link.tsx +56 -0
  249. package/src/typography/Text.tsx +62 -0
  250. package/src/typography/index.ts +7 -0
  251. package/src/typography/tokens.css +5 -0
  252. package/src/utils/cn.ts +6 -0
  253. package/ui-contract.json +62 -0
@@ -0,0 +1,514 @@
1
+ import { __export, cn } from './chunk-4S6L5V7X.js';
2
+ import { forwardRef } from 'react';
3
+ import { cva } from 'class-variance-authority';
4
+ import { jsx, jsxs } from 'react/jsx-runtime';
5
+
6
+ // src/layout/index.ts
7
+ var layout_exports = {};
8
+ __export(layout_exports, {
9
+ AspectRatio: () => AspectRatio,
10
+ Container: () => Container,
11
+ Divider: () => Divider,
12
+ Flex: () => Flex,
13
+ Grid: () => Grid,
14
+ GridItem: () => GridItem,
15
+ HStack: () => HStack,
16
+ PageHeader: () => PageHeader,
17
+ PageLayout: () => PageLayout,
18
+ PageSidebar: () => PageSidebar,
19
+ ScrollArea: () => ScrollArea,
20
+ Section: () => Section,
21
+ Spacer: () => Spacer,
22
+ Stack: () => Stack,
23
+ VStack: () => VStack,
24
+ containerVariants: () => containerVariants,
25
+ dividerVariants: () => dividerVariants,
26
+ flexVariants: () => flexVariants,
27
+ gridItemVariants: () => gridItemVariants,
28
+ gridVariants: () => gridVariants,
29
+ sectionVariants: () => sectionVariants,
30
+ stackVariants: () => stackVariants
31
+ });
32
+ var containerVariants = cva("w-full mx-auto", {
33
+ variants: {
34
+ size: {
35
+ sm: "max-w-screen-sm",
36
+ md: "max-w-screen-md",
37
+ lg: "max-w-screen-lg",
38
+ xl: "max-w-screen-xl",
39
+ "2xl": "max-w-screen-2xl",
40
+ fluid: "max-w-full"
41
+ },
42
+ padding: {
43
+ none: "px-0",
44
+ sm: "px-4",
45
+ md: "px-6",
46
+ lg: "px-8 sm:px-12"
47
+ },
48
+ centered: {
49
+ true: "flex flex-col items-center justify-center",
50
+ false: ""
51
+ }
52
+ },
53
+ defaultVariants: {
54
+ size: "xl",
55
+ padding: "md",
56
+ centered: false
57
+ }
58
+ });
59
+ var Container = forwardRef(
60
+ ({ className, size, padding, centered, as: Component = "div", children, ...props }, ref) => {
61
+ return /* @__PURE__ */ jsx(
62
+ Component,
63
+ {
64
+ ref,
65
+ className: cn(containerVariants({ size, padding, centered }), className),
66
+ ...props,
67
+ children
68
+ }
69
+ );
70
+ }
71
+ );
72
+ Container.displayName = "Container";
73
+ var sectionVariants = cva("w-full relative", {
74
+ variants: {
75
+ spacing: {
76
+ none: "py-0",
77
+ sm: "py-6 md:py-8",
78
+ md: "py-12 md:py-16",
79
+ lg: "py-16 md:py-24",
80
+ xl: "py-24 md:py-32"
81
+ },
82
+ variant: {
83
+ default: "bg-transparent text-[var(--ui-text-primary)]",
84
+ subtle: "bg-[var(--ui-bg-secondary)] text-[var(--ui-text-primary)]",
85
+ surface: "bg-[var(--ui-bg-surface)] text-[var(--ui-text-primary)]",
86
+ muted: "bg-[var(--ui-bg-tertiary)] text-[var(--ui-text-primary)]"
87
+ }
88
+ },
89
+ defaultVariants: {
90
+ spacing: "md",
91
+ variant: "default"
92
+ }
93
+ });
94
+ var Section = forwardRef(
95
+ ({ className, spacing, variant, as: Component = "section", children, ...props }, ref) => {
96
+ return /* @__PURE__ */ jsx(
97
+ Component,
98
+ {
99
+ ref,
100
+ className: cn(sectionVariants({ spacing, variant }), className),
101
+ ...props,
102
+ children
103
+ }
104
+ );
105
+ }
106
+ );
107
+ Section.displayName = "Section";
108
+ var stackVariants = cva("flex", {
109
+ variants: {
110
+ direction: {
111
+ row: "flex-row",
112
+ "row-reverse": "flex-row-reverse",
113
+ column: "flex-col",
114
+ "column-reverse": "flex-col-reverse"
115
+ },
116
+ gap: {
117
+ 0: "gap-0",
118
+ 1: "gap-1",
119
+ 2: "gap-2",
120
+ 3: "gap-3",
121
+ 4: "gap-4",
122
+ 5: "gap-5",
123
+ 6: "gap-6",
124
+ 8: "gap-8",
125
+ 10: "gap-10",
126
+ 12: "gap-12"
127
+ },
128
+ align: {
129
+ start: "items-start",
130
+ center: "items-center",
131
+ end: "items-end",
132
+ stretch: "items-stretch",
133
+ baseline: "items-baseline"
134
+ },
135
+ justify: {
136
+ start: "justify-start",
137
+ center: "justify-center",
138
+ end: "justify-end",
139
+ between: "justify-between",
140
+ around: "justify-around",
141
+ evenly: "justify-evenly"
142
+ },
143
+ wrap: {
144
+ nowrap: "flex-nowrap",
145
+ wrap: "flex-wrap",
146
+ "wrap-reverse": "flex-wrap-reverse"
147
+ }
148
+ },
149
+ defaultVariants: {
150
+ direction: "column",
151
+ gap: 4,
152
+ align: "stretch",
153
+ justify: "start",
154
+ wrap: "nowrap"
155
+ }
156
+ });
157
+ var Stack = forwardRef(
158
+ ({ className, direction, gap, align, justify, wrap, as: Component = "div", children, ...props }, ref) => {
159
+ return /* @__PURE__ */ jsx(
160
+ Component,
161
+ {
162
+ ref,
163
+ className: cn(stackVariants({ direction, gap, align, justify, wrap }), className),
164
+ ...props,
165
+ children
166
+ }
167
+ );
168
+ }
169
+ );
170
+ Stack.displayName = "Stack";
171
+ var HStack = forwardRef(
172
+ ({ align = "center", ...props }, ref) => {
173
+ return /* @__PURE__ */ jsx(Stack, { ref, direction: "row", align, ...props });
174
+ }
175
+ );
176
+ HStack.displayName = "HStack";
177
+ var VStack = forwardRef(
178
+ ({ align = "stretch", ...props }, ref) => {
179
+ return /* @__PURE__ */ jsx(Stack, { ref, direction: "column", align, ...props });
180
+ }
181
+ );
182
+ VStack.displayName = "VStack";
183
+ var gridVariants = cva("grid", {
184
+ variants: {
185
+ cols: {
186
+ 1: "grid-cols-1",
187
+ 2: "grid-cols-1 sm:grid-cols-2",
188
+ 3: "grid-cols-1 sm:grid-cols-2 md:grid-cols-3",
189
+ 4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4",
190
+ 5: "grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5",
191
+ 6: "grid-cols-2 sm:grid-cols-3 lg:grid-cols-6",
192
+ 12: "grid-cols-12"
193
+ },
194
+ gap: {
195
+ 0: "gap-0",
196
+ 1: "gap-1",
197
+ 2: "gap-2",
198
+ 3: "gap-3",
199
+ 4: "gap-4",
200
+ 5: "gap-5",
201
+ 6: "gap-6",
202
+ 8: "gap-8",
203
+ 10: "gap-10",
204
+ 12: "gap-12"
205
+ },
206
+ flow: {
207
+ row: "grid-flow-row",
208
+ col: "grid-flow-col",
209
+ dense: "grid-flow-dense",
210
+ "row-dense": "grid-flow-row-dense",
211
+ "col-dense": "grid-flow-col-dense"
212
+ }
213
+ },
214
+ defaultVariants: {
215
+ cols: 1,
216
+ gap: 4,
217
+ flow: "row"
218
+ }
219
+ });
220
+ var Grid = forwardRef(
221
+ ({ className, cols, gap, flow, as: Component = "div", children, ...props }, ref) => {
222
+ return /* @__PURE__ */ jsx(
223
+ Component,
224
+ {
225
+ ref,
226
+ className: cn(gridVariants({ cols, gap, flow }), className),
227
+ ...props,
228
+ children
229
+ }
230
+ );
231
+ }
232
+ );
233
+ Grid.displayName = "Grid";
234
+ var gridItemVariants = cva("", {
235
+ variants: {
236
+ colSpan: {
237
+ 1: "col-span-1",
238
+ 2: "col-span-2",
239
+ 3: "col-span-3",
240
+ 4: "col-span-4",
241
+ 5: "col-span-5",
242
+ 6: "col-span-6",
243
+ 7: "col-span-7",
244
+ 8: "col-span-8",
245
+ 9: "col-span-9",
246
+ 10: "col-span-10",
247
+ 11: "col-span-11",
248
+ 12: "col-span-12",
249
+ full: "col-span-full"
250
+ },
251
+ rowSpan: {
252
+ 1: "row-span-1",
253
+ 2: "row-span-2",
254
+ 3: "row-span-3",
255
+ 4: "row-span-4",
256
+ 5: "row-span-5",
257
+ 6: "row-span-6",
258
+ full: "row-span-full"
259
+ },
260
+ colStart: {
261
+ 1: "col-start-1",
262
+ 2: "col-start-2",
263
+ 3: "col-start-3",
264
+ 4: "col-start-4",
265
+ 5: "col-start-5",
266
+ 6: "col-start-6",
267
+ auto: "col-start-auto"
268
+ }
269
+ },
270
+ defaultVariants: {
271
+ colSpan: 1
272
+ }
273
+ });
274
+ var GridItem = forwardRef(
275
+ ({ className, colSpan, rowSpan, colStart, as: Component = "div", children, ...props }, ref) => {
276
+ return /* @__PURE__ */ jsx(
277
+ Component,
278
+ {
279
+ ref,
280
+ className: cn(gridItemVariants({ colSpan, rowSpan, colStart }), className),
281
+ ...props,
282
+ children
283
+ }
284
+ );
285
+ }
286
+ );
287
+ GridItem.displayName = "GridItem";
288
+ var flexVariants = cva("flex", {
289
+ variants: {
290
+ direction: {
291
+ row: "flex-row",
292
+ "row-reverse": "flex-row-reverse",
293
+ column: "flex-col",
294
+ "column-reverse": "flex-col-reverse"
295
+ },
296
+ align: {
297
+ start: "items-start",
298
+ center: "items-center",
299
+ end: "items-end",
300
+ stretch: "items-stretch",
301
+ baseline: "items-baseline"
302
+ },
303
+ justify: {
304
+ start: "justify-start",
305
+ center: "justify-center",
306
+ end: "justify-end",
307
+ between: "justify-between",
308
+ around: "justify-around",
309
+ evenly: "justify-evenly"
310
+ },
311
+ wrap: {
312
+ nowrap: "flex-nowrap",
313
+ wrap: "flex-wrap",
314
+ "wrap-reverse": "flex-wrap-reverse"
315
+ },
316
+ gap: {
317
+ 0: "gap-0",
318
+ 1: "gap-1",
319
+ 2: "gap-2",
320
+ 3: "gap-3",
321
+ 4: "gap-4",
322
+ 5: "gap-5",
323
+ 6: "gap-6",
324
+ 8: "gap-8",
325
+ 10: "gap-10",
326
+ 12: "gap-12"
327
+ },
328
+ inline: {
329
+ true: "inline-flex",
330
+ false: "flex"
331
+ }
332
+ },
333
+ defaultVariants: {
334
+ direction: "row",
335
+ align: "stretch",
336
+ justify: "start",
337
+ wrap: "nowrap",
338
+ inline: false
339
+ }
340
+ });
341
+ var Flex = forwardRef(
342
+ ({ className, direction, align, justify, wrap, gap, inline, as: Component = "div", children, ...props }, ref) => {
343
+ return /* @__PURE__ */ jsx(
344
+ Component,
345
+ {
346
+ ref,
347
+ className: cn(flexVariants({ direction, align, justify, wrap, gap, inline }), className),
348
+ ...props,
349
+ children
350
+ }
351
+ );
352
+ }
353
+ );
354
+ Flex.displayName = "Flex";
355
+ var dividerVariants = cva("border-0 flex-shrink-0", {
356
+ variants: {
357
+ orientation: {
358
+ horizontal: "w-full h-px border-t border-[var(--ui-border-subtle)] my-4",
359
+ vertical: "h-full w-px border-l border-[var(--ui-border-subtle)] mx-4 inline-block align-middle self-stretch"
360
+ },
361
+ variant: {
362
+ solid: "border-solid",
363
+ dashed: "border-dashed",
364
+ dotted: "border-dotted"
365
+ }
366
+ },
367
+ defaultVariants: {
368
+ orientation: "horizontal",
369
+ variant: "solid"
370
+ }
371
+ });
372
+ var Divider = forwardRef(
373
+ ({ className, orientation = "horizontal", variant, label, children, ...props }, ref) => {
374
+ const content = label || children;
375
+ if (orientation === "horizontal" && content) {
376
+ return /* @__PURE__ */ jsxs(
377
+ "div",
378
+ {
379
+ ref,
380
+ role: "separator",
381
+ "aria-orientation": "horizontal",
382
+ className: cn("flex items-center w-full my-4 text-xs font-medium text-[var(--ui-text-muted)]", className),
383
+ ...props,
384
+ children: [
385
+ /* @__PURE__ */ jsx("div", { className: cn("flex-grow border-t border-[var(--ui-border-subtle)]", dividerVariants({ variant })) }),
386
+ /* @__PURE__ */ jsx("span", { className: "px-3 select-none", children: content }),
387
+ /* @__PURE__ */ jsx("div", { className: cn("flex-grow border-t border-[var(--ui-border-subtle)]", dividerVariants({ variant })) })
388
+ ]
389
+ }
390
+ );
391
+ }
392
+ return /* @__PURE__ */ jsx(
393
+ "div",
394
+ {
395
+ ref,
396
+ role: "separator",
397
+ "aria-orientation": orientation || "horizontal",
398
+ className: cn(dividerVariants({ orientation, variant }), className),
399
+ ...props
400
+ }
401
+ );
402
+ }
403
+ );
404
+ Divider.displayName = "Divider";
405
+ var Spacer = forwardRef(
406
+ ({ className, x, y, style, ...props }, ref) => {
407
+ const spacingStyle = {
408
+ ...style,
409
+ ...x !== void 0 && {
410
+ width: typeof x === "number" ? `${x * 0.25}rem` : x,
411
+ minWidth: typeof x === "number" ? `${x * 0.25}rem` : x
412
+ },
413
+ ...y !== void 0 && {
414
+ height: typeof y === "number" ? `${y * 0.25}rem` : y,
415
+ minHeight: typeof y === "number" ? `${y * 0.25}rem` : y
416
+ },
417
+ ...x === void 0 && y === void 0 && {
418
+ flex: "1 1 0%"
419
+ }
420
+ };
421
+ return /* @__PURE__ */ jsx("div", { ref, "aria-hidden": "true", style: spacingStyle, className: cn("pointer-events-none", className), ...props });
422
+ }
423
+ );
424
+ Spacer.displayName = "Spacer";
425
+ var AspectRatio = forwardRef(
426
+ ({ className, ratio = 16 / 9, style, children, ...props }, ref) => {
427
+ const computedRatio = typeof ratio === "string" ? ratio.split("/").map(Number).reduce((w, h) => h ? w / h : 1) : ratio;
428
+ return /* @__PURE__ */ jsx(
429
+ "div",
430
+ {
431
+ ref,
432
+ style: {
433
+ ...style,
434
+ position: "relative",
435
+ width: "100%",
436
+ paddingBottom: `${1 / computedRatio * 100}%`
437
+ },
438
+ className: cn("overflow-hidden", className),
439
+ ...props,
440
+ children: /* @__PURE__ */ jsx("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", children })
441
+ }
442
+ );
443
+ }
444
+ );
445
+ AspectRatio.displayName = "AspectRatio";
446
+ var PageLayout = forwardRef(
447
+ ({ className, header, sidebar, footer, children, sidebarWidth = "16rem", sidebarCollapsed = false, ...props }, ref) => {
448
+ return /* @__PURE__ */ jsxs("div", { ref, className: cn("min-h-screen flex flex-col bg-[var(--ui-bg-primary)] text-[var(--ui-text-primary)]", className), ...props, children: [
449
+ header && /* @__PURE__ */ jsx("header", { className: "sticky top-0 z-30 w-full border-b border-[var(--ui-border-subtle)] bg-[var(--ui-bg-surface)] backdrop-blur-md", children: header }),
450
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 flex w-full", children: [
451
+ sidebar && /* @__PURE__ */ jsx(
452
+ "aside",
453
+ {
454
+ style: { width: sidebarCollapsed ? "4rem" : sidebarWidth },
455
+ 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",
456
+ children: sidebar
457
+ }
458
+ ),
459
+ /* @__PURE__ */ jsxs("main", { className: "flex-1 flex flex-col min-w-0 overflow-y-auto", children: [
460
+ /* @__PURE__ */ jsx("div", { className: "flex-1 p-4 md:p-6 lg:p-8", children }),
461
+ footer && /* @__PURE__ */ jsx("footer", { className: "border-t border-[var(--ui-border-subtle)] bg-[var(--ui-bg-surface)] p-4 md:p-6", children: footer })
462
+ ] })
463
+ ] })
464
+ ] });
465
+ }
466
+ );
467
+ PageLayout.displayName = "PageLayout";
468
+ var PageHeader = forwardRef(
469
+ ({ className, children, ...props }, ref) => {
470
+ return /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center justify-between h-16 px-4 md:px-6 w-full", className), ...props, children });
471
+ }
472
+ );
473
+ PageHeader.displayName = "PageHeader";
474
+ var PageSidebar = forwardRef(
475
+ ({ className, children, ...props }, ref) => {
476
+ return /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col h-full p-4 overflow-y-auto", className), ...props, children });
477
+ }
478
+ );
479
+ PageSidebar.displayName = "PageSidebar";
480
+ var ScrollArea = forwardRef(
481
+ ({
482
+ maxHeight = "100%",
483
+ orientation = "vertical",
484
+ hideScrollbar = false,
485
+ children,
486
+ className,
487
+ style,
488
+ ...props
489
+ }, ref) => {
490
+ return /* @__PURE__ */ jsx(
491
+ "div",
492
+ {
493
+ ref,
494
+ style: { maxHeight, ...style },
495
+ className: cn(
496
+ "relative w-full overflow-auto",
497
+ orientation === "vertical" && "overflow-y-auto overflow-x-hidden",
498
+ orientation === "horizontal" && "overflow-x-auto overflow-y-hidden",
499
+ orientation === "both" && "overflow-auto",
500
+ hideScrollbar && "[scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden",
501
+ !hideScrollbar && "[scrollbar-width:thin] [scrollbar-color:rgba(150,150,160,0.3)_transparent]",
502
+ className
503
+ ),
504
+ ...props,
505
+ children
506
+ }
507
+ );
508
+ }
509
+ );
510
+ ScrollArea.displayName = "ScrollArea";
511
+
512
+ export { AspectRatio, Container, Divider, Flex, Grid, GridItem, HStack, PageHeader, PageLayout, PageSidebar, ScrollArea, Section, Spacer, Stack, VStack, containerVariants, dividerVariants, flexVariants, gridItemVariants, gridVariants, layout_exports, sectionVariants, stackVariants };
513
+ //# sourceMappingURL=chunk-2OXZK6IP.js.map
514
+ //# sourceMappingURL=chunk-2OXZK6IP.js.map
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,15 @@
1
+ import { clsx } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ function cn(...inputs) {
10
+ return twMerge(clsx(inputs));
11
+ }
12
+
13
+ export { __export, cn };
14
+ //# sourceMappingURL=chunk-4S6L5V7X.js.map
15
+ //# sourceMappingURL=chunk-4S6L5V7X.js.map
@@ -0,0 +1 @@
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"]}