@alkimi.org/ui-kit 0.1.29 → 0.2.30

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 (173) hide show
  1. package/README.github.md +132 -27
  2. package/README.md +130 -18
  3. package/README.npm.md +130 -18
  4. package/dist/chunk-27WVO6KF.js +3 -0
  5. package/dist/chunk-27WVO6KF.js.map +1 -0
  6. package/dist/chunk-2YRLGFWP.mjs +3 -0
  7. package/dist/chunk-2YRLGFWP.mjs.map +1 -0
  8. package/dist/chunk-372VUZFE.js +6 -0
  9. package/dist/chunk-372VUZFE.js.map +1 -0
  10. package/dist/chunk-4LUOGI24.mjs +6 -0
  11. package/dist/chunk-4LUOGI24.mjs.map +1 -0
  12. package/dist/chunk-752ERCMU.js +3 -0
  13. package/dist/chunk-752ERCMU.js.map +1 -0
  14. package/dist/chunk-ALULX4FP.js +3 -0
  15. package/dist/chunk-ALULX4FP.js.map +1 -0
  16. package/dist/chunk-B7XXLTYN.js +3 -0
  17. package/dist/chunk-B7XXLTYN.js.map +1 -0
  18. package/dist/chunk-BB3WNO72.mjs +3 -0
  19. package/dist/chunk-BB3WNO72.mjs.map +1 -0
  20. package/dist/{chunk-FLYTIYNE.js → chunk-BENG4LHZ.js} +2 -2
  21. package/dist/{chunk-FLYTIYNE.js.map → chunk-BENG4LHZ.js.map} +1 -1
  22. package/dist/chunk-CT2CRYC2.js +3 -0
  23. package/dist/chunk-CT2CRYC2.js.map +1 -0
  24. package/dist/chunk-DMHIFNXF.mjs +3 -0
  25. package/dist/chunk-DMHIFNXF.mjs.map +1 -0
  26. package/dist/{chunk-ULRJYLR3.mjs → chunk-EMGXHXG7.mjs} +2 -2
  27. package/dist/chunk-EMGXHXG7.mjs.map +1 -0
  28. package/dist/chunk-FINC3UAQ.mjs +3 -0
  29. package/dist/chunk-FINC3UAQ.mjs.map +1 -0
  30. package/dist/chunk-GOZDJRUZ.mjs +3 -0
  31. package/dist/chunk-GOZDJRUZ.mjs.map +1 -0
  32. package/dist/chunk-HPJEH5QX.mjs +3 -0
  33. package/dist/chunk-HPJEH5QX.mjs.map +1 -0
  34. package/dist/chunk-IFTA7LUP.mjs +3 -0
  35. package/dist/chunk-IFTA7LUP.mjs.map +1 -0
  36. package/dist/chunk-JFYW77F4.mjs +3 -0
  37. package/dist/chunk-JFYW77F4.mjs.map +1 -0
  38. package/dist/chunk-L36V45FD.mjs +3 -0
  39. package/dist/chunk-L36V45FD.mjs.map +1 -0
  40. package/dist/chunk-QBFPE5EO.js +3 -0
  41. package/dist/chunk-QBFPE5EO.js.map +1 -0
  42. package/dist/chunk-QDJM5EVM.js +3 -0
  43. package/dist/{chunk-SIGGW2CQ.js.map → chunk-QDJM5EVM.js.map} +1 -1
  44. package/dist/chunk-QKOZTOYU.js +3 -0
  45. package/dist/chunk-QKOZTOYU.js.map +1 -0
  46. package/dist/chunk-RWCTSJUM.js +3 -0
  47. package/dist/chunk-RWCTSJUM.js.map +1 -0
  48. package/dist/chunk-XIYQ5UXO.mjs +3 -0
  49. package/dist/chunk-XIYQ5UXO.mjs.map +1 -0
  50. package/dist/chunk-ZF6PO6PJ.js +3 -0
  51. package/dist/chunk-ZF6PO6PJ.js.map +1 -0
  52. package/dist/components/GeometricFluidGrid.d.mts +4 -1
  53. package/dist/components/GeometricFluidGrid.d.ts +4 -1
  54. package/dist/components/GeometricFluidGrid.js +1 -1
  55. package/dist/components/GeometricFluidGrid.mjs +1 -1
  56. package/dist/components/TextDecoder.js +1 -1
  57. package/dist/components/TextDecoder.mjs +1 -1
  58. package/dist/components/avatar.d.mts +30 -0
  59. package/dist/components/avatar.d.ts +30 -0
  60. package/dist/components/avatar.js +3 -0
  61. package/dist/components/avatar.js.map +1 -0
  62. package/dist/components/avatar.mjs +3 -0
  63. package/dist/components/avatar.mjs.map +1 -0
  64. package/dist/components/breadcrumb.d.mts +22 -0
  65. package/dist/components/breadcrumb.d.ts +22 -0
  66. package/dist/components/breadcrumb.js +3 -0
  67. package/dist/components/breadcrumb.js.map +1 -0
  68. package/dist/components/breadcrumb.mjs +3 -0
  69. package/dist/components/breadcrumb.mjs.map +1 -0
  70. package/dist/components/button.js +1 -1
  71. package/dist/components/button.mjs +1 -1
  72. package/dist/components/card.js +1 -1
  73. package/dist/components/card.js.map +1 -1
  74. package/dist/components/card.mjs +1 -1
  75. package/dist/components/card.mjs.map +1 -1
  76. package/dist/components/checkbox.d.mts +6 -0
  77. package/dist/components/checkbox.d.ts +6 -0
  78. package/dist/components/checkbox.js +3 -0
  79. package/dist/components/checkbox.js.map +1 -0
  80. package/dist/components/checkbox.mjs +3 -0
  81. package/dist/components/checkbox.mjs.map +1 -0
  82. package/dist/components/dropdown-menu.d.mts +30 -0
  83. package/dist/components/dropdown-menu.d.ts +30 -0
  84. package/dist/components/dropdown-menu.js +3 -0
  85. package/dist/components/dropdown-menu.js.map +1 -0
  86. package/dist/components/dropdown-menu.mjs +3 -0
  87. package/dist/components/dropdown-menu.mjs.map +1 -0
  88. package/dist/components/field.d.mts +14 -0
  89. package/dist/components/field.d.ts +14 -0
  90. package/dist/components/field.js +3 -0
  91. package/dist/components/field.js.map +1 -0
  92. package/dist/components/field.mjs +3 -0
  93. package/dist/components/field.mjs.map +1 -0
  94. package/dist/components/input.d.mts +1 -0
  95. package/dist/components/input.d.ts +1 -0
  96. package/dist/components/input.js +1 -1
  97. package/dist/components/input.mjs +1 -1
  98. package/dist/components/label.d.mts +7 -0
  99. package/dist/components/label.d.ts +7 -0
  100. package/dist/components/label.js +3 -0
  101. package/dist/components/label.js.map +1 -0
  102. package/dist/components/label.mjs +3 -0
  103. package/dist/components/label.mjs.map +1 -0
  104. package/dist/components/progress.d.mts +6 -0
  105. package/dist/components/progress.d.ts +6 -0
  106. package/dist/components/progress.js +3 -0
  107. package/dist/components/progress.js.map +1 -0
  108. package/dist/components/progress.mjs +3 -0
  109. package/dist/components/progress.mjs.map +1 -0
  110. package/dist/components/sheet.js +1 -1
  111. package/dist/components/sheet.mjs +1 -1
  112. package/dist/components/sidebar.js +1 -1
  113. package/dist/components/sidebar.mjs +1 -1
  114. package/dist/components/slider.d.mts +7 -0
  115. package/dist/components/slider.d.ts +7 -0
  116. package/dist/components/slider.js +3 -0
  117. package/dist/components/slider.js.map +1 -0
  118. package/dist/components/slider.mjs +3 -0
  119. package/dist/components/slider.mjs.map +1 -0
  120. package/dist/components/switch.d.mts +6 -0
  121. package/dist/components/switch.d.ts +6 -0
  122. package/dist/components/switch.js +3 -0
  123. package/dist/components/switch.js.map +1 -0
  124. package/dist/components/switch.mjs +3 -0
  125. package/dist/components/switch.mjs.map +1 -0
  126. package/dist/components/table.d.mts +17 -0
  127. package/dist/components/table.d.ts +17 -0
  128. package/dist/components/table.js +3 -0
  129. package/dist/components/table.js.map +1 -0
  130. package/dist/components/table.mjs +3 -0
  131. package/dist/components/table.mjs.map +1 -0
  132. package/dist/components/tabs.js +1 -1
  133. package/dist/components/tabs.mjs +1 -1
  134. package/dist/components/tooltip.js +1 -1
  135. package/dist/components/tooltip.mjs +1 -1
  136. package/dist/index.css +1 -1
  137. package/dist/index.css.map +1 -1
  138. package/dist/index.d.mts +7 -1
  139. package/dist/index.d.ts +7 -1
  140. package/dist/index.js +1 -1
  141. package/dist/index.js.map +1 -1
  142. package/dist/index.mjs +1 -1
  143. package/dist/styles.css +1 -1
  144. package/dist/styles.css.map +1 -1
  145. package/package.json +7 -1
  146. package/dist/chunk-272GUG6E.mjs +0 -3
  147. package/dist/chunk-272GUG6E.mjs.map +0 -1
  148. package/dist/chunk-6BEVEBGO.mjs +0 -3
  149. package/dist/chunk-6BEVEBGO.mjs.map +0 -1
  150. package/dist/chunk-73BUNE7H.mjs +0 -3
  151. package/dist/chunk-73BUNE7H.mjs.map +0 -1
  152. package/dist/chunk-C5AZO7RU.js +0 -3
  153. package/dist/chunk-C5AZO7RU.js.map +0 -1
  154. package/dist/chunk-JK6CQDLQ.mjs +0 -3
  155. package/dist/chunk-JK6CQDLQ.mjs.map +0 -1
  156. package/dist/chunk-MDYLQCAS.js +0 -3
  157. package/dist/chunk-MDYLQCAS.js.map +0 -1
  158. package/dist/chunk-MLULTZDS.js +0 -3
  159. package/dist/chunk-MLULTZDS.js.map +0 -1
  160. package/dist/chunk-MWLPAT6M.mjs +0 -3
  161. package/dist/chunk-MWLPAT6M.mjs.map +0 -1
  162. package/dist/chunk-NKYU43T6.js +0 -3
  163. package/dist/chunk-NKYU43T6.js.map +0 -1
  164. package/dist/chunk-PY6WBMT2.mjs +0 -3
  165. package/dist/chunk-PY6WBMT2.mjs.map +0 -1
  166. package/dist/chunk-QZ2ZUF7Q.js +0 -3
  167. package/dist/chunk-QZ2ZUF7Q.js.map +0 -1
  168. package/dist/chunk-RTHCEJYC.mjs +0 -3
  169. package/dist/chunk-RTHCEJYC.mjs.map +0 -1
  170. package/dist/chunk-SIGGW2CQ.js +0 -3
  171. package/dist/chunk-ULRJYLR3.mjs.map +0 -1
  172. package/dist/chunk-YU4OSBML.js +0 -3
  173. package/dist/chunk-YU4OSBML.js.map +0 -1
package/README.npm.md CHANGED
@@ -64,19 +64,50 @@ Create your `globals.css`:
64
64
 
65
65
  /* Optional: Override library CSS variables */
66
66
  :root {
67
- /* Example: Custom primary color */
67
+ /* Base color variables */
68
+ --background: oklch(0.992 0.019 155.826);
69
+ --foreground: oklch(0.205 0 0);
68
70
  --primary: oklch(0.992 0.019 155.826);
69
71
  --primary-foreground: oklch(0.205 0 0);
72
+ --secondary: oklch(0.269 0 0);
73
+ --secondary-foreground: oklch(0.992 0.019 155.826);
74
+ --muted: oklch(0.269 0 0);
75
+ --muted-foreground: oklch(0.608 0 0);
76
+ --accent: oklch(0.269 0 0);
77
+ --accent-foreground: oklch(0.992 0.019 155.826);
78
+ --destructive: oklch(0.576 0.214 25.467);
79
+ --destructive-foreground: oklch(0.992 0.019 155.826);
80
+ --border: #3f3f46;
81
+ --input: #3f3f46;
82
+ --ring: oklch(0.992 0.019 155.826);
83
+ --radius: 0.625rem;
70
84
 
71
- /* You can override any of these variables:
72
- --secondary, --secondary-foreground
73
- --background, --foreground
74
- --muted, --muted-foreground
75
- --accent, --accent-foreground
76
- --destructive, --destructive-foreground
77
- --border, --input, --ring
78
- --radius (border radius)
79
- */
85
+ /* Component-specific variables (optional - default to base variables) */
86
+ /* Override these to customize individual components independently */
87
+ --sidebar: var(--background);
88
+ --sidebar-foreground: var(--primary-accent);
89
+ --sidebar-accent: var(--base-accent);
90
+ --sidebar-accent-foreground: var(--base-accent-foreground);
91
+ --sidebar-border: var(--border);
92
+ --sidebar-ring: var(--ring);
93
+
94
+ --card: var(--background);
95
+ --card-foreground: var(--primary-accent);
96
+
97
+ --popover: var(--background);
98
+ --popover-foreground: var(--primary-accent);
99
+
100
+ --dialog: var(--background);
101
+ --dialog-foreground: var(--foreground);
102
+
103
+ --sheet: var(--background);
104
+ --sheet-foreground: var(--foreground);
105
+
106
+ --tooltip: var(--background);
107
+ --tooltip-foreground: var(--primary-accent);
108
+
109
+ --dropdown-menu: var(--background);
110
+ --dropdown-menu-foreground: var(--primary-accent);
80
111
  }
