@hanzo/ui 5.3.28 → 5.3.29

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 (229) hide show
  1. package/dist/3d/button.js +298 -0
  2. package/dist/3d/button.mjs +273 -0
  3. package/dist/3d/card.js +234 -0
  4. package/dist/3d/card.mjs +207 -0
  5. package/dist/3d/carousel.js +371 -0
  6. package/dist/3d/carousel.mjs +344 -0
  7. package/dist/3d/grid.js +362 -0
  8. package/dist/3d/grid.mjs +337 -0
  9. package/dist/3d/index.js +1518 -0
  10. package/dist/3d/index.mjs +1472 -0
  11. package/dist/3d/marquee.js +352 -0
  12. package/dist/3d/marquee.mjs +327 -0
  13. package/dist/3d/pin.js +46 -0
  14. package/dist/3d/pin.mjs +24 -0
  15. package/dist/accordion.js +80 -0
  16. package/dist/accordion.mjs +55 -0
  17. package/dist/alert-dialog.js +220 -0
  18. package/dist/alert-dialog.mjs +187 -0
  19. package/dist/alert.js +68 -0
  20. package/dist/alert.mjs +64 -0
  21. package/dist/animation/animated-background.js +424 -0
  22. package/dist/animation/animated-background.mjs +418 -0
  23. package/dist/animation/animated-beam.js +119 -0
  24. package/dist/animation/animated-beam.mjs +97 -0
  25. package/dist/animation/animated-cursor.js +275 -0
  26. package/dist/animation/animated-cursor.mjs +270 -0
  27. package/dist/animation/animated-icon.js +357 -0
  28. package/dist/animation/animated-icon.mjs +351 -0
  29. package/dist/animation/animated-list.js +339 -0
  30. package/dist/animation/animated-list.mjs +333 -0
  31. package/dist/animation/animated-number.js +283 -0
  32. package/dist/animation/animated-number.mjs +277 -0
  33. package/dist/animation/animated-testimonials.js +97 -0
  34. package/dist/animation/animated-testimonials.mjs +75 -0
  35. package/dist/animation/animated-tooltip.js +67 -0
  36. package/dist/animation/animated-tooltip.mjs +45 -0
  37. package/dist/animation/apple-cards-carousel.js +308 -0
  38. package/dist/animation/apple-cards-carousel.mjs +285 -0
  39. package/dist/animation/apple-hello-effect.js +60 -0
  40. package/dist/animation/apple-hello-effect.mjs +38 -0
  41. package/dist/animation/index.js +1952 -0
  42. package/dist/animation/index.mjs +1921 -0
  43. package/dist/avatar.js +71 -0
  44. package/dist/avatar.mjs +47 -0
  45. package/dist/badge.js +66 -0
  46. package/dist/badge.mjs +40 -0
  47. package/dist/blocks/index.js +1665 -0
  48. package/dist/blocks/index.mjs +1626 -0
  49. package/dist/breadcrumb.js +107 -0
  50. package/dist/breadcrumb.mjs +99 -0
  51. package/dist/calendar.js +189 -0
  52. package/dist/calendar.mjs +164 -0
  53. package/dist/carousel.js +278 -0
  54. package/dist/carousel.mjs +249 -0
  55. package/dist/checkbox.js +60 -0
  56. package/dist/checkbox.mjs +35 -0
  57. package/dist/code/block.js +226 -0
  58. package/dist/code/block.mjs +203 -0
  59. package/dist/code/compare.js +446 -0
  60. package/dist/code/compare.mjs +423 -0
  61. package/dist/code/diff.js +430 -0
  62. package/dist/code/diff.mjs +407 -0
  63. package/dist/code/editor.js +243 -0
  64. package/dist/code/editor.mjs +218 -0
  65. package/dist/code/explorer.js +291 -0
  66. package/dist/code/explorer.mjs +268 -0
  67. package/dist/code/index.js +2551 -0
  68. package/dist/code/index.mjs +2510 -0
  69. package/dist/code/preview.js +400 -0
  70. package/dist/code/preview.mjs +377 -0
  71. package/dist/code/snippet.js +274 -0
  72. package/dist/code/snippet.mjs +250 -0
  73. package/dist/code/tabs.js +75 -0
  74. package/dist/code/tabs.mjs +53 -0
  75. package/dist/code/terminal.js +437 -0
  76. package/dist/code/terminal.mjs +414 -0
  77. package/dist/collapsible.js +33 -0
  78. package/dist/collapsible.mjs +9 -0
  79. package/dist/command.js +262 -0
  80. package/dist/command.mjs +232 -0
  81. package/dist/context-menu.js +207 -0
  82. package/dist/context-menu.mjs +171 -0
  83. package/dist/device/index.js +3 -0
  84. package/dist/device/index.mjs +2 -0
  85. package/dist/dialog.js +151 -0
  86. package/dist/dialog.mjs +121 -0
  87. package/dist/dock/basic.js +174 -0
  88. package/dist/dock/basic.mjs +151 -0
  89. package/dist/dock/index.js +628 -0
  90. package/dist/dock/index.mjs +601 -0
  91. package/dist/dock/limelight-nav.js +295 -0
  92. package/dist/dock/limelight-nav.mjs +274 -0
  93. package/dist/dock/macos.js +141 -0
  94. package/dist/dock/macos.mjs +118 -0
  95. package/dist/dock/menu.js +70 -0
  96. package/dist/dock/menu.mjs +48 -0
  97. package/dist/dock/message.js +144 -0
  98. package/dist/dock/message.mjs +122 -0
  99. package/dist/drawer.js +115 -0
  100. package/dist/drawer.mjs +103 -0
  101. package/dist/dropdown-menu.js +202 -0
  102. package/dist/dropdown-menu.mjs +166 -0
  103. package/dist/finance/AdvancedChart.js +48 -0
  104. package/dist/finance/AdvancedChart.mjs +46 -0
  105. package/dist/finance/CompanyProfile.js +48 -0
  106. package/dist/finance/CompanyProfile.mjs +46 -0
  107. package/dist/finance/CryptoScreener.js +45 -0
  108. package/dist/finance/CryptoScreener.mjs +43 -0
  109. package/dist/finance/Financials.js +52 -0
  110. package/dist/finance/Financials.mjs +50 -0
  111. package/dist/finance/ForexScreener.js +46 -0
  112. package/dist/finance/ForexScreener.mjs +44 -0
  113. package/dist/finance/MarketOverview.js +104 -0
  114. package/dist/finance/MarketOverview.mjs +102 -0
  115. package/dist/finance/NewsTimeline.js +44 -0
  116. package/dist/finance/NewsTimeline.mjs +42 -0
  117. package/dist/finance/OrderEntry.js +131 -0
  118. package/dist/finance/OrderEntry.mjs +129 -0
  119. package/dist/finance/OrdersHistory.js +64 -0
  120. package/dist/finance/OrdersHistory.mjs +62 -0
  121. package/dist/finance/PositionsList.js +80 -0
  122. package/dist/finance/PositionsList.mjs +78 -0
  123. package/dist/finance/StockScreener.js +46 -0
  124. package/dist/finance/StockScreener.mjs +44 -0
  125. package/dist/finance/SymbolInfo.js +46 -0
  126. package/dist/finance/SymbolInfo.mjs +44 -0
  127. package/dist/finance/TechnicalAnalysis.js +54 -0
  128. package/dist/finance/TechnicalAnalysis.mjs +52 -0
  129. package/dist/finance/TickerTape.js +56 -0
  130. package/dist/finance/TickerTape.mjs +54 -0
  131. package/dist/finance/TradingPanel.js +191 -0
  132. package/dist/finance/TradingPanel.mjs +189 -0
  133. package/dist/finance/index.js +930 -0
  134. package/dist/finance/index.mjs +914 -0
  135. package/dist/form/index.js +155 -0
  136. package/dist/form/index.mjs +125 -0
  137. package/dist/form.js +172 -0
  138. package/dist/form.mjs +142 -0
  139. package/dist/hover-card.js +58 -0
  140. package/dist/hover-card.mjs +34 -0
  141. package/dist/index.js +10179 -0
  142. package/dist/index.mjs +9785 -0
  143. package/dist/input-otp.js +79 -0
  144. package/dist/input-otp.mjs +54 -0
  145. package/dist/lib/utils.js +28 -0
  146. package/dist/lib/utils.mjs +24 -0
  147. package/dist/navigation/index.js +98 -0
  148. package/dist/navigation/index.mjs +79 -0
  149. package/dist/navigation-menu.js +149 -0
  150. package/dist/navigation-menu.mjs +116 -0
  151. package/dist/pattern/grid-pattern.js +333 -0
  152. package/dist/pattern/grid-pattern.mjs +310 -0
  153. package/dist/pattern/index.js +333 -0
  154. package/dist/pattern/index.mjs +310 -0
  155. package/dist/popover.js +63 -0
  156. package/dist/popover.mjs +37 -0
  157. package/dist/primitives/index.js +10179 -0
  158. package/dist/primitives/index.mjs +9785 -0
  159. package/dist/primitives-export.js +10179 -0
  160. package/dist/primitives-export.mjs +9785 -0
  161. package/dist/progress.js +62 -0
  162. package/dist/progress.mjs +37 -0
  163. package/dist/project/gantt.js +65 -0
  164. package/dist/project/gantt.mjs +43 -0
  165. package/dist/project/index.js +636 -0
  166. package/dist/project/index.mjs +611 -0
  167. package/dist/project/kanban.js +597 -0
  168. package/dist/project/kanban.mjs +572 -0
  169. package/dist/project/list.js +35 -0
  170. package/dist/project/list.mjs +12 -0
  171. package/dist/radio-group.js +68 -0
  172. package/dist/radio-group.mjs +45 -0
  173. package/dist/resizable.js +72 -0
  174. package/dist/resizable.mjs +48 -0
  175. package/dist/scroll-area.js +89 -0
  176. package/dist/scroll-area.mjs +66 -0
  177. package/dist/select.js +140 -0
  178. package/dist/select.mjs +111 -0
  179. package/dist/separator.js +59 -0
  180. package/dist/separator.mjs +34 -0
  181. package/dist/sheet.js +148 -0
  182. package/dist/sheet.mjs +117 -0
  183. package/dist/skeleton.js +32 -0
  184. package/dist/skeleton.mjs +27 -0
  185. package/dist/slider.js +99 -0
  186. package/dist/slider.mjs +73 -0
  187. package/dist/sonner.js +34 -0
  188. package/dist/sonner.mjs +29 -0
  189. package/dist/switch.js +62 -0
  190. package/dist/switch.mjs +37 -0
  191. package/dist/table.js +110 -0
  192. package/dist/table.mjs +101 -0
  193. package/dist/tabs.js +82 -0
  194. package/dist/tabs.mjs +57 -0
  195. package/dist/tailwind/index.js +2023 -0
  196. package/dist/tailwind/index.mjs +2011 -0
  197. package/dist/textarea.js +78 -0
  198. package/dist/textarea.mjs +56 -0
  199. package/dist/toggle-group.js +118 -0
  200. package/dist/toggle-group.mjs +93 -0
  201. package/dist/toggle.js +71 -0
  202. package/dist/toggle.mjs +48 -0
  203. package/dist/tooltip.js +67 -0
  204. package/dist/tooltip.mjs +40 -0
  205. package/dist/types/index.js +57 -0
  206. package/dist/types/index.mjs +51 -0
  207. package/dist/ui/announcement.js +129 -0
  208. package/dist/ui/announcement.mjs +107 -0
  209. package/dist/ui/avatar-group.js +88 -0
  210. package/dist/ui/avatar-group.mjs +65 -0
  211. package/dist/ui/banner.js +85 -0
  212. package/dist/ui/banner.mjs +62 -0
  213. package/dist/ui/cursor.js +78 -0
  214. package/dist/ui/cursor.mjs +56 -0
  215. package/dist/ui/index.js +475 -0
  216. package/dist/ui/index.mjs +442 -0
  217. package/dist/ui/marquee.js +74 -0
  218. package/dist/ui/marquee.mjs +52 -0
  219. package/dist/ui/pill.js +85 -0
  220. package/dist/ui/pill.mjs +62 -0
  221. package/dist/ui/spinner.js +28 -0
  222. package/dist/ui/spinner.mjs +26 -0
  223. package/dist/ui/tags.js +101 -0
  224. package/dist/ui/tags.mjs +79 -0
  225. package/dist/ui/ticker.js +73 -0
  226. package/dist/ui/ticker.mjs +51 -0
  227. package/dist/util/index.js +463 -0
  228. package/dist/util/index.mjs +404 -0
  229. package/package.json +1 -1
@@ -0,0 +1,171 @@
1
+ "use client";
2
+ import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
3
+ import { ChevronRight, Check, Circle } from 'lucide-react';
4
+ import { clsx } from 'clsx';
5
+ import { twMerge } from 'tailwind-merge';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ var __defProp = Object.defineProperty;
9
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
10
+ function cn(...inputs) {
11
+ return twMerge(clsx(inputs));
12
+ }
13
+ __name(cn, "cn");
14
+ var ContextMenu = ContextMenuPrimitive.Root;
15
+ var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
16
+ var ContextMenuGroup = ContextMenuPrimitive.Group;
17
+ var ContextMenuPortal = ContextMenuPrimitive.Portal;
18
+ var ContextMenuSub = ContextMenuPrimitive.Sub;
19
+ var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
20
+ var ContextMenuSubTrigger = /* @__PURE__ */ __name(({
21
+ className,
22
+ inset,
23
+ children,
24
+ ref,
25
+ ...props
26
+ }) => /* @__PURE__ */ jsxs(
27
+ ContextMenuPrimitive.SubTrigger,
28
+ {
29
+ className: cn(
30
+ "focus:bg-accent data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none focus:text-white",
31
+ inset && "pl-8",
32
+ className
33
+ ),
34
+ ref,
35
+ ...props,
36
+ children: [
37
+ children,
38
+ /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
39
+ ]
40
+ }
41
+ ), "ContextMenuSubTrigger");
42
+ ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
43
+ var ContextMenuSubContent = /* @__PURE__ */ __name(({
44
+ className,
45
+ ...props
46
+ }) => /* @__PURE__ */ jsx(
47
+ ContextMenuPrimitive.SubContent,
48
+ {
49
+ className: cn(
50
+ "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 z-50 min-w-[8rem] overflow-hidden rounded-md border bg-gray-300 p-1 text-white shadow-md",
51
+ className
52
+ ),
53
+ ...props
54
+ }
55
+ ), "ContextMenuSubContent");
56
+ ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
57
+ var ContextMenuContent = /* @__PURE__ */ __name(({
58
+ className,
59
+ ...props
60
+ }) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
61
+ ContextMenuPrimitive.Content,
62
+ {
63
+ className: cn(
64
+ "animate-in fade-in-80 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 z-50 min-w-[8rem] overflow-hidden rounded-md border border-gray-600 bg-gray-300 p-1 text-gray-50 shadow-md",
65
+ className
66
+ ),
67
+ ...props
68
+ }
69
+ ) }), "ContextMenuContent");
70
+ ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
71
+ var ContextMenuItem = /* @__PURE__ */ __name(({
72
+ className,
73
+ inset,
74
+ ...props
75
+ }) => /* @__PURE__ */ jsx(
76
+ ContextMenuPrimitive.Item,
77
+ {
78
+ className: cn(
79
+ "relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none focus:bg-gray-200 focus:text-white data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
80
+ inset && "pl-8",
81
+ className
82
+ ),
83
+ ...props
84
+ }
85
+ ), "ContextMenuItem");
86
+ ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
87
+ var ContextMenuCheckboxItem = /* @__PURE__ */ __name(({
88
+ className,
89
+ children,
90
+ checked,
91
+ ...props
92
+ }) => /* @__PURE__ */ jsxs(
93
+ ContextMenuPrimitive.CheckboxItem,
94
+ {
95
+ checked,
96
+ className: cn(
97
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
98
+ className
99
+ ),
100
+ ...props,
101
+ children: [
102
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
103
+ children
104
+ ]
105
+ }
106
+ ), "ContextMenuCheckboxItem");
107
+ ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
108
+ var ContextMenuRadioItem = /* @__PURE__ */ __name(({
109
+ className,
110
+ children,
111
+ ...props
112
+ }) => /* @__PURE__ */ jsxs(
113
+ ContextMenuPrimitive.RadioItem,
114
+ {
115
+ className: cn(
116
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
117
+ className
118
+ ),
119
+ ...props,
120
+ children: [
121
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
122
+ children
123
+ ]
124
+ }
125
+ ), "ContextMenuRadioItem");
126
+ ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
127
+ var ContextMenuLabel = /* @__PURE__ */ __name(({
128
+ className,
129
+ inset,
130
+ ...props
131
+ }) => /* @__PURE__ */ jsx(
132
+ ContextMenuPrimitive.Label,
133
+ {
134
+ className: cn(
135
+ "text-text-default px-2 py-1.5 text-sm font-semibold",
136
+ inset && "pl-8",
137
+ className
138
+ ),
139
+ ...props
140
+ }
141
+ ), "ContextMenuLabel");
142
+ ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
143
+ var ContextMenuSeparator = /* @__PURE__ */ __name(({
144
+ className,
145
+ ...props
146
+ }) => /* @__PURE__ */ jsx(
147
+ ContextMenuPrimitive.Separator,
148
+ {
149
+ className: cn("bg-border -mx-1 my-1 h-px", className),
150
+ ...props
151
+ }
152
+ ), "ContextMenuSeparator");
153
+ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
154
+ var ContextMenuShortcut = /* @__PURE__ */ __name(({
155
+ className,
156
+ ...props
157
+ }) => {
158
+ return /* @__PURE__ */ jsx(
159
+ "span",
160
+ {
161
+ className: cn(
162
+ "text-text-secondary ml-auto text-xs tracking-widest",
163
+ className
164
+ ),
165
+ ...props
166
+ }
167
+ );
168
+ }, "ContextMenuShortcut");
169
+ ContextMenuShortcut.displayName = "ContextMenuShortcut";
170
+
171
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ 'use strict';
3
+
@@ -0,0 +1,2 @@
1
+ "use client";
2
+
package/dist/dialog.js ADDED
@@ -0,0 +1,151 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var DialogPrimitive = require('@radix-ui/react-dialog');
5
+ var lucideReact = require('lucide-react');
6
+ var clsx = require('clsx');
7
+ var tailwindMerge = require('tailwind-merge');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+
10
+ function _interopNamespace(e) {
11
+ if (e && e.__esModule) return e;
12
+ var n = Object.create(null);
13
+ if (e) {
14
+ Object.keys(e).forEach(function (k) {
15
+ if (k !== 'default') {
16
+ var d = Object.getOwnPropertyDescriptor(e, k);
17
+ Object.defineProperty(n, k, d.get ? d : {
18
+ enumerable: true,
19
+ get: function () { return e[k]; }
20
+ });
21
+ }
22
+ });
23
+ }
24
+ n.default = e;
25
+ return Object.freeze(n);
26
+ }
27
+
28
+ var DialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(DialogPrimitive);
29
+
30
+ var __defProp = Object.defineProperty;
31
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
32
+ function cn(...inputs) {
33
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
34
+ }
35
+ __name(cn, "cn");
36
+ var Dialog = DialogPrimitive__namespace.Root;
37
+ var DialogTrigger = DialogPrimitive__namespace.Trigger;
38
+ var DialogPortal = DialogPrimitive__namespace.Portal;
39
+ var DialogOverlay = /* @__PURE__ */ __name(({
40
+ className,
41
+ ...props
42
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
43
+ DialogPrimitive__namespace.Overlay,
44
+ {
45
+ className: cn(
46
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50",
47
+ "bg-bg-dark/90",
48
+ className
49
+ ),
50
+ ...props
51
+ }
52
+ ), "DialogOverlay");
53
+ DialogOverlay.displayName = DialogPrimitive__namespace.Overlay.displayName;
54
+ var DialogContent = /* @__PURE__ */ __name(({
55
+ className,
56
+ children,
57
+ showCloseButton = false,
58
+ ...props
59
+ }) => /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { children: [
60
+ /* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, {}),
61
+ /* @__PURE__ */ jsxRuntime.jsxs(
62
+ DialogPrimitive__namespace.Content,
63
+ {
64
+ className: cn(
65
+ "bg-bg-default 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 border-divider fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:rounded-lg md:w-full",
66
+ className
67
+ ),
68
+ ...props,
69
+ children: [
70
+ children,
71
+ /* @__PURE__ */ jsxRuntime.jsxs(
72
+ DialogPrimitive__namespace.Close,
73
+ {
74
+ className: cn(
75
+ "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-text-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",
76
+ !showCloseButton && "hidden"
77
+ ),
78
+ children: [
79
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" }),
80
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
81
+ ]
82
+ }
83
+ )
84
+ ]
85
+ }
86
+ )
87
+ ] }), "DialogContent");
88
+ DialogContent.displayName = DialogPrimitive__namespace.Content.displayName;
89
+ var DialogHeader = /* @__PURE__ */ __name(({
90
+ className,
91
+ ...props
92
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
93
+ "div",
94
+ {
95
+ className: cn(
96
+ "flex flex-col space-y-1.5 text-center sm:text-left",
97
+ className
98
+ ),
99
+ ...props
100
+ }
101
+ ), "DialogHeader");
102
+ DialogHeader.displayName = "DialogHeader";
103
+ var DialogFooter = /* @__PURE__ */ __name(({
104
+ className,
105
+ ...props
106
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
107
+ "div",
108
+ {
109
+ className: cn(
110
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
111
+ className
112
+ ),
113
+ ...props
114
+ }
115
+ ), "DialogFooter");
116
+ DialogFooter.displayName = "DialogFooter";
117
+ var DialogTitle = /* @__PURE__ */ __name(({
118
+ className,
119
+ ...props
120
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
121
+ DialogPrimitive__namespace.Title,
122
+ {
123
+ className: cn(
124
+ "text-lg leading-none font-semibold tracking-tight",
125
+ className
126
+ ),
127
+ ...props
128
+ }
129
+ ), "DialogTitle");
130
+ DialogTitle.displayName = DialogPrimitive__namespace.Title.displayName;
131
+ var DialogDescription = /* @__PURE__ */ __name(({
132
+ className,
133
+ ...props
134
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
135
+ DialogPrimitive__namespace.Description,
136
+ {
137
+ className: cn("text-text-secondary text-sm", className),
138
+ ...props
139
+ }
140
+ ), "DialogDescription");
141
+ DialogDescription.displayName = DialogPrimitive__namespace.Description.displayName;
142
+
143
+ exports.Dialog = Dialog;
144
+ exports.DialogContent = DialogContent;
145
+ exports.DialogDescription = DialogDescription;
146
+ exports.DialogFooter = DialogFooter;
147
+ exports.DialogHeader = DialogHeader;
148
+ exports.DialogOverlay = DialogOverlay;
149
+ exports.DialogPortal = DialogPortal;
150
+ exports.DialogTitle = DialogTitle;
151
+ exports.DialogTrigger = DialogTrigger;
@@ -0,0 +1,121 @@
1
+ "use client";
2
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
3
+ import { X } from 'lucide-react';
4
+ import { clsx } from 'clsx';
5
+ import { twMerge } from 'tailwind-merge';
6
+ import { jsx, jsxs } from 'react/jsx-runtime';
7
+
8
+ var __defProp = Object.defineProperty;
9
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
10
+ function cn(...inputs) {
11
+ return twMerge(clsx(inputs));
12
+ }
13
+ __name(cn, "cn");
14
+ var Dialog = DialogPrimitive.Root;
15
+ var DialogTrigger = DialogPrimitive.Trigger;
16
+ var DialogPortal = DialogPrimitive.Portal;
17
+ var DialogOverlay = /* @__PURE__ */ __name(({
18
+ className,
19
+ ...props
20
+ }) => /* @__PURE__ */ jsx(
21
+ DialogPrimitive.Overlay,
22
+ {
23
+ className: cn(
24
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50",
25
+ "bg-bg-dark/90",
26
+ className
27
+ ),
28
+ ...props
29
+ }
30
+ ), "DialogOverlay");
31
+ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
32
+ var DialogContent = /* @__PURE__ */ __name(({
33
+ className,
34
+ children,
35
+ showCloseButton = false,
36
+ ...props
37
+ }) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
38
+ /* @__PURE__ */ jsx(DialogOverlay, {}),
39
+ /* @__PURE__ */ jsxs(
40
+ DialogPrimitive.Content,
41
+ {
42
+ className: cn(
43
+ "bg-bg-default 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 border-divider fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:rounded-lg md:w-full",
44
+ className
45
+ ),
46
+ ...props,
47
+ children: [
48
+ children,
49
+ /* @__PURE__ */ jsxs(
50
+ DialogPrimitive.Close,
51
+ {
52
+ className: cn(
53
+ "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-text-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",
54
+ !showCloseButton && "hidden"
55
+ ),
56
+ children: [
57
+ /* @__PURE__ */ jsx(X, { className: "h-4 w-4" }),
58
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
59
+ ]
60
+ }
61
+ )
62
+ ]
63
+ }
64
+ )
65
+ ] }), "DialogContent");
66
+ DialogContent.displayName = DialogPrimitive.Content.displayName;
67
+ var DialogHeader = /* @__PURE__ */ __name(({
68
+ className,
69
+ ...props
70
+ }) => /* @__PURE__ */ jsx(
71
+ "div",
72
+ {
73
+ className: cn(
74
+ "flex flex-col space-y-1.5 text-center sm:text-left",
75
+ className
76
+ ),
77
+ ...props
78
+ }
79
+ ), "DialogHeader");
80
+ DialogHeader.displayName = "DialogHeader";
81
+ var DialogFooter = /* @__PURE__ */ __name(({
82
+ className,
83
+ ...props
84
+ }) => /* @__PURE__ */ jsx(
85
+ "div",
86
+ {
87
+ className: cn(
88
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
89
+ className
90
+ ),
91
+ ...props
92
+ }
93
+ ), "DialogFooter");
94
+ DialogFooter.displayName = "DialogFooter";
95
+ var DialogTitle = /* @__PURE__ */ __name(({
96
+ className,
97
+ ...props
98
+ }) => /* @__PURE__ */ jsx(
99
+ DialogPrimitive.Title,
100
+ {
101
+ className: cn(
102
+ "text-lg leading-none font-semibold tracking-tight",
103
+ className
104
+ ),
105
+ ...props
106
+ }
107
+ ), "DialogTitle");
108
+ DialogTitle.displayName = DialogPrimitive.Title.displayName;
109
+ var DialogDescription = /* @__PURE__ */ __name(({
110
+ className,
111
+ ...props
112
+ }) => /* @__PURE__ */ jsx(
113
+ DialogPrimitive.Description,
114
+ {
115
+ className: cn("text-text-secondary text-sm", className),
116
+ ...props
117
+ }
118
+ ), "DialogDescription");
119
+ DialogDescription.displayName = DialogPrimitive.Description.displayName;
120
+
121
+ export { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
@@ -0,0 +1,174 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+ var framerMotion = require('framer-motion');
6
+ var clsx = require('clsx');
7
+ var tailwindMerge = require('tailwind-merge');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+
10
+ function _interopNamespace(e) {
11
+ if (e && e.__esModule) return e;
12
+ var n = Object.create(null);
13
+ if (e) {
14
+ Object.keys(e).forEach(function (k) {
15
+ if (k !== 'default') {
16
+ var d = Object.getOwnPropertyDescriptor(e, k);
17
+ Object.defineProperty(n, k, d.get ? d : {
18
+ enumerable: true,
19
+ get: function () { return e[k]; }
20
+ });
21
+ }
22
+ });
23
+ }
24
+ n.default = e;
25
+ return Object.freeze(n);
26
+ }
27
+
28
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
29
+
30
+ var __defProp = Object.defineProperty;
31
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
32
+ function cn(...inputs) {
33
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
34
+ }
35
+ __name(cn, "cn");
36
+ var DockContext = React__namespace.createContext({
37
+ magnification: 60,
38
+ distance: 140
39
+ });
40
+ var Dock = React__namespace.forwardRef(
41
+ ({
42
+ className,
43
+ children,
44
+ position = "bottom",
45
+ magnification = 60,
46
+ distance = 140
47
+ }, ref) => {
48
+ const positionClasses = {
49
+ bottom: "bottom-0 left-1/2 -translate-x-1/2 flex-row",
50
+ left: "left-0 top-1/2 -translate-y-1/2 flex-col",
51
+ right: "right-0 top-1/2 -translate-y-1/2 flex-col"
52
+ };
53
+ return /* @__PURE__ */ jsxRuntime.jsx(DockContext.Provider, { value: { magnification, distance }, children: /* @__PURE__ */ jsxRuntime.jsx(
54
+ "div",
55
+ {
56
+ ref,
57
+ className: cn(
58
+ "fixed z-50 flex items-end gap-1 rounded-2xl border border-white/10 bg-black/10 p-2 backdrop-blur-xl",
59
+ "shadow-2xl shadow-black/20",
60
+ "before:absolute before:inset-0 before:rounded-2xl before:bg-gradient-to-b before:from-white/10 before:to-transparent before:opacity-50",
61
+ positionClasses[position],
62
+ className
63
+ ),
64
+ children
65
+ }
66
+ ) });
67
+ }
68
+ );
69
+ Dock.displayName = "Dock";
70
+ var DockItem = React__namespace.forwardRef(
71
+ ({
72
+ className,
73
+ children,
74
+ onClick,
75
+ tooltip,
76
+ magnification: itemMagnification,
77
+ distance: itemDistance
78
+ }, ref) => {
79
+ const buttonRef = React__namespace.useRef(null);
80
+ const { magnification: contextMagnification, distance: contextDistance } = React__namespace.useContext(DockContext);
81
+ const magnification = itemMagnification ?? contextMagnification;
82
+ const distance = itemDistance ?? contextDistance;
83
+ const [isHovered, setIsHovered] = React__namespace.useState(false);
84
+ const mouseX = framerMotion.useMotionValue(Infinity);
85
+ const springConfig = { mass: 0.1, stiffness: 150, damping: 12 };
86
+ const size = framerMotion.useSpring(
87
+ framerMotion.useTransform(
88
+ mouseX,
89
+ [-distance, 0, distance],
90
+ [48, 48 + magnification, 48]
91
+ ),
92
+ springConfig
93
+ );
94
+ const handleMouseMove = /* @__PURE__ */ __name((e) => {
95
+ if (!buttonRef.current) return;
96
+ const rect = buttonRef.current.getBoundingClientRect();
97
+ const centerX = rect.left + rect.width / 2;
98
+ mouseX.set(e.clientX - centerX);
99
+ }, "handleMouseMove");
100
+ const handleMouseLeave = /* @__PURE__ */ __name(() => {
101
+ mouseX.set(Infinity);
102
+ setIsHovered(false);
103
+ }, "handleMouseLeave");
104
+ return /* @__PURE__ */ jsxRuntime.jsxs(
105
+ framerMotion.motion.div,
106
+ {
107
+ className: "relative",
108
+ onMouseMove: handleMouseMove,
109
+ onMouseLeave: handleMouseLeave,
110
+ onMouseEnter: () => setIsHovered(true),
111
+ children: [
112
+ tooltip && isHovered && /* @__PURE__ */ jsxRuntime.jsxs(
113
+ framerMotion.motion.div,
114
+ {
115
+ initial: { opacity: 0, y: 10, scale: 0.9 },
116
+ animate: { opacity: 1, y: 0, scale: 1 },
117
+ exit: { opacity: 0, y: 5, scale: 0.95 },
118
+ transition: { duration: 0.15 },
119
+ className: "absolute bottom-full left-1/2 mb-2 -translate-x-1/2 whitespace-nowrap rounded-lg bg-black/80 px-2 py-1 text-xs text-white backdrop-blur-md",
120
+ children: [
121
+ tooltip,
122
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -bottom-1 left-1/2 h-2 w-2 -translate-x-1/2 rotate-45 bg-black/80" })
123
+ ]
124
+ }
125
+ ),
126
+ /* @__PURE__ */ jsxRuntime.jsxs(
127
+ framerMotion.motion.button,
128
+ {
129
+ ref: buttonRef,
130
+ style: {
131
+ width: size,
132
+ height: size
133
+ },
134
+ whileTap: { scale: 0.9 },
135
+ onClick,
136
+ className: cn(
137
+ "relative flex items-center justify-center rounded-xl bg-white/10 backdrop-blur-md transition-colors",
138
+ "hover:bg-white/20",
139
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-white/50",
140
+ className
141
+ ),
142
+ children: [
143
+ /* @__PURE__ */ jsxRuntime.jsx(
144
+ framerMotion.motion.div,
145
+ {
146
+ style: {
147
+ width: size,
148
+ height: size
149
+ },
150
+ className: "flex items-center justify-center",
151
+ children
152
+ }
153
+ ),
154
+ /* @__PURE__ */ jsxRuntime.jsx(
155
+ framerMotion.motion.div,
156
+ {
157
+ className: "absolute inset-0 rounded-xl",
158
+ style: {
159
+ background: "linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%)"
160
+ }
161
+ }
162
+ )
163
+ ]
164
+ }
165
+ )
166
+ ]
167
+ }
168
+ );
169
+ }
170
+ );
171
+ DockItem.displayName = "DockItem";
172
+
173
+ exports.Dock = Dock;
174
+ exports.DockItem = DockItem;