@epilot/spark-ui 0.20.0 → 0.21.0

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 (258) hide show
  1. package/dist/components/accordion.cjs +7 -7
  2. package/dist/components/accordion.cjs.map +1 -1
  3. package/dist/components/accordion.d.ts +1 -1
  4. package/dist/components/accordion.js +1 -1
  5. package/dist/components/alert-dialog.cjs +10 -10
  6. package/dist/components/alert-dialog.cjs.map +1 -1
  7. package/dist/components/alert-dialog.js +1 -1
  8. package/dist/components/attachment.cjs +10 -10
  9. package/dist/components/attachment.cjs.map +1 -1
  10. package/dist/components/attachment.d.cts +2 -2
  11. package/dist/components/attachment.d.ts +2 -2
  12. package/dist/components/autocomplete.cjs +13 -13
  13. package/dist/components/autocomplete.cjs.map +1 -1
  14. package/dist/components/autocomplete.js +1 -1
  15. package/dist/components/avatar.cjs +2 -2
  16. package/dist/components/avatar.cjs.map +1 -1
  17. package/dist/components/avatar.js +1 -1
  18. package/dist/components/badge.cjs +2 -2
  19. package/dist/components/badge.cjs.map +1 -1
  20. package/dist/components/badge.js +1 -1
  21. package/dist/components/bar-chart-with-total.d.cts +1 -1
  22. package/dist/components/bar-chart-with-total.d.ts +1 -1
  23. package/dist/components/bar-chart.cjs +4 -4
  24. package/dist/components/bar-chart.cjs.map +1 -1
  25. package/dist/components/bar-chart.js +2 -2
  26. package/dist/components/box.cjs +2 -2
  27. package/dist/components/box.cjs.map +1 -1
  28. package/dist/components/box.js +1 -1
  29. package/dist/components/breadcrumbs.cjs +7 -7
  30. package/dist/components/breadcrumbs.cjs.map +1 -1
  31. package/dist/components/bubble.cjs +5 -5
  32. package/dist/components/bubble.cjs.map +1 -1
  33. package/dist/components/bubble.d.cts +1 -1
  34. package/dist/components/bubble.d.ts +1 -1
  35. package/dist/components/button-group.cjs +5 -5
  36. package/dist/components/button-group.cjs.map +1 -1
  37. package/dist/components/button-group.js +1 -1
  38. package/dist/components/button.cjs +2 -2
  39. package/dist/components/button.cjs.map +1 -1
  40. package/dist/components/button.d.cts +2 -2
  41. package/dist/components/button.d.ts +2 -2
  42. package/dist/components/button.js +1 -1
  43. package/dist/components/calendar.cjs +9 -9
  44. package/dist/components/calendar.cjs.map +1 -1
  45. package/dist/components/calendar.js +1 -1
  46. package/dist/components/callout.cjs +8 -8
  47. package/dist/components/callout.cjs.map +1 -1
  48. package/dist/components/callout.d.cts +1 -1
  49. package/dist/components/callout.d.ts +2 -2
  50. package/dist/components/callout.js +1 -1
  51. package/dist/components/card.cjs +16 -16
  52. package/dist/components/card.cjs.map +1 -1
  53. package/dist/components/card.js +2 -2
  54. package/dist/components/card.js.map +1 -1
  55. package/dist/components/chart.cjs +2 -2
  56. package/dist/components/chart.cjs.map +1 -1
  57. package/dist/components/checkbox.cjs +2 -2
  58. package/dist/components/checkbox.cjs.map +1 -1
  59. package/dist/components/checkbox.js +1 -1
  60. package/dist/components/circular-gauge.cjs +3 -3
  61. package/dist/components/circular-gauge.cjs.map +1 -1
  62. package/dist/components/day-of-week-picker.cjs +4 -4
  63. package/dist/components/day-of-week-picker.cjs.map +1 -1
  64. package/dist/components/dialog.cjs +9 -9
  65. package/dist/components/dialog.cjs.map +1 -1
  66. package/dist/components/dialog.js +1 -1
  67. package/dist/components/drawer.cjs +8 -8
  68. package/dist/components/drawer.cjs.map +1 -1
  69. package/dist/components/dropdown-menu.cjs +11 -11
  70. package/dist/components/dropdown-menu.cjs.map +1 -1
  71. package/dist/components/dropdown-menu.js +1 -1
  72. package/dist/components/empty-state.d.ts +1 -1
  73. package/dist/components/energy-breakdown.cjs +80 -0
  74. package/dist/components/energy-breakdown.cjs.map +1 -0
  75. package/dist/components/energy-breakdown.d.cts +24 -0
  76. package/dist/components/energy-breakdown.d.ts +24 -0
  77. package/dist/components/energy-breakdown.js +79 -0
  78. package/dist/components/energy-breakdown.js.map +1 -0
  79. package/dist/components/energy-history-chart.cjs +63 -0
  80. package/dist/components/energy-history-chart.cjs.map +1 -0
  81. package/dist/components/energy-history-chart.d.cts +64 -0
  82. package/dist/components/energy-history-chart.d.ts +64 -0
  83. package/dist/components/energy-history-chart.js +62 -0
  84. package/dist/components/energy-history-chart.js.map +1 -0
  85. package/dist/components/entity-card.cjs +11 -11
  86. package/dist/components/entity-card.cjs.map +1 -1
  87. package/dist/components/entity-card.d.ts +1 -1
  88. package/dist/components/field.cjs +15 -15
  89. package/dist/components/field.cjs.map +1 -1
  90. package/dist/components/hero-metric.cjs +4 -4
  91. package/dist/components/hero-metric.cjs.map +1 -1
  92. package/dist/components/icon.cjs +2 -2
  93. package/dist/components/icon.cjs.map +1 -1
  94. package/dist/components/icon.js +1 -1
  95. package/dist/components/info-block.cjs +9 -9
  96. package/dist/components/info-block.cjs.map +1 -1
  97. package/dist/components/info-block.d.cts +1 -1
  98. package/dist/components/info-block.d.ts +1 -1
  99. package/dist/components/input-date.cjs +3 -3
  100. package/dist/components/input-date.cjs.map +1 -1
  101. package/dist/components/input-date.js +1 -1
  102. package/dist/components/input-group.cjs +5 -5
  103. package/dist/components/input-group.cjs.map +1 -1
  104. package/dist/components/input-otp.cjs +3 -3
  105. package/dist/components/input-otp.cjs.map +1 -1
  106. package/dist/components/input-otp.js +1 -1
  107. package/dist/components/input.cjs +3 -3
  108. package/dist/components/input.cjs.map +1 -1
  109. package/dist/components/input.js +1 -1
  110. package/dist/components/label.cjs +2 -2
  111. package/dist/components/label.cjs.map +1 -1
  112. package/dist/components/layout.cjs +2 -2
  113. package/dist/components/layout.cjs.map +1 -1
  114. package/dist/components/line-chart.cjs +7 -7
  115. package/dist/components/line-chart.cjs.map +1 -1
  116. package/dist/components/line-chart.js +4 -4
  117. package/dist/components/list.cjs +10 -10
  118. package/dist/components/list.cjs.map +1 -1
  119. package/dist/components/list.js +1 -1
  120. package/dist/components/list.js.map +1 -1
  121. package/dist/components/marker.cjs +4 -4
  122. package/dist/components/marker.cjs.map +1 -1
  123. package/dist/components/marker.d.cts +1 -1
  124. package/dist/components/marker.d.ts +1 -1
  125. package/dist/components/message-scroller.cjs +8 -8
  126. package/dist/components/message-scroller.cjs.map +1 -1
  127. package/dist/components/message-scroller.js +4 -4
  128. package/dist/components/message-scroller.js.map +1 -1
  129. package/dist/components/message.cjs +7 -7
  130. package/dist/components/message.cjs.map +1 -1
  131. package/dist/components/number-flow.d.cts +2 -12
  132. package/dist/components/number-flow.d.ts +2 -12
  133. package/dist/components/page-header.cjs +6 -6
  134. package/dist/components/page-header.cjs.map +1 -1
  135. package/dist/components/page-header.d.cts +1 -1
  136. package/dist/components/page-header.d.ts +1 -1
  137. package/dist/components/page-header.js +1 -1
  138. package/dist/components/period-tabs.cjs +6 -6
  139. package/dist/components/period-tabs.cjs.map +1 -1
  140. package/dist/components/pill.cjs +3 -3
  141. package/dist/components/pill.cjs.map +1 -1
  142. package/dist/components/pill.js +2 -2
  143. package/dist/components/popover.cjs +2 -2
  144. package/dist/components/popover.cjs.map +1 -1
  145. package/dist/components/power-history-chart.cjs +498 -0
  146. package/dist/components/power-history-chart.cjs.map +1 -0
  147. package/dist/components/power-history-chart.d.cts +71 -0
  148. package/dist/components/power-history-chart.d.ts +71 -0
  149. package/dist/components/power-history-chart.js +496 -0
  150. package/dist/components/power-history-chart.js.map +1 -0
  151. package/dist/components/power-network.cjs +559 -0
  152. package/dist/components/power-network.cjs.map +1 -0
  153. package/dist/components/power-network.d.cts +80 -0
  154. package/dist/components/power-network.d.ts +80 -0
  155. package/dist/components/power-network.js +553 -0
  156. package/dist/components/power-network.js.map +1 -0
  157. package/dist/components/progress.cjs +2 -2
  158. package/dist/components/progress.cjs.map +1 -1
  159. package/dist/components/radio-card-group.cjs +3 -3
  160. package/dist/components/radio-card-group.cjs.map +1 -1
  161. package/dist/components/radio.cjs +3 -3
  162. package/dist/components/radio.cjs.map +1 -1
  163. package/dist/components/radio.js +1 -1
  164. package/dist/components/sankey-chart.cjs +13 -3
  165. package/dist/components/sankey-chart.cjs.map +1 -1
  166. package/dist/components/sankey-chart.d.cts +3 -2
  167. package/dist/components/sankey-chart.d.ts +3 -2
  168. package/dist/components/sankey-chart.js +11 -2
  169. package/dist/components/sankey-chart.js.map +1 -1
  170. package/dist/components/schedule-editor.cjs +9 -9
  171. package/dist/components/schedule-editor.cjs.map +1 -1
  172. package/dist/components/schedule-list.cjs +11 -11
  173. package/dist/components/schedule-list.cjs.map +1 -1
  174. package/dist/components/schedule-list.js +1 -1
  175. package/dist/components/scroll-area.cjs +3 -3
  176. package/dist/components/scroll-area.cjs.map +1 -1
  177. package/dist/components/segmented-control.cjs +4 -4
  178. package/dist/components/segmented-control.cjs.map +1 -1
  179. package/dist/components/select.cjs +13 -13
  180. package/dist/components/select.cjs.map +1 -1
  181. package/dist/components/select.js +2 -2
  182. package/dist/components/separator.cjs +3 -3
  183. package/dist/components/separator.cjs.map +1 -1
  184. package/dist/components/series-legend.cjs +4 -4
  185. package/dist/components/series-legend.cjs.map +1 -1
  186. package/dist/components/sheet.cjs +9 -9
  187. package/dist/components/sheet.cjs.map +1 -1
  188. package/dist/components/sheet.js +1 -1
  189. package/dist/components/skeleton.cjs +3 -3
  190. package/dist/components/skeleton.cjs.map +1 -1
  191. package/dist/components/slider.cjs +11 -11
  192. package/dist/components/slider.cjs.map +1 -1
  193. package/dist/components/solar-forecast-chart.cjs +108 -0
  194. package/dist/components/solar-forecast-chart.cjs.map +1 -0
  195. package/dist/components/solar-forecast-chart.d.cts +77 -0
  196. package/dist/components/solar-forecast-chart.d.ts +77 -0
  197. package/dist/components/solar-forecast-chart.js +103 -0
  198. package/dist/components/solar-forecast-chart.js.map +1 -0
  199. package/dist/components/sortable-list.cjs +3 -3
  200. package/dist/components/sortable-list.cjs.map +1 -1
  201. package/dist/components/spinner.cjs +2 -2
  202. package/dist/components/spinner.cjs.map +1 -1
  203. package/dist/components/stat-card.cjs +8 -8
  204. package/dist/components/stat-card.cjs.map +1 -1
  205. package/dist/components/stepper.cjs +3 -3
  206. package/dist/components/stepper.cjs.map +1 -1
  207. package/dist/components/stepper.js +1 -1
  208. package/dist/components/switch.cjs +3 -3
  209. package/dist/components/switch.cjs.map +1 -1
  210. package/dist/components/switch.js +1 -1
  211. package/dist/components/table.cjs +9 -9
  212. package/dist/components/table.cjs.map +1 -1
  213. package/dist/components/table.js +1 -1
  214. package/dist/components/tabs.cjs +8 -8
  215. package/dist/components/tabs.cjs.map +1 -1
  216. package/dist/components/tabs.js +1 -1
  217. package/dist/components/textarea.cjs +3 -3
  218. package/dist/components/textarea.cjs.map +1 -1
  219. package/dist/components/textarea.js +1 -1
  220. package/dist/components/theme.cjs +2 -2
  221. package/dist/components/theme.cjs.map +1 -1
  222. package/dist/components/theme.js +1 -1
  223. package/dist/components/thumbnail.cjs +3 -3
  224. package/dist/components/thumbnail.cjs.map +1 -1
  225. package/dist/components/time-picker.cjs +3 -3
  226. package/dist/components/time-picker.cjs.map +1 -1
  227. package/dist/components/toast.cjs +8 -8
  228. package/dist/components/toast.cjs.map +1 -1
  229. package/dist/components/toast.js +1 -1
  230. package/dist/components/tooltip.cjs +4 -4
  231. package/dist/components/tooltip.cjs.map +1 -1
  232. package/dist/components/tooltip.js +1 -1
  233. package/dist/components/typography.cjs +6 -6
  234. package/dist/components/typography.cjs.map +1 -1
  235. package/dist/components/wizard-layout.cjs +8 -8
  236. package/dist/components/wizard-layout.cjs.map +1 -1
  237. package/dist/lib/input-box-variants.cjs +9 -9
  238. package/dist/lib/input-box-variants.cjs.map +1 -1
  239. package/dist/number-flow-Bch81ixZ.d.cts +14 -0
  240. package/dist/number-flow-Bch81ixZ.d.ts +14 -0
  241. package/dist/styles/spark-default.css +11 -0
  242. package/dist/utils/build-sankey-nodes.cjs +72 -0
  243. package/dist/utils/build-sankey-nodes.cjs.map +1 -0
  244. package/dist/utils/build-sankey-nodes.d.cts +27 -0
  245. package/dist/utils/build-sankey-nodes.d.ts +27 -0
  246. package/dist/utils/build-sankey-nodes.js +71 -0
  247. package/dist/utils/build-sankey-nodes.js.map +1 -0
  248. package/dist/utils/cn.cjs +2 -2
  249. package/dist/utils/cn.d.cts +1 -1
  250. package/dist/utils/cn.d.ts +1 -1
  251. package/dist/utils/cn.js +1 -1
  252. package/dist/utils/format.cjs +13 -0
  253. package/dist/utils/format.cjs.map +1 -1
  254. package/dist/utils/format.d.cts +7 -1
  255. package/dist/utils/format.d.ts +7 -1
  256. package/dist/utils/format.js +12 -1
  257. package/dist/utils/format.js.map +1 -1
  258. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.cjs","names":[],"sources":["../../src/components/breadcrumbs.tsx"],"sourcesContent":["import { mergeProps } from '@base-ui/react/merge-props'\nimport { useRender } from '@base-ui/react/use-render'\nimport { cn } from '../utils/cn'\n\nconst Breadcrumbs = ({\n className,\n 'aria-label': ariaLabel = 'Breadcrumb',\n ...rest\n}: React.ComponentProps<'nav'>) => {\n return <nav aria-label={ariaLabel} className={cn(className)} {...rest} />\n}\n\nconst BreadcrumbsList = ({\n className,\n ...rest\n}: React.ComponentProps<'ol'>) => {\n return (\n <ol\n className={cn(\n 'flex flex-wrap items-center gap-1.5 text-sm text-gray-light',\n className,\n )}\n {...rest}\n />\n )\n}\n\nconst BreadcrumbsItem = ({\n className,\n ...rest\n}: React.ComponentProps<'li'>) => {\n return <li className={cn('flex items-center gap-1.5', className)} {...rest} />\n}\n\n/**\n * Link inside a breadcrumb. Pass `render` to render any router-specific link\n * component (TanStack `Link`, Next `Link`, plain `<a>`, …) and inherit the\n * breadcrumb link styling. Without `render` it renders as a plain anchor.\n */\nconst BreadcrumbsLink = ({\n className,\n render,\n ...rest\n}: useRender.ComponentProps<'a'>) => {\n return useRender({\n defaultTagName: 'a',\n render,\n props: mergeProps<'a'>(\n {\n className: cn(\n 'touch-target rounded-sm transition-colors hover:text-gray focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden motion-reduce:transition-none',\n className,\n ),\n },\n rest,\n ),\n })\n}\n\n/** Current page marker — the trailing breadcrumb the user is on. */\nconst BreadcrumbsPage = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return (\n <span\n aria-current=\"page\"\n className={cn('font-medium text-gray', className)}\n {...rest}\n />\n )\n}\n\n/** Visual separator between breadcrumb items. Defaults to \"/\". */\nconst BreadcrumbsSeparator = ({\n children,\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return (\n <span aria-hidden=\"true\" className={cn(className)} {...rest}>\n {children ?? '/'}\n </span>\n )\n}\n\nexport {\n Breadcrumbs,\n BreadcrumbsList,\n BreadcrumbsItem,\n BreadcrumbsLink,\n BreadcrumbsPage,\n BreadcrumbsSeparator,\n}\n"],"mappings":";;;;;;;AAIA,MAAM,eAAe,EACnB,WACA,cAAc,YAAY,cAC1B,GAAG,WAC8B;CACjC,OAAO,iBAAA,GAAA,kBAAA,KAAC,OAAD;EAAK,cAAY;EAAW,YAAA,GAAA,OAAA,IAAc,SAAS;EAAG,GAAI;CAAO,CAAA;AAC1E;AAEA,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC6B;CAChC,OACE,iBAAA,GAAA,kBAAA,KAAC,MAAD;EACE,YAAA,GAAA,OAAA,IACE,+DACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC6B;CAChC,OAAO,iBAAA,GAAA,kBAAA,KAAC,MAAD;EAAI,YAAA,GAAA,OAAA,IAAc,6BAA6B,SAAS;EAAG,GAAI;CAAO,CAAA;AAC/E;;;;;;AAOA,MAAM,mBAAmB,EACvB,WACA,QACA,GAAG,WACgC;CACnC,QAAA,GAAA,0BAAA,WAAiB;EACf,gBAAgB;EAChB;EACA,QAAA,GAAA,2BAAA,YACE,EACE,YAAA,GAAA,OAAA,IACE,yKACA,SACF,EACF,GACA,IACF;CACF,CAAC;AACH;;AAGA,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC+B;CAClC,OACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EACE,gBAAa;EACb,YAAA,GAAA,OAAA,IAAc,yBAAyB,SAAS;EAChD,GAAI;CACL,CAAA;AAEL;;AAGA,MAAM,wBAAwB,EAC5B,UACA,WACA,GAAG,WAC+B;CAClC,OACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EAAM,eAAY;EAAO,YAAA,GAAA,OAAA,IAAc,SAAS;EAAG,GAAI;YACpD,YAAY;CACT,CAAA;AAEV"}