81
112
  ```
82
113
 
@@ -144,20 +175,20 @@ Create your `globals.css`:
144
175
 
145
176
  /* REQUIRED: Define ALL CSS variables the library needs */
146
177
  :root {
178
+ /* Base color variables */
147
179
  --background: oklch(0.992 0.019 155.826);
148
180
  --foreground: oklch(0.205 0 0);
149
- --card: oklch(0.992 0.019 155.826);
150
- --card-foreground: oklch(0.205 0 0);
151
- --popover: oklch(0.992 0.019 155.826);
152
- --popover-foreground: oklch(0.205 0 0);
153
181
  --primary: oklch(0.992 0.019 155.826);
154
182
  --primary-foreground: oklch(0.205 0 0);
183
+ --primary-accent: oklch(0.992 0.019 155.826);
155
184
  --secondary: oklch(0.269 0 0);
156
185
  --secondary-foreground: oklch(0.992 0.019 155.826);
157
186
  --muted: oklch(0.269 0 0);
158
187
  --muted-foreground: oklch(0.608 0 0);
159
188
  --accent: oklch(0.269 0 0);
160
189
  --accent-foreground: oklch(0.992 0.019 155.826);
190
+ --base-accent: oklch(0.269 0 0);
191
+ --base-accent-foreground: oklch(0.992 0.019 155.826);
161
192
  --destructive: oklch(0.576 0.214 25.467);
162
193
  --destructive-foreground: oklch(0.992 0.019 155.826);
163
194
  --border: #3f3f46;
@@ -165,6 +196,34 @@ Create your `globals.css`:
165
196
  --ring: oklch(0.992 0.019 155.826);
166
197
  --radius: 0.625rem;
167
198
  --font-family: "Helvetica Now Display", "Helvetica", sans-serif;
199
+
200
+ /* Component-specific variables (default to base variables, can be overridden) */
201
+ --sidebar: var(--background);
202
+ --sidebar-foreground: var(--primary-accent);
203
+ --sidebar-primary: var(--primary-accent);
204
+ --sidebar-primary-foreground: var(--primary-foreground);
205
+ --sidebar-accent: var(--base-accent);
206
+ --sidebar-accent-foreground: var(--base-accent-foreground);
207
+ --sidebar-border: var(--border);
208
+ --sidebar-ring: var(--ring);
209
+
210
+ --card: var(--background);
211
+ --card-foreground: var(--primary-accent);
212
+
213
+ --popover: var(--background);
214
+ --popover-foreground: var(--primary-accent);
215
+
216
+ --dialog: var(--background);
217
+ --dialog-foreground: var(--foreground);
218
+
219
+ --sheet: var(--background);
220
+ --sheet-foreground: var(--foreground);
221
+
222
+ --tooltip: var(--background);
223
+ --tooltip-foreground: var(--primary-accent);
224
+
225
+ --dropdown-menu: var(--background);
226
+ --dropdown-menu-foreground: var(--primary-accent);
168
227
  }
169
228
 
170
229
  body {
@@ -188,6 +247,56 @@ body {
188
247
 
189
248
  ---
190
249
 
250
+ ## Customizing Component Colors
251
+
252
+ The library supports **component-specific color customization**. By default, all components use base color variables, but you can override individual component colors independently.
253
+
254
+ ### How It Works
255
+
256
+ Component-specific variables (like `--sidebar`, `--card`, `--popover`, etc.) default to base variables but can be overridden:
257
+
258
+ ```css
259
+ :root {
260
+ /* Base colors */
261
+ --background: oklch(0.992 0.019 155.826);
262
+ --primary-accent: oklch(0.992 0.019 155.826);
263
+
264
+ /* Override just the sidebar color */
265
+ --sidebar: oklch(0.2 0.05 200); /* Custom sidebar background */
266
+ --sidebar-foreground: oklch(0.9 0.02 150); /* Custom sidebar text */
267
+
268
+ /* Override card independently */
269
+ --card: oklch(0.95 0.02 150);
270
+ --card-foreground: oklch(0.1 0.05 200);
271
+
272
+ /* All other components still use --background */
273
+ }
274
+ ```
275
+
276
+ ### Available Component Variables
277
+
278
+ - **Sidebar**: `--sidebar`, `--sidebar-foreground`, `--sidebar-accent`, `--sidebar-accent-foreground`, `--sidebar-border`, `--sidebar-ring`
279
+ - **Card**: `--card`, `--card-foreground`
280
+ - **Popover**: `--popover`, `--popover-foreground`
281
+ - **Dialog**: `--dialog`, `--dialog-foreground`
282
+ - **Sheet**: `--sheet`, `--sheet-foreground`
283
+ - **Tooltip**: `--tooltip`, `--tooltip-foreground`
284
+ - **Dropdown Menu**: `--dropdown-menu`, `--dropdown-menu-foreground`
285
+
286
+ ### Example: Custom Sidebar Theme
287
+
288
+ ```css
289
+ :root {
290
+ /* Custom sidebar with different colors */
291
+ --sidebar: oklch(0.15 0.05 250); /* Dark blue sidebar */
292
+ --sidebar-foreground: oklch(0.95 0.02 150); /* Light text */
293
+ --sidebar-accent: oklch(0.25 0.08 250); /* Hover state */
294
+ --sidebar-accent-foreground: oklch(0.98 0.01 150);
295
+ }
296
+ ```
297
+
298
+ ---
299
+
191
300
  ## Typography & Sizing
192
301
 
193
302
  ### Default Font
@@ -267,9 +376,7 @@ function App() {
267
376
  <SidebarHeader showTrigger>
268
377
  <h2>My App</h2>
269
378
  </SidebarHeader>
270
- <SidebarContent>
271
- {/* Your sidebar content */}
272
- </SidebarContent>
379
+ <SidebarContent>{/* Your sidebar content */}</SidebarContent>
273
380
  </Sidebar>
274
381
  <SidebarInset>
275
382
  <header>
@@ -290,6 +397,7 @@ function App() {
290
397
  Wraps your entire layout and provides sidebar context.
291
398
 
292
399
  **Props:**
400
+
293
401
  - `defaultOpen?: boolean` - Initial sidebar state (default: `true`)
294
402
  - `open?: boolean` - Controlled sidebar state
295
403
  - `onOpenChange?: (open: boolean) => void` - Callback when sidebar state changes
@@ -299,6 +407,7 @@ Wraps your entire layout and provides sidebar context.
299
407
  The main sidebar container.
300
408
 
301
409
  **Props:**
410
+
302
411
  - `side?: "left" | "right"` - Sidebar position (default: `"left"`)
303
412
  - `variant?: "sidebar" | "floating" | "inset"` - Visual style (default: `"sidebar"`)
304
413
  - `collapsible?: "offcanvas" | "icon" | "none"` - Collapse behavior (default: `"offcanvas"`)
@@ -311,6 +420,7 @@ The main sidebar container.
311
420
  Header section of the sidebar.
312
421
 
313
422
  **Props:**
423
+
314
424
  - `showTrigger?: boolean` - Show toggle button in header (default: `false`)
315
425
 
316
426
  ##### SidebarContent
@@ -343,7 +453,7 @@ import {
343
453
  SidebarGroupContent,
344
454
  } from "@alkimi.org/ui-kit"
345
455
 
346
- <SidebarGroup>
456
+ ;<SidebarGroup>
347
457
  <SidebarGroupLabel>Navigation</SidebarGroupLabel>
348
458
  <SidebarGroupContent>
349
459
  <SidebarMenu>
@@ -359,6 +469,7 @@ import {
359
469
  ```
360
470
 
361
471
  **Available Components:**
472
+
362
473
  - `SidebarGroup` - Groups related menu items
363
474
  - `SidebarGroupLabel` - Label for a group
364
475
  - `SidebarGroupContent` - Container for group items
