@bzync/rui 0.0.4 → 0.0.8

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 (251) hide show
  1. package/README.md +10 -0
  2. package/dist/autocomplete-D6z5B-WU.cjs +1 -0
  3. package/dist/{autocomplete-BgKbj6M4.js → autocomplete-bgySuP8X.js} +149 -142
  4. package/dist/calendar-CQumLNgS.cjs +1 -0
  5. package/dist/{calendar-j2_zvum1.js → calendar-nkYCMEy3.js} +9 -9
  6. package/dist/charts-Cot5lCgC.cjs +1 -0
  7. package/dist/{charts-CxEy2c3M.js → charts-Dscl6UC3.js} +122 -145
  8. package/dist/cn-B6R3HKzx.cjs +1 -0
  9. package/dist/{cn-DpgY2leY.js → cn-BJyZJP-y.js} +389 -389
  10. package/dist/{component-styles-Bgy44fc8.js → component-styles-C2CbHEEA.js} +2 -2
  11. package/dist/component-styles-DY4wigiq.cjs +1 -0
  12. package/dist/components/accordion.cjs +1 -1
  13. package/dist/components/accordion.js +2 -2
  14. package/dist/components/alert.cjs +1 -1
  15. package/dist/components/alert.js +3 -3
  16. package/dist/components/aspect-ratio.cjs +1 -0
  17. package/dist/components/aspect-ratio.d.ts +5 -0
  18. package/dist/components/aspect-ratio.js +20 -0
  19. package/dist/components/auth-backdrop.cjs +1 -1
  20. package/dist/components/auth-backdrop.d.ts +4 -1
  21. package/dist/components/auth-backdrop.js +12 -8
  22. package/dist/components/autocomplete/dropdown.d.ts +4 -1
  23. package/dist/components/autocomplete/multi-trigger.d.ts +3 -1
  24. package/dist/components/autocomplete/single-trigger.d.ts +3 -1
  25. package/dist/components/autocomplete/types.d.ts +15 -0
  26. package/dist/components/autocomplete.cjs +1 -1
  27. package/dist/components/autocomplete.js +1 -1
  28. package/dist/components/avatar-group.cjs +1 -0
  29. package/dist/components/avatar-group.d.ts +14 -0
  30. package/dist/components/avatar-group.js +35 -0
  31. package/dist/components/avatar.cjs +1 -1
  32. package/dist/components/avatar.js +2 -2
  33. package/dist/components/badge.cjs +1 -1
  34. package/dist/components/badge.js +1 -1
  35. package/dist/components/billing-interval-toggle.cjs +1 -1
  36. package/dist/components/billing-interval-toggle.d.ts +4 -6
  37. package/dist/components/billing-interval-toggle.js +26 -19
  38. package/dist/components/blockquote.cjs +1 -0
  39. package/dist/components/blockquote.d.ts +10 -0
  40. package/dist/components/blockquote.js +32 -0
  41. package/dist/components/breadcrumb.cjs +1 -1
  42. package/dist/components/breadcrumb.js +2 -2
  43. package/dist/components/button-group.cjs +1 -0
  44. package/dist/components/button-group.d.ts +7 -0
  45. package/dist/components/button-group.js +26 -0
  46. package/dist/components/button.cjs +1 -1
  47. package/dist/components/button.d.ts +2 -0
  48. package/dist/components/button.js +79 -36
  49. package/dist/components/calendar.cjs +1 -1
  50. package/dist/components/calendar.js +1 -1
  51. package/dist/components/callout.cjs +1 -1
  52. package/dist/components/callout.js +14 -14
  53. package/dist/components/card.cjs +1 -1
  54. package/dist/components/card.js +1 -1
  55. package/dist/components/charts/shared.d.ts +15 -0
  56. package/dist/components/charts.cjs +1 -1
  57. package/dist/components/charts.js +1 -1
  58. package/dist/components/checkbox.cjs +1 -1
  59. package/dist/components/checkbox.js +3 -3
  60. package/dist/components/code.cjs +3 -3
  61. package/dist/components/code.d.ts +4 -4
  62. package/dist/components/code.js +62 -60
  63. package/dist/components/command.cjs +1 -1
  64. package/dist/components/command.d.ts +8 -1
  65. package/dist/components/command.js +84 -83
  66. package/dist/components/confirm-dialog.cjs +1 -1
  67. package/dist/components/confirm-dialog.d.ts +8 -1
  68. package/dist/components/confirm-dialog.js +37 -31
  69. package/dist/components/copy-button.cjs +1 -1
  70. package/dist/components/copy-button.js +5 -4
  71. package/dist/components/currency.cjs +1 -0
  72. package/dist/components/currency.d.ts +18 -0
  73. package/dist/components/currency.js +62 -0
  74. package/dist/components/datatable/types.d.ts +4 -0
  75. package/dist/components/datatable.cjs +1 -1
  76. package/dist/components/datatable.d.ts +1 -5
  77. package/dist/components/datatable.js +1 -1
  78. package/dist/components/datepicker.cjs +1 -1
  79. package/dist/components/datepicker.d.ts +3 -3
  80. package/dist/components/datepicker.js +234 -105
  81. package/dist/components/description-list.cjs +1 -0
  82. package/dist/components/description-list.d.ts +14 -0
  83. package/dist/components/description-list.js +38 -0
  84. package/dist/components/divider.cjs +1 -0
  85. package/dist/components/divider.d.ts +12 -0
  86. package/dist/components/divider.js +45 -0
  87. package/dist/components/drawer.cjs +1 -1
  88. package/dist/components/drawer.d.ts +6 -1
  89. package/dist/components/drawer.js +128 -2
  90. package/dist/components/dropdown-menu-panel.cjs +1 -0
  91. package/dist/components/dropdown-menu-panel.d.ts +24 -0
  92. package/dist/components/dropdown-menu-panel.js +84 -0
  93. package/dist/components/dropdown-menu.cjs +1 -1
  94. package/dist/components/dropdown-menu.d.ts +5 -1
  95. package/dist/components/dropdown-menu.js +38 -93
  96. package/dist/components/empty-state.cjs +1 -1
  97. package/dist/components/empty-state.d.ts +5 -1
  98. package/dist/components/empty-state.js +9 -9
  99. package/dist/components/error-state.cjs +1 -1
  100. package/dist/components/error-state.js +2 -2
  101. package/dist/components/file-upload.cjs +1 -1
  102. package/dist/components/file-upload.js +4 -4
  103. package/dist/components/form-field.cjs +1 -1
  104. package/dist/components/form-field.d.ts +9 -0
  105. package/dist/components/form-field.js +49 -14
  106. package/dist/components/info-button.cjs +1 -1
  107. package/dist/components/info-button.d.ts +5 -3
  108. package/dist/components/info-button.js +33 -29
  109. package/dist/components/input.cjs +1 -1
  110. package/dist/components/input.js +3 -3
  111. package/dist/components/kbd.cjs +1 -1
  112. package/dist/components/kbd.js +1 -1
  113. package/dist/components/label.cjs +1 -1
  114. package/dist/components/label.js +2 -2
  115. package/dist/components/layout.cjs +1 -1
  116. package/dist/components/layout.js +1 -1
  117. package/dist/components/link.cjs +1 -1
  118. package/dist/components/link.js +1 -1
  119. package/dist/components/list.cjs +1 -1
  120. package/dist/components/list.js +1 -1
  121. package/dist/components/modal.cjs +1 -1
  122. package/dist/components/modal.d.ts +8 -1
  123. package/dist/components/modal.js +74 -120
  124. package/dist/components/navigation.cjs +1 -1
  125. package/dist/components/navigation.js +2 -2
  126. package/dist/components/number-input.cjs +1 -1
  127. package/dist/components/number-input.js +3 -3
  128. package/dist/components/otp-input.cjs +1 -1
  129. package/dist/components/otp-input.js +2 -2
  130. package/dist/components/overlay.cjs +1 -0
  131. package/dist/components/overlay.d.ts +52 -0
  132. package/dist/components/overlay.js +87 -0
  133. package/dist/components/pagination.cjs +1 -1
  134. package/dist/components/pagination.js +2 -2
  135. package/dist/components/popover.cjs +1 -1
  136. package/dist/components/popover.d.ts +2 -1
  137. package/dist/components/popover.js +41 -40
  138. package/dist/components/progressbar.cjs +1 -1
  139. package/dist/components/progressbar.js +1 -1
  140. package/dist/components/radio.cjs +1 -1
  141. package/dist/components/radio.js +3 -3
  142. package/dist/components/rating.cjs +1 -0
  143. package/dist/components/rating.d.ts +15 -0
  144. package/dist/components/rating.js +75 -0
  145. package/dist/components/richtext.cjs +1 -1
  146. package/dist/components/richtext.js +2 -2
  147. package/dist/components/scroll-area.cjs +1 -0
  148. package/dist/components/scroll-area.d.ts +8 -0
  149. package/dist/components/scroll-area.js +19 -0
  150. package/dist/components/select/option-list.d.ts +3 -1
  151. package/dist/components/select/types.d.ts +4 -0
  152. package/dist/components/select.cjs +1 -1
  153. package/dist/components/select.js +1 -1
  154. package/dist/components/seo.cjs +1 -1
  155. package/dist/components/seo.js +1 -1
  156. package/dist/components/separator.cjs +1 -1
  157. package/dist/components/separator.js +1 -1
  158. package/dist/components/skeleton.cjs +1 -1
  159. package/dist/components/skeleton.d.ts +14 -1
  160. package/dist/components/skeleton.js +56 -4
  161. package/dist/components/slider.cjs +1 -1
  162. package/dist/components/slider.js +2 -2
  163. package/dist/components/slot.cjs +1 -0
  164. package/dist/components/slot.d.ts +12 -0
  165. package/dist/components/slot.js +16 -0
  166. package/dist/components/snackbar-viewport.cjs +1 -0
  167. package/dist/components/snackbar-viewport.d.ts +27 -0
  168. package/dist/components/snackbar-viewport.js +181 -0
  169. package/dist/components/snackbar.cjs +1 -1
  170. package/dist/components/snackbar.d.ts +5 -1
  171. package/dist/components/snackbar.js +36 -200
  172. package/dist/components/spinner.cjs +1 -1
  173. package/dist/components/spinner.js +1 -1
  174. package/dist/components/stat.cjs +1 -1
  175. package/dist/components/stat.js +1 -1
  176. package/dist/components/status-dot.cjs +1 -1
  177. package/dist/components/status-dot.js +1 -1
  178. package/dist/components/stepper.cjs +1 -1
  179. package/dist/components/stepper.js +5 -5
  180. package/dist/components/switch.cjs +1 -1
  181. package/dist/components/switch.js +37 -43
  182. package/dist/components/table.cjs +1 -1
  183. package/dist/components/table.js +1 -1
  184. package/dist/components/tabs.cjs +1 -1
  185. package/dist/components/tabs.d.ts +6 -4
  186. package/dist/components/tabs.js +51 -81
  187. package/dist/components/tag.cjs +1 -1
  188. package/dist/components/tag.js +1 -1
  189. package/dist/components/terminal.cjs +1 -1
  190. package/dist/components/terminal.js +1 -1
  191. package/dist/components/textarea.cjs +1 -1
  192. package/dist/components/textarea.js +3 -3
  193. package/dist/components/theme-provider.cjs +1 -1
  194. package/dist/components/theme-provider.js +1 -1
  195. package/dist/components/theme-toggle.cjs +1 -1
  196. package/dist/components/theme-toggle.js +27 -3
  197. package/dist/components/time-picker.cjs +1 -0
  198. package/dist/components/time-picker.d.ts +31 -0
  199. package/dist/components/time-picker.js +394 -0
  200. package/dist/components/timeline.cjs +1 -1
  201. package/dist/components/timeline.js +1 -1
  202. package/dist/components/toggle.cjs +1 -0
  203. package/dist/components/toggle.d.ts +42 -0
  204. package/dist/components/toggle.js +116 -0
  205. package/dist/components/tooltip.cjs +1 -1
  206. package/dist/components/tooltip.d.ts +2 -1
  207. package/dist/components/tooltip.js +37 -36
  208. package/dist/components/tree.cjs +1 -1
  209. package/dist/components/tree.js +1 -1
  210. package/dist/components/typography.cjs +1 -0
  211. package/dist/components/typography.d.ts +50 -0
  212. package/dist/components/typography.js +202 -0
  213. package/dist/components/visually-hidden.cjs +1 -0
  214. package/dist/components/visually-hidden.d.ts +16 -0
  215. package/dist/components/visually-hidden.js +13 -0
  216. package/dist/{datatable-yBN4M3UV.js → datatable-BJoZMrKI.js} +6 -6
  217. package/dist/datatable-t0U7t_xh.cjs +1 -0
  218. package/dist/icons-Dfetr1L2.cjs +1 -0
  219. package/dist/icons-Dk7VZ4Ph.js +51 -0
  220. package/dist/index.cjs +1 -1
  221. package/dist/index.d.ts +16 -0
  222. package/dist/index.js +125 -86
  223. package/dist/lib/cn.d.ts +13 -1
  224. package/dist/lib/component-styles.d.ts +14 -2
  225. package/dist/lib/icons.d.ts +12 -0
  226. package/dist/lib/motion.d.ts +58 -0
  227. package/dist/motion-B2shivEB.cjs +1 -0
  228. package/dist/motion-gnRzFS5f.js +62 -0
  229. package/dist/select-ByjnuEcE.cjs +1 -0
  230. package/dist/{select-ClWrcj3R.js → select-CiMzLhUK.js} +128 -122
  231. package/dist/styles.css +1 -1
  232. package/dist/{terminal-CpraMs50.cjs → terminal-1U0ftG3i.cjs} +2 -2
  233. package/dist/{terminal-BOR2cFi1.js → terminal-VXdxVoAv.js} +4 -4
  234. package/dist/use-focus-trap-CPLT49gN.cjs +1 -0
  235. package/dist/use-focus-trap-CS6BXJAB.js +77 -0
  236. package/dist/{utils-CQ8pvCtk.js → utils-DEw5mQrH.js} +1 -1
  237. package/dist/{utils-DOFJTw8o.cjs → utils-MnnCTelh.cjs} +1 -1
  238. package/package.json +56 -9
  239. package/dist/autocomplete-Bk4pRQ2R.cjs +0 -1
  240. package/dist/calendar-CUXpVrVE.cjs +0 -1
  241. package/dist/charts-UDqS1BH1.cjs +0 -1
  242. package/dist/cn-BdjraxxU.cjs +0 -1
  243. package/dist/component-styles-DOUctc8_.cjs +0 -1
  244. package/dist/createLucideIcon-DDY8HuQR.js +0 -42
  245. package/dist/createLucideIcon-b_X_3fj-.cjs +0 -1
  246. package/dist/datatable-rzDgQ3r6.cjs +0 -1
  247. package/dist/drawer-CTeBsYrO.cjs +0 -1
  248. package/dist/drawer-ixuzyLVS.js +0 -189
  249. package/dist/select-BFwx--uK.cjs +0 -1
  250. package/dist/theme-toggle-Bb0BYo51.js +0 -71
  251. package/dist/theme-toggle-Cld8tktJ.cjs +0 -1
