@bzync/rui 0.0.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 (263) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +115 -0
  3. package/dist/autocomplete-CaysJRpk.cjs +1 -0
  4. package/dist/autocomplete-CfbfpcO4.js +453 -0
  5. package/dist/calendar-Bnld4G59.cjs +1 -0
  6. package/dist/calendar-CdICOROs.js +573 -0
  7. package/dist/charts-CxEy2c3M.js +1248 -0
  8. package/dist/charts-UDqS1BH1.cjs +1 -0
  9. package/dist/cn-BdjraxxU.cjs +1 -0
  10. package/dist/cn-DpgY2leY.js +1736 -0
  11. package/dist/component-styles-Ce56hn9T.js +16 -0
  12. package/dist/component-styles-TkZ7v6Ef.cjs +1 -0
  13. package/dist/components/accordion.cjs +1 -0
  14. package/dist/components/accordion.d.ts +22 -0
  15. package/dist/components/accordion.js +122 -0
  16. package/dist/components/alert.cjs +1 -0
  17. package/dist/components/alert.d.ts +13 -0
  18. package/dist/components/alert.js +165 -0
  19. package/dist/components/auth-backdrop.cjs +1 -0
  20. package/dist/components/auth-backdrop.d.ts +7 -0
  21. package/dist/components/auth-backdrop.js +10 -0
  22. package/dist/components/autocomplete/dropdown.d.ts +21 -0
  23. package/dist/components/autocomplete/icons.d.ts +8 -0
  24. package/dist/components/autocomplete/multi-trigger.d.ts +25 -0
  25. package/dist/components/autocomplete/single-trigger.d.ts +21 -0
  26. package/dist/components/autocomplete/types.d.ts +34 -0
  27. package/dist/components/autocomplete.cjs +1 -0
  28. package/dist/components/autocomplete.d.ts +5 -0
  29. package/dist/components/autocomplete.js +3 -0
  30. package/dist/components/avatar.cjs +1 -0
  31. package/dist/components/avatar.d.ts +17 -0
  32. package/dist/components/avatar.js +56 -0
  33. package/dist/components/badge.cjs +1 -0
  34. package/dist/components/badge.d.ts +12 -0
  35. package/dist/components/badge.js +32 -0
  36. package/dist/components/billing-interval-toggle.cjs +1 -0
  37. package/dist/components/billing-interval-toggle.d.ts +18 -0
  38. package/dist/components/billing-interval-toggle.js +39 -0
  39. package/dist/components/breadcrumb.cjs +1 -0
  40. package/dist/components/breadcrumb.d.ts +11 -0
  41. package/dist/components/breadcrumb.js +52 -0
  42. package/dist/components/button.cjs +1 -0
  43. package/dist/components/button.d.ts +17 -0
  44. package/dist/components/button.js +90 -0
  45. package/dist/components/calendar/month-view.d.ts +17 -0
  46. package/dist/components/calendar/types.d.ts +54 -0
  47. package/dist/components/calendar/week-view.d.ts +17 -0
  48. package/dist/components/calendar.cjs +1 -0
  49. package/dist/components/calendar.d.ts +3 -0
  50. package/dist/components/calendar.js +3 -0
  51. package/dist/components/callout.cjs +1 -0
  52. package/dist/components/callout.d.ts +9 -0
  53. package/dist/components/callout.js +131 -0
  54. package/dist/components/card.cjs +1 -0
  55. package/dist/components/card.d.ts +17 -0
  56. package/dist/components/card.js +59 -0
  57. package/dist/components/charts/bar-chart.d.ts +16 -0
  58. package/dist/components/charts/donut-chart.d.ts +10 -0
  59. package/dist/components/charts/funnel-chart.d.ts +8 -0
  60. package/dist/components/charts/gantt-chart.d.ts +15 -0
  61. package/dist/components/charts/heatmap-chart.d.ts +10 -0
  62. package/dist/components/charts/index.d.ts +11 -0
  63. package/dist/components/charts/line-chart.d.ts +16 -0
  64. package/dist/components/charts/multi-line-chart.d.ts +18 -0
  65. package/dist/components/charts/radar-chart.d.ts +13 -0
  66. package/dist/components/charts/scatter-chart.d.ts +24 -0
  67. package/dist/components/charts/shared.d.ts +15 -0
  68. package/dist/components/charts/waterfall-chart.d.ts +14 -0
  69. package/dist/components/charts.cjs +1 -0
  70. package/dist/components/charts.d.ts +2 -0
  71. package/dist/components/charts.js +2 -0
  72. package/dist/components/checkbox.cjs +1 -0
  73. package/dist/components/checkbox.d.ts +9 -0
  74. package/dist/components/checkbox.js +135 -0
  75. package/dist/components/code.cjs +7 -0
  76. package/dist/components/code.d.ts +23 -0
  77. package/dist/components/code.js +276 -0
  78. package/dist/components/command.cjs +1 -0
  79. package/dist/components/command.d.ts +29 -0
  80. package/dist/components/command.js +208 -0
  81. package/dist/components/confirm-dialog.cjs +1 -0
  82. package/dist/components/confirm-dialog.d.ts +14 -0
  83. package/dist/components/confirm-dialog.js +69 -0
  84. package/dist/components/copy-button.cjs +1 -0
  85. package/dist/components/copy-button.d.ts +8 -0
  86. package/dist/components/copy-button.js +87 -0
  87. package/dist/components/datatable/pagination-footer.d.ts +10 -0
  88. package/dist/components/datatable/rows-dropdown.d.ts +5 -0
  89. package/dist/components/datatable/skeleton-row.d.ts +3 -0
  90. package/dist/components/datatable/sort-icon.d.ts +4 -0
  91. package/dist/components/datatable/types.d.ts +30 -0
  92. package/dist/components/datatable.cjs +1 -0
  93. package/dist/components/datatable.d.ts +9 -0
  94. package/dist/components/datatable.js +3 -0
  95. package/dist/components/datepicker.cjs +1 -0
  96. package/dist/components/datepicker.d.ts +14 -0
  97. package/dist/components/datepicker.js +267 -0
  98. package/dist/components/drawer.cjs +1 -0
  99. package/dist/components/drawer.d.ts +18 -0
  100. package/dist/components/drawer.js +3 -0
  101. package/dist/components/dropdown-menu.cjs +1 -0
  102. package/dist/components/dropdown-menu.d.ts +26 -0
  103. package/dist/components/dropdown-menu.js +122 -0
  104. package/dist/components/empty-state.cjs +1 -0
  105. package/dist/components/empty-state.d.ts +10 -0
  106. package/dist/components/empty-state.js +68 -0
  107. package/dist/components/error-state.cjs +1 -0
  108. package/dist/components/error-state.d.ts +10 -0
  109. package/dist/components/error-state.js +80 -0
  110. package/dist/components/file-upload.cjs +1 -0
  111. package/dist/components/file-upload.d.ts +10 -0
  112. package/dist/components/file-upload.js +173 -0
  113. package/dist/components/form-field.cjs +1 -0
  114. package/dist/components/form-field.d.ts +10 -0
  115. package/dist/components/form-field.js +36 -0
  116. package/dist/components/info-button.cjs +1 -0
  117. package/dist/components/info-button.d.ts +4 -0
  118. package/dist/components/info-button.js +32 -0
  119. package/dist/components/input.cjs +1 -0
  120. package/dist/components/input.d.ts +19 -0
  121. package/dist/components/input.js +117 -0
  122. package/dist/components/kbd.cjs +1 -0
  123. package/dist/components/kbd.d.ts +6 -0
  124. package/dist/components/kbd.js +16 -0
  125. package/dist/components/label.cjs +1 -0
  126. package/dist/components/label.d.ts +6 -0
  127. package/dist/components/label.js +31 -0
  128. package/dist/components/layout.cjs +1 -0
  129. package/dist/components/layout.d.ts +51 -0
  130. package/dist/components/layout.js +117 -0
  131. package/dist/components/link.cjs +1 -0
  132. package/dist/components/link.d.ts +9 -0
  133. package/dist/components/link.js +48 -0
  134. package/dist/components/list.cjs +1 -0
  135. package/dist/components/list.d.ts +13 -0
  136. package/dist/components/list.js +46 -0
  137. package/dist/components/modal.cjs +1 -0
  138. package/dist/components/modal.d.ts +31 -0
  139. package/dist/components/modal.js +219 -0
  140. package/dist/components/navigation.cjs +1 -0
  141. package/dist/components/navigation.d.ts +42 -0
  142. package/dist/components/navigation.js +127 -0
  143. package/dist/components/number-input.cjs +1 -0
  144. package/dist/components/number-input.d.ts +16 -0
  145. package/dist/components/number-input.js +142 -0
  146. package/dist/components/otp-input.cjs +1 -0
  147. package/dist/components/otp-input.d.ts +13 -0
  148. package/dist/components/otp-input.js +71 -0
  149. package/dist/components/pagination.cjs +1 -0
  150. package/dist/components/pagination.d.ts +8 -0
  151. package/dist/components/pagination.js +77 -0
  152. package/dist/components/popover.cjs +1 -0
  153. package/dist/components/popover.d.ts +16 -0
  154. package/dist/components/popover.js +115 -0
  155. package/dist/components/progressbar.cjs +1 -0
  156. package/dist/components/progressbar.d.ts +15 -0
  157. package/dist/components/progressbar.js +108 -0
  158. package/dist/components/radio.cjs +1 -0
  159. package/dist/components/radio.d.ts +22 -0
  160. package/dist/components/radio.js +96 -0
  161. package/dist/components/richtext.cjs +1 -0
  162. package/dist/components/richtext.d.ts +10 -0
  163. package/dist/components/richtext.js +370 -0
  164. package/dist/components/select/option-list.d.ts +16 -0
  165. package/dist/components/select/select-multi.d.ts +2 -0
  166. package/dist/components/select/select-single.d.ts +2 -0
  167. package/dist/components/select/types.d.ts +54 -0
  168. package/dist/components/select/utils.d.ts +10 -0
  169. package/dist/components/select.cjs +1 -0
  170. package/dist/components/select.d.ts +3 -0
  171. package/dist/components/select.js +2 -0
  172. package/dist/components/seo.cjs +1 -0
  173. package/dist/components/seo.d.ts +45 -0
  174. package/dist/components/seo.js +64 -0
  175. package/dist/components/separator.cjs +1 -0
  176. package/dist/components/separator.d.ts +6 -0
  177. package/dist/components/separator.js +25 -0
  178. package/dist/components/skeleton.cjs +1 -0
  179. package/dist/components/skeleton.d.ts +37 -0
  180. package/dist/components/skeleton.js +146 -0
  181. package/dist/components/slider.cjs +1 -0
  182. package/dist/components/slider.d.ts +12 -0
  183. package/dist/components/slider.js +72 -0
  184. package/dist/components/snackbar.cjs +1 -0
  185. package/dist/components/snackbar.d.ts +35 -0
  186. package/dist/components/snackbar.js +220 -0
  187. package/dist/components/spinner.cjs +1 -0
  188. package/dist/components/spinner.d.ts +7 -0
  189. package/dist/components/spinner.js +31 -0
  190. package/dist/components/stat.cjs +1 -0
  191. package/dist/components/stat.d.ts +18 -0
  192. package/dist/components/stat.js +90 -0
  193. package/dist/components/status-dot.cjs +1 -0
  194. package/dist/components/status-dot.d.ts +10 -0
  195. package/dist/components/status-dot.js +29 -0
  196. package/dist/components/stepper.cjs +1 -0
  197. package/dist/components/stepper.d.ts +11 -0
  198. package/dist/components/stepper.js +67 -0
  199. package/dist/components/switch.cjs +1 -0
  200. package/dist/components/switch.d.ts +8 -0
  201. package/dist/components/switch.js +79 -0
  202. package/dist/components/table.cjs +1 -0
  203. package/dist/components/table.d.ts +12 -0
  204. package/dist/components/table.js +54 -0
  205. package/dist/components/tabs.cjs +1 -0
  206. package/dist/components/tabs.d.ts +22 -0
  207. package/dist/components/tabs.js +120 -0
  208. package/dist/components/tag.cjs +1 -0
  209. package/dist/components/tag.d.ts +12 -0
  210. package/dist/components/tag.js +58 -0
  211. package/dist/components/terminal/fs.d.ts +10 -0
  212. package/dist/components/terminal/shell-commands-sim.d.ts +5 -0
  213. package/dist/components/terminal/shell-commands.d.ts +16 -0
  214. package/dist/components/terminal/shell-run.d.ts +11 -0
  215. package/dist/components/terminal/terminal-block.d.ts +13 -0
  216. package/dist/components/terminal/terminal-emulator.d.ts +10 -0
  217. package/dist/components/terminal/types.d.ts +35 -0
  218. package/dist/components/terminal.cjs +1 -0
  219. package/dist/components/terminal.d.ts +2 -0
  220. package/dist/components/terminal.js +2 -0
  221. package/dist/components/textarea.cjs +1 -0
  222. package/dist/components/textarea.d.ts +13 -0
  223. package/dist/components/textarea.js +54 -0
  224. package/dist/components/theme-provider.cjs +1 -0
  225. package/dist/components/theme-provider.d.ts +89 -0
  226. package/dist/components/theme-provider.js +93 -0
  227. package/dist/components/theme-toggle.cjs +1 -0
  228. package/dist/components/theme-toggle.d.ts +9 -0
  229. package/dist/components/theme-toggle.js +4 -0
  230. package/dist/components/timeline.cjs +1 -0
  231. package/dist/components/timeline.d.ts +14 -0
  232. package/dist/components/timeline.js +54 -0
  233. package/dist/components/tooltip.cjs +1 -0
  234. package/dist/components/tooltip.d.ts +11 -0
  235. package/dist/components/tooltip.js +84 -0
  236. package/dist/components/tree.cjs +1 -0
  237. package/dist/components/tree.d.ts +16 -0
  238. package/dist/components/tree.js +92 -0
  239. package/dist/createLucideIcon-DDY8HuQR.js +42 -0
  240. package/dist/createLucideIcon-b_X_3fj-.cjs +1 -0
  241. package/dist/datatable-BB3v__r5.cjs +1 -0
  242. package/dist/datatable-DlBhUhuO.js +316 -0
  243. package/dist/drawer-Cbuh6qdL.cjs +1 -0
  244. package/dist/drawer-CqkVZT9Y.js +189 -0
  245. package/dist/focus-Dk1YWVPN.js +42 -0
  246. package/dist/focus-DmG6Ge7X.cjs +1 -0
  247. package/dist/index.cjs +1 -0
  248. package/dist/index.d.ts +70 -0
  249. package/dist/index.js +215 -0
  250. package/dist/lib/cn.d.ts +2 -0
  251. package/dist/lib/component-styles.d.ts +10 -0
  252. package/dist/select-Ch5fp1GT.js +461 -0
  253. package/dist/select-q0YCMhBP.cjs +1 -0
  254. package/dist/styles.css +3 -0
  255. package/dist/terminal-BOR2cFi1.js +1060 -0
  256. package/dist/terminal-CpraMs50.cjs +77 -0
  257. package/dist/theme-toggle-CnoiorKV.js +71 -0
  258. package/dist/theme-toggle-Dp1-24zH.cjs +1 -0
  259. package/dist/use-event-callback-DGkfO_uu.js +10 -0
  260. package/dist/use-event-callback-Du9_9eAi.cjs +1 -0
  261. package/dist/utils-CQ8pvCtk.js +72 -0
  262. package/dist/utils-DOFJTw8o.cjs +1 -0
  263. package/package.json +88 -0
