@fiestaboard/ui 1.6.3

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 (201) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +153 -0
  3. package/dist/components/board/board-display.d.ts +35 -0
  4. package/dist/components/board/board-display.js +514 -0
  5. package/dist/components/board/board-display.js.map +1 -0
  6. package/dist/components/board/board-teaser.d.ts +10 -0
  7. package/dist/components/board/board-teaser.js +110 -0
  8. package/dist/components/board/board-teaser.js.map +1 -0
  9. package/dist/components/board/scaled-board-display.d.ts +37 -0
  10. package/dist/components/board/scaled-board-display.js +118 -0
  11. package/dist/components/board/scaled-board-display.js.map +1 -0
  12. package/dist/components/board/static-board-display.d.ts +17 -0
  13. package/dist/components/board/static-board-display.js +140 -0
  14. package/dist/components/board/static-board-display.js.map +1 -0
  15. package/dist/components/chrome/board-icon.d.ts +11 -0
  16. package/dist/components/chrome/board-icon.js +31 -0
  17. package/dist/components/chrome/board-icon.js.map +1 -0
  18. package/dist/components/chrome/board-selector.d.ts +30 -0
  19. package/dist/components/chrome/board-selector.js +37 -0
  20. package/dist/components/chrome/board-selector.js.map +1 -0
  21. package/dist/components/chrome/fiesta-icon.d.ts +28 -0
  22. package/dist/components/chrome/fiesta-icon.js +129 -0
  23. package/dist/components/chrome/fiesta-icon.js.map +1 -0
  24. package/dist/components/chrome/fiesta-logo.d.ts +6 -0
  25. package/dist/components/chrome/fiesta-logo.js +20 -0
  26. package/dist/components/chrome/fiesta-logo.js.map +1 -0
  27. package/dist/components/chrome/language-selector.d.ts +21 -0
  28. package/dist/components/chrome/language-selector.js +29 -0
  29. package/dist/components/chrome/language-selector.js.map +1 -0
  30. package/dist/components/chrome/main-content.d.ts +28 -0
  31. package/dist/components/chrome/main-content.js +33 -0
  32. package/dist/components/chrome/main-content.js.map +1 -0
  33. package/dist/components/chrome/page-header.d.ts +23 -0
  34. package/dist/components/chrome/page-header.js +69 -0
  35. package/dist/components/chrome/page-header.js.map +1 -0
  36. package/dist/components/chrome/page-layout.d.ts +10 -0
  37. package/dist/components/chrome/page-layout.js +17 -0
  38. package/dist/components/chrome/page-layout.js.map +1 -0
  39. package/dist/components/chrome/page-toolbar.d.ts +7 -0
  40. package/dist/components/chrome/page-toolbar.js +21 -0
  41. package/dist/components/chrome/page-toolbar.js.map +1 -0
  42. package/dist/components/chrome/sidebar.d.ts +83 -0
  43. package/dist/components/chrome/sidebar.js +318 -0
  44. package/dist/components/chrome/sidebar.js.map +1 -0
  45. package/dist/components/chrome/skip-to-content.d.ts +8 -0
  46. package/dist/components/chrome/skip-to-content.js +15 -0
  47. package/dist/components/chrome/skip-to-content.js.map +1 -0
  48. package/dist/components/chrome/theme-toggle.d.ts +22 -0
  49. package/dist/components/chrome/theme-toggle.js +28 -0
  50. package/dist/components/chrome/theme-toggle.js.map +1 -0
  51. package/dist/components/seasons/aurora-canvas.d.ts +22 -0
  52. package/dist/components/seasons/aurora-canvas.js +88 -0
  53. package/dist/components/seasons/aurora-canvas.js.map +1 -0
  54. package/dist/components/seasons/sidebar-aurora-horizontal.d.ts +3 -0
  55. package/dist/components/seasons/sidebar-aurora-horizontal.js +47 -0
  56. package/dist/components/seasons/sidebar-aurora-horizontal.js.map +1 -0
  57. package/dist/components/seasons/sidebar-aurora.d.ts +3 -0
  58. package/dist/components/seasons/sidebar-aurora.js +57 -0
  59. package/dist/components/seasons/sidebar-aurora.js.map +1 -0
  60. package/dist/components/ui/accordion.d.ts +16 -0
  61. package/dist/components/ui/accordion.js +55 -0
  62. package/dist/components/ui/accordion.js.map +1 -0
  63. package/dist/components/ui/alert-dialog.d.ts +16 -0
  64. package/dist/components/ui/alert-dialog.js +78 -0
  65. package/dist/components/ui/alert-dialog.js.map +1 -0
  66. package/dist/components/ui/alert.d.ts +9 -0
  67. package/dist/components/ui/alert.js +41 -0
  68. package/dist/components/ui/alert.js.map +1 -0
  69. package/dist/components/ui/aurora.d.ts +9 -0
  70. package/dist/components/ui/aurora.js +105 -0
  71. package/dist/components/ui/aurora.js.map +1 -0
  72. package/dist/components/ui/badge.d.ts +9 -0
  73. package/dist/components/ui/badge.js +35 -0
  74. package/dist/components/ui/badge.js.map +1 -0
  75. package/dist/components/ui/box.d.ts +20 -0
  76. package/dist/components/ui/box.js +14 -0
  77. package/dist/components/ui/box.js.map +1 -0
  78. package/dist/components/ui/button.d.ts +10 -0
  79. package/dist/components/ui/button.js +52 -0
  80. package/dist/components/ui/button.js.map +1 -0
  81. package/dist/components/ui/card.d.ts +11 -0
  82. package/dist/components/ui/card.js +57 -0
  83. package/dist/components/ui/card.js.map +1 -0
  84. package/dist/components/ui/checkbox.d.ts +4 -0
  85. package/dist/components/ui/checkbox.js +16 -0
  86. package/dist/components/ui/checkbox.js.map +1 -0
  87. package/dist/components/ui/code.d.ts +8 -0
  88. package/dist/components/ui/code.js +15 -0
  89. package/dist/components/ui/code.js.map +1 -0
  90. package/dist/components/ui/collapsible.d.ts +8 -0
  91. package/dist/components/ui/collapsible.js +28 -0
  92. package/dist/components/ui/collapsible.js.map +1 -0
  93. package/dist/components/ui/dialog.d.ts +17 -0
  94. package/dist/components/ui/dialog.js +77 -0
  95. package/dist/components/ui/dialog.js.map +1 -0
  96. package/dist/components/ui/dropdown-menu.d.ts +32 -0
  97. package/dist/components/ui/dropdown-menu.js +129 -0
  98. package/dist/components/ui/dropdown-menu.js.map +1 -0
  99. package/dist/components/ui/empty-state.d.ts +23 -0
  100. package/dist/components/ui/empty-state.js +49 -0
  101. package/dist/components/ui/empty-state.js.map +1 -0
  102. package/dist/components/ui/flex.d.ts +24 -0
  103. package/dist/components/ui/flex.js +61 -0
  104. package/dist/components/ui/flex.js.map +1 -0
  105. package/dist/components/ui/grid.d.ts +20 -0
  106. package/dist/components/ui/grid.js +77 -0
  107. package/dist/components/ui/grid.js.map +1 -0
  108. package/dist/components/ui/heading.d.ts +18 -0
  109. package/dist/components/ui/heading.js +26 -0
  110. package/dist/components/ui/heading.js.map +1 -0
  111. package/dist/components/ui/input.d.ts +4 -0
  112. package/dist/components/ui/input.js +16 -0
  113. package/dist/components/ui/input.js.map +1 -0
  114. package/dist/components/ui/label.d.ts +4 -0
  115. package/dist/components/ui/label.js +15 -0
  116. package/dist/components/ui/label.js.map +1 -0
  117. package/dist/components/ui/list.d.ts +25 -0
  118. package/dist/components/ui/list.js +46 -0
  119. package/dist/components/ui/list.js.map +1 -0
  120. package/dist/components/ui/react-bits/decrypted-text.d.ts +14 -0
  121. package/dist/components/ui/react-bits/decrypted-text.js +88 -0
  122. package/dist/components/ui/react-bits/decrypted-text.js.map +1 -0
  123. package/dist/components/ui/react-bits/fade-content.d.ts +11 -0
  124. package/dist/components/ui/react-bits/fade-content.js +48 -0
  125. package/dist/components/ui/react-bits/fade-content.js.map +1 -0
  126. package/dist/components/ui/scroll-area.d.ts +5 -0
  127. package/dist/components/ui/scroll-area.js +39 -0
  128. package/dist/components/ui/scroll-area.js.map +1 -0
  129. package/dist/components/ui/select.d.ts +26 -0
  130. package/dist/components/ui/select.js +132 -0
  131. package/dist/components/ui/select.js.map +1 -0
  132. package/dist/components/ui/sheet.d.ts +29 -0
  133. package/dist/components/ui/sheet.js +114 -0
  134. package/dist/components/ui/sheet.js.map +1 -0
  135. package/dist/components/ui/skeleton.d.ts +2 -0
  136. package/dist/components/ui/skeleton.js +14 -0
  137. package/dist/components/ui/skeleton.js.map +1 -0
  138. package/dist/components/ui/slider.d.ts +9 -0
  139. package/dist/components/ui/slider.js +39 -0
  140. package/dist/components/ui/slider.js.map +1 -0
  141. package/dist/components/ui/stack.d.ts +16 -0
  142. package/dist/components/ui/stack.js +44 -0
  143. package/dist/components/ui/stack.js.map +1 -0
  144. package/dist/components/ui/switch.d.ts +4 -0
  145. package/dist/components/ui/switch.js +24 -0
  146. package/dist/components/ui/switch.js.map +1 -0
  147. package/dist/components/ui/table.d.ts +13 -0
  148. package/dist/components/ui/table.js +54 -0
  149. package/dist/components/ui/table.js.map +1 -0
  150. package/dist/components/ui/tabs.d.ts +7 -0
  151. package/dist/components/ui/tabs.js +37 -0
  152. package/dist/components/ui/tabs.js.map +1 -0
  153. package/dist/components/ui/text-link.d.ts +9 -0
  154. package/dist/components/ui/text-link.js +15 -0
  155. package/dist/components/ui/text-link.js.map +1 -0
  156. package/dist/components/ui/text.d.ts +22 -0
  157. package/dist/components/ui/text.js +48 -0
  158. package/dist/components/ui/text.js.map +1 -0
  159. package/dist/components/ui/textarea.d.ts +3 -0
  160. package/dist/components/ui/textarea.js +15 -0
  161. package/dist/components/ui/textarea.js.map +1 -0
  162. package/dist/components/ui/tooltip.d.ts +16 -0
  163. package/dist/components/ui/tooltip.js +38 -0
  164. package/dist/components/ui/tooltip.js.map +1 -0
  165. package/dist/fonts.css +16 -0
  166. package/dist/index.d.ts +66 -0
  167. package/dist/index.js +59 -0
  168. package/dist/lib/board-characters.d.ts +55 -0
  169. package/dist/lib/board-characters.js +151 -0
  170. package/dist/lib/board-characters.js.map +1 -0
  171. package/dist/lib/board-colors.d.ts +48 -0
  172. package/dist/lib/board-colors.js +93 -0
  173. package/dist/lib/board-colors.js.map +1 -0
  174. package/dist/lib/board-dimensions.d.ts +41 -0
  175. package/dist/lib/board-dimensions.js +38 -0
  176. package/dist/lib/board-dimensions.js.map +1 -0
  177. package/dist/lib/board-metrics.d.ts +19 -0
  178. package/dist/lib/board-metrics.js +22 -0
  179. package/dist/lib/board-metrics.js.map +1 -0
  180. package/dist/lib/seasons-drafts.d.ts +26 -0
  181. package/dist/lib/seasons-drafts.js +106 -0
  182. package/dist/lib/seasons-drafts.js.map +1 -0
  183. package/dist/lib/seasons.d.ts +52 -0
  184. package/dist/lib/seasons.js +59 -0
  185. package/dist/lib/seasons.js.map +1 -0
  186. package/dist/lib/select-items.d.ts +29 -0
  187. package/dist/lib/select-items.js +35 -0
  188. package/dist/lib/select-items.js.map +1 -0
  189. package/dist/lib/utils.d.ts +2 -0
  190. package/dist/lib/utils.js +11 -0
  191. package/dist/lib/utils.js.map +1 -0
  192. package/dist/seasons/christmas.css +64 -0
  193. package/dist/seasons/easter.css +62 -0
  194. package/dist/seasons/fathers-day.css +62 -0
  195. package/dist/seasons/halloween.css +69 -0
  196. package/dist/seasons/mothers-day.css +63 -0
  197. package/dist/seasons/new-year.css +66 -0
  198. package/dist/seasons/pride.css +68 -0
  199. package/dist/seasons/thanksgiving.css +64 -0
  200. package/dist/theme.css +1174 -0
  201. package/package.json +108 -0
