@glinui/ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/dist/components/accordion.d.ts +42 -0
  2. package/dist/components/accordion.d.ts.map +1 -0
  3. package/dist/components/accordion.js +85 -0
  4. package/dist/components/alert-dialog.d.ts +30 -0
  5. package/dist/components/alert-dialog.d.ts.map +1 -0
  6. package/dist/components/alert-dialog.js +53 -0
  7. package/dist/components/alert.d.ts +15 -0
  8. package/dist/components/alert.d.ts.map +1 -0
  9. package/dist/components/alert.js +39 -0
  10. package/dist/components/animated-gradient.d.ts +11 -0
  11. package/dist/components/animated-gradient.d.ts.map +1 -0
  12. package/dist/components/animated-gradient.js +23 -0
  13. package/dist/components/aurora-background.d.ts +15 -0
  14. package/dist/components/aurora-background.d.ts.map +1 -0
  15. package/dist/components/aurora-background.js +26 -0
  16. package/dist/components/avatar.d.ts +54 -0
  17. package/dist/components/avatar.d.ts.map +1 -0
  18. package/dist/components/avatar.js +92 -0
  19. package/dist/components/badge.d.ts +13 -0
  20. package/dist/components/badge.d.ts.map +1 -0
  21. package/dist/components/badge.js +32 -0
  22. package/dist/components/blur-fade.d.ts +17 -0
  23. package/dist/components/blur-fade.d.ts.map +1 -0
  24. package/dist/components/blur-fade.js +48 -0
  25. package/dist/components/blur-spotlight.d.ts +13 -0
  26. package/dist/components/blur-spotlight.d.ts.map +1 -0
  27. package/dist/components/blur-spotlight.js +58 -0
  28. package/dist/components/border-beam.d.ts +11 -0
  29. package/dist/components/border-beam.d.ts.map +1 -0
  30. package/dist/components/border-beam.js +14 -0
  31. package/dist/components/button.d.ts +17 -0
  32. package/dist/components/button.d.ts.map +1 -0
  33. package/dist/components/button.js +33 -0
  34. package/dist/components/card.d.ts +39 -0
  35. package/dist/components/card.d.ts.map +1 -0
  36. package/dist/components/card.js +81 -0
  37. package/dist/components/checkbox.d.ts +14 -0
  38. package/dist/components/checkbox.d.ts.map +1 -0
  39. package/dist/components/checkbox.js +58 -0
  40. package/dist/components/chip.d.ts +15 -0
  41. package/dist/components/chip.d.ts.map +1 -0
  42. package/dist/components/chip.js +35 -0
  43. package/dist/components/chromatic-text.d.ts +11 -0
  44. package/dist/components/chromatic-text.d.ts.map +1 -0
  45. package/dist/components/chromatic-text.js +22 -0
  46. package/dist/components/code.d.ts +13 -0
  47. package/dist/components/code.d.ts.map +1 -0
  48. package/dist/components/code.js +27 -0
  49. package/dist/components/command.d.ts +89 -0
  50. package/dist/components/command.d.ts.map +1 -0
  51. package/dist/components/command.js +123 -0
  52. package/dist/components/counter.d.ts +19 -0
  53. package/dist/components/counter.d.ts.map +1 -0
  54. package/dist/components/counter.js +28 -0
  55. package/dist/components/data-table.d.ts +38 -0
  56. package/dist/components/data-table.d.ts.map +1 -0
  57. package/dist/components/data-table.js +183 -0
  58. package/dist/components/depth-card.d.ts +15 -0
  59. package/dist/components/depth-card.d.ts.map +1 -0
  60. package/dist/components/depth-card.js +52 -0
  61. package/dist/components/dot-pattern.d.ts +10 -0
  62. package/dist/components/dot-pattern.d.ts.map +1 -0
  63. package/dist/components/dot-pattern.js +10 -0
  64. package/dist/components/dropdown-menu.d.ts +74 -0
  65. package/dist/components/dropdown-menu.d.ts.map +1 -0
  66. package/dist/components/dropdown-menu.js +90 -0
  67. package/dist/components/floating-panel.d.ts +17 -0
  68. package/dist/components/floating-panel.d.ts.map +1 -0
  69. package/dist/components/floating-panel.js +57 -0
  70. package/dist/components/glass-breadcrumb.d.ts +17 -0
  71. package/dist/components/glass-breadcrumb.d.ts.map +1 -0
  72. package/dist/components/glass-breadcrumb.js +14 -0
  73. package/dist/components/glass-card.d.ts +20 -0
  74. package/dist/components/glass-card.d.ts.map +1 -0
  75. package/dist/components/glass-card.js +36 -0
  76. package/dist/components/glass-dock.d.ts +21 -0
  77. package/dist/components/glass-dock.d.ts.map +1 -0
  78. package/dist/components/glass-dock.js +54 -0
  79. package/dist/components/glass-navbar.d.ts +21 -0
  80. package/dist/components/glass-navbar.d.ts.map +1 -0
  81. package/dist/components/glass-navbar.js +43 -0
  82. package/dist/components/glass-toggle.d.ts +15 -0
  83. package/dist/components/glass-toggle.d.ts.map +1 -0
  84. package/dist/components/glass-toggle.js +32 -0
  85. package/dist/components/glow-border.d.ts +13 -0
  86. package/dist/components/glow-border.d.ts.map +1 -0
  87. package/dist/components/glow-border.js +10 -0
  88. package/dist/components/gradient-mesh.d.ts +13 -0
  89. package/dist/components/gradient-mesh.d.ts.map +1 -0
  90. package/dist/components/gradient-mesh.js +25 -0
  91. package/dist/components/heading.d.ts +18 -0
  92. package/dist/components/heading.d.ts.map +1 -0
  93. package/dist/components/heading.js +28 -0
  94. package/dist/components/hover-card.d.ts +32 -0
  95. package/dist/components/hover-card.d.ts.map +1 -0
  96. package/dist/components/hover-card.js +28 -0
  97. package/dist/components/icon-frame.d.ts +13 -0
  98. package/dist/components/icon-frame.d.ts.map +1 -0
  99. package/dist/components/icon-frame.js +27 -0
  100. package/dist/components/input.d.ts +13 -0
  101. package/dist/components/input.d.ts.map +1 -0
  102. package/dist/components/input.js +38 -0
  103. package/dist/components/kbd.d.ts +13 -0
  104. package/dist/components/kbd.d.ts.map +1 -0
  105. package/dist/components/kbd.js +27 -0
  106. package/dist/components/label.d.ts +13 -0
  107. package/dist/components/label.d.ts.map +1 -0
  108. package/dist/components/label.js +27 -0
  109. package/dist/components/light-leak.d.ts +15 -0
  110. package/dist/components/light-leak.d.ts.map +1 -0
  111. package/dist/components/light-leak.js +29 -0
  112. package/dist/components/link.d.ts +15 -0
  113. package/dist/components/link.d.ts.map +1 -0
  114. package/dist/components/link.js +32 -0
  115. package/dist/components/liquid-button.d.ts +17 -0
  116. package/dist/components/liquid-button.d.ts.map +1 -0
  117. package/dist/components/liquid-button.js +18 -0
  118. package/dist/components/magnetic-cta.d.ts +18 -0
  119. package/dist/components/magnetic-cta.d.ts.map +1 -0
  120. package/dist/components/magnetic-cta.js +46 -0
  121. package/dist/components/marquee.d.ts +10 -0
  122. package/dist/components/marquee.d.ts.map +1 -0
  123. package/dist/components/marquee.js +16 -0
  124. package/dist/components/meteor-shower.d.ts +11 -0
  125. package/dist/components/meteor-shower.d.ts.map +1 -0
  126. package/dist/components/meteor-shower.js +39 -0
  127. package/dist/components/modal.d.ts +30 -0
  128. package/dist/components/modal.d.ts.map +1 -0
  129. package/dist/components/modal.js +39 -0
  130. package/dist/components/morphing-tabs.d.ts +22 -0
  131. package/dist/components/morphing-tabs.d.ts.map +1 -0
  132. package/dist/components/morphing-tabs.js +72 -0
  133. package/dist/components/number-ticker.d.ts +11 -0
  134. package/dist/components/number-ticker.d.ts.map +1 -0
  135. package/dist/components/number-ticker.js +66 -0
  136. package/dist/components/orbiting-circles.d.ts +21 -0
  137. package/dist/components/orbiting-circles.d.ts.map +1 -0
  138. package/dist/components/orbiting-circles.js +24 -0
  139. package/dist/components/particle-field.d.ts +19 -0
  140. package/dist/components/particle-field.d.ts.map +1 -0
  141. package/dist/components/particle-field.js +41 -0
  142. package/dist/components/popover.d.ts +27 -0
  143. package/dist/components/popover.d.ts.map +1 -0
  144. package/dist/components/popover.js +52 -0
  145. package/dist/components/prism-border.d.ts +13 -0
  146. package/dist/components/prism-border.d.ts.map +1 -0
  147. package/dist/components/prism-border.js +16 -0
  148. package/dist/components/progress.d.ts +58 -0
  149. package/dist/components/progress.d.ts.map +1 -0
  150. package/dist/components/progress.js +108 -0
  151. package/dist/components/pulsating-button.d.ts +13 -0
  152. package/dist/components/pulsating-button.d.ts.map +1 -0
  153. package/dist/components/pulsating-button.js +40 -0
  154. package/dist/components/radio-group.d.ts +27 -0
  155. package/dist/components/radio-group.d.ts.map +1 -0
  156. package/dist/components/radio-group.js +58 -0
  157. package/dist/components/retro-grid.d.ts +13 -0
  158. package/dist/components/retro-grid.d.ts.map +1 -0
  159. package/dist/components/retro-grid.js +17 -0
  160. package/dist/components/reveal-text.d.ts +17 -0
  161. package/dist/components/reveal-text.d.ts.map +1 -0
  162. package/dist/components/reveal-text.js +61 -0
  163. package/dist/components/ripple-button.d.ts +11 -0
  164. package/dist/components/ripple-button.d.ts.map +1 -0
  165. package/dist/components/ripple-button.js +47 -0
  166. package/dist/components/ripple.d.ts +13 -0
  167. package/dist/components/ripple.d.ts.map +1 -0
  168. package/dist/components/ripple.js +24 -0
  169. package/dist/components/select.d.ts +24 -0
  170. package/dist/components/select.d.ts.map +1 -0
  171. package/dist/components/select.js +30 -0
  172. package/dist/components/separator.d.ts +29 -0
  173. package/dist/components/separator.d.ts.map +1 -0
  174. package/dist/components/separator.js +84 -0
  175. package/dist/components/sheet.d.ts +41 -0
  176. package/dist/components/sheet.d.ts.map +1 -0
  177. package/dist/components/sheet.js +85 -0
  178. package/dist/components/shimmer-button.d.ts +13 -0
  179. package/dist/components/shimmer-button.d.ts.map +1 -0
  180. package/dist/components/shimmer-button.js +32 -0
  181. package/dist/components/skeleton.d.ts +17 -0
  182. package/dist/components/skeleton.d.ts.map +1 -0
  183. package/dist/components/skeleton.js +42 -0
  184. package/dist/components/slider.d.ts +14 -0
  185. package/dist/components/slider.d.ts.map +1 -0
  186. package/dist/components/slider.js +89 -0
  187. package/dist/components/sonner.d.ts +14 -0
  188. package/dist/components/sonner.d.ts.map +1 -0
  189. package/dist/components/sonner.js +70 -0
  190. package/dist/components/spotlight-card.d.ts +11 -0
  191. package/dist/components/spotlight-card.d.ts.map +1 -0
  192. package/dist/components/spotlight-card.js +39 -0
  193. package/dist/components/spotlight.d.ts +19 -0
  194. package/dist/components/spotlight.d.ts.map +1 -0
  195. package/dist/components/spotlight.js +23 -0
  196. package/dist/components/status-dot.d.ts +24 -0
  197. package/dist/components/status-dot.d.ts.map +1 -0
  198. package/dist/components/status-dot.js +46 -0
  199. package/dist/components/switch.d.ts +42 -0
  200. package/dist/components/switch.d.ts.map +1 -0
  201. package/dist/components/switch.js +77 -0
  202. package/dist/components/table.d.ts +69 -0
  203. package/dist/components/table.d.ts.map +1 -0
  204. package/dist/components/table.js +176 -0
  205. package/dist/components/tabs.d.ts +34 -0
  206. package/dist/components/tabs.d.ts.map +1 -0
  207. package/dist/components/tabs.js +75 -0
  208. package/dist/components/text-reveal.d.ts +6 -0
  209. package/dist/components/text-reveal.d.ts.map +1 -0
  210. package/dist/components/text-reveal.js +56 -0
  211. package/dist/components/text.d.ts +13 -0
  212. package/dist/components/text.d.ts.map +1 -0
  213. package/dist/components/text.js +27 -0
  214. package/dist/components/textarea.d.ts +13 -0
  215. package/dist/components/textarea.d.ts.map +1 -0
  216. package/dist/components/textarea.js +37 -0
  217. package/dist/components/toast.d.ts +23 -0
  218. package/dist/components/toast.d.ts.map +1 -0
  219. package/dist/components/toast.js +36 -0
  220. package/dist/components/tooltip.d.ts +35 -0
  221. package/dist/components/tooltip.d.ts.map +1 -0
  222. package/dist/components/tooltip.js +34 -0
  223. package/dist/components/tree.d.ts +50 -0
  224. package/dist/components/tree.d.ts.map +1 -0
  225. package/dist/components/tree.js +77 -0
  226. package/dist/components/typewriter.d.ts +25 -0
  227. package/dist/components/typewriter.d.ts.map +1 -0
  228. package/dist/components/typewriter.js +109 -0
  229. package/dist/components/word-rotate.d.ts +11 -0
  230. package/dist/components/word-rotate.d.ts.map +1 -0
  231. package/dist/components/word-rotate.js +29 -0
  232. package/dist/index.d.ts +80 -0
  233. package/dist/index.d.ts.map +1 -0
  234. package/dist/index.js +79 -0
  235. package/dist/lib/cn.d.ts +3 -0
  236. package/dist/lib/cn.d.ts.map +1 -0
  237. package/dist/lib/cn.js +5 -0
  238. package/dist/lib/use-liquid-glass.d.ts +46 -0
  239. package/dist/lib/use-liquid-glass.d.ts.map +1 -0
  240. package/dist/lib/use-liquid-glass.js +144 -0
  241. package/dist/lib/use-prefers-reduced-motion.d.ts +2 -0
  242. package/dist/lib/use-prefers-reduced-motion.d.ts.map +1 -0
  243. package/dist/lib/use-prefers-reduced-motion.js +23 -0
  244. package/package.json +72 -0