@@ -406,6 +517,7 @@ function MyComponent() {
406
517
  ```
407
518
 
408
519
  **Returns:**
520
+
409
521
  - `state: "expanded" | "collapsed"` - Current sidebar state
410
522
  - `open: boolean` - Whether sidebar is open (desktop)
411
523
  - `setOpen: (open: boolean) => void` - Set sidebar state
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
2
+ var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var d = _interopRequireWildcard(_react);var _reactdropdownmenu = require('@radix-ui/react-dropdown-menu'); var e = _interopRequireWildcard(_reactdropdownmenu);var _lucidereact = require('lucide-react');var _jsxruntime = require('react/jsx-runtime');var g=e.Root,N= exports.b =e.Trigger,C= exports.c =e.Group,x= exports.d =e.Portal,I= exports.e =e.Sub,S= exports.f =e.RadioGroup,c= exports.g =d.forwardRef(({className:o,inset:t,children:n,...r},m)=>_jsxruntime.jsxs.call(void 0, e.SubTrigger,{ref:m,className:_chunkFUYXCJOQjs.a.call(void 0, "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-secondary data-[state=open]:bg-secondary",t&&"pl-8",o),...r,children:[n,_jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight,{className:"ml-auto h-4 w-4"})]}));c.displayName=e.SubTrigger.displayName;var f=d.forwardRef(({className:o,...t},n)=>_jsxruntime.jsx.call(void 0, e.SubContent,{ref:n,className:_chunkFUYXCJOQjs.a.call(void 0, "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-dropdown-menu p-1 text-dropdown-menu-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",o),...t}));f.displayName=e.SubContent.displayName;var w=d.forwardRef(({className:o,sideOffset:t=4,...n},r)=>_jsxruntime.jsx.call(void 0, e.Portal,{children:_jsxruntime.jsx.call(void 0, e.Content,{ref:r,sideOffset:t,className:_chunkFUYXCJOQjs.a.call(void 0, "z-50 min-w-[8rem] overflow-hidden rounded-xl border border-border bg-dropdown-menu p-1 text-dropdown-menu-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",o),...n})}));w.displayName=e.Content.displayName;var M=d.forwardRef(({className:o,inset:t,...n},r)=>_jsxruntime.jsx.call(void 0, e.Item,{ref:r,className:_chunkFUYXCJOQjs.a.call(void 0, "relative flex cursor-pointer select-none items-center rounded-sm p-2 text-sm outline-none transition-colors focus:bg-secondary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",o),...n}));M.displayName=e.Item.displayName;var D=d.forwardRef(({className:o,children:t,checked:n,...r},m)=>_jsxruntime.jsxs.call(void 0, e.CheckboxItem,{ref:m,className:_chunkFUYXCJOQjs.a.call(void 0, "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-secondary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",o),checked:n,...r,children:[_jsxruntime.jsx.call(void 0, "span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:_jsxruntime.jsx.call(void 0, e.ItemIndicator,{children:_jsxruntime.jsx.call(void 0, _lucidereact.Check,{className:"h-4 w-4"})})}),t]}));D.displayName=e.CheckboxItem.displayName;var P=d.forwardRef(({className:o,children:t,...n},r)=>_jsxruntime.jsxs.call(void 0, e.RadioItem,{ref:r,className:_chunkFUYXCJOQjs.a.call(void 0, "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-secondary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",o),...n,children:[_jsxruntime.jsx.call(void 0, "span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:_jsxruntime.jsx.call(void 0, e.ItemIndicator,{children:_jsxruntime.jsx.call(void 0, _lucidereact.Circle,{className:"h-2 w-2 fill-current"})})}),t]}));P.displayName=e.RadioItem.displayName;var R=d.forwardRef(({className:o,inset:t,...n},r)=>_jsxruntime.jsx.call(void 0, e.Label,{ref:r,className:_chunkFUYXCJOQjs.a.call(void 0, "px-2 py-1.5 text-sm font-semibold",t&&"pl-8",o),...n}));R.displayName=e.Label.displayName;var v=d.forwardRef(({className:o,...t},n)=>_jsxruntime.jsx.call(void 0, e.Separator,{ref:n,className:_chunkFUYXCJOQjs.a.call(void 0, "-mx-1 my-1 h-px bg-muted",o),...t}));v.displayName=e.Separator.displayName;var b=({className:o,...t})=>_jsxruntime.jsx.call(void 0, "span",{className:_chunkFUYXCJOQjs.a.call(void 0, "ml-auto text-xs tracking-widest opacity-60",o),...t});b.displayName="DropdownMenuShortcut";exports.a = g; exports.b = N; exports.c = C; exports.d = x; exports.e = I; exports.f = S; exports.g = c; exports.h = f; exports.i = w; exports.j = M; exports.k = D; exports.l = P; exports.m = R; exports.n = v; exports.o = b;
3
+ //# sourceMappingURL=chunk-27WVO6KF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-27WVO6KF.js","../src/components/dropdown-menu.tsx"],"names":["DropdownMenu","DropdownMenuTrigger","DropdownMenuGroup","DropdownMenuPortal","DropdownMenuSub","DropdownMenuRadioGroup","DropdownMenuSubTrigger","className","inset","children","props","ref","jsxs","cn","jsx","ChevronRight","DropdownMenuSubContent","DropdownMenuContent","sideOffset","DropdownMenuItem","DropdownMenuCheckboxItem","checked","Check","DropdownMenuRadioItem","Circle","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut"],"mappings":"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","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-27WVO6KF.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-secondary data-[state=open]:bg-secondary\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n))\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-dropdown-menu p-1 text-dropdown-menu-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-xl border border-border bg-dropdown-menu p-1 text-dropdown-menu-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n))\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-pointer select-none items-center rounded-sm p-2 text-sm outline-none transition-colors focus:bg-secondary data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-secondary data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n))\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-secondary data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n))\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n )\n}\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\"\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n"]}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{a as n}from"./chunk-S5TKCF6T.mjs";import*as a from"react";import{Slot as l}from"@radix-ui/react-slot";import{cva as p}from"class-variance-authority";import{jsx as o,jsxs as b}from"react/jsx-runtime";var m=p("inline-flex items-center cursor-pointer justify-center whitespace-nowrap rounded-4xl font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary-accent text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive hover:bg-destructive/90",outline:"border border-input hover:bg-base-accent text-primary-accent",secondary:"bg-muted text-primary-accent hover:bg-muted/20",ghost:"hover:bg-base-accent text-primary-accent",link:"text-primary-accent underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 text-sm",sm:"h-8 text-xs px-3 py-2",lg:"h-10 px-8 py-2 text-sm",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),f=a.forwardRef(({className:i,variant:s,size:c,asChild:d=!1,loading:e=!1,icon:r,...t},u)=>b(d?l:"button",{className:n(m({variant:s,size:c,className:i})),ref:u,disabled:e||t.disabled,...t,children:[e&&o("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border border-primary-foreground border-t-transparent"}),!e&&r&&o("span",{className:"mr-2",children:r}),t.children]}));f.displayName="Button";export{m as a,f as b};
3
+ //# sourceMappingURL=chunk-2YRLGFWP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center cursor-pointer justify-center whitespace-nowrap rounded-4xl font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary-accent text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive hover:bg-destructive/90\",\n outline: \"border border-input hover:bg-base-accent text-primary-accent\",\n secondary: \"bg-muted text-primary-accent hover:bg-muted/20\",\n ghost: \"hover:bg-base-accent text-primary-accent\",\n link: \"text-primary-accent underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 text-sm\",\n sm: \"h-8 text-xs px-3 py-2\",\n lg: \"h-10 px-8 py-2 text-sm\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n loading?: boolean\n icon?: React.ReactNode\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n asChild = false,\n loading = false,\n icon,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n disabled={loading || props.disabled}\n {...props}\n >\n {loading && (\n <div className=\"mr-2 h-4 w-4 animate-spin rounded-full border border-primary-foreground border-t-transparent\" />\n )}\n {!loading && icon && <span className=\"mr-2\">{icon}</span>}\n {props.children}\n </Comp>\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n"],"mappings":";yCAAA,UAAYA,MAAW,QACvB,OAAS,QAAAC,MAAY,uBACrB,OAAS,OAAAC,MAA8B,2BAuDjC,OAOI,OAAAC,EAPJ,QAAAC,MAAA,oBAnDN,IAAMC,EAAiBC,EACrB,iSACA,CACE,SAAU,CACR,QAAS,CACP,QACE,gEACF,YAAa,yCACb,QAAS,+DACT,UAAW,iDACX,MAAO,2CACP,KAAM,wDACR,EACA,KAAM,CACJ,QAAS,wBACT,GAAI,wBACJ,GAAI,yBACJ,KAAM,SACR,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,CACF,EAWMC,EAAe,aACnB,CACE,CACE,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,GACV,QAAAC,EAAU,GACV,KAAAC,EACA,GAAGC,CACL,EACAC,IAIEX,EAFWO,EAAUK,EAAO,SAE3B,CACC,UAAWC,EAAGZ,EAAe,CAAE,QAAAI,EAAS,KAAAC,EAAM,UAAAF,CAAU,CAAC,CAAC,EAC1D,IAAKO,EACL,SAAUH,GAAWE,EAAM,SAC1B,GAAGA,EAEH,UAAAF,GACCT,EAAC,OAAI,UAAU,+FAA+F,EAE/G,CAACS,GAAWC,GAAQV,EAAC,QAAK,UAAU,OAAQ,SAAAU,EAAK,EACjDC,EAAM,UACT,CAGN,EACAP,EAAO,YAAc","names":["React","Slot","cva","jsx","jsxs","buttonVariants","cva","Button","className","variant","size","asChild","loading","icon","props","ref","Slot","cn"]}
@@ -0,0 +1,6 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
2
+ var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var n = _interopRequireWildcard(_react);var _reactavatar = require('@radix-ui/react-avatar'); var o = _interopRequireWildcard(_reactavatar);var _jsxruntime = require('react/jsx-runtime');var d=(a="default")=>{let t=a.startsWith("0x")?a.slice(2):a,e=2246822507,s=3266489909,l=668265263,r=3735928559,i=1103547991;for(let c=0;c<t.length;c++){let m=t.charCodeAt(c);r=Math.imul(r^m,e),r=r<<13|r>>>19,i=Math.imul(i^m,s),i=i<<17|i>>>15}return r^=r>>>16,r=Math.imul(r,l),i^=i>>>13,i=Math.imul(i,e),{h1:Math.abs(r),h2:Math.abs(i)}},p= exports.a =(a="default")=>{let{h1:t,h2:e}=d(a),s=t%360,l=(s+120+e%120)%360,r=70+(t>>4)%30,i=70+(e>>4)%30,c=50+(t>>8)%15,m=50+(e>>8)%15,u=`hsl(${s}, ${r}%, ${c}%)`,v=`hsl(${l}, ${i}%, ${m}%)`;return{backgroundColor:"#F8F8F8",backgroundImage:`
3
+ radial-gradient(at 0% 0%, ${u} 0%, transparent 80%),
4
+ radial-gradient(at 100% 100%, ${v} 0%, transparent 80%)
5
+ `}},b= exports.b =(a="default")=>{let{h1:t}=d(a),e=t%360,s=70+(t>>4)%30,l=50+(t>>8)%15;return`hsl(${e}, ${s}%, ${l}%)`},R= exports.c =n.forwardRef(({className:a,...t},e)=>_jsxruntime.jsx.call(void 0, o.Root,{ref:e,className:_chunkFUYXCJOQjs.a.call(void 0, "relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",a),...t}));R.displayName=o.Root.displayName;var g=n.forwardRef(({className:a,...t},e)=>_jsxruntime.jsx.call(void 0, o.Image,{ref:e,className:_chunkFUYXCJOQjs.a.call(void 0, "aspect-square h-full w-full",a),...t}));g.displayName=o.Image.displayName;var P=n.forwardRef(({className:a,seed:t,...e},s)=>{let l=n.useMemo(()=>p(t),[t]);return _jsxruntime.jsx.call(void 0, o.Fallback,{ref:s,style:l,className:_chunkFUYXCJOQjs.a.call(void 0, "flex h-full w-full items-center justify-center rounded-full text-white font-medium shadow-inner",a),...e})});P.displayName=o.Fallback.displayName;exports.a = p; exports.b = b; exports.c = R; exports.d = g; exports.e = P;
6
+ //# sourceMappingURL=chunk-372VUZFE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-372VUZFE.js","../src/components/avatar.tsx"],"names":["generateHashes","seed","cleanSeed","P1","P2","P3","h1","h2","i","char","getSphericalGradient","hue1","hue2","sat1","sat2","light1","light2","color1","color2","getSeedColor","hue","saturation","lightness","Avatar","className","props","ref","jsx","cn","AvatarImage","AvatarFallback","gradientStyle"],"mappings":"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","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-372VUZFE.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Generates hash values from a seed string.\n * This is the core function that ensures consistency between gradient and single color.\n */\nconst generateHashes = (seed: string = \"default\") => {\n // 1. Remove '0x' to jump straight into the unique data\n const cleanSeed = seed.startsWith(\"0x\") ? seed.slice(2) : seed\n\n // Primes for high-variance bit-mixing\n const P1 = 0x85ebca6b\n const P2 = 0xc2b2ae35\n const P3 = 0x27d4eb2f\n\n let h1 = 0xdeadbeef\n let h2 = 0x41c6ce57\n\n for (let i = 0; i < cleanSeed.length; i++) {\n const char = cleanSeed.charCodeAt(i)\n h1 = Math.imul(h1 ^ char, P1)\n h1 = (h1 << 13) | (h1 >>> 19)\n\n h2 = Math.imul(h2 ^ char, P2)\n h2 = (h2 << 17) | (h2 >>> 15)\n }\n\n // Final mix\n h1 ^= h1 >>> 16\n h1 = Math.imul(h1, P3)\n h2 ^= h2 >>> 13\n h2 = Math.imul(h2, P1)\n\n return { h1: Math.abs(h1), h2: Math.abs(h2) }\n}\n\n/**\n * Creates a mesh-style radial gradient that mimics a 3D sphere.\n * Base color: #F8F8F8\n * Top: Two distinct HSL blobs that occupy roughly the upper 3/4.\n */\nconst getSphericalGradient = (seed: string = \"default\") => {\n const { h1, h2 } = generateHashes(seed)\n\n // Map Hashes to HSL\n const hue1 = h1 % 360\n // Force second hue to be at least 120 degrees away for maximum contrast\n const hue2 = (hue1 + 120 + (h2 % 120)) % 360\n\n const sat1 = 70 + ((h1 >> 4) % 30)\n const sat2 = 70 + ((h2 >> 4) % 30)\n\n const light1 = 50 + ((h1 >> 8) % 15)\n const light2 = 50 + ((h2 >> 8) % 15)\n\n const color1 = `hsl(${hue1}, ${sat1}%, ${light1}%)`\n const color2 = `hsl(${hue2}, ${sat2}%, ${light2}%)`\n\n return {\n backgroundColor: \"#F8F8F8\",\n backgroundImage: `\n radial-gradient(at 0% 0%, ${color1} 0%, transparent 80%),\n radial-gradient(at 100% 100%, ${color2} 0%, transparent 80%)\n `,\n }\n}\n\n/**\n * Generates a unique single color from a seed string.\n * This color is in sync with the spherical gradient - the same seed will produce\n * a color that matches the primary color (color1) of the gradient.\n * Useful for leaderboards, badges, or other UI elements that need a consistent identifier color.\n *\n * @param seed - The seed string (e.g., username, user ID)\n * @returns A single HSL color string (e.g., \"hsl(120, 85%, 60%)\")\n */\nconst getSeedColor = (seed: string = \"default\"): string => {\n const { h1 } = generateHashes(seed)\n\n const hue = h1 % 360\n const saturation = 70 + ((h1 >> 4) % 30) // 70-100%\n const lightness = 50 + ((h1 >> 8) % 15) // 50-65%\n\n return `hsl(${hue}, ${saturation}%, ${lightness}%)`\n}\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n))\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\ninterface FallbackProps extends React.ComponentPropsWithoutRef<\n typeof AvatarPrimitive.Fallback\n> {\n seed?: string\n}\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n FallbackProps\n>(({ className, seed, ...props }, ref) => {\n const gradientStyle = React.useMemo(() => getSphericalGradient(seed), [seed])\n\n return (\n <AvatarPrimitive.Fallback\n ref={ref}\n style={gradientStyle}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full text-white font-medium shadow-inner\",\n className\n )}\n {...props}\n />\n )\n})\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\nexport {\n Avatar,\n AvatarImage,\n AvatarFallback,\n getSphericalGradient,\n getSeedColor,\n}\n"]}
@@ -0,0 +1,6 @@
1
+ "use client";
2
+ import{a as f}from"./chunk-S5TKCF6T.mjs";import*as n from"react";import*as o from"@radix-ui/react-avatar";import{jsx as h}from"react/jsx-runtime";var d=(a="default")=>{let t=a.startsWith("0x")?a.slice(2):a,e=2246822507,s=3266489909,l=668265263,r=3735928559,i=1103547991;for(let c=0;c<t.length;c++){let m=t.charCodeAt(c);r=Math.imul(r^m,e),r=r<<13|r>>>19,i=Math.imul(i^m,s),i=i<<17|i>>>15}return r^=r>>>16,r=Math.imul(r,l),i^=i>>>13,i=Math.imul(i,e),{h1:Math.abs(r),h2:Math.abs(i)}},p=(a="default")=>{let{h1:t,h2:e}=d(a),s=t%360,l=(s+120+e%120)%360,r=70+(t>>4)%30,i=70+(e>>4)%30,c=50+(t>>8)%15,m=50+(e>>8)%15,u=`hsl(${s}, ${r}%, ${c}%)`,v=`hsl(${l}, ${i}%, ${m}%)`;return{backgroundColor:"#F8F8F8",backgroundImage:`
3
+ radial-gradient(at 0% 0%, ${u} 0%, transparent 80%),
4
+ radial-gradient(at 100% 100%, ${v} 0%, transparent 80%)
5
+ `}},b=(a="default")=>{let{h1:t}=d(a),e=t%360,s=70+(t>>4)%30,l=50+(t>>8)%15;return`hsl(${e}, ${s}%, ${l}%)`},R=n.forwardRef(({className:a,...t},e)=>h(o.Root,{ref:e,className:f("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",a),...t}));R.displayName=o.Root.displayName;var g=n.forwardRef(({className:a,...t},e)=>h(o.Image,{ref:e,className:f("aspect-square h-full w-full",a),...t}));g.displayName=o.Image.displayName;var P=n.forwardRef(({className:a,seed:t,...e},s)=>{let l=n.useMemo(()=>p(t),[t]);return h(o.Fallback,{ref:s,style:l,className:f("flex h-full w-full items-center justify-center rounded-full text-white font-medium shadow-inner",a),...e})});P.displayName=o.Fallback.displayName;export{p as a,b,R as c,g as d,P as e};
6
+ //# sourceMappingURL=chunk-4LUOGI24.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/avatar.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Generates hash values from a seed string.\n * This is the core function that ensures consistency between gradient and single color.\n */\nconst generateHashes = (seed: string = \"default\") => {\n // 1. Remove '0x' to jump straight into the unique data\n const cleanSeed = seed.startsWith(\"0x\") ? seed.slice(2) : seed\n\n // Primes for high-variance bit-mixing\n const P1 = 0x85ebca6b\n const P2 = 0xc2b2ae35\n const P3 = 0x27d4eb2f\n\n let h1 = 0xdeadbeef\n let h2 = 0x41c6ce57\n\n for (let i = 0; i < cleanSeed.length; i++) {\n const char = cleanSeed.charCodeAt(i)\n h1 = Math.imul(h1 ^ char, P1)\n h1 = (h1 << 13) | (h1 >>> 19)\n\n h2 = Math.imul(h2 ^ char, P2)\n h2 = (h2 << 17) | (h2 >>> 15)\n }\n\n // Final mix\n h1 ^= h1 >>> 16\n h1 = Math.imul(h1, P3)\n h2 ^= h2 >>> 13\n h2 = Math.imul(h2, P1)\n\n return { h1: Math.abs(h1), h2: Math.abs(h2) }\n}\n\n/**\n * Creates a mesh-style radial gradient that mimics a 3D sphere.\n * Base color: #F8F8F8\n * Top: Two distinct HSL blobs that occupy roughly the upper 3/4.\n */\nconst getSphericalGradient = (seed: string = \"default\") => {\n const { h1, h2 } = generateHashes(seed)\n\n // Map Hashes to HSL\n const hue1 = h1 % 360\n // Force second hue to be at least 120 degrees away for maximum contrast\n const hue2 = (hue1 + 120 + (h2 % 120)) % 360\n\n const sat1 = 70 + ((h1 >> 4) % 30)\n const sat2 = 70 + ((h2 >> 4) % 30)\n\n const light1 = 50 + ((h1 >> 8) % 15)\n const light2 = 50 + ((h2 >> 8) % 15)\n\n const color1 = `hsl(${hue1}, ${sat1}%, ${light1}%)`\n const color2 = `hsl(${hue2}, ${sat2}%, ${light2}%)`\n\n return {\n backgroundColor: \"#F8F8F8\",\n backgroundImage: `\n radial-gradient(at 0% 0%, ${color1} 0%, transparent 80%),\n radial-gradient(at 100% 100%, ${color2} 0%, transparent 80%)\n `,\n }\n}\n\n/**\n * Generates a unique single color from a seed string.\n * This color is in sync with the spherical gradient - the same seed will produce\n * a color that matches the primary color (color1) of the gradient.\n * Useful for leaderboards, badges, or other UI elements that need a consistent identifier color.\n *\n * @param seed - The seed string (e.g., username, user ID)\n * @returns A single HSL color string (e.g., \"hsl(120, 85%, 60%)\")\n */\nconst getSeedColor = (seed: string = \"default\"): string => {\n const { h1 } = generateHashes(seed)\n\n const hue = h1 % 360\n const saturation = 70 + ((h1 >> 4) % 30) // 70-100%\n const lightness = 50 + ((h1 >> 8) % 15) // 50-65%\n\n return `hsl(${hue}, ${saturation}%, ${lightness}%)`\n}\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n))\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\ninterface FallbackProps extends React.ComponentPropsWithoutRef<\n typeof AvatarPrimitive.Fallback\n> {\n seed?: string\n}\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n FallbackProps\n>(({ className, seed, ...props }, ref) => {\n const gradientStyle = React.useMemo(() => getSphericalGradient(seed), [seed])\n\n return (\n <AvatarPrimitive.Fallback\n ref={ref}\n style={gradientStyle}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full text-white font-medium shadow-inner\",\n className\n )}\n {...props}\n />\n )\n})\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\nexport {\n Avatar,\n AvatarImage,\n AvatarFallback,\n getSphericalGradient,\n getSeedColor,\n}\n"],"mappings":";yCAEA,UAAYA,MAAW,QACvB,UAAYC,MAAqB,yBA2F/B,cAAAC,MAAA,oBApFF,IAAMC,EAAiB,CAACC,EAAe,YAAc,CAEnD,IAAMC,EAAYD,EAAK,WAAW,IAAI,EAAIA,EAAK,MAAM,CAAC,EAAIA,EAGpDE,EAAK,WACLC,EAAK,WACLC,EAAK,UAEPC,EAAK,WACLC,EAAK,WAET,QAASC,EAAI,EAAGA,EAAIN,EAAU,OAAQM,IAAK,CACzC,IAAMC,EAAOP,EAAU,WAAWM,CAAC,EACnCF,EAAK,KAAK,KAAKA,EAAKG,EAAMN,CAAE,EAC5BG,EAAMA,GAAM,GAAOA,IAAO,GAE1BC,EAAK,KAAK,KAAKA,EAAKE,EAAML,CAAE,EAC5BG,EAAMA,GAAM,GAAOA,IAAO,EAC5B,CAGA,OAAAD,GAAMA,IAAO,GACbA,EAAK,KAAK,KAAKA,EAAID,CAAE,EACrBE,GAAMA,IAAO,GACbA,EAAK,KAAK,KAAKA,EAAIJ,CAAE,EAEd,CAAE,GAAI,KAAK,IAAIG,CAAE,EAAG,GAAI,KAAK,IAAIC,CAAE,CAAE,CAC9C,EAOMG,EAAuB,CAACT,EAAe,YAAc,CACzD,GAAM,CAAE,GAAAK,EAAI,GAAAC,CAAG,EAAIP,EAAeC,CAAI,EAGhCU,EAAOL,EAAK,IAEZM,GAAQD,EAAO,IAAOJ,EAAK,KAAQ,IAEnCM,EAAO,IAAOP,GAAM,GAAK,GACzBQ,EAAO,IAAOP,GAAM,GAAK,GAEzBQ,EAAS,IAAOT,GAAM,GAAK,GAC3BU,EAAS,IAAOT,GAAM,GAAK,GAE3BU,EAAS,OAAON,CAAI,KAAKE,CAAI,MAAME,CAAM,KACzCG,EAAS,OAAON,CAAI,KAAKE,CAAI,MAAME,CAAM,KAE/C,MAAO,CACL,gBAAiB,UACjB,gBAAiB;AAAA,kCACaC,CAAM;AAAA,sCACFC,CAAM;AAAA,KAE1C,CACF,EAWMC,EAAe,CAAClB,EAAe,YAAsB,CACzD,GAAM,CAAE,GAAAK,CAAG,EAAIN,EAAeC,CAAI,EAE5BmB,EAAMd,EAAK,IACXe,EAAa,IAAOf,GAAM,GAAK,GAC/BgB,EAAY,IAAOhB,GAAM,GAAK,GAEpC,MAAO,OAAOc,CAAG,KAAKC,CAAU,MAAMC,CAAS,IACjD,EAEMC,EAAe,aAGnB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC1B3B,EAAiB,OAAhB,CACC,IAAK2B,EACL,UAAWC,EACT,gEACAH,CACF,EACC,GAAGC,EACN,CACD,EACDF,EAAO,YAA8B,OAAK,YAE1C,IAAMK,EAAoB,aAGxB,CAAC,CAAE,UAAAJ,EAAW,GAAGC,CAAM,EAAGC,IAC1B3B,EAAiB,QAAhB,CACC,IAAK2B,EACL,UAAWC,EAAG,8BAA+BH,CAAS,EACrD,GAAGC,EACN,CACD,EACDG,EAAY,YAA8B,QAAM,YAQhD,IAAMC,EAAuB,aAG3B,CAAC,CAAE,UAAAL,EAAW,KAAAvB,EAAM,GAAGwB,CAAM,EAAGC,IAAQ,CACxC,IAAMI,EAAsB,UAAQ,IAAMpB,EAAqBT,CAAI,EAAG,CAACA,CAAI,CAAC,EAE5E,OACEF,EAAiB,WAAhB,CACC,IAAK2B,EACL,MAAOI,EACP,UAAWH,EACT,kGACAH,CACF,EACC,GAAGC,EACN,CAEJ,CAAC,EACDI,EAAe,YAA8B,WAAS","names":["React","AvatarPrimitive","jsx","generateHashes","seed","cleanSeed","P1","P2","P3","h1","h2","i","char","getSphericalGradient","hue1","hue2","sat1","sat2","light1","light2","color1","color2","getSeedColor","hue","saturation","lightness","Avatar","className","props","ref","cn","AvatarImage","AvatarFallback","gradientStyle"]}
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
2
+ var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var r = _interopRequireWildcard(_react);var _reactdialog = require('@radix-ui/react-dialog'); var e = _interopRequireWildcard(_reactdialog);var _classvarianceauthority = require('class-variance-authority');var _lucidereact = require('lucide-react');var _jsxruntime = require('react/jsx-runtime');var N=e.Root,b= exports.b =e.Trigger,C= exports.c =e.Close,f= exports.d =e.Portal,m= exports.e =r.forwardRef(({className:t,...i},o)=>_jsxruntime.jsx.call(void 0, e.Overlay,{className:_chunkFUYXCJOQjs.a.call(void 0, "fixed inset-0 z-50 bg-sheet/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...i,ref:o}));m.displayName=e.Overlay.displayName;var h=_classvarianceauthority.cva.call(void 0, "fixed z-50 gap-4 bg-sheet p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-200 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),S= exports.f =r.forwardRef(({side:t="right",className:i,children:o,...l},d)=>_jsxruntime.jsxs.call(void 0, f,{children:[_jsxruntime.jsx.call(void 0, m,{}),_jsxruntime.jsxs.call(void 0, e.Content,{ref:d,className:_chunkFUYXCJOQjs.a.call(void 0, h({side:t}),i),...l,children:[o,_jsxruntime.jsxs.call(void 0, e.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[_jsxruntime.jsx.call(void 0, _lucidereact.X,{className:"h-4 w-4"}),_jsxruntime.jsx.call(void 0, "span",{className:"sr-only",children:"Close"})]})]})]}));S.displayName=e.Content.displayName;var v=({className:t,...i})=>_jsxruntime.jsx.call(void 0, "div",{className:_chunkFUYXCJOQjs.a.call(void 0, "flex flex-col space-y-2 text-center sm:text-left",t),...i});v.displayName="SheetHeader";var y=({className:t,...i})=>_jsxruntime.jsx.call(void 0, "div",{className:_chunkFUYXCJOQjs.a.call(void 0, "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...i});y.displayName="SheetFooter";var P=r.forwardRef(({className:t,...i},o)=>_jsxruntime.jsx.call(void 0, e.Title,{ref:o,className:_chunkFUYXCJOQjs.a.call(void 0, "text-lg font-semibold text-primary-accent",t),...i}));P.displayName=e.Title.displayName;var u=r.forwardRef(({className:t,...i},o)=>_jsxruntime.jsx.call(void 0, e.Description,{ref:o,className:_chunkFUYXCJOQjs.a.call(void 0, "text-sm text-muted-foreground",t),...i}));u.displayName=e.Description.displayName;exports.a = N; exports.b = b; exports.c = C; exports.d = f; exports.e = m; exports.f = S; exports.g = v; exports.h = y; exports.i = P; exports.j = u;
3
+ //# sourceMappingURL=chunk-752ERCMU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-752ERCMU.js","../src/components/sheet.tsx"],"names":["Sheet","SheetTrigger","SheetClose","SheetPortal","SheetOverlay","className","props","ref","jsx","cn","sheetVariants","cva","SheetContent","side","children","jsxs","X","SheetHeader","SheetFooter","SheetTitle","SheetDescription"],"mappings":"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","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-752ERCMU.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-sheet/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-sheet p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-200 data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ninterface SheetContentProps\n extends\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-primary-accent\", className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
2
+ var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var r = _interopRequireWildcard(_react);var _jsxruntime = require('react/jsx-runtime');var u=r.forwardRef(({className:t,type:o,error:n,...i},s)=>_jsxruntime.jsx.call(void 0, "input",{type:o,className:_chunkFUYXCJOQjs.a.call(void 0, "flex my-2 h-10 w-full rounded-3xl border bg-background hover:bg-secondary px-4 py-2 text-sm text-primary-accent ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",n?"border-destructive-foreground focus-visible:ring-destructive-foreground":"border-border",t),ref:s,...i}));u.displayName="Input";exports.a = u;
3
+ //# sourceMappingURL=chunk-ALULX4FP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-ALULX4FP.js","../src/components/input.tsx"],"names":["Input","className","type","error","props","ref","jsx","cn"],"mappings":"AAAA,uWAAY;AACZ,sDAAuC,uECDhB,+CAWjB,IAHAA,CAAAA,CAAc,CAAA,CAAA,UAAA,CAClB,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,IAAA,CAAAC,CAAAA,CAAM,KAAA,CAAAC,CAAAA,CAAO,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAEnCC,6BAAAA,OAAC,CAAA,CACC,IAAA,CAAMJ,CAAAA,CACN,SAAA,CAAWK,gCAAAA,8XACT,CACAJ,CAAAA,CACI,yEAAA,CACA,eAAA,CACJF,CACF,CAAA,CACA,GAAA,CAAKI,CAAAA,CACJ,GAAGD,CAAAA,CACN,CAGN,CAAA,CACAJ,CAAAA,CAAM,WAAA,CAAc,OAAA,CAAA,cAAA","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-ALULX4FP.js","sourcesContent":[null,"import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n error?: boolean\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, error, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex my-2 h-10 w-full rounded-3xl border bg-background hover:bg-secondary px-4 py-2 text-sm text-primary-accent ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n error\n ? \"border-destructive-foreground focus-visible:ring-destructive-foreground\"\n : \"border-border\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
2
+ var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var m = _interopRequireWildcard(_react);var _reacttooltip = require('@radix-ui/react-tooltip'); var t = _interopRequireWildcard(_reacttooltip);var _jsxruntime = require('react/jsx-runtime');var p=t.Provider,f= exports.b =t.Root,c= exports.c =t.Trigger,l= exports.d =m.forwardRef(({className:o,sideOffset:i=4,asChild:e,...r},a)=>e?_jsxruntime.jsx.call(void 0, t.Content,{ref:a,sideOffset:i,asChild:e,className:o,...r}):_jsxruntime.jsx.call(void 0, t.Content,{ref:a,sideOffset:i,className:_chunkFUYXCJOQjs.a.call(void 0, "z-50 overflow-hidden rounded-xl border bg-tooltip px-4 py-2 text-sm text-primary-accent shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",o),...r}));l.displayName=t.Content.displayName;exports.a = p; exports.b = f; exports.c = c; exports.d = l;
3
+ //# sourceMappingURL=chunk-B7XXLTYN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-B7XXLTYN.js","../src/components/tooltip.tsx"],"names":["TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","className","sideOffset","asChild","props","ref","jsx","cn"],"mappings":"AAAA,uWAAY;AACZ,sDAAuC,uECChB,uGACW,+CAkB5B,IAdAA,CAAAA,CAAmC,CAAA,CAAA,QAAA,CAEnCC,CAAAA,aAA2B,CAAA,CAAA,IAAA,CAE3BC,CAAAA,aAAkC,CAAA,CAAA,OAAA,CAElCC,CAAAA,aAAuB,CAAA,CAAA,UAAA,CAG3B,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,UAAA,CAAAC,CAAAA,CAAa,CAAA,CAAG,OAAA,CAAAC,CAAAA,CAAS,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAG/CF,CAAAA,CAEAG,6BAAAA,CAAkB,CAAA,OAAA,CAAjB,CACC,GAAA,CAAKD,CAAAA,CACL,UAAA,CAAYH,CAAAA,CACZ,OAAA,CAASC,CAAAA,CACT,SAAA,CAAWF,CAAAA,CACV,GAAGG,CAAAA,CACN,CAAA,CAMFE,6BAAAA,CAAkB,CAAA,OAAA,CAAjB,CACC,GAAA,CAAKD,CAAAA,CACL,UAAA,CAAYH,CAAAA,CACZ,SAAA,CAAWK,gCAAAA,8XACT,CACAN,CACF,CAAA,CACC,GAAGG,CAAAA,CACN,CAEH,CAAA,CACDJ,CAAAA,CAAe,WAAA,CAA+B,CAAA,CAAA,OAAA,CAAQ,WAAA,CAAA,2DAAA","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-B7XXLTYN.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, asChild, ...props }, ref) => {\n // When asChild is used, pass props through without default styling\n // The child component (e.g., Button) will receive the tooltip props directly\n if (asChild) {\n return (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n asChild={asChild}\n className={className}\n {...props}\n />\n )\n }\n\n // Default tooltip styling when not using asChild\n return (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-xl border bg-tooltip px-4 py-2 text-sm text-primary-accent shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n )\n})\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"]}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{a as n}from"./chunk-S5TKCF6T.mjs";import*as m from"react";import*as t from"@radix-ui/react-tooltip";import{jsx as d}from"react/jsx-runtime";var p=t.Provider,f=t.Root,c=t.Trigger,l=m.forwardRef(({className:o,sideOffset:i=4,asChild:e,...r},a)=>e?d(t.Content,{ref:a,sideOffset:i,asChild:e,className:o,...r}):d(t.Content,{ref:a,sideOffset:i,className:n("z-50 overflow-hidden rounded-xl border bg-tooltip px-4 py-2 text-sm text-primary-accent shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",o),...r}));l.displayName=t.Content.displayName;export{p as a,f as b,c,l as d};
3
+ //# sourceMappingURL=chunk-BB3WNO72.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/tooltip.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, asChild, ...props }, ref) => {\n // When asChild is used, pass props through without default styling\n // The child component (e.g., Button) will receive the tooltip props directly\n if (asChild) {\n return (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n asChild={asChild}\n className={className}\n {...props}\n />\n )\n }\n\n // Default tooltip styling when not using asChild\n return (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-xl border bg-tooltip px-4 py-2 text-sm text-primary-accent shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n )\n})\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"mappings":";yCAEA,UAAYA,MAAW,QACvB,UAAYC,MAAsB,0BAkB5B,cAAAC,MAAA,oBAdN,IAAMC,EAAmC,WAEnCC,EAA2B,OAE3BC,EAAkC,UAElCC,EAAuB,aAG3B,CAAC,CAAE,UAAAC,EAAW,WAAAC,EAAa,EAAG,QAAAC,EAAS,GAAGC,CAAM,EAAGC,IAG/CF,EAEAP,EAAkB,UAAjB,CACC,IAAKS,EACL,WAAYH,EACZ,QAASC,EACT,UAAWF,EACV,GAAGG,EACN,EAMFR,EAAkB,UAAjB,CACC,IAAKS,EACL,WAAYH,EACZ,UAAWI,EACT,+XACAL,CACF,EACC,GAAGG,EACN,CAEH,EACDJ,EAAe,YAA+B,UAAQ","names":["React","TooltipPrimitive","jsx","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","className","sideOffset","asChild","props","ref","cn"]}
@@ -1,3 +1,3 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }"use client";
2
- var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var _react2 = _interopRequireDefault(_react);var _jsxruntime = require('react/jsx-runtime');var E="!<>-_\\/[]{}\u2014=+*^?#________",I=e=>e[Math.floor(Math.random()*e.length)],y=e=>{if(typeof e=="string"||typeof e=="number")return String(e);if(Array.isArray(e))return e.map(y).join("");if(_react2.default.isValidElement(e)){let r=e.props;return(r.text||"")+(r.label||"")+(r.title||"")+y(r.children)}return""},b=(e,r,s)=>{if(typeof e=="string"||typeof e=="number"){let a=String(e),n=[];for(let f=0;f<a.length;f++)n.push(_jsxruntime.jsx.call(void 0, _react2.default.Fragment,{children:r[s.current]||""},`char-${s.current}`)),s.current++;return n}if(Array.isArray(e))return e.map((a,n)=>_jsxruntime.jsx.call(void 0, _react2.default.Fragment,{children:b(a,r,s)},`arr-${n}-${s.current}`));if(_react2.default.isValidElement(e)){let a=e.props,n={};return a.children&&(n.children=b(a.children,r,s)),_react2.default.cloneElement(e,n)}return e},P=({children:e,className:r,duration:s=40,symbols:a=E,delay:n=0})=>{let[f,_]=_react.useState.call(void 0, null),[F,x]=_react.useState.call(void 0, !1),R=_react.useRef.call(void 0, null),l=_react.useRef.call(void 0, 0),h=_react.useRef.call(void 0, []),g=_react.useRef.call(void 0, null),S=_react.useRef.call(void 0, !1),N=_react.useMemo.call(void 0, ()=>y(e),[e]),k=()=>{let o=[];for(let c=0;c<N.length;c++){let d=N[c],i=Math.floor(Math.random()*(s*.5)),t=i+Math.floor(Math.random()*(s*.5));o.push({to:d,start:i,end:t})}h.current=o,l.current=0,x(!1)},T=()=>{let o=0,c=[];for(let i=0;i<h.current.length;i++){let t=h.current[i];l.current>=t.end?(o++,c.push(t.to)):(l.current>=t.start&&(!t.char||Math.random()<.28)&&(t.char=I(a)),c.push(_jsxruntime.jsxs.call(void 0, "span",{className:"relative inline-block",children:[_jsxruntime.jsx.call(void 0, "span",{className:"invisible select-none","aria-hidden":"true",children:t.to===" "?"\xA0":t.to}),l.current>=t.start&&_jsxruntime.jsx.call(void 0, "span",{className:"absolute inset-0 flex items-center justify-center opacity-50 font-mono text-[1em] leading-none",children:t.char})]},i)))}_(b(e,c,{current:0})),o===h.current.length?x(!0):(l.current++,g.current=requestAnimationFrame(T))};return _react.useEffect.call(void 0, ()=>{let o=new IntersectionObserver(c=>{if(c[0].isIntersecting&&!S.current){S.current=!0;let d=setTimeout(()=>{k(),g.current=requestAnimationFrame(T)},n);return()=>clearTimeout(d)}},{threshold:.1});return R.current&&o.observe(R.current),()=>{o.disconnect(),g.current&&cancelAnimationFrame(g.current)}},[N,n]),_jsxruntime.jsx.call(void 0, "span",{ref:R,className:_chunkFUYXCJOQjs.a.call(void 0, "inline-block whitespace-pre-wrap",r),children:F?e:f})};function q(e){return _jsxruntime.jsx.call(void 0, _react.Suspense,{fallback:_jsxruntime.jsx.call(void 0, "span",{className:"invisible",children:e.children}),children:_jsxruntime.jsx.call(void 0, P,{...e})})}exports.a = q;
3
- //# sourceMappingURL=chunk-FLYTIYNE.js.map
2
+ var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var _react2 = _interopRequireDefault(_react);var _jsxruntime = require('react/jsx-runtime');var E="!<>-_\\/[]{}\u2014=+*^?#________",I=e=>e[Math.floor(Math.random()*e.length)],y=e=>{if(typeof e=="string"||typeof e=="number")return String(e);if(Array.isArray(e))return e.map(y).join("");if(_react2.default.isValidElement(e)){let r=e.props;return(r.text||"")+(r.label||"")+(r.title||"")+y(r.children)}return""},b=(e,r,s)=>{if(typeof e=="string"||typeof e=="number"){let a=String(e),n=[];for(let f=0;f<a.length;f++)n.push(_jsxruntime.jsx.call(void 0, _react2.default.Fragment,{children:r[s.current]||""},`char-${s.current}`)),s.current++;return n}if(Array.isArray(e))return e.map((a,n)=>_jsxruntime.jsx.call(void 0, _react2.default.Fragment,{children:b(a,r,s)},`arr-${n}-${s.current}`));if(_react2.default.isValidElement(e)){let a=e.props,n={};return a.children&&(n.children=b(a.children,r,s)),_react2.default.cloneElement(e,n)}return e},P=({children:e,className:r,duration:s=40,symbols:a=E,delay:n=0})=>{let[f,_]=_react.useState.call(void 0, null),[F,S]=_react.useState.call(void 0, !1),R=_react.useRef.call(void 0, null),l=_react.useRef.call(void 0, 0),h=_react.useRef.call(void 0, []),g=_react.useRef.call(void 0, null),T=_react.useRef.call(void 0, !1),N=_react.useMemo.call(void 0, ()=>y(e),[e]),k=()=>{let o=[];for(let c=0;c<N.length;c++){let d=N[c],i=Math.floor(Math.random()*(s*.5)),t=i+Math.floor(Math.random()*(s*.5));o.push({to:d,start:i,end:t})}h.current=o,l.current=0,S(!1)},x=()=>{let o=0,c=[];for(let i=0;i<h.current.length;i++){let t=h.current[i];l.current>=t.end?(o++,c.push(t.to)):(l.current>=t.start&&(!t.char||Math.random()<.28)&&(t.char=I(a)),c.push(_jsxruntime.jsxs.call(void 0, "span",{className:"relative inline-block",children:[_jsxruntime.jsx.call(void 0, "span",{className:"invisible select-none","aria-hidden":"true",children:t.to===" "?"\xA0":t.to}),l.current>=t.start&&_jsxruntime.jsx.call(void 0, "span",{className:"absolute inset-0 flex items-center justify-center opacity-50 font-mono leading-none",children:t.char})]},i)))}_(b(e,c,{current:0})),o===h.current.length?S(!0):(l.current++,g.current=requestAnimationFrame(x))};return _react.useEffect.call(void 0, ()=>{let o=new IntersectionObserver(c=>{if(c[0].isIntersecting&&!T.current){T.current=!0;let d=setTimeout(()=>{k(),g.current=requestAnimationFrame(x)},n);return()=>clearTimeout(d)}},{threshold:.1});return R.current&&o.observe(R.current),()=>{o.disconnect(),g.current&&cancelAnimationFrame(g.current)}},[N,n]),_jsxruntime.jsx.call(void 0, "span",{ref:R,className:_chunkFUYXCJOQjs.a.call(void 0, "inline-block whitespace-pre-wrap",r),children:F?e:f})};function q(e){return _jsxruntime.jsx.call(void 0, _react.Suspense,{fallback:_jsxruntime.jsx.call(void 0, "span",{className:"invisible",children:e.children}),children:_jsxruntime.jsx.call(void 0, P,{...e})})}exports.a = q;
3
+ //# sourceMappingURL=chunk-BENG4LHZ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-FLYTIYNE.js","../src/components/TextDecoder.tsx"],"names":["SYMBOLS","randomChar","symbols","extractText","node","React","props","injectScrambledText","scrambledChars","indexObj","text","result","i","jsx"],"mappings":"AAAA,qLAAY;AACZ,sDAAuC,4ECQhC,+CAgCC,IA9BFA,CAAAA,CAAU,kCAAA,CAEVC,CAAAA,CAAcC,CAAAA,EAClBA,CAAAA,CAAQ,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,CAAA,CAAIA,CAAAA,CAAQ,MAAM,CAAC,CAAA,CAE9CC,CAAAA,CAAeC,CAAAA,EAA4B,CAC/C,EAAA,CAAI,OAAOA,CAAAA,EAAS,QAAA,EAAY,OAAOA,CAAAA,EAAS,QAAA,CAAU,OAAO,MAAA,CAAOA,CAAI,CAAA,CAC5E,EAAA,CAAI,KAAA,CAAM,OAAA,CAAQA,CAAI,CAAA,CAAG,OAAOA,CAAAA,CAAK,GAAA,CAAID,CAAW,CAAA,CAAE,IAAA,CAAK,EAAE,CAAA,CAC7D,EAAA,CAAIE,eAAAA,CAAM,cAAA,CAAeD,CAAI,CAAA,CAAG,CAC9B,IAAME,CAAAA,CAAQF,CAAAA,CAAK,KAAA,CACnB,MAAA,CACGE,CAAAA,CAAM,IAAA,EAAQ,EAAA,CAAA,CAAA,CACdA,CAAAA,CAAM,KAAA,EAAS,EAAA,CAAA,CAAA,CACfA,CAAAA,CAAM,KAAA,EAAS,EAAA,CAAA,CAChBH,CAAAA,CAAYG,CAAAA,CAAM,QAAQ,CAE9B,CACA,MAAO,EACT,CAAA,CAEMC,CAAAA,CAAsB,CAC1BH,CAAAA,CACAI,CAAAA,CACAC,CAAAA,CAAAA,EACc,CACd,EAAA,CAAI,OAAOL,CAAAA,EAAS,QAAA,EAAY,OAAOA,CAAAA,EAAS,QAAA,CAAU,CACxD,IAAMM,CAAAA,CAAO,MAAA,CAAON,CAAI,CAAA,CAClBO,CAAAA,CAAiC,CAAC,CAAA,CACxC,GAAA,CAAA,IAASC,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIF,CAAAA,CAAK,MAAA,CAAQE,CAAAA,EAAAA,CAC/BD,CAAAA,CAAO,IAAA,CACLE,6BAAAA,eAACR,CAAM,QAAA,CAAN,CACE,QAAA,CAAAG,CAAAA,CAAeC,CAAAA,CAAS,OAAO,CAAA,EAAK,EAAA,CAAA,CADlB,CAAA,KAAA,EAAQA,CAAAA,CAAS,OAAO,CAAA,CAAA","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-FLYTIYNE.js","sourcesContent":[null,"\"use client\"\nimport { cn } from \"@/lib/utils\"\nimport React, {\n useState,\n useEffect,\n useMemo,\n useRef,\n Suspense,\n ReactNode,\n} from \"react\"\n\nconst SYMBOLS = \"!<>-_\\\\/[]{}—=+*^?#________\"\n\nconst randomChar = (symbols: string) =>\n symbols[Math.floor(Math.random() * symbols.length)]\n\nconst extractText = (node: ReactNode): string => {\n if (typeof node === \"string\" || typeof node === \"number\") return String(node)\n if (Array.isArray(node)) return node.map(extractText).join(\"\")\n if (React.isValidElement(node)) {\n const props = node.props as any\n return (\n (props.text || \"\") +\n (props.label || \"\") +\n (props.title || \"\") +\n extractText(props.children)\n )\n }\n return \"\"\n}\n\nconst injectScrambledText = (\n node: ReactNode,\n scrambledChars: (string | ReactNode)[],\n indexObj: { current: number }\n): ReactNode => {\n if (typeof node === \"string\" || typeof node === \"number\") {\n const text = String(node)\n const result: (string | ReactNode)[] = []\n for (let i = 0; i < text.length; i++) {\n result.push(\n <React.Fragment key={`char-${indexObj.current}`}>\n {scrambledChars[indexObj.current] || \"\"}\n </React.Fragment>\n )\n indexObj.current++\n }\n return result\n }\n\n if (Array.isArray(node)) {\n return node.map((child, idx) => (\n <React.Fragment key={`arr-${idx}-${indexObj.current}`}>\n {injectScrambledText(child, scrambledChars, indexObj)}\n </React.Fragment>\n ))\n }\n\n if (React.isValidElement(node)) {\n const props = node.props as any\n const newProps: any = {}\n\n if (props.children) {\n newProps.children = injectScrambledText(\n props.children,\n scrambledChars,\n indexObj\n )\n }\n return React.cloneElement(node, newProps)\n }\n return node\n}\n\nexport interface TextDecoderProps {\n children: ReactNode\n className?: string\n duration?: number\n symbols?: string\n delay?: number\n}\n\nconst TextDecoder = ({\n children,\n className,\n duration = 40,\n symbols = SYMBOLS,\n delay = 0,\n}: TextDecoderProps) => {\n const [outputNodes, setOutputNodes] = useState<ReactNode>(null)\n const [isComplete, setIsComplete] = useState(false)\n const elementRef = useRef<HTMLSpanElement>(null)\n const frameRef = useRef(0)\n const queueRef = useRef<\n { to: string; start: number; end: number; char?: string }[]\n >([])\n const rafRef = useRef<number | null>(null)\n const hasAnimatedRef = useRef(false)\n\n const fullText = useMemo(() => extractText(children), [children])\n\n const setupQueue = () => {\n const newQueue = []\n for (let i = 0; i < fullText.length; i++) {\n const to = fullText[i]\n // Every character starts within the first 50% of duration\n // and resolves within the second 50%\n const start = Math.floor(Math.random() * (duration * 0.5))\n const end = start + Math.floor(Math.random() * (duration * 0.5))\n newQueue.push({ to, start, end })\n }\n queueRef.current = newQueue\n frameRef.current = 0\n setIsComplete(false)\n }\n\n const update = () => {\n let complete = 0\n const currentScrambledChars: (string | ReactNode)[] = []\n\n for (let i = 0; i < queueRef.current.length; i++) {\n const item = queueRef.current[i]\n\n if (frameRef.current >= item.end) {\n // Animation finished for this letter\n complete++\n currentScrambledChars.push(item.to)\n } else {\n // Character is either waiting (invisible ghost) or scrambling\n if (frameRef.current >= item.start) {\n if (!item.char || Math.random() < 0.28) {\n item.char = randomChar(symbols)\n }\n }\n\n currentScrambledChars.push(\n <span key={i} className=\"relative inline-block\">\n {/* The Ghost: Locks the exact width/height of the specific character */}\n <span className=\"invisible select-none\" aria-hidden=\"true\">\n {item.to === \" \" ? \"\\u00A0\" : item.to}\n </span>\n {/* The Scramble: Overlays the ghost without affecting document flow */}\n {frameRef.current >= item.start && (\n <span className=\"absolute inset-0 flex items-center justify-center opacity-50 font-mono text-[1em] leading-none\">\n {item.char}\n </span>\n )}\n </span>\n )\n }\n }\n\n const indexObj = { current: 0 }\n setOutputNodes(\n injectScrambledText(children, currentScrambledChars, indexObj)\n )\n\n if (complete === queueRef.current.length) {\n setIsComplete(true)\n } else {\n frameRef.current++\n rafRef.current = requestAnimationFrame(update)\n }\n }\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting && !hasAnimatedRef.current) {\n hasAnimatedRef.current = true\n const timeoutId = setTimeout(() => {\n setupQueue()\n rafRef.current = requestAnimationFrame(update)\n }, delay)\n return () => clearTimeout(timeoutId)\n }\n },\n { threshold: 0.1 }\n )\n\n if (elementRef.current) observer.observe(elementRef.current)\n\n return () => {\n observer.disconnect()\n if (rafRef.current) cancelAnimationFrame(rafRef.current)\n }\n }, [fullText, delay])\n\n return (\n <span\n ref={elementRef}\n className={cn(\"inline-block whitespace-pre-wrap\", className)}\n >\n {isComplete ? children : outputNodes}\n </span>\n )\n}\n\nexport default function SuspenseDecodedText(props: TextDecoderProps) {\n return (\n <Suspense fallback={<span className=\"invisible\">{props.children}</span>}>\n <TextDecoder {...props} />\n </Suspense>\n )\n}\n"]}
1
+ {"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-BENG4LHZ.js","../src/components/TextDecoder.tsx"],"names":["SYMBOLS","randomChar","symbols","extractText","node","React","props","injectScrambledText","scrambledChars","indexObj","text","result","i","jsx"],"mappings":"AAAA,qLAAY;AACZ,sDAAuC,4ECQhC,+CAgCC,IA9BFA,CAAAA,CAAU,kCAAA,CAEVC,CAAAA,CAAcC,CAAAA,EAClBA,CAAAA,CAAQ,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,CAAA,CAAIA,CAAAA,CAAQ,MAAM,CAAC,CAAA,CAE9CC,CAAAA,CAAeC,CAAAA,EAA4B,CAC/C,EAAA,CAAI,OAAOA,CAAAA,EAAS,QAAA,EAAY,OAAOA,CAAAA,EAAS,QAAA,CAAU,OAAO,MAAA,CAAOA,CAAI,CAAA,CAC5E,EAAA,CAAI,KAAA,CAAM,OAAA,CAAQA,CAAI,CAAA,CAAG,OAAOA,CAAAA,CAAK,GAAA,CAAID,CAAW,CAAA,CAAE,IAAA,CAAK,EAAE,CAAA,CAC7D,EAAA,CAAIE,eAAAA,CAAM,cAAA,CAAeD,CAAI,CAAA,CAAG,CAC9B,IAAME,CAAAA,CAAQF,CAAAA,CAAK,KAAA,CACnB,MAAA,CACGE,CAAAA,CAAM,IAAA,EAAQ,EAAA,CAAA,CAAA,CACdA,CAAAA,CAAM,KAAA,EAAS,EAAA,CAAA,CAAA,CACfA,CAAAA,CAAM,KAAA,EAAS,EAAA,CAAA,CAChBH,CAAAA,CAAYG,CAAAA,CAAM,QAAQ,CAE9B,CACA,MAAO,EACT,CAAA,CAEMC,CAAAA,CAAsB,CAC1BH,CAAAA,CACAI,CAAAA,CACAC,CAAAA,CAAAA,EACc,CACd,EAAA,CAAI,OAAOL,CAAAA,EAAS,QAAA,EAAY,OAAOA,CAAAA,EAAS,QAAA,CAAU,CACxD,IAAMM,CAAAA,CAAO,MAAA,CAAON,CAAI,CAAA,CAClBO,CAAAA,CAAiC,CAAC,CAAA,CACxC,GAAA,CAAA,IAASC,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIF,CAAAA,CAAK,MAAA,CAAQE,CAAAA,EAAAA,CAC/BD,CAAAA,CAAO,IAAA,CACLE,6BAAAA,eAACR,CAAM,QAAA,CAAN,CACE,QAAA,CAAAG,CAAAA,CAAeC,CAAAA,CAAS,OAAO,CAAA,EAAK,EAAA,CAAA,CADlB,CAAA,KAAA,EAAQA,CAAAA,CAAS,OAAO,CAAA,CAAA","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-BENG4LHZ.js","sourcesContent":[null,"\"use client\"\nimport { cn } from \"@/lib/utils\"\nimport React, {\n useState,\n useEffect,\n useMemo,\n useRef,\n Suspense,\n ReactNode,\n} from \"react\"\n\nconst SYMBOLS = \"!<>-_\\\\/[]{}—=+*^?#________\"\n\nconst randomChar = (symbols: string) =>\n symbols[Math.floor(Math.random() * symbols.length)]\n\nconst extractText = (node: ReactNode): string => {\n if (typeof node === \"string\" || typeof node === \"number\") return String(node)\n if (Array.isArray(node)) return node.map(extractText).join(\"\")\n if (React.isValidElement(node)) {\n const props = node.props as any\n return (\n (props.text || \"\") +\n (props.label || \"\") +\n (props.title || \"\") +\n extractText(props.children)\n )\n }\n return \"\"\n}\n\nconst injectScrambledText = (\n node: ReactNode,\n scrambledChars: (string | ReactNode)[],\n indexObj: { current: number }\n): ReactNode => {\n if (typeof node === \"string\" || typeof node === \"number\") {\n const text = String(node)\n const result: (string | ReactNode)[] = []\n for (let i = 0; i < text.length; i++) {\n result.push(\n <React.Fragment key={`char-${indexObj.current}`}>\n {scrambledChars[indexObj.current] || \"\"}\n </React.Fragment>\n )\n indexObj.current++\n }\n return result\n }\n\n if (Array.isArray(node)) {\n return node.map((child, idx) => (\n <React.Fragment key={`arr-${idx}-${indexObj.current}`}>\n {injectScrambledText(child, scrambledChars, indexObj)}\n </React.Fragment>\n ))\n }\n\n if (React.isValidElement(node)) {\n const props = node.props as any\n const newProps: any = {}\n\n if (props.children) {\n newProps.children = injectScrambledText(\n props.children,\n scrambledChars,\n indexObj\n )\n }\n return React.cloneElement(node, newProps)\n }\n return node\n}\n\nexport interface TextDecoderProps {\n children: ReactNode\n className?: string\n duration?: number\n symbols?: string\n delay?: number\n}\n\nconst TextDecoder = ({\n children,\n className,\n duration = 40,\n symbols = SYMBOLS,\n delay = 0,\n}: TextDecoderProps) => {\n const [outputNodes, setOutputNodes] = useState<ReactNode>(null)\n const [isComplete, setIsComplete] = useState(false)\n const elementRef = useRef<HTMLSpanElement>(null)\n const frameRef = useRef(0)\n const queueRef = useRef<\n { to: string; start: number; end: number; char?: string }[]\n >([])\n const rafRef = useRef<number | null>(null)\n const hasAnimatedRef = useRef(false)\n\n const fullText = useMemo(() => extractText(children), [children])\n\n const setupQueue = () => {\n const newQueue = []\n for (let i = 0; i < fullText.length; i++) {\n const to = fullText[i]\n // Every character starts within the first 50% of duration\n // and resolves within the second 50%\n const start = Math.floor(Math.random() * (duration * 0.5))\n const end = start + Math.floor(Math.random() * (duration * 0.5))\n newQueue.push({ to, start, end })\n }\n queueRef.current = newQueue\n frameRef.current = 0\n setIsComplete(false)\n }\n\n const update = () => {\n let complete = 0\n const currentScrambledChars: (string | ReactNode)[] = []\n\n for (let i = 0; i < queueRef.current.length; i++) {\n const item = queueRef.current[i]\n\n if (frameRef.current >= item.end) {\n // Animation finished for this letter\n complete++\n currentScrambledChars.push(item.to)\n } else {\n // Character is either waiting (invisible ghost) or scrambling\n if (frameRef.current >= item.start) {\n if (!item.char || Math.random() < 0.28) {\n item.char = randomChar(symbols)\n }\n }\n\n currentScrambledChars.push(\n <span key={i} className=\"relative inline-block\">\n {/* The Ghost: Locks the exact width/height of the specific character */}\n <span className=\"invisible select-none\" aria-hidden=\"true\">\n {item.to === \" \" ? \"\\u00A0\" : item.to}\n </span>\n {/* The Scramble: Overlays the ghost without affecting document flow */}\n {frameRef.current >= item.start && (\n <span className=\"absolute inset-0 flex items-center justify-center opacity-50 font-mono leading-none\">\n {item.char}\n </span>\n )}\n </span>\n )\n }\n }\n\n const indexObj = { current: 0 }\n setOutputNodes(\n injectScrambledText(children, currentScrambledChars, indexObj)\n )\n\n if (complete === queueRef.current.length) {\n setIsComplete(true)\n } else {\n frameRef.current++\n rafRef.current = requestAnimationFrame(update)\n }\n }\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting && !hasAnimatedRef.current) {\n hasAnimatedRef.current = true\n const timeoutId = setTimeout(() => {\n setupQueue()\n rafRef.current = requestAnimationFrame(update)\n }, delay)\n return () => clearTimeout(timeoutId)\n }\n },\n { threshold: 0.1 }\n )\n\n if (elementRef.current) observer.observe(elementRef.current)\n\n return () => {\n observer.disconnect()\n if (rafRef.current) cancelAnimationFrame(rafRef.current)\n }\n }, [fullText, delay])\n\n return (\n <span\n ref={elementRef}\n className={cn(\"inline-block whitespace-pre-wrap\", className)}\n >\n {isComplete ? children : outputNodes}\n </span>\n )\n}\n\nexport default function SuspenseDecodedText(props: TextDecoderProps) {\n return (\n <Suspense fallback={<span className=\"invisible\">{props.children}</span>}>\n <TextDecoder {...props} />\n </Suspense>\n )\n}\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
2
+ var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var i = _interopRequireWildcard(_react);var _jsxruntime = require('react/jsx-runtime');var s=i.forwardRef(({className:e,...t},r)=>_jsxruntime.jsx.call(void 0, "div",{ref:r,className:_chunkFUYXCJOQjs.a.call(void 0, "space-y-2",e),...t}));s.displayName="Field";var d=i.forwardRef(({className:e,...t},r)=>_jsxruntime.jsx.call(void 0, "label",{ref:r,className:_chunkFUYXCJOQjs.a.call(void 0, "text-sm font-medium leading-none text-primary-accent peer-disabled:cursor-not-allowed peer-disabled:opacity-70",e),...t}));d.displayName="FieldLabel";var n=i.forwardRef(({className:e,error:t,...r},o)=>_jsxruntime.jsx.call(void 0, "p",{ref:o,className:_chunkFUYXCJOQjs.a.call(void 0, "text-sm",t?"text-destructive-foreground":"text-muted-foreground",e),...r}));n.displayName="FieldDescription";exports.a = s; exports.b = d; exports.c = n;
3
+ //# sourceMappingURL=chunk-CT2CRYC2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-CT2CRYC2.js","../src/components/field.tsx"],"names":["Field","className","props","ref","jsx","cn","FieldLabel","FieldDescription","error"],"mappings":"AAAA,uWAAY;AACZ,sDAAkC,uECCX,+CAOnB,IAFEA,CAAAA,CAAc,CAAA,CAAA,UAAA,CAClB,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EACxBC,6BAAAA,KAAC,CAAA,CAAI,GAAA,CAAKD,CAAAA,CAAK,SAAA,CAAWE,gCAAAA,WAAG,CAAaJ,CAAS,CAAA,CAAI,GAAGC,CAAAA,CAAO,CAErE,CAAA,CACAF,CAAAA,CAAM,WAAA,CAAc,OAAA,CAIpB,IAAMM,CAAAA,CAAmB,CAAA,CAAA,UAAA,CACvB,CAAC,CAAE,SAAA,CAAAL,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EACxBC,6BAAAA,OAAC,CAAA,CACC,GAAA,CAAKD,CAAAA,CACL,SAAA,CAAWE,gCAAAA,gHACT,CACAJ,CACF,CAAA,CACC,GAAGC,CAAAA,CACN,CAEJ,CAAA,CACAI,CAAAA,CAAW,WAAA,CAAc,YAAA,CAMzB,IAAMC,CAAAA,CAAyB,CAAA,CAAA,UAAA,CAG7B,CAAC,CAAE,SAAA,CAAAN,CAAAA,CAAW,KAAA,CAAAO,CAAAA,CAAO,GAAGN,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EACjCC,6BAAAA,GAAC,CAAA,CACC,GAAA,CAAKD,CAAAA,CACL,SAAA,CAAWE,gCAAAA,SACT,CACAG,CAAAA,CAAQ,6BAAA,CAAgC,uBAAA,CACxCP,CACF,CAAA,CACC,GAAGC,CAAAA,CACN,CACD,CAAA,CACDK,CAAAA,CAAiB,WAAA,CAAc,kBAAA,CAAA,4CAAA","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-CT2CRYC2.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport { cn } from \"@/lib/utils\"\n\nexport interface FieldProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Field = React.forwardRef<HTMLDivElement, FieldProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props} />\n )\n)\nField.displayName = \"Field\"\n\nexport interface FieldLabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\nconst FieldLabel = React.forwardRef<HTMLLabelElement, FieldLabelProps>(\n ({ className, ...props }, ref) => (\n <label\n ref={ref}\n className={cn(\n \"text-sm font-medium leading-none text-primary-accent peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n className\n )}\n {...props}\n />\n )\n)\nFieldLabel.displayName = \"FieldLabel\"\n\nexport interface FieldDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {\n error?: boolean\n}\n\nconst FieldDescription = React.forwardRef<\n HTMLParagraphElement,\n FieldDescriptionProps\n>(({ className, error, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\n \"text-sm\",\n error ? \"text-destructive-foreground\" : \"text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nFieldDescription.displayName = \"FieldDescription\"\n\nexport { Field, FieldLabel, FieldDescription }\n"]}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{a as s}from"./chunk-S5TKCF6T.mjs";import*as r from"react";import*as e from"@radix-ui/react-dialog";import{cva as p}from"class-variance-authority";import{X as c}from"lucide-react";import{jsx as a,jsxs as n}from"react/jsx-runtime";var N=e.Root,b=e.Trigger,C=e.Close,f=e.Portal,m=r.forwardRef(({className:t,...i},o)=>a(e.Overlay,{className:s("fixed inset-0 z-50 bg-sheet/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...i,ref:o}));m.displayName=e.Overlay.displayName;var h=p("fixed z-50 gap-4 bg-sheet p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-200 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),S=r.forwardRef(({side:t="right",className:i,children:o,...l},d)=>n(f,{children:[a(m,{}),n(e.Content,{ref:d,className:s(h({side:t}),i),...l,children:[o,n(e.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[a(c,{className:"h-4 w-4"}),a("span",{className:"sr-only",children:"Close"})]})]})]}));S.displayName=e.Content.displayName;var v=({className:t,...i})=>a("div",{className:s("flex flex-col space-y-2 text-center sm:text-left",t),...i});v.displayName="SheetHeader";var y=({className:t,...i})=>a("div",{className:s("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...i});y.displayName="SheetFooter";var P=r.forwardRef(({className:t,...i},o)=>a(e.Title,{ref:o,className:s("text-lg font-semibold text-primary-accent",t),...i}));P.displayName=e.Title.displayName;var u=r.forwardRef(({className:t,...i},o)=>a(e.Description,{ref:o,className:s("text-sm text-muted-foreground",t),...i}));u.displayName=e.Description.displayName;export{N as a,b,C as c,f as d,m as e,S as f,v as g,y as h,P as i,u as j};
3
+ //# sourceMappingURL=chunk-DMHIFNXF.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/sheet.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-sheet/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-sheet p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-200 data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ninterface SheetContentProps\n extends\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-primary-accent\", className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n"],"mappings":";yCAEA,UAAYA,MAAW,QACvB,UAAYC,MAAoB,yBAChC,OAAS,OAAAC,MAA8B,2BACvC,OAAS,KAAAC,MAAS,eAgBhB,cAAAC,EA+CI,QAAAC,MA/CJ,oBAZF,IAAMC,EAAuB,OAEvBC,EAA8B,UAE9BC,EAA4B,QAE5BC,EAA6B,SAE7BC,EAAqB,aAGzB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC1BT,EAAgB,UAAf,CACC,UAAWU,EACT,yJACAH,CACF,EACC,GAAGC,EACJ,IAAKC,EACP,CACD,EACDH,EAAa,YAA6B,UAAQ,YAElD,IAAMK,EAAgBC,EACpB,8LACA,CACE,SAAU,CACR,KAAM,CACJ,IAAK,oGACL,OACE,6GACF,KAAM,gIACN,MACE,mIACJ,CACF,EACA,gBAAiB,CACf,KAAM,OACR,CACF,CACF,EAOMC,EAAqB,aAGzB,CAAC,CAAE,KAAAC,EAAO,QAAS,UAAAP,EAAW,SAAAQ,EAAU,GAAGP,CAAM,EAAGC,IACpDR,EAACI,EAAA,CACC,UAAAL,EAACM,EAAA,EAAa,EACdL,EAAgB,UAAf,CACC,IAAKQ,EACL,UAAWC,EAAGC,EAAc,CAAE,KAAAG,CAAK,CAAC,EAAGP,CAAS,EAC/C,GAAGC,EAEH,UAAAO,EACDd,EAAgB,QAAf,CAAqB,UAAU,2OAC9B,UAAAD,EAACgB,EAAA,CAAE,UAAU,UAAU,EACvBhB,EAAC,QAAK,UAAU,UAAU,iBAAK,GACjC,GACF,GACF,CACD,EACDa,EAAa,YAA6B,UAAQ,YAElD,IAAMI,EAAc,CAAC,CACnB,UAAAV,EACA,GAAGC,CACL,IACER,EAAC,OACC,UAAWU,EACT,mDACAH,CACF,EACC,GAAGC,EACN,EAEFS,EAAY,YAAc,cAE1B,IAAMC,EAAc,CAAC,CACnB,UAAAX,EACA,GAAGC,CACL,IACER,EAAC,OACC,UAAWU,EACT,gEACAH,CACF,EACC,GAAGC,EACN,EAEFU,EAAY,YAAc,cAE1B,IAAMC,EAAmB,aAGvB,CAAC,CAAE,UAAAZ,EAAW,GAAGC,CAAM,EAAGC,IAC1BT,EAAgB,QAAf,CACC,IAAKS,EACL,UAAWC,EAAG,4CAA6CH,CAAS,EACnE,GAAGC,EACN,CACD,EACDW,EAAW,YAA6B,QAAM,YAE9C,IAAMC,EAAyB,aAG7B,CAAC,CAAE,UAAAb,EAAW,GAAGC,CAAM,EAAGC,IAC1BT,EAAgB,cAAf,CACC,IAAKS,EACL,UAAWC,EAAG,gCAAiCH,CAAS,EACvD,GAAGC,EACN,CACD,EACDY,EAAiB,YAA6B,cAAY","names":["React","SheetPrimitive","cva","X","jsx","jsxs","Sheet","SheetTrigger","SheetClose","SheetPortal","SheetOverlay","className","props","ref","cn","sheetVariants","cva","SheetContent","side","children","X","SheetHeader","SheetFooter","SheetTitle","SheetDescription"]}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{a as M}from"./chunk-S5TKCF6T.mjs";import p,{useState as A,useEffect as v,useMemo as w,useRef as m,Suspense as D}from"react";import{jsx as u,jsxs as $}from"react/jsx-runtime";var E="!<>-_\\/[]{}\u2014=+*^?#________",I=e=>e[Math.floor(Math.random()*e.length)],y=e=>{if(typeof e=="string"||typeof e=="number")return String(e);if(Array.isArray(e))return e.map(y).join("");if(p.isValidElement(e)){let r=e.props;return(r.text||"")+(r.label||"")+(r.title||"")+y(r.children)}return""},b=(e,r,s)=>{if(typeof e=="string"||typeof e=="number"){let a=String(e),n=[];for(let f=0;f<a.length;f++)n.push(u(p.Fragment,{children:r[s.current]||""},`char-${s.current}`)),s.current++;return n}if(Array.isArray(e))return e.map((a,n)=>u(p.Fragment,{children:b(a,r,s)},`arr-${n}-${s.current}`));if(p.isValidElement(e)){let a=e.props,n={};return a.children&&(n.children=b(a.children,r,s)),p.cloneElement(e,n)}return e},P=({children:e,className:r,duration:s=40,symbols:a=E,delay:n=0})=>{let[f,_]=A(null),[F,x]=A(!1),R=m(null),l=m(0),h=m([]),g=m(null),S=m(!1),N=w(()=>y(e),[e]),k=()=>{let o=[];for(let c=0;c<N.length;c++){let d=N[c],i=Math.floor(Math.random()*(s*.5)),t=i+Math.floor(Math.random()*(s*.5));o.push({to:d,start:i,end:t})}h.current=o,l.current=0,x(!1)},T=()=>{let o=0,c=[];for(let i=0;i<h.current.length;i++){let t=h.current[i];l.current>=t.end?(o++,c.push(t.to)):(l.current>=t.start&&(!t.char||Math.random()<.28)&&(t.char=I(a)),c.push($("span",{className:"relative inline-block",children:[u("span",{className:"invisible select-none","aria-hidden":"true",children:t.to===" "?"\xA0":t.to}),l.current>=t.start&&u("span",{className:"absolute inset-0 flex items-center justify-center opacity-50 font-mono text-[1em] leading-none",children:t.char})]},i)))}_(b(e,c,{current:0})),o===h.current.length?x(!0):(l.current++,g.current=requestAnimationFrame(T))};return v(()=>{let o=new IntersectionObserver(c=>{if(c[0].isIntersecting&&!S.current){S.current=!0;let d=setTimeout(()=>{k(),g.current=requestAnimationFrame(T)},n);return()=>clearTimeout(d)}},{threshold:.1});return R.current&&o.observe(R.current),()=>{o.disconnect(),g.current&&cancelAnimationFrame(g.current)}},[N,n]),u("span",{ref:R,className:M("inline-block whitespace-pre-wrap",r),children:F?e:f})};function q(e){return u(D,{fallback:u("span",{className:"invisible",children:e.children}),children:u(P,{...e})})}export{q as a};
3
- //# sourceMappingURL=chunk-ULRJYLR3.mjs.map
2
+ import{a as M}from"./chunk-S5TKCF6T.mjs";import p,{useState as A,useEffect as v,useMemo as w,useRef as m,Suspense as D}from"react";import{jsx as u,jsxs as $}from"react/jsx-runtime";var E="!<>-_\\/[]{}\u2014=+*^?#________",I=e=>e[Math.floor(Math.random()*e.length)],y=e=>{if(typeof e=="string"||typeof e=="number")return String(e);if(Array.isArray(e))return e.map(y).join("");if(p.isValidElement(e)){let r=e.props;return(r.text||"")+(r.label||"")+(r.title||"")+y(r.children)}return""},b=(e,r,s)=>{if(typeof e=="string"||typeof e=="number"){let a=String(e),n=[];for(let f=0;f<a.length;f++)n.push(u(p.Fragment,{children:r[s.current]||""},`char-${s.current}`)),s.current++;return n}if(Array.isArray(e))return e.map((a,n)=>u(p.Fragment,{children:b(a,r,s)},`arr-${n}-${s.current}`));if(p.isValidElement(e)){let a=e.props,n={};return a.children&&(n.children=b(a.children,r,s)),p.cloneElement(e,n)}return e},P=({children:e,className:r,duration:s=40,symbols:a=E,delay:n=0})=>{let[f,_]=A(null),[F,S]=A(!1),R=m(null),l=m(0),h=m([]),g=m(null),T=m(!1),N=w(()=>y(e),[e]),k=()=>{let o=[];for(let c=0;c<N.length;c++){let d=N[c],i=Math.floor(Math.random()*(s*.5)),t=i+Math.floor(Math.random()*(s*.5));o.push({to:d,start:i,end:t})}h.current=o,l.current=0,S(!1)},x=()=>{let o=0,c=[];for(let i=0;i<h.current.length;i++){let t=h.current[i];l.current>=t.end?(o++,c.push(t.to)):(l.current>=t.start&&(!t.char||Math.random()<.28)&&(t.char=I(a)),c.push($("span",{className:"relative inline-block",children:[u("span",{className:"invisible select-none","aria-hidden":"true",children:t.to===" "?"\xA0":t.to}),l.current>=t.start&&u("span",{className:"absolute inset-0 flex items-center justify-center opacity-50 font-mono leading-none",children:t.char})]},i)))}_(b(e,c,{current:0})),o===h.current.length?S(!0):(l.current++,g.current=requestAnimationFrame(x))};return v(()=>{let o=new IntersectionObserver(c=>{if(c[0].isIntersecting&&!T.current){T.current=!0;let d=setTimeout(()=>{k(),g.current=requestAnimationFrame(x)},n);return()=>clearTimeout(d)}},{threshold:.1});return R.current&&o.observe(R.current),()=>{o.disconnect(),g.current&&cancelAnimationFrame(g.current)}},[N,n]),u("span",{ref:R,className:M("inline-block whitespace-pre-wrap",r),children:F?e:f})};function q(e){return u(D,{fallback:u("span",{className:"invisible",children:e.children}),children:u(P,{...e})})}export{q as a};
3
+ //# sourceMappingURL=chunk-EMGXHXG7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/TextDecoder.tsx"],"sourcesContent":["\"use client\"\nimport { cn } from \"@/lib/utils\"\nimport React, {\n useState,\n useEffect,\n useMemo,\n useRef,\n Suspense,\n ReactNode,\n} from \"react\"\n\nconst SYMBOLS = \"!<>-_\\\\/[]{}—=+*^?#________\"\n\nconst randomChar = (symbols: string) =>\n symbols[Math.floor(Math.random() * symbols.length)]\n\nconst extractText = (node: ReactNode): string => {\n if (typeof node === \"string\" || typeof node === \"number\") return String(node)\n if (Array.isArray(node)) return node.map(extractText).join(\"\")\n if (React.isValidElement(node)) {\n const props = node.props as any\n return (\n (props.text || \"\") +\n (props.label || \"\") +\n (props.title || \"\") +\n extractText(props.children)\n )\n }\n return \"\"\n}\n\nconst injectScrambledText = (\n node: ReactNode,\n scrambledChars: (string | ReactNode)[],\n indexObj: { current: number }\n): ReactNode => {\n if (typeof node === \"string\" || typeof node === \"number\") {\n const text = String(node)\n const result: (string | ReactNode)[] = []\n for (let i = 0; i < text.length; i++) {\n result.push(\n <React.Fragment key={`char-${indexObj.current}`}>\n {scrambledChars[indexObj.current] || \"\"}\n </React.Fragment>\n )\n indexObj.current++\n }\n return result\n }\n\n if (Array.isArray(node)) {\n return node.map((child, idx) => (\n <React.Fragment key={`arr-${idx}-${indexObj.current}`}>\n {injectScrambledText(child, scrambledChars, indexObj)}\n </React.Fragment>\n ))\n }\n\n if (React.isValidElement(node)) {\n const props = node.props as any\n const newProps: any = {}\n\n if (props.children) {\n newProps.children = injectScrambledText(\n props.children,\n scrambledChars,\n indexObj\n )\n }\n return React.cloneElement(node, newProps)\n }\n return node\n}\n\nexport interface TextDecoderProps {\n children: ReactNode\n className?: string\n duration?: number\n symbols?: string\n delay?: number\n}\n\nconst TextDecoder = ({\n children,\n className,\n duration = 40,\n symbols = SYMBOLS,\n delay = 0,\n}: TextDecoderProps) => {\n const [outputNodes, setOutputNodes] = useState<ReactNode>(null)\n const [isComplete, setIsComplete] = useState(false)\n const elementRef = useRef<HTMLSpanElement>(null)\n const frameRef = useRef(0)\n const queueRef = useRef<\n { to: string; start: number; end: number; char?: string }[]\n >([])\n const rafRef = useRef<number | null>(null)\n const hasAnimatedRef = useRef(false)\n\n const fullText = useMemo(() => extractText(children), [children])\n\n const setupQueue = () => {\n const newQueue = []\n for (let i = 0; i < fullText.length; i++) {\n const to = fullText[i]\n // Every character starts within the first 50% of duration\n // and resolves within the second 50%\n const start = Math.floor(Math.random() * (duration * 0.5))\n const end = start + Math.floor(Math.random() * (duration * 0.5))\n newQueue.push({ to, start, end })\n }\n queueRef.current = newQueue\n frameRef.current = 0\n setIsComplete(false)\n }\n\n const update = () => {\n let complete = 0\n const currentScrambledChars: (string | ReactNode)[] = []\n\n for (let i = 0; i < queueRef.current.length; i++) {\n const item = queueRef.current[i]\n\n if (frameRef.current >= item.end) {\n // Animation finished for this letter\n complete++\n currentScrambledChars.push(item.to)\n } else {\n // Character is either waiting (invisible ghost) or scrambling\n if (frameRef.current >= item.start) {\n if (!item.char || Math.random() < 0.28) {\n item.char = randomChar(symbols)\n }\n }\n\n currentScrambledChars.push(\n <span key={i} className=\"relative inline-block\">\n {/* The Ghost: Locks the exact width/height of the specific character */}\n <span className=\"invisible select-none\" aria-hidden=\"true\">\n {item.to === \" \" ? \"\\u00A0\" : item.to}\n </span>\n {/* The Scramble: Overlays the ghost without affecting document flow */}\n {frameRef.current >= item.start && (\n <span className=\"absolute inset-0 flex items-center justify-center opacity-50 font-mono leading-none\">\n {item.char}\n </span>\n )}\n </span>\n )\n }\n }\n\n const indexObj = { current: 0 }\n setOutputNodes(\n injectScrambledText(children, currentScrambledChars, indexObj)\n )\n\n if (complete === queueRef.current.length) {\n setIsComplete(true)\n } else {\n frameRef.current++\n rafRef.current = requestAnimationFrame(update)\n }\n }\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting && !hasAnimatedRef.current) {\n hasAnimatedRef.current = true\n const timeoutId = setTimeout(() => {\n setupQueue()\n rafRef.current = requestAnimationFrame(update)\n }, delay)\n return () => clearTimeout(timeoutId)\n }\n },\n { threshold: 0.1 }\n )\n\n if (elementRef.current) observer.observe(elementRef.current)\n\n return () => {\n observer.disconnect()\n if (rafRef.current) cancelAnimationFrame(rafRef.current)\n }\n }, [fullText, delay])\n\n return (\n <span\n ref={elementRef}\n className={cn(\"inline-block whitespace-pre-wrap\", className)}\n >\n {isComplete ? children : outputNodes}\n </span>\n )\n}\n\nexport default function SuspenseDecodedText(props: TextDecoderProps) {\n return (\n <Suspense fallback={<span className=\"invisible\">{props.children}</span>}>\n <TextDecoder {...props} />\n </Suspense>\n )\n}\n"],"mappings":"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","names":["React","useState","useEffect","useMemo","useRef","Suspense","jsx","jsxs","SYMBOLS","randomChar","symbols","extractText","node","props","injectScrambledText","scrambledChars","indexObj","text","result","i","child","idx","newProps","TextDecoder","children","className","duration","delay","outputNodes","setOutputNodes","isComplete","setIsComplete","elementRef","frameRef","queueRef","rafRef","hasAnimatedRef","fullText","setupQueue","newQueue","to","start","end","update","complete","currentScrambledChars","item","observer","entries","timeoutId","cn","SuspenseDecodedText"]}