@hanzo/ui 5.3.19 → 5.3.22

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 -1
  2. package/dist/3d/button.mjs +273 -1
  3. package/dist/3d/card.js +234 -1
  4. package/dist/3d/card.mjs +207 -1
  5. package/dist/3d/carousel.js +371 -1
  6. package/dist/3d/carousel.mjs +344 -1
  7. package/dist/3d/grid.js +362 -1
  8. package/dist/3d/grid.mjs +337 -1
  9. package/dist/3d/index.js +1518 -1
  10. package/dist/3d/index.mjs +1472 -1
  11. package/dist/3d/marquee.js +352 -1
  12. package/dist/3d/marquee.mjs +327 -1
  13. package/dist/3d/pin.js +46 -1
  14. package/dist/3d/pin.mjs +24 -1
  15. package/dist/accordion.js +80 -1
  16. package/dist/accordion.mjs +55 -1
  17. package/dist/alert-dialog.js +220 -1
  18. package/dist/alert-dialog.mjs +187 -1
  19. package/dist/alert.js +68 -1
  20. package/dist/alert.mjs +64 -1
  21. package/dist/animation/animated-background.js +424 -1
  22. package/dist/animation/animated-background.mjs +418 -1
  23. package/dist/animation/animated-beam.js +119 -1
  24. package/dist/animation/animated-beam.mjs +97 -1
  25. package/dist/animation/animated-cursor.js +275 -1
  26. package/dist/animation/animated-cursor.mjs +270 -1
  27. package/dist/animation/animated-icon.js +357 -2
  28. package/dist/animation/animated-icon.mjs +351 -2
  29. package/dist/animation/animated-list.js +339 -1
  30. package/dist/animation/animated-list.mjs +333 -1
  31. package/dist/animation/animated-number.js +283 -1
  32. package/dist/animation/animated-number.mjs +277 -1
  33. package/dist/animation/animated-testimonials.js +97 -1
  34. package/dist/animation/animated-testimonials.mjs +75 -1
  35. package/dist/animation/animated-tooltip.js +67 -1
  36. package/dist/animation/animated-tooltip.mjs +45 -1
  37. package/dist/animation/apple-cards-carousel.js +308 -1
  38. package/dist/animation/apple-cards-carousel.mjs +285 -1
  39. package/dist/animation/apple-hello-effect.js +60 -1
  40. package/dist/animation/apple-hello-effect.mjs +38 -1
  41. package/dist/animation/index.js +1952 -2
  42. package/dist/animation/index.mjs +1921 -2
  43. package/dist/avatar.js +71 -1
  44. package/dist/avatar.mjs +47 -1
  45. package/dist/badge.js +66 -1
  46. package/dist/badge.mjs +40 -1
  47. package/dist/blocks/index.js +1665 -2
  48. package/dist/blocks/index.mjs +1626 -2
  49. package/dist/breadcrumb.js +107 -1
  50. package/dist/breadcrumb.mjs +99 -1
  51. package/dist/calendar.js +189 -1
  52. package/dist/calendar.mjs +164 -1
  53. package/dist/carousel.js +278 -1
  54. package/dist/carousel.mjs +249 -1
  55. package/dist/checkbox.js +60 -1
  56. package/dist/checkbox.mjs +35 -1
  57. package/dist/code/block.js +226 -2
  58. package/dist/code/block.mjs +203 -2
  59. package/dist/code/compare.js +445 -5
  60. package/dist/code/compare.mjs +422 -5
  61. package/dist/code/diff.js +430 -12
  62. package/dist/code/diff.mjs +406 -11
  63. package/dist/code/editor.js +243 -1
  64. package/dist/code/editor.mjs +218 -1
  65. package/dist/code/explorer.js +291 -1
  66. package/dist/code/explorer.mjs +268 -1
  67. package/dist/code/index.js +2515 -26
  68. package/dist/code/index.mjs +2472 -24
  69. package/dist/code/preview.js +364 -6
  70. package/dist/code/preview.mjs +341 -6
  71. package/dist/code/snippet.js +274 -2
  72. package/dist/code/snippet.mjs +250 -2
  73. package/dist/code/tabs.js +75 -1
  74. package/dist/code/tabs.mjs +53 -1
  75. package/dist/code/terminal.js +437 -3
  76. package/dist/code/terminal.mjs +414 -3
  77. package/dist/collapsible.js +33 -1
  78. package/dist/collapsible.mjs +9 -1
  79. package/dist/command.js +262 -1
  80. package/dist/command.mjs +232 -1
  81. package/dist/context-menu.js +207 -1
  82. package/dist/context-menu.mjs +171 -1
  83. package/dist/device/index.js +3 -1
  84. package/dist/device/index.mjs +2 -0
  85. package/dist/dialog.js +151 -1
  86. package/dist/dialog.mjs +121 -1
  87. package/dist/dock/basic.js +174 -1
  88. package/dist/dock/basic.mjs +151 -1
  89. package/dist/dock/index.js +628 -1
  90. package/dist/dock/index.mjs +601 -1
  91. package/dist/dock/limelight-nav.js +295 -1
  92. package/dist/dock/limelight-nav.mjs +274 -1
  93. package/dist/dock/macos.js +141 -1
  94. package/dist/dock/macos.mjs +118 -1
  95. package/dist/dock/menu.js +70 -1
  96. package/dist/dock/menu.mjs +48 -1
  97. package/dist/dock/message.js +144 -1
  98. package/dist/dock/message.mjs +122 -1
  99. package/dist/drawer.js +115 -1
  100. package/dist/drawer.mjs +103 -1
  101. package/dist/dropdown-menu.js +202 -1
  102. package/dist/dropdown-menu.mjs +166 -1
  103. package/dist/finance/AdvancedChart.js +48 -2
  104. package/dist/finance/AdvancedChart.mjs +46 -2
  105. package/dist/finance/CompanyProfile.js +48 -2
  106. package/dist/finance/CompanyProfile.mjs +46 -2
  107. package/dist/finance/CryptoScreener.js +45 -2
  108. package/dist/finance/CryptoScreener.mjs +43 -2
  109. package/dist/finance/Financials.js +52 -2
  110. package/dist/finance/Financials.mjs +50 -2
  111. package/dist/finance/ForexScreener.js +46 -2
  112. package/dist/finance/ForexScreener.mjs +44 -2
  113. package/dist/finance/MarketOverview.js +104 -2
  114. package/dist/finance/MarketOverview.mjs +102 -2
  115. package/dist/finance/NewsTimeline.js +44 -2
  116. package/dist/finance/NewsTimeline.mjs +42 -2
  117. package/dist/finance/OrderEntry.js +131 -1
  118. package/dist/finance/OrderEntry.mjs +129 -1
  119. package/dist/finance/OrdersHistory.js +64 -1
  120. package/dist/finance/OrdersHistory.mjs +62 -1
  121. package/dist/finance/PositionsList.js +80 -1
  122. package/dist/finance/PositionsList.mjs +78 -1
  123. package/dist/finance/StockScreener.js +46 -2
  124. package/dist/finance/StockScreener.mjs +44 -2
  125. package/dist/finance/SymbolInfo.js +46 -2
  126. package/dist/finance/SymbolInfo.mjs +44 -2
  127. package/dist/finance/TechnicalAnalysis.js +54 -2
  128. package/dist/finance/TechnicalAnalysis.mjs +52 -2
  129. package/dist/finance/TickerTape.js +56 -2
  130. package/dist/finance/TickerTape.mjs +54 -2
  131. package/dist/finance/TradingPanel.js +191 -1
  132. package/dist/finance/TradingPanel.mjs +189 -1
  133. package/dist/finance/index.js +930 -2
  134. package/dist/finance/index.mjs +914 -2
  135. package/dist/form/index.js +155 -1
  136. package/dist/form/index.mjs +125 -1
  137. package/dist/form.js +172 -1
  138. package/dist/form.mjs +142 -1
  139. package/dist/hover-card.js +58 -1
  140. package/dist/hover-card.mjs +34 -1
  141. package/dist/index.js +8467 -192
  142. package/dist/index.mjs +8087 -192
  143. package/dist/input-otp.js +79 -1
  144. package/dist/input-otp.mjs +54 -1
  145. package/dist/lib/utils.js +28 -1
  146. package/dist/lib/utils.mjs +24 -1
  147. package/dist/navigation/index.js +98 -1
  148. package/dist/navigation/index.mjs +79 -1
  149. package/dist/navigation-menu.js +149 -1
  150. package/dist/navigation-menu.mjs +116 -1
  151. package/dist/pattern/grid-pattern.js +326 -3
  152. package/dist/pattern/grid-pattern.mjs +303 -3
  153. package/dist/pattern/index.js +326 -3
  154. package/dist/pattern/index.mjs +303 -3
  155. package/dist/popover.js +63 -1
  156. package/dist/popover.mjs +37 -1
  157. package/dist/primitives/index.js +8467 -192
  158. package/dist/primitives/index.mjs +8087 -192
  159. package/dist/primitives-export.js +8467 -192
  160. package/dist/primitives-export.mjs +8087 -192
  161. package/dist/progress.js +62 -1
  162. package/dist/progress.mjs +37 -1
  163. package/dist/project/gantt.js +65 -1
  164. package/dist/project/gantt.mjs +43 -1
  165. package/dist/project/index.js +636 -1
  166. package/dist/project/index.mjs +611 -1
  167. package/dist/project/kanban.js +597 -1
  168. package/dist/project/kanban.mjs +572 -1
  169. package/dist/project/list.js +35 -1
  170. package/dist/project/list.mjs +12 -1
  171. package/dist/radio-group.js +68 -1
  172. package/dist/radio-group.mjs +45 -1
  173. package/dist/resizable.js +72 -1
  174. package/dist/resizable.mjs +48 -1
  175. package/dist/scroll-area.js +89 -1
  176. package/dist/scroll-area.mjs +66 -1
  177. package/dist/select.js +140 -1
  178. package/dist/select.mjs +111 -1
  179. package/dist/separator.js +59 -1
  180. package/dist/separator.mjs +34 -1
  181. package/dist/sheet.js +148 -1
  182. package/dist/sheet.mjs +117 -1
  183. package/dist/skeleton.js +32 -1
  184. package/dist/skeleton.mjs +27 -1
  185. package/dist/slider.js +99 -1
  186. package/dist/slider.mjs +73 -1
  187. package/dist/sonner.js +34 -1
  188. package/dist/sonner.mjs +29 -1
  189. package/dist/switch.js +62 -1
  190. package/dist/switch.mjs +37 -1
  191. package/dist/table.js +110 -1
  192. package/dist/table.mjs +101 -1
  193. package/dist/tabs.js +82 -1
  194. package/dist/tabs.mjs +57 -1
  195. package/dist/tailwind/index.js +2023 -1
  196. package/dist/tailwind/index.mjs +2011 -1
  197. package/dist/textarea.js +78 -1
  198. package/dist/textarea.mjs +56 -1
  199. package/dist/toggle-group.js +118 -1
  200. package/dist/toggle-group.mjs +93 -1
  201. package/dist/toggle.js +71 -1
  202. package/dist/toggle.mjs +48 -1
  203. package/dist/tooltip.js +67 -1
  204. package/dist/tooltip.mjs +40 -1
  205. package/dist/types/index.js +57 -1
  206. package/dist/types/index.mjs +51 -1
  207. package/dist/ui/announcement.js +129 -1
  208. package/dist/ui/announcement.mjs +107 -1
  209. package/dist/ui/avatar-group.js +88 -1
  210. package/dist/ui/avatar-group.mjs +65 -1
  211. package/dist/ui/banner.js +85 -1
  212. package/dist/ui/banner.mjs +62 -1
  213. package/dist/ui/cursor.js +78 -1
  214. package/dist/ui/cursor.mjs +56 -1
  215. package/dist/ui/index.js +475 -1
  216. package/dist/ui/index.mjs +442 -1
  217. package/dist/ui/marquee.js +74 -1
  218. package/dist/ui/marquee.mjs +52 -1
  219. package/dist/ui/pill.js +85 -1
  220. package/dist/ui/pill.mjs +62 -1
  221. package/dist/ui/spinner.js +28 -1
  222. package/dist/ui/spinner.mjs +26 -1
  223. package/dist/ui/tags.js +101 -1
  224. package/dist/ui/tags.mjs +79 -1
  225. package/dist/ui/ticker.js +73 -1
  226. package/dist/ui/ticker.mjs +51 -1
  227. package/dist/util/index.js +457 -1
  228. package/dist/util/index.mjs +399 -1
  229. package/package.json +1 -1