1
+ {"version":3,"file":"breadcrumbs.cjs","names":[],"sources":["../../src/components/breadcrumbs.tsx"],"sourcesContent":["import { mergeProps } from '@base-ui/react/merge-props'\nimport { useRender } from '@base-ui/react/use-render'\nimport { cn } from '../utils/cn'\n\nconst Breadcrumbs = ({\n className,\n 'aria-label': ariaLabel = 'Breadcrumb',\n ...rest\n}: React.ComponentProps<'nav'>) => {\n return <nav aria-label={ariaLabel} className={cn(className)} {...rest} />\n}\n\nconst BreadcrumbsList = ({\n className,\n ...rest\n}: React.ComponentProps<'ol'>) => {\n return (\n <ol\n className={cn(\n 'flex flex-wrap items-center gap-1.5 text-sm text-gray-light',\n className,\n )}\n {...rest}\n />\n )\n}\n\nconst BreadcrumbsItem = ({\n className,\n ...rest\n}: React.ComponentProps<'li'>) => {\n return <li className={cn('flex items-center gap-1.5', className)} {...rest} />\n}\n\n/**\n * Link inside a breadcrumb. Pass `render` to render any router-specific link\n * component (TanStack `Link`, Next `Link`, plain `<a>`, …) and inherit the\n * breadcrumb link styling. Without `render` it renders as a plain anchor.\n */\nconst BreadcrumbsLink = ({\n className,\n render,\n ...rest\n}: useRender.ComponentProps<'a'>) => {\n return useRender({\n defaultTagName: 'a',\n render,\n props: mergeProps<'a'>(\n {\n className: cn(\n 'touch-target rounded-sm transition-colors hover:text-gray focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden motion-reduce:transition-none',\n className,\n ),\n },\n rest,\n ),\n })\n}\n\n/** Current page marker — the trailing breadcrumb the user is on. */\nconst BreadcrumbsPage = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return (\n <span\n aria-current=\"page\"\n className={cn('font-medium text-gray', className)}\n {...rest}\n />\n )\n}\n\n/** Visual separator between breadcrumb items. Defaults to \"/\". */\nconst BreadcrumbsSeparator = ({\n children,\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return (\n <span aria-hidden=\"true\" className={cn(className)} {...rest}>\n {children ?? '/'}\n </span>\n )\n}\n\nexport {\n Breadcrumbs,\n BreadcrumbsList,\n BreadcrumbsItem,\n BreadcrumbsLink,\n BreadcrumbsPage,\n BreadcrumbsSeparator,\n}\n"],"mappings":";;;;;;;AAIA,MAAM,eAAe,EACnB,WACA,cAAc,YAAY,cAC1B,GAAG,WAC8B;CACjC,OAAO,iBAAA,GAAA,kBAAA,KAAC,OAAD;EAAK,cAAY;EAAW,YAAA,GAAA,GAAA,IAAc,SAAS;EAAG,GAAI;CAAO,CAAA;AAC1E;AAEA,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC6B;CAChC,OACE,iBAAA,GAAA,kBAAA,KAAC,MAAD;EACE,YAAA,GAAA,GAAA,IACE,+DACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC6B;CAChC,OAAO,iBAAA,GAAA,kBAAA,KAAC,MAAD;EAAI,YAAA,GAAA,GAAA,IAAc,6BAA6B,SAAS;EAAG,GAAI;CAAO,CAAA;AAC/E;;;;;;AAOA,MAAM,mBAAmB,EACvB,WACA,QACA,GAAG,WACgC;CACnC,QAAA,GAAA,0BAAA,WAAiB;EACf,gBAAgB;EAChB;EACA,QAAA,GAAA,2BAAA,YACE,EACE,YAAA,GAAA,GAAA,IACE,yKACA,SACF,EACF,GACA,IACF;CACF,CAAC;AACH;;AAGA,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC+B;CAClC,OACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EACE,gBAAa;EACb,YAAA,GAAA,GAAA,IAAc,yBAAyB,SAAS;EAChD,GAAI;CACL,CAAA;AAEL;;AAGA,MAAM,wBAAwB,EAC5B,UACA,WACA,GAAG,WAC+B;CAClC,OACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EAAM,eAAY;EAAO,YAAA,GAAA,GAAA,IAAc,SAAS;EAAG,GAAI;YACpD,YAAY;CACT,CAAA;AAEV"}
@@ -7,12 +7,12 @@ let react_jsx_runtime = require("react/jsx-runtime");
7
7
  let class_variance_authority = require("class-variance-authority");
8
8
  let _base_ui_react_merge_props = require("@base-ui/react/merge-props");
9
9
  let _base_ui_react_use_render = require("@base-ui/react/use-render");
10
- let cnfast = require("cnfast");
10
+ let cn = require("cn");
11
11
  //#region src/components/bubble.tsx
12
12
  function BubbleGroup({ className, ...props }) {
13
13
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
14
14
  "data-slot": "bubble-group",
15
- className: (0, cnfast.cn)("flex min-w-0 flex-col gap-2", className),
15
+ className: (0, cn.cn)("flex min-w-0 flex-col gap-2", className),
16
16
  ...props
17
17
  });
18
18
  }
@@ -33,7 +33,7 @@ function Bubble({ variant = "default", align = "start", className, ...props }) {
33
33
  "data-slot": "bubble",
34
34
  "data-variant": variant,
35
35
  "data-align": align,
36
- className: (0, cnfast.cn)(bubbleVariants({ variant }), className),
36
+ className: (0, cn.cn)(bubbleVariants({ variant }), className),
37
37
  ...props
38
38
  });
39
39
  }
@@ -43,7 +43,7 @@ function BubbleContent({ className, render, ...props }) {
43
43
  render,
44
44
  props: (0, _base_ui_react_merge_props.mergeProps)({
45
45
  "data-slot": "bubble-content",
46
- className: (0, cnfast.cn)("w-fit max-w-full min-w-0 overflow-hidden rounded-lg border border-transparent px-3 py-2 text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none [button,a]:focus-visible:border-spark-a7 [button,a]:focus-visible:ring-3 [button,a]:focus-visible:ring-spark-a7/50", className)
46
+ className: (0, cn.cn)("w-fit max-w-full min-w-0 overflow-hidden rounded-lg border border-transparent px-3 py-2 text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none [button,a]:focus-visible:border-spark-a7 [button,a]:focus-visible:ring-3 [button,a]:focus-visible:ring-spark-a7/50", className)
47
47
  }, props)
48
48
  });
49
49
  }