@@ -3,10 +3,10 @@ var e = "flex w-full flex-col gap-1.5", t = "text-xs font-semibold leading-5 tex
3
3
  "border border-border bg-surface text-foreground shadow-xs",
4
4
  "transition-[border-color,box-shadow,background-color] duration-150",
5
5
  "hover:border-border-strong",
6
- "focus-within:border-accent-500 focus-within:outline-none focus-within:ring-2 focus-within:ring-focus-ring/15",
6
+ "focus-within:border-accent-500 focus-within:outline-none focus-within:ring-[3px] focus-within:ring-focus-ring/25",
7
7
  "has-[:disabled]:cursor-not-allowed has-[:disabled]:bg-surface-muted has-[:disabled]:opacity-60",
8
8
  "has-[:read-only]:bg-surface-muted"
9
- ].join(" "), a = "border-destructive/60 hover:border-destructive/70 focus-within:border-destructive focus-within:ring-destructive/20", o = "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring/35 focus-visible:ring-offset-2 focus-visible:ring-offset-bg", s = [
9
+ ].join(" "), a = "border-destructive/60 hover:border-destructive/70 focus-within:border-destructive focus-within:ring-destructive/25", o = "focus-ring", s = [
10
10
  "inline-flex size-8 shrink-0 items-center justify-center rounded-md",
11
11
  "text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
12
12
  "disabled:pointer-events-none disabled:opacity-40",
@@ -0,0 +1 @@
1
+ var e=[`border border-border bg-surface text-foreground shadow-xs`,`transition-[border-color,box-shadow,background-color] duration-150`,`hover:border-border-strong`,`focus-within:border-accent-500 focus-within:outline-none focus-within:ring-[3px] focus-within:ring-focus-ring/25`,`has-[:disabled]:cursor-not-allowed has-[:disabled]:bg-surface-muted has-[:disabled]:opacity-60`,`has-[:read-only]:bg-surface-muted`].join(` `),t=`border-destructive/60 hover:border-destructive/70 focus-within:border-destructive focus-within:ring-destructive/25`,n=`focus-ring`,r=[`inline-flex size-8 shrink-0 items-center justify-center rounded-md`,`text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,`disabled:pointer-events-none disabled:opacity-40`,n].join(` `);Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return`text-xs font-semibold leading-5 text-foreground`}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return`text-xs leading-5 text-destructive`}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return`flex w-full flex-col gap-1.5`}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return`text-xs leading-5 text-muted-foreground`}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return e}});
@@ -1 +1 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs"),t=require("../component-styles-DOUctc8_.cjs");let n=require("framer-motion"),r=require("react"),i=require("react/jsx-runtime");function a({items:a,multiple:o=!1,defaultOpen:s=[],className:c,...l}){let[u,d]=(0,r.useState)(new Set(s)),f=(0,r.useId)();function p(e){d(t=>{let n=new Set(t);return n.has(e)?n.delete(e):(o||n.clear(),n.add(e)),n})}return(0,i.jsx)(`div`,{className:e.t(`flex flex-col divide-y divide-border`,c),...l,children:a.map(r=>{let a=u.has(r.id),o=encodeURIComponent(r.id),s=`${f}-trigger-${o}`,c=`${f}-panel-${o}`;return(0,i.jsxs)(`div`,{children:[(0,i.jsxs)(`button`,{type:`button`,id:s,"aria-expanded":a,"aria-controls":c,disabled:r.disabled,onClick:()=>p(r.id),className:e.t(`flex items-center justify-between w-full py-3.5 text-left gap-3 transition-colors`,`text-foreground hover:text-foreground`,t.s,r.disabled&&`opacity-40 cursor-not-allowed`),children:[(0,i.jsx)(`span`,{className:`flex-1 min-w-0`,children:r.trigger}),(0,i.jsx)(n.motion.span,{animate:{rotate:a?180:0},transition:{duration:.2},className:`shrink-0 text-slate-500`,children:(0,i.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,i.jsx)(`path`,{d:`m6 9 6 6 6-6`})})})]}),(0,i.jsx)(n.AnimatePresence,{initial:!1,children:a&&(0,i.jsx)(n.motion.div,{id:c,role:`region`,"aria-labelledby":s,initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:{height:0,opacity:0},transition:{duration:.2,ease:`easeInOut`},className:`overflow-hidden`,children:(0,i.jsx)(`div`,{className:`pb-4 text-sm leading-6 text-muted-foreground`,children:r.content})})})]},r.id)})})}function o({open:e,onOpenChange:t,defaultOpen:a=!1,trigger:o,children:s,className:c}){let[l,u]=(0,r.useState)(a),d=(0,r.useId)(),f=e??l;function p(){let n=!f;e===void 0&&u(n),t?.(n)}return(0,i.jsxs)(`div`,{className:c,children:[(0,i.jsx)(`button`,{type:`button`,onClick:p,"aria-expanded":f,"aria-controls":d,className:`block w-full cursor-pointer text-left`,children:o}),(0,i.jsx)(n.AnimatePresence,{initial:!1,children:f&&(0,i.jsx)(n.motion.div,{id:d,initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:{height:0,opacity:0},transition:{duration:.2,ease:`easeInOut`},className:`overflow-hidden`,children:s})})]})}exports.Accordion=a,exports.Collapsible=o;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-B6R3HKzx.cjs"),t=require("../component-styles-DY4wigiq.cjs");let n=require("framer-motion"),r=require("react"),i=require("react/jsx-runtime");function a({items:a,multiple:o=!1,defaultOpen:s=[],className:c,...l}){let[u,d]=(0,r.useState)(new Set(s)),f=(0,r.useId)();function p(e){d(t=>{let n=new Set(t);return n.has(e)?n.delete(e):(o||n.clear(),n.add(e)),n})}return(0,i.jsx)(`div`,{className:e.t(`flex flex-col divide-y divide-border`,c),...l,children:a.map(r=>{let a=u.has(r.id),o=encodeURIComponent(r.id),s=`${f}-trigger-${o}`,c=`${f}-panel-${o}`;return(0,i.jsxs)(`div`,{children:[(0,i.jsxs)(`button`,{type:`button`,id:s,"aria-expanded":a,"aria-controls":c,disabled:r.disabled,onClick:()=>p(r.id),className:e.t(`flex items-center justify-between w-full py-3.5 text-left gap-3 transition-colors`,`text-foreground hover:text-foreground`,t.s,r.disabled&&`opacity-40 cursor-not-allowed`),children:[(0,i.jsx)(`span`,{className:`flex-1 min-w-0`,children:r.trigger}),(0,i.jsx)(n.motion.span,{animate:{rotate:a?180:0},transition:{duration:.2},className:`shrink-0 text-slate-500`,children:(0,i.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,i.jsx)(`path`,{d:`m6 9 6 6 6-6`})})})]}),(0,i.jsx)(n.AnimatePresence,{initial:!1,children:a&&(0,i.jsx)(n.motion.div,{id:c,role:`region`,"aria-labelledby":s,initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:{height:0,opacity:0},transition:{duration:.2,ease:`easeInOut`},className:`overflow-hidden`,children:(0,i.jsx)(`div`,{className:`pb-4 text-sm leading-6 text-muted-foreground`,children:r.content})})})]},r.id)})})}function o({open:e,onOpenChange:t,defaultOpen:a=!1,trigger:o,children:s,className:c}){let[l,u]=(0,r.useState)(a),d=(0,r.useId)(),f=e??l;function p(){let n=!f;e===void 0&&u(n),t?.(n)}return(0,i.jsxs)(`div`,{className:c,children:[(0,i.jsx)(`button`,{type:`button`,onClick:p,"aria-expanded":f,"aria-controls":d,className:`block w-full cursor-pointer text-left`,children:o}),(0,i.jsx)(n.AnimatePresence,{initial:!1,children:f&&(0,i.jsx)(n.motion.div,{id:d,initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:{height:0,opacity:0},transition:{duration:.2,ease:`easeInOut`},className:`overflow-hidden`,children:s})})]})}exports.Accordion=a,exports.Collapsible=o;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { t as e } from "../cn-DpgY2leY.js";
3
- import { s as t } from "../component-styles-Bgy44fc8.js";
2
+ import { t as e } from "../cn-BJyZJP-y.js";
3
+ import { s as t } from "../component-styles-C2CbHEEA.js";
4
4
  import { AnimatePresence as n, motion as r } from "framer-motion";
5
5
  import { useId as i, useState as a } from "react";
6
6
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
@@ -1 +1 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs");require("../component-styles-DOUctc8_.cjs");let t=require("framer-motion"),n=require("react/jsx-runtime");var r={info:{container:`bg-sky-500/[0.07] dark:bg-sky-500/[0.09] border-sky-400/25 dark:border-sky-500/20`,accent:`bg-sky-500`,icon:`text-sky-600 dark:text-sky-400`,title:`text-sky-900 dark:text-sky-100`,body:`text-sky-800/90 dark:text-sky-200/70`},success:{container:`bg-emerald-500/[0.07] dark:bg-emerald-500/[0.09] border-emerald-400/25 dark:border-emerald-500/20`,accent:`bg-emerald-500`,icon:`text-emerald-600 dark:text-emerald-400`,title:`text-emerald-900 dark:text-emerald-100`,body:`text-emerald-800/90 dark:text-emerald-200/70`},warning:{container:`bg-amber-500/[0.07] dark:bg-amber-500/[0.09] border-amber-400/30 dark:border-amber-500/20`,accent:`bg-amber-500`,icon:`text-amber-600 dark:text-amber-400`,title:`text-amber-900 dark:text-amber-100`,body:`text-amber-800/90 dark:text-amber-200/70`},error:{container:`bg-red-500/[0.07] dark:bg-red-500/[0.09] border-red-400/25 dark:border-red-500/20`,accent:`bg-red-500`,icon:`text-red-600 dark:text-red-400`,title:`text-red-900 dark:text-red-100`,body:`text-red-800/90 dark:text-red-200/70`}},i={info:(0,n.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,n.jsx)(`path`,{d:`M12 16v-4`}),(0,n.jsx)(`path`,{d:`M12 8h.01`})]}),success:(0,n.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.jsx)(`path`,{d:`M22 11.08V12a10 10 0 1 1-5.93-9.14`}),(0,n.jsx)(`path`,{d:`m9 11 3 3L22 4`})]}),warning:(0,n.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.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,n.jsx)(`path`,{d:`M12 9v4`}),(0,n.jsx)(`path`,{d:`M12 17h.01`})]}),error:(0,n.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,n.jsx)(`path`,{d:`m15 9-6 6`}),(0,n.jsx)(`path`,{d:`m9 9 6 6`})]})};function a({variant:a=`info`,title:o,icon:s,className:c,children:l,dismissable:u=!1,onDismiss:d,...f}){let p=r[a],m=s??i[a],h=a===`error`||a===`warning`?`alert`:`status`;return(0,n.jsxs)(t.motion.div,{initial:{opacity:0,y:-5},animate:{opacity:1,y:0},transition:{duration:.18,ease:[.16,1,.3,1]},role:h,className:e.t(`relative flex gap-3 rounded-[var(--radius-lg)] border overflow-hidden pl-4 pr-4 py-3.5`,p.container,c),...f,children:[(0,n.jsx)(`span`,{className:e.t(`absolute left-0 inset-y-0 w-[3px]`,p.accent),"aria-hidden":`true`}),(0,n.jsx)(`span`,{className:e.t(`shrink-0 mt-0.5`,p.icon),children:m}),(0,n.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[o&&(0,n.jsx)(`p`,{className:e.t(`text-sm font-semibold leading-snug mb-0.5`,p.title),children:o}),l&&(0,n.jsx)(`div`,{className:e.t(`text-sm leading-relaxed`,p.body),children:l})]}),u&&(0,n.jsx)(`button`,{type:`button`,onClick:d,"aria-label":`Dismiss`,className:e.t(`shrink-0 mt-0.5 rounded-sm opacity-60 hover:opacity-100 transition-opacity cursor-pointer`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring/35 focus-visible:ring-offset-2 focus-visible:ring-offset-bg`,p.icon),children:(0,n.jsxs)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.jsx)(`path`,{d:`M18 6 6 18`}),(0,n.jsx)(`path`,{d:`m6 6 12 12`})]})})]})}exports.Alert=a;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-B6R3HKzx.cjs");require("../component-styles-DY4wigiq.cjs");let t=require("framer-motion"),n=require("react/jsx-runtime");var r={info:{container:`bg-sky-500/[0.07] dark:bg-sky-500/[0.09] border-sky-400/25 dark:border-sky-500/20`,accent:`bg-sky-500`,icon:`text-sky-600 dark:text-sky-400`,title:`text-sky-900 dark:text-sky-100`,body:`text-sky-800/90 dark:text-sky-200/70`},success:{container:`bg-emerald-500/[0.07] dark:bg-emerald-500/[0.09] border-emerald-400/25 dark:border-emerald-500/20`,accent:`bg-emerald-500`,icon:`text-emerald-600 dark:text-emerald-400`,title:`text-emerald-900 dark:text-emerald-100`,body:`text-emerald-800/90 dark:text-emerald-200/70`},warning:{container:`bg-amber-500/[0.07] dark:bg-amber-500/[0.09] border-amber-400/30 dark:border-amber-500/20`,accent:`bg-amber-500`,icon:`text-amber-600 dark:text-amber-400`,title:`text-amber-900 dark:text-amber-100`,body:`text-amber-800/90 dark:text-amber-200/70`},error:{container:`bg-red-500/[0.07] dark:bg-red-500/[0.09] border-red-400/25 dark:border-red-500/20`,accent:`bg-red-500`,icon:`text-red-600 dark:text-red-400`,title:`text-red-900 dark:text-red-100`,body:`text-red-800/90 dark:text-red-200/70`}},i={info:(0,n.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,n.jsx)(`path`,{d:`M12 16v-4`}),(0,n.jsx)(`path`,{d:`M12 8h.01`})]}),success:(0,n.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.jsx)(`path`,{d:`M22 11.08V12a10 10 0 1 1-5.93-9.14`}),(0,n.jsx)(`path`,{d:`m9 11 3 3L22 4`})]}),warning:(0,n.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.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,n.jsx)(`path`,{d:`M12 9v4`}),(0,n.jsx)(`path`,{d:`M12 17h.01`})]}),error:(0,n.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,n.jsx)(`path`,{d:`m15 9-6 6`}),(0,n.jsx)(`path`,{d:`m9 9 6 6`})]})};function a({variant:a=`info`,title:o,icon:s,className:c,children:l,dismissable:u=!1,onDismiss:d,...f}){let p=r[a],m=s??i[a],h=a===`error`||a===`warning`?`alert`:`status`;return(0,n.jsxs)(t.motion.div,{initial:{opacity:0,y:-5},animate:{opacity:1,y:0},transition:{duration:.18,ease:[.16,1,.3,1]},role:h,className:e.t(`relative flex gap-3 rounded-[var(--radius-lg)] border overflow-hidden pl-4 pr-4 py-3.5`,p.container,c),...f,children:[(0,n.jsx)(`span`,{className:e.t(`absolute left-0 inset-y-0 w-[3px]`,p.accent),"aria-hidden":`true`}),(0,n.jsx)(`span`,{className:e.t(`shrink-0 mt-0.5`,p.icon),children:m}),(0,n.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[o&&(0,n.jsx)(`p`,{className:e.t(`text-sm font-semibold leading-snug mb-0.5`,p.title),children:o}),l&&(0,n.jsx)(`div`,{className:e.t(`text-sm leading-relaxed`,p.body),children:l})]}),u&&(0,n.jsx)(`button`,{type:`button`,onClick:d,"aria-label":`Dismiss`,className:e.t(`shrink-0 mt-0.5 rounded-sm opacity-60 hover:opacity-100 transition-opacity cursor-pointer`,`focus-ring`,p.icon),children:(0,n.jsxs)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.jsx)(`path`,{d:`M18 6 6 18`}),(0,n.jsx)(`path`,{d:`m6 6 12 12`})]})})]})}exports.Alert=a;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { t as e } from "../cn-DpgY2leY.js";
3
- import "../component-styles-Bgy44fc8.js";
2
+ import { t as e } from "../cn-BJyZJP-y.js";
3
+ import "../component-styles-C2CbHEEA.js";
4
4
  import { motion as t } from "framer-motion";