@@ -1 +1,51 @@
1
- var e={xs:"0px",sm:"480px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1500px"};var o=Object.keys(e);var t={at:{xs:{columns:1,gap:2},md:{columns:1,gap:3},lg:{columns:1,gap:6}},mobile:{columns:1,gap:2}},p={at:{xs:{columns:1,gap:2},md:{columns:2,gap:3},lg:{columns:2,gap:6}},mobile:{columns:1,gap:2}},a={at:{xs:{columns:1,gap:2},md:{columns:3,gap:3},lg:{columns:3,gap:6}},mobile:{columns:1,gap:2}},r={at:{xs:{columns:1,gap:2},md:{columns:2,gap:3},lg:{columns:4,gap:6}},mobile:{columns:1,gap:2}};export{o as Breakpoints,t as COMMON_GRID_1_COL,p as COMMON_GRID_2_COL,a as COMMON_GRID_3_COL,r as COMMON_GRID_4_COL};
1
+ // tailwind/screens.tailwind.js
2
+ var screens_tailwind_default = {
3
+ xs: "0px",
4
+ // <-- phone
5
+ sm: "480px",
6
+ // phone --><-- sm tablets / narrow
7
+ md: "768px",
8
+ // sm tablets / narrow -->
9
+ lg: "1024px",
10
+ xl: "1280px",
11
+ "2xl": "1500px"
12
+ };
13
+
14
+ // types/breakpoints.ts
15
+ var Breakpoints = Object.keys(screens_tailwind_default);
16
+
17
+ // types/grid-def.ts
18
+ var COMMON_GRID_1_COL = {
19
+ at: {
20
+ xs: { columns: 1, gap: 2 },
21
+ md: { columns: 1, gap: 3 },
22
+ lg: { columns: 1, gap: 6 }
23
+ },
24
+ mobile: { columns: 1, gap: 2 }
25
+ };
26
+ var COMMON_GRID_2_COL = {
27
+ at: {
28
+ xs: { columns: 1, gap: 2 },
29
+ md: { columns: 2, gap: 3 },
30
+ lg: { columns: 2, gap: 6 }
31
+ },
32
+ mobile: { columns: 1, gap: 2 }
33
+ };
34
+ var COMMON_GRID_3_COL = {
35
+ at: {
36
+ xs: { columns: 1, gap: 2 },
37
+ md: { columns: 3, gap: 3 },
38
+ lg: { columns: 3, gap: 6 }
39
+ },
40
+ mobile: { columns: 1, gap: 2 }
41
+ };
42
+ var COMMON_GRID_4_COL = {
43
+ at: {
44
+ xs: { columns: 1, gap: 2 },
45
+ md: { columns: 2, gap: 3 },
46
+ lg: { columns: 4, gap: 6 }
47
+ },
48
+ mobile: { columns: 1, gap: 2 }
49
+ };
50
+
51
+ export { Breakpoints, COMMON_GRID_1_COL, COMMON_GRID_2_COL, COMMON_GRID_3_COL, COMMON_GRID_4_COL };
@@ -1 +1,129 @@
1
- 'use strict';var a=require('react'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),reactSlot=require('@radix-ui/react-slot'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var a__namespace=/*#__PURE__*/_interopNamespace(a);var v=Object.defineProperty;var s=(e,t)=>v(e,"name",{value:t,configurable:true});function n(...e){return tailwindMerge.twMerge(clsx.clsx(e))}s(n,"cn");var R=classVarianceAuthority.cva("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",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline",primary:"bg-primary text-primary-foreground shadow hover:bg-primary/90",linkFG:"text-primary underline-offset-4 hover:underline",linkMuted:"text-muted-foreground underline-offset-4 hover:underline hover:text-foreground"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),m=a__namespace.forwardRef(({className:e,variant:t,size:r,asChild:i=false,isLoading:o=false,children:u,...d},l)=>jsxRuntime.jsxs(i?reactSlot.Slot:"button",{className:n(R({variant:t,size:r,className:e})),ref:l,...d,children:[o?jsxRuntime.jsx(lucideReact.Loader2,{className:n("h-4 w-4 animate-spin",r!=="icon"&&"mr-2")}):null,o&&r==="icon"?null:u]}));m.displayName="Button";var P=a__namespace.forwardRef(({className:e,children:t,dismissible:r=true,onDismiss:i,...o},u)=>{let[d,l]=a__namespace.useState(true),p=s(()=>{l(false),i?.();},"handleDismiss");return d?jsxRuntime.jsxs("div",{ref:u,className:n("relative flex items-center gap-4 rounded-lg border bg-background px-4 py-3 text-sm",e),...o,children:[jsxRuntime.jsx("div",{className:"flex-1",children:t}),r&&jsxRuntime.jsxs(m,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:p,children:[jsxRuntime.jsx(lucideReact.X,{className:"h-4 w-4"}),jsxRuntime.jsx("span",{className:"sr-only",children:"Dismiss"})]})]}):null});P.displayName="Announcement";exports.Announcement=P;
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;
@@ -1 +1,107 @@
1
- import*as a from'react';import {Loader2,X}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {Slot}from'@radix-ui/react-slot';import {cva}from'class-variance-authority';import {jsxs,jsx}from'react/jsx-runtime';var v=Object.defineProperty;var s=(e,t)=>v(e,"name",{value:t,configurable:true});function n(...e){return twMerge(clsx(e))}s(n,"cn");var R=cva("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",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline",primary:"bg-primary text-primary-foreground shadow hover:bg-primary/90",linkFG:"text-primary underline-offset-4 hover:underline",linkMuted:"text-muted-foreground underline-offset-4 hover:underline hover:text-foreground"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),m=a.forwardRef(({className:e,variant:t,size:r,asChild:i=false,isLoading:o=false,children:u,...d},l)=>jsxs(i?Slot:"button",{className:n(R({variant:t,size:r,className:e})),ref:l,...d,children:[o?jsx(Loader2,{className:n("h-4 w-4 animate-spin",r!=="icon"&&"mr-2")}):null,o&&r==="icon"?null:u]}));m.displayName="Button";var P=a.forwardRef(({className:e,children:t,dismissible:r=true,onDismiss:i,...o},u)=>{let[d,l]=a.useState(true),p=s(()=>{l(false),i?.();},"handleDismiss");return d?jsxs("div",{ref:u,className:n("relative flex items-center gap-4 rounded-lg border bg-background px-4 py-3 text-sm",e),...o,children:[jsx("div",{className:"flex-1",children:t}),r&&jsxs(m,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:p,children:[jsx(X,{className:"h-4 w-4"}),jsx("span",{className:"sr-only",children:"Dismiss"})]})]}):null});P.displayName="Announcement";export{P as Announcement};
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 };
@@ -1 +1,88 @@
1
- 'use strict';var A=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),e=require('@radix-ui/react-avatar'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var A__namespace=/*#__PURE__*/_interopNamespace(A);var e__namespace=/*#__PURE__*/_interopNamespace(e);var b=Object.defineProperty;var o=(a,t)=>b(a,"name",{value:t,configurable:true});function i(...a){return tailwindMerge.twMerge(clsx.clsx(a))}o(i,"cn");var l=o(({className:a,ref:t,...r})=>jsxRuntime.jsx(e__namespace.Root,{className:i("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",a),ref:t,...r}),"Avatar");l.displayName=e__namespace.Root.displayName;var c=o(({className:a,ref:t,...r})=>jsxRuntime.jsx(e__namespace.Image,{className:i("aspect-square h-full w-full",a),ref:t,...r}),"AvatarImage");c.displayName=e__namespace.Image.displayName;var s=o(({className:a,ref:t,...r})=>jsxRuntime.jsx(e__namespace.Fallback,{className:i("bg-muted flex h-full w-full items-center justify-center rounded-full",a),ref:t,...r}),"AvatarFallback");s.displayName=e__namespace.Fallback.displayName;var k=A__namespace.forwardRef(({className:a,items:t,max:r=5,...u},d)=>{let R=t.slice(0,r),f=t.length-r;return jsxRuntime.jsxs("div",{ref:d,className:i("flex -space-x-4",a),...u,children:[R.map((m,P)=>jsxRuntime.jsxs(l,{className:"border-2 border-background",children:[jsxRuntime.jsx(c,{src:m.src,alt:m.alt}),jsxRuntime.jsx(s,{children:m.fallback})]},P)),f>0&&jsxRuntime.jsx(l,{className:"border-2 border-background",children:jsxRuntime.jsxs(s,{children:["+",f]})})]})});k.displayName="AvatarGroup";exports.AvatarGroup=k;
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;
@@ -1 +1,65 @@
1
- import*as A from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import*as e from'@radix-ui/react-avatar';import {jsxs,jsx}from'react/jsx-runtime';var b=Object.defineProperty;var o=(a,t)=>b(a,"name",{value:t,configurable:true});function i(...a){return twMerge(clsx(a))}o(i,"cn");var l=o(({className:a,ref:t,...r})=>jsx(e.Root,{className:i("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",a),ref:t,...r}),"Avatar");l.displayName=e.Root.displayName;var c=o(({className:a,ref:t,...r})=>jsx(e.Image,{className:i("aspect-square h-full w-full",a),ref:t,...r}),"AvatarImage");c.displayName=e.Image.displayName;var s=o(({className:a,ref:t,...r})=>jsx(e.Fallback,{className:i("bg-muted flex h-full w-full items-center justify-center rounded-full",a),ref:t,...r}),"AvatarFallback");s.displayName=e.Fallback.displayName;var k=A.forwardRef(({className:a,items:t,max:r=5,...u},d)=>{let R=t.slice(0,r),f=t.length-r;return jsxs("div",{ref:d,className:i("flex -space-x-4",a),...u,children:[R.map((m,P)=>jsxs(l,{className:"border-2 border-background",children:[jsx(c,{src:m.src,alt:m.alt}),jsx(s,{children:m.fallback})]},P)),f>0&&jsx(l,{className:"border-2 border-background",children:jsxs(s,{children:["+",f]})})]})});k.displayName="AvatarGroup";export{k as AvatarGroup};
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 };
package/dist/ui/banner.js CHANGED
@@ -1 +1,85 @@
1
- 'use strict';var l=require('react'),classVarianceAuthority=require('class-variance-authority'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var l__namespace=/*#__PURE__*/_interopNamespace(l);var b=Object.defineProperty;var a=(e,t)=>b(e,"name",{value:t,configurable:true});function n(...e){return tailwindMerge.twMerge(clsx.clsx(e))}a(n,"cn");var x=classVarianceAuthority.cva("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",{variants:{variant:{default:"bg-background text-foreground",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",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",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",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"}},defaultVariants:{variant:"default"}}),m=l__namespace.forwardRef(({className:e,variant:t,onClose:r,children:d,...g},i)=>jsxRuntime.jsxs("div",{ref:i,role:"alert",className:n(x({variant:t}),e),...g,children:[d,r&&jsxRuntime.jsxs("button",{type:"button",onClick:r,className:"absolute right-4 top-3 rounded-md p-1 hover:bg-black/5 dark:hover:bg-white/5",children:[jsxRuntime.jsx(lucideReact.X,{className:"h-4 w-4"}),jsxRuntime.jsx("span",{className:"sr-only",children:"Close"})]})]}));m.displayName="Banner";exports.Banner=m;exports.bannerVariants=x;
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;
@@ -1 +1,62 @@
1
- import*as l from'react';import {cva}from'class-variance-authority';import {X}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var b=Object.defineProperty;var a=(e,t)=>b(e,"name",{value:t,configurable:true});function n(...e){return twMerge(clsx(e))}a(n,"cn");var x=cva("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",{variants:{variant:{default:"bg-background text-foreground",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",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",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",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"}},defaultVariants:{variant:"default"}}),m=l.forwardRef(({className:e,variant:t,onClose:r,children:d,...g},i)=>jsxs("div",{ref:i,role:"alert",className:n(x({variant:t}),e),...g,children:[d,r&&jsxs("button",{type:"button",onClick:r,className:"absolute right-4 top-3 rounded-md p-1 hover:bg-black/5 dark:hover:bg-white/5",children:[jsx(X,{className:"h-4 w-4"}),jsx("span",{className:"sr-only",children:"Close"})]})]}));m.displayName="Banner";export{m as Banner,x as bannerVariants};
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 };