@@ -0,0 +1,74 @@
1
+ import * as React from "react";
2
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
3
+ import { type VariantProps } from "class-variance-authority";
4
+ declare const dropdownMenuTriggerVariants: (props?: ({
5
+ variant?: "default" | "glass" | "frosted" | "outline" | "ghost" | null | undefined;
6
+ size?: "sm" | "md" | "lg" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ declare const dropdownMenuContentVariants: (props?: ({
9
+ variant?: "default" | "glass" | "frosted" | "outline" | "ghost" | null | undefined;
10
+ size?: "sm" | "md" | "lg" | null | undefined;
11
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
12
+ declare const dropdownMenuItemVariants: (props?: ({
13
+ variant?: "default" | "glass" | "frosted" | "outline" | "ghost" | null | undefined;
14
+ size?: "sm" | "md" | "lg" | null | undefined;
15
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
16
+ export type DropdownMenuProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root>;
17
+ export declare const DropdownMenu: React.FC<DropdownMenuPrimitive.DropdownMenuProps>;
18
+ export type DropdownMenuTriggerProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger> & VariantProps<typeof dropdownMenuTriggerVariants>;
19
+ export declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & VariantProps<(props?: ({
20
+ variant?: "default" | "glass" | "frosted" | "outline" | "ghost" | null | undefined;
21
+ size?: "sm" | "md" | "lg" | null | undefined;
22
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLButtonElement>>;
23
+ export type DropdownMenuContentProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> & VariantProps<typeof dropdownMenuContentVariants>;
24
+ export declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
25
+ variant?: "default" | "glass" | "frosted" | "outline" | "ghost" | null | undefined;
26
+ size?: "sm" | "md" | "lg" | null | undefined;
27
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
28
+ export type DropdownMenuItemProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & VariantProps<typeof dropdownMenuItemVariants> & {
29
+ inset?: boolean;
30
+ };
31
+ export declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
32
+ variant?: "default" | "glass" | "frosted" | "outline" | "ghost" | null | undefined;
33
+ size?: "sm" | "md" | "lg" | null | undefined;
34
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & {
35
+ inset?: boolean;
36
+ } & React.RefAttributes<HTMLDivElement>>;
37
+ export type DropdownMenuCheckboxItemProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem> & VariantProps<typeof dropdownMenuItemVariants>;
38
+ export declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
39
+ variant?: "default" | "glass" | "frosted" | "outline" | "ghost" | null | undefined;
40
+ size?: "sm" | "md" | "lg" | null | undefined;
41
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
42
+ export declare const DropdownMenuRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
43
+ export type DropdownMenuRadioItemProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem> & VariantProps<typeof dropdownMenuItemVariants>;
44
+ export declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
45
+ variant?: "default" | "glass" | "frosted" | "outline" | "ghost" | null | undefined;
46
+ size?: "sm" | "md" | "lg" | null | undefined;
47
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
48
+ export type DropdownMenuLabelProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {
49
+ inset?: boolean;
50
+ };
51
+ export declare const DropdownMenuLabel: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
52
+ inset?: boolean;
53
+ } & React.RefAttributes<HTMLDivElement>>;
54
+ export type DropdownMenuSeparatorProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>;
55
+ export declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
56
+ export type DropdownMenuShortcutProps = React.HTMLAttributes<HTMLSpanElement>;
57
+ export declare const DropdownMenuShortcut: ({ className, ...props }: DropdownMenuShortcutProps) => import("react/jsx-runtime").JSX.Element;
58
+ export declare const DropdownMenuSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
59
+ export type DropdownMenuSubTriggerProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & VariantProps<typeof dropdownMenuItemVariants> & {
60
+ inset?: boolean;
61
+ };
62
+ export declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
63
+ variant?: "default" | "glass" | "frosted" | "outline" | "ghost" | null | undefined;
64
+ size?: "sm" | "md" | "lg" | null | undefined;
65
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & {
66
+ inset?: boolean;
67
+ } & React.RefAttributes<HTMLDivElement>>;
68
+ export type DropdownMenuSubContentProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent> & VariantProps<typeof dropdownMenuContentVariants>;
69
+ export declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
70
+ variant?: "default" | "glass" | "frosted" | "outline" | "ghost" | null | undefined;
71
+ size?: "sm" | "md" | "lg" | null | undefined;
72
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
73
+ export {};
74
+ //# sourceMappingURL=dropdown-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../src/components/dropdown-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAA;AAEtE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,2BAA2B;;;8EAsBhC,CAAA;AAED,QAAA,MAAM,2BAA2B;;;8EAsBhC,CAAA;AAED,QAAA,MAAM,wBAAwB;;;8EAsB7B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAA;AAEjG,eAAO,MAAM,YAAY,mDAA6B,CAAA;AAEtD,MAAM,MAAM,wBAAwB,GAClC,KAAK,CAAC,wBAAwB,CAAC,OAAO,qBAAqB,CAAC,OAAO,CAAC,GACpE,YAAY,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAElD,eAAO,MAAM,mBAAmB;;;yHAS9B,CAAA;AAIF,MAAM,MAAM,wBAAwB,GAClC,KAAK,CAAC,wBAAwB,CAAC,OAAO,qBAAqB,CAAC,OAAO,CAAC,GACpE,YAAY,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAElD,eAAO,MAAM,mBAAmB;;;sHAY9B,CAAA;AAIF,MAAM,MAAM,qBAAqB,GAC/B,KAAK,CAAC,wBAAwB,CAAC,OAAO,qBAAqB,CAAC,IAAI,CAAC,GACjE,YAAY,CAAC,OAAO,wBAAwB,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAErE,eAAO,MAAM,gBAAgB;;;;YAF+B,OAAO;wCAWjE,CAAA;AAIF,MAAM,MAAM,6BAA6B,GACvC,KAAK,CAAC,wBAAwB,CAAC,OAAO,qBAAqB,CAAC,YAAY,CAAC,GACzE,YAAY,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/C,eAAO,MAAM,wBAAwB;;;sHAiBnC,CAAA;AAIF,eAAO,MAAM,sBAAsB,0HAAmC,CAAA;AAEtE,MAAM,MAAM,0BAA0B,GACpC,KAAK,CAAC,wBAAwB,CAAC,OAAO,qBAAqB,CAAC,SAAS,CAAC,GACtE,YAAY,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/C,eAAO,MAAM,qBAAqB;;;sHAgBhC,CAAA;AAIF,MAAM,MAAM,sBAAsB,GAChC,KAAK,CAAC,wBAAwB,CAAC,OAAO,qBAAqB,CAAC,KAAK,CAAC,GAClE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAErB,eAAO,MAAM,iBAAiB;YAFlB,OAAO;wCAWjB,CAAA;AAIF,MAAM,MAAM,0BAA0B,GAAG,KAAK,CAAC,wBAAwB,CACrE,OAAO,qBAAqB,CAAC,SAAS,CACvC,CAAA;AAED,eAAO,MAAM,qBAAqB,4KAKhC,CAAA;AAIF,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,CAAA;AAE7E,eAAO,MAAM,oBAAoB,GAAI,yBAAyB,yBAAyB,4CAEtF,CAAA;AAED,eAAO,MAAM,eAAe,sDAA4B,CAAA;AAExD,MAAM,MAAM,2BAA2B,GACrC,KAAK,CAAC,wBAAwB,CAAC,OAAO,qBAAqB,CAAC,UAAU,CAAC,GACvE,YAAY,CAAC,OAAO,wBAAwB,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAErE,eAAO,MAAM,sBAAsB;;;;YAFyB,OAAO;wCAcjE,CAAA;AAIF,MAAM,MAAM,2BAA2B,GACrC,KAAK,CAAC,wBAAwB,CAAC,OAAO,qBAAqB,CAAC,UAAU,CAAC,GACvE,YAAY,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAElD,eAAO,MAAM,sBAAsB;;;sHASjC,CAAA"}
@@ -0,0 +1,90 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
4
+ import { Check, ChevronRight, Circle } from "lucide-react";
5
+ import { cva } from "class-variance-authority";
6
+ import { cn } from "../lib/cn";
7
+ const dropdownMenuTriggerVariants = cva("inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-accent)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", {
8
+ variants: {
9
+ variant: {
10
+ default: "bg-[var(--color-surface)] text-[var(--color-foreground)] border border-[var(--color-border)]",
11
+ glass: "backdrop-blur-xl backdrop-saturate-[180%] bg-[var(--glass-3-surface)] border border-white/20 [border-top-color:var(--glass-refraction-top)] shadow-[0_0_0_1px_rgb(255_255_255_/_0.1)_inset,var(--shadow-glass-sm)] dark:border-white/[0.1] dark:shadow-[0_0_0_1px_rgb(255_255_255_/_0.05)_inset,0_8px_24px_rgb(0_0_0_/_0.35)] text-[var(--color-foreground)]",
12
+ frosted: "backdrop-blur-[40px] backdrop-saturate-[200%] bg-[var(--glass-4-surface)] border border-white/30 [border-top-color:var(--glass-refraction-top)] shadow-[0_0_0_1px_rgb(255_255_255_/_0.15)_inset,0_0_16px_rgb(255_255_255_/_0.1)_inset,var(--shadow-glass-md)] dark:border-white/[0.14] dark:shadow-[0_0_0_1px_rgb(255_255_255_/_0.07)_inset,0_0_16px_rgb(255_255_255_/_0.03)_inset,0_8px_24px_rgb(0_0_0_/_0.4)] text-[var(--color-foreground)]",
13
+ outline: "bg-transparent border border-[var(--color-border)] text-[var(--color-foreground)]",
14
+ ghost: "bg-transparent border border-transparent text-[var(--color-foreground)]"
15
+ },
16
+ size: {
17
+ sm: "h-8 px-3",
18
+ md: "h-10 px-4",
19
+ lg: "h-11 px-5"
20
+ }
21
+ },
22
+ defaultVariants: {
23
+ variant: "default",
24
+ size: "md"
25
+ }
26
+ });
27
+ const dropdownMenuContentVariants = cva("z-50 min-w-44 rounded-md border p-1 text-[var(--color-foreground)] shadow-md", {
28
+ variants: {
29
+ variant: {
30
+ default: "bg-[var(--color-surface)] border-[var(--color-border)]",
31
+ glass: "backdrop-blur-xl backdrop-saturate-[180%] bg-[var(--glass-3-surface)] border border-white/20 [border-top-color:var(--glass-refraction-top)] shadow-[0_0_0_1px_rgb(255_255_255_/_0.1)_inset,var(--shadow-glass-sm)] dark:border-white/[0.1] dark:shadow-[0_0_0_1px_rgb(255_255_255_/_0.05)_inset,0_8px_24px_rgb(0_0_0_/_0.35)]",
32
+ frosted: "backdrop-blur-[40px] backdrop-saturate-[200%] bg-[var(--glass-4-surface)] border border-white/30 [border-top-color:var(--glass-refraction-top)] shadow-[0_0_0_1px_rgb(255_255_255_/_0.15)_inset,0_0_16px_rgb(255_255_255_/_0.1)_inset,var(--shadow-glass-md)] dark:border-white/[0.14] dark:shadow-[0_0_0_1px_rgb(255_255_255_/_0.07)_inset,0_0_16px_rgb(255_255_255_/_0.03)_inset,0_8px_24px_rgb(0_0_0_/_0.4)]",
33
+ outline: "bg-transparent border-[var(--color-border)]",
34
+ ghost: "bg-transparent border-transparent"
35
+ },
36
+ size: {
37
+ sm: "text-xs",
38
+ md: "text-sm",
39
+ lg: "text-base"
40
+ }
41
+ },
42
+ defaultVariants: {
43
+ variant: "default",
44
+ size: "md"
45
+ }
46
+ });
47
+ const dropdownMenuItemVariants = cva("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 outline-none transition-colors focus:bg-black/5 focus:text-[var(--color-foreground)] dark:focus:bg-black/50 data-[highlighted]:bg-black/5 data-[highlighted]:text-[var(--color-foreground)] dark:data-[highlighted]:bg-black/50 data-[disabled]:pointer-events-none data-[disabled]:opacity-50", {
48
+ variants: {
49
+ variant: {
50
+ default: "",
51
+ glass: "",
52
+ frosted: "",
53
+ outline: "",
54
+ ghost: ""
55
+ },
56
+ size: {
57
+ sm: "text-xs",
58
+ md: "text-sm",
59
+ lg: "text-base"
60
+ }
61
+ },
62
+ defaultVariants: {
63
+ variant: "default",
64
+ size: "md"
65
+ }
66
+ });
67
+ export const DropdownMenu = DropdownMenuPrimitive.Root;
68
+ export const DropdownMenuTrigger = React.forwardRef(({ className, variant, size, ...props }, ref) => (_jsx(DropdownMenuPrimitive.Trigger, { ref: ref, className: cn(dropdownMenuTriggerVariants({ variant, size }), className), ...props })));
69
+ DropdownMenuTrigger.displayName = DropdownMenuPrimitive.Trigger.displayName;
70
+ export const DropdownMenuContent = React.forwardRef(({ className, sideOffset = 6, variant, size, ...props }, ref) => (_jsx(DropdownMenuPrimitive.Portal, { children: _jsx(DropdownMenuPrimitive.Content, { ref: ref, sideOffset: sideOffset, className: cn(dropdownMenuContentVariants({ variant, size }), className), ...props }) })));
71
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
72
+ export const DropdownMenuItem = React.forwardRef(({ className, inset, variant, size, ...props }, ref) => (_jsx(DropdownMenuPrimitive.Item, { ref: ref, className: cn(dropdownMenuItemVariants({ variant, size }), inset ? "pl-8" : "", className), ...props })));
73
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
74
+ export const DropdownMenuCheckboxItem = React.forwardRef(({ className, children, checked, variant, size, ...props }, ref) => (_jsxs(DropdownMenuPrimitive.CheckboxItem, { ref: ref, className: cn(dropdownMenuItemVariants({ variant, size }), "pl-8", className), checked: checked, ...props, children: [_jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: _jsx(DropdownMenuPrimitive.ItemIndicator, { children: _jsx(Check, { className: "h-4 w-4" }) }) }), children] })));
75
+ DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
76
+ export const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
77
+ export const DropdownMenuRadioItem = React.forwardRef(({ className, children, variant, size, ...props }, ref) => (_jsxs(DropdownMenuPrimitive.RadioItem, { ref: ref, className: cn(dropdownMenuItemVariants({ variant, size }), "pl-8", className), ...props, children: [_jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: _jsx(DropdownMenuPrimitive.ItemIndicator, { children: _jsx(Circle, { className: "h-2.5 w-2.5 fill-current" }) }) }), children] })));
78
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
79
+ export const DropdownMenuLabel = React.forwardRef(({ className, inset, ...props }, ref) => (_jsx(DropdownMenuPrimitive.Label, { ref: ref, className: cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className), ...props })));
80
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
81
+ export const DropdownMenuSeparator = React.forwardRef(({ className, ...props }, ref) => (_jsx(DropdownMenuPrimitive.Separator, { ref: ref, className: cn("my-1 h-px bg-[var(--color-border)]", className), ...props })));
82
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
83
+ export const DropdownMenuShortcut = ({ className, ...props }) => {
84
+ return _jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
85
+ };
86
+ export const DropdownMenuSub = DropdownMenuPrimitive.Sub;
87
+ export const DropdownMenuSubTrigger = React.forwardRef(({ className, inset, children, variant, size, ...props }, ref) => (_jsxs(DropdownMenuPrimitive.SubTrigger, { ref: ref, className: cn(dropdownMenuItemVariants({ variant, size }), inset && "pl-8", className), ...props, children: [children, _jsx(ChevronRight, { className: "ml-auto h-4 w-4" })] })));
88
+ DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
89
+ export const DropdownMenuSubContent = React.forwardRef(({ className, variant, size, ...props }, ref) => (_jsx(DropdownMenuPrimitive.SubContent, { ref: ref, className: cn(dropdownMenuContentVariants({ variant, size }), className), ...props })));
90
+ DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
@@ -0,0 +1,17 @@
1
+ import * as React from "react";
2
+ export interface FloatingPanelProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /** Enable dragging */
4
+ draggable?: boolean;
5
+ /** Initial x position */
6
+ defaultX?: number;
7
+ /** Initial y position */
8
+ defaultY?: number;
9
+ /** Panel width */
10
+ width?: number | string;
11
+ /** Show close button */
12
+ closable?: boolean;
13
+ /** Close callback */
14
+ onClose?: () => void;
15
+ }
16
+ export declare const FloatingPanel: React.ForwardRefExoticComponent<FloatingPanelProps & React.RefAttributes<HTMLDivElement>>;
17
+ //# sourceMappingURL=floating-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating-panel.d.ts","sourceRoot":"","sources":["../../src/components/floating-panel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC9E,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,eAAO,MAAM,aAAa,2FAwGzB,CAAA"}
@@ -0,0 +1,57 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { cn } from "../lib/cn";
5
+ export const FloatingPanel = React.forwardRef(({ className, children, draggable = true, defaultX = 0, defaultY = 0, width = 320, closable = false, onClose, style, ...props }, ref) => {
6
+ const panelRef = React.useRef(null);
7
+ const [position, setPosition] = React.useState({ x: defaultX, y: defaultY });
8
+ const [isDragging, setIsDragging] = React.useState(false);
9
+ const dragOffset = React.useRef({ x: 0, y: 0 });
10
+ const setRefs = React.useCallback((node) => {
11
+ panelRef.current = node;
12
+ if (typeof ref === "function") {
13
+ ref(node);
14
+ return;
15
+ }
16
+ if (ref)
17
+ ref.current = node;
18
+ }, [ref]);
19
+ const handlePointerDown = React.useCallback((event) => {
20
+ if (!draggable)
21
+ return;
22
+ const target = event.target;
23
+ if (target.closest("button, a, input, textarea, select"))
24
+ return;
25
+ const rect = panelRef.current?.getBoundingClientRect();
26
+ if (!rect)
27
+ return;
28
+ dragOffset.current = {
29
+ x: event.clientX - rect.left,
30
+ y: event.clientY - rect.top,
31
+ };
32
+ setIsDragging(true);
33
+ event.currentTarget.setPointerCapture(event.pointerId);
34
+ }, [draggable]);
35
+ const handlePointerMove = React.useCallback((event) => {
36
+ if (!isDragging)
37
+ return;
38
+ const parent = panelRef.current?.parentElement;
39
+ const parentRect = parent?.getBoundingClientRect();
40
+ if (!parentRect)
41
+ return;
42
+ setPosition({
43
+ x: event.clientX - parentRect.left - dragOffset.current.x,
44
+ y: event.clientY - parentRect.top - dragOffset.current.y,
45
+ });
46
+ }, [isDragging]);
47
+ const handlePointerUp = React.useCallback(() => {
48
+ setIsDragging(false);
49
+ }, []);
50
+ return (_jsxs("div", { ref: setRefs, className: cn("absolute z-50 overflow-hidden rounded-xl border border-white/10 bg-white/5 shadow-xl backdrop-blur-xl", isDragging ? "cursor-grabbing shadow-2xl" : draggable ? "cursor-grab" : "", className), style: {
51
+ left: position.x,
52
+ top: position.y,
53
+ width,
54
+ ...style,
55
+ }, onPointerDown: handlePointerDown, onPointerMove: handlePointerMove, onPointerUp: handlePointerUp, ...props, children: [closable && (_jsx("div", { className: "flex justify-end p-2", children: _jsx("button", { type: "button", "aria-label": "Close panel", className: "flex size-6 items-center justify-center rounded-md text-foreground/40 transition-colors hover:bg-white/10 hover:text-foreground", onClick: onClose, children: _jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: _jsx("path", { d: "M1 1l12 12M13 1L1 13" }) }) }) })), _jsx("div", { className: cn(closable ? "px-4 pb-4" : "p-4"), children: children })] }));
56
+ });
57
+ FloatingPanel.displayName = "FloatingPanel";
@@ -0,0 +1,17 @@
1
+ import * as React from "react";
2
+ export interface GlassBreadcrumbItem {
3
+ id: string;
4
+ label: React.ReactNode;
5
+ href?: string;
6
+ onClick?: () => void;
7
+ }
8
+ export interface GlassBreadcrumbProps extends React.HTMLAttributes<HTMLElement> {
9
+ /** Breadcrumb items */
10
+ items: GlassBreadcrumbItem[];
11
+ /** Separator character */
12
+ separator?: React.ReactNode;
13
+ /** Max items to show (rest collapsed) */
14
+ maxItems?: number;
15
+ }
16
+ export declare const GlassBreadcrumb: React.ForwardRefExoticComponent<GlassBreadcrumbProps & React.RefAttributes<HTMLElement>>;
17
+ //# sourceMappingURL=glass-breadcrumb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glass-breadcrumb.d.ts","sourceRoot":"","sources":["../../src/components/glass-breadcrumb.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IAC7E,uBAAuB;IACvB,KAAK,EAAE,mBAAmB,EAAE,CAAA;IAC5B,0BAA0B;IAC1B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,eAAe,0FAoE3B,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/cn";
4
+ export const GlassBreadcrumb = React.forwardRef(({ className, items, separator = "/", maxItems, ...props }, ref) => {
5
+ const visibleItems = React.useMemo(() => {
6
+ if (!maxItems || items.length <= maxItems)
7
+ return items;
8
+ const first = items[0];
9
+ const last = items.slice(-(maxItems - 1));
10
+ return [first, { id: "__ellipsis__", label: "..." }, ...last];
11
+ }, [items, maxItems]);
12
+ return (_jsx("nav", { ref: ref, "aria-label": "Breadcrumb", className: cn("inline-flex items-center gap-1 rounded-xl border border-white/10 bg-white/5 px-2 py-1 backdrop-blur-sm", className), ...props, children: _jsx("ol", { className: "flex items-center gap-1", children: visibleItems.map((item, index) => (_jsxs("li", { className: "flex items-center gap-1", children: [index > 0 && (_jsx("span", { "aria-hidden": "true", className: "text-xs text-foreground/30", children: separator })), item.id === "__ellipsis__" ? (_jsx("span", { className: "px-1 text-sm text-foreground/40", children: "..." })) : index === visibleItems.length - 1 ? (_jsx("span", { "aria-current": "page", className: "rounded-md bg-white/10 px-2 py-0.5 text-sm font-medium text-foreground backdrop-blur-sm", children: item.label })) : item.href ? (_jsx("a", { href: item.href, className: "rounded-md px-2 py-0.5 text-sm text-foreground/60 transition-colors duration-200 hover:bg-white/10 hover:text-foreground", onClick: item.onClick, children: item.label })) : (_jsx("button", { type: "button", className: "rounded-md px-2 py-0.5 text-sm text-foreground/60 transition-colors duration-200 hover:bg-white/10 hover:text-foreground", onClick: item.onClick, children: item.label }))] }, item.id))) }) }));
13
+ });
14
+ GlassBreadcrumb.displayName = "GlassBreadcrumb";
@@ -0,0 +1,20 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const glassCardVariants: (props?: ({
4
+ size?: "sm" | "md" | "lg" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ export type GlassCardProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof glassCardVariants>;
7
+ export declare const GlassCard: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
8
+ size?: "sm" | "md" | "lg" | null | undefined;
9
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const GlassCardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
11
+ size?: "sm" | "md" | "lg" | null | undefined;
12
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
13
+ export declare const GlassCardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
14
+ size?: "sm" | "md" | "lg" | null | undefined;
15
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
16
+ export declare const GlassCardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
17
+ size?: "sm" | "md" | "lg" | null | undefined;
18
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
19
+ export {};
20
+ //# sourceMappingURL=glass-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glass-card.d.ts","sourceRoot":"","sources":["../../src/components/glass-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,iBAAiB;;8EActB,CAAA;AAeD,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE1G,eAAO,MAAM,SAAS;;sHAEpB,CAAA;AAMF,eAAO,MAAM,eAAe;;sHAI3B,CAAA;AAID,eAAO,MAAM,gBAAgB;;sHAI5B,CAAA;AAID,eAAO,MAAM,eAAe;;sHAI3B,CAAA"}
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cva } from "class-variance-authority";
4
+ import { cn } from "../lib/cn";
5
+ const glassCardVariants = cva("relative rounded-2xl border [border-color:var(--glass-border)] [border-top-color:var(--glass-refraction-top)] bg-[var(--glass-3-surface)] [backdrop-filter:saturate(var(--glass-saturate))_blur(var(--glass-3-blur))] [-webkit-backdrop-filter:saturate(var(--glass-saturate))_blur(var(--glass-3-blur))] shadow-[var(--glass-3-shadow)] transition-[transform,box-shadow,backdrop-filter,background-color] duration-normal ease-standard hover:-translate-y-0.5 hover:bg-[var(--glass-4-surface)] hover:[backdrop-filter:saturate(var(--glass-saturate))_blur(var(--glass-4-blur))] hover:[-webkit-backdrop-filter:saturate(var(--glass-saturate))_blur(var(--glass-4-blur))] hover:shadow-[var(--glass-4-shadow)] motion-reduce:transition-none motion-reduce:transform-none motion-reduce:hover:translate-y-0", {
6
+ variants: {
7
+ size: {
8
+ sm: "p-4",
9
+ md: "p-6",
10
+ lg: "p-8"
11
+ }
12
+ },
13
+ defaultVariants: {
14
+ size: "md"
15
+ }
16
+ });
17
+ const glassCardSectionVariants = cva("", {
18
+ variants: {
19
+ size: {
20
+ sm: "space-y-1",
21
+ md: "space-y-1.5",
22
+ lg: "space-y-2"
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ size: "md"
27
+ }
28
+ });
29
+ export const GlassCard = React.forwardRef(({ className, size, ...props }, ref) => (_jsx("div", { ref: ref, className: cn(glassCardVariants({ size }), className), ...props })));
30
+ GlassCard.displayName = "GlassCard";
31
+ export const GlassCardHeader = React.forwardRef(({ className, size, ...props }, ref) => (_jsx("div", { ref: ref, className: cn(glassCardSectionVariants({ size }), className), ...props })));
32
+ GlassCardHeader.displayName = "GlassCardHeader";
33
+ export const GlassCardContent = React.forwardRef(({ className, size, ...props }, ref) => (_jsx("div", { ref: ref, className: cn(glassCardSectionVariants({ size }), className), ...props })));
34
+ GlassCardContent.displayName = "GlassCardContent";
35
+ export const GlassCardFooter = React.forwardRef(({ className, size, ...props }, ref) => (_jsx("div", { ref: ref, className: cn(glassCardSectionVariants({ size }), className), ...props })));
36
+ GlassCardFooter.displayName = "GlassCardFooter";
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ export interface GlassDockItem {
3
+ id: string;
4
+ icon: React.ReactNode;
5
+ label: string;
6
+ onClick?: () => void;
7
+ }
8
+ export interface GlassDockProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
9
+ /** Dock items */
10
+ items: GlassDockItem[];
11
+ /** Base icon size in px */
12
+ iconSize?: number;
13
+ /** Maximum magnification scale */
14
+ magnification?: number;
15
+ /** Distance in px at which magnification starts */
16
+ distance?: number;
17
+ /** Position */
18
+ position?: "bottom" | "top" | "left" | "right";
19
+ }
20
+ export declare const GlassDock: React.ForwardRefExoticComponent<GlassDockProps & React.RefAttributes<HTMLDivElement>>;
21
+ //# sourceMappingURL=glass-dock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glass-dock.d.ts","sourceRoot":"","sources":["../../src/components/glass-dock.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5F,iBAAiB;IACjB,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe;IACf,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;CAC/C;AAED,eAAO,MAAM,SAAS,uFAyGrB,CAAA"}
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { cn } from "../lib/cn";
5
+ import { usePrefersReducedMotion } from "../lib/use-prefers-reduced-motion";
6
+ export const GlassDock = React.forwardRef(({ className, items, iconSize = 48, magnification = 1.6, distance = 120, position = "bottom", ...props }, ref) => {
7
+ const prefersReducedMotion = usePrefersReducedMotion();
8
+ const dockRef = React.useRef(null);
9
+ const [mouseX, setMouseX] = React.useState(null);
10
+ const setRefs = React.useCallback((node) => {
11
+ dockRef.current = node;
12
+ if (typeof ref === "function") {
13
+ ref(node);
14
+ return;
15
+ }
16
+ if (ref)
17
+ ref.current = node;
18
+ }, [ref]);
19
+ const handleMouseMove = React.useCallback((event) => {
20
+ if (prefersReducedMotion)
21
+ return;
22
+ const rect = dockRef.current?.getBoundingClientRect();
23
+ if (!rect)
24
+ return;
25
+ const isHorizontal = position === "bottom" || position === "top";
26
+ setMouseX(isHorizontal ? event.clientX - rect.left : event.clientY - rect.top);
27
+ }, [prefersReducedMotion, position]);
28
+ const handleMouseLeave = React.useCallback(() => {
29
+ setMouseX(null);
30
+ }, []);
31
+ const isHorizontal = position === "bottom" || position === "top";
32
+ const positionClasses = {
33
+ bottom: "flex-row",
34
+ top: "flex-row",
35
+ left: "flex-col",
36
+ right: "flex-col",
37
+ };
38
+ return (_jsx("div", { ref: setRefs, role: "toolbar", "aria-label": "Dock", className: cn("inline-flex items-end gap-1.5 rounded-2xl border border-white/10 bg-white/5 p-2 shadow-lg backdrop-blur-xl", positionClasses[position], position === "left" || position === "right" ? "items-center" : "items-end", className), onMouseMove: handleMouseMove, onMouseLeave: handleMouseLeave, ...props, children: items.map((item, index) => {
39
+ let scale = 1;
40
+ if (mouseX !== null && !prefersReducedMotion) {
41
+ const itemCenter = index * (iconSize + 6) + iconSize / 2 + 8;
42
+ const dist = Math.abs(mouseX - itemCenter);
43
+ if (dist < distance) {
44
+ scale = 1 + (magnification - 1) * (1 - dist / distance);
45
+ }
46
+ }
47
+ const currentSize = iconSize * scale;
48
+ return (_jsxs("button", { type: "button", "aria-label": item.label, title: item.label, className: "group relative flex flex-col items-center transition-transform duration-200 ease-out motion-reduce:transition-none", style: {
49
+ width: currentSize,
50
+ height: currentSize,
51
+ }, onClick: item.onClick, children: [_jsx("div", { className: "flex h-full w-full items-center justify-center rounded-xl bg-white/10 backdrop-blur-sm transition-shadow duration-200 hover:shadow-md", style: { fontSize: currentSize * 0.5 }, children: item.icon }), _jsx("span", { className: "absolute -bottom-5 scale-0 whitespace-nowrap rounded-md bg-neutral-900 px-2 py-0.5 text-[10px] text-white opacity-0 transition-all duration-200 group-hover:scale-100 group-hover:opacity-100 dark:bg-neutral-100 dark:text-neutral-900", children: item.label })] }, item.id));
52
+ }) }));
53
+ });
54
+ GlassDock.displayName = "GlassDock";
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const glassNavbarVariants: (props?: ({
4
+ elevation?: "base" | "scrolled" | null | undefined;
5
+ size?: "sm" | "md" | "lg" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export type GlassNavbarProps = React.HTMLAttributes<HTMLElement> & Omit<VariantProps<typeof glassNavbarVariants>, "elevation"> & {
8
+ scrollThreshold?: number;
9
+ disableScrollTracking?: boolean;
10
+ elevation?: VariantProps<typeof glassNavbarVariants>["elevation"];
11
+ };
12
+ export declare const GlassNavbar: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLElement> & Omit<VariantProps<(props?: ({
13
+ elevation?: "base" | "scrolled" | null | undefined;
14
+ size?: "sm" | "md" | "lg" | null | undefined;
15
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string>, "elevation"> & {
16
+ scrollThreshold?: number;
17
+ disableScrollTracking?: boolean;
18
+ elevation?: VariantProps<typeof glassNavbarVariants>["elevation"];
19
+ } & React.RefAttributes<HTMLElement>>;
20
+ export {};
21
+ //# sourceMappingURL=glass-navbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glass-navbar.d.ts","sourceRoot":"","sources":["../../src/components/glass-navbar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKjE,QAAA,MAAM,mBAAmB;;;8EAoBxB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAC9D,IAAI,CAAC,YAAY,CAAC,OAAO,mBAAmB,CAAC,EAAE,WAAW,CAAC,GAAG;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,SAAS,CAAC,EAAE,YAAY,CAAC,OAAO,mBAAmB,CAAC,CAAC,WAAW,CAAC,CAAA;CAClE,CAAA;AAEH,eAAO,MAAM,WAAW;;;;sBALF,MAAM;4BACA,OAAO;gBACnB,YAAY,CAAC,OAAO,mBAAmB,CAAC,CAAC,WAAW,CAAC;qCAoDpE,CAAA"}
@@ -0,0 +1,43 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { cva } from "class-variance-authority";
5
+ import { cn } from "../lib/cn";
6
+ import { usePrefersReducedMotion } from "../lib/use-prefers-reduced-motion";
7
+ const glassNavbarVariants = cva("sticky top-0 z-50 w-full border text-foreground [border-color:var(--glass-border-strong)] [border-top-color:var(--glass-refraction-top)] transition-[backdrop-filter,background-color,box-shadow] duration-normal ease-standard motion-reduce:transition-none", {
8
+ variants: {
9
+ elevation: {
10
+ base: "bg-[var(--glass-2-surface)] [backdrop-filter:saturate(var(--glass-saturate))_blur(var(--glass-2-blur))] [-webkit-backdrop-filter:saturate(var(--glass-saturate))_blur(var(--glass-2-blur))] shadow-[0_0_0_1px_var(--glass-border-strong),0_1px_0_var(--glass-refraction-top)_inset,var(--glass-2-shadow)]",
11
+ scrolled: "bg-[var(--glass-4-surface)] [backdrop-filter:saturate(var(--glass-saturate))_blur(var(--glass-4-blur))] [-webkit-backdrop-filter:saturate(var(--glass-saturate))_blur(var(--glass-4-blur))] shadow-[0_0_0_1px_var(--glass-border-strong),0_1px_0_var(--glass-refraction-top)_inset,var(--glass-4-shadow)]"
12
+ },
13
+ size: {
14
+ sm: "min-h-12",
15
+ md: "min-h-14",
16
+ lg: "min-h-16"
17
+ }
18
+ },
19
+ defaultVariants: {
20
+ elevation: "base",
21
+ size: "md"
22
+ }
23
+ });
24
+ export const GlassNavbar = React.forwardRef(({ className, children, size, elevation, scrollThreshold = 8, disableScrollTracking = false, ...props }, ref) => {
25
+ const prefersReducedMotion = usePrefersReducedMotion();
26
+ const [isScrolled, setIsScrolled] = React.useState(false);
27
+ React.useEffect(() => {
28
+ if (disableScrollTracking || typeof window === "undefined") {
29
+ return;
30
+ }
31
+ const update = () => {
32
+ setIsScrolled(window.scrollY > scrollThreshold);
33
+ };
34
+ update();
35
+ window.addEventListener("scroll", update, { passive: true });
36
+ return () => {
37
+ window.removeEventListener("scroll", update);
38
+ };
39
+ }, [disableScrollTracking, scrollThreshold]);
40
+ const resolvedElevation = elevation ?? (isScrolled ? "scrolled" : "base");
41
+ return (_jsx("nav", { ref: ref, className: cn(glassNavbarVariants({ elevation: resolvedElevation, size }), prefersReducedMotion ? "transition-none" : null, className), ...props, children: children }));
42
+ });
43
+ GlassNavbar.displayName = "GlassNavbar";
@@ -0,0 +1,15 @@
1
+ import * as React from "react";
2
+ export interface GlassToggleProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onChange"> {
3
+ /** Controlled checked state */
4
+ checked?: boolean;
5
+ /** Default checked state */
6
+ defaultChecked?: boolean;
7
+ /** Callback when toggle state changes */
8
+ onCheckedChange?: (checked: boolean) => void;
9
+ /** Size variant */
10
+ size?: "sm" | "md" | "lg";
11
+ /** Color when checked */
12
+ activeColor?: string;
13
+ }
14
+ export declare const GlassToggle: React.ForwardRefExoticComponent<GlassToggleProps & React.RefAttributes<HTMLButtonElement>>;
15
+ //# sourceMappingURL=glass-toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glass-toggle.d.ts","sourceRoot":"","sources":["../../src/components/glass-toggle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IACvG,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,4BAA4B;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,yCAAyC;IACzC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5C,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,WAAW,4FAiFvB,CAAA"}
@@ -0,0 +1,32 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { cn } from "../lib/cn";
5
+ import { usePrefersReducedMotion } from "../lib/use-prefers-reduced-motion";
6
+ export const GlassToggle = React.forwardRef(({ className, checked: controlledChecked, defaultChecked = false, onCheckedChange, size = "md", activeColor, disabled, ...props }, ref) => {
7
+ const prefersReducedMotion = usePrefersReducedMotion();
8
+ const [internalChecked, setInternalChecked] = React.useState(defaultChecked);
9
+ const isChecked = controlledChecked ?? internalChecked;
10
+ const handleClick = React.useCallback(() => {
11
+ if (disabled)
12
+ return;
13
+ const next = !isChecked;
14
+ if (controlledChecked === undefined)
15
+ setInternalChecked(next);
16
+ onCheckedChange?.(next);
17
+ }, [isChecked, controlledChecked, onCheckedChange, disabled]);
18
+ const sizeConfig = {
19
+ sm: { track: "h-5 w-9", thumb: "size-3.5", translate: "translate-x-4" },
20
+ md: { track: "h-6 w-11", thumb: "size-4.5", translate: "translate-x-5" },
21
+ lg: { track: "h-7 w-[3.25rem]", thumb: "size-5.5", translate: "translate-x-6" },
22
+ };
23
+ const { track, thumb, translate } = sizeConfig[size];
24
+ return (_jsxs("button", { ref: ref, role: "switch", type: "button", "aria-checked": isChecked, disabled: disabled, className: cn("relative inline-flex shrink-0 cursor-pointer items-center rounded-full border p-0.5 backdrop-blur-sm", prefersReducedMotion ? "" : "transition-[background-color,border-color,box-shadow] duration-300", isChecked
25
+ ? "border-[var(--color-accent)]/30 bg-[var(--color-accent)]/80 shadow-[0_0_0_1px_rgb(255_255_255_/_0.15)_inset]"
26
+ : "border-black/15 bg-neutral-200/80 shadow-[inset_0_1px_3px_rgb(0_0_0_/_0.1)] dark:border-white/10 dark:bg-white/10", disabled && "pointer-events-none opacity-50", track, className), style: isChecked && activeColor ? { backgroundColor: activeColor } : undefined, onClick: handleClick, ...props, children: [_jsx("span", { "aria-hidden": "true", className: cn("absolute inset-0 rounded-full", prefersReducedMotion ? "" : "transition-opacity duration-300", isChecked ? "opacity-100" : "opacity-0"), style: {
27
+ background: activeColor
28
+ ? `linear-gradient(135deg, ${activeColor}, ${activeColor}88)`
29
+ : "linear-gradient(135deg, var(--color-accent), var(--color-accent) / 0.5)",
30
+ } }), _jsx("span", { "aria-hidden": "true", className: cn("relative z-[1] rounded-full bg-white shadow-[0_1px_3px_rgb(0_0_0_/_0.2),0_0_0_0.5px_rgb(0_0_0_/_0.08)]", prefersReducedMotion ? "" : "transition-transform duration-300 ease-out", isChecked ? translate : "translate-x-0", thumb) })] }));
31
+ });
32
+ GlassToggle.displayName = "GlassToggle";
@@ -0,0 +1,13 @@
1
+ import * as React from "react";
2
+ export interface GlowBorderProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /** Rotation duration in seconds */
4
+ duration?: number;
5
+ /** Glow color */
6
+ glowColor?: string;
7
+ /** Glow spread in px */
8
+ glowSize?: number;
9
+ /** Border radius */
10
+ borderRadius?: string;
11
+ }
12
+ export declare const GlowBorder: React.ForwardRefExoticComponent<GlowBorderProps & React.RefAttributes<HTMLDivElement>>;
13
+ //# sourceMappingURL=glow-border.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glow-border.d.ts","sourceRoot":"","sources":["../../src/components/glow-border.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC3E,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,UAAU,wFA8CtB,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/cn";
4
+ export const GlowBorder = React.forwardRef(({ className, children, duration = 4, glowColor = "var(--color-accent)", glowSize = 2, borderRadius = "var(--radius-lg)", style, ...props }, ref) => {
5
+ return (_jsxs("div", { ref: ref, className: cn("relative", className), style: { borderRadius, ...style }, ...props, children: [_jsx("div", { "aria-hidden": true, className: "absolute -inset-px overflow-hidden rounded-[inherit] motion-reduce:hidden", children: _jsx("div", { className: "absolute inset-[-100%] animate-glow-rotate", style: {
6
+ "--glow-duration": `${duration}s`,
7
+ background: `conic-gradient(from 0deg, transparent 0%, ${glowColor} 10%, transparent 20%)`,
8
+ } }) }), _jsx("div", { className: "relative rounded-[inherit] bg-[var(--color-background)]", style: { padding: glowSize }, children: _jsx("div", { className: "rounded-[inherit] bg-[var(--color-surface)]", children: children }) })] }));
9
+ });
10
+ GlowBorder.displayName = "GlowBorder";
@@ -0,0 +1,13 @@
1
+ import * as React from "react";
2
+ export interface GradientMeshProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /** Gradient color stops */
4
+ colors?: string[];
5
+ /** Animation duration in seconds */
6
+ duration?: number;
7
+ /** Blur intensity in px */
8
+ blur?: number;
9
+ /** Overall intensity/opacity (0-1) */
10
+ intensity?: number;
11
+ }
12
+ export declare const GradientMesh: React.ForwardRefExoticComponent<GradientMeshProps & React.RefAttributes<HTMLDivElement>>;
13
+ //# sourceMappingURL=gradient-mesh.d.ts.map