5
5
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
6
6
  //#region src/components/alert.tsx
@@ -145,7 +145,7 @@ function o({ variant: o = "info", title: s, icon: c, className: l, children: u,
145
145
  type: "button",
146
146
  onClick: f,
147
147
  "aria-label": "Dismiss",
148
- className: e("shrink-0 mt-0.5 rounded-sm opacity-60 hover:opacity-100 transition-opacity cursor-pointer", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring/35 focus-visible:ring-offset-2 focus-visible:ring-offset-bg", m.icon),
148
+ className: e("shrink-0 mt-0.5 rounded-sm opacity-60 hover:opacity-100 transition-opacity cursor-pointer", "focus-ring", m.icon),
149
149
  children: /* @__PURE__ */ r("svg", {
150
150
  width: "14",
151
151
  height: "14",
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-B6R3HKzx.cjs");let t=require("react"),n=require("react/jsx-runtime");var r=(0,t.forwardRef)(({ratio:t=16/9,className:r,style:i,...a},o)=>{let s=Number.isFinite(t)&&t>0?t:16/9,c={aspectRatio:s,...i};return(0,n.jsx)(`div`,{ref:o,"data-ratio":s,className:e.t(`relative w-full overflow-hidden`,r),style:c,...a})});r.displayName=`AspectRatio`,exports.AspectRatio=r;
@@ -0,0 +1,5 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export interface AspectRatioProps extends HTMLAttributes<HTMLDivElement> {
3
+ ratio?: number;
4
+ }
5
+ export declare const AspectRatio: import('react').ForwardRefExoticComponent<AspectRatioProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,20 @@
1
+ import { t as e } from "../cn-BJyZJP-y.js";
2
+ import { forwardRef as t } from "react";
3
+ import { jsx as n } from "react/jsx-runtime";
4
+ //#region src/components/aspect-ratio.tsx
5
+ var r = t(({ ratio: t = 16 / 9, className: r, style: i, ...a }, o) => {
6
+ let s = Number.isFinite(t) && t > 0 ? t : 16 / 9, c = {
7
+ aspectRatio: s,
8
+ ...i
9
+ };
10
+ return /* @__PURE__ */ n("div", {
11
+ ref: o,
12
+ "data-ratio": s,
13
+ className: e("relative w-full overflow-hidden", r),
14
+ style: c,
15
+ ...a
16
+ });
17
+ });
18
+ r.displayName = "AspectRatio";
19
+ //#endregion
20
+ export { r as AspectRatio };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("react/jsx-runtime");function t(){return(0,e.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none fixed inset-0 -z-10 bg-accent-500/[0.03] dark:bg-blue-400/[0.04]`})}exports.AuthBackdrop=t;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-B6R3HKzx.cjs");let t=require("react"),n=require("react/jsx-runtime");var r=(0,t.forwardRef)(({className:t,...r},i)=>(0,n.jsx)(`div`,{ref:i,"aria-hidden":`true`,className:e.t(`pointer-events-none fixed inset-0 -z-10 bg-accent-500/[0.03] dark:bg-blue-400/[0.04]`,t),...r}));r.displayName=`AuthBackdrop`,exports.AuthBackdrop=r;
@@ -1,7 +1,10 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export interface AuthBackdropProps extends HTMLAttributes<HTMLDivElement> {
3
+ }
1
4
  /**
2
5
  * Flat, restrained backdrop for auth pages (login, register, forgot/reset
3
6
  * password, onboarding). Replaces the old per-page blurred-blob + dot-grid
4
7
  * treatment with a single flat tint — no gradient, no blur filters, no
5
8
  * mouse tracking, no glass.
6
9
  */
7
- export declare function AuthBackdrop(): import("react").JSX.Element;
10
+ export declare const AuthBackdrop: import('react').ForwardRefExoticComponent<AuthBackdropProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -1,10 +1,14 @@
1
- import { jsx as e } from "react/jsx-runtime";
1
+ "use client";
2
+ import { t as e } from "../cn-BJyZJP-y.js";
3
+ import { forwardRef as t } from "react";
4
+ import { jsx as n } from "react/jsx-runtime";
2
5
  //#region src/components/auth-backdrop.tsx
3
- function t() {
4
- return /* @__PURE__ */ e("div", {
5
- "aria-hidden": "true",
6
- className: "pointer-events-none fixed inset-0 -z-10 bg-accent-500/[0.03] dark:bg-blue-400/[0.04]"
7
- });
8
- }
6
+ var r = t(({ className: t, ...r }, i) => /* @__PURE__ */ n("div", {
7
+ ref: i,
8
+ "aria-hidden": "true",
9
+ className: e("pointer-events-none fixed inset-0 -z-10 bg-accent-500/[0.03] dark:bg-blue-400/[0.04]", t),
10
+ ...r
11
+ }));
12
+ r.displayName = "AuthBackdrop";
9
13
  //#endregion
10
- export { t as AuthBackdrop };
14
+ export { r as AuthBackdrop };
@@ -1,7 +1,7 @@
1
1
  import { RefObject } from 'react';
2
2
  import { AutocompleteOption } from './types';
3
3
  import { MenuPos } from '../select/types';
4
- export declare function AutocompleteDropdown<V>({ listRef, listId, open, pos, multiple, loading, filtered, emptyMessage, activeIdx, setActiveIdx, inputText, selectedValues, singleValue, onSelectSingle, onToggleMulti, className, }: {
4
+ export declare function AutocompleteDropdown<V>({ listRef, listId, open, pos, multiple, loading, filtered, emptyMessage, activeIdx, setActiveIdx, inputText, selectedValues, singleValue, onSelectSingle, onToggleMulti, className, optionClassName, loadingClassName, emptyClassName, }: {
5
5
  listRef: RefObject<HTMLUListElement | null>;
6
6
  listId: string;
7
7
  open: boolean;
@@ -18,4 +18,7 @@ export declare function AutocompleteDropdown<V>({ listRef, listId, open, pos, mu
18
18
  onSelectSingle: (opt: AutocompleteOption<V>) => void;
19
19
  onToggleMulti: (opt: AutocompleteOption<V>) => void;
20
20
  className?: string;
21
+ optionClassName?: string;
22
+ loadingClassName?: string;
23
+ emptyClassName?: string;
21
24
  }): import('react').ReactPortal | null;
@@ -1,6 +1,6 @@
1
1
  import { InputHTMLAttributes, KeyboardEvent, ReactNode } from 'react';
2
2
  import { AutocompleteOption } from './types';
3
- export declare function MultiTrigger<V>({ inputRef, inputId, listId, open, activeIdx, inputText, prefix, placeholder, disabled, error, loading, showClear, selected, onContainerClick, onInputChange, onFocus, onKeyDown, onRemove, onClearAll, messageId, inputProps, }: {
3
+ export declare function MultiTrigger<V>({ inputRef, inputId, listId, open, activeIdx, inputText, prefix, placeholder, disabled, error, loading, showClear, selected, onContainerClick, onInputChange, onFocus, onKeyDown, onRemove, onClearAll, messageId, inputProps, className, inputClassName, }: {
4
4
  inputRef: (node: HTMLInputElement | null) => void;
5
5
  inputId: string;
6
6
  listId: string;
@@ -22,4 +22,6 @@ export declare function MultiTrigger<V>({ inputRef, inputId, listId, open, activ
22
22
  onClearAll: () => void;
23
23
  messageId?: string;
24
24
  inputProps?: Omit<InputHTMLAttributes<HTMLInputElement>, "id" | "value" | "onChange" | "onFocus" | "onKeyDown" | "disabled" | "prefix">;
25
+ className?: string;
26
+ inputClassName?: string;
25
27
  }): import("react").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import { InputHTMLAttributes, KeyboardEvent, ReactNode } from 'react';
2
- export declare function SingleTrigger({ inputRef, inputId, listId, open, activeIdx, inputText, prefix, placeholder, disabled, error, loading, showClear, onInputChange, onFocus, onKeyDown, onClear, messageId, inputProps, }: {
2
+ export declare function SingleTrigger({ inputRef, inputId, listId, open, activeIdx, inputText, prefix, placeholder, disabled, error, loading, showClear, onInputChange, onFocus, onKeyDown, onClear, messageId, inputProps, className, inputClassName, }: {
3
3
  inputRef: React.Ref<HTMLInputElement>;
4
4
  inputId: string;
5
5
  listId: string;
@@ -18,4 +18,6 @@ export declare function SingleTrigger({ inputRef, inputId, listId, open, activeI
18
18
  onClear: () => void;
19
19
  messageId?: string;
20
20
  inputProps?: Omit<InputHTMLAttributes<HTMLInputElement>, "id" | "value" | "onChange" | "onFocus" | "onKeyDown" | "disabled" | "prefix">;
21
+ className?: string;
22
+ inputClassName?: string;
21
23
  }): import("react").JSX.Element;
@@ -18,6 +18,21 @@ export interface AutocompletePropsBase<V = string> extends Omit<InputHTMLAttribu
18
18
  loading?: boolean;
19
19
  emptyMessage?: string;
20
20
  maxVisible?: number;
21
+ /** Styles the component root. */
22
+ wrapperClassName?: string;
23
+ /** Styles the input control surface. */
24
+ triggerClassName?: string;
25
+ /** Styles the native text input. */
26
+ inputClassName?: string;
27
+ labelClassName?: string;
28
+ messageClassName?: string;
29
+ /** Styles the portalled options list. */
30
+ listClassName?: string;
31
+ optionClassName?: string;
32
+ loadingClassName?: string;
33
+ emptyClassName?: string;
34
+ /** Removes the default component chrome while preserving behavior. */
35
+ unstyled?: boolean;
21
36
  }
22
37
  export interface AutocompletePropsSingle<V = string> extends AutocompletePropsBase<V> {
23
38
  multiple?: false;
@@ -1 +1 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../autocomplete-Bk4pRQ2R.cjs");exports.Autocomplete=e.t;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../autocomplete-D6z5B-WU.cjs");exports.Autocomplete=e.t;
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { t as e } from "../autocomplete-BgKbj6M4.js";
2
+ import { t as e } from "../autocomplete-bgySuP8X.js";
3
3
  export { e as Autocomplete };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-B6R3HKzx.cjs");let t=require("react"),n=require("react/jsx-runtime");var r={tight:`-space-x-3`,normal:`-space-x-2`,loose:`-space-x-1`},i={xs:`size-6 text-[9px]`,sm:`size-8 text-[10px]`,md:`size-9 text-xs`,lg:`size-11 text-xs`,xl:`size-14 text-sm`},a=(0,t.forwardRef)(({spacing:t=`normal`,className:i,children:a,...o},s)=>(0,n.jsx)(`div`,{ref:s,role:`group`,className:e.t(`flex w-fit max-w-full items-center justify-start overflow-x-auto overscroll-x-contain px-0.5 py-0.5 scrollbar-none [&>*]:shrink-0 [&>*]:ring-2 [&>*]:ring-surface`,r[t],i),...o,children:a}));a.displayName=`AvatarGroup`;var o=(0,t.forwardRef)(({count:t,size:r=`md`,label:a,className:o,...s},c)=>{let l=Number.isFinite(t)?Math.max(0,Math.floor(t)):0,u=a??`${l} more people`;return(0,n.jsxs)(`span`,{ref:c,"aria-label":u,className:e.t(`inline-flex shrink-0 items-center justify-center rounded-full bg-surface-muted font-semibold text-muted-foreground`,i[r],o),...s,children:[`+`,l]})});o.displayName=`AvatarGroupOverflow`,exports.AvatarGroup=a,exports.AvatarGroupOverflow=o;
@@ -0,0 +1,14 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ export type AvatarGroupSpacing = "tight" | "normal" | "loose";
3
+ export type AvatarGroupOverflowSize = "xs" | "sm" | "md" | "lg" | "xl";
4
+ export interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {
5
+ spacing?: AvatarGroupSpacing;
6
+ children: ReactNode;
7
+ }
8
+ export declare const AvatarGroup: import('react').ForwardRefExoticComponent<AvatarGroupProps & import('react').RefAttributes<HTMLDivElement>>;
9
+ export interface AvatarGroupOverflowProps extends HTMLAttributes<HTMLSpanElement> {
10
+ count: number;
11
+ size?: AvatarGroupOverflowSize;
12
+ label?: string;
13
+ }
14
+ export declare const AvatarGroupOverflow: import('react').ForwardRefExoticComponent<AvatarGroupOverflowProps & import('react').RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,35 @@
1
+ import { t as e } from "../cn-BJyZJP-y.js";
2
+ import { forwardRef as t } from "react";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ //#region src/components/avatar-group.tsx
5
+ var i = {
6
+ tight: "-space-x-3",
7
+ normal: "-space-x-2",
8
+ loose: "-space-x-1"
9
+ }, a = {
10
+ xs: "size-6 text-[9px]",
11
+ sm: "size-8 text-[10px]",
12
+ md: "size-9 text-xs",
13
+ lg: "size-11 text-xs",
14
+ xl: "size-14 text-sm"
15
+ }, o = t(({ spacing: t = "normal", className: r, children: a, ...o }, s) => /* @__PURE__ */ n("div", {
16
+ ref: s,
17
+ role: "group",
18
+ className: e("flex w-fit max-w-full items-center justify-start overflow-x-auto overscroll-x-contain px-0.5 py-0.5 scrollbar-none [&>*]:shrink-0 [&>*]:ring-2 [&>*]:ring-surface", i[t], r),
19
+ ...o,
20
+ children: a
21
+ }));
22
+ o.displayName = "AvatarGroup";
23
+ var s = t(({ count: t, size: n = "md", label: i, className: o, ...s }, c) => {
24
+ let l = Number.isFinite(t) ? Math.max(0, Math.floor(t)) : 0, u = i ?? `${l} more people`;
25
+ return /* @__PURE__ */ r("span", {
26
+ ref: c,
27
+ "aria-label": u,
28
+ className: e("inline-flex shrink-0 items-center justify-center rounded-full bg-surface-muted font-semibold text-muted-foreground", a[n], o),
29
+ ...s,
30
+ children: ["+", l]
31
+ });
32
+ });
33
+ s.displayName = "AvatarGroupOverflow";
34
+ //#endregion
35
+ export { o as AvatarGroup, s as AvatarGroupOverflow };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs");let t=require("react/jsx-runtime");var n={xs:`w-6 h-6 text-[10px]`,sm:`w-8 h-8 text-xs`,md:`w-9 h-9 text-sm`,lg:`w-11 h-11 text-base`,xl:`w-14 h-14 text-lg`},r={xs:`w-1.5 h-1.5 border`,sm:`w-2 h-2 border`,md:`w-2.5 h-2.5 border-2`,lg:`w-3 h-3 border-2`,xl:`w-3.5 h-3.5 border-2`},i={online:`bg-emerald-400`,offline:`bg-slate-500`,away:`bg-amber-400`,busy:`bg-red-400`},a=[`bg-blue-600`,`bg-violet-600`,`bg-emerald-600`,`bg-rose-600`,`bg-amber-600`,`bg-cyan-600`,`bg-pink-600`,`bg-teal-600`];function o(e){return e.split(` `).slice(0,2).map(e=>e[0]?.toUpperCase()??``).join(``)}function s(e){return a[[...e].reduce((e,t)=>e+t.charCodeAt(0),0)%a.length]}function c({src:a,name:c,alt:l,size:u=`md`,status:d,loading:f=`lazy`,decoding:p=`async`,referrerPolicy:m=`no-referrer`,className:h,...g}){let _=c?s(c):`bg-slate-600`,v=c?o(c):`?`;return(0,t.jsxs)(`div`,{className:e.t(`relative inline-flex shrink-0 rounded-full`,h),...g,children:[(0,t.jsx)(`div`,{className:e.t(`rounded-full overflow-hidden flex items-center justify-center font-semibold text-white`,n[u],!a&&_),children:a?(0,t.jsx)(`img`,{src:a,alt:l??c??``,loading:f,decoding:p,referrerPolicy:m,className:`w-full h-full object-cover`}):(0,t.jsx)(`span`,{children:v})}),d&&(0,t.jsx)(`span`,{className:e.t(`absolute bottom-0 right-0 rounded-full border-white dark:border-navy-900`,r[u],i[d])})]})}exports.Avatar=c;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-B6R3HKzx.cjs");let t=require("react/jsx-runtime");var n={xs:`w-6 h-6 text-[10px]`,sm:`w-8 h-8 text-xs`,md:`w-9 h-9 text-sm`,lg:`w-11 h-11 text-base`,xl:`w-14 h-14 text-lg`},r={xs:`w-1.5 h-1.5 border`,sm:`w-2 h-2 border`,md:`w-2.5 h-2.5 border-2`,lg:`w-3 h-3 border-2`,xl:`w-3.5 h-3.5 border-2`},i={online:`bg-emerald-400`,offline:`bg-slate-500`,away:`bg-amber-400`,busy:`bg-red-400`},a=[`bg-accent-600`,`bg-violet-600`,`bg-emerald-600`,`bg-rose-600`,`bg-amber-600`,`bg-cyan-600`,`bg-pink-600`,`bg-teal-600`];function o(e){return e.split(` `).slice(0,2).map(e=>e[0]?.toUpperCase()??``).join(``)}function s(e){return a[[...e].reduce((e,t)=>e+t.charCodeAt(0),0)%a.length]}function c({src:a,name:c,alt:l,size:u=`md`,status:d,loading:f=`lazy`,decoding:p=`async`,referrerPolicy:m=`no-referrer`,className:h,...g}){let _=c?s(c):`bg-slate-600`,v=c?o(c):`?`;return(0,t.jsxs)(`div`,{className:e.t(`relative inline-flex shrink-0 rounded-full`,h),...g,children:[(0,t.jsx)(`div`,{className:e.t(`rounded-full overflow-hidden flex items-center justify-center font-semibold text-white`,n[u],!a&&_),children:a?(0,t.jsx)(`img`,{src:a,alt:l??c??``,loading:f,decoding:p,referrerPolicy:m,className:`w-full h-full object-cover`}):(0,t.jsx)(`span`,{children:v})}),d&&(0,t.jsx)(`span`,{className:e.t(`absolute bottom-0 right-0 rounded-full border-white dark:border-navy-900`,r[u],i[d])})]})}exports.Avatar=c;
@@ -1,4 +1,4 @@
1
- import { t as e } from "../cn-DpgY2leY.js";
1
+ import { t as e } from "../cn-BJyZJP-y.js";
2
2
  import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
3
  //#region src/components/avatar.tsx
4
4
  var r = {
@@ -19,7 +19,7 @@ var r = {
19
19
  away: "bg-amber-400",
20
20
  busy: "bg-red-400"
21
21
  }, o = [
22
- "bg-blue-600",
22
+ "bg-accent-600",
23
23
  "bg-violet-600",
24
24
  "bg-emerald-600",
25
25
  "bg-rose-600",
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs");let t=require("react/jsx-runtime");var n={default:`bg-accent-50 dark:bg-accent-500/[0.12] text-accent-600 dark:text-accent-400 border-accent-200/80 dark:border-accent-500/20`,success:`bg-emerald-50 dark:bg-emerald-500/[0.12] text-emerald-700 dark:text-emerald-400 border-emerald-200/80 dark:border-emerald-500/20`,warning:`bg-amber-50 dark:bg-amber-500/[0.12] text-amber-700 dark:text-amber-400 border-amber-200/80 dark:border-amber-500/20`,error:`bg-red-50 dark:bg-red-500/[0.12] text-danger dark:text-red-400 border-red-200/80 dark:border-red-500/20`,info:`bg-sky-50 dark:bg-sky-500/[0.12] text-sky-700 dark:text-sky-400 border-sky-200/80 dark:border-sky-500/20`,muted:`bg-black/[0.05] dark:bg-white/[0.07] text-slate-600 dark:text-slate-400 border-black/[0.08] dark:border-white/[0.09]`},r={sm:`px-1.5 py-px text-[10.5px] gap-1 font-medium tracking-[-0.01em]`,md:`px-2 py-0.5 text-[11.5px] gap-1.5 font-medium tracking-[-0.01em]`,lg:`px-2.5 py-1 text-xs gap-1.5 font-medium tracking-[-0.01em]`},i={default:`bg-accent-400`,success:`bg-emerald-400`,warning:`bg-amber-400`,error:`bg-red-400`,info:`bg-sky-400`,muted:`bg-slate-500`};function a({variant:a=`default`,dot:o=!1,size:s=`md`,variants:c,className:l,children:u,...d}){let f=c?.[a]??n[a];return(0,t.jsxs)(`span`,{className:e.t(`inline-flex items-center rounded-[var(--radius-sm)] font-medium border leading-none whitespace-nowrap`,f,r[s],l),...d,children:[o&&(0,t.jsx)(`span`,{className:e.t(`w-1.5 h-1.5 rounded-full shrink-0`,i[a])}),u]})}exports.Badge=a,exports.badgeVariants=n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-B6R3HKzx.cjs");let t=require("react/jsx-runtime");var n={default:`bg-accent-50 dark:bg-accent-500/[0.12] text-accent-600 dark:text-accent-400 border-accent-200/80 dark:border-accent-500/20`,success:`bg-emerald-50 dark:bg-emerald-500/[0.12] text-emerald-700 dark:text-emerald-400 border-emerald-200/80 dark:border-emerald-500/20`,warning:`bg-amber-50 dark:bg-amber-500/[0.12] text-amber-700 dark:text-amber-400 border-amber-200/80 dark:border-amber-500/20`,error:`bg-red-50 dark:bg-red-500/[0.12] text-danger dark:text-red-400 border-red-200/80 dark:border-red-500/20`,info:`bg-sky-50 dark:bg-sky-500/[0.12] text-sky-700 dark:text-sky-400 border-sky-200/80 dark:border-sky-500/20`,muted:`bg-black/[0.05] dark:bg-white/[0.07] text-slate-600 dark:text-slate-400 border-black/[0.08] dark:border-white/[0.09]`},r={sm:`px-1.5 py-px text-[10.5px] gap-1 font-medium tracking-[-0.01em]`,md:`px-2 py-0.5 text-[11.5px] gap-1.5 font-medium tracking-[-0.01em]`,lg:`px-2.5 py-1 text-xs gap-1.5 font-medium tracking-[-0.01em]`},i={default:`bg-accent-400`,success:`bg-emerald-400`,warning:`bg-amber-400`,error:`bg-red-400`,info:`bg-sky-400`,muted:`bg-slate-500`};function a({variant:a=`default`,dot:o=!1,size:s=`md`,variants:c,className:l,children:u,...d}){let f=c?.[a]??n[a];return(0,t.jsxs)(`span`,{className:e.t(`inline-flex items-center rounded-[var(--radius-sm)] font-medium border leading-none whitespace-nowrap`,f,r[s],l),...d,children:[o&&(0,t.jsx)(`span`,{className:e.t(`w-1.5 h-1.5 rounded-full shrink-0`,i[a])}),u]})}exports.Badge=a,exports.badgeVariants=n;
@@ -1,4 +1,4 @@
1
- import { t as e } from "../cn-DpgY2leY.js";
1
+ import { t as e } from "../cn-BJyZJP-y.js";
2
2
  import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
3
  //#region src/components/badge.tsx
4
4
  var r = {
@@ -1 +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;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-B6R3HKzx.cjs");let t=require("react"),n=require("react/jsx-runtime");var r=[{value:`monthly`,label:`Monthly`},{value:`quarterly`,label:`Quarterly`},{value:`yearly`,label:`Annually`}],i=(0,t.forwardRef)(({value:t,onChange:i,options:a=r,disabled:o=!1,size:s=`sm`,className:c,"aria-label":l=`Billing interval`,...u},d)=>{let f=s===`lg`;return(0,n.jsx)(`div`,{ref:d,role:`group`,"aria-label":l,className:e.t(`isolate inline-flex max-w-full items-center border border-border bg-surface-muted shadow-inner`,f?`gap-1 rounded-xl p-1`:`gap-0.5 rounded-lg p-0.5`,c),...u,children:a.map(r=>{let a=t===r.value;return(0,n.jsxs)(`button`,{type:`button`,onClick:()=>!o&&i(r.value),disabled:o,"aria-pressed":a,"data-state":a?`active`:`inactive`,className:e.t(`relative flex min-w-0 cursor-pointer items-center justify-center rounded-md font-medium`,`transition-[background-color,color,box-shadow,opacity] duration-200`,`focus-visible:z-10 focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-focus-ring/35 focus-visible:ring-offset-1 focus-visible:ring-offset-surface-muted`,f?`min-h-10 gap-1 rounded-lg px-2 py-2 text-xs sm:gap-2 sm:px-4 sm:text-sm`:`min-h-7 gap-1.5 px-3 py-1 text-xs`,o&&`cursor-not-allowed opacity-50`,a?f?`bg-primary text-primary-foreground shadow-sm ring-1 ring-primary/20`:`bg-surface text-foreground shadow-sm ring-1 ring-border`:`text-muted-foreground hover:bg-surface/70 hover:text-foreground`),children:[r.label,r.badge&&(0,n.jsx)(`span`,{className:e.t(`whitespace-nowrap rounded-full border px-1.5 py-0.5 text-[10px] font-bold leading-none transition-colors`,a&&f?`border-primary-foreground/25 bg-primary-foreground/15 text-primary-foreground`:`border-success/25 bg-success/10 text-success`),children:r.badge})]},r.value)})})});i.displayName=`BillingIntervalToggle`,exports.BillingIntervalToggle=i;
@@ -1,18 +1,16 @@
1
+ import { HTMLAttributes } from 'react';
1
2
  export type BillingInterval = "monthly" | "quarterly" | "yearly";
2
3
  export interface BillingIntervalToggleOption {
3
4
  value: BillingInterval;
4
5
  label: string;
5
6
  badge?: string;
6
7
  }
7
- export interface BillingIntervalToggleProps {
8
+ export interface BillingIntervalToggleProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
8
9
  value: BillingInterval;
9
10
  onChange: (interval: BillingInterval) => void;
10
11
  options?: BillingIntervalToggleOption[];
11
12
  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. */
13
+ /** Controls the density and selected-state emphasis. */
15
14
  size?: "sm" | "lg";
16
- className?: string;
17
15
  }
18
- export declare function BillingIntervalToggle({ value, onChange, options, disabled, size, className, }: BillingIntervalToggleProps): import("react").JSX.Element;
16
+ export declare const BillingIntervalToggle: import('react').ForwardRefExoticComponent<BillingIntervalToggleProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -1,8 +1,9 @@
1
1
  "use client";
2
- import { t as e } from "../cn-DpgY2leY.js";
3
- import { jsx as t, jsxs as n } from "react/jsx-runtime";
2
+ import { t as e } from "../cn-BJyZJP-y.js";
3
+ import { forwardRef as t } from "react";
4
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
5
  //#region src/components/billing-interval-toggle.tsx
5
- var r = [
6
+ var i = [
6
7
  {
7
8
  value: "monthly",
8
9
  label: "Monthly"
@@ -15,25 +16,31 @@ var r = [
15
16
  value: "yearly",
16
17
  label: "Annually"
17
18
  }
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", {
19
+ ], a = t(({ value: t, onChange: a, options: o = i, disabled: s = !1, size: c = "sm", className: l, "aria-label": u = "Billing interval", ...d }, f) => {
20
+ let p = c === "lg";
21
+ return /* @__PURE__ */ n("div", {
22
+ ref: f,
23
+ role: "group",
24
+ "aria-label": u,
25
+ className: e("isolate inline-flex max-w-full items-center border border-border bg-surface-muted shadow-inner", p ? "gap-1 rounded-xl p-1" : "gap-0.5 rounded-lg p-0.5", l),
26
+ ...d,
27
+ children: o.map((i) => {
28
+ let o = t === i.value;
29
+ return /* @__PURE__ */ r("button", {
26
30
  type: "button",
27
- onClick: () => !s && a(r.value),
31
+ onClick: () => !s && a(i.value),
28
32
  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
+ "aria-pressed": o,
34
+ "data-state": o ? "active" : "inactive",
35
+ className: e("relative flex min-w-0 cursor-pointer items-center justify-center rounded-md font-medium", "transition-[background-color,color,box-shadow,opacity] duration-200", "focus-visible:z-10 focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-focus-ring/35 focus-visible:ring-offset-1 focus-visible:ring-offset-surface-muted", p ? "min-h-10 gap-1 rounded-lg px-2 py-2 text-xs sm:gap-2 sm:px-4 sm:text-sm" : "min-h-7 gap-1.5 px-3 py-1 text-xs", s && "cursor-not-allowed opacity-50", o ? p ? "bg-primary text-primary-foreground shadow-sm ring-1 ring-primary/20" : "bg-surface text-foreground shadow-sm ring-1 ring-border" : "text-muted-foreground hover:bg-surface/70 hover:text-foreground"),
36
+ children: [i.label, i.badge && /* @__PURE__ */ n("span", {
37
+ className: e("whitespace-nowrap rounded-full border px-1.5 py-0.5 text-[10px] font-bold leading-none transition-colors", o && p ? "border-primary-foreground/25 bg-primary-foreground/15 text-primary-foreground" : "border-success/25 bg-success/10 text-success"),
38
+ children: i.badge
33
39
  })]
34
- }, r.value);
40
+ }, i.value);
35
41
  })
36
42
  });
37
- }
43
+ });
44
+ a.displayName = "BillingIntervalToggle";
38
45
  //#endregion
39
- export { i as BillingIntervalToggle };
46
+ export { a as BillingIntervalToggle };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-B6R3HKzx.cjs");require("../component-styles-DY4wigiq.cjs");let t=require("react"),n=require("react/jsx-runtime");var r={default:`border-l-border-strong bg-transparent`,accent:`border-l-accent-500 bg-accent-50/60 dark:bg-accent-900/15`,subtle:`border-l-border bg-surface-muted`},i={sm:`px-4 py-3 text-sm leading-6`,md:`px-5 py-4 text-base leading-7`,lg:`px-6 py-5 text-lg leading-8`},a=(0,t.forwardRef)(({variant:t=`default`,size:a=`md`,source:o,sourceHref:s,className:c,children:l,...u},d)=>(0,n.jsxs)(`blockquote`,{ref:d,className:e.t(`min-w-0 break-words rounded-r-[var(--radius-lg)] border-l-4 text-foreground`,r[t],i[a],c),...u,children:[(0,n.jsx)(`div`,{children:l}),o&&(0,n.jsxs)(`footer`,{className:`mt-2 text-xs font-medium text-muted-foreground`,children:[(0,n.jsx)(`span`,{"aria-hidden":`true`,children:`— `}),s?(0,n.jsx)(`a`,{href:s,className:e.t(`rounded-sm underline decoration-border-strong underline-offset-4 hover:text-foreground`,`focus-ring`),children:o}):o]})]}));a.displayName=`Blockquote`,exports.Blockquote=a;
@@ -0,0 +1,10 @@
1
+ import { BlockquoteHTMLAttributes, ReactNode } from 'react';
2
+ export type BlockquoteVariant = "default" | "accent" | "subtle";
3
+ export type BlockquoteSize = "sm" | "md" | "lg";
4
+ export interface BlockquoteProps extends BlockquoteHTMLAttributes<HTMLQuoteElement> {
5
+ variant?: BlockquoteVariant;
6
+ size?: BlockquoteSize;
7
+ source?: ReactNode;
8
+ sourceHref?: string;
9
+ }
10
+ export declare const Blockquote: import('react').ForwardRefExoticComponent<BlockquoteProps & import('react').RefAttributes<HTMLQuoteElement>>;
@@ -0,0 +1,32 @@
1
+ import { t as e } from "../cn-BJyZJP-y.js";
2
+ import "../component-styles-C2CbHEEA.js";
3
+ import { forwardRef as t } from "react";
4
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
+ //#region src/components/blockquote.tsx
6
+ var i = {
7
+ default: "border-l-border-strong bg-transparent",
8
+ accent: "border-l-accent-500 bg-accent-50/60 dark:bg-accent-900/15",
9
+ subtle: "border-l-border bg-surface-muted"
10
+ }, a = {
11
+ sm: "px-4 py-3 text-sm leading-6",
12
+ md: "px-5 py-4 text-base leading-7",
13
+ lg: "px-6 py-5 text-lg leading-8"
14
+ }, o = t(({ variant: t = "default", size: o = "md", source: s, sourceHref: c, className: l, children: u, ...d }, f) => /* @__PURE__ */ r("blockquote", {
15
+ ref: f,
16
+ className: e("min-w-0 break-words rounded-r-[var(--radius-lg)] border-l-4 text-foreground", i[t], a[o], l),
17
+ ...d,
18
+ children: [/* @__PURE__ */ n("div", { children: u }), s && /* @__PURE__ */ r("footer", {
19
+ className: "mt-2 text-xs font-medium text-muted-foreground",
20
+ children: [/* @__PURE__ */ n("span", {
21
+ "aria-hidden": "true",
22
+ children: "— "
23
+ }), c ? /* @__PURE__ */ n("a", {
24
+ href: c,
25
+ className: e("rounded-sm underline decoration-border-strong underline-offset-4 hover:text-foreground", "focus-ring"),
26
+ children: s
27
+ }) : s]
28
+ })]
29
+ }));
30
+ o.displayName = "Blockquote";
31
+ //#endregion
32
+ export { o as Blockquote };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs"),t=require("../component-styles-DOUctc8_.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;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-B6R3HKzx.cjs"),t=require("../component-styles-DY4wigiq.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;
@@ -1,5 +1,5 @@
1
- import { t as e } from "../cn-DpgY2leY.js";
2
- import { s as t } from "../component-styles-Bgy44fc8.js";
1
+ import { t as e } from "../cn-BJyZJP-y.js";
2
+ import { s as t } from "../component-styles-C2CbHEEA.js";
3
3
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
4
  //#region src/components/breadcrumb.tsx
5
5
  var i = () => /* @__PURE__ */ n("svg", {
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-B6R3HKzx.cjs");let t=require("react"),n=require("react/jsx-runtime");var r={horizontal:[`max-w-full flex-row items-center overflow-x-auto overscroll-x-contain p-0.5 scrollbar-none [&>*]:shrink-0`,`[&>*:not(:first-child)]:-ml-px [&>*:not(:first-child)]:rounded-l-none`,`[&>*:not(:last-child)]:rounded-r-none`].join(` `),vertical:[`flex-col items-stretch`,`[&>*:not(:first-child)]:-mt-px [&>*:not(:first-child)]:rounded-t-none`,`[&>*:not(:last-child)]:rounded-b-none`].join(` `)},i=(0,t.forwardRef)(({orientation:t=`horizontal`,className:i,children:a,...o},s)=>(0,n.jsx)(`div`,{ref:s,role:`group`,"data-orientation":t,className:e.t(`inline-flex w-fit [&>*:focus-visible]:relative [&>*:focus-visible]:z-10`,r[t],i),...o,children:a}));i.displayName=`ButtonGroup`,exports.ButtonGroup=i;
@@ -0,0 +1,7 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ export type ButtonGroupOrientation = "horizontal" | "vertical";
3
+ export interface ButtonGroupProps extends HTMLAttributes<HTMLDivElement> {
4
+ orientation?: ButtonGroupOrientation;
5
+ children: ReactNode;
6
+ }
7
+ export declare const ButtonGroup: import('react').ForwardRefExoticComponent<ButtonGroupProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,26 @@
1
+ import { t as e } from "../cn-BJyZJP-y.js";
2
+ import { forwardRef as t } from "react";
3
+ import { jsx as n } from "react/jsx-runtime";
4
+ //#region src/components/button-group.tsx
5
+ var r = {
6
+ horizontal: [
7
+ "max-w-full flex-row items-center overflow-x-auto overscroll-x-contain p-0.5 scrollbar-none [&>*]:shrink-0",
8
+ "[&>*:not(:first-child)]:-ml-px [&>*:not(:first-child)]:rounded-l-none",
9
+ "[&>*:not(:last-child)]:rounded-r-none"
10
+ ].join(" "),
11
+ vertical: [
12
+ "flex-col items-stretch",
13
+ "[&>*:not(:first-child)]:-mt-px [&>*:not(:first-child)]:rounded-t-none",
14
+ "[&>*:not(:last-child)]:rounded-b-none"
15
+ ].join(" ")
16
+ }, i = t(({ orientation: t = "horizontal", className: i, children: a, ...o }, s) => /* @__PURE__ */ n("div", {
17
+ ref: s,
18
+ role: "group",
19
+ "data-orientation": t,
20
+ className: e("inline-flex w-fit [&>*:focus-visible]:relative [&>*:focus-visible]:z-10", r[t], i),
21
+ ...o,
22
+ children: a
23
+ }));
24
+ i.displayName = "ButtonGroup";
25
+ //#endregion
26
+ export { i as ButtonGroup };
@@ -1 +1 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-BdjraxxU.cjs"),t=require("../component-styles-DOUctc8_.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-primary 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] duration-150`,`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;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../cn-B6R3HKzx.cjs"),t=require("../component-styles-DY4wigiq.cjs"),n=require("./slot.cjs");let r=require("react"),i=require("react/jsx-runtime");var a={primary:[`bg-primary hover:bg-primary-hover active:bg-primary-hover`,`text-primary-foreground font-semibold`,`border border-primary 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`},o={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`},s=(0,r.forwardRef)(({className:r,variant:s=`primary`,size:c=`md`,loading:l=!1,icon:u,iconPosition:d=`left`,variantClassName:f,unstyled:p=!1,asChild:m=!1,children:h,disabled:g,type:_=`button`,...v},y)=>{let b=g||l,x=l&&h!=null&&h!==``;if(p)return m?(0,i.jsx)(n.Slot,{ref:y,className:e.t(r,f),...v,children:h}):(0,i.jsx)(`button`,{ref:y,type:_,disabled:b,className:e.t(r,f),...v,children:l?`Loading…`:h});let S=e.t(`inline-flex items-center justify-center cursor-pointer select-none whitespace-nowrap`,`transition-[color,background-color,border-color,box-shadow] duration-150`,`disabled:opacity-40 disabled:cursor-not-allowed`,t.s,a[s],f,o[c],x&&`relative`,r);return m?(0,i.jsx)(n.Slot,{ref:y,className:S,"data-loading":l||void 0,"aria-busy":l||void 0,"aria-disabled":b||void 0,...v,children:h}):(0,i.jsx)(`button`,{ref:y,type:_,"data-loading":l||void 0,className:S,disabled:b,"aria-busy":l||void 0,...v,children:x?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(`span`,{className:`invisible inline-flex items-center gap-2`,children:[u&&d===`left`&&(0,i.jsx)(`span`,{className:`shrink-0 w-3.5 h-3.5`}),(0,i.jsx)(`span`,{children:h}),u&&d===`right`&&(0,i.jsx)(`span`,{className:`shrink-0 w-3.5 h-3.5`})]}),(0,i.jsx)(`span`,{className:`absolute inset-0 inline-flex items-center justify-center`,children:(0,i.jsxs)(`svg`,{className:`animate-spin w-3.5 h-3.5`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`,children:[(0,i.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,i.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]})})]}):(0,i.jsxs)(i.Fragment,{children:[l&&(0,i.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,i.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,i.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),!l&&u&&d===`left`&&(0,i.jsx)(`span`,{className:`shrink-0`,children:u}),h&&(0,i.jsx)(`span`,{children:h}),!l&&u&&d===`right`&&(0,i.jsx)(`span`,{className:`shrink-0`,children:u})]})})});s.displayName=`Button`;var c=(0,r.memo)(s);exports.Button=c,exports.buttonSizes=o,exports.buttonVariants=a;
@@ -11,6 +11,8 @@ export interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement
11
11
  /** End-to-end override */
12
12
  variantClassName?: string;
13
13
  unstyled?: boolean;
14
+ /** When true, merges props onto the single child via Slot (Radix-style). */
15
+ asChild?: boolean;
14
16
  }
15
17
  export declare const buttonVariants: Record<ButtonVariant, string>;
16
18
  export declare const buttonSizes: Record<ButtonSize, string>;