@@ -0,0 +1 @@
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs");let t=require("react/jsx-runtime");var n=[{value:`monthly`,label:`Monthly`},{value:`quarterly`,label:`Quarterly`},{value:`yearly`,label:`Annually`}];function r({value:r,onChange:i,options:a=n,disabled:o=!1,size:s=`sm`,className:c}){let l=s===`lg`;return(0,t.jsx)(`div`,{className:e.t(`inline-flex items-center rounded-lg border border-black/[0.08] dark:border-white/[0.08]`,l?`rounded-xl bg-black/[0.025] dark:bg-white/[0.025] p-0.5 gap-0.5 sm:p-1 sm:gap-1`:`bg-black/[0.02] dark:bg-white/[0.03] p-0.5`,c),children:a.map(n=>{let a=r===n.value;return(0,t.jsxs)(`button`,{type:`button`,onClick:()=>!o&&i(n.value),disabled:o,className:e.t(`flex items-center justify-center rounded-md font-medium transition-[background-color,border-color,opacity,transform] duration-200`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring/35`,l?`flex-col gap-0.5 px-2 py-1.5 text-[11px] rounded-lg sm:flex-row sm:gap-2 sm:px-4 sm:py-2 sm:text-sm`:`px-3 py-1 text-xs`,o&&`opacity-50 cursor-not-allowed`,a?l?`bg-primary text-primary-foreground shadow-xs`:`bg-white dark:bg-white/10 text-slate-900 dark:text-white shadow-sm`:`text-slate-500 dark:text-slate-400 hover:text-slate-900 dark:hover:text-white`),children:[n.label,n.badge&&(0,t.jsx)(`span`,{className:e.t(`rounded-full px-1 py-0.5 text-[9px] font-bold border transition-colors sm:px-1.5 sm:text-[10px]`,a?`bg-white/[0.18] text-white border-white/25`:`bg-green-500/[0.12] text-green-600 dark:text-green-400 border-green-500/20`),children:n.badge})]},n.value)})})}exports.BillingIntervalToggle=r;
@@ -0,0 +1,18 @@
1
+ export type BillingInterval = "monthly" | "quarterly" | "yearly";
2
+ export interface BillingIntervalToggleOption {
3
+ value: BillingInterval;
4
+ label: string;
5
+ badge?: string;
6
+ }
7
+ export interface BillingIntervalToggleProps {
8
+ value: BillingInterval;
9
+ onChange: (interval: BillingInterval) => void;
10
+ options?: BillingIntervalToggleOption[];
11
+ disabled?: boolean;
12
+ /** "sm" (default) matches the subtle inline pill used in onboarding/billing
13
+ * pages; "lg" matches the bolder blue-accent pill used on the marketing
14
+ * pricing section. */
15
+ size?: "sm" | "lg";
16
+ className?: string;
17
+ }
18
+ export declare function BillingIntervalToggle({ value, onChange, options, disabled, size, className, }: BillingIntervalToggleProps): import("react").JSX.Element;
@@ -0,0 +1,39 @@
1
+ "use client";
2
+ import { t as e } from "../cn-DpgY2leY.js";
3
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
+ //#region src/components/billing-interval-toggle.tsx
5
+ var r = [
6
+ {
7
+ value: "monthly",
8
+ label: "Monthly"
9
+ },
10
+ {
11
+ value: "quarterly",
12
+ label: "Quarterly"
13
+ },
14
+ {
15
+ value: "yearly",
16
+ label: "Annually"
17
+ }
18
+ ];
19
+ function i({ value: i, onChange: a, options: o = r, disabled: s = !1, size: c = "sm", className: l }) {
20
+ let u = c === "lg";
21
+ return /* @__PURE__ */ t("div", {
22
+ className: e("inline-flex items-center rounded-lg border border-black/[0.08] dark:border-white/[0.08]", u ? "rounded-xl bg-black/[0.025] dark:bg-white/[0.025] p-0.5 gap-0.5 sm:p-1 sm:gap-1" : "bg-black/[0.02] dark:bg-white/[0.03] p-0.5", l),
23
+ children: o.map((r) => {
24
+ let o = i === r.value;
25
+ return /* @__PURE__ */ n("button", {
26
+ type: "button",
27
+ onClick: () => !s && a(r.value),
28
+ disabled: s,
29
+ className: e("flex items-center justify-center rounded-md font-medium transition-[background-color,border-color,opacity,transform] duration-200", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring/35", u ? "flex-col gap-0.5 px-2 py-1.5 text-[11px] rounded-lg sm:flex-row sm:gap-2 sm:px-4 sm:py-2 sm:text-sm" : "px-3 py-1 text-xs", s && "opacity-50 cursor-not-allowed", o ? u ? "bg-primary text-primary-foreground shadow-xs" : "bg-white dark:bg-white/10 text-slate-900 dark:text-white shadow-sm" : "text-slate-500 dark:text-slate-400 hover:text-slate-900 dark:hover:text-white"),
30
+ children: [r.label, r.badge && /* @__PURE__ */ t("span", {
31
+ className: e("rounded-full px-1 py-0.5 text-[9px] font-bold border transition-colors sm:px-1.5 sm:text-[10px]", o ? "bg-white/[0.18] text-white border-white/25" : "bg-green-500/[0.12] text-green-600 dark:text-green-400 border-green-500/20"),
32
+ children: r.badge
33
+ })]
34
+ }, r.value);
35
+ })
36
+ });
37
+ }
38
+ //#endregion
39
+ export { i as BillingIntervalToggle };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs"),t=require("../component-styles-TkZ7v6Ef.cjs");let n=require("react/jsx-runtime");var r=()=>(0,n.jsx)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:`text-slate-400`,children:(0,n.jsx)(`path`,{d:`m9 18 6-6-6-6`})});function i({items:i,separator:a,className:o,...s}){return(0,n.jsx)(`nav`,{"aria-label":`Breadcrumb`,className:e.t(`flex min-w-0`,o),...s,children:(0,n.jsx)(`ol`,{className:`flex min-w-0 items-center gap-1.5 overflow-x-auto`,children:i.map((o,s)=>{let c=s===i.length-1;return(0,n.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[s>0&&(0,n.jsx)(`span`,{className:`flex items-center shrink-0`,children:a??(0,n.jsx)(r,{})}),o.href&&!c?(0,n.jsxs)(`a`,{href:o.href,className:e.t(`flex items-center gap-1 rounded-sm text-sm text-muted-foreground hover:text-foreground transition-colors`,t.s),children:[o.icon&&(0,n.jsx)(`span`,{className:`shrink-0`,children:o.icon}),o.label]}):(0,n.jsxs)(`span`,{className:e.t(`flex items-center gap-1 text-sm`,c?`text-foreground font-medium`:`text-muted-foreground`),"aria-current":c?`page`:void 0,children:[o.icon&&(0,n.jsx)(`span`,{className:`shrink-0`,children:o.icon}),o.label]})]},s)})})})}exports.Breadcrumb=i;
@@ -0,0 +1,11 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ export interface BreadcrumbItem {
3
+ label: string;
4
+ href?: string;
5
+ icon?: ReactNode;
6
+ }
7
+ export interface BreadcrumbProps extends HTMLAttributes<HTMLElement> {
8
+ items: BreadcrumbItem[];
9
+ separator?: ReactNode;
10
+ }
11
+ export declare function Breadcrumb({ items, separator, className, ...props }: BreadcrumbProps): import("react").JSX.Element;
@@ -0,0 +1,52 @@
1
+ import { t as e } from "../cn-DpgY2leY.js";
2
+ import { s as t } from "../component-styles-Ce56hn9T.js";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ //#region src/components/breadcrumb.tsx
5
+ var i = () => /* @__PURE__ */ n("svg", {
6
+ width: "12",
7
+ height: "12",
8
+ viewBox: "0 0 24 24",
9
+ fill: "none",
10
+ stroke: "currentColor",
11
+ strokeWidth: "2",
12
+ strokeLinecap: "round",
13
+ strokeLinejoin: "round",
14
+ className: "text-slate-400",
15
+ children: /* @__PURE__ */ n("path", { d: "m9 18 6-6-6-6" })
16
+ });
17
+ function a({ items: a, separator: o, className: s, ...c }) {
18
+ return /* @__PURE__ */ n("nav", {
19
+ "aria-label": "Breadcrumb",
20
+ className: e("flex min-w-0", s),
21
+ ...c,
22
+ children: /* @__PURE__ */ n("ol", {
23
+ className: "flex min-w-0 items-center gap-1.5 overflow-x-auto",
24
+ children: a.map((s, c) => {
25
+ let l = c === a.length - 1;
26
+ return /* @__PURE__ */ r("li", {
27
+ className: "flex items-center gap-1.5",
28
+ children: [c > 0 && /* @__PURE__ */ n("span", {
29
+ className: "flex items-center shrink-0",
30
+ children: o ?? /* @__PURE__ */ n(i, {})
31
+ }), s.href && !l ? /* @__PURE__ */ r("a", {
32
+ href: s.href,
33
+ className: e("flex items-center gap-1 rounded-sm text-sm text-muted-foreground hover:text-foreground transition-colors", t),
34
+ children: [s.icon && /* @__PURE__ */ n("span", {
35
+ className: "shrink-0",
36
+ children: s.icon
37
+ }), s.label]
38
+ }) : /* @__PURE__ */ r("span", {
39
+ className: e("flex items-center gap-1 text-sm", l ? "text-foreground font-medium" : "text-muted-foreground"),
40
+ "aria-current": l ? "page" : void 0,
41
+ children: [s.icon && /* @__PURE__ */ n("span", {
42
+ className: "shrink-0",
43
+ children: s.icon
44
+ }), s.label]
45
+ })]
46
+ }, c);
47
+ })
48
+ })
49
+ });
50
+ }
51
+ //#endregion
52
+ export { a as Breadcrumb };
@@ -0,0 +1 @@
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs"),t=require("../component-styles-TkZ7v6Ef.cjs");let n=require("react"),r=require("react/jsx-runtime");var i={primary:[`bg-primary hover:bg-primary-hover active:bg-primary-hover`,`text-primary-foreground font-semibold`,`border border-transparent shadow-xs`].join(` `),secondary:[`bg-surface hover:bg-surface-muted active:bg-muted`,`text-foreground font-medium`,`border border-border hover:border-border-strong shadow-xs`].join(` `),ghost:[`bg-transparent`,`hover:bg-muted active:bg-surface-muted`,`text-muted-foreground font-medium hover:text-foreground`].join(` `),outline:[`bg-transparent`,`border border-border-strong hover:border-foreground/35`,`text-foreground font-medium hover:bg-muted`].join(` `),destructive:[`bg-destructive hover:bg-destructive-hover active:bg-destructive-hover`,`text-destructive-foreground font-semibold`,`border border-transparent shadow-xs`].join(` `),link:`h-auto bg-transparent p-0 text-accent-700 underline-offset-4 hover:underline dark:text-accent-300`},a={sm:`h-8 px-3 text-xs rounded-[var(--radius-md)] gap-1.5`,md:`h-9 px-4 text-sm rounded-[var(--radius-lg)] gap-2`,lg:`h-10 px-5 text-sm rounded-[var(--radius-lg)] gap-2.5`,icon:`size-9 rounded-[var(--radius-md)] p-0`},o=(0,n.forwardRef)(({className:n,variant:o=`primary`,size:s=`md`,loading:c=!1,icon:l,iconPosition:u=`left`,variantClassName:d,unstyled:f=!1,children:p,disabled:m,type:h=`button`,...g},_)=>{let v=m||c;return f?(0,r.jsx)(`button`,{ref:_,type:h,disabled:v,className:e.t(n,d),...g,children:c?`Loading…`:p}):(0,r.jsxs)(`button`,{ref:_,type:h,"data-loading":c||void 0,className:e.t(`inline-flex items-center justify-center cursor-pointer select-none whitespace-nowrap`,`transition-[color,background-color,border-color,box-shadow,transform] duration-150 active:enabled:translate-y-px`,`disabled:opacity-40 disabled:cursor-not-allowed`,t.s,i[o],d,a[s],n),disabled:v,"aria-busy":c||void 0,...g,children:[c&&(0,r.jsxs)(`svg`,{className:`animate-spin shrink-0 w-3.5 h-3.5`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`,children:[(0,r.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,r.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),!c&&l&&u===`left`&&(0,r.jsx)(`span`,{className:`shrink-0`,children:l}),p&&(0,r.jsx)(`span`,{children:p}),!c&&l&&u===`right`&&(0,r.jsx)(`span`,{className:`shrink-0`,children:l})]})});o.displayName=`Button`;var s=(0,n.memo)(o);exports.Button=s,exports.buttonSizes=a,exports.buttonVariants=i;
@@ -0,0 +1,17 @@
1
+ import { ButtonHTMLAttributes, ReactNode } from 'react';
2
+ export type ButtonVariant = "primary" | "secondary" | "ghost" | "outline" | "destructive" | "link";
3
+ export type ButtonSize = "sm" | "md" | "lg" | "icon";
4
+ export interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
5
+ children?: ReactNode;
6
+ variant?: ButtonVariant;
7
+ size?: ButtonSize;
8
+ loading?: boolean;
9
+ icon?: ReactNode;
10
+ iconPosition?: "left" | "right";
11
+ /** End-to-end override */
12
+ variantClassName?: string;
13
+ unstyled?: boolean;
14
+ }
15
+ export declare const buttonVariants: Record<ButtonVariant, string>;
16
+ export declare const buttonSizes: Record<ButtonSize, string>;
17
+ export declare const Button: import('react').NamedExoticComponent<ButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,90 @@
1
+ "use client";
2
+ import { t as e } from "../cn-DpgY2leY.js";
3
+ import { s as t } from "../component-styles-Ce56hn9T.js";
4
+ import { forwardRef as n, memo as r } from "react";
5
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
+ //#region src/components/button.tsx
7
+ var o = {
8
+ primary: [
9
+ "bg-primary hover:bg-primary-hover active:bg-primary-hover",
10
+ "text-primary-foreground font-semibold",
11
+ "border border-transparent shadow-xs"
12
+ ].join(" "),
13
+ secondary: [
14
+ "bg-surface hover:bg-surface-muted active:bg-muted",
15
+ "text-foreground font-medium",
16
+ "border border-border hover:border-border-strong shadow-xs"
17
+ ].join(" "),
18
+ ghost: [
19
+ "bg-transparent",
20
+ "hover:bg-muted active:bg-surface-muted",
21
+ "text-muted-foreground font-medium hover:text-foreground"
22
+ ].join(" "),
23
+ outline: [
24
+ "bg-transparent",
25
+ "border border-border-strong hover:border-foreground/35",
26
+ "text-foreground font-medium hover:bg-muted"
27
+ ].join(" "),
28
+ destructive: [
29
+ "bg-destructive hover:bg-destructive-hover active:bg-destructive-hover",
30
+ "text-destructive-foreground font-semibold",
31
+ "border border-transparent shadow-xs"
32
+ ].join(" "),
33
+ link: "h-auto bg-transparent p-0 text-accent-700 underline-offset-4 hover:underline dark:text-accent-300"
34
+ }, s = {
35
+ sm: "h-8 px-3 text-xs rounded-[var(--radius-md)] gap-1.5",
36
+ md: "h-9 px-4 text-sm rounded-[var(--radius-lg)] gap-2",
37
+ lg: "h-10 px-5 text-sm rounded-[var(--radius-lg)] gap-2.5",
38
+ icon: "size-9 rounded-[var(--radius-md)] p-0"
39
+ }, c = n(({ className: n, variant: r = "primary", size: c = "md", loading: l = !1, icon: u, iconPosition: d = "left", variantClassName: f, unstyled: p = !1, children: m, disabled: h, type: g = "button", ..._ }, v) => {
40
+ let y = h || l;
41
+ return p ? /* @__PURE__ */ i("button", {
42
+ ref: v,
43
+ type: g,
44
+ disabled: y,
45
+ className: e(n, f),
46
+ ..._,
47
+ children: l ? "Loading…" : m
48
+ }) : /* @__PURE__ */ a("button", {
49
+ ref: v,
50
+ type: g,
51
+ "data-loading": l || void 0,
52
+ className: e("inline-flex items-center justify-center cursor-pointer select-none whitespace-nowrap", "transition-[color,background-color,border-color,box-shadow,transform] duration-150 active:enabled:translate-y-px", "disabled:opacity-40 disabled:cursor-not-allowed", t, o[r], f, s[c], n),
53
+ disabled: y,
54
+ "aria-busy": l || void 0,
55
+ ..._,
56
+ children: [
57
+ l && /* @__PURE__ */ a("svg", {
58
+ className: "animate-spin shrink-0 w-3.5 h-3.5",
59
+ viewBox: "0 0 24 24",
60
+ fill: "none",
61
+ "aria-hidden": "true",
62
+ children: [/* @__PURE__ */ i("circle", {
63
+ className: "opacity-25",
64
+ cx: "12",
65
+ cy: "12",
66
+ r: "10",
67
+ stroke: "currentColor",
68
+ strokeWidth: "4"
69
+ }), /* @__PURE__ */ i("path", {
70
+ className: "opacity-75",
71
+ fill: "currentColor",
72
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"
73
+ })]
74
+ }),
75
+ !l && u && d === "left" && /* @__PURE__ */ i("span", {
76
+ className: "shrink-0",
77
+ children: u
78
+ }),
79
+ m && /* @__PURE__ */ i("span", { children: m }),
80
+ !l && u && d === "right" && /* @__PURE__ */ i("span", {
81
+ className: "shrink-0",
82
+ children: u
83
+ })
84
+ ]
85
+ });
86
+ });
87
+ c.displayName = "Button";
88
+ var l = r(c);
89
+ //#endregion
90
+ export { l as Button, s as buttonSizes, o as buttonVariants };
@@ -0,0 +1,17 @@
1
+ import { CalendarEvent } from './types';
2
+ interface MonthViewProps {
3
+ viewDate: Date;
4
+ today: Date | null;
5
+ value: Date | null;
6
+ events: CalendarEvent[];
7
+ onSelect: (d: Date) => void;
8
+ onEventClick?: (ev: CalendarEvent) => void;
9
+ isDateDisabled?: (d: Date) => boolean;
10
+ onEventCreate?: (d: Date) => void;
11
+ onEventDelete?: (id: string) => void;
12
+ editingId?: string | null;
13
+ onEditToggle?: (id: string) => void;
14
+ onUpdateTitle?: (id: string, title: string) => void;
15
+ }
16
+ export declare function MonthView({ viewDate, today, value, events, onSelect, onEventClick, isDateDisabled, onEventCreate, onEventDelete, editingId, onEditToggle, onUpdateTitle }: MonthViewProps): import("react").JSX.Element;
17
+ export {};
@@ -0,0 +1,54 @@
1
+ export declare const DAYS_SHORT: string[];
2
+ export declare const DAYS_MED: string[];
3
+ export declare const MONTHS: string[];
4
+ export type CalendarView = "month" | "week";
5
+ export interface CalendarEvent {
6
+ id: string;
7
+ title: string;
8
+ date: Date;
9
+ color?: "blue" | "green" | "red" | "yellow" | "purple" | "orange";
10
+ time?: string;
11
+ }
12
+ export interface CalendarProps {
13
+ value?: Date | null;
14
+ defaultValue?: Date | null;
15
+ onChange?: (date: Date | null) => void;
16
+ events?: CalendarEvent[];
17
+ defaultEvents?: CalendarEvent[];
18
+ onEventsChange?: (events: CalendarEvent[]) => void;
19
+ onEventClick?: (event: CalendarEvent) => void;
20
+ onEventCreate?: (event: CalendarEvent) => void;
21
+ onEventUpdate?: (event: CalendarEvent) => void;
22
+ onEventDelete?: (id: string) => void;
23
+ editable?: boolean;
24
+ view?: CalendarView;
25
+ defaultView?: CalendarView;
26
+ onViewChange?: (view: CalendarView) => void;
27
+ /** Controlled displayed month/week anchor. When provided, prev/next/Today are controlled via onViewDateChange. */
28
+ viewDate?: Date | null;
29
+ defaultViewDate?: Date | null;
30
+ onViewDateChange?: (date: Date) => void;
31
+ /** Disable dates outside range or via predicate — passed to month/week cells. */
32
+ minDate?: Date | null;
33
+ maxDate?: Date | null;
34
+ disabledDates?: (date: Date) => boolean;
35
+ className?: string;
36
+ }
37
+ export declare const EVENT_CHIP: Record<string, string>;
38
+ export declare function sameDay(a: Date, b: Date): boolean;
39
+ export declare function addDays(d: Date, n: number): Date;
40
+ export declare function weekStart(d: Date): Date;
41
+ export declare const variants: {
42
+ enter: (dir: number) => {
43
+ opacity: number;
44
+ x: number;
45
+ };
46
+ center: {
47
+ opacity: number;
48
+ x: number;
49
+ };
50
+ exit: (dir: number) => {
51
+ opacity: number;
52
+ x: number;
53
+ };
54
+ };
@@ -0,0 +1,17 @@
1
+ import { CalendarEvent } from './types';
2
+ interface WeekViewProps {
3
+ viewDate: Date;
4
+ today: Date | null;
5
+ value: Date | null;
6
+ events: CalendarEvent[];
7
+ onSelect: (d: Date) => void;
8
+ onEventClick?: (ev: CalendarEvent) => void;
9
+ isDateDisabled?: (d: Date) => boolean;
10
+ onEventCreate?: (d: Date) => void;
11
+ onEventDelete?: (id: string) => void;
12
+ editingId?: string | null;
13
+ onEditToggle?: (id: string) => void;
14
+ onUpdateTitle?: (id: string, title: string) => void;
15
+ }
16
+ export declare function WeekView({ viewDate, today, value, events, onSelect, onEventClick, isDateDisabled, onEventCreate, onEventDelete, editingId, onEditToggle, onUpdateTitle }: WeekViewProps): import("react").JSX.Element;
17
+ export {};
@@ -0,0 +1 @@
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../calendar-Bnld4G59.cjs");exports.Calendar=e.t;
@@ -0,0 +1,3 @@
1
+ import { CalendarProps } from './calendar/types';
2
+ export type { CalendarView, CalendarEvent, CalendarProps } from './calendar/types';
3
+ export declare function Calendar({ value: controlledValue, defaultValue, onChange, events: controlledEvents, defaultEvents, onEventsChange, onEventClick, onEventCreate, onEventUpdate, onEventDelete, editable, view: controlledView, defaultView, onViewChange, viewDate: controlledViewDate, defaultViewDate, onViewDateChange, minDate, maxDate, disabledDates, className, }: CalendarProps): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import { t as e } from "../calendar-CdICOROs.js";
3
+ export { e as Calendar };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs");let t=require("react/jsx-runtime");var n={default:{wrap:`bg-black/4 dark:bg-white/4 border-black/12 dark:border-white/12`,icon:`text-slate-500`,defaultIcon:(0,t.jsxs)(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,t.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,t.jsx)(`path`,{d:`M12 16v-4`}),(0,t.jsx)(`path`,{d:`M12 8h.01`})]})},info:{wrap:`bg-sky-500/8 border-sky-500/20`,icon:`text-sky-400`,defaultIcon:(0,t.jsxs)(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,t.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,t.jsx)(`path`,{d:`M12 16v-4`}),(0,t.jsx)(`path`,{d:`M12 8h.01`})]})},success:{wrap:`bg-emerald-500/8 border-emerald-500/20`,icon:`text-emerald-400`,defaultIcon:(0,t.jsxs)(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,t.jsx)(`path`,{d:`M22 11.08V12a10 10 0 1 1-5.93-9.14`}),(0,t.jsx)(`path`,{d:`m9 11 3 3L22 4`})]})},warning:{wrap:`bg-amber-500/8 border-amber-500/20`,icon:`text-amber-400`,defaultIcon:(0,t.jsxs)(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,t.jsx)(`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`}),(0,t.jsx)(`path`,{d:`M12 9v4`}),(0,t.jsx)(`path`,{d:`M12 17h.01`})]})},error:{wrap:`bg-red-500/8 border-red-500/20`,icon:`text-red-400`,defaultIcon:(0,t.jsxs)(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,t.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,t.jsx)(`path`,{d:`m15 9-6 6`}),(0,t.jsx)(`path`,{d:`m9 9 6 6`})]})}};function r({variant:r=`info`,icon:i,title:a,className:o,children:s,...c}){let{wrap:l,icon:u,defaultIcon:d}=n[r];return(0,t.jsxs)(`div`,{className:e.t(`flex gap-3 rounded-xl border px-4 py-3.5`,l,o),role:`note`,...c,children:[(0,t.jsx)(`span`,{className:e.t(`shrink-0 mt-0.5`,u),children:i??d}),(0,t.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[a&&(0,t.jsx)(`p`,{className:`text-sm font-semibold text-gray-900 dark:text-white mb-0.5 leading-snug`,children:a}),(0,t.jsx)(`div`,{className:`text-sm leading-relaxed text-slate-600 dark:text-slate-400`,children:s})]})]})}exports.Callout=r;
@@ -0,0 +1,9 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ type CalloutVariant = "info" | "success" | "warning" | "error" | "default";
3
+ export interface CalloutProps extends HTMLAttributes<HTMLDivElement> {
4
+ variant?: CalloutVariant;
5
+ icon?: ReactNode;
6
+ title?: string;
7
+ }
8
+ export declare function Callout({ variant, icon, title, className, children, ...props }: CalloutProps): import("react").JSX.Element;
9
+ export {};
@@ -0,0 +1,131 @@
1
+ import { t as e } from "../cn-DpgY2leY.js";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
+ //#region src/components/callout.tsx
4
+ var r = {
5
+ default: {
6
+ wrap: "bg-black/4 dark:bg-white/4 border-black/12 dark:border-white/12",
7
+ icon: "text-slate-500",
8
+ defaultIcon: /* @__PURE__ */ n("svg", {
9
+ width: "15",
10
+ height: "15",
11
+ viewBox: "0 0 24 24",
12
+ fill: "none",
13
+ stroke: "currentColor",
14
+ strokeWidth: "2",
15
+ strokeLinecap: "round",
16
+ strokeLinejoin: "round",
17
+ children: [
18
+ /* @__PURE__ */ t("circle", {
19
+ cx: "12",
20
+ cy: "12",
21
+ r: "10"
22
+ }),
23
+ /* @__PURE__ */ t("path", { d: "M12 16v-4" }),
24
+ /* @__PURE__ */ t("path", { d: "M12 8h.01" })
25
+ ]
26
+ })
27
+ },
28
+ info: {
29
+ wrap: "bg-sky-500/8 border-sky-500/20",
30
+ icon: "text-sky-400",
31
+ defaultIcon: /* @__PURE__ */ n("svg", {
32
+ width: "15",
33
+ height: "15",
34
+ viewBox: "0 0 24 24",
35
+ fill: "none",
36
+ stroke: "currentColor",
37
+ strokeWidth: "2",
38
+ strokeLinecap: "round",
39
+ strokeLinejoin: "round",
40
+ children: [
41
+ /* @__PURE__ */ t("circle", {
42
+ cx: "12",
43
+ cy: "12",
44
+ r: "10"
45
+ }),
46
+ /* @__PURE__ */ t("path", { d: "M12 16v-4" }),
47
+ /* @__PURE__ */ t("path", { d: "M12 8h.01" })
48
+ ]
49
+ })
50
+ },
51
+ success: {
52
+ wrap: "bg-emerald-500/8 border-emerald-500/20",
53
+ icon: "text-emerald-400",
54
+ defaultIcon: /* @__PURE__ */ n("svg", {
55
+ width: "15",
56
+ height: "15",
57
+ viewBox: "0 0 24 24",
58
+ fill: "none",
59
+ stroke: "currentColor",
60
+ strokeWidth: "2",
61
+ strokeLinecap: "round",
62
+ strokeLinejoin: "round",
63
+ children: [/* @__PURE__ */ t("path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14" }), /* @__PURE__ */ t("path", { d: "m9 11 3 3L22 4" })]
64
+ })
65
+ },
66
+ warning: {
67
+ wrap: "bg-amber-500/8 border-amber-500/20",
68
+ icon: "text-amber-400",
69
+ defaultIcon: /* @__PURE__ */ n("svg", {
70
+ width: "15",
71
+ height: "15",
72
+ viewBox: "0 0 24 24",
73
+ fill: "none",
74
+ stroke: "currentColor",
75
+ strokeWidth: "2",
76
+ strokeLinecap: "round",
77
+ strokeLinejoin: "round",
78
+ children: [
79
+ /* @__PURE__ */ t("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }),
80
+ /* @__PURE__ */ t("path", { d: "M12 9v4" }),
81
+ /* @__PURE__ */ t("path", { d: "M12 17h.01" })
82
+ ]
83
+ })
84
+ },
85
+ error: {
86
+ wrap: "bg-red-500/8 border-red-500/20",
87
+ icon: "text-red-400",
88
+ defaultIcon: /* @__PURE__ */ n("svg", {
89
+ width: "15",
90
+ height: "15",
91
+ viewBox: "0 0 24 24",
92
+ fill: "none",
93
+ stroke: "currentColor",
94
+ strokeWidth: "2",
95
+ strokeLinecap: "round",
96
+ strokeLinejoin: "round",
97
+ children: [
98
+ /* @__PURE__ */ t("circle", {
99
+ cx: "12",
100
+ cy: "12",
101
+ r: "10"
102
+ }),
103
+ /* @__PURE__ */ t("path", { d: "m15 9-6 6" }),
104
+ /* @__PURE__ */ t("path", { d: "m9 9 6 6" })
105
+ ]
106
+ })
107
+ }
108
+ };
109
+ function i({ variant: i = "info", icon: a, title: o, className: s, children: c, ...l }) {
110
+ let { wrap: u, icon: d, defaultIcon: f } = r[i];
111
+ return /* @__PURE__ */ n("div", {
112
+ className: e("flex gap-3 rounded-xl border px-4 py-3.5", u, s),
113
+ role: "note",
114
+ ...l,
115
+ children: [/* @__PURE__ */ t("span", {
116
+ className: e("shrink-0 mt-0.5", d),
117
+ children: a ?? f
118
+ }), /* @__PURE__ */ n("div", {
119
+ className: "flex-1 min-w-0",
120
+ children: [o && /* @__PURE__ */ t("p", {
121
+ className: "text-sm font-semibold text-gray-900 dark:text-white mb-0.5 leading-snug",
122
+ children: o
123
+ }), /* @__PURE__ */ t("div", {
124
+ className: "text-sm leading-relaxed text-slate-600 dark:text-slate-400",
125
+ children: c
126
+ })]
127
+ })]
128
+ });
129
+ }
130
+ //#endregion
131
+ export { i as Callout };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs");let t=require("react/jsx-runtime");var n={default:`rounded-[var(--radius-xl)] border border-border bg-surface shadow-raised`,elevated:`rounded-[var(--radius-xl)] border border-border bg-surface-raised shadow-floating`,bordered:`rounded-[var(--radius-xl)] border border-border bg-transparent`,glass:`portal-panel rounded-[var(--radius-xl)] border`,flush:`rounded-[var(--radius-lg)] bg-surface`};function r({variant:r=`default`,variantClassName:i,unstyled:a=!1,className:o,children:s,...c}){return a?(0,t.jsx)(`div`,{className:e.t(o,i),...c,children:s}):(0,t.jsx)(`div`,{"data-variant":r,className:e.t(n[r],i,o),...c,children:s})}function i({className:n,children:r,...i}){return(0,t.jsx)(`div`,{className:e.t(`px-4 py-3 sm:px-5 sm:py-4`,`border-b border-border`,n),...i,children:r})}function a({as:n=`h3`,className:r,children:i,...a}){return(0,t.jsx)(n,{className:e.t(`text-sm font-semibold leading-5 text-foreground`,r),...a,children:i})}function o({className:n,children:r,...i}){return(0,t.jsx)(`p`,{className:e.t(`mt-1 text-sm leading-5 text-muted-foreground`,n),...i,children:r})}function s({className:n,children:r,...i}){return(0,t.jsx)(`div`,{className:e.t(`px-4 py-3 sm:px-5 sm:py-4`,n),...i,children:r})}function c({className:n,children:r,...i}){return(0,t.jsx)(`div`,{className:e.t(`px-4 py-3 sm:px-5 sm:py-3`,`border-t border-border`,`flex flex-wrap items-center gap-2 sm:gap-3`,n),...i,children:r})}exports.Card=r,exports.CardBody=s,exports.CardDescription=o,exports.CardFooter=c,exports.CardHeader=i,exports.CardTitle=a,exports.cardVariants=n;
@@ -0,0 +1,17 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export type CardVariant = "default" | "elevated" | "bordered" | "glass" | "flush";
3
+ export interface CardProps extends HTMLAttributes<HTMLDivElement> {
4
+ variant?: CardVariant;
5
+ /** Override variant styling end-to-end */
6
+ variantClassName?: string;
7
+ unstyled?: boolean;
8
+ }
9
+ export declare const cardVariants: Record<CardVariant, string>;
10
+ export declare function Card({ variant, variantClassName, unstyled, className, children, ...props }: CardProps): import("react").JSX.Element;
11
+ export declare function CardHeader({ className, children, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
12
+ export declare function CardTitle({ as: Tag, className, children, ...props }: HTMLAttributes<HTMLHeadingElement> & {
13
+ as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "div" | "p";
14
+ }): import("react").JSX.Element;
15
+ export declare function CardDescription({ className, children, ...props }: HTMLAttributes<HTMLParagraphElement>): import("react").JSX.Element;
16
+ export declare function CardBody({ className, children, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
17
+ export declare function CardFooter({ className, children, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
@@ -0,0 +1,59 @@
1
+ import { t as e } from "../cn-DpgY2leY.js";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ //#region src/components/card.tsx
4
+ var n = {
5
+ default: "rounded-[var(--radius-xl)] border border-border bg-surface shadow-raised",
6
+ elevated: "rounded-[var(--radius-xl)] border border-border bg-surface-raised shadow-floating",
7
+ bordered: "rounded-[var(--radius-xl)] border border-border bg-transparent",
8
+ glass: "portal-panel rounded-[var(--radius-xl)] border",
9
+ flush: "rounded-[var(--radius-lg)] bg-surface"
10
+ };
11
+ function r({ variant: r = "default", variantClassName: i, unstyled: a = !1, className: o, children: s, ...c }) {
12
+ return a ? /* @__PURE__ */ t("div", {
13
+ className: e(o, i),
14
+ ...c,
15
+ children: s
16
+ }) : /* @__PURE__ */ t("div", {
17
+ "data-variant": r,
18
+ className: e(n[r], i, o),
19
+ ...c,
20
+ children: s
21
+ });
22
+ }
23
+ function i({ className: n, children: r, ...i }) {
24
+ return /* @__PURE__ */ t("div", {
25
+ className: e("px-4 py-3 sm:px-5 sm:py-4", "border-b border-border", n),
26
+ ...i,
27
+ children: r
28
+ });
29
+ }
30
+ function a({ as: n = "h3", className: r, children: i, ...a }) {
31
+ return /* @__PURE__ */ t(n, {
32
+ className: e("text-sm font-semibold leading-5 text-foreground", r),
33
+ ...a,
34
+ children: i
35
+ });
36
+ }
37
+ function o({ className: n, children: r, ...i }) {
38
+ return /* @__PURE__ */ t("p", {
39
+ className: e("mt-1 text-sm leading-5 text-muted-foreground", n),
40
+ ...i,
41
+ children: r
42
+ });
43
+ }
44
+ function s({ className: n, children: r, ...i }) {
45
+ return /* @__PURE__ */ t("div", {
46
+ className: e("px-4 py-3 sm:px-5 sm:py-4", n),
47
+ ...i,
48
+ children: r
49
+ });
50
+ }
51
+ function c({ className: n, children: r, ...i }) {
52
+ return /* @__PURE__ */ t("div", {
53
+ className: e("px-4 py-3 sm:px-5 sm:py-3", "border-t border-border", "flex flex-wrap items-center gap-2 sm:gap-3", n),
54
+ ...i,
55
+ children: r
56
+ });
57
+ }
58
+ //#endregion
59
+ export { r as Card, s as CardBody, o as CardDescription, c as CardFooter, i as CardHeader, a as CardTitle, n as cardVariants };
@@ -0,0 +1,16 @@
1
+ import { ChartDataPoint } from './shared';
2
+ export interface BarChartProps {
3
+ data: ChartDataPoint[];
4
+ height?: number;
5
+ /** Color applied to all bars unless each data point specifies its own */
6
+ color?: string;
7
+ /** Show value label on each bar */
8
+ showValues?: boolean;
9
+ /** Number of gridlines */
10
+ gridLines?: number;
11
+ /** "vertical" (default) = columns; "horizontal" = rows */
12
+ orientation?: "vertical" | "horizontal";
13
+ className?: string;
14
+ formatValue?: (v: number) => string;
15
+ }
16
+ export declare function BarChart({ data, height, color, showValues, gridLines, orientation, className, formatValue, }: BarChartProps): import("react").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from 'react';
2
+ import { ChartDataPoint } from './shared';
3
+ export interface DonutChartProps {
4
+ data: ChartDataPoint[];
5
+ size?: number;
6
+ thickness?: number;
7
+ centerLabel?: ReactNode;
8
+ className?: string;
9
+ }
10
+ export declare function DonutChart({ data, size, thickness, centerLabel, className, }: DonutChartProps): import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { ChartDataPoint } from './shared';
2
+ export interface FunnelChartProps {
3
+ data: ChartDataPoint[];
4
+ height?: number;
5
+ className?: string;
6
+ formatValue?: (v: number) => string;
7
+ }
8
+ export declare function FunnelChart({ data, className, formatValue, }: FunnelChartProps): import("react").JSX.Element;
@@ -0,0 +1,15 @@
1
+ export interface GanttTask {
2
+ id: string;
3
+ label: string;
4
+ start: number;
5
+ end: number;
6
+ color?: string;
7
+ }
8
+ export interface GanttChartProps {
9
+ tasks: GanttTask[];
10
+ total?: number;
11
+ xLabels?: string[];
12
+ rowHeight?: number;
13
+ className?: string;
14
+ }
15
+ export declare function GanttChart({ tasks, total: totalProp, xLabels, rowHeight, className, }: GanttChartProps): import("react").JSX.Element;