@@ -0,0 +1,57 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import "react";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ //#region src/components/ui/card.tsx
5
+ function n({ className: n, ...r }) {
6
+ return /* @__PURE__ */ t("div", {
7
+ "data-slot": "card",
8
+ className: e("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-card transition-[box-shadow,border-color] duration-200", n),
9
+ ...r
10
+ });
11
+ }
12
+ function r({ className: n, ...r }) {
13
+ return /* @__PURE__ */ t("div", {
14
+ "data-slot": "card-header",
15
+ className: e("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", n),
16
+ ...r
17
+ });
18
+ }
19
+ function i({ className: n, as: r = "h3", ...i }) {
20
+ return /* @__PURE__ */ t(r, {
21
+ "data-slot": "card-title",
22
+ className: e("leading-none font-semibold", n),
23
+ ...i
24
+ });
25
+ }
26
+ function a({ className: n, ...r }) {
27
+ return /* @__PURE__ */ t("div", {
28
+ "data-slot": "card-description",
29
+ className: e("text-muted-foreground text-sm", n),
30
+ ...r
31
+ });
32
+ }
33
+ function o({ className: n, ...r }) {
34
+ return /* @__PURE__ */ t("div", {
35
+ "data-slot": "card-action",
36
+ className: e("col-start-2 row-span-2 row-start-1 self-start justify-self-end", n),
37
+ ...r
38
+ });
39
+ }
40
+ function s({ className: n, ...r }) {
41
+ return /* @__PURE__ */ t("div", {
42
+ "data-slot": "card-content",
43
+ className: e("px-6", n),
44
+ ...r
45
+ });
46
+ }
47
+ function c({ className: n, ...r }) {
48
+ return /* @__PURE__ */ t("div", {
49
+ "data-slot": "card-footer",
50
+ className: e("flex items-center px-6 [.border-t]:pt-6", n),
51
+ ...r
52
+ });
53
+ }
54
+ //#endregion
55
+ export { n as Card, o as CardAction, s as CardContent, a as CardDescription, c as CardFooter, r as CardHeader, i as CardTitle };
56
+
57
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","names":[],"sources":["../../../src/components/ui/card.tsx"],"mappings":";;;;AAIA,SAAS,EAAK,EAAE,cAAW,GAAG,KAAsC;CAClE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EACT,yIACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAW,EAAE,cAAW,GAAG,KAAsC;CACxE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EACT,4JACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAU,EACjB,cACA,IAAI,IAAY,MAChB,GAAG,KAC6E;CAChF,OAAO,kBAAC,GAAD;EAAW,aAAU;EAAa,WAAW,EAAG,8BAA8B,CAAS;EAAG,GAAI;CAAQ,CAAA;AAC/G;AAEA,SAAS,EAAgB,EAAE,cAAW,GAAG,KAAsC;CAC7E,OAAO,kBAAC,OAAD;EAAK,aAAU;EAAmB,WAAW,EAAG,iCAAiC,CAAS;EAAG,GAAI;CAAQ,CAAA;AAClH;AAEA,SAAS,EAAW,EAAE,cAAW,GAAG,KAAsC;CACxE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EAAG,kEAAkE,CAAS;EACzF,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAY,EAAE,cAAW,GAAG,KAAsC;CACzE,OAAO,kBAAC,OAAD;EAAK,aAAU;EAAe,WAAW,EAAG,QAAQ,CAAS;EAAG,GAAI;CAAQ,CAAA;AACrF;AAEA,SAAS,EAAW,EAAE,cAAW,GAAG,KAAsC;CACxE,OACE,kBAAC,OAAD;EAAK,aAAU;EAAc,WAAW,EAAG,2CAA2C,CAAS;EAAG,GAAI;CAAQ,CAAA;AAElH"}
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ export type CheckboxProps = Omit<React.ComponentProps<"input">, "type">;
3
+ declare function Checkbox({ className, ...props }: CheckboxProps): React.JSX.Element;
4
+ export { Checkbox };
@@ -0,0 +1,16 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import "react";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ //#region src/components/ui/checkbox.tsx
5
+ function n({ className: n, ...r }) {
6
+ return /* @__PURE__ */ t("input", {
7
+ type: "checkbox",
8
+ "data-slot": "checkbox",
9
+ className: e("h-4 w-4 shrink-0 rounded-sm border border-input accent-brand", "shadow-sm transition-colors cursor-pointer", "outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "disabled:cursor-not-allowed disabled:opacity-50", n),
10
+ ...r
11
+ });
12
+ }
13
+ //#endregion
14
+ export { n as Checkbox };
15
+
16
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.js","names":[],"sources":["../../../src/components/ui/checkbox.tsx"],"mappings":";;;;AAMA,SAAS,EAAS,EAAE,cAAW,GAAG,KAAwB;CACxD,OACE,kBAAC,SAAD;EACE,MAAK;EACL,aAAU;EACV,WAAW,EACT,gEACA,8CACA,8FACA,mDACA,CACF;EACA,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ /**
3
+ * Inline code chip — the replacement for raw `<code>` with ad-hoc
4
+ * bg/rounded/font-mono classes. Block-level snippets keep raw `<pre>`
5
+ * (allowlisted downstream).
6
+ */
7
+ declare function Code({ className, ...props }: React.ComponentProps<"code">): React.JSX.Element;
8
+ export { Code };
@@ -0,0 +1,15 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import "react";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ //#region src/components/ui/code.tsx
5
+ function n({ className: n, ...r }) {
6
+ return /* @__PURE__ */ t("code", {
7
+ "data-slot": "code",
8
+ className: e("rounded bg-muted px-1.5 py-0.5 font-mono text-xs text-foreground", n),
9
+ ...r
10
+ });
11
+ }
12
+ //#endregion
13
+ export { n as Code };
14
+
15
+ //# sourceMappingURL=code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.js","names":[],"sources":["../../../src/components/ui/code.tsx"],"mappings":";;;;AASA,SAAS,EAAK,EAAE,cAAW,GAAG,KAAuC;CACnE,OACE,kBAAC,QAAD;EACE,aAAU;EACV,WAAW,EAAG,oEAAoE,CAAS;EAC3F,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,8 @@
1
+ import { Collapsible as CollapsiblePrimitive } from "@base-ui/react/collapsible";
2
+ import * as React from "react";
3
+ declare function Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): React.JSX.Element;
4
+ declare function CollapsibleTrigger({ asChild, children, ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Trigger> & {
5
+ asChild?: boolean;
6
+ }): React.JSX.Element;
7
+ declare function CollapsibleContent({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Panel>): React.JSX.Element;
8
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger };
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import * as e from "react";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { Collapsible as n } from "@base-ui/react/collapsible";
5
+ //#region src/components/ui/collapsible.tsx
6
+ function r({ ...e }) {
7
+ return /* @__PURE__ */ t(n.Root, {
8
+ "data-slot": "collapsible",
9
+ ...e
10
+ });
11
+ }
12
+ function i({ asChild: r = !1, children: i, ...a }) {
13
+ return /* @__PURE__ */ t(n.Trigger, {
14
+ "data-slot": "collapsible-trigger",
15
+ ...r ? { render: e.Children.only(i) } : { children: i },
16
+ ...a
17
+ });
18
+ }
19
+ function a({ ...e }) {
20
+ return /* @__PURE__ */ t(n.Panel, {
21
+ "data-slot": "collapsible-content",
22
+ ...e
23
+ });
24
+ }
25
+ //#endregion
26
+ export { r as Collapsible, a as CollapsibleContent, i as CollapsibleTrigger };
27
+
28
+ //# sourceMappingURL=collapsible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.js","names":[],"sources":["../../../src/components/ui/collapsible.tsx"],"mappings":";;;;;AAKA,SAAS,EAAY,EAAE,GAAG,KAAiE;CACzF,OAAO,kBAAC,EAAqB,MAAtB;EAA2B,aAAU;EAAc,GAAI;CAAQ,CAAA;AACxE;AAEA,SAAS,EAAmB,EAC1B,aAAU,IACV,aACA,GAAG,KACiF;CACpF,OACE,kBAAC,EAAqB,SAAtB;EACE,aAAU;EACV,GAAK,IAAU,EAAE,QAAQ,EAAM,SAAS,KAAK,CAAQ,EAAwB,IAAI,EAAE,YAAS;EAC5F,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAmB,EAAE,GAAG,KAAkE;CACjG,OAAO,kBAAC,EAAqB,OAAtB;EAA4B,aAAU;EAAsB,GAAI;CAAQ,CAAA;AACjF"}
@@ -0,0 +1,17 @@
1
+ import { Dialog as DialogPrimitive } from "@base-ui/react/dialog";
2
+ import * as React from "react";
3
+ declare const Dialog: typeof DialogPrimitive.Root;
4
+ declare function DialogTrigger({ asChild, children, ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger> & {
5
+ asChild?: boolean;
6
+ }): React.JSX.Element;
7
+ declare const DialogPortal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").AlertDialogPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ declare function DialogClose({ asChild, children, ...props }: React.ComponentProps<typeof DialogPrimitive.Close> & {
9
+ asChild?: boolean;
10
+ }): React.JSX.Element;
11
+ declare function DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Backdrop>): React.JSX.Element;
12
+ declare function DialogContent({ className, children, ...props }: React.ComponentProps<typeof DialogPrimitive.Popup>): React.JSX.Element;
13
+ declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
14
+ declare function DialogFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
15
+ declare function DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>): React.JSX.Element;
16
+ declare function DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>): React.JSX.Element;
17
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
@@ -0,0 +1,77 @@
1
+ "use client";
2
+ import { cn as e } from "../../lib/utils.js";
3
+ import { X as t } from "lucide-react";
4
+ import * as n from "react";
5
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
6
+ import { Dialog as a } from "@base-ui/react/dialog";
7
+ //#region src/components/ui/dialog.tsx
8
+ var o = a.Root;
9
+ function s({ asChild: e = !1, children: t, ...i }) {
10
+ return /* @__PURE__ */ r(a.Trigger, {
11
+ "data-slot": "dialog-trigger",
12
+ ...e ? { render: n.Children.only(t) } : { children: t },
13
+ ...i
14
+ });
15
+ }
16
+ var c = a.Portal;
17
+ function l({ asChild: e = !1, children: t, ...i }) {
18
+ return /* @__PURE__ */ r(a.Close, {
19
+ "data-slot": "dialog-close",
20
+ ...e ? { render: n.Children.only(t) } : { children: t },
21
+ ...i
22
+ });
23
+ }
24
+ function u({ className: t, ...n }) {
25
+ return /* @__PURE__ */ r(a.Backdrop, {
26
+ "data-slot": "dialog-overlay",
27
+ className: e("fixed inset-0 z-[var(--z-modal)] bg-overlay data-[open]:animate-in data-[ending-style]:animate-out data-[ending-style]:fade-out-0 data-[open]:fade-in-0", t),
28
+ ...n
29
+ });
30
+ }
31
+ function d({ className: n, children: o, ...s }) {
32
+ return /* @__PURE__ */ i(c, { children: [/* @__PURE__ */ r(u, {}), /* @__PURE__ */ i(a.Popup, {
33
+ "data-slot": "dialog-content",
34
+ className: e("fixed left-[50%] top-[50%] z-[var(--z-modal)] grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-modal duration-200 data-[open]:animate-in data-[ending-style]:animate-out data-[ending-style]:fade-out-0 data-[open]:fade-in-0 data-[ending-style]:zoom-out-95 data-[open]:zoom-in-95 data-[ending-style]:slide-out-to-left-1/2 data-[ending-style]:slide-out-to-top-[48%] data-[open]:slide-in-from-left-1/2 data-[open]:slide-in-from-top-[48%] sm:rounded-lg", n),
35
+ ...s,
36
+ children: [o, /* @__PURE__ */ i(a.Close, {
37
+ "data-slot": "dialog-close",
38
+ className: "absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 outline-none focus-visible:ring-ring/50 focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50",
39
+ children: [/* @__PURE__ */ r(t, { className: "h-4 w-4" }), /* @__PURE__ */ r("span", {
40
+ className: "sr-only",
41
+ children: "Close"
42
+ })]
43
+ })]
44
+ })] });
45
+ }
46
+ function f({ className: t, ...n }) {
47
+ return /* @__PURE__ */ r("div", {
48
+ "data-slot": "dialog-header",
49
+ className: e("flex flex-col space-y-1.5 text-center sm:text-left", t),
50
+ ...n
51
+ });
52
+ }
53
+ function p({ className: t, ...n }) {
54
+ return /* @__PURE__ */ r("div", {
55
+ "data-slot": "dialog-footer",
56
+ className: e("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", t),
57
+ ...n
58
+ });
59
+ }
60
+ function m({ className: t, ...n }) {
61
+ return /* @__PURE__ */ r(a.Title, {
62
+ "data-slot": "dialog-title",
63
+ className: e("text-lg font-semibold leading-none tracking-tight", t),
64
+ ...n
65
+ });
66
+ }
67
+ function h({ className: t, ...n }) {
68
+ return /* @__PURE__ */ r(a.Description, {
69
+ "data-slot": "dialog-description",
70
+ className: e("text-sm text-muted-foreground", t),
71
+ ...n
72
+ });
73
+ }
74
+ //#endregion
75
+ export { o as Dialog, l as DialogClose, d as DialogContent, h as DialogDescription, p as DialogFooter, f as DialogHeader, u as DialogOverlay, c as DialogPortal, m as DialogTitle, s as DialogTrigger };
76
+
77
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.js","names":[],"sources":["../../../src/components/ui/dialog.tsx"],"mappings":";;;;;;;AAQA,IAAM,IAAS,EAAgB;AAE/B,SAAS,EAAc,EACrB,aAAU,IACV,aACA,GAAG,KAC4E;CAC/E,OACE,kBAAC,EAAgB,SAAjB;EACE,aAAU;EACV,GAAK,IAAU,EAAE,QAAQ,EAAM,SAAS,KAAK,CAAQ,EAAwB,IAAI,EAAE,YAAS;EAC5F,GAAI;CACL,CAAA;AAEL;AAEA,IAAM,IAAe,EAAgB;AAErC,SAAS,EAAY,EACnB,aAAU,IACV,aACA,GAAG,KAC0E;CAC7E,OACE,kBAAC,EAAgB,OAAjB;EACE,aAAU;EACV,GAAK,IAAU,EAAE,QAAQ,EAAM,SAAS,KAAK,CAAQ,EAAwB,IAAI,EAAE,YAAS;EAC5F,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAc,EAAE,cAAW,GAAG,KAAgE;CACrG,OACE,kBAAC,EAAgB,UAAjB;EACE,aAAU;EACV,WAAW,EACT,2JACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAc,EAAE,cAAW,aAAU,GAAG,KAA6D;CAC5G,OACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,CAAgB,CAAA,GAChB,kBAAC,EAAgB,OAAjB;EACE,aAAU;EACV,WAAW,EACT,kfACA,CACF;EACA,GAAI;EANN,UAAA,CAQG,GACD,kBAAC,EAAgB,OAAjB;GACE,aAAU;GACV,WAAU;GAFZ,UAAA,CAIE,kBAAC,GAAD,EAAG,WAAU,UAAW,CAAA,GACxB,kBAAC,QAAD;IAAM,WAAU;IAAU,UAAA;GAAW,CAAA,CAChB;EACF,CAAA,CAAA;CACX,CAAA,CAAA,EAAA,CAAA;AAElB;AAEA,SAAS,EAAa,EAAE,cAAW,GAAG,KAAsC;CAC1E,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EAAG,sDAAsD,CAAS;EAC7E,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAa,EAAE,cAAW,GAAG,KAAsC;CAC1E,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EAAG,iEAAiE,CAAS;EACxF,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAY,EAAE,cAAW,GAAG,KAA6D;CAChG,OACE,kBAAC,EAAgB,OAAjB;EACE,aAAU;EACV,WAAW,EAAG,qDAAqD,CAAS;EAC5E,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAkB,EAAE,cAAW,GAAG,KAAmE;CAC5G,OACE,kBAAC,EAAgB,aAAjB;EACE,aAAU;EACV,WAAW,EAAG,iCAAiC,CAAS;EACxD,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,32 @@
1
+ import { Menu as DropdownMenuPrimitive } from "@base-ui/react/menu";
2
+ import { Separator as SeparatorPrimitive } from "@base-ui/react/separator";
3
+ import * as React from "react";
4
+ declare function DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>): React.JSX.Element;
5
+ declare function DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>): React.JSX.Element;
6
+ declare function DropdownMenuTrigger({ asChild, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger> & {
7
+ asChild?: boolean;
8
+ }): React.JSX.Element;
9
+ declare function DropdownMenuContent({ className, side, align, sideOffset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Popup> & {
10
+ side?: "top" | "right" | "bottom" | "left";
11
+ align?: "start" | "center" | "end";
12
+ sideOffset?: number;
13
+ }): React.JSX.Element;
14
+ declare function DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>): React.JSX.Element;
15
+ declare function DropdownMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
16
+ inset?: boolean;
17
+ variant?: "default" | "destructive";
18
+ }): React.JSX.Element;
19
+ declare function DropdownMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>): React.JSX.Element;
20
+ declare function DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>): React.JSX.Element;
21
+ declare function DropdownMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>): React.JSX.Element;
22
+ declare function DropdownMenuLabel({ className, inset, ...props }: React.ComponentProps<"div"> & {
23
+ inset?: boolean;
24
+ }): React.JSX.Element;
25
+ declare function DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof SeparatorPrimitive>): React.JSX.Element;
26
+ declare function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
27
+ declare function DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubmenuRoot>): React.JSX.Element;
28
+ declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubmenuTrigger> & {
29
+ inset?: boolean;
30
+ }): React.JSX.Element;
31
+ declare function DropdownMenuSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Popup>): React.JSX.Element;
32
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, };
@@ -0,0 +1,129 @@
1
+ "use client";
2
+ import { cn as e } from "../../lib/utils.js";
3
+ import { CheckIcon as t, ChevronRightIcon as n, CircleIcon as r } from "lucide-react";
4
+ import * as i from "react";
5
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
6
+ import { Menu as s } from "@base-ui/react/menu";
7
+ import { Separator as c } from "@base-ui/react/separator";
8
+ //#region src/components/ui/dropdown-menu.tsx
9
+ function l({ ...e }) {
10
+ return /* @__PURE__ */ a(s.Root, { ...e });
11
+ }
12
+ function u({ ...e }) {
13
+ return /* @__PURE__ */ a(s.Portal, { ...e });
14
+ }
15
+ function d({ asChild: e = !1, children: t, ...n }) {
16
+ return /* @__PURE__ */ a(s.Trigger, {
17
+ "data-slot": "dropdown-menu-trigger",
18
+ ...e ? { render: i.Children.only(t) } : { children: t },
19
+ ...n
20
+ });
21
+ }
22
+ function f({ className: t, side: n, align: r, sideOffset: i = 4, ...o }) {
23
+ return /* @__PURE__ */ a(s.Portal, { children: /* @__PURE__ */ a(s.Positioner, {
24
+ side: n,
25
+ align: r,
26
+ sideOffset: i,
27
+ className: "z-[var(--z-popover)]",
28
+ children: /* @__PURE__ */ a(s.Popup, {
29
+ "data-slot": "dropdown-menu-content",
30
+ className: e("max-h-[var(--available-height)] min-w-[8rem] origin-[var(--transform-origin)] overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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 data-[ending-style]:animate-out data-[ending-style]:fade-out-0 data-[ending-style]:zoom-out-95 data-[open]:animate-in data-[open]:fade-in-0 data-[open]:zoom-in-95", t),
31
+ ...o
32
+ })
33
+ }) });
34
+ }
35
+ function p({ ...e }) {
36
+ return /* @__PURE__ */ a(s.Group, {
37
+ "data-slot": "dropdown-menu-group",
38
+ ...e
39
+ });
40
+ }
41
+ function m({ className: t, inset: n, variant: r = "default", ...i }) {
42
+ return /* @__PURE__ */ a(s.Item, {
43
+ "data-slot": "dropdown-menu-item",
44
+ "data-inset": n,
45
+ "data-variant": r,
46
+ className: e("relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!", t),
47
+ ...i
48
+ });
49
+ }
50
+ function h({ className: n, children: r, checked: i, ...c }) {
51
+ return /* @__PURE__ */ o(s.CheckboxItem, {
52
+ "data-slot": "dropdown-menu-checkbox-item",
53
+ className: e("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", n),
54
+ checked: i,
55
+ ...c,
56
+ children: [/* @__PURE__ */ a("span", {
57
+ className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
58
+ children: /* @__PURE__ */ a(s.CheckboxItemIndicator, { children: /* @__PURE__ */ a(t, { className: "size-4" }) })
59
+ }), r]
60
+ });
61
+ }
62
+ function g({ ...e }) {
63
+ return /* @__PURE__ */ a(s.RadioGroup, {
64
+ "data-slot": "dropdown-menu-radio-group",
65
+ ...e
66
+ });
67
+ }
68
+ function _({ className: t, children: n, ...i }) {
69
+ return /* @__PURE__ */ o(s.RadioItem, {
70
+ "data-slot": "dropdown-menu-radio-item",
71
+ className: e("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", t),
72
+ ...i,
73
+ children: [/* @__PURE__ */ a("span", {
74
+ className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
75
+ children: /* @__PURE__ */ a(s.RadioItemIndicator, { children: /* @__PURE__ */ a(r, { className: "size-2 fill-current" }) })
76
+ }), n]
77
+ });
78
+ }
79
+ function v({ className: t, inset: n, ...r }) {
80
+ return /* @__PURE__ */ a("div", {
81
+ "data-slot": "dropdown-menu-label",
82
+ "data-inset": n,
83
+ className: e("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", t),
84
+ ...r
85
+ });
86
+ }
87
+ function y({ className: t, ...n }) {
88
+ return /* @__PURE__ */ a(c, {
89
+ "data-slot": "dropdown-menu-separator",
90
+ className: e("-mx-1 my-1 h-px bg-border", t),
91
+ ...n
92
+ });
93
+ }
94
+ function b({ className: t, ...n }) {
95
+ return /* @__PURE__ */ a("span", {
96
+ "data-slot": "dropdown-menu-shortcut",
97
+ className: e("ml-auto text-xs tracking-widest text-muted-foreground", t),
98
+ ...n
99
+ });
100
+ }
101
+ function x({ ...e }) {
102
+ return /* @__PURE__ */ a(s.SubmenuRoot, {
103
+ "data-slot": "dropdown-menu-sub",
104
+ ...e
105
+ });
106
+ }
107
+ function S({ className: t, inset: r, children: i, ...c }) {
108
+ return /* @__PURE__ */ o(s.SubmenuTrigger, {
109
+ "data-slot": "dropdown-menu-sub-trigger",
110
+ "data-inset": r,
111
+ className: e("flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[inset]:pl-8 data-[popup-open]:bg-accent data-[popup-open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground", t),
112
+ ...c,
113
+ children: [i, /* @__PURE__ */ a(n, { className: "ml-auto size-4" })]
114
+ });
115
+ }
116
+ function C({ className: t, ...n }) {
117
+ return /* @__PURE__ */ a(s.Portal, { children: /* @__PURE__ */ a(s.Positioner, {
118
+ className: "z-[var(--z-popover)]",
119
+ children: /* @__PURE__ */ a(s.Popup, {
120
+ "data-slot": "dropdown-menu-sub-content",
121
+ className: e("min-w-[8rem] origin-[var(--transform-origin)] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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 data-[ending-style]:animate-out data-[ending-style]:fade-out-0 data-[ending-style]:zoom-out-95 data-[open]:animate-in data-[open]:fade-in-0 data-[open]:zoom-in-95", t),
122
+ ...n
123
+ })
124
+ }) });
125
+ }
126
+ //#endregion
127
+ export { l as DropdownMenu, h as DropdownMenuCheckboxItem, f as DropdownMenuContent, p as DropdownMenuGroup, m as DropdownMenuItem, v as DropdownMenuLabel, u as DropdownMenuPortal, g as DropdownMenuRadioGroup, _ as DropdownMenuRadioItem, y as DropdownMenuSeparator, b as DropdownMenuShortcut, x as DropdownMenuSub, C as DropdownMenuSubContent, S as DropdownMenuSubTrigger, d as DropdownMenuTrigger };
128
+
129
+ //# sourceMappingURL=dropdown-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.js","names":[],"sources":["../../../src/components/ui/dropdown-menu.tsx"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { LucideIcon } from "lucide-react";
2
+ import * as React from "react";
3
+ export interface EmptyStateProps {
4
+ icon: LucideIcon;
5
+ title: string;
6
+ description?: string;
7
+ action?: React.ReactNode;
8
+ /** Optional illustration (e.g. SVG) shown instead of icon when provided */
9
+ illustration?: React.ReactNode;
10
+ /**
11
+ * Announce the empty state to assistive technology when it appears (applies
12
+ * `role="status"`). Opt in only when the empty state mounts as the result of
13
+ * a data change; a statically rendered empty state should stay the default
14
+ * plain labelled region so it is not announced on page load.
15
+ */
16
+ announce?: boolean;
17
+ className?: string;
18
+ }
19
+ /**
20
+ * Consistent empty state for lists and grids (e.g. no pages, no collections).
21
+ * Use with an icon, title, optional description, optional CTA, and optional illustration.
22
+ */
23
+ export declare function EmptyState({ icon: Icon, title, description, action, illustration, announce, className, }: EmptyStateProps): React.JSX.Element;
@@ -0,0 +1,49 @@
1
+ "use client";
2
+ import { cn as e } from "../../lib/utils.js";
3
+ import * as t from "react";
4
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
+ //#region src/components/ui/empty-state.tsx
6
+ function i({ icon: i, title: a, description: o, action: s, illustration: c, announce: l = !1, className: u }) {
7
+ let d = t.useId();
8
+ return /* @__PURE__ */ r("div", {
9
+ "data-slot": "empty-state",
10
+ className: e("flex flex-col items-center justify-center text-center py-8 px-4", u),
11
+ role: l ? "status" : "region",
12
+ "aria-labelledby": d,
13
+ children: [
14
+ c ? /* @__PURE__ */ n("div", {
15
+ "data-slot": "empty-state-media",
16
+ className: "mb-3 flex items-center justify-center [&_svg]:max-w-[120px] [&_svg]:max-h-[80px] [&_svg]:text-muted-foreground",
17
+ "aria-hidden": !0,
18
+ children: c
19
+ }) : /* @__PURE__ */ n("div", {
20
+ "data-slot": "empty-state-media",
21
+ className: "rounded-full bg-brand/10 p-4 mb-3",
22
+ children: /* @__PURE__ */ n(i, {
23
+ className: "h-8 w-8 text-brand",
24
+ "aria-hidden": !0
25
+ })
26
+ }),
27
+ /* @__PURE__ */ n("h3", {
28
+ "data-slot": "empty-state-title",
29
+ id: d,
30
+ className: "text-sm font-medium text-foreground",
31
+ children: a
32
+ }),
33
+ o && /* @__PURE__ */ n("p", {
34
+ "data-slot": "empty-state-description",
35
+ className: "text-sm text-muted-foreground mt-1 max-w-sm leading-relaxed",
36
+ children: o
37
+ }),
38
+ s && /* @__PURE__ */ n("div", {
39
+ "data-slot": "empty-state-action",
40
+ className: "mt-4",
41
+ children: s
42
+ })
43
+ ]
44
+ });
45
+ }
46
+ //#endregion
47
+ export { i as EmptyState };
48
+
49
+ //# sourceMappingURL=empty-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-state.js","names":[],"sources":["../../../src/components/ui/empty-state.tsx"],"mappings":";;;;;AA4BA,SAAgB,EAAW,EACzB,MAAM,GACN,UACA,gBACA,WACA,iBACA,cAAW,IACX,gBACkB;CAClB,IAAM,IAAU,EAAM,MAAM;CAC5B,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EAAG,mEAAmE,CAAS;EAC1F,MAAM,IAAW,WAAW;EAC5B,mBAAiB;EAJnB,UAAA;GAMG,IACC,kBAAC,OAAD;IACE,aAAU;IACV,WAAU;IACV,eAAA;IAEC,UAAA;GACE,CAAA,IAEL,kBAAC,OAAD;IAAK,aAAU;IAAoB,WAAU;IAC3C,UAAA,kBAAC,GAAD;KAAM,WAAU;KAAqB,eAAA;IAAa,CAAA;GAC/C,CAAA;GAEP,kBAAC,MAAD;IAAI,aAAU;IAAoB,IAAI;IAAS,WAAU;IACtD,UAAA;GACC,CAAA;GACH,KACC,kBAAC,KAAD;IAAG,aAAU;IAA0B,WAAU;IAC9C,UAAA;GACA,CAAA;GAEJ,KACC,kBAAC,OAAD;IAAK,aAAU;IAAqB,WAAU;IAC3C,UAAA;GACE,CAAA;EAEJ;;AAET"}
@@ -0,0 +1,24 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import * as React from "react";
3
+ declare const flexVariants: (props?: ({
4
+ direction?: "col" | "row" | null | undefined;
5
+ align?: "end" | "start" | "center" | "baseline" | "stretch" | null | undefined;
6
+ justify?: "end" | "start" | "center" | "between" | null | undefined;
7
+ gap?: "0" | "1" | "2" | "0.5" | "1.5" | "2.5" | "3" | "4" | "5" | "6" | "8" | "12" | null | undefined;
8
+ wrap?: boolean | null | undefined;
9
+ inline?: boolean | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ /**
12
+ * Generic flexbox container — the workhorse layout primitive.
13
+ *
14
+ * `Flex` also covers what dedicated `HAlign`/`VAlign` components would do:
15
+ * in the default `direction="row"`, `align` positions children vertically and
16
+ * `justify` positions them horizontally; with `direction="col"` the axes swap.
17
+ * So `<Flex align="center" justify="center">` fully centers its children, and
18
+ * `<Flex align="center" justify="between">` is the classic toolbar row.
19
+ *
20
+ * `gap` is an enumerated spacing scale (Tailwind units), so every emitted
21
+ * class exists statically for the Tailwind v4 scanner.
22
+ */
23
+ declare function Flex({ className, direction, align, justify, gap, wrap, inline, ...props }: React.ComponentProps<"div"> & VariantProps<typeof flexVariants>): React.JSX.Element;
24
+ export { Flex, flexVariants };
@@ -0,0 +1,61 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import "react";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { cva as n } from "class-variance-authority";
5
+ //#region src/components/ui/flex.tsx
6
+ var r = n("flex", {
7
+ variants: {
8
+ direction: {
9
+ row: "flex-row",
10
+ col: "flex-col"
11
+ },
12
+ align: {
13
+ start: "items-start",
14
+ center: "items-center",
15
+ end: "items-end",
16
+ baseline: "items-baseline",
17
+ stretch: "items-stretch"
18
+ },
19
+ justify: {
20
+ start: "justify-start",
21
+ center: "justify-center",
22
+ end: "justify-end",
23
+ between: "justify-between"
24
+ },
25
+ gap: {
26
+ 0: "gap-0",
27
+ "0.5": "gap-0.5",
28
+ 1: "gap-1",
29
+ "1.5": "gap-1.5",
30
+ 2: "gap-2",
31
+ "2.5": "gap-2.5",
32
+ 3: "gap-3",
33
+ 4: "gap-4",
34
+ 5: "gap-5",
35
+ 6: "gap-6",
36
+ 8: "gap-8",
37
+ 12: "gap-12"
38
+ },
39
+ wrap: { true: "flex-wrap" },
40
+ inline: { true: "inline-flex" }
41
+ },
42
+ defaultVariants: { direction: "row" }
43
+ });
44
+ function i({ className: n, direction: i, align: a, justify: o, gap: s, wrap: c, inline: l, ...u }) {
45
+ return /* @__PURE__ */ t("div", {
46
+ "data-slot": "flex",
47
+ className: e(r({
48
+ direction: i,
49
+ align: a,
50
+ justify: o,
51
+ gap: s,
52
+ wrap: c,
53
+ inline: l
54
+ }), n),
55
+ ...u
56
+ });
57
+ }
58
+ //#endregion
59
+ export { i as Flex, r as flexVariants };
60
+
61
+ //# sourceMappingURL=flex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flex.js","names":[],"sources":["../../../src/components/ui/flex.tsx"],"mappings":";;;;;AAKA,IAAM,IAAe,EAAI,QAAQ;CAC/B,UAAU;EACR,WAAW;GACT,KAAK;GACL,KAAK;EACP;EACA,OAAO;GACL,OAAO;GACP,QAAQ;GACR,KAAK;GACL,UAAU;GACV,SAAS;EACX;EACA,SAAS;GACP,OAAO;GACP,QAAQ;GACR,KAAK;GACL,SAAS;EACX;EACA,KAAK;GACH,GAAK;GACL,OAAO;GACP,GAAK;GACL,OAAO;GACP,GAAK;GACL,OAAO;GACP,GAAK;GACL,GAAK;GACL,GAAK;GACL,GAAK;GACL,GAAK;GACL,IAAM;EACR;EACA,MAAM,EACJ,MAAM,YACR;EACA,QAAQ,EACN,MAAM,cACR;CACF;CACA,iBAAiB,EACf,WAAW,MACb;AACF,CAAC;AAcD,SAAS,EAAK,EACZ,cACA,cACA,UACA,YACA,QACA,SACA,WACA,GAAG,KAC+D;CAClE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EAAG,EAAa;GAAE;GAAW;GAAO;GAAS;GAAK;GAAM;EAAO,CAAC,GAAG,CAAS;EACvF,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,20 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import * as React from "react";
3
+ declare const gridVariants: (props?: ({
4
+ cols?: "1" | "2" | "3" | "4" | "5" | "6" | "8" | null | undefined;
5
+ sm?: "1" | "2" | "3" | "4" | "5" | "6" | "8" | null | undefined;
6
+ md?: "1" | "2" | "3" | "4" | "5" | "6" | "8" | null | undefined;
7
+ lg?: "1" | "2" | "3" | "4" | "5" | "6" | "8" | null | undefined;
8
+ gap?: "0" | "1" | "2" | "0.5" | "1.5" | "2.5" | "3" | "4" | "5" | "6" | "8" | "12" | null | undefined;
9
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
+ /**
11
+ * CSS grid container with an enumerated column count and gap scale.
12
+ *
13
+ * `cols` sets the base (mobile-first) column count; `sm`, `md`, and `lg`
14
+ * override it at the matching Tailwind breakpoints — e.g.
15
+ * `<Grid cols="1" sm="2" lg="3" gap="4">` for a responsive card grid.
16
+ * All values are enumerated so every emitted class exists statically for
17
+ * the Tailwind v4 scanner.
18
+ */
19
+ declare function Grid({ className, cols, sm, md, lg, gap, ...props }: React.ComponentProps<"div"> & VariantProps<typeof gridVariants>): React.JSX.Element;
20
+ export { Grid, gridVariants };