@@ -68,7 +68,7 @@ function BubbleReactions({ side = "bottom", align = "end", className, ...props }
68
68
  "data-slot": "bubble-reactions",
69
69
  "data-align": align,
70
70
  "data-side": side,
71
- className: (0, cnfast.cn)(bubbleReactionsVariants({
71
+ className: (0, cn.cn)(bubbleReactionsVariants({
72
72
  side,
73
73
  align
74
74
  }), className),
@@ -1 +1 @@
1
- {"version":3,"file":"bubble.cjs","names":[],"sources":["../../src/components/bubble.tsx"],"sourcesContent":["import { mergeProps } from '@base-ui/react/merge-props'\nimport { useRender } from '@base-ui/react/use-render'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\n\nfunction BubbleGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"bubble-group\"\n className={cn('flex min-w-0 flex-col gap-2', className)}\n {...props}\n />\n )\n}\n\n// Each variant paints the nested [data-slot=bubble-content] surface (and its\n// interactive hover when the content is a button/anchor). Colours read spark\n// scales: accent (spark-9) for the sender's own bubbles, the neutral gray scale\n// for received/muted, and the red scale for destructive. `tinted` derives a\n// soft accent tint via oklch(from var(--spark-9) …) so it tracks the accent knob.\nconst bubbleVariants = cva(\n 'group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full',\n {\n variants: {\n variant: {\n default:\n '*:data-[slot=bubble-content]:bg-spark-9 *:data-[slot=bubble-content]:text-spark-contrast [&>[data-slot=bubble-content]:is(button,a):hover]:bg-spark-10',\n secondary:\n '*:data-[slot=bubble-content]:bg-gray-2 *:data-[slot=bubble-content]:text-gray [&>[data-slot=bubble-content]:is(button,a):hover]:bg-gray-a3',\n muted:\n '*:data-[slot=bubble-content]:bg-gray-a3 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-gray-a4',\n tinted:\n '*:data-[slot=bubble-content]:bg-[oklch(from_var(--spark-9)_0.93_calc(c*0.4)_h)] *:data-[slot=bubble-content]:text-gray dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--spark-9)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--spark-9)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--spark-9)_0.35_calc(c*0.5)_h)]',\n outline:\n '*:data-[slot=bubble-content]:border-gray *:data-[slot=bubble-content]:bg-gray-2 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-gray-a3 [&>[data-slot=bubble-content]:is(button,a):hover]:text-gray dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-gray-a4',\n ghost:\n 'border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-gray-a3 [&>[data-slot=bubble-content]:is(button,a):hover]:text-gray dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-gray-a2',\n destructive:\n '*:data-[slot=bubble-content]:bg-red-a3 *:data-[slot=bubble-content]:text-error dark:*:data-[slot=bubble-content]:bg-red-a4 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-red-a4 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-red-a5',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nfunction Bubble({\n variant = 'default',\n align = 'start',\n className,\n ...props\n}: React.ComponentProps<'div'> &\n VariantProps<typeof bubbleVariants> & {\n align?: 'start' | 'end'\n }) {\n return (\n <div\n data-slot=\"bubble\"\n data-variant={variant}\n data-align={align}\n className={cn(bubbleVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\n// `render` replaces radix `asChild`: pass an element (button, anchor, …) to make\n// the surface interactive; Base UI's useRender merges props onto it.\nfunction BubbleContent({\n className,\n render,\n ...props\n}: useRender.ComponentProps<'div'>) {\n return useRender({\n defaultTagName: 'div',\n render,\n props: mergeProps<'div'>(\n {\n 'data-slot': 'bubble-content',\n className: cn(\n 'w-fit max-w-full min-w-0 overflow-hidden rounded-lg border border-transparent px-3 py-2 text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none [button,a]:focus-visible:border-spark-a7 [button,a]:focus-visible:ring-3 [button,a]:focus-visible:ring-spark-a7/50',\n className,\n ),\n } as React.ComponentProps<'div'>,\n props,\n ),\n })\n}\n\nconst bubbleReactionsVariants = cva(\n 'absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-full bg-gray-3 px-1.5 py-0.5 text-sm ring-3 ring-gray-2 has-[button]:p-0',\n {\n variants: {\n side: {\n top: 'top-0 -translate-y-3/4',\n bottom: 'bottom-0 translate-y-3/4',\n },\n align: {\n start: 'left-3',\n end: 'right-3',\n },\n },\n defaultVariants: {\n side: 'bottom',\n align: 'end',\n },\n },\n)\n\nfunction BubbleReactions({\n side = 'bottom',\n align = 'end',\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n align?: 'start' | 'end'\n side?: 'top' | 'bottom'\n}) {\n return (\n <div\n data-slot=\"bubble-reactions\"\n data-align={align}\n data-side={side}\n className={cn(bubbleReactionsVariants({ side, align }), className)}\n {...props}\n />\n )\n}\n\nexport { Bubble, BubbleContent, BubbleGroup, BubbleReactions }\n"],"mappings":";;;;;;;;;;;AAMA,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;CACzE,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAA,OAAA,IAAc,+BAA+B,SAAS;EACtD,GAAI;CACL,CAAA;AAEL;AAOA,MAAM,kBAAA,GAAA,yBAAA,KACJ,yKACA;CACE,UAAU,EACR,SAAS;EACP,SACE;EACF,WACE;EACF,OACE;EACF,QACE;EACF,SACE;EACF,OACE;EACF,aACE;CACJ,EACF;CACA,iBAAiB,EACf,SAAS,UACX;AACF,CACF;AAEA,SAAS,OAAO,EACd,UAAU,WACV,QAAQ,SACR,WACA,GAAG,SAIA;CACH,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,gBAAc;EACd,cAAY;EACZ,YAAA,GAAA,OAAA,IAAc,eAAe,EAAE,QAAQ,CAAC,GAAG,SAAS;EACpD,GAAI;CACL,CAAA;AAEL;AAIA,SAAS,cAAc,EACrB,WACA,QACA,GAAG,SAC+B;CAClC,QAAA,GAAA,0BAAA,WAAiB;EACf,gBAAgB;EAChB;EACA,QAAA,GAAA,2BAAA,YACE;GACE,aAAa;GACb,YAAA,GAAA,OAAA,IACE,qWACA,SACF;EACF,GACA,KACF;CACF,CAAC;AACH;AAEA,MAAM,2BAAA,GAAA,yBAAA,KACJ,wJACA;CACE,UAAU;EACR,MAAM;GACJ,KAAK;GACL,QAAQ;EACV;EACA,OAAO;GACL,OAAO;GACP,KAAK;EACP;CACF;CACA,iBAAiB;EACf,MAAM;EACN,OAAO;CACT;AACF,CACF;AAEA,SAAS,gBAAgB,EACvB,OAAO,UACP,QAAQ,OACR,WACA,GAAG,SAIF;CACD,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,cAAY;EACZ,aAAW;EACX,YAAA,GAAA,OAAA,IAAc,wBAAwB;GAAE;GAAM;EAAM,CAAC,GAAG,SAAS;EACjE,GAAI;CACL,CAAA;AAEL"}
1
+ {"version":3,"file":"bubble.cjs","names":[],"sources":["../../src/components/bubble.tsx"],"sourcesContent":["import { mergeProps } from '@base-ui/react/merge-props'\nimport { useRender } from '@base-ui/react/use-render'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\n\nfunction BubbleGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"bubble-group\"\n className={cn('flex min-w-0 flex-col gap-2', className)}\n {...props}\n />\n )\n}\n\n// Each variant paints the nested [data-slot=bubble-content] surface (and its\n// interactive hover when the content is a button/anchor). Colours read spark\n// scales: accent (spark-9) for the sender's own bubbles, the neutral gray scale\n// for received/muted, and the red scale for destructive. `tinted` derives a\n// soft accent tint via oklch(from var(--spark-9) …) so it tracks the accent knob.\nconst bubbleVariants = cva(\n 'group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full',\n {\n variants: {\n variant: {\n default:\n '*:data-[slot=bubble-content]:bg-spark-9 *:data-[slot=bubble-content]:text-spark-contrast [&>[data-slot=bubble-content]:is(button,a):hover]:bg-spark-10',\n secondary:\n '*:data-[slot=bubble-content]:bg-gray-2 *:data-[slot=bubble-content]:text-gray [&>[data-slot=bubble-content]:is(button,a):hover]:bg-gray-a3',\n muted:\n '*:data-[slot=bubble-content]:bg-gray-a3 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-gray-a4',\n tinted:\n '*:data-[slot=bubble-content]:bg-[oklch(from_var(--spark-9)_0.93_calc(c*0.4)_h)] *:data-[slot=bubble-content]:text-gray dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--spark-9)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--spark-9)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--spark-9)_0.35_calc(c*0.5)_h)]',\n outline:\n '*:data-[slot=bubble-content]:border-gray *:data-[slot=bubble-content]:bg-gray-2 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-gray-a3 [&>[data-slot=bubble-content]:is(button,a):hover]:text-gray dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-gray-a4',\n ghost:\n 'border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-gray-a3 [&>[data-slot=bubble-content]:is(button,a):hover]:text-gray dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-gray-a2',\n destructive:\n '*:data-[slot=bubble-content]:bg-red-a3 *:data-[slot=bubble-content]:text-error dark:*:data-[slot=bubble-content]:bg-red-a4 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-red-a4 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-red-a5',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nfunction Bubble({\n variant = 'default',\n align = 'start',\n className,\n ...props\n}: React.ComponentProps<'div'> &\n VariantProps<typeof bubbleVariants> & {\n align?: 'start' | 'end'\n }) {\n return (\n <div\n data-slot=\"bubble\"\n data-variant={variant}\n data-align={align}\n className={cn(bubbleVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\n// `render` replaces radix `asChild`: pass an element (button, anchor, …) to make\n// the surface interactive; Base UI's useRender merges props onto it.\nfunction BubbleContent({\n className,\n render,\n ...props\n}: useRender.ComponentProps<'div'>) {\n return useRender({\n defaultTagName: 'div',\n render,\n props: mergeProps<'div'>(\n {\n 'data-slot': 'bubble-content',\n className: cn(\n 'w-fit max-w-full min-w-0 overflow-hidden rounded-lg border border-transparent px-3 py-2 text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none [button,a]:focus-visible:border-spark-a7 [button,a]:focus-visible:ring-3 [button,a]:focus-visible:ring-spark-a7/50',\n className,\n ),\n } as React.ComponentProps<'div'>,\n props,\n ),\n })\n}\n\nconst bubbleReactionsVariants = cva(\n 'absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-full bg-gray-3 px-1.5 py-0.5 text-sm ring-3 ring-gray-2 has-[button]:p-0',\n {\n variants: {\n side: {\n top: 'top-0 -translate-y-3/4',\n bottom: 'bottom-0 translate-y-3/4',\n },\n align: {\n start: 'left-3',\n end: 'right-3',\n },\n },\n defaultVariants: {\n side: 'bottom',\n align: 'end',\n },\n },\n)\n\nfunction BubbleReactions({\n side = 'bottom',\n align = 'end',\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n align?: 'start' | 'end'\n side?: 'top' | 'bottom'\n}) {\n return (\n <div\n data-slot=\"bubble-reactions\"\n data-align={align}\n data-side={side}\n className={cn(bubbleReactionsVariants({ side, align }), className)}\n {...props}\n />\n )\n}\n\nexport { Bubble, BubbleContent, BubbleGroup, BubbleReactions }\n"],"mappings":";;;;;;;;;;;AAMA,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;CACzE,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAA,GAAA,IAAc,+BAA+B,SAAS;EACtD,GAAI;CACL,CAAA;AAEL;AAOA,MAAM,kBAAA,GAAA,yBAAA,KACJ,yKACA;CACE,UAAU,EACR,SAAS;EACP,SACE;EACF,WACE;EACF,OACE;EACF,QACE;EACF,SACE;EACF,OACE;EACF,aACE;CACJ,EACF;CACA,iBAAiB,EACf,SAAS,UACX;AACF,CACF;AAEA,SAAS,OAAO,EACd,UAAU,WACV,QAAQ,SACR,WACA,GAAG,SAIA;CACH,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,gBAAc;EACd,cAAY;EACZ,YAAA,GAAA,GAAA,IAAc,eAAe,EAAE,QAAQ,CAAC,GAAG,SAAS;EACpD,GAAI;CACL,CAAA;AAEL;AAIA,SAAS,cAAc,EACrB,WACA,QACA,GAAG,SAC+B;CAClC,QAAA,GAAA,0BAAA,WAAiB;EACf,gBAAgB;EAChB;EACA,QAAA,GAAA,2BAAA,YACE;GACE,aAAa;GACb,YAAA,GAAA,GAAA,IACE,qWACA,SACF;EACF,GACA,KACF;CACF,CAAC;AACH;AAEA,MAAM,2BAAA,GAAA,yBAAA,KACJ,wJACA;CACE,UAAU;EACR,MAAM;GACJ,KAAK;GACL,QAAQ;EACV;EACA,OAAO;GACL,OAAO;GACP,KAAK;EACP;CACF;CACA,iBAAiB;EACf,MAAM;EACN,OAAO;CACT;AACF,CACF;AAEA,SAAS,gBAAgB,EACvB,OAAO,UACP,QAAQ,OACR,WACA,GAAG,SAIF;CACD,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,cAAY;EACZ,aAAW;EACX,YAAA,GAAA,GAAA,IAAc,wBAAwB;GAAE;GAAM;EAAM,CAAC,GAAG,SAAS;EACjE,GAAI;CACL,CAAA;AAEL"}
@@ -10,7 +10,7 @@ declare function BubbleGroup({
10
10
  ...props
11
11
  }: React$1.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
12
12
  declare const bubbleVariants: (props?: ({
13
- variant?: "secondary" | "destructive" | "default" | "ghost" | "outline" | "muted" | "tinted" | null | undefined;
13
+ variant?: "ghost" | "outline" | "default" | "secondary" | "muted" | "tinted" | "destructive" | null | undefined;
14
14
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
15
15
  declare function Bubble({
16
16
  variant,
@@ -10,7 +10,7 @@ declare function BubbleGroup({
10
10
  ...props
11
11
  }: React$1.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
12
12
  declare const bubbleVariants: (props?: ({
13
- variant?: "secondary" | "destructive" | "default" | "ghost" | "outline" | "muted" | "tinted" | null | undefined;
13
+ variant?: "ghost" | "outline" | "default" | "secondary" | "muted" | "tinted" | "destructive" | null | undefined;
14
14
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
15
15
  declare function Bubble({
16
16
  variant,
@@ -7,7 +7,7 @@ let react = require("react");
7
7
  react = require_chunk.__toESM(react);
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
9
9
  let _base_ui_react_button = require("@base-ui/react/button");
10
- let cnfast = require("cnfast");
10
+ let cn = require("cn");
11
11
  //#region src/components/button-group.tsx
12
12
  const buttonGroupRecipe = "bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)]";
13
13
  function buttonGroupSizeClasses(size) {
@@ -25,7 +25,7 @@ const ButtonGroup = react.forwardRef(function ButtonGroup({ className, styleVari
25
25
  role: "group",
26
26
  "data-style": styleVariant,
27
27
  "data-accent-color": require_lib_accent_colors.accentByColor[color],
28
- className: (0, cnfast.cn)("isolate inline-flex items-stretch overflow-hidden rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))]", buttonGroupSizeClasses(size), buttonGroupRecipe, className),
28
+ className: (0, cn.cn)("isolate inline-flex items-stretch overflow-hidden rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))]", buttonGroupSizeClasses(size), buttonGroupRecipe, className),
29
29
  ref,
30
30
  ...props
31
31
  });
@@ -36,7 +36,7 @@ const ButtonGroupButton = react.forwardRef(function ButtonGroupButton({ classNam
36
36
  "data-slot": "button-group-button",
37
37
  nativeButton: nativeButton ?? render === void 0,
38
38
  render,
39
- className: (0, cnfast.cn)("inline-flex cursor-pointer items-center gap-2 px-3 font-medium whitespace-nowrap", "transition-colors hover:bg-(--spark-style-bg-hover,var(--color-primary-hover)) motion-reduce:transition-none", "focus-visible:inset-ring-2 focus-visible:outline-hidden", "disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50", "[&_svg]:pointer-events-none [&_svg]:shrink-0", className),
39
+ className: (0, cn.cn)("inline-flex cursor-pointer items-center gap-2 px-3 font-medium whitespace-nowrap", "transition-colors hover:bg-(--spark-style-bg-hover,var(--color-primary-hover)) motion-reduce:transition-none", "focus-visible:inset-ring-2 focus-visible:outline-hidden", "disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50", "[&_svg]:pointer-events-none [&_svg]:shrink-0", className),
40
40
  ref,
41
41
  ...props
42
42
  });
@@ -45,7 +45,7 @@ ButtonGroupButton.displayName = "ButtonGroupButton";
45
45
  const ButtonGroupText = react.forwardRef(function ButtonGroupText({ className, ...props }, ref) {
46
46
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
47
47
  "data-slot": "button-group-text",
48
- className: (0, cnfast.cn)("inline-flex items-center gap-2 px-3 font-medium whitespace-nowrap select-none", "[&_svg]:pointer-events-none [&_svg]:shrink-0", className),
48
+ className: (0, cn.cn)("inline-flex items-center gap-2 px-3 font-medium whitespace-nowrap select-none", "[&_svg]:pointer-events-none [&_svg]:shrink-0", className),
49
49
  ref,
50
50
  ...props
51
51
  });
@@ -55,7 +55,7 @@ const ButtonGroupSeparator = react.forwardRef(function ButtonGroupSeparator({ cl
55
55
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
56
56
  "data-slot": "button-group-separator",
57
57
  "aria-hidden": "true",
58
- className: (0, cnfast.cn)("h-4 w-px shrink-0 self-center bg-current opacity-25", className),
58
+ className: (0, cn.cn)("h-4 w-px shrink-0 self-center bg-current opacity-25", className),
59
59
  ref,
60
60
  ...props
61
61
  });
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.cjs","names":["React","accentByColor","ButtonPrimitive"],"sources":["../../src/components/button-group.tsx"],"sourcesContent":["'use client'\n\nimport { Button as ButtonPrimitive } from '@base-ui/react/button'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkAccentColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\n// Button's chrome recipe (`buttonRecipe` in button.tsx), minus its `hover:`\n// half -- hover belongs on segments, not the shared group chrome. Shared with\n// button-group-pill.tsx.\nexport const buttonGroupRecipe =\n 'bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)]'\n\nexport function buttonGroupSizeClasses(size: 'small' | 'default') {\n return size === 'small'\n ? 'h-9 text-sm [&_svg:not([class*=size-])]:size-4'\n : 'h-10 text-base [&_svg:not([class*=size-])]:size-5'\n}\n\ninterface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n styleVariant?: SparkStyle\n color?: SparkAccentColor\n size?: 'small' | 'default'\n}\n\n/**\n * A layout group, not a toolbar: segments are independent tab stops in DOM\n * order (no roving tabindex). Pass `aria-label` when segments don't\n * self-describe (e.g. icon-only segments). For a fully-rounded status pill,\n * use `ButtonGroupPill` instead.\n */\nconst ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n function ButtonGroup(\n {\n className,\n styleVariant = 'soft',\n color = 'neutral',\n size = 'default',\n ...props\n },\n ref,\n ) {\n return (\n <div\n data-slot=\"button-group\"\n role=\"group\"\n data-style={styleVariant}\n data-accent-color={accentByColor[color]}\n className={cn(\n 'isolate inline-flex items-stretch overflow-hidden rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))]',\n buttonGroupSizeClasses(size),\n buttonGroupRecipe,\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n },\n)\n\nButtonGroup.displayName = 'ButtonGroup'\n\ninterface ButtonGroupButtonProps extends Omit<\n React.ComponentProps<typeof ButtonPrimitive>,\n 'ref'\n> {}\n\nconst ButtonGroupButton = React.forwardRef<\n HTMLButtonElement,\n ButtonGroupButtonProps\n>(function ButtonGroupButton(\n { className, render, nativeButton, ...props },\n ref,\n) {\n return (\n <ButtonPrimitive\n data-slot=\"button-group-button\"\n nativeButton={nativeButton ?? render === undefined}\n render={render}\n className={cn(\n 'inline-flex cursor-pointer items-center gap-2 px-3 font-medium whitespace-nowrap',\n 'transition-colors hover:bg-(--spark-style-bg-hover,var(--color-primary-hover)) motion-reduce:transition-none',\n 'focus-visible:inset-ring-2 focus-visible:outline-hidden',\n 'disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50',\n '[&_svg]:pointer-events-none [&_svg]:shrink-0',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n})\n\nButtonGroupButton.displayName = 'ButtonGroupButton'\n\nconst ButtonGroupText = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(function ButtonGroupText({ className, ...props }, ref) {\n return (\n <span\n data-slot=\"button-group-text\"\n className={cn(\n 'inline-flex items-center gap-2 px-3 font-medium whitespace-nowrap select-none',\n '[&_svg]:pointer-events-none [&_svg]:shrink-0',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n})\n\nButtonGroupText.displayName = 'ButtonGroupText'\n\nconst ButtonGroupSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(function ButtonGroupSeparator({ className, ...props }, ref) {\n return (\n <div\n data-slot=\"button-group-separator\"\n aria-hidden=\"true\"\n className={cn(\n 'h-4 w-px shrink-0 self-center bg-current opacity-25',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n})\n\nButtonGroupSeparator.displayName = 'ButtonGroupSeparator'\n\nexport { ButtonGroup, ButtonGroupButton, ButtonGroupSeparator, ButtonGroupText }\nexport type { ButtonGroupProps, ButtonGroupButtonProps }\n"],"mappings":";;;;;;;;;;;AAYA,MAAa,oBACX;AAEF,SAAgB,uBAAuB,MAA2B;CAChE,OAAO,SAAS,UACZ,mDACA;AACN;;;;;;;AAcA,MAAM,cAAcA,MAAM,WACxB,SAAS,YACP,EACE,WACA,eAAe,QACf,QAAQ,WACR,OAAO,WACP,GAAG,SAEL,KACA;CACA,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,cAAY;EACZ,qBAAmBC,0BAAAA,cAAc;EACjC,YAAA,GAAA,OAAA,IACE,sHACA,uBAAuB,IAAI,GAC3B,mBACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CACF;AAEA,YAAY,cAAc;AAO1B,MAAM,oBAAoBD,MAAM,WAG9B,SAAS,kBACT,EAAE,WAAW,QAAQ,cAAc,GAAG,SACtC,KACA;CACA,OACE,iBAAA,GAAA,kBAAA,KAACE,sBAAAA,QAAD;EACE,aAAU;EACV,cAAc,gBAAgB,WAAW,KAAA;EACjC;EACR,YAAA,GAAA,OAAA,IACE,oFACA,gHACA,2DACA,+GACA,gDACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,kBAAkB,cAAc;AAEhC,MAAM,kBAAkBF,MAAM,WAG5B,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAS,KAAK;CACvD,OACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EACE,aAAU;EACV,YAAA,GAAA,OAAA,IACE,iFACA,gDACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,gBAAgB,cAAc;AAE9B,MAAM,uBAAuBA,MAAM,WAGjC,SAAS,qBAAqB,EAAE,WAAW,GAAG,SAAS,KAAK;CAC5D,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,eAAY;EACZ,YAAA,GAAA,OAAA,IACE,uDACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,qBAAqB,cAAc"}
1
+ {"version":3,"file":"button-group.cjs","names":["React","accentByColor","ButtonPrimitive"],"sources":["../../src/components/button-group.tsx"],"sourcesContent":["'use client'\n\nimport { Button as ButtonPrimitive } from '@base-ui/react/button'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkAccentColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\n// Button's chrome recipe (`buttonRecipe` in button.tsx), minus its `hover:`\n// half -- hover belongs on segments, not the shared group chrome. Shared with\n// button-group-pill.tsx.\nexport const buttonGroupRecipe =\n 'bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)]'\n\nexport function buttonGroupSizeClasses(size: 'small' | 'default') {\n return size === 'small'\n ? 'h-9 text-sm [&_svg:not([class*=size-])]:size-4'\n : 'h-10 text-base [&_svg:not([class*=size-])]:size-5'\n}\n\ninterface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n styleVariant?: SparkStyle\n color?: SparkAccentColor\n size?: 'small' | 'default'\n}\n\n/**\n * A layout group, not a toolbar: segments are independent tab stops in DOM\n * order (no roving tabindex). Pass `aria-label` when segments don't\n * self-describe (e.g. icon-only segments). For a fully-rounded status pill,\n * use `ButtonGroupPill` instead.\n */\nconst ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n function ButtonGroup(\n {\n className,\n styleVariant = 'soft',\n color = 'neutral',\n size = 'default',\n ...props\n },\n ref,\n ) {\n return (\n <div\n data-slot=\"button-group\"\n role=\"group\"\n data-style={styleVariant}\n data-accent-color={accentByColor[color]}\n className={cn(\n 'isolate inline-flex items-stretch overflow-hidden rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))]',\n buttonGroupSizeClasses(size),\n buttonGroupRecipe,\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n },\n)\n\nButtonGroup.displayName = 'ButtonGroup'\n\ninterface ButtonGroupButtonProps extends Omit<\n React.ComponentProps<typeof ButtonPrimitive>,\n 'ref'\n> {}\n\nconst ButtonGroupButton = React.forwardRef<\n HTMLButtonElement,\n ButtonGroupButtonProps\n>(function ButtonGroupButton(\n { className, render, nativeButton, ...props },\n ref,\n) {\n return (\n <ButtonPrimitive\n data-slot=\"button-group-button\"\n nativeButton={nativeButton ?? render === undefined}\n render={render}\n className={cn(\n 'inline-flex cursor-pointer items-center gap-2 px-3 font-medium whitespace-nowrap',\n 'transition-colors hover:bg-(--spark-style-bg-hover,var(--color-primary-hover)) motion-reduce:transition-none',\n 'focus-visible:inset-ring-2 focus-visible:outline-hidden',\n 'disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50',\n '[&_svg]:pointer-events-none [&_svg]:shrink-0',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n})\n\nButtonGroupButton.displayName = 'ButtonGroupButton'\n\nconst ButtonGroupText = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(function ButtonGroupText({ className, ...props }, ref) {\n return (\n <span\n data-slot=\"button-group-text\"\n className={cn(\n 'inline-flex items-center gap-2 px-3 font-medium whitespace-nowrap select-none',\n '[&_svg]:pointer-events-none [&_svg]:shrink-0',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n})\n\nButtonGroupText.displayName = 'ButtonGroupText'\n\nconst ButtonGroupSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(function ButtonGroupSeparator({ className, ...props }, ref) {\n return (\n <div\n data-slot=\"button-group-separator\"\n aria-hidden=\"true\"\n className={cn(\n 'h-4 w-px shrink-0 self-center bg-current opacity-25',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n})\n\nButtonGroupSeparator.displayName = 'ButtonGroupSeparator'\n\nexport { ButtonGroup, ButtonGroupButton, ButtonGroupSeparator, ButtonGroupText }\nexport type { ButtonGroupProps, ButtonGroupButtonProps }\n"],"mappings":";;;;;;;;;;;AAYA,MAAa,oBACX;AAEF,SAAgB,uBAAuB,MAA2B;CAChE,OAAO,SAAS,UACZ,mDACA;AACN;;;;;;;AAcA,MAAM,cAAcA,MAAM,WACxB,SAAS,YACP,EACE,WACA,eAAe,QACf,QAAQ,WACR,OAAO,WACP,GAAG,SAEL,KACA;CACA,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,cAAY;EACZ,qBAAmBC,0BAAAA,cAAc;EACjC,YAAA,GAAA,GAAA,IACE,sHACA,uBAAuB,IAAI,GAC3B,mBACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CACF;AAEA,YAAY,cAAc;AAO1B,MAAM,oBAAoBD,MAAM,WAG9B,SAAS,kBACT,EAAE,WAAW,QAAQ,cAAc,GAAG,SACtC,KACA;CACA,OACE,iBAAA,GAAA,kBAAA,KAACE,sBAAAA,QAAD;EACE,aAAU;EACV,cAAc,gBAAgB,WAAW,KAAA;EACjC;EACR,YAAA,GAAA,GAAA,IACE,oFACA,gHACA,2DACA,+GACA,gDACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,kBAAkB,cAAc;AAEhC,MAAM,kBAAkBF,MAAM,WAG5B,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAS,KAAK;CACvD,OACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EACE,aAAU;EACV,YAAA,GAAA,GAAA,IACE,iFACA,gDACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,gBAAgB,cAAc;AAE9B,MAAM,uBAAuBA,MAAM,WAGjC,SAAS,qBAAqB,EAAE,WAAW,GAAG,SAAS,KAAK;CAC5D,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,eAAY;EACZ,YAAA,GAAA,GAAA,IACE,uDACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,qBAAqB,cAAc"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  "use client";
3
- import { cn } from "../utils/cn.js";
4
3
  import { accentByColor } from "../lib/accent-colors.js";
4
+ import { cn } from "../utils/cn.js";
5
5
  import * as React$1 from "react";
6
6
  import { jsx } from "react/jsx-runtime";
7
7
  import { Button } from "@base-ui/react/button";
@@ -8,7 +8,7 @@ react = require_chunk.__toESM(react);
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
9
9
  let _base_ui_react_button = require("@base-ui/react/button");
10
10
  let class_variance_authority = require("class-variance-authority");
11
- let cnfast = require("cnfast");
11
+ let cn = require("cn");
12
12
  //#region src/components/button.tsx
13
13
  const buttonVariants = (0, class_variance_authority.cva)("group/button touch-target inline-flex cursor-pointer items-center justify-center gap-2 rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))] text-base font-medium whitespace-nowrap transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 motion-reduce:transition-none [&_svg]:pointer-events-none [&_svg]:shrink-0", {
14
14
  variants: {
@@ -44,7 +44,7 @@ const Button = react.forwardRef(function Button({ className, styleVariant, color
44
44
  "data-accent-color": color ? require_lib_accent_colors.accentByColor[color] : void 0,
45
45
  nativeButton: nativeButton ?? render === void 0,
46
46
  render,
47
- className: (0, cnfast.cn)(buttonVariants({
47
+ className: (0, cn.cn)(buttonVariants({
48
48
  size,
49
49
  color
50
50
  }), buttonRecipe, className),
@@ -1 +1 @@
1
- {"version":3,"file":"button.cjs","names":["React","ButtonPrimitive","accentByColor"],"sources":["../../src/components/button.tsx"],"sourcesContent":["'use client'\n\nimport { Button as ButtonPrimitive } from '@base-ui/react/button'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\nconst buttonVariants = cva(\n 'group/button touch-target inline-flex cursor-pointer items-center justify-center gap-2 rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))] text-base font-medium whitespace-nowrap transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 motion-reduce:transition-none [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n primary:\n 'bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) hover:bg-(--spark-style-bg-hover,var(--color-primary-hover))',\n secondary:\n 'bg-gray-2 text-gray-a11 shadow-[inset_0_0_0_1px_var(--neutral-a7)] hover:bg-gray-a3',\n tertiary: 'bg-transparent text-gray-a11 hover:bg-gray-a3',\n bare: 'rounded-none! text-gray-12 outline-hidden!',\n destructive:\n 'bg-destructive-soft text-destructive-soft-foreground hover:bg-destructive-soft-hover focus-visible:ring-destructive',\n },\n color: {\n accent: '',\n primary: '',\n neutral: '',\n danger: 'focus-visible:ring-destructive',\n destructive: 'focus-visible:ring-destructive',\n },\n size: {\n small:\n 'h-9 px-3 text-sm [--spark-icon-size:16px] [&_svg:not([class*=size-])]:size-4',\n default:\n 'h-10 px-3 [--spark-icon-size:20px] [&_svg:not([class*=size-])]:size-5',\n medium:\n 'h-11 px-4 [--spark-icon-size:24px] [&_svg:not([class*=size-])]:size-6',\n 'icon-small':\n 'size-9 [--spark-icon-size:16px] [&_svg:not([class*=size-])]:size-4',\n icon: 'size-10 [--spark-icon-size:20px] [&_svg:not([class*=size-])]:size-5',\n 'icon-medium':\n 'size-11 [--spark-icon-size:24px] [&_svg:not([class*=size-])]:size-6',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n)\n\nconst buttonRecipe =\n 'bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) hover:bg-(--spark-style-bg-hover,var(--color-primary-hover)) shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)]'\n\n/** Preferred: `primary` | `neutral` | `destructive`. `accent` / `danger` stay as aliases. */\nexport type SparkButtonColor =\n | 'primary'\n | 'accent'\n | 'neutral'\n | 'destructive'\n | 'danger'\n\nexport interface ButtonProps\n extends\n Omit<React.ComponentProps<typeof ButtonPrimitive>, 'ref'>,\n Omit<VariantProps<typeof buttonVariants>, 'variant' | 'color'> {\n styleVariant?: SparkStyle\n color?: SparkButtonColor\n /**\n * @deprecated Not a `<Button>` prop and silently ignored -- use `styleVariant`\n * (`solid | soft | surface | ghost | outline`) and `color`\n * (`primary | neutral | destructive`) instead. The `variant` axis on\n * `buttonVariants` exists only for class-string callers.\n */\n variant?: never\n}\n\n// forwardRef keeps refs working for React 18 consumers (ref-as-prop is 19-only)\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n className,\n styleVariant,\n color,\n size,\n render,\n nativeButton,\n variant: _variant,\n ...props\n },\n ref,\n) {\n const hasLook = styleVariant !== undefined || color !== undefined\n const dataStyle = hasLook ? (styleVariant ?? 'solid') : undefined\n const dataAccentColor = color ? accentByColor[color] : undefined\n\n return (\n <ButtonPrimitive\n data-style={dataStyle}\n data-accent-color={dataAccentColor}\n nativeButton={nativeButton ?? render === undefined}\n render={render}\n className={cn(buttonVariants({ size, color }), buttonRecipe, className)}\n ref={ref}\n {...props}\n />\n )\n})\n\nButton.displayName = 'Button'\n\nexport { Button, buttonVariants }\n"],"mappings":";;;;;;;;;;;;AASA,MAAM,kBAAA,GAAA,yBAAA,KACJ,0dACA;CACE,UAAU;EACR,SAAS;GACP,SACE;GACF,WACE;GACF,UAAU;GACV,MAAM;GACN,aACE;EACJ;EACA,OAAO;GACL,QAAQ;GACR,SAAS;GACT,SAAS;GACT,QAAQ;GACR,aAAa;EACf;EACA,MAAM;GACJ,OACE;GACF,SACE;GACF,QACE;GACF,cACE;GACF,MAAM;GACN,eACE;EACJ;CACF;CACA,iBAAiB,EACf,MAAM,UACR;AACF,CACF;AAEA,MAAM,eACJ;AA0BF,MAAM,SAASA,MAAM,WAA2C,SAAS,OACvE,EACE,WACA,cACA,OACA,MACA,QACA,cACA,SAAS,UACT,GAAG,SAEL,KACA;CAKA,OACE,iBAAA,GAAA,kBAAA,KAACC,sBAAAA,QAAD;EACE,cANY,iBAAiB,KAAA,KAAa,UAAU,KAAA,IAC3B,gBAAgB,UAAW,KAAA;EAMpD,qBALoB,QAAQC,0BAAAA,cAAc,SAAS,KAAA;EAMnD,cAAc,gBAAgB,WAAW,KAAA;EACjC;EACR,YAAA,GAAA,OAAA,IAAc,eAAe;GAAE;GAAM;EAAM,CAAC,GAAG,cAAc,SAAS;EACjE;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,OAAO,cAAc"}
1
+ {"version":3,"file":"button.cjs","names":["React","ButtonPrimitive","accentByColor"],"sources":["../../src/components/button.tsx"],"sourcesContent":["'use client'\n\nimport { Button as ButtonPrimitive } from '@base-ui/react/button'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\nconst buttonVariants = cva(\n 'group/button touch-target inline-flex cursor-pointer items-center justify-center gap-2 rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))] text-base font-medium whitespace-nowrap transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 motion-reduce:transition-none [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n primary:\n 'bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) hover:bg-(--spark-style-bg-hover,var(--color-primary-hover))',\n secondary:\n 'bg-gray-2 text-gray-a11 shadow-[inset_0_0_0_1px_var(--neutral-a7)] hover:bg-gray-a3',\n tertiary: 'bg-transparent text-gray-a11 hover:bg-gray-a3',\n bare: 'rounded-none! text-gray-12 outline-hidden!',\n destructive:\n 'bg-destructive-soft text-destructive-soft-foreground hover:bg-destructive-soft-hover focus-visible:ring-destructive',\n },\n color: {\n accent: '',\n primary: '',\n neutral: '',\n danger: 'focus-visible:ring-destructive',\n destructive: 'focus-visible:ring-destructive',\n },\n size: {\n small:\n 'h-9 px-3 text-sm [--spark-icon-size:16px] [&_svg:not([class*=size-])]:size-4',\n default:\n 'h-10 px-3 [--spark-icon-size:20px] [&_svg:not([class*=size-])]:size-5',\n medium:\n 'h-11 px-4 [--spark-icon-size:24px] [&_svg:not([class*=size-])]:size-6',\n 'icon-small':\n 'size-9 [--spark-icon-size:16px] [&_svg:not([class*=size-])]:size-4',\n icon: 'size-10 [--spark-icon-size:20px] [&_svg:not([class*=size-])]:size-5',\n 'icon-medium':\n 'size-11 [--spark-icon-size:24px] [&_svg:not([class*=size-])]:size-6',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n)\n\nconst buttonRecipe =\n 'bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) hover:bg-(--spark-style-bg-hover,var(--color-primary-hover)) shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)]'\n\n/** Preferred: `primary` | `neutral` | `destructive`. `accent` / `danger` stay as aliases. */\nexport type SparkButtonColor =\n | 'primary'\n | 'accent'\n | 'neutral'\n | 'destructive'\n | 'danger'\n\nexport interface ButtonProps\n extends\n Omit<React.ComponentProps<typeof ButtonPrimitive>, 'ref'>,\n Omit<VariantProps<typeof buttonVariants>, 'variant' | 'color'> {\n styleVariant?: SparkStyle\n color?: SparkButtonColor\n /**\n * @deprecated Not a `<Button>` prop and silently ignored -- use `styleVariant`\n * (`solid | soft | surface | ghost | outline`) and `color`\n * (`primary | neutral | destructive`) instead. The `variant` axis on\n * `buttonVariants` exists only for class-string callers.\n */\n variant?: never\n}\n\n// forwardRef keeps refs working for React 18 consumers (ref-as-prop is 19-only)\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n className,\n styleVariant,\n color,\n size,\n render,\n nativeButton,\n variant: _variant,\n ...props\n },\n ref,\n) {\n const hasLook = styleVariant !== undefined || color !== undefined\n const dataStyle = hasLook ? (styleVariant ?? 'solid') : undefined\n const dataAccentColor = color ? accentByColor[color] : undefined\n\n return (\n <ButtonPrimitive\n data-style={dataStyle}\n data-accent-color={dataAccentColor}\n nativeButton={nativeButton ?? render === undefined}\n render={render}\n className={cn(buttonVariants({ size, color }), buttonRecipe, className)}\n ref={ref}\n {...props}\n />\n )\n})\n\nButton.displayName = 'Button'\n\nexport { Button, buttonVariants }\n"],"mappings":";;;;;;;;;;;;AASA,MAAM,kBAAA,GAAA,yBAAA,KACJ,0dACA;CACE,UAAU;EACR,SAAS;GACP,SACE;GACF,WACE;GACF,UAAU;GACV,MAAM;GACN,aACE;EACJ;EACA,OAAO;GACL,QAAQ;GACR,SAAS;GACT,SAAS;GACT,QAAQ;GACR,aAAa;EACf;EACA,MAAM;GACJ,OACE;GACF,SACE;GACF,QACE;GACF,cACE;GACF,MAAM;GACN,eACE;EACJ;CACF;CACA,iBAAiB,EACf,MAAM,UACR;AACF,CACF;AAEA,MAAM,eACJ;AA0BF,MAAM,SAASA,MAAM,WAA2C,SAAS,OACvE,EACE,WACA,cACA,OACA,MACA,QACA,cACA,SAAS,UACT,GAAG,SAEL,KACA;CAKA,OACE,iBAAA,GAAA,kBAAA,KAACC,sBAAAA,QAAD;EACE,cANY,iBAAiB,KAAA,KAAa,UAAU,KAAA,IAC3B,gBAAgB,UAAW,KAAA;EAMpD,qBALoB,QAAQC,0BAAAA,cAAc,SAAS,KAAA;EAMnD,cAAc,gBAAgB,WAAW,KAAA;EACjC;EACR,YAAA,GAAA,GAAA,IAAc,eAAe;GAAE;GAAM;EAAM,CAAC,GAAG,cAAc,SAAS;EACjE;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,OAAO,cAAc"}
@@ -7,8 +7,8 @@ import { VariantProps } from "class-variance-authority";
7
7
 
8
8
  //#region src/components/button.d.ts
9
9
  declare const buttonVariants: (props?: ({
10
- variant?: "primary" | "secondary" | "tertiary" | "bare" | "destructive" | null | undefined;
11
- color?: "primary" | "destructive" | "accent" | "neutral" | "danger" | null | undefined;
10
+ variant?: "secondary" | "destructive" | "primary" | "tertiary" | "bare" | null | undefined;
11
+ color?: "accent" | "destructive" | "neutral" | "primary" | "danger" | null | undefined;
12
12
  size?: "small" | "default" | "medium" | "icon-small" | "icon" | "icon-medium" | null | undefined;
13
13
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
14
  /** Preferred: `primary` | `neutral` | `destructive`. `accent` / `danger` stay as aliases. */
@@ -7,8 +7,8 @@ import { VariantProps } from "class-variance-authority";
7
7
 
8
8
  //#region src/components/button.d.ts
9
9
  declare const buttonVariants: (props?: ({
10
- variant?: "primary" | "secondary" | "tertiary" | "bare" | "destructive" | null | undefined;
11
- color?: "primary" | "destructive" | "accent" | "neutral" | "danger" | null | undefined;
10
+ variant?: "secondary" | "destructive" | "primary" | "tertiary" | "bare" | null | undefined;
11
+ color?: "accent" | "destructive" | "neutral" | "primary" | "danger" | null | undefined;
12
12
  size?: "small" | "default" | "medium" | "icon-small" | "icon" | "icon-medium" | null | undefined;
13
13
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
14
  /** Preferred: `primary` | `neutral` | `destructive`. `accent` / `danger` stay as aliases. */
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  "use client";
3
- import { cn } from "../utils/cn.js";
4
3
  import { accentByColor } from "../lib/accent-colors.js";
4
+ import { cn } from "../utils/cn.js";
5
5
  import * as React$1 from "react";
6
6
  import { jsx } from "react/jsx-runtime";
7
7
  import { Button as Button$1 } from "@base-ui/react/button";
@@ -2,26 +2,26 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const require_chunk = require("../chunk-DY84GLCh.cjs");
4
4
  const require_components_button = require("./button.cjs");
5
- let _epilot_spark_icons = require("@epilot/spark-icons");
6
5
  let react = require("react");
7
6
  react = require_chunk.__toESM(react);
7
+ let _epilot_spark_icons = require("@epilot/spark-icons");
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
9
9
  let _daypicker_react = require("@daypicker/react");
10
- let cnfast = require("cnfast");
10
+ let cn = require("cn");
11
11
  //#region src/components/calendar.tsx
12
12
  function Calendar({ className, classNames, showOutsideDays = true, fixedWeeks = true, showTodayDot = true, ...props }) {
13
13
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_daypicker_react.DayPicker, {
14
- className: (0, cnfast.cn)("p-3", className),
14
+ className: (0, cn.cn)("p-3", className),
15
15
  classNames: {
16
16
  months: "relative",
17
17
  month: "flex flex-col gap-2",
18
18
  month_caption: "flex h-10 items-center justify-center",
19
19
  caption_label: "text-sm font-bold text-gray",
20
- button_previous: (0, cnfast.cn)(require_components_button.buttonVariants({
20
+ button_previous: (0, cn.cn)(require_components_button.buttonVariants({
21
21
  size: "icon",
22
22
  variant: "tertiary"
23
23
  }), "absolute top-0 left-0 z-10 text-gray-light hover:text-gray [[data-high-contrast]_&]:text-gray-a12"),
24
- button_next: (0, cnfast.cn)(require_components_button.buttonVariants({
24
+ button_next: (0, cn.cn)(require_components_button.buttonVariants({
25
25
  size: "icon",
26
26
  variant: "tertiary"
27
27
  }), "absolute top-0 right-0 z-10 text-gray-light hover:text-gray [[data-high-contrast]_&]:text-gray-a12"),
@@ -29,15 +29,15 @@ function Calendar({ className, classNames, showOutsideDays = true, fixedWeeks =
29
29
  weekdays: "flex w-full justify-between",
30
30
  weekday: "mt-0.5 flex h-10 w-10 items-center justify-center rounded-full text-sm font-bold text-gray",
31
31
  week: "mt-1 flex w-full justify-between",
32
- day: (0, cnfast.cn)("relative mx-0.5 flex h-10 w-10 items-center justify-center rounded-full p-0 text-center text-sm focus-within:relative focus-within:z-20", props.mode === "range" ? "[&:has(>.range-end)]:rounded-r-full [&:has(>.range-start)]:rounded-l-full first:[&:has([aria-selected])]:rounded-l-full last:[&:has([aria-selected])]:rounded-r-full" : "[&:has([aria-selected])]:rounded-full"),
33
- day_button: (0, cnfast.cn)(require_components_button.buttonVariants({
32
+ day: (0, cn.cn)("relative mx-0.5 flex h-10 w-10 items-center justify-center rounded-full p-0 text-center text-sm focus-within:relative focus-within:z-20", props.mode === "range" ? "[&:has(>.range-end)]:rounded-r-full [&:has(>.range-start)]:rounded-l-full first:[&:has([aria-selected])]:rounded-l-full last:[&:has([aria-selected])]:rounded-r-full" : "[&:has([aria-selected])]:rounded-full"),
33
+ day_button: (0, cn.cn)(require_components_button.buttonVariants({
34
34
  size: "icon",
35
35
  variant: "tertiary"
36
36
  }), "size-10 shrink-0 rounded-full p-0 font-normal text-gray in-aria-selected:rounded-full in-aria-selected:bg-(--spark-style-bg,var(--color-primary)) in-aria-selected:text-(--spark-style-fg,var(--color-primary-foreground)) hover:in-aria-selected:bg-(--spark-style-bg-hover,var(--color-primary-hover)) [[data-high-contrast]_[data-outside]:not([data-disabled])_&]:text-gray-a12 [[data-outside]:not([data-disabled])_&]:text-gray-light"),
37
37
  range_start: "range-start",
38
38
  range_end: "range-end",
39
39
  selected: "rounded-full",
40
- today: (0, cnfast.cn)("relative bg-base-gray-soft text-gray", showTodayDot && "after:absolute after:right-0 after:-bottom-1 after:left-0 after:m-auto after:inline-flex after:h-1 after:w-1 after:rounded-full after:bg-(--spark-style-bg,var(--color-primary)) after:content-[\"\"]"),
40
+ today: (0, cn.cn)("relative bg-base-gray-soft text-gray", showTodayDot && "after:absolute after:right-0 after:-bottom-1 after:left-0 after:m-auto after:inline-flex after:h-1 after:w-1 after:rounded-full after:bg-(--spark-style-bg,var(--color-primary)) after:content-[\"\"]"),
41
41
  outside: "outside aria-selected:bg-base-gray-soft aria-selected:text-gray-light",
42
42
  disabled: "text-gray-light opacity-50",
43
43
  range_middle: "aria-selected:bg-base-gray-soft aria-selected:text-gray",
@@ -45,7 +45,7 @@ function Calendar({ className, classNames, showOutsideDays = true, fixedWeeks =
45
45
  ...classNames
46
46
  },
47
47
  components: { Chevron: ({ orientation }) => {
48
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(orientation === "right" ? _epilot_spark_icons.ChevronRight : _epilot_spark_icons.ChevronLeft, { className: (0, cnfast.cn)("[--spark-icon-size:20px]", orientation === "up" && "rotate-90", orientation === "down" && "-rotate-90") });
48
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(orientation === "right" ? _epilot_spark_icons.ChevronRight : _epilot_spark_icons.ChevronLeft, { className: (0, cn.cn)("[--spark-icon-size:20px]", orientation === "up" && "rotate-90", orientation === "down" && "-rotate-90") });
49
49
  } },
50
50
  fixedWeeks,
51
51
  showOutsideDays,
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.cjs","names":["DayPicker","buttonVariants","ChevronRight","ChevronLeft"],"sources":["../../src/components/calendar.tsx"],"sourcesContent":["import { DayPicker } from '@daypicker/react'\nimport { ChevronLeft, ChevronRight } from '@epilot/spark-icons'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { buttonVariants } from './button'\n\ntype CalendarProps = React.ComponentProps<typeof DayPicker> & {\n showTodayDot?: boolean\n}\n\n// Pass `locale` (from '@daypicker/react/locale') for localized month/weekday\n// names — the library ships no language default.\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n fixedWeeks = true,\n showTodayDot = true,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n className={cn('p-3', className)}\n classNames={{\n months: 'relative',\n month: 'flex flex-col gap-2',\n month_caption: 'flex h-10 items-center justify-center',\n caption_label: 'text-sm font-bold text-gray',\n button_previous: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-0 left-0 z-10 text-gray-light hover:text-gray [[data-high-contrast]_&]:text-gray-a12',\n ),\n button_next: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-0 right-0 z-10 text-gray-light hover:text-gray [[data-high-contrast]_&]:text-gray-a12',\n ),\n month_grid: 'w-full border-collapse',\n weekdays: 'flex w-full justify-between',\n weekday:\n 'mt-0.5 flex h-10 w-10 items-center justify-center rounded-full text-sm font-bold text-gray',\n week: 'mt-1 flex w-full justify-between',\n day: cn(\n 'relative mx-0.5 flex h-10 w-10 items-center justify-center rounded-full p-0 text-center text-sm focus-within:relative focus-within:z-20',\n props.mode === 'range'\n ? '[&:has(>.range-end)]:rounded-r-full [&:has(>.range-start)]:rounded-l-full first:[&:has([aria-selected])]:rounded-l-full last:[&:has([aria-selected])]:rounded-r-full'\n : '[&:has([aria-selected])]:rounded-full',\n ),\n day_button: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n // hover:…:bg-(--spark-style-bg-hover) outranks tertiary's hover:bg-gray-a3 —\n // selected days darken like a solid button instead of washing out gray\n 'size-10 shrink-0 rounded-full p-0 font-normal text-gray in-aria-selected:rounded-full in-aria-selected:bg-(--spark-style-bg,var(--color-primary)) in-aria-selected:text-(--spark-style-fg,var(--color-primary-foreground)) hover:in-aria-selected:bg-(--spark-style-bg-hover,var(--color-primary-hover)) [[data-high-contrast]_[data-outside]:not([data-disabled])_&]:text-gray-a12 [[data-outside]:not([data-disabled])_&]:text-gray-light',\n ),\n range_start: 'range-start',\n range_end: 'range-end',\n selected: 'rounded-full',\n today: cn(\n 'relative bg-base-gray-soft text-gray',\n showTodayDot &&\n 'after:absolute after:right-0 after:-bottom-1 after:left-0 after:m-auto after:inline-flex after:h-1 after:w-1 after:rounded-full after:bg-(--spark-style-bg,var(--color-primary)) after:content-[\"\"]',\n ),\n outside:\n 'outside aria-selected:bg-base-gray-soft aria-selected:text-gray-light',\n disabled: 'text-gray-light opacity-50',\n range_middle: 'aria-selected:bg-base-gray-soft aria-selected:text-gray',\n hidden: 'invisible',\n ...classNames,\n }}\n components={{\n Chevron: ({ orientation }) => {\n const Glyph = orientation === 'right' ? ChevronRight : ChevronLeft\n return (\n <Glyph\n className={cn(\n '[--spark-icon-size:20px]',\n orientation === 'up' && 'rotate-90',\n orientation === 'down' && '-rotate-90',\n )}\n />\n )\n },\n }}\n fixedWeeks={fixedWeeks}\n showOutsideDays={showOutsideDays}\n {...props}\n />\n )\n}\n\nexport { Calendar }\nexport type { CalendarProps }\n"],"mappings":";;;;;;;;;;;AAYA,SAAS,SAAS,EAChB,WACA,YACA,kBAAkB,MAClB,aAAa,MACb,eAAe,MACf,GAAG,SACa;CAChB,OACE,iBAAA,GAAA,kBAAA,KAACA,iBAAAA,WAAD;EACE,YAAA,GAAA,OAAA,IAAc,OAAO,SAAS;EAC9B,YAAY;GACV,QAAQ;GACR,OAAO;GACP,eAAe;GACf,eAAe;GACf,kBAAA,GAAA,OAAA,IACEC,0BAAAA,eAAe;IAAE,MAAM;IAAQ,SAAS;GAAW,CAAC,GACpD,mGACF;GACA,cAAA,GAAA,OAAA,IACEA,0BAAAA,eAAe;IAAE,MAAM;IAAQ,SAAS;GAAW,CAAC,GACpD,oGACF;GACA,YAAY;GACZ,UAAU;GACV,SACE;GACF,MAAM;GACN,MAAA,GAAA,OAAA,IACE,2IACA,MAAM,SAAS,UACX,yKACA,uCACN;GACA,aAAA,GAAA,OAAA,IACEA,0BAAAA,eAAe;IAAE,MAAM;IAAQ,SAAS;GAAW,CAAC,GAGpD,6aACF;GACA,aAAa;GACb,WAAW;GACX,UAAU;GACV,QAAA,GAAA,OAAA,IACE,wCACA,gBACE,uMACJ;GACA,SACE;GACF,UAAU;GACV,cAAc;GACd,QAAQ;GACR,GAAG;EACL;EACA,YAAY,EACV,UAAU,EAAE,kBAAkB;GAE5B,OACE,iBAAA,GAAA,kBAAA,KAFY,gBAAgB,UAAUC,oBAAAA,eAAeC,oBAAAA,aAErD,EACE,YAAA,GAAA,OAAA,IACE,4BACA,gBAAgB,QAAQ,aACxB,gBAAgB,UAAU,YAC5B,EACD,CAAA;EAEL,EACF;EACY;EACK;EACjB,GAAI;CACL,CAAA;AAEL"}
1
+ {"version":3,"file":"calendar.cjs","names":["DayPicker","buttonVariants","ChevronRight","ChevronLeft"],"sources":["../../src/components/calendar.tsx"],"sourcesContent":["import { DayPicker } from '@daypicker/react'\nimport { ChevronLeft, ChevronRight } from '@epilot/spark-icons'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { buttonVariants } from './button'\n\ntype CalendarProps = React.ComponentProps<typeof DayPicker> & {\n showTodayDot?: boolean\n}\n\n// Pass `locale` (from '@daypicker/react/locale') for localized month/weekday\n// names — the library ships no language default.\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n fixedWeeks = true,\n showTodayDot = true,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n className={cn('p-3', className)}\n classNames={{\n months: 'relative',\n month: 'flex flex-col gap-2',\n month_caption: 'flex h-10 items-center justify-center',\n caption_label: 'text-sm font-bold text-gray',\n button_previous: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-0 left-0 z-10 text-gray-light hover:text-gray [[data-high-contrast]_&]:text-gray-a12',\n ),\n button_next: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-0 right-0 z-10 text-gray-light hover:text-gray [[data-high-contrast]_&]:text-gray-a12',\n ),\n month_grid: 'w-full border-collapse',\n weekdays: 'flex w-full justify-between',\n weekday:\n 'mt-0.5 flex h-10 w-10 items-center justify-center rounded-full text-sm font-bold text-gray',\n week: 'mt-1 flex w-full justify-between',\n day: cn(\n 'relative mx-0.5 flex h-10 w-10 items-center justify-center rounded-full p-0 text-center text-sm focus-within:relative focus-within:z-20',\n props.mode === 'range'\n ? '[&:has(>.range-end)]:rounded-r-full [&:has(>.range-start)]:rounded-l-full first:[&:has([aria-selected])]:rounded-l-full last:[&:has([aria-selected])]:rounded-r-full'\n : '[&:has([aria-selected])]:rounded-full',\n ),\n day_button: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n // hover:…:bg-(--spark-style-bg-hover) outranks tertiary's hover:bg-gray-a3 —\n // selected days darken like a solid button instead of washing out gray\n 'size-10 shrink-0 rounded-full p-0 font-normal text-gray in-aria-selected:rounded-full in-aria-selected:bg-(--spark-style-bg,var(--color-primary)) in-aria-selected:text-(--spark-style-fg,var(--color-primary-foreground)) hover:in-aria-selected:bg-(--spark-style-bg-hover,var(--color-primary-hover)) [[data-high-contrast]_[data-outside]:not([data-disabled])_&]:text-gray-a12 [[data-outside]:not([data-disabled])_&]:text-gray-light',\n ),\n range_start: 'range-start',\n range_end: 'range-end',\n selected: 'rounded-full',\n today: cn(\n 'relative bg-base-gray-soft text-gray',\n showTodayDot &&\n 'after:absolute after:right-0 after:-bottom-1 after:left-0 after:m-auto after:inline-flex after:h-1 after:w-1 after:rounded-full after:bg-(--spark-style-bg,var(--color-primary)) after:content-[\"\"]',\n ),\n outside:\n 'outside aria-selected:bg-base-gray-soft aria-selected:text-gray-light',\n disabled: 'text-gray-light opacity-50',\n range_middle: 'aria-selected:bg-base-gray-soft aria-selected:text-gray',\n hidden: 'invisible',\n ...classNames,\n }}\n components={{\n Chevron: ({ orientation }) => {\n const Glyph = orientation === 'right' ? ChevronRight : ChevronLeft\n return (\n <Glyph\n className={cn(\n '[--spark-icon-size:20px]',\n orientation === 'up' && 'rotate-90',\n orientation === 'down' && '-rotate-90',\n )}\n />\n )\n },\n }}\n fixedWeeks={fixedWeeks}\n showOutsideDays={showOutsideDays}\n {...props}\n />\n )\n}\n\nexport { Calendar }\nexport type { CalendarProps }\n"],"mappings":";;;;;;;;;;;AAYA,SAAS,SAAS,EAChB,WACA,YACA,kBAAkB,MAClB,aAAa,MACb,eAAe,MACf,GAAG,SACa;CAChB,OACE,iBAAA,GAAA,kBAAA,KAACA,iBAAAA,WAAD;EACE,YAAA,GAAA,GAAA,IAAc,OAAO,SAAS;EAC9B,YAAY;GACV,QAAQ;GACR,OAAO;GACP,eAAe;GACf,eAAe;GACf,kBAAA,GAAA,GAAA,IACEC,0BAAAA,eAAe;IAAE,MAAM;IAAQ,SAAS;GAAW,CAAC,GACpD,mGACF;GACA,cAAA,GAAA,GAAA,IACEA,0BAAAA,eAAe;IAAE,MAAM;IAAQ,SAAS;GAAW,CAAC,GACpD,oGACF;GACA,YAAY;GACZ,UAAU;GACV,SACE;GACF,MAAM;GACN,MAAA,GAAA,GAAA,IACE,2IACA,MAAM,SAAS,UACX,yKACA,uCACN;GACA,aAAA,GAAA,GAAA,IACEA,0BAAAA,eAAe;IAAE,MAAM;IAAQ,SAAS;GAAW,CAAC,GAGpD,6aACF;GACA,aAAa;GACb,WAAW;GACX,UAAU;GACV,QAAA,GAAA,GAAA,IACE,wCACA,gBACE,uMACJ;GACA,SACE;GACF,UAAU;GACV,cAAc;GACd,QAAQ;GACR,GAAG;EACL;EACA,YAAY,EACV,UAAU,EAAE,kBAAkB;GAE5B,OACE,iBAAA,GAAA,kBAAA,KAFY,gBAAgB,UAAUC,oBAAAA,eAAeC,oBAAAA,aAErD,EACE,YAAA,GAAA,GAAA,IACE,4BACA,gBAAgB,QAAQ,aACxB,gBAAgB,UAAU,YAC5B,EACD,CAAA;EAEL,EACF;EACY;EACK;EACjB,GAAI;CACL,CAAA;AAEL"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { cn } from "../utils/cn.js";
3
3
  import { buttonVariants } from "./button.js";
4
- import { ChevronLeft, ChevronRight } from "@epilot/spark-icons";
5
4
  import "react";
5
+ import { ChevronLeft, ChevronRight } from "@epilot/spark-icons";
6
6
  import { jsx } from "react/jsx-runtime";
7
7
  import { DayPicker } from "@daypicker/react";
8
8
  //#region src/components/calendar.tsx
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const require_chunk = require("../chunk-DY84GLCh.cjs");
4
4
  const require_components_button = require("./button.cjs");
5
- let _epilot_spark_icons = require("@epilot/spark-icons");
6
5
  let react = require("react");
7
6
  react = require_chunk.__toESM(react);
7
+ let _epilot_spark_icons = require("@epilot/spark-icons");
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
9
9
  let class_variance_authority = require("class-variance-authority");
10
- let cnfast = require("cnfast");
10
+ let cn = require("cn");
11
11
  //#region src/components/callout.tsx
12
12
  const calloutVariants = (0, class_variance_authority.cva)("group/callout flex w-full items-start gap-2 rounded-lg px-4 py-3 text-sm transition-colors duration-150 ease-out motion-reduce:transition-none", {
13
13
  variants: { variant: {
@@ -43,12 +43,12 @@ const CALLOUT_ICONS = {
43
43
  };
44
44
  const CalloutTitle = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
45
45
  "data-slot": "callout-title",
46
- className: (0, cnfast.cn)("text-base leading-5 font-semibold", className),
46
+ className: (0, cn.cn)("text-base leading-5 font-semibold", className),
47
47
  ...props
48
48
  });
49
49
  const CalloutDescription = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
50
50
  "data-slot": "callout-description",
51
- className: (0, cnfast.cn)("text-sm", className),
51
+ className: (0, cn.cn)("text-sm", className),
52
52
  ...props
53
53
  });
54
54
  const CalloutVariantContext = react.createContext("info");
@@ -61,7 +61,7 @@ const CALLOUT_ACTION_COLORS = {
61
61
  };
62
62
  const CalloutActions = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
63
63
  "data-slot": "callout-actions",
64
- className: (0, cnfast.cn)("mt-2 flex flex-wrap items-center gap-2 [&_[data-slot=callout-action]]:mt-0", className),
64
+ className: (0, cn.cn)("mt-2 flex flex-wrap items-center gap-2 [&_[data-slot=callout-action]]:mt-0", className),
65
65
  ...props
66
66
  });
67
67
  const CalloutAction = ({ className, align = "start", primary = false, ...props }) => {
@@ -71,7 +71,7 @@ const CalloutAction = ({ className, align = "start", primary = false, ...props }
71
71
  size: "small",
72
72
  styleVariant: primary ? "solid" : "surface",
73
73
  color: primary ? "primary" : "neutral",
74
- className: (0, cnfast.cn)("mt-2 w-fit", {
74
+ className: (0, cn.cn)("mt-2 w-fit", {
75
75
  "self-start": align === "start",
76
76
  "self-end": align === "end"
77
77
  }, !primary && CALLOUT_ACTION_COLORS[calloutVariant], className),
@@ -85,9 +85,9 @@ const Callout = ({ variant = "info", icon, className, children, ...props }) => {
85
85
  value: variant ?? "info",
86
86
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
87
87
  "data-slot": "callout",
88
- className: (0, cnfast.cn)(calloutVariants({ variant }), className),
88
+ className: (0, cn.cn)(calloutVariants({ variant }), className),
89
89
  ...props,
90
- children: [Glyph ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Glyph, { className: (0, cnfast.cn)("[--spark-icon-size:calc(20px*var(--spark-scaling,1))]", variantIcon.className) }) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
90
+ children: [Glyph ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Glyph, { className: (0, cn.cn)("[--spark-icon-size:calc(20px*var(--spark-scaling,1))]", variantIcon.className) }) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
91
91
  className: "flex w-full min-w-0 flex-col gap-1",
92
92
  children
93
93
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"callout.cjs","names":["Cancel","CheckCircle","Warning","Info","React","Button"],"sources":["../../src/components/callout.tsx"],"sourcesContent":["import {\n Cancel,\n CheckCircle,\n Info,\n Warning,\n type SparkIcon,\n} from '@epilot/spark-icons'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { Button, type ButtonProps } from './button'\n\ntype CalloutVariant = 'error' | 'info' | 'neutral' | 'success' | 'warning'\n\nconst calloutVariants = cva(\n 'group/callout flex w-full items-start gap-2 rounded-lg px-4 py-3 text-sm transition-colors duration-150 ease-out motion-reduce:transition-none',\n {\n variants: {\n variant: {\n error: 'bg-error-soft text-error-soft-foreground',\n success: 'bg-success-soft text-success-soft-foreground',\n warning: 'bg-warning-soft text-warning-soft-foreground',\n info: 'bg-base-info-soft text-info',\n neutral: 'bg-base-gray-soft text-gray',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n },\n)\n\nconst CALLOUT_ICONS: Record<\n CalloutVariant,\n { icon: SparkIcon; className: string }\n> = {\n error: { icon: Cancel, className: 'text-error-soft-foreground' },\n success: { icon: CheckCircle, className: 'text-success-soft-foreground' },\n warning: { icon: Warning, className: 'text-warning-soft-foreground' },\n info: { icon: Info, className: 'text-info-light' },\n neutral: { icon: Info, className: 'text-gray-light' },\n}\n\ninterface CalloutProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof calloutVariants> {\n /** Overrides the variant's default icon; the variant's color is kept. `false` renders no icon. */\n icon?: SparkIcon | false\n}\n\nconst CalloutTitle = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => (\n <span\n data-slot=\"callout-title\"\n className={cn('text-base leading-5 font-semibold', className)}\n {...props}\n />\n)\n\nconst CalloutDescription = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) => (\n <p\n data-slot=\"callout-description\"\n className={cn('text-sm', className)}\n {...props}\n />\n)\n\nconst CalloutVariantContext = React.createContext<CalloutVariant>('info')\n\nconst CALLOUT_ACTION_COLORS: Record<CalloutVariant, string> = {\n error:\n 'bg-error-soft text-error-soft-foreground hover:bg-error-soft-hover focus-visible:bg-error-soft-hover',\n success:\n 'bg-success-soft text-success-soft-foreground hover:bg-success-soft-hover focus-visible:bg-success-soft-hover',\n warning:\n 'bg-warning-soft text-warning-soft-foreground hover:bg-warning-soft-hover focus-visible:bg-warning-soft-hover',\n info: 'bg-base-info-soft text-info hover:bg-blue-a4 focus-visible:bg-blue-a4',\n neutral:\n 'bg-base-gray-soft text-gray hover:bg-gray-a4 focus-visible:bg-gray-a4',\n}\n\nconst CalloutActions = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"callout-actions\"\n className={cn(\n 'mt-2 flex flex-wrap items-center gap-2 [&_[data-slot=callout-action]]:mt-0',\n className,\n )}\n {...props}\n />\n)\n\ntype CalloutActionType = Omit<ButtonProps, 'styleVariant' | 'color'> & {\n align?: 'start' | 'end'\n primary?: boolean\n}\n\nconst CalloutAction = ({\n className,\n align = 'start',\n primary = false,\n ...props\n}: CalloutActionType) => {\n const calloutVariant = React.useContext(CalloutVariantContext)\n\n return (\n <Button\n data-slot=\"callout-action\"\n size=\"small\"\n styleVariant={primary ? 'solid' : 'surface'}\n color={primary ? 'primary' : 'neutral'}\n className={cn(\n 'mt-2 w-fit',\n { 'self-start': align === 'start', 'self-end': align === 'end' },\n !primary && CALLOUT_ACTION_COLORS[calloutVariant],\n className,\n )}\n {...props}\n />\n )\n}\n\nconst Callout = ({\n variant = 'info',\n icon,\n className,\n children,\n ...props\n}: CalloutProps) => {\n const variantIcon = CALLOUT_ICONS[variant ?? 'info']\n const Glyph = icon === false ? null : (icon ?? variantIcon.icon)\n\n return (\n <CalloutVariantContext.Provider value={variant ?? 'info'}>\n <div\n data-slot=\"callout\"\n className={cn(calloutVariants({ variant }), className)}\n {...props}\n >\n {Glyph ? (\n <Glyph\n className={cn(\n '[--spark-icon-size:calc(20px*var(--spark-scaling,1))]',\n variantIcon.className,\n )}\n />\n ) : null}\n <div className=\"flex w-full min-w-0 flex-col gap-1\">{children}</div>\n </div>\n </CalloutVariantContext.Provider>\n )\n}\n\nexport {\n Callout,\n CalloutAction,\n CalloutActions,\n CalloutDescription,\n CalloutTitle,\n calloutVariants,\n}\nexport type { CalloutProps, CalloutVariant }\n"],"mappings":";;;;;;;;;;;AAcA,MAAM,mBAAA,GAAA,yBAAA,KACJ,kJACA;CACE,UAAU,EACR,SAAS;EACP,OAAO;EACP,SAAS;EACT,SAAS;EACT,MAAM;EACN,SAAS;CACX,EACF;CACA,iBAAiB,EACf,SAAS,OACX;AACF,CACF;AAEA,MAAM,gBAGF;CACF,OAAO;EAAE,MAAMA,oBAAAA;EAAQ,WAAW;CAA6B;CAC/D,SAAS;EAAE,MAAMC,oBAAAA;EAAa,WAAW;CAA+B;CACxE,SAAS;EAAE,MAAMC,oBAAAA;EAAS,WAAW;CAA+B;CACpE,MAAM;EAAE,MAAMC,oBAAAA;EAAM,WAAW;CAAkB;CACjD,SAAS;EAAE,MAAMA,oBAAAA;EAAM,WAAW;CAAkB;AACtD;AAUA,MAAM,gBAAgB,EACpB,WACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,KAAC,QAAD;CACE,aAAU;CACV,YAAA,GAAA,OAAA,IAAc,qCAAqC,SAAS;CAC5D,GAAI;AACL,CAAA;AAGH,MAAM,sBAAsB,EAC1B,WACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,KAAC,KAAD;CACE,aAAU;CACV,YAAA,GAAA,OAAA,IAAc,WAAW,SAAS;CAClC,GAAI;AACL,CAAA;AAGH,MAAM,wBAAwBC,MAAM,cAA8B,MAAM;AAExE,MAAM,wBAAwD;CAC5D,OACE;CACF,SACE;CACF,SACE;CACF,MAAM;CACN,SACE;AACJ;AAEA,MAAM,kBAAkB,EACtB,WACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,KAAC,OAAD;CACE,aAAU;CACV,YAAA,GAAA,OAAA,IACE,8EACA,SACF;CACA,GAAI;AACL,CAAA;AAQH,MAAM,iBAAiB,EACrB,WACA,QAAQ,SACR,UAAU,OACV,GAAG,YACoB;CACvB,MAAM,iBAAiBA,MAAM,WAAW,qBAAqB;CAE7D,OACE,iBAAA,GAAA,kBAAA,KAACC,0BAAAA,QAAD;EACE,aAAU;EACV,MAAK;EACL,cAAc,UAAU,UAAU;EAClC,OAAO,UAAU,YAAY;EAC7B,YAAA,GAAA,OAAA,IACE,cACA;GAAE,cAAc,UAAU;GAAS,YAAY,UAAU;EAAM,GAC/D,CAAC,WAAW,sBAAsB,iBAClC,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,MAAM,WAAW,EACf,UAAU,QACV,MACA,WACA,UACA,GAAG,YACe;CAClB,MAAM,cAAc,cAAc,WAAW;CAC7C,MAAM,QAAQ,SAAS,QAAQ,OAAQ,QAAQ,YAAY;CAE3D,OACE,iBAAA,GAAA,kBAAA,KAAC,sBAAsB,UAAvB;EAAgC,OAAO,WAAW;YAChD,iBAAA,GAAA,kBAAA,MAAC,OAAD;GACE,aAAU;GACV,YAAA,GAAA,OAAA,IAAc,gBAAgB,EAAE,QAAQ,CAAC,GAAG,SAAS;GACrD,GAAI;aAHN,CAKG,QACC,iBAAA,GAAA,kBAAA,KAAC,OAAD,EACE,YAAA,GAAA,OAAA,IACE,yDACA,YAAY,SACd,EACD,CAAA,IACC,MACJ,iBAAA,GAAA,kBAAA,KAAC,OAAD;IAAK,WAAU;IAAsC;GAAc,CAAA,CAChE;;CACyB,CAAA;AAEpC"}
1
+ {"version":3,"file":"callout.cjs","names":["Cancel","CheckCircle","Warning","Info","React","Button"],"sources":["../../src/components/callout.tsx"],"sourcesContent":["import {\n Cancel,\n CheckCircle,\n Info,\n Warning,\n type SparkIcon,\n} from '@epilot/spark-icons'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { Button, type ButtonProps } from './button'\n\ntype CalloutVariant = 'error' | 'info' | 'neutral' | 'success' | 'warning'\n\nconst calloutVariants = cva(\n 'group/callout flex w-full items-start gap-2 rounded-lg px-4 py-3 text-sm transition-colors duration-150 ease-out motion-reduce:transition-none',\n {\n variants: {\n variant: {\n error: 'bg-error-soft text-error-soft-foreground',\n success: 'bg-success-soft text-success-soft-foreground',\n warning: 'bg-warning-soft text-warning-soft-foreground',\n info: 'bg-base-info-soft text-info',\n neutral: 'bg-base-gray-soft text-gray',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n },\n)\n\nconst CALLOUT_ICONS: Record<\n CalloutVariant,\n { icon: SparkIcon; className: string }\n> = {\n error: { icon: Cancel, className: 'text-error-soft-foreground' },\n success: { icon: CheckCircle, className: 'text-success-soft-foreground' },\n warning: { icon: Warning, className: 'text-warning-soft-foreground' },\n info: { icon: Info, className: 'text-info-light' },\n neutral: { icon: Info, className: 'text-gray-light' },\n}\n\ninterface CalloutProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof calloutVariants> {\n /** Overrides the variant's default icon; the variant's color is kept. `false` renders no icon. */\n icon?: SparkIcon | false\n}\n\nconst CalloutTitle = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => (\n <span\n data-slot=\"callout-title\"\n className={cn('text-base leading-5 font-semibold', className)}\n {...props}\n />\n)\n\nconst CalloutDescription = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) => (\n <p\n data-slot=\"callout-description\"\n className={cn('text-sm', className)}\n {...props}\n />\n)\n\nconst CalloutVariantContext = React.createContext<CalloutVariant>('info')\n\nconst CALLOUT_ACTION_COLORS: Record<CalloutVariant, string> = {\n error:\n 'bg-error-soft text-error-soft-foreground hover:bg-error-soft-hover focus-visible:bg-error-soft-hover',\n success:\n 'bg-success-soft text-success-soft-foreground hover:bg-success-soft-hover focus-visible:bg-success-soft-hover',\n warning:\n 'bg-warning-soft text-warning-soft-foreground hover:bg-warning-soft-hover focus-visible:bg-warning-soft-hover',\n info: 'bg-base-info-soft text-info hover:bg-blue-a4 focus-visible:bg-blue-a4',\n neutral:\n 'bg-base-gray-soft text-gray hover:bg-gray-a4 focus-visible:bg-gray-a4',\n}\n\nconst CalloutActions = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"callout-actions\"\n className={cn(\n 'mt-2 flex flex-wrap items-center gap-2 [&_[data-slot=callout-action]]:mt-0',\n className,\n )}\n {...props}\n />\n)\n\ntype CalloutActionType = Omit<ButtonProps, 'styleVariant' | 'color'> & {\n align?: 'start' | 'end'\n primary?: boolean\n}\n\nconst CalloutAction = ({\n className,\n align = 'start',\n primary = false,\n ...props\n}: CalloutActionType) => {\n const calloutVariant = React.useContext(CalloutVariantContext)\n\n return (\n <Button\n data-slot=\"callout-action\"\n size=\"small\"\n styleVariant={primary ? 'solid' : 'surface'}\n color={primary ? 'primary' : 'neutral'}\n className={cn(\n 'mt-2 w-fit',\n { 'self-start': align === 'start', 'self-end': align === 'end' },\n !primary && CALLOUT_ACTION_COLORS[calloutVariant],\n className,\n )}\n {...props}\n />\n )\n}\n\nconst Callout = ({\n variant = 'info',\n icon,\n className,\n children,\n ...props\n}: CalloutProps) => {\n const variantIcon = CALLOUT_ICONS[variant ?? 'info']\n const Glyph = icon === false ? null : (icon ?? variantIcon.icon)\n\n return (\n <CalloutVariantContext.Provider value={variant ?? 'info'}>\n <div\n data-slot=\"callout\"\n className={cn(calloutVariants({ variant }), className)}\n {...props}\n >\n {Glyph ? (\n <Glyph\n className={cn(\n '[--spark-icon-size:calc(20px*var(--spark-scaling,1))]',\n variantIcon.className,\n )}\n />\n ) : null}\n <div className=\"flex w-full min-w-0 flex-col gap-1\">{children}</div>\n </div>\n </CalloutVariantContext.Provider>\n )\n}\n\nexport {\n Callout,\n CalloutAction,\n CalloutActions,\n CalloutDescription,\n CalloutTitle,\n calloutVariants,\n}\nexport type { CalloutProps, CalloutVariant }\n"],"mappings":";;;;;;;;;;;AAcA,MAAM,mBAAA,GAAA,yBAAA,KACJ,kJACA;CACE,UAAU,EACR,SAAS;EACP,OAAO;EACP,SAAS;EACT,SAAS;EACT,MAAM;EACN,SAAS;CACX,EACF;CACA,iBAAiB,EACf,SAAS,OACX;AACF,CACF;AAEA,MAAM,gBAGF;CACF,OAAO;EAAE,MAAMA,oBAAAA;EAAQ,WAAW;CAA6B;CAC/D,SAAS;EAAE,MAAMC,oBAAAA;EAAa,WAAW;CAA+B;CACxE,SAAS;EAAE,MAAMC,oBAAAA;EAAS,WAAW;CAA+B;CACpE,MAAM;EAAE,MAAMC,oBAAAA;EAAM,WAAW;CAAkB;CACjD,SAAS;EAAE,MAAMA,oBAAAA;EAAM,WAAW;CAAkB;AACtD;AAUA,MAAM,gBAAgB,EACpB,WACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,KAAC,QAAD;CACE,aAAU;CACV,YAAA,GAAA,GAAA,IAAc,qCAAqC,SAAS;CAC5D,GAAI;AACL,CAAA;AAGH,MAAM,sBAAsB,EAC1B,WACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,KAAC,KAAD;CACE,aAAU;CACV,YAAA,GAAA,GAAA,IAAc,WAAW,SAAS;CAClC,GAAI;AACL,CAAA;AAGH,MAAM,wBAAwBC,MAAM,cAA8B,MAAM;AAExE,MAAM,wBAAwD;CAC5D,OACE;CACF,SACE;CACF,SACE;CACF,MAAM;CACN,SACE;AACJ;AAEA,MAAM,kBAAkB,EACtB,WACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,KAAC,OAAD;CACE,aAAU;CACV,YAAA,GAAA,GAAA,IACE,8EACA,SACF;CACA,GAAI;AACL,CAAA;AAQH,MAAM,iBAAiB,EACrB,WACA,QAAQ,SACR,UAAU,OACV,GAAG,YACoB;CACvB,MAAM,iBAAiBA,MAAM,WAAW,qBAAqB;CAE7D,OACE,iBAAA,GAAA,kBAAA,KAACC,0BAAAA,QAAD;EACE,aAAU;EACV,MAAK;EACL,cAAc,UAAU,UAAU;EAClC,OAAO,UAAU,YAAY;EAC7B,YAAA,GAAA,GAAA,IACE,cACA;GAAE,cAAc,UAAU;GAAS,YAAY,UAAU;EAAM,GAC/D,CAAC,WAAW,sBAAsB,iBAClC,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,MAAM,WAAW,EACf,UAAU,QACV,MACA,WACA,UACA,GAAG,YACe;CAClB,MAAM,cAAc,cAAc,WAAW;CAC7C,MAAM,QAAQ,SAAS,QAAQ,OAAQ,QAAQ,YAAY;CAE3D,OACE,iBAAA,GAAA,kBAAA,KAAC,sBAAsB,UAAvB;EAAgC,OAAO,WAAW;YAChD,iBAAA,GAAA,kBAAA,MAAC,OAAD;GACE,aAAU;GACV,YAAA,GAAA,GAAA,IAAc,gBAAgB,EAAE,QAAQ,CAAC,GAAG,SAAS;GACrD,GAAI;aAHN,CAKG,QACC,iBAAA,GAAA,kBAAA,KAAC,OAAD,EACE,YAAA,GAAA,GAAA,IACE,yDACA,YAAY,SACd,EACD,CAAA,IACC,MACJ,iBAAA,GAAA,kBAAA,KAAC,OAAD;IAAK,WAAU;IAAsC;GAAc,CAAA,CAChE;;CACyB,CAAA;AAEpC"}
@@ -8,7 +8,7 @@ import { SparkIcon } from "@epilot/spark-icons";
8
8
  //#region src/components/callout.d.ts
9
9
  type CalloutVariant = 'error' | 'info' | 'neutral' | 'success' | 'warning';
10
10
  declare const calloutVariants: (props?: ({
11
- variant?: "neutral" | "success" | "warning" | "error" | "info" | null | undefined;
11
+ variant?: "error" | "success" | "warning" | "info" | "neutral" | null | undefined;
12
12
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
13
13
  interface CalloutProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof calloutVariants> {
14
14
  /** Overrides the variant's default icon; the variant's color is kept. `false` renders no icon. */
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
 
3
3
  import { ButtonProps } from "./button.js";
4
- import { SparkIcon } from "@epilot/spark-icons";
5
4
  import * as React$1 from "react";
5
+ import { SparkIcon } from "@epilot/spark-icons";
6
6
  import { VariantProps } from "class-variance-authority";
7
7
 
8
8
  //#region src/components/callout.d.ts
9
9
  type CalloutVariant = 'error' | 'info' | 'neutral' | 'success' | 'warning';
10
10
  declare const calloutVariants: (props?: ({
11
- variant?: "neutral" | "success" | "warning" | "error" | "info" | null | undefined;
11
+ variant?: "error" | "success" | "warning" | "info" | "neutral" | null | undefined;
12
12
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
13
13
  interface CalloutProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof calloutVariants> {
14
14
  /** Overrides the variant's default icon; the variant's color is kept. `false` renders no icon. */
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { cn } from "../utils/cn.js";
3
3
  import { Button } from "./button.js";
4
- import { Cancel, CheckCircle, Info, Warning } from "@epilot/spark-icons";
5
4
  import * as React$1 from "react";
5
+ import { Cancel, CheckCircle, Info, Warning } from "@epilot/spark-icons";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import { cva } from "class-variance-authority";
8
8
  //#region src/components/callout.tsx