@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,129 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var React2 = require('react');
5
+ var lucideReact = require('lucide-react');
6
+ var clsx = require('clsx');
7
+ var tailwindMerge = require('tailwind-merge');
8
+ var reactSlot = require('@radix-ui/react-slot');
9
+ var classVarianceAuthority = require('class-variance-authority');
10
+ var jsxRuntime = require('react/jsx-runtime');
11
+
12
+ function _interopNamespace(e) {
13
+ if (e && e.__esModule) return e;
14
+ var n = Object.create(null);
15
+ if (e) {
16
+ Object.keys(e).forEach(function (k) {
17
+ if (k !== 'default') {
18
+ var d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
22
+ });
23
+ }
24
+ });
25
+ }
26
+ n.default = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
31
+
32
+ var __defProp = Object.defineProperty;
33
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
34
+ function cn(...inputs) {
35
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
36
+ }
37
+ __name(cn, "cn");
38
+ var buttonVariants = classVarianceAuthority.cva(
39
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
40
+ {
41
+ variants: {
42
+ variant: {
43
+ default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
44
+ destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
45
+ outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
46
+ secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
47
+ ghost: "hover:bg-accent hover:text-accent-foreground",
48
+ link: "text-primary underline-offset-4 hover:underline",
49
+ // Keep the additional Hanzo variants for backward compatibility
50
+ primary: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
51
+ linkFG: "text-primary underline-offset-4 hover:underline",
52
+ linkMuted: "text-muted-foreground underline-offset-4 hover:underline hover:text-foreground"
53
+ },
54
+ size: {
55
+ default: "h-9 px-4 py-2",
56
+ sm: "h-8 rounded-md px-3 text-xs",
57
+ lg: "h-10 rounded-md px-8",
58
+ icon: "h-9 w-9"
59
+ }
60
+ },
61
+ defaultVariants: {
62
+ variant: "default",
63
+ size: "default"
64
+ }
65
+ }
66
+ );
67
+ var Button = React2__namespace.forwardRef(
68
+ ({ className, variant, size, asChild = false, isLoading = false, children, ...props }, ref) => {
69
+ const Comp = asChild ? reactSlot.Slot : "button";
70
+ return /* @__PURE__ */ jsxRuntime.jsxs(
71
+ Comp,
72
+ {
73
+ className: cn(buttonVariants({ variant, size, className })),
74
+ ref,
75
+ ...props,
76
+ children: [
77
+ isLoading ? /* @__PURE__ */ jsxRuntime.jsx(
78
+ lucideReact.Loader2,
79
+ {
80
+ className: cn("h-4 w-4 animate-spin", size !== "icon" && "mr-2")
81
+ }
82
+ ) : null,
83
+ isLoading && size === "icon" ? null : children
84
+ ]
85
+ }
86
+ );
87
+ }
88
+ );
89
+ Button.displayName = "Button";
90
+ var Announcement = React2__namespace.forwardRef(
91
+ ({ className, children, dismissible = true, onDismiss, ...props }, ref) => {
92
+ const [isVisible, setIsVisible] = React2__namespace.useState(true);
93
+ const handleDismiss = /* @__PURE__ */ __name(() => {
94
+ setIsVisible(false);
95
+ onDismiss?.();
96
+ }, "handleDismiss");
97
+ if (!isVisible) return null;
98
+ return /* @__PURE__ */ jsxRuntime.jsxs(
99
+ "div",
100
+ {
101
+ ref,
102
+ className: cn(
103
+ "relative flex items-center gap-4 rounded-lg border bg-background px-4 py-3 text-sm",
104
+ className
105
+ ),
106
+ ...props,
107
+ children: [
108
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children }),
109
+ dismissible && /* @__PURE__ */ jsxRuntime.jsxs(
110
+ Button,
111
+ {
112
+ variant: "ghost",
113
+ size: "icon",
114
+ className: "h-6 w-6",
115
+ onClick: handleDismiss,
116
+ children: [
117
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" }),
118
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Dismiss" })
119
+ ]
120
+ }
121
+ )
122
+ ]
123
+ }
124
+ );
125
+ }
126
+ );
127
+ Announcement.displayName = "Announcement";
128
+
129
+ exports.Announcement = Announcement;
@@ -0,0 +1,107 @@
1
+ "use client";
2
+ import * as React2 from 'react';
3
+ import { Loader2, X } from 'lucide-react';
4
+ import { clsx } from 'clsx';
5
+ import { twMerge } from 'tailwind-merge';
6
+ import { Slot } from '@radix-ui/react-slot';
7
+ import { cva } from 'class-variance-authority';
8
+ import { jsxs, jsx } from 'react/jsx-runtime';
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
+ function cn(...inputs) {
13
+ return twMerge(clsx(inputs));
14
+ }
15
+ __name(cn, "cn");
16
+ var buttonVariants = cva(
17
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
18
+ {
19
+ variants: {
20
+ variant: {
21
+ default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
22
+ destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
23
+ outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
24
+ secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
25
+ ghost: "hover:bg-accent hover:text-accent-foreground",
26
+ link: "text-primary underline-offset-4 hover:underline",
27
+ // Keep the additional Hanzo variants for backward compatibility
28
+ primary: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
29
+ linkFG: "text-primary underline-offset-4 hover:underline",
30
+ linkMuted: "text-muted-foreground underline-offset-4 hover:underline hover:text-foreground"
31
+ },
32
+ size: {
33
+ default: "h-9 px-4 py-2",
34
+ sm: "h-8 rounded-md px-3 text-xs",
35
+ lg: "h-10 rounded-md px-8",
36
+ icon: "h-9 w-9"
37
+ }
38
+ },
39
+ defaultVariants: {
40
+ variant: "default",
41
+ size: "default"
42
+ }
43
+ }
44
+ );
45
+ var Button = React2.forwardRef(
46
+ ({ className, variant, size, asChild = false, isLoading = false, children, ...props }, ref) => {
47
+ const Comp = asChild ? Slot : "button";
48
+ return /* @__PURE__ */ jsxs(
49
+ Comp,
50
+ {
51
+ className: cn(buttonVariants({ variant, size, className })),
52
+ ref,
53
+ ...props,
54
+ children: [
55
+ isLoading ? /* @__PURE__ */ jsx(
56
+ Loader2,
57
+ {
58
+ className: cn("h-4 w-4 animate-spin", size !== "icon" && "mr-2")
59
+ }
60
+ ) : null,
61
+ isLoading && size === "icon" ? null : children
62
+ ]
63
+ }
64
+ );
65
+ }
66
+ );
67
+ Button.displayName = "Button";
68
+ var Announcement = React2.forwardRef(
69
+ ({ className, children, dismissible = true, onDismiss, ...props }, ref) => {
70
+ const [isVisible, setIsVisible] = React2.useState(true);
71
+ const handleDismiss = /* @__PURE__ */ __name(() => {
72
+ setIsVisible(false);
73
+ onDismiss?.();
74
+ }, "handleDismiss");
75
+ if (!isVisible) return null;
76
+ return /* @__PURE__ */ jsxs(
77
+ "div",
78
+ {
79
+ ref,
80
+ className: cn(
81
+ "relative flex items-center gap-4 rounded-lg border bg-background px-4 py-3 text-sm",
82
+ className
83
+ ),
84
+ ...props,
85
+ children: [
86
+ /* @__PURE__ */ jsx("div", { className: "flex-1", children }),
87
+ dismissible && /* @__PURE__ */ jsxs(
88
+ Button,
89
+ {
90
+ variant: "ghost",
91
+ size: "icon",
92
+ className: "h-6 w-6",
93
+ onClick: handleDismiss,
94
+ children: [
95
+ /* @__PURE__ */ jsx(X, { className: "h-4 w-4" }),
96
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Dismiss" })
97
+ ]
98
+ }
99
+ )
100
+ ]
101
+ }
102
+ );
103
+ }
104
+ );
105
+ Announcement.displayName = "Announcement";
106
+
107
+ export { Announcement };
@@ -0,0 +1,88 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+ var clsx = require('clsx');
6
+ var tailwindMerge = require('tailwind-merge');
7
+ var AvatarPrimitive = require('@radix-ui/react-avatar');
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
+ var AvatarPrimitive__namespace = /*#__PURE__*/_interopNamespace(AvatarPrimitive);
30
+
31
+ var __defProp = Object.defineProperty;
32
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
33
+ function cn(...inputs) {
34
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
35
+ }
36
+ __name(cn, "cn");
37
+ var Avatar = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
38
+ AvatarPrimitive__namespace.Root,
39
+ {
40
+ className: cn(
41
+ "relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
42
+ className
43
+ ),
44
+ ref,
45
+ ...props
46
+ }
47
+ ), "Avatar");
48
+ Avatar.displayName = AvatarPrimitive__namespace.Root.displayName;
49
+ var AvatarImage = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
50
+ AvatarPrimitive__namespace.Image,
51
+ {
52
+ className: cn("aspect-square h-full w-full", className),
53
+ ref,
54
+ ...props
55
+ }
56
+ ), "AvatarImage");
57
+ AvatarImage.displayName = AvatarPrimitive__namespace.Image.displayName;
58
+ var AvatarFallback = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
59
+ AvatarPrimitive__namespace.Fallback,
60
+ {
61
+ className: cn(
62
+ "bg-muted flex h-full w-full items-center justify-center rounded-full",
63
+ className
64
+ ),
65
+ ref,
66
+ ...props
67
+ }
68
+ ), "AvatarFallback");
69
+ AvatarFallback.displayName = AvatarPrimitive__namespace.Fallback.displayName;
70
+ var AvatarGroup = React__namespace.forwardRef(
71
+ ({ className, items, max = 5, ...props }, ref) => {
72
+ const displayItems = items.slice(0, max);
73
+ const remaining = items.length - max;
74
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cn("flex -space-x-4", className), ...props, children: [
75
+ displayItems.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "border-2 border-background", children: [
76
+ /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: item.src, alt: item.alt }),
77
+ /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: item.fallback })
78
+ ] }, index)),
79
+ remaining > 0 && /* @__PURE__ */ jsxRuntime.jsx(Avatar, { className: "border-2 border-background", children: /* @__PURE__ */ jsxRuntime.jsxs(AvatarFallback, { children: [
80
+ "+",
81
+ remaining
82
+ ] }) })
83
+ ] });
84
+ }
85
+ );
86
+ AvatarGroup.displayName = "AvatarGroup";
87
+
88
+ exports.AvatarGroup = AvatarGroup;
@@ -0,0 +1,65 @@
1
+ "use client";
2
+ import * as React from 'react';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import * as AvatarPrimitive from '@radix-ui/react-avatar';
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 Avatar = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ jsx(
15
+ AvatarPrimitive.Root,
16
+ {
17
+ className: cn(
18
+ "relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
19
+ className
20
+ ),
21
+ ref,
22
+ ...props
23
+ }
24
+ ), "Avatar");
25
+ Avatar.displayName = AvatarPrimitive.Root.displayName;
26
+ var AvatarImage = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ jsx(
27
+ AvatarPrimitive.Image,
28
+ {
29
+ className: cn("aspect-square h-full w-full", className),
30
+ ref,
31
+ ...props
32
+ }
33
+ ), "AvatarImage");
34
+ AvatarImage.displayName = AvatarPrimitive.Image.displayName;
35
+ var AvatarFallback = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ jsx(
36
+ AvatarPrimitive.Fallback,
37
+ {
38
+ className: cn(
39
+ "bg-muted flex h-full w-full items-center justify-center rounded-full",
40
+ className
41
+ ),
42
+ ref,
43
+ ...props
44
+ }
45
+ ), "AvatarFallback");
46
+ AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
47
+ var AvatarGroup = React.forwardRef(
48
+ ({ className, items, max = 5, ...props }, ref) => {
49
+ const displayItems = items.slice(0, max);
50
+ const remaining = items.length - max;
51
+ return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex -space-x-4", className), ...props, children: [
52
+ displayItems.map((item, index) => /* @__PURE__ */ jsxs(Avatar, { className: "border-2 border-background", children: [
53
+ /* @__PURE__ */ jsx(AvatarImage, { src: item.src, alt: item.alt }),
54
+ /* @__PURE__ */ jsx(AvatarFallback, { children: item.fallback })
55
+ ] }, index)),
56
+ remaining > 0 && /* @__PURE__ */ jsx(Avatar, { className: "border-2 border-background", children: /* @__PURE__ */ jsxs(AvatarFallback, { children: [
57
+ "+",
58
+ remaining
59
+ ] }) })
60
+ ] });
61
+ }
62
+ );
63
+ AvatarGroup.displayName = "AvatarGroup";
64
+
65
+ export { AvatarGroup };
@@ -0,0 +1,85 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+ var classVarianceAuthority = require('class-variance-authority');
6
+ var lucideReact = require('lucide-react');
7
+ var clsx = require('clsx');
8
+ var tailwindMerge = require('tailwind-merge');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+
11
+ function _interopNamespace(e) {
12
+ if (e && e.__esModule) return e;
13
+ var n = Object.create(null);
14
+ if (e) {
15
+ Object.keys(e).forEach(function (k) {
16
+ if (k !== 'default') {
17
+ var d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: function () { return e[k]; }
21
+ });
22
+ }
23
+ });
24
+ }
25
+ n.default = e;
26
+ return Object.freeze(n);
27
+ }
28
+
29
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
30
+
31
+ var __defProp = Object.defineProperty;
32
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
33
+ function cn(...inputs) {
34
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
35
+ }
36
+ __name(cn, "cn");
37
+ var bannerVariants = classVarianceAuthority.cva(
38
+ "relative w-full border-b px-4 py-3 text-sm [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
39
+ {
40
+ variants: {
41
+ variant: {
42
+ default: "bg-background text-foreground",
43
+ info: "border-blue-500/50 bg-blue-50 text-blue-900 dark:bg-blue-950 dark:text-blue-100 [&>svg]:text-blue-600 dark:[&>svg]:text-blue-400",
44
+ success: "border-green-500/50 bg-green-50 text-green-900 dark:bg-green-950 dark:text-green-100 [&>svg]:text-green-600 dark:[&>svg]:text-green-400",
45
+ warning: "border-yellow-500/50 bg-yellow-50 text-yellow-900 dark:bg-yellow-950 dark:text-yellow-100 [&>svg]:text-yellow-600 dark:[&>svg]:text-yellow-400",
46
+ error: "border-red-500/50 bg-red-50 text-red-900 dark:bg-red-950 dark:text-red-100 [&>svg]:text-red-600 dark:[&>svg]:text-red-400"
47
+ }
48
+ },
49
+ defaultVariants: {
50
+ variant: "default"
51
+ }
52
+ }
53
+ );
54
+ var Banner = React__namespace.forwardRef(
55
+ ({ className, variant, onClose, children, ...props }, ref) => {
56
+ return /* @__PURE__ */ jsxRuntime.jsxs(
57
+ "div",
58
+ {
59
+ ref,
60
+ role: "alert",
61
+ className: cn(bannerVariants({ variant }), className),
62
+ ...props,
63
+ children: [
64
+ children,
65
+ onClose && /* @__PURE__ */ jsxRuntime.jsxs(
66
+ "button",
67
+ {
68
+ type: "button",
69
+ onClick: onClose,
70
+ className: "absolute right-4 top-3 rounded-md p-1 hover:bg-black/5 dark:hover:bg-white/5",
71
+ children: [
72
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" }),
73
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
74
+ ]
75
+ }
76
+ )
77
+ ]
78
+ }
79
+ );
80
+ }
81
+ );
82
+ Banner.displayName = "Banner";
83
+
84
+ exports.Banner = Banner;
85
+ exports.bannerVariants = bannerVariants;
@@ -0,0 +1,62 @@
1
+ "use client";
2
+ import * as React from 'react';
3
+ import { cva } from 'class-variance-authority';
4
+ import { X } from 'lucide-react';
5
+ import { clsx } from 'clsx';
6
+ import { twMerge } from 'tailwind-merge';
7
+ import { jsxs, jsx } from 'react/jsx-runtime';
8
+
9
+ var __defProp = Object.defineProperty;
10
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
11
+ function cn(...inputs) {
12
+ return twMerge(clsx(inputs));
13
+ }
14
+ __name(cn, "cn");
15
+ var bannerVariants = cva(
16
+ "relative w-full border-b px-4 py-3 text-sm [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
17
+ {
18
+ variants: {
19
+ variant: {
20
+ default: "bg-background text-foreground",
21
+ info: "border-blue-500/50 bg-blue-50 text-blue-900 dark:bg-blue-950 dark:text-blue-100 [&>svg]:text-blue-600 dark:[&>svg]:text-blue-400",
22
+ success: "border-green-500/50 bg-green-50 text-green-900 dark:bg-green-950 dark:text-green-100 [&>svg]:text-green-600 dark:[&>svg]:text-green-400",
23
+ warning: "border-yellow-500/50 bg-yellow-50 text-yellow-900 dark:bg-yellow-950 dark:text-yellow-100 [&>svg]:text-yellow-600 dark:[&>svg]:text-yellow-400",
24
+ error: "border-red-500/50 bg-red-50 text-red-900 dark:bg-red-950 dark:text-red-100 [&>svg]:text-red-600 dark:[&>svg]:text-red-400"
25
+ }
26
+ },
27
+ defaultVariants: {
28
+ variant: "default"
29
+ }
30
+ }
31
+ );
32
+ var Banner = React.forwardRef(
33
+ ({ className, variant, onClose, children, ...props }, ref) => {
34
+ return /* @__PURE__ */ jsxs(
35
+ "div",
36
+ {
37
+ ref,
38
+ role: "alert",
39
+ className: cn(bannerVariants({ variant }), className),
40
+ ...props,
41
+ children: [
42
+ children,
43
+ onClose && /* @__PURE__ */ jsxs(
44
+ "button",
45
+ {
46
+ type: "button",
47
+ onClick: onClose,
48
+ className: "absolute right-4 top-3 rounded-md p-1 hover:bg-black/5 dark:hover:bg-white/5",
49
+ children: [
50
+ /* @__PURE__ */ jsx(X, { className: "h-4 w-4" }),
51
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
52
+ ]
53
+ }
54
+ )
55
+ ]
56
+ }
57
+ );
58
+ }
59
+ );
60
+ Banner.displayName = "Banner";
61
+
62
+ export { Banner, bannerVariants };
@@ -0,0 +1,78 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+ var clsx = require('clsx');
6
+ var tailwindMerge = require('tailwind-merge');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
+
29
+ var __defProp = Object.defineProperty;
30
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
31
+ function cn(...inputs) {
32
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
33
+ }
34
+ __name(cn, "cn");
35
+ var Cursor = React__namespace.forwardRef(
36
+ ({ className, children, cursorText, cursorSize = 20, ...props }, ref) => {
37
+ const [position, setPosition] = React__namespace.useState({ x: 0, y: 0 });
38
+ const [isHovered, setIsHovered] = React__namespace.useState(false);
39
+ const handleMouseMove = /* @__PURE__ */ __name((e) => {
40
+ const rect = e.currentTarget.getBoundingClientRect();
41
+ setPosition({
42
+ x: e.clientX - rect.left,
43
+ y: e.clientY - rect.top
44
+ });
45
+ }, "handleMouseMove");
46
+ return /* @__PURE__ */ jsxRuntime.jsxs(
47
+ "div",
48
+ {
49
+ ref,
50
+ className: cn("relative cursor-none", className),
51
+ onMouseMove: handleMouseMove,
52
+ onMouseEnter: () => setIsHovered(true),
53
+ onMouseLeave: () => setIsHovered(false),
54
+ ...props,
55
+ children: [
56
+ children,
57
+ isHovered && /* @__PURE__ */ jsxRuntime.jsx(
58
+ "div",
59
+ {
60
+ className: "pointer-events-none absolute z-50 flex items-center justify-center rounded-full bg-primary/20 backdrop-blur-sm transition-transform",
61
+ style: {
62
+ left: position.x,
63
+ top: position.y,
64
+ width: cursorSize,
65
+ height: cursorSize,
66
+ transform: "translate(-50%, -50%)"
67
+ },
68
+ children: cursorText && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-primary", children: cursorText })
69
+ }
70
+ )
71
+ ]
72
+ }
73
+ );
74
+ }
75
+ );
76
+ Cursor.displayName = "Cursor";
77
+
78
+ exports.Cursor = Cursor;
@@ -0,0 +1,56 @@
1
+ "use client";
2
+ import * as React from 'react';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { jsxs, jsx } from 'react/jsx-runtime';
6
+
7
+ var __defProp = Object.defineProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
+ function cn(...inputs) {
10
+ return twMerge(clsx(inputs));
11
+ }
12
+ __name(cn, "cn");
13
+ var Cursor = React.forwardRef(
14
+ ({ className, children, cursorText, cursorSize = 20, ...props }, ref) => {
15
+ const [position, setPosition] = React.useState({ x: 0, y: 0 });
16
+ const [isHovered, setIsHovered] = React.useState(false);
17
+ const handleMouseMove = /* @__PURE__ */ __name((e) => {
18
+ const rect = e.currentTarget.getBoundingClientRect();
19
+ setPosition({
20
+ x: e.clientX - rect.left,
21
+ y: e.clientY - rect.top
22
+ });
23
+ }, "handleMouseMove");
24
+ return /* @__PURE__ */ jsxs(
25
+ "div",
26
+ {
27
+ ref,
28
+ className: cn("relative cursor-none", className),
29
+ onMouseMove: handleMouseMove,
30
+ onMouseEnter: () => setIsHovered(true),
31
+ onMouseLeave: () => setIsHovered(false),
32
+ ...props,
33
+ children: [
34
+ children,
35
+ isHovered && /* @__PURE__ */ jsx(
36
+ "div",
37
+ {
38
+ className: "pointer-events-none absolute z-50 flex items-center justify-center rounded-full bg-primary/20 backdrop-blur-sm transition-transform",
39
+ style: {
40
+ left: position.x,
41
+ top: position.y,
42
+ width: cursorSize,
43
+ height: cursorSize,
44
+ transform: "translate(-50%, -50%)"
45
+ },
46
+ children: cursorText && /* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-primary", children: cursorText })
47
+ }
48
+ )
49
+ ]
50
+ }
51
+ );
52
+ }
53
+ );
54
+ Cursor.displayName = "Cursor";
55
+
56
+ export { Cursor };