@jcsoftdev/ui 0.1.6 → 0.2.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 (1210) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/README.md +28 -7
  3. package/THIRD_PARTY_NOTICES.md +66 -0
  4. package/dist/ai/attachment/attachment.d.ts +5 -1
  5. package/dist/ai/attachment/attachment.js +18 -7
  6. package/dist/ai/chain-of-thought/chain-of-thought.d.ts +5 -1
  7. package/dist/ai/chain-of-thought/chain-of-thought.js +61 -39
  8. package/dist/ai/chat-list/chat-list.d.ts +5 -1
  9. package/dist/ai/chat-list/chat-list.js +98 -59
  10. package/dist/ai/chat-message/chat-message.d.ts +5 -1
  11. package/dist/ai/chat-message/chat-message.js +31 -11
  12. package/dist/ai/code-block/code-block.d.ts +5 -1
  13. package/dist/ai/code-block/code-block.js +37 -19
  14. package/dist/ai/conversation/conversation.d.ts +5 -1
  15. package/dist/ai/conversation/conversation.js +23 -5
  16. package/dist/ai/internal/disclosure.d.ts +3 -1
  17. package/dist/ai/internal/disclosure.js +7 -3
  18. package/dist/ai/loader/loader.d.ts +5 -1
  19. package/dist/ai/loader/loader.js +6 -4
  20. package/dist/ai/markdown/markdown.d.ts +5 -1
  21. package/dist/ai/markdown/markdown.js +86 -56
  22. package/dist/ai/message-actions/message-actions.js +1 -1
  23. package/dist/ai/prompt-input/prompt-input.d.ts +5 -1
  24. package/dist/ai/prompt-input/prompt-input.js +73 -41
  25. package/dist/ai/source/source.d.ts +5 -1
  26. package/dist/ai/source/source.js +35 -8
  27. package/dist/ai/tool-call/tool-call.d.ts +5 -1
  28. package/dist/ai/tool-call/tool-call.js +43 -21
  29. package/dist/atoms/avatar/avatar.d.ts +7 -3
  30. package/dist/atoms/avatar/avatar.js +54 -7
  31. package/dist/atoms/avatar/index.d.ts +1 -1
  32. package/dist/atoms/avatar-group/avatar-group.d.ts +3 -6
  33. package/dist/atoms/avatar-group/avatar-group.js +8 -2
  34. package/dist/atoms/big-date/big-date.js +2 -2
  35. package/dist/atoms/button/button.d.ts +19 -1
  36. package/dist/atoms/button/button.js +26 -14
  37. package/dist/atoms/button/index.d.ts +1 -1
  38. package/dist/atoms/button/index.js +8 -2
  39. package/dist/atoms/checkbox/checkbox.d.ts +16 -4
  40. package/dist/atoms/checkbox/checkbox.js +103 -15
  41. package/dist/atoms/checkbox/index.d.ts +1 -1
  42. package/dist/atoms/chip/chip.d.ts +2 -0
  43. package/dist/atoms/chip/chip.js +5 -4
  44. package/dist/atoms/chip/index.d.ts +1 -1
  45. package/dist/atoms/chip/index.js +3 -2
  46. package/dist/atoms/icon/icon-map.d.ts +39 -39
  47. package/dist/atoms/icon/icon-map.js +1 -1
  48. package/dist/atoms/icon/icon.d.ts +5 -6
  49. package/dist/atoms/icon/icon.js +3 -3
  50. package/dist/atoms/internal/status-icons.js +1 -1
  51. package/dist/atoms/led/index.d.ts +1 -1
  52. package/dist/atoms/led/led.d.ts +7 -3
  53. package/dist/atoms/led/led.js +25 -11
  54. package/dist/atoms/progress/index.d.ts +1 -1
  55. package/dist/atoms/progress/progress.d.ts +8 -3
  56. package/dist/atoms/progress/progress.js +38 -10
  57. package/dist/atoms/radio-group/index.d.ts +1 -1
  58. package/dist/atoms/radio-group/radio-group-primitive.d.ts +24 -0
  59. package/dist/atoms/radio-group/radio-group-primitive.js +156 -0
  60. package/dist/atoms/radio-group/radio-group.d.ts +8 -4
  61. package/dist/atoms/radio-group/radio-group.js +34 -11
  62. package/dist/atoms/status-dot/index.d.ts +1 -1
  63. package/dist/atoms/status-dot/status-dot.d.ts +7 -3
  64. package/dist/atoms/status-dot/status-dot.js +26 -16
  65. package/dist/atoms/status-pill/index.d.ts +1 -1
  66. package/dist/atoms/status-pill/status-pill.d.ts +7 -3
  67. package/dist/atoms/status-pill/status-pill.js +13 -4
  68. package/dist/atoms/switch/index.d.ts +1 -1
  69. package/dist/atoms/switch/switch.d.ts +15 -4
  70. package/dist/atoms/switch/switch.js +90 -14
  71. package/dist/atoms/trend-chip/index.d.ts +1 -1
  72. package/dist/atoms/trend-chip/trend-chip.d.ts +5 -1
  73. package/dist/atoms/trend-chip/trend-chip.js +13 -4
  74. package/dist/brand/logo-forge.js +1 -1
  75. package/dist/calendar/day-chip/day-chip.d.ts +9 -2
  76. package/dist/calendar/day-chip/day-chip.js +9 -6
  77. package/dist/calendar/day-chip/index.d.ts +1 -1
  78. package/dist/calendar/day-chip/index.js +3 -2
  79. package/dist/calendar/event-block/event-block.d.ts +10 -3
  80. package/dist/calendar/event-block/event-block.js +23 -10
  81. package/dist/calendar/event-block/index.d.ts +1 -1
  82. package/dist/calendar/event-block/index.js +6 -2
  83. package/dist/calendar/month-view/index.d.ts +1 -1
  84. package/dist/calendar/month-view/month-view.d.ts +5 -1
  85. package/dist/calendar/month-view/month-view.js +56 -30
  86. package/dist/calendar/timeline-view/index.d.ts +1 -1
  87. package/dist/calendar/timeline-view/timeline-view.d.ts +5 -1
  88. package/dist/calendar/timeline-view/timeline-view.js +21 -7
  89. package/dist/calendar/week-view/index.d.ts +1 -1
  90. package/dist/calendar/week-view/week-view.d.ts +5 -1
  91. package/dist/calendar/week-view/week-view.js +144 -113
  92. package/dist/charts/bar-chart/bar-race-chart.js +4 -4
  93. package/dist/charts/bubble-map/bubble-map.js +1 -1
  94. package/dist/charts/bullet-chart/bullet-chart.js +2 -2
  95. package/dist/charts/candlestick-chart/candlestick-chart.js +3 -3
  96. package/dist/charts/chart-grid/chart-grid.js +2 -2
  97. package/dist/charts/chord-chart/chord-chart.js +1 -1
  98. package/dist/charts/choropleth-map/choropleth-map.js +1 -1
  99. package/dist/charts/core/axes.js +3 -3
  100. package/dist/charts/core/breadcrumb.js +1 -1
  101. package/dist/charts/core/cartesian/annotations.js +3 -3
  102. package/dist/charts/core/cartesian/cartesian-chart.js +1 -1
  103. package/dist/charts/core/cartesian/category-group-axis.js +1 -1
  104. package/dist/charts/core/cartesian/ink-layer.js +1 -1
  105. package/dist/charts/core/cartesian/marks.js +1 -1
  106. package/dist/charts/core/chart-states.js +2 -2
  107. package/dist/charts/core/distribution/layout.js +1 -1
  108. package/dist/charts/core/distribution/marks.js +2 -2
  109. package/dist/charts/core/distribution/xy-points.js +4 -4
  110. package/dist/charts/core/export-menu.js +1 -1
  111. package/dist/charts/core/legend.js +2 -2
  112. package/dist/charts/core/tooltip.js +3 -3
  113. package/dist/charts/crossfilter/crossfilter.js +4 -4
  114. package/dist/charts/donut-chart/donut-chart.js +1 -1
  115. package/dist/charts/dumbbell-chart/dumbbell-chart.js +5 -5
  116. package/dist/charts/fill-gauge-chart/fill-gauge-chart.js +1 -1
  117. package/dist/charts/funnel-chart/funnel-chart.js +6 -6
  118. package/dist/charts/gantt-chart/gantt-chart.js +7 -7
  119. package/dist/charts/gantt-chart/gantt-marks.js +5 -5
  120. package/dist/charts/gauge-chart/gauge-chart.js +4 -4
  121. package/dist/charts/globe-chart/globe-chart.js +1 -1
  122. package/dist/charts/heatmap-chart/heatmap-grid.js +7 -7
  123. package/dist/charts/hierarchy-morph/hierarchy-morph.js +3 -3
  124. package/dist/charts/histogram/histogram.js +1 -1
  125. package/dist/charts/icicle-chart/icicle-chart.js +2 -2
  126. package/dist/charts/isotype-rows/isotype-rows.js +3 -3
  127. package/dist/charts/lollipop-chart/lollipop-chart.js +1 -1
  128. package/dist/charts/maps/geo/map-data-table.js +3 -3
  129. package/dist/charts/maps/geo/map-legend.js +5 -5
  130. package/dist/charts/maps/geo/map-viewport.js +1 -1
  131. package/dist/charts/parliament-chart/parliament-chart.js +2 -2
  132. package/dist/charts/pictogram-chart/pictogram-chart.js +1 -1
  133. package/dist/charts/polar-area-chart/polar-area-chart.js +2 -2
  134. package/dist/charts/progress-units/progress-units.js +1 -1
  135. package/dist/charts/radar-chart/radar-chart.js +1 -1
  136. package/dist/charts/radial-bar-chart/radial-bar-chart.js +1 -1
  137. package/dist/charts/sankey-chart/sankey-chart.js +5 -5
  138. package/dist/charts/slope-chart/slope-chart.js +1 -1
  139. package/dist/charts/sparkline/sparkline.js +1 -1
  140. package/dist/charts/stock-chart/stock-chart.js +1 -1
  141. package/dist/charts/stock-chart/stock-drawing-layer.js +4 -4
  142. package/dist/charts/stock-chart/stock-plot.js +3 -3
  143. package/dist/charts/stream-graph/stream-graph.js +1 -1
  144. package/dist/charts/sunburst-chart/sunburst-chart.js +1 -1
  145. package/dist/charts/timeline-chart/timeline-chart.js +3 -3
  146. package/dist/charts/tree-chart/tree-card.js +6 -6
  147. package/dist/charts/tree-chart/tree-chart.js +5 -5
  148. package/dist/charts/treemap-chart/treemap-chart.js +3 -3
  149. package/dist/charts/waterfall-chart/waterfall-chart.js +2 -2
  150. package/dist/containers/action-bar/action-bar.d.ts +5 -1
  151. package/dist/containers/action-bar/action-bar.js +26 -8
  152. package/dist/containers/action-bar/index.d.ts +1 -1
  153. package/dist/containers/banner/banner.d.ts +5 -1
  154. package/dist/containers/banner/banner.js +20 -5
  155. package/dist/containers/card/card.js +1 -1
  156. package/dist/containers/carousel/carousel.d.ts +6 -2
  157. package/dist/containers/carousel/carousel.js +38 -20
  158. package/dist/containers/carousel/index.d.ts +1 -1
  159. package/dist/containers/comment/comment.js +1 -1
  160. package/dist/containers/confirm-action/confirm-action.d.ts +5 -1
  161. package/dist/containers/confirm-action/confirm-action.js +30 -9
  162. package/dist/containers/data-grid/chart-panel.js +4 -4
  163. package/dist/containers/data-grid/column-menu.js +12 -12
  164. package/dist/containers/data-grid/data-grid.demos.js +13 -13
  165. package/dist/containers/data-grid/data-grid.js +37 -37
  166. package/dist/containers/data-grid/data-grid.samples.js +1 -1
  167. package/dist/containers/data-grid/filter-builder-editor.js +6 -6
  168. package/dist/containers/data-grid/formula-bar.js +4 -4
  169. package/dist/containers/data-grid/grid-toolbar.js +6 -6
  170. package/dist/containers/data-grid/spreadsheet.demos.d.ts +1 -1
  171. package/dist/containers/data-grid/spreadsheet.demos.js +1 -1
  172. package/dist/containers/data-grid/tool-panel.js +11 -11
  173. package/dist/containers/description-list/description-list.js +1 -1
  174. package/dist/containers/facts/facts.js +2 -2
  175. package/dist/containers/file-tree/file-tree.d.ts +5 -1
  176. package/dist/containers/file-tree/file-tree.js +81 -57
  177. package/dist/containers/file-tree/index.d.ts +1 -1
  178. package/dist/containers/generic-row/generic-row.js +3 -3
  179. package/dist/containers/hbars/hbars.js +5 -5
  180. package/dist/containers/item-card-group/index.d.ts +1 -1
  181. package/dist/containers/item-card-group/item-card-group.d.ts +5 -1
  182. package/dist/containers/item-card-group/item-card-group.js +88 -43
  183. package/dist/containers/kanban/index.d.ts +1 -1
  184. package/dist/containers/kanban/kanban.d.ts +5 -1
  185. package/dist/containers/kanban/kanban.js +74 -23
  186. package/dist/containers/kpi/kpi.d.ts +7 -4
  187. package/dist/containers/kpi/kpi.js +21 -7
  188. package/dist/containers/kpi-group/index.d.ts +1 -1
  189. package/dist/containers/kpi-group/kpi-group.d.ts +5 -1
  190. package/dist/containers/kpi-group/kpi-group.js +55 -27
  191. package/dist/containers/page-header/page-header.js +2 -2
  192. package/dist/containers/responsive-list/responsive-list.d.ts +5 -1
  193. package/dist/containers/responsive-list/responsive-list.js +83 -37
  194. package/dist/containers/settings-layout/settings-layout.js +1 -1
  195. package/dist/containers/settings-row/settings-row.d.ts +5 -1
  196. package/dist/containers/settings-row/settings-row.js +7 -5
  197. package/dist/containers/table/table.js +5 -5
  198. package/dist/containers/timeline/index.d.ts +1 -1
  199. package/dist/containers/timeline/timeline.d.ts +5 -1
  200. package/dist/containers/timeline/timeline.js +65 -14
  201. package/dist/dashboards/layout.js +2 -2
  202. package/dist/forms/accent-picker/accent-picker.d.ts +7 -4
  203. package/dist/forms/accent-picker/accent-picker.js +13 -6
  204. package/dist/forms/accent-picker/index.d.ts +1 -1
  205. package/dist/forms/checkbox-button-group/checkbox-button-group.d.ts +6 -2
  206. package/dist/forms/checkbox-button-group/checkbox-button-group.js +12 -2
  207. package/dist/forms/checkbox-button-group/index.d.ts +1 -1
  208. package/dist/forms/dropzone/dropzone.d.ts +5 -1
  209. package/dist/forms/dropzone/dropzone.js +26 -6
  210. package/dist/forms/dropzone/index.d.ts +1 -1
  211. package/dist/forms/emoji-picker/emoji-picker.d.ts +5 -1
  212. package/dist/forms/emoji-picker/emoji-picker.js +55 -24
  213. package/dist/forms/emoji-picker/index.d.ts +1 -1
  214. package/dist/forms/emoji-reaction-button/emoji-reaction-button.d.ts +9 -2
  215. package/dist/forms/emoji-reaction-button/emoji-reaction-button.js +24 -10
  216. package/dist/forms/emoji-reaction-button/index.d.ts +1 -1
  217. package/dist/forms/field/field.d.ts +7 -4
  218. package/dist/forms/field/field.js +31 -8
  219. package/dist/forms/field/index.d.ts +1 -1
  220. package/dist/forms/inline-select/inline-select.js +1 -1
  221. package/dist/forms/input-icon/index.d.ts +1 -1
  222. package/dist/forms/input-icon/input-icon.d.ts +6 -2
  223. package/dist/forms/input-icon/input-icon.js +7 -4
  224. package/dist/forms/internal/button-option.d.ts +4 -1
  225. package/dist/forms/internal/button-option.js +13 -5
  226. package/dist/forms/native-select/index.d.ts +1 -1
  227. package/dist/forms/native-select/native-select.d.ts +5 -1
  228. package/dist/forms/native-select/native-select.js +8 -3
  229. package/dist/forms/number-stepper/index.d.ts +1 -1
  230. package/dist/forms/number-stepper/index.js +3 -1
  231. package/dist/forms/number-stepper/number-stepper.d.ts +5 -1
  232. package/dist/forms/number-stepper/number-stepper.js +17 -5
  233. package/dist/forms/pin-input/index.d.ts +1 -1
  234. package/dist/forms/pin-input/pin-input.d.ts +5 -1
  235. package/dist/forms/pin-input/pin-input.js +52 -34
  236. package/dist/forms/radio-button-group/index.d.ts +1 -1
  237. package/dist/forms/radio-button-group/radio-button-group.d.ts +6 -2
  238. package/dist/forms/radio-button-group/radio-button-group.js +7 -2
  239. package/dist/forms/rating/index.d.ts +1 -1
  240. package/dist/forms/rating/rating.d.ts +5 -1
  241. package/dist/forms/rating/rating.js +23 -8
  242. package/dist/forms/select/select.js +1 -1
  243. package/dist/forms/slider/index.d.ts +1 -1
  244. package/dist/forms/slider/slider.d.ts +4 -0
  245. package/dist/forms/slider/slider.js +45 -8
  246. package/dist/i18n/strings.d.ts +3 -0
  247. package/dist/i18n/strings.js +4 -2
  248. package/dist/icons/alert-triangle.d.ts +1 -0
  249. package/dist/icons/alert-triangle.js +4 -0
  250. package/dist/icons/archive.d.ts +2 -0
  251. package/dist/icons/archive.js +12 -0
  252. package/dist/icons/armchair.d.ts +2 -0
  253. package/dist/icons/armchair.js +13 -0
  254. package/dist/icons/arrow-down-right.d.ts +2 -0
  255. package/dist/icons/arrow-down-right.js +11 -0
  256. package/dist/icons/arrow-down-to-line.d.ts +2 -0
  257. package/dist/icons/arrow-down-to-line.js +12 -0
  258. package/dist/icons/arrow-down.d.ts +2 -0
  259. package/dist/icons/arrow-down.js +11 -0
  260. package/dist/icons/arrow-left-to-line.d.ts +2 -0
  261. package/dist/icons/arrow-left-to-line.js +12 -0
  262. package/dist/icons/arrow-left.d.ts +2 -0
  263. package/dist/icons/arrow-left.js +11 -0
  264. package/dist/icons/arrow-right-to-line.d.ts +2 -0
  265. package/dist/icons/arrow-right-to-line.js +12 -0
  266. package/dist/icons/arrow-right.d.ts +2 -0
  267. package/dist/icons/arrow-right.js +11 -0
  268. package/dist/icons/arrow-up-from-line.d.ts +2 -0
  269. package/dist/icons/arrow-up-from-line.js +12 -0
  270. package/dist/icons/arrow-up-right.d.ts +2 -0
  271. package/dist/icons/arrow-up-right.js +11 -0
  272. package/dist/icons/arrow-up-to-line.d.ts +2 -0
  273. package/dist/icons/arrow-up-to-line.js +12 -0
  274. package/dist/icons/arrow-up.d.ts +2 -0
  275. package/dist/icons/arrow-up.js +11 -0
  276. package/dist/icons/banknote.d.ts +2 -0
  277. package/dist/icons/banknote.js +12 -0
  278. package/dist/icons/bar-chart2.d.ts +1 -0
  279. package/dist/icons/bar-chart2.js +4 -0
  280. package/dist/icons/bar-chart3.d.ts +1 -0
  281. package/dist/icons/bar-chart3.js +4 -0
  282. package/dist/icons/bell.d.ts +2 -0
  283. package/dist/icons/bell.js +11 -0
  284. package/dist/icons/bold.d.ts +2 -0
  285. package/dist/icons/bold.js +8 -0
  286. package/dist/icons/book-open.d.ts +2 -0
  287. package/dist/icons/book-open.js +11 -0
  288. package/dist/icons/boxes.d.ts +2 -0
  289. package/dist/icons/boxes.js +21 -0
  290. package/dist/icons/brain.d.ts +2 -0
  291. package/dist/icons/brain.js +17 -0
  292. package/dist/icons/calculator.d.ts +2 -0
  293. package/dist/icons/calculator.js +19 -0
  294. package/dist/icons/calendar-check.d.ts +2 -0
  295. package/dist/icons/calendar-check.js +14 -0
  296. package/dist/icons/calendar-clock.d.ts +2 -0
  297. package/dist/icons/calendar-clock.js +15 -0
  298. package/dist/icons/calendar-days.d.ts +2 -0
  299. package/dist/icons/calendar-days.js +19 -0
  300. package/dist/icons/calendar-plus.d.ts +2 -0
  301. package/dist/icons/calendar-plus.js +15 -0
  302. package/dist/icons/calendar-x.d.ts +2 -0
  303. package/dist/icons/calendar-x.js +15 -0
  304. package/dist/icons/calendar.d.ts +2 -0
  305. package/dist/icons/calendar.js +13 -0
  306. package/dist/icons/camera.d.ts +2 -0
  307. package/dist/icons/camera.js +11 -0
  308. package/dist/icons/chart-column.d.ts +2 -0
  309. package/dist/icons/chart-column.js +13 -0
  310. package/dist/icons/chart-no-axes-column.d.ts +2 -0
  311. package/dist/icons/chart-no-axes-column.js +12 -0
  312. package/dist/icons/check-check.d.ts +2 -0
  313. package/dist/icons/check-check.js +11 -0
  314. package/dist/icons/check-circle2.d.ts +1 -0
  315. package/dist/icons/check-circle2.js +4 -0
  316. package/dist/icons/check.d.ts +2 -0
  317. package/dist/icons/check.js +8 -0
  318. package/dist/icons/chevron-down.d.ts +2 -0
  319. package/dist/icons/chevron-down.js +8 -0
  320. package/dist/icons/chevron-left.d.ts +2 -0
  321. package/dist/icons/chevron-left.js +8 -0
  322. package/dist/icons/chevron-right.d.ts +2 -0
  323. package/dist/icons/chevron-right.js +8 -0
  324. package/dist/icons/chevrons-left.d.ts +2 -0
  325. package/dist/icons/chevrons-left.js +11 -0
  326. package/dist/icons/chevrons-right.d.ts +2 -0
  327. package/dist/icons/chevrons-right.js +11 -0
  328. package/dist/icons/chevrons-up-down.d.ts +2 -0
  329. package/dist/icons/chevrons-up-down.js +11 -0
  330. package/dist/icons/circle-alert.d.ts +2 -0
  331. package/dist/icons/circle-alert.js +12 -0
  332. package/dist/icons/circle-check.d.ts +2 -0
  333. package/dist/icons/circle-check.js +11 -0
  334. package/dist/icons/circle-x.d.ts +2 -0
  335. package/dist/icons/circle-x.js +12 -0
  336. package/dist/icons/clipboard-list.d.ts +2 -0
  337. package/dist/icons/clipboard-list.js +15 -0
  338. package/dist/icons/clock.d.ts +2 -0
  339. package/dist/icons/clock.js +11 -0
  340. package/dist/icons/coins.d.ts +2 -0
  341. package/dist/icons/coins.js +13 -0
  342. package/dist/icons/columns-3.d.ts +2 -0
  343. package/dist/icons/columns-3.js +12 -0
  344. package/dist/icons/construction.d.ts +2 -0
  345. package/dist/icons/construction.js +17 -0
  346. package/dist/icons/copy.d.ts +2 -0
  347. package/dist/icons/copy.js +11 -0
  348. package/dist/icons/credit-card.d.ts +2 -0
  349. package/dist/icons/credit-card.js +12 -0
  350. package/dist/icons/download.d.ts +2 -0
  351. package/dist/icons/download.js +12 -0
  352. package/dist/icons/ellipsis-vertical.d.ts +2 -0
  353. package/dist/icons/ellipsis-vertical.js +12 -0
  354. package/dist/icons/external-link.d.ts +2 -0
  355. package/dist/icons/external-link.js +12 -0
  356. package/dist/icons/eye-off.d.ts +2 -0
  357. package/dist/icons/eye-off.js +13 -0
  358. package/dist/icons/face-slightly-smiling-plus.d.ts +2 -0
  359. package/dist/icons/face-slightly-smiling-plus.js +15 -0
  360. package/dist/icons/face-slightly-smiling.d.ts +2 -0
  361. package/dist/icons/face-slightly-smiling.js +13 -0
  362. package/dist/icons/file-code.d.ts +2 -0
  363. package/dist/icons/file-code.js +13 -0
  364. package/dist/icons/file-image.d.ts +2 -0
  365. package/dist/icons/file-image.js +13 -0
  366. package/dist/icons/file-spreadsheet.d.ts +2 -0
  367. package/dist/icons/file-spreadsheet.js +15 -0
  368. package/dist/icons/file-text.d.ts +2 -0
  369. package/dist/icons/file-text.js +14 -0
  370. package/dist/icons/file.d.ts +2 -0
  371. package/dist/icons/file.js +11 -0
  372. package/dist/icons/filter.d.ts +1 -0
  373. package/dist/icons/filter.js +4 -0
  374. package/dist/icons/folder-open.d.ts +2 -0
  375. package/dist/icons/folder-open.js +8 -0
  376. package/dist/icons/folder.d.ts +2 -0
  377. package/dist/icons/folder.js +8 -0
  378. package/dist/icons/funnel.d.ts +2 -0
  379. package/dist/icons/funnel.js +8 -0
  380. package/dist/icons/grip-vertical.d.ts +2 -0
  381. package/dist/icons/grip-vertical.js +15 -0
  382. package/dist/icons/heading-2.d.ts +2 -0
  383. package/dist/icons/heading-2.js +13 -0
  384. package/dist/icons/icon-base.d.ts +14 -0
  385. package/dist/icons/icon-base.js +39 -0
  386. package/dist/icons/inbox.d.ts +2 -0
  387. package/dist/icons/inbox.js +11 -0
  388. package/dist/icons/index.d.ts +145 -0
  389. package/dist/icons/index.js +291 -0
  390. package/dist/icons/info.d.ts +2 -0
  391. package/dist/icons/info.js +12 -0
  392. package/dist/icons/italic.d.ts +2 -0
  393. package/dist/icons/italic.js +12 -0
  394. package/dist/icons/landmark.d.ts +2 -0
  395. package/dist/icons/landmark.js +15 -0
  396. package/dist/icons/layers.d.ts +2 -0
  397. package/dist/icons/layers.js +12 -0
  398. package/dist/icons/layout-dashboard.d.ts +2 -0
  399. package/dist/icons/layout-dashboard.js +13 -0
  400. package/dist/icons/layout-grid.d.ts +2 -0
  401. package/dist/icons/layout-grid.js +13 -0
  402. package/dist/icons/link-2.d.ts +2 -0
  403. package/dist/icons/link-2.js +12 -0
  404. package/dist/icons/list-checks.d.ts +2 -0
  405. package/dist/icons/list-checks.js +14 -0
  406. package/dist/icons/list-filter.d.ts +2 -0
  407. package/dist/icons/list-filter.js +12 -0
  408. package/dist/icons/list-ordered.d.ts +2 -0
  409. package/dist/icons/list-ordered.js +15 -0
  410. package/dist/icons/list.d.ts +2 -0
  411. package/dist/icons/list.js +15 -0
  412. package/dist/icons/loader-circle.d.ts +2 -0
  413. package/dist/icons/loader-circle.js +8 -0
  414. package/dist/icons/lock.d.ts +2 -0
  415. package/dist/icons/lock.js +11 -0
  416. package/dist/icons/log-out.d.ts +2 -0
  417. package/dist/icons/log-out.js +12 -0
  418. package/dist/icons/map-pin.d.ts +2 -0
  419. package/dist/icons/map-pin.js +11 -0
  420. package/dist/icons/menu.d.ts +2 -0
  421. package/dist/icons/menu.js +12 -0
  422. package/dist/icons/message-circle.d.ts +2 -0
  423. package/dist/icons/message-circle.js +8 -0
  424. package/dist/icons/message-square.d.ts +2 -0
  425. package/dist/icons/message-square.js +8 -0
  426. package/dist/icons/minus.d.ts +2 -0
  427. package/dist/icons/minus.js +8 -0
  428. package/dist/icons/moon.d.ts +2 -0
  429. package/dist/icons/moon.js +8 -0
  430. package/dist/icons/move-horizontal.d.ts +2 -0
  431. package/dist/icons/move-horizontal.js +12 -0
  432. package/dist/icons/octagon-x.d.ts +2 -0
  433. package/dist/icons/octagon-x.js +12 -0
  434. package/dist/icons/package.d.ts +2 -0
  435. package/dist/icons/package.js +13 -0
  436. package/dist/icons/panel-right.d.ts +2 -0
  437. package/dist/icons/panel-right.js +11 -0
  438. package/dist/icons/paperclip.d.ts +2 -0
  439. package/dist/icons/paperclip.js +8 -0
  440. package/dist/icons/pause.d.ts +2 -0
  441. package/dist/icons/pause.js +11 -0
  442. package/dist/icons/pen-line.d.ts +2 -0
  443. package/dist/icons/pen-line.js +11 -0
  444. package/dist/icons/pencil.d.ts +2 -0
  445. package/dist/icons/pencil.js +11 -0
  446. package/dist/icons/phone.d.ts +2 -0
  447. package/dist/icons/phone.js +8 -0
  448. package/dist/icons/pin-off.d.ts +2 -0
  449. package/dist/icons/pin-off.js +13 -0
  450. package/dist/icons/play.d.ts +2 -0
  451. package/dist/icons/play.js +8 -0
  452. package/dist/icons/plus.d.ts +2 -0
  453. package/dist/icons/plus.js +11 -0
  454. package/dist/icons/redo-2.d.ts +2 -0
  455. package/dist/icons/redo-2.js +11 -0
  456. package/dist/icons/refresh-cw.d.ts +2 -0
  457. package/dist/icons/refresh-cw.js +13 -0
  458. package/dist/icons/rotate-ccw.d.ts +2 -0
  459. package/dist/icons/rotate-ccw.js +11 -0
  460. package/dist/icons/scan-barcode.d.ts +2 -0
  461. package/dist/icons/scan-barcode.js +16 -0
  462. package/dist/icons/scissors.d.ts +2 -0
  463. package/dist/icons/scissors.js +14 -0
  464. package/dist/icons/scroll-text.d.ts +2 -0
  465. package/dist/icons/scroll-text.js +13 -0
  466. package/dist/icons/search.d.ts +2 -0
  467. package/dist/icons/search.js +11 -0
  468. package/dist/icons/send.d.ts +2 -0
  469. package/dist/icons/send.js +11 -0
  470. package/dist/icons/settings.d.ts +2 -0
  471. package/dist/icons/settings.js +11 -0
  472. package/dist/icons/shield.d.ts +2 -0
  473. package/dist/icons/shield.js +8 -0
  474. package/dist/icons/shopping-bag.d.ts +2 -0
  475. package/dist/icons/shopping-bag.js +12 -0
  476. package/dist/icons/shopping-cart.d.ts +2 -0
  477. package/dist/icons/shopping-cart.js +13 -0
  478. package/dist/icons/sliders-horizontal.d.ts +2 -0
  479. package/dist/icons/sliders-horizontal.js +18 -0
  480. package/dist/icons/smartphone.d.ts +2 -0
  481. package/dist/icons/smartphone.js +11 -0
  482. package/dist/icons/smile-plus.d.ts +1 -0
  483. package/dist/icons/smile-plus.js +4 -0
  484. package/dist/icons/smile.d.ts +1 -0
  485. package/dist/icons/smile.js +4 -0
  486. package/dist/icons/sparkles.d.ts +2 -0
  487. package/dist/icons/sparkles.js +13 -0
  488. package/dist/icons/square.d.ts +2 -0
  489. package/dist/icons/square.js +8 -0
  490. package/dist/icons/star.d.ts +2 -0
  491. package/dist/icons/star.js +8 -0
  492. package/dist/icons/sun.d.ts +2 -0
  493. package/dist/icons/sun.js +18 -0
  494. package/dist/icons/tags.d.ts +2 -0
  495. package/dist/icons/tags.js +12 -0
  496. package/dist/icons/thumbs-down.d.ts +2 -0
  497. package/dist/icons/thumbs-down.js +11 -0
  498. package/dist/icons/thumbs-up.d.ts +2 -0
  499. package/dist/icons/thumbs-up.js +11 -0
  500. package/dist/icons/trash.d.ts +2 -0
  501. package/dist/icons/trash.js +14 -0
  502. package/dist/icons/trash2.d.ts +1 -0
  503. package/dist/icons/trash2.js +4 -0
  504. package/dist/icons/triangle-alert.d.ts +2 -0
  505. package/dist/icons/triangle-alert.js +12 -0
  506. package/dist/icons/truck.d.ts +2 -0
  507. package/dist/icons/truck.js +14 -0
  508. package/dist/icons/underline.d.ts +2 -0
  509. package/dist/icons/underline.js +11 -0
  510. package/dist/icons/undo-2.d.ts +2 -0
  511. package/dist/icons/undo-2.js +11 -0
  512. package/dist/icons/unlink.d.ts +2 -0
  513. package/dist/icons/unlink.js +15 -0
  514. package/dist/icons/upload.d.ts +2 -0
  515. package/dist/icons/upload.js +12 -0
  516. package/dist/icons/user-check.d.ts +2 -0
  517. package/dist/icons/user-check.js +12 -0
  518. package/dist/icons/user-cog.d.ts +2 -0
  519. package/dist/icons/user-cog.js +20 -0
  520. package/dist/icons/user-plus.d.ts +2 -0
  521. package/dist/icons/user-plus.js +13 -0
  522. package/dist/icons/user-round.d.ts +2 -0
  523. package/dist/icons/user-round.js +11 -0
  524. package/dist/icons/user.d.ts +2 -0
  525. package/dist/icons/user.js +11 -0
  526. package/dist/icons/users.d.ts +2 -0
  527. package/dist/icons/users.js +13 -0
  528. package/dist/icons/video.d.ts +2 -0
  529. package/dist/icons/video.js +11 -0
  530. package/dist/icons/wallet.d.ts +2 -0
  531. package/dist/icons/wallet.js +11 -0
  532. package/dist/icons/wrench.d.ts +2 -0
  533. package/dist/icons/wrench.js +8 -0
  534. package/dist/icons/x.d.ts +2 -0
  535. package/dist/icons/x.js +11 -0
  536. package/dist/icons/xcircle.d.ts +1 -0
  537. package/dist/icons/xcircle.js +4 -0
  538. package/dist/icons/xoctagon.d.ts +1 -0
  539. package/dist/icons/xoctagon.js +4 -0
  540. package/dist/navigation/floating-toc/floating-toc.d.ts +5 -1
  541. package/dist/navigation/floating-toc/floating-toc.js +42 -23
  542. package/dist/navigation/floating-toc/index.d.ts +1 -1
  543. package/dist/navigation/segmented/segmented.d.ts +19 -7
  544. package/dist/navigation/segmented/segmented.js +84 -19
  545. package/dist/navigation/stepper/index.d.ts +1 -1
  546. package/dist/navigation/stepper/stepper.d.ts +7 -3
  547. package/dist/navigation/stepper/stepper.js +17 -6
  548. package/dist/navigation/tabs/tabs.d.ts +28 -11
  549. package/dist/navigation/tabs/tabs.js +134 -14
  550. package/dist/overlays/context-menu/context-menu.d.ts +5 -5
  551. package/dist/overlays/context-menu/context-menu.js +5 -8
  552. package/dist/overlays/dialog/dialog.d.ts +11 -6
  553. package/dist/overlays/dialog/dialog.js +18 -10
  554. package/dist/overlays/dialog/index.d.ts +1 -1
  555. package/dist/overlays/dialog/index.js +2 -0
  556. package/dist/overlays/drawer/drawer.d.ts +12 -7
  557. package/dist/overlays/drawer/drawer.js +24 -11
  558. package/dist/overlays/drawer/index.d.ts +1 -1
  559. package/dist/overlays/drawer/index.js +2 -0
  560. package/dist/overlays/dropdown-menu/dropdown-menu.d.ts +26 -10
  561. package/dist/overlays/dropdown-menu/dropdown-menu.js +89 -20
  562. package/dist/overlays/dropdown-menu/index.d.ts +1 -1
  563. package/dist/overlays/dropdown-menu/index.js +12 -0
  564. package/dist/overlays/hover-card/hover-card.d.ts +2 -2
  565. package/dist/overlays/hover-card/hover-card.js +3 -3
  566. package/dist/overlays/popover/index.d.ts +1 -1
  567. package/dist/overlays/popover/index.js +2 -0
  568. package/dist/overlays/popover/popover.d.ts +11 -9
  569. package/dist/overlays/popover/popover.js +6 -3
  570. package/dist/overlays/toaster/index.d.ts +1 -1
  571. package/dist/overlays/toaster/index.js +4 -1
  572. package/dist/overlays/toaster/toast-store.d.ts +39 -0
  573. package/dist/overlays/toaster/toast-store.js +63 -0
  574. package/dist/overlays/toaster/toast.d.ts +11 -0
  575. package/dist/overlays/toaster/toast.js +10 -0
  576. package/dist/overlays/toaster/toaster.d.ts +24 -5
  577. package/dist/overlays/toaster/toaster.js +218 -16
  578. package/dist/palette/command-palette/command-palette.d.ts +6 -2
  579. package/dist/palette/command-palette/command-palette.js +94 -44
  580. package/dist/palette/command-palette/index.d.ts +1 -1
  581. package/dist/primitives/command/command.d.ts +82 -0
  582. package/dist/primitives/command/command.js +488 -0
  583. package/dist/primitives/command/score.d.ts +15 -0
  584. package/dist/primitives/command/score.js +73 -0
  585. package/dist/primitives/command/store.d.ts +89 -0
  586. package/dist/primitives/command/store.js +205 -0
  587. package/dist/primitives/dialog/dialog.d.ts +38 -0
  588. package/dist/primitives/dialog/dialog.js +251 -0
  589. package/dist/primitives/focusable.d.ts +21 -0
  590. package/dist/primitives/focusable.js +59 -0
  591. package/dist/primitives/global-singleton.d.ts +5 -0
  592. package/dist/primitives/global-singleton.js +9 -0
  593. package/dist/primitives/hide-others.d.ts +14 -0
  594. package/dist/primitives/hide-others.js +79 -0
  595. package/dist/primitives/index.d.ts +25 -0
  596. package/dist/primitives/index.js +30 -0
  597. package/dist/primitives/layer-stack.d.ts +8 -0
  598. package/dist/primitives/layer-stack.js +23 -0
  599. package/dist/primitives/menu/grace.d.ts +17 -0
  600. package/dist/primitives/menu/grace.js +27 -0
  601. package/dist/primitives/menu/menu.d.ts +97 -0
  602. package/dist/primitives/menu/menu.js +871 -0
  603. package/dist/primitives/menu/navigation.d.ts +6 -0
  604. package/dist/primitives/menu/navigation.js +12 -0
  605. package/dist/primitives/menu/typeahead.d.ts +6 -0
  606. package/dist/primitives/menu/typeahead.js +16 -0
  607. package/dist/primitives/pointer-events-lock.d.ts +15 -0
  608. package/dist/primitives/pointer-events-lock.js +37 -0
  609. package/dist/primitives/popover/popover.d.ts +33 -0
  610. package/dist/primitives/popover/popover.js +244 -0
  611. package/dist/primitives/popper/geometry.d.ts +67 -0
  612. package/dist/primitives/popper/geometry.js +143 -0
  613. package/dist/primitives/popper/popper.d.ts +44 -0
  614. package/dist/primitives/popper/popper.js +313 -0
  615. package/dist/primitives/portal.d.ts +6 -0
  616. package/dist/primitives/portal.js +20 -0
  617. package/dist/primitives/scroll-lock.d.ts +4 -0
  618. package/dist/primitives/scroll-lock.js +92 -0
  619. package/dist/primitives/use-dismissable-layer.d.ts +37 -0
  620. package/dist/primitives/use-dismissable-layer.js +113 -0
  621. package/dist/primitives/use-focus-scope.d.ts +22 -0
  622. package/dist/primitives/use-focus-scope.js +91 -0
  623. package/dist/primitives/use-layer.d.ts +2 -0
  624. package/dist/primitives/use-layer.js +14 -0
  625. package/dist/primitives/use-presence.d.ts +14 -0
  626. package/dist/primitives/use-presence.js +87 -0
  627. package/dist/rich-text/index.d.ts +1 -1
  628. package/dist/rich-text/rich-text-editor.d.ts +5 -1
  629. package/dist/rich-text/rich-text-editor.js +42 -10
  630. package/dist/shell/app-shell/app-shell.d.ts +3 -4
  631. package/dist/shell/app-shell/app-shell.js +4 -2
  632. package/dist/shell/sidebar/index.d.ts +1 -1
  633. package/dist/shell/sidebar/sidebar.d.ts +5 -1
  634. package/dist/shell/sidebar/sidebar.js +49 -37
  635. package/dist/shell/topbar/index.d.ts +1 -1
  636. package/dist/shell/topbar/topbar.d.ts +5 -1
  637. package/dist/shell/topbar/topbar.js +91 -45
  638. package/dist/showcase/controls-bento.js +2 -2
  639. package/dist/showcase/kit-tiles.js +1 -1
  640. package/dist/showcase/operations-bento.js +1 -1
  641. package/dist/showcase/shell.js +1 -1
  642. package/dist/states/empty-state/empty-state.js +2 -2
  643. package/dist/states/error-state/error-state.js +4 -4
  644. package/dist/states/forbidden-state/forbidden-state.js +2 -2
  645. package/dist/states/offline-banner/offline-banner.js +1 -1
  646. package/dist/utils/class-groups.d.ts +20 -0
  647. package/dist/utils/class-groups.js +809 -0
  648. package/dist/utils/class-merge.d.ts +17 -0
  649. package/dist/utils/class-merge.js +187 -0
  650. package/dist/utils/class-names.d.ts +9 -0
  651. package/dist/utils/class-names.js +0 -0
  652. package/dist/utils/class-tokens.generated.d.ts +8 -0
  653. package/dist/utils/class-tokens.generated.js +98 -0
  654. package/dist/utils/class-validators.d.ts +27 -0
  655. package/dist/utils/class-validators.js +78 -0
  656. package/dist/utils/cn.d.ts +33 -2
  657. package/dist/utils/cn.js +43 -82
  658. package/dist/utils/compose.d.ts +7 -0
  659. package/dist/utils/compose.js +15 -0
  660. package/dist/utils/form-bubble.d.ts +30 -0
  661. package/dist/utils/form-bubble.js +120 -0
  662. package/dist/utils/index.d.ts +2 -1
  663. package/dist/utils/index.js +7 -1
  664. package/dist/utils/roving-focus.d.ts +42 -0
  665. package/dist/utils/roving-focus.js +67 -0
  666. package/dist/utils/slot.d.ts +16 -0
  667. package/dist/utils/slot.js +74 -0
  668. package/dist/utils/use-controllable-state.d.ts +13 -0
  669. package/dist/utils/use-controllable-state.js +32 -0
  670. package/icons/LICENSE-lucide +43 -0
  671. package/icons/README.md +15 -0
  672. package/icons/aliases.json +12 -0
  673. package/icons/svg/archive.svg +5 -0
  674. package/icons/svg/armchair.svg +6 -0
  675. package/icons/svg/arrow-down-right.svg +4 -0
  676. package/icons/svg/arrow-down-to-line.svg +5 -0
  677. package/icons/svg/arrow-down.svg +4 -0
  678. package/icons/svg/arrow-left-to-line.svg +5 -0
  679. package/icons/svg/arrow-left.svg +4 -0
  680. package/icons/svg/arrow-right-to-line.svg +5 -0
  681. package/icons/svg/arrow-right.svg +4 -0
  682. package/icons/svg/arrow-up-from-line.svg +5 -0
  683. package/icons/svg/arrow-up-right.svg +4 -0
  684. package/icons/svg/arrow-up-to-line.svg +5 -0
  685. package/icons/svg/arrow-up.svg +4 -0
  686. package/icons/svg/banknote.svg +5 -0
  687. package/icons/svg/bell.svg +4 -0
  688. package/icons/svg/bold.svg +3 -0
  689. package/icons/svg/book-open.svg +4 -0
  690. package/icons/svg/boxes.svg +14 -0
  691. package/icons/svg/brain.svg +10 -0
  692. package/icons/svg/calculator.svg +12 -0
  693. package/icons/svg/calendar-check.svg +7 -0
  694. package/icons/svg/calendar-clock.svg +8 -0
  695. package/icons/svg/calendar-days.svg +12 -0
  696. package/icons/svg/calendar-plus.svg +8 -0
  697. package/icons/svg/calendar-x.svg +8 -0
  698. package/icons/svg/calendar.svg +6 -0
  699. package/icons/svg/camera.svg +4 -0
  700. package/icons/svg/chart-column.svg +6 -0
  701. package/icons/svg/chart-no-axes-column.svg +5 -0
  702. package/icons/svg/check-check.svg +4 -0
  703. package/icons/svg/check.svg +3 -0
  704. package/icons/svg/chevron-down.svg +3 -0
  705. package/icons/svg/chevron-left.svg +3 -0
  706. package/icons/svg/chevron-right.svg +3 -0
  707. package/icons/svg/chevrons-left.svg +4 -0
  708. package/icons/svg/chevrons-right.svg +4 -0
  709. package/icons/svg/chevrons-up-down.svg +4 -0
  710. package/icons/svg/circle-alert.svg +5 -0
  711. package/icons/svg/circle-check.svg +4 -0
  712. package/icons/svg/circle-x.svg +5 -0
  713. package/icons/svg/clipboard-list.svg +8 -0
  714. package/icons/svg/clock.svg +4 -0
  715. package/icons/svg/coins.svg +6 -0
  716. package/icons/svg/columns-3.svg +5 -0
  717. package/icons/svg/construction.svg +10 -0
  718. package/icons/svg/copy.svg +4 -0
  719. package/icons/svg/credit-card.svg +5 -0
  720. package/icons/svg/download.svg +5 -0
  721. package/icons/svg/ellipsis-vertical.svg +5 -0
  722. package/icons/svg/external-link.svg +5 -0
  723. package/icons/svg/eye-off.svg +6 -0
  724. package/icons/svg/face-slightly-smiling-plus.svg +8 -0
  725. package/icons/svg/face-slightly-smiling.svg +6 -0
  726. package/icons/svg/file-code.svg +6 -0
  727. package/icons/svg/file-image.svg +6 -0
  728. package/icons/svg/file-spreadsheet.svg +8 -0
  729. package/icons/svg/file-text.svg +7 -0
  730. package/icons/svg/file.svg +4 -0
  731. package/icons/svg/folder-open.svg +3 -0
  732. package/icons/svg/folder.svg +3 -0
  733. package/icons/svg/funnel.svg +3 -0
  734. package/icons/svg/grip-vertical.svg +8 -0
  735. package/icons/svg/heading-2.svg +6 -0
  736. package/icons/svg/inbox.svg +4 -0
  737. package/icons/svg/info.svg +5 -0
  738. package/icons/svg/italic.svg +5 -0
  739. package/icons/svg/landmark.svg +8 -0
  740. package/icons/svg/layers.svg +5 -0
  741. package/icons/svg/layout-dashboard.svg +6 -0
  742. package/icons/svg/layout-grid.svg +6 -0
  743. package/icons/svg/link-2.svg +5 -0
  744. package/icons/svg/list-checks.svg +7 -0
  745. package/icons/svg/list-filter.svg +5 -0
  746. package/icons/svg/list-ordered.svg +8 -0
  747. package/icons/svg/list.svg +8 -0
  748. package/icons/svg/loader-circle.svg +3 -0
  749. package/icons/svg/lock.svg +4 -0
  750. package/icons/svg/log-out.svg +5 -0
  751. package/icons/svg/map-pin.svg +4 -0
  752. package/icons/svg/menu.svg +5 -0
  753. package/icons/svg/message-circle.svg +3 -0
  754. package/icons/svg/message-square.svg +3 -0
  755. package/icons/svg/minus.svg +3 -0
  756. package/icons/svg/moon.svg +3 -0
  757. package/icons/svg/move-horizontal.svg +5 -0
  758. package/icons/svg/octagon-x.svg +5 -0
  759. package/icons/svg/package.svg +6 -0
  760. package/icons/svg/panel-right.svg +4 -0
  761. package/icons/svg/paperclip.svg +3 -0
  762. package/icons/svg/pause.svg +4 -0
  763. package/icons/svg/pen-line.svg +4 -0
  764. package/icons/svg/pencil.svg +4 -0
  765. package/icons/svg/phone.svg +3 -0
  766. package/icons/svg/pin-off.svg +6 -0
  767. package/icons/svg/play.svg +3 -0
  768. package/icons/svg/plus.svg +4 -0
  769. package/icons/svg/redo-2.svg +4 -0
  770. package/icons/svg/refresh-cw.svg +6 -0
  771. package/icons/svg/rotate-ccw.svg +4 -0
  772. package/icons/svg/scan-barcode.svg +9 -0
  773. package/icons/svg/scissors.svg +7 -0
  774. package/icons/svg/scroll-text.svg +6 -0
  775. package/icons/svg/search.svg +4 -0
  776. package/icons/svg/send.svg +4 -0
  777. package/icons/svg/settings.svg +4 -0
  778. package/icons/svg/shield.svg +3 -0
  779. package/icons/svg/shopping-bag.svg +5 -0
  780. package/icons/svg/shopping-cart.svg +6 -0
  781. package/icons/svg/sliders-horizontal.svg +11 -0
  782. package/icons/svg/smartphone.svg +4 -0
  783. package/icons/svg/sparkles.svg +6 -0
  784. package/icons/svg/square.svg +3 -0
  785. package/icons/svg/star.svg +3 -0
  786. package/icons/svg/sun.svg +11 -0
  787. package/icons/svg/tags.svg +5 -0
  788. package/icons/svg/thumbs-down.svg +4 -0
  789. package/icons/svg/thumbs-up.svg +4 -0
  790. package/icons/svg/trash.svg +7 -0
  791. package/icons/svg/triangle-alert.svg +5 -0
  792. package/icons/svg/truck.svg +7 -0
  793. package/icons/svg/underline.svg +4 -0
  794. package/icons/svg/undo-2.svg +4 -0
  795. package/icons/svg/unlink.svg +8 -0
  796. package/icons/svg/upload.svg +5 -0
  797. package/icons/svg/user-check.svg +5 -0
  798. package/icons/svg/user-cog.svg +13 -0
  799. package/icons/svg/user-plus.svg +6 -0
  800. package/icons/svg/user-round.svg +4 -0
  801. package/icons/svg/user.svg +4 -0
  802. package/icons/svg/users.svg +6 -0
  803. package/icons/svg/video.svg +4 -0
  804. package/icons/svg/wallet.svg +4 -0
  805. package/icons/svg/wrench.svg +3 -0
  806. package/icons/svg/x.svg +4 -0
  807. package/package.json +26 -24
  808. package/scripts/build-theme.mjs +8 -0
  809. package/src/ai/attachment/attachment.tsx +28 -5
  810. package/src/ai/chain-of-thought/chain-of-thought.tsx +47 -10
  811. package/src/ai/chat-list/chat-list.tsx +55 -10
  812. package/src/ai/chat-message/chat-message.tsx +25 -6
  813. package/src/ai/code-block/code-block.tsx +28 -7
  814. package/src/ai/conversation/conversation.tsx +24 -5
  815. package/src/ai/internal/disclosure.tsx +8 -2
  816. package/src/ai/loader/loader.tsx +14 -3
  817. package/src/ai/markdown/markdown.tsx +80 -35
  818. package/src/ai/message-actions/message-actions.tsx +1 -1
  819. package/src/ai/prompt-input/prompt-input.tsx +50 -10
  820. package/src/ai/source/source.tsx +44 -7
  821. package/src/ai/tool-call/tool-call.tsx +47 -12
  822. package/src/atoms/avatar/avatar.tsx +77 -12
  823. package/src/atoms/avatar/index.ts +1 -1
  824. package/src/atoms/avatar-group/avatar-group.tsx +7 -9
  825. package/src/atoms/big-date/big-date.tsx +2 -2
  826. package/src/atoms/button/button.tsx +42 -14
  827. package/src/atoms/button/index.ts +4 -0
  828. package/src/atoms/checkbox/checkbox.tsx +119 -18
  829. package/src/atoms/checkbox/index.ts +1 -1
  830. package/src/atoms/chip/chip.tsx +4 -3
  831. package/src/atoms/chip/index.ts +1 -1
  832. package/src/atoms/icon/icon-map.ts +4 -4
  833. package/src/atoms/icon/icon.tsx +7 -8
  834. package/src/atoms/internal/status-icons.tsx +1 -1
  835. package/src/atoms/led/index.ts +1 -1
  836. package/src/atoms/led/led.tsx +21 -6
  837. package/src/atoms/progress/index.ts +1 -1
  838. package/src/atoms/progress/progress.tsx +52 -13
  839. package/src/atoms/radio-group/index.ts +1 -0
  840. package/src/atoms/radio-group/radio-group-primitive.tsx +196 -0
  841. package/src/atoms/radio-group/radio-group.tsx +48 -14
  842. package/src/atoms/status-dot/index.ts +1 -0
  843. package/src/atoms/status-dot/status-dot.tsx +18 -5
  844. package/src/atoms/status-pill/index.ts +1 -1
  845. package/src/atoms/status-pill/status-pill.tsx +21 -6
  846. package/src/atoms/switch/index.ts +1 -1
  847. package/src/atoms/switch/switch.tsx +102 -15
  848. package/src/atoms/trend-chip/index.ts +1 -1
  849. package/src/atoms/trend-chip/trend-chip.tsx +17 -4
  850. package/src/brand/logo-forge.tsx +1 -1
  851. package/src/calendar/day-chip/day-chip.tsx +16 -6
  852. package/src/calendar/day-chip/index.ts +1 -1
  853. package/src/calendar/event-block/event-block.tsx +44 -9
  854. package/src/calendar/event-block/index.ts +6 -1
  855. package/src/calendar/month-view/index.ts +1 -1
  856. package/src/calendar/month-view/month-view.tsx +37 -6
  857. package/src/calendar/timeline-view/index.ts +1 -1
  858. package/src/calendar/timeline-view/timeline-view.tsx +26 -7
  859. package/src/calendar/week-view/index.ts +1 -1
  860. package/src/calendar/week-view/week-view.tsx +50 -10
  861. package/src/charts/README.md +1 -1
  862. package/src/charts/bar-chart/bar-race-chart.tsx +4 -4
  863. package/src/charts/bubble-map/bubble-map.tsx +1 -1
  864. package/src/charts/bullet-chart/bullet-chart.tsx +2 -2
  865. package/src/charts/candlestick-chart/candlestick-chart.tsx +3 -3
  866. package/src/charts/chart-grid/chart-grid.tsx +2 -2
  867. package/src/charts/chord-chart/chord-chart.tsx +1 -1
  868. package/src/charts/choropleth-map/choropleth-map.tsx +1 -1
  869. package/src/charts/core/axes.tsx +3 -3
  870. package/src/charts/core/breadcrumb.tsx +1 -1
  871. package/src/charts/core/cartesian/annotations.tsx +3 -3
  872. package/src/charts/core/cartesian/cartesian-chart.tsx +1 -1
  873. package/src/charts/core/cartesian/category-group-axis.tsx +1 -1
  874. package/src/charts/core/cartesian/ink-layer.tsx +1 -1
  875. package/src/charts/core/cartesian/marks.tsx +1 -1
  876. package/src/charts/core/chart-states.tsx +2 -2
  877. package/src/charts/core/distribution/layout.ts +1 -1
  878. package/src/charts/core/distribution/marks.tsx +2 -2
  879. package/src/charts/core/distribution/xy-points.tsx +4 -4
  880. package/src/charts/core/export-menu.tsx +1 -1
  881. package/src/charts/core/legend.tsx +2 -2
  882. package/src/charts/core/tooltip.tsx +3 -3
  883. package/src/charts/crossfilter/crossfilter.tsx +4 -4
  884. package/src/charts/donut-chart/donut-chart.tsx +1 -1
  885. package/src/charts/dumbbell-chart/dumbbell-chart.tsx +5 -5
  886. package/src/charts/fill-gauge-chart/fill-gauge-chart.tsx +1 -1
  887. package/src/charts/funnel-chart/funnel-chart.tsx +6 -6
  888. package/src/charts/gantt-chart/gantt-chart.tsx +7 -7
  889. package/src/charts/gantt-chart/gantt-marks.tsx +6 -6
  890. package/src/charts/gauge-chart/gauge-chart.tsx +4 -4
  891. package/src/charts/globe-chart/globe-chart.tsx +1 -1
  892. package/src/charts/heatmap-chart/heatmap-grid.tsx +7 -7
  893. package/src/charts/hierarchy-morph/hierarchy-morph.tsx +3 -3
  894. package/src/charts/histogram/histogram.tsx +1 -1
  895. package/src/charts/icicle-chart/icicle-chart.tsx +2 -2
  896. package/src/charts/isotype-rows/isotype-rows.tsx +3 -3
  897. package/src/charts/lollipop-chart/lollipop-chart.tsx +1 -1
  898. package/src/charts/maps/geo/map-data-table.tsx +3 -3
  899. package/src/charts/maps/geo/map-legend.tsx +5 -5
  900. package/src/charts/maps/geo/map-viewport.tsx +1 -1
  901. package/src/charts/parliament-chart/parliament-chart.tsx +2 -2
  902. package/src/charts/pictogram-chart/pictogram-chart.tsx +1 -1
  903. package/src/charts/polar-area-chart/polar-area-chart.tsx +2 -2
  904. package/src/charts/progress-units/progress-units.tsx +1 -1
  905. package/src/charts/radar-chart/radar-chart.tsx +1 -1
  906. package/src/charts/radial-bar-chart/radial-bar-chart.tsx +1 -1
  907. package/src/charts/sankey-chart/sankey-chart.tsx +5 -5
  908. package/src/charts/slope-chart/slope-chart.tsx +1 -1
  909. package/src/charts/sparkline/sparkline.tsx +1 -1
  910. package/src/charts/stock-chart/stock-chart.tsx +1 -1
  911. package/src/charts/stock-chart/stock-drawing-layer.tsx +4 -4
  912. package/src/charts/stock-chart/stock-plot.tsx +3 -3
  913. package/src/charts/stream-graph/stream-graph.tsx +1 -1
  914. package/src/charts/sunburst-chart/sunburst-chart.tsx +1 -1
  915. package/src/charts/timeline-chart/timeline-chart.tsx +3 -3
  916. package/src/charts/tree-chart/tree-card.tsx +6 -6
  917. package/src/charts/tree-chart/tree-chart.tsx +5 -5
  918. package/src/charts/treemap-chart/treemap-chart.tsx +3 -3
  919. package/src/charts/waterfall-chart/waterfall-chart.tsx +2 -2
  920. package/src/containers/action-bar/action-bar.tsx +21 -4
  921. package/src/containers/action-bar/index.ts +1 -1
  922. package/src/containers/banner/banner.tsx +19 -5
  923. package/src/containers/card/card.tsx +1 -1
  924. package/src/containers/carousel/carousel.tsx +38 -10
  925. package/src/containers/carousel/index.ts +1 -1
  926. package/src/containers/comment/comment.tsx +1 -1
  927. package/src/containers/confirm-action/confirm-action.tsx +41 -8
  928. package/src/containers/data-grid/chart-panel.tsx +4 -4
  929. package/src/containers/data-grid/column-menu.tsx +14 -14
  930. package/src/containers/data-grid/data-grid.demos.tsx +13 -13
  931. package/src/containers/data-grid/data-grid.samples.tsx +1 -1
  932. package/src/containers/data-grid/data-grid.tsx +38 -38
  933. package/src/containers/data-grid/filter-builder-editor.tsx +6 -6
  934. package/src/containers/data-grid/formula-bar.tsx +4 -4
  935. package/src/containers/data-grid/grid-toolbar.tsx +7 -7
  936. package/src/containers/data-grid/spreadsheet.demos.tsx +1 -1
  937. package/src/containers/data-grid/tool-panel.tsx +11 -11
  938. package/src/containers/description-list/description-list.tsx +1 -1
  939. package/src/containers/facts/facts.tsx +2 -2
  940. package/src/containers/file-tree/file-tree.tsx +30 -9
  941. package/src/containers/file-tree/index.ts +1 -1
  942. package/src/containers/generic-row/generic-row.tsx +3 -3
  943. package/src/containers/hbars/hbars.tsx +5 -5
  944. package/src/containers/item-card-group/index.ts +1 -0
  945. package/src/containers/item-card-group/item-card-group.tsx +65 -13
  946. package/src/containers/kanban/index.ts +1 -1
  947. package/src/containers/kanban/kanban.tsx +67 -11
  948. package/src/containers/kpi/kpi.tsx +26 -8
  949. package/src/containers/kpi-group/index.ts +1 -1
  950. package/src/containers/kpi-group/kpi-group.tsx +37 -8
  951. package/src/containers/page-header/page-header.tsx +2 -2
  952. package/src/containers/responsive-list/responsive-list.tsx +57 -10
  953. package/src/containers/settings-layout/settings-layout.tsx +1 -1
  954. package/src/containers/settings-row/settings-row.tsx +20 -5
  955. package/src/containers/table/table.tsx +5 -5
  956. package/src/containers/timeline/index.ts +1 -0
  957. package/src/containers/timeline/timeline.tsx +68 -12
  958. package/src/dashboards/layout.tsx +2 -2
  959. package/src/forms/accent-picker/accent-picker.tsx +23 -13
  960. package/src/forms/accent-picker/index.ts +1 -0
  961. package/src/forms/checkbox-button-group/checkbox-button-group.tsx +19 -2
  962. package/src/forms/checkbox-button-group/index.ts +1 -0
  963. package/src/forms/dropzone/dropzone.tsx +27 -5
  964. package/src/forms/dropzone/index.ts +1 -0
  965. package/src/forms/emoji-picker/emoji-picker.tsx +50 -10
  966. package/src/forms/emoji-picker/index.ts +1 -1
  967. package/src/forms/emoji-reaction-button/emoji-reaction-button.tsx +35 -8
  968. package/src/forms/emoji-reaction-button/index.ts +2 -0
  969. package/src/forms/field/field.tsx +38 -9
  970. package/src/forms/field/index.ts +1 -1
  971. package/src/forms/inline-select/inline-select.tsx +1 -1
  972. package/src/forms/input-icon/index.ts +1 -1
  973. package/src/forms/input-icon/input-icon.tsx +13 -5
  974. package/src/forms/internal/button-option.tsx +15 -5
  975. package/src/forms/native-select/index.ts +1 -0
  976. package/src/forms/native-select/native-select.tsx +13 -3
  977. package/src/forms/number-stepper/index.ts +5 -1
  978. package/src/forms/number-stepper/number-stepper.tsx +18 -5
  979. package/src/forms/pin-input/index.ts +1 -1
  980. package/src/forms/pin-input/pin-input.tsx +22 -3
  981. package/src/forms/radio-button-group/index.ts +1 -0
  982. package/src/forms/radio-button-group/radio-button-group.tsx +14 -2
  983. package/src/forms/rating/index.ts +1 -1
  984. package/src/forms/rating/rating.tsx +27 -8
  985. package/src/forms/select/select.tsx +1 -1
  986. package/src/forms/slider/index.ts +1 -0
  987. package/src/forms/slider/slider.tsx +46 -6
  988. package/src/i18n/strings.ts +3 -0
  989. package/src/icons/alert-triangle.tsx +3 -0
  990. package/src/icons/archive.tsx +13 -0
  991. package/src/icons/armchair.tsx +14 -0
  992. package/src/icons/arrow-down-right.tsx +12 -0
  993. package/src/icons/arrow-down-to-line.tsx +13 -0
  994. package/src/icons/arrow-down.tsx +12 -0
  995. package/src/icons/arrow-left-to-line.tsx +13 -0
  996. package/src/icons/arrow-left.tsx +12 -0
  997. package/src/icons/arrow-right-to-line.tsx +13 -0
  998. package/src/icons/arrow-right.tsx +12 -0
  999. package/src/icons/arrow-up-from-line.tsx +13 -0
  1000. package/src/icons/arrow-up-right.tsx +12 -0
  1001. package/src/icons/arrow-up-to-line.tsx +13 -0
  1002. package/src/icons/arrow-up.tsx +12 -0
  1003. package/src/icons/banknote.tsx +13 -0
  1004. package/src/icons/bar-chart2.tsx +3 -0
  1005. package/src/icons/bar-chart3.tsx +3 -0
  1006. package/src/icons/bell.tsx +12 -0
  1007. package/src/icons/bold.tsx +11 -0
  1008. package/src/icons/book-open.tsx +12 -0
  1009. package/src/icons/boxes.tsx +22 -0
  1010. package/src/icons/brain.tsx +18 -0
  1011. package/src/icons/calculator.tsx +20 -0
  1012. package/src/icons/calendar-check.tsx +15 -0
  1013. package/src/icons/calendar-clock.tsx +16 -0
  1014. package/src/icons/calendar-days.tsx +20 -0
  1015. package/src/icons/calendar-plus.tsx +16 -0
  1016. package/src/icons/calendar-x.tsx +16 -0
  1017. package/src/icons/calendar.tsx +14 -0
  1018. package/src/icons/camera.tsx +12 -0
  1019. package/src/icons/chart-column.tsx +14 -0
  1020. package/src/icons/chart-no-axes-column.tsx +13 -0
  1021. package/src/icons/check-check.tsx +12 -0
  1022. package/src/icons/check-circle2.tsx +3 -0
  1023. package/src/icons/check.tsx +11 -0
  1024. package/src/icons/chevron-down.tsx +11 -0
  1025. package/src/icons/chevron-left.tsx +11 -0
  1026. package/src/icons/chevron-right.tsx +11 -0
  1027. package/src/icons/chevrons-left.tsx +12 -0
  1028. package/src/icons/chevrons-right.tsx +12 -0
  1029. package/src/icons/chevrons-up-down.tsx +12 -0
  1030. package/src/icons/circle-alert.tsx +13 -0
  1031. package/src/icons/circle-check.tsx +12 -0
  1032. package/src/icons/circle-x.tsx +13 -0
  1033. package/src/icons/clipboard-list.tsx +16 -0
  1034. package/src/icons/clock.tsx +12 -0
  1035. package/src/icons/coins.tsx +14 -0
  1036. package/src/icons/columns-3.tsx +13 -0
  1037. package/src/icons/construction.tsx +18 -0
  1038. package/src/icons/copy.tsx +12 -0
  1039. package/src/icons/credit-card.tsx +13 -0
  1040. package/src/icons/download.tsx +13 -0
  1041. package/src/icons/ellipsis-vertical.tsx +13 -0
  1042. package/src/icons/external-link.tsx +13 -0
  1043. package/src/icons/eye-off.tsx +14 -0
  1044. package/src/icons/face-slightly-smiling-plus.tsx +16 -0
  1045. package/src/icons/face-slightly-smiling.tsx +14 -0
  1046. package/src/icons/file-code.tsx +14 -0
  1047. package/src/icons/file-image.tsx +14 -0
  1048. package/src/icons/file-spreadsheet.tsx +16 -0
  1049. package/src/icons/file-text.tsx +15 -0
  1050. package/src/icons/file.tsx +12 -0
  1051. package/src/icons/filter.tsx +3 -0
  1052. package/src/icons/folder-open.tsx +11 -0
  1053. package/src/icons/folder.tsx +11 -0
  1054. package/src/icons/funnel.tsx +11 -0
  1055. package/src/icons/grip-vertical.tsx +16 -0
  1056. package/src/icons/heading-2.tsx +14 -0
  1057. package/src/icons/icon-base.tsx +51 -0
  1058. package/src/icons/inbox.tsx +12 -0
  1059. package/src/icons/index.ts +146 -0
  1060. package/src/icons/info.tsx +13 -0
  1061. package/src/icons/italic.tsx +13 -0
  1062. package/src/icons/landmark.tsx +16 -0
  1063. package/src/icons/layers.tsx +13 -0
  1064. package/src/icons/layout-dashboard.tsx +14 -0
  1065. package/src/icons/layout-grid.tsx +14 -0
  1066. package/src/icons/link-2.tsx +13 -0
  1067. package/src/icons/list-checks.tsx +15 -0
  1068. package/src/icons/list-filter.tsx +13 -0
  1069. package/src/icons/list-ordered.tsx +16 -0
  1070. package/src/icons/list.tsx +16 -0
  1071. package/src/icons/loader-circle.tsx +11 -0
  1072. package/src/icons/lock.tsx +12 -0
  1073. package/src/icons/log-out.tsx +13 -0
  1074. package/src/icons/map-pin.tsx +12 -0
  1075. package/src/icons/menu.tsx +13 -0
  1076. package/src/icons/message-circle.tsx +11 -0
  1077. package/src/icons/message-square.tsx +11 -0
  1078. package/src/icons/minus.tsx +11 -0
  1079. package/src/icons/moon.tsx +11 -0
  1080. package/src/icons/move-horizontal.tsx +13 -0
  1081. package/src/icons/octagon-x.tsx +13 -0
  1082. package/src/icons/package.tsx +14 -0
  1083. package/src/icons/panel-right.tsx +12 -0
  1084. package/src/icons/paperclip.tsx +11 -0
  1085. package/src/icons/pause.tsx +12 -0
  1086. package/src/icons/pen-line.tsx +12 -0
  1087. package/src/icons/pencil.tsx +12 -0
  1088. package/src/icons/phone.tsx +11 -0
  1089. package/src/icons/pin-off.tsx +14 -0
  1090. package/src/icons/play.tsx +11 -0
  1091. package/src/icons/plus.tsx +12 -0
  1092. package/src/icons/redo-2.tsx +12 -0
  1093. package/src/icons/refresh-cw.tsx +14 -0
  1094. package/src/icons/rotate-ccw.tsx +12 -0
  1095. package/src/icons/scan-barcode.tsx +17 -0
  1096. package/src/icons/scissors.tsx +15 -0
  1097. package/src/icons/scroll-text.tsx +14 -0
  1098. package/src/icons/search.tsx +12 -0
  1099. package/src/icons/send.tsx +12 -0
  1100. package/src/icons/settings.tsx +12 -0
  1101. package/src/icons/shield.tsx +11 -0
  1102. package/src/icons/shopping-bag.tsx +13 -0
  1103. package/src/icons/shopping-cart.tsx +14 -0
  1104. package/src/icons/sliders-horizontal.tsx +19 -0
  1105. package/src/icons/smartphone.tsx +12 -0
  1106. package/src/icons/smile-plus.tsx +3 -0
  1107. package/src/icons/smile.tsx +3 -0
  1108. package/src/icons/sparkles.tsx +14 -0
  1109. package/src/icons/square.tsx +11 -0
  1110. package/src/icons/star.tsx +11 -0
  1111. package/src/icons/sun.tsx +19 -0
  1112. package/src/icons/tags.tsx +13 -0
  1113. package/src/icons/thumbs-down.tsx +12 -0
  1114. package/src/icons/thumbs-up.tsx +12 -0
  1115. package/src/icons/trash.tsx +15 -0
  1116. package/src/icons/trash2.tsx +3 -0
  1117. package/src/icons/triangle-alert.tsx +13 -0
  1118. package/src/icons/truck.tsx +15 -0
  1119. package/src/icons/underline.tsx +12 -0
  1120. package/src/icons/undo-2.tsx +12 -0
  1121. package/src/icons/unlink.tsx +16 -0
  1122. package/src/icons/upload.tsx +13 -0
  1123. package/src/icons/user-check.tsx +13 -0
  1124. package/src/icons/user-cog.tsx +21 -0
  1125. package/src/icons/user-plus.tsx +14 -0
  1126. package/src/icons/user-round.tsx +12 -0
  1127. package/src/icons/user.tsx +12 -0
  1128. package/src/icons/users.tsx +14 -0
  1129. package/src/icons/video.tsx +12 -0
  1130. package/src/icons/wallet.tsx +12 -0
  1131. package/src/icons/wrench.tsx +11 -0
  1132. package/src/icons/x.tsx +12 -0
  1133. package/src/icons/xcircle.tsx +3 -0
  1134. package/src/icons/xoctagon.tsx +3 -0
  1135. package/src/navigation/floating-toc/floating-toc.tsx +25 -5
  1136. package/src/navigation/floating-toc/index.ts +1 -1
  1137. package/src/navigation/segmented/segmented.tsx +106 -18
  1138. package/src/navigation/stepper/index.ts +1 -1
  1139. package/src/navigation/stepper/stepper.tsx +22 -6
  1140. package/src/navigation/tabs/tabs.tsx +190 -23
  1141. package/src/overlays/context-menu/context-menu.tsx +9 -14
  1142. package/src/overlays/dialog/dialog.tsx +24 -12
  1143. package/src/overlays/dialog/index.ts +2 -0
  1144. package/src/overlays/drawer/drawer.tsx +29 -13
  1145. package/src/overlays/drawer/index.ts +2 -0
  1146. package/src/overlays/dropdown-menu/dropdown-menu.tsx +107 -28
  1147. package/src/overlays/dropdown-menu/index.ts +9 -0
  1148. package/src/overlays/hover-card/hover-card.tsx +4 -4
  1149. package/src/overlays/popover/index.ts +1 -0
  1150. package/src/overlays/popover/popover.tsx +10 -7
  1151. package/src/overlays/toaster/index.ts +9 -1
  1152. package/src/overlays/toaster/toast-store.ts +100 -0
  1153. package/src/overlays/toaster/toast.ts +18 -0
  1154. package/src/overlays/toaster/toaster.tsx +277 -18
  1155. package/src/palette/command-palette/command-palette.tsx +65 -15
  1156. package/src/palette/command-palette/index.ts +1 -0
  1157. package/src/primitives/command/command.tsx +621 -0
  1158. package/src/primitives/command/score.ts +104 -0
  1159. package/src/primitives/command/store.ts +280 -0
  1160. package/src/primitives/dialog/dialog.tsx +316 -0
  1161. package/src/primitives/focusable.ts +85 -0
  1162. package/src/primitives/global-singleton.ts +10 -0
  1163. package/src/primitives/hide-others.ts +116 -0
  1164. package/src/primitives/index.ts +42 -0
  1165. package/src/primitives/layer-stack.ts +27 -0
  1166. package/src/primitives/menu/grace.ts +40 -0
  1167. package/src/primitives/menu/menu.tsx +1129 -0
  1168. package/src/primitives/menu/navigation.ts +15 -0
  1169. package/src/primitives/menu/typeahead.ts +22 -0
  1170. package/src/primitives/pointer-events-lock.ts +48 -0
  1171. package/src/primitives/popover/popover.tsx +316 -0
  1172. package/src/primitives/popper/geometry.ts +250 -0
  1173. package/src/primitives/popper/popper.tsx +434 -0
  1174. package/src/primitives/portal.tsx +23 -0
  1175. package/src/primitives/scroll-lock.ts +114 -0
  1176. package/src/primitives/use-dismissable-layer.ts +171 -0
  1177. package/src/primitives/use-focus-scope.ts +127 -0
  1178. package/src/primitives/use-layer.ts +14 -0
  1179. package/src/primitives/use-presence.ts +111 -0
  1180. package/src/rich-text/index.ts +1 -0
  1181. package/src/rich-text/rich-text-editor.tsx +57 -10
  1182. package/src/shell/app-shell/app-shell.tsx +6 -4
  1183. package/src/shell/sidebar/index.ts +1 -0
  1184. package/src/shell/sidebar/sidebar.tsx +32 -6
  1185. package/src/shell/topbar/index.ts +1 -1
  1186. package/src/shell/topbar/topbar.tsx +57 -10
  1187. package/src/showcase/controls-bento.tsx +2 -2
  1188. package/src/showcase/kit-tiles.tsx +1 -1
  1189. package/src/showcase/operations-bento.tsx +1 -1
  1190. package/src/showcase/shell.tsx +1 -1
  1191. package/src/states/empty-state/empty-state.tsx +2 -2
  1192. package/src/states/error-state/error-state.tsx +4 -4
  1193. package/src/states/forbidden-state/forbidden-state.tsx +2 -2
  1194. package/src/states/offline-banner/offline-banner.tsx +1 -1
  1195. package/src/utils/class-groups.ts +851 -0
  1196. package/src/utils/class-merge.ts +248 -0
  1197. package/src/utils/class-names.ts +9 -0
  1198. package/src/utils/class-tokens.generated.ts +101 -0
  1199. package/src/utils/class-validators.ts +69 -0
  1200. package/src/utils/cn.ts +82 -87
  1201. package/src/utils/compose.ts +19 -0
  1202. package/src/utils/form-bubble.tsx +147 -0
  1203. package/src/utils/index.ts +9 -1
  1204. package/src/utils/roving-focus.ts +116 -0
  1205. package/src/utils/slot.tsx +91 -0
  1206. package/src/utils/use-controllable-state.ts +47 -0
  1207. package/styles/Theme.kt +1 -1
  1208. package/styles/theme.css +15 -0
  1209. package/styles/tokens.css +1 -1
  1210. package/tokens/default.json +18 -2
@@ -208,12 +208,12 @@ function DiffLegend({ labels }) {
208
208
  [labels.decrease, "var(--chart-down)", "1"],
209
209
  [labels.previous, "var(--ink-3)", "0.3"]
210
210
  ];
211
- return /* @__PURE__ */ jsx("ul", { className: "m-0 flex list-none flex-wrap gap-x-4 gap-y-0.5 p-0 text-[12px] text-ink-2", children: items.map(([name, color, opacity]) => /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-1.5", children: [
211
+ return /* @__PURE__ */ jsx("ul", { className: "m-0 flex list-none flex-wrap gap-x-4 gap-y-0.5 p-0 text-fs-120 text-ink-2", children: items.map(([name, color, opacity]) => /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-1.5", children: [
212
212
  /* @__PURE__ */ jsx(
213
213
  "span",
214
214
  {
215
215
  "aria-hidden": "true",
216
- className: "h-2 w-4 rounded-[3px]",
216
+ className: "h-2 w-4 rounded-xs",
217
217
  style: { background: color, opacity }
218
218
  }
219
219
  ),
@@ -446,7 +446,7 @@ function SankeyPlot({
446
446
  x,
447
447
  y: 12,
448
448
  textAnchor: anchor,
449
- className: "select-none font-bold text-[11px] uppercase tracking-wide",
449
+ className: "select-none font-bold text-fs-110 uppercase tracking-wide",
450
450
  style: { fill: "var(--ink-3)" },
451
451
  children: text
452
452
  },
@@ -792,7 +792,7 @@ function SankeyNodeLabels({ graph, format, inside, showValues, room, lit }) {
792
792
  y: twoLines ? y - 7 : y,
793
793
  dominantBaseline: "middle",
794
794
  textAnchor: end ? "end" : "start",
795
- className: "font-semibold text-[12px] motion-safe:transition-opacity motion-safe:duration-150",
795
+ className: "font-semibold text-fs-120 motion-safe:transition-opacity motion-safe:duration-150",
796
796
  style: {
797
797
  fill: "var(--ink)",
798
798
  opacity: lit && !lit.has(node.id) ? 0.4 : 1
@@ -805,7 +805,7 @@ function SankeyNodeLabels({ graph, format, inside, showValues, room, lit }) {
805
805
  {
806
806
  x,
807
807
  dy: 15,
808
- className: "font-bold text-[11px] tabular-nums",
808
+ className: "font-bold text-fs-110 tabular-nums",
809
809
  style: { fill: inside ? "var(--ink-2)" : "var(--ink-3)" },
810
810
  children: value
811
811
  }
@@ -282,7 +282,7 @@ function SlopePlot({
282
282
  height,
283
283
  className: "block overflow-visible",
284
284
  children: [
285
- /* @__PURE__ */ jsxs("g", { className: "font-bold text-[11px]", style: { fill: "var(--ink-3)" }, children: [
285
+ /* @__PURE__ */ jsxs("g", { className: "font-bold text-fs-110", style: { fill: "var(--ink-3)" }, children: [
286
286
  /* @__PURE__ */ jsx("text", { x: xL, y: 12, textAnchor: "middle", children: fit(fromLabel, leftWidth + 40, 11) }),
287
287
  /* @__PURE__ */ jsx("text", { x: xR, y: 12, textAnchor: "middle", children: fit(toLabel, rightWidth + 40, 11) })
288
288
  ] }),
@@ -210,7 +210,7 @@ function Sparkline({
210
210
  "div",
211
211
  {
212
212
  "aria-hidden": "true",
213
- className: "-translate-x-1/2 pointer-events-none absolute bottom-full z-10 mb-1.5 whitespace-nowrap rounded-popover surface-overlay px-2 py-1 font-bold text-[11px] text-ink tabular-nums shadow-overlay",
213
+ className: "-translate-x-1/2 pointer-events-none absolute bottom-full z-10 mb-1.5 whitespace-nowrap rounded-popover surface-overlay px-2 py-1 font-bold text-fs-110 text-ink tabular-nums shadow-overlay",
214
214
  style: { left: Math.min(Math.max(activePoint.x, 24), width - 24) },
215
215
  children: [
216
216
  categories?.[active] ? /* @__PURE__ */ jsx("span", { className: "mr-1.5 font-semibold text-ink-3", children: categories[active] }) : null,
@@ -289,7 +289,7 @@ function StockChart({
289
289
  setRange(rangeWindow(dates, preset));
290
290
  },
291
291
  className: cn(
292
- "cursor-pointer rounded-button px-2 py-1 font-semibold text-[11.5px] tabular-nums outline-none focus-visible:outline-2 focus-visible:outline-accent-ink @md/chart:px-2.5",
292
+ "cursor-pointer rounded-button px-2 py-1 font-semibold text-fs-115 tabular-nums outline-none focus-visible:outline-2 focus-visible:outline-accent-ink @md/chart:px-2.5",
293
293
  activePreset?.id === preset.id ? "bg-surface text-ink shadow-xs" : "text-ink-3 hover:text-ink"
294
294
  ),
295
295
  children: preset.label
@@ -94,7 +94,7 @@ function DrawingShape({
94
94
  {
95
95
  x: 6,
96
96
  y: py - 5,
97
- className: "font-semibold text-[10.5px] tabular-nums",
97
+ className: "font-semibold text-fs-105 tabular-nums",
98
98
  style: { fill: COLORS.horizontal },
99
99
  children: fmt(drawing.price)
100
100
  }
@@ -149,7 +149,7 @@ function DrawingShape({
149
149
  {
150
150
  x: left2 + 6,
151
151
  y: top + 14,
152
- className: "font-bold text-[10.5px] tabular-nums",
152
+ className: "font-bold text-fs-105 tabular-nums",
153
153
  style: { fill: COLORS.range },
154
154
  children: [
155
155
  change > 0 ? "+" : "",
@@ -197,7 +197,7 @@ function DrawingShape({
197
197
  x: geometry.innerWidth - 4,
198
198
  y: py - 4,
199
199
  textAnchor: "end",
200
- className: "font-semibold text-[10px] tabular-nums",
200
+ className: "font-semibold text-fs-100 tabular-nums",
201
201
  style: { fill: COLORS.fib },
202
202
  children: [
203
203
  level.ratio,
@@ -251,7 +251,7 @@ function MeasureShape({
251
251
  y: boxY + 11,
252
252
  dy: "0.34em",
253
253
  textAnchor: "middle",
254
- className: "font-bold text-[10.5px] tabular-nums",
254
+ className: "font-bold text-fs-105 tabular-nums",
255
255
  style: { fill: "var(--surface)" },
256
256
  children: label
257
257
  }
@@ -669,7 +669,7 @@ function StockPlot({
669
669
  y: top + 8,
670
670
  dy: "0.34em",
671
671
  textAnchor: "middle",
672
- className: "font-bold text-[10px]",
672
+ className: "font-bold text-fs-100",
673
673
  style: { fill: "var(--surface)" },
674
674
  children: flag.label
675
675
  }
@@ -677,7 +677,7 @@ function StockPlot({
677
677
  ] }, `${index}-${level}-${flag.label}`);
678
678
  }),
679
679
  lower && oscillator ? /* @__PURE__ */ jsxs("g", { transform: `translate(0,${lowerTop})`, children: [
680
- /* @__PURE__ */ jsxs("text", { ...DECORATIVE, x: 0, y: -7, className: "fill-ink-3 font-semibold text-[10.5px]", children: [
680
+ /* @__PURE__ */ jsxs("text", { ...DECORATIVE, x: 0, y: -7, className: "fill-ink-3 font-semibold text-fs-105", children: [
681
681
  oscillator.name,
682
682
  (() => {
683
683
  const index = active ?? view.length - 1;
@@ -990,7 +990,7 @@ function AxisTag({
990
990
  y: 0,
991
991
  dy: "0.34em",
992
992
  textAnchor: "middle",
993
- className: "font-bold text-[10.5px] tabular-nums",
993
+ className: "font-bold text-fs-105 tabular-nums",
994
994
  style: { fill: "var(--surface)" },
995
995
  children: text
996
996
  }
@@ -342,7 +342,7 @@ function StreamPlot({
342
342
  y: cy,
343
343
  dy: "0.34em",
344
344
  textAnchor: "middle",
345
- className: "pointer-events-none font-bold text-[12px]",
345
+ className: "pointer-events-none font-bold text-fs-120",
346
346
  strokeWidth: 3,
347
347
  strokeLinejoin: "round",
348
348
  style: {
@@ -426,7 +426,7 @@ function SegmentLabel({
426
426
  transform: `rotate(${rotate.toFixed(2)} ${x.toFixed(2)} ${y.toFixed(2)})`,
427
427
  textAnchor: "middle",
428
428
  dominantBaseline: "central",
429
- className: "pointer-events-none select-none font-semibold text-[11px]",
429
+ className: "pointer-events-none select-none font-semibold text-fs-110",
430
430
  style: { fill: ink, opacity: dimmed ? 0.4 : 1, transition: "opacity 150ms ease-out" },
431
431
  children: name
432
432
  }
@@ -77,7 +77,7 @@ const BarMark = memo(function BarMark2({
77
77
  x: x + 8,
78
78
  y: y + height / 2,
79
79
  dy: "0.34em",
80
- className: "pointer-events-none font-bold text-[11px]",
80
+ className: "pointer-events-none font-bold text-fs-110",
81
81
  style: { fill: "var(--surface)" },
82
82
  children: text
83
83
  }
@@ -389,7 +389,7 @@ function TimelinePlot({
389
389
  y: band.top + band.height / 2,
390
390
  dy: "0.34em",
391
391
  textAnchor: "end",
392
- className: "font-semibold text-[12px]",
392
+ className: "font-semibold text-fs-120",
393
393
  style: { fill: "var(--ink-2)" },
394
394
  children: fitText(band.row.label, left - 18, 12)
395
395
  }
@@ -440,7 +440,7 @@ function TimelinePlot({
440
440
  y: -MARGIN.top + 10,
441
441
  dy: "0.34em",
442
442
  textAnchor: "middle",
443
- className: "font-bold text-[10px]",
443
+ className: "font-bold text-fs-100",
444
444
  style: { fill: "var(--surface)" },
445
445
  children: texts.now
446
446
  }
@@ -26,19 +26,19 @@ function TreeCard({ node, state }) {
26
26
  /* @__PURE__ */ jsx(
27
27
  "span",
28
28
  {
29
- className: "grid size-9 shrink-0 place-items-center overflow-hidden rounded-avatar font-bold text-[12px] text-ink",
29
+ className: "grid size-9 shrink-0 place-items-center overflow-hidden rounded-avatar font-bold text-fs-120 text-ink",
30
30
  style: { background: tint(node.color, 24) },
31
31
  children: node.image ? /* @__PURE__ */ jsx("img", { src: node.image, alt: "", className: "size-full object-cover", draggable: false }) : initials(node.name)
32
32
  }
33
33
  ),
34
34
  /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
35
- /* @__PURE__ */ jsx("span", { className: "truncate font-semibold text-[13px] text-ink leading-tight", children: node.name }),
35
+ /* @__PURE__ */ jsx("span", { className: "truncate font-semibold text-fs-130 text-ink leading-tight", children: node.name }),
36
36
  node.subtitle || node.badge ? /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 items-center gap-1.5", children: [
37
- node.subtitle ? /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-[11px] text-ink-3 leading-tight", children: node.subtitle }) : null,
37
+ node.subtitle ? /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-fs-110 text-ink-3 leading-tight", children: node.subtitle }) : null,
38
38
  node.badge ? /* @__PURE__ */ jsx(
39
39
  "span",
40
40
  {
41
- className: "max-w-[60%] shrink-0 truncate rounded-badge px-1.5 font-bold text-[10px] text-ink-2 leading-[16px]",
41
+ className: "max-w-[60%] shrink-0 truncate rounded-badge px-1.5 font-bold text-fs-100 text-ink-2 leading-4",
42
42
  style: { background: tint(node.color, 16) },
43
43
  children: node.badge
44
44
  }
@@ -55,7 +55,7 @@ function CountBadge({ state, color }) {
55
55
  return /* @__PURE__ */ jsx(
56
56
  "span",
57
57
  {
58
- className: "grid h-[18px] min-w-[18px] shrink-0 place-items-center rounded-badge px-1 font-bold text-[10px] text-ink tabular-nums",
58
+ className: "grid h-4.5 min-w-4.5 shrink-0 place-items-center rounded-badge px-1 font-bold text-fs-100 text-ink tabular-nums",
59
59
  style: { background: tint(color, 22) },
60
60
  title: `+${state.descendants}`,
61
61
  children: state.descendants
@@ -82,7 +82,7 @@ function TreeChip({ node, state }) {
82
82
  style: { background: node.color }
83
83
  }
84
84
  ),
85
- /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate font-semibold text-[11px] text-ink leading-none", children: node.name }),
85
+ /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate font-semibold text-fs-110 text-ink leading-none", children: node.name }),
86
86
  /* @__PURE__ */ jsx(CountBadge, { state, color: node.color })
87
87
  ]
88
88
  }
@@ -555,7 +555,7 @@ function TreePlot({
555
555
  event.stopPropagation();
556
556
  if (!panZoom.wasDrag()) toggle(node);
557
557
  },
558
- className: "absolute top-0 left-0 grid h-5 min-w-5 cursor-pointer place-items-center rounded-badge border-divider bg-surface-control px-1 font-bold text-[10px] text-ink-2 tabular-nums shadow-control hover:text-ink",
558
+ className: "absolute top-0 left-0 grid h-5 min-w-5 cursor-pointer place-items-center rounded-badge border-divider bg-surface-control px-1 font-bold text-fs-100 text-ink-2 tabular-nums shadow-control hover:text-ink",
559
559
  style: {
560
560
  transform: `translate(${tx}px, ${ty}px) translate(-50%, -50%)`,
561
561
  opacity: pose.opacity,
@@ -645,7 +645,7 @@ function TreePlot({
645
645
  stepMatch(event.shiftKey ? -1 : 1);
646
646
  } else if (event.key === "Escape") onSearch("");
647
647
  },
648
- className: "h-7 min-w-0 flex-1 border-0 bg-transparent px-1.5 text-[12px] text-ink outline-none placeholder:text-ink-3"
648
+ className: "h-7 min-w-0 flex-1 border-0 bg-transparent px-1.5 text-fs-120 text-ink outline-none placeholder:text-ink-3"
649
649
  }
650
650
  ),
651
651
  query ? /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -653,7 +653,7 @@ function TreePlot({
653
653
  "span",
654
654
  {
655
655
  "aria-live": "polite",
656
- className: "hidden shrink-0 px-1 text-[11px] text-ink-3 tabular-nums @sm/chart:inline",
656
+ className: "hidden shrink-0 px-1 text-fs-110 text-ink-3 tabular-nums @sm/chart:inline",
657
657
  children: matches.length > 0 ? `${matchIndex + 1} ${labels.of} ${matches.length}` : labels.noMatches
658
658
  }
659
659
  ),
@@ -718,7 +718,7 @@ function TreePlot({
718
718
  "aria-label": labels.controls,
719
719
  className: "absolute top-2 right-2 flex items-center gap-1 rounded-control border-divider bg-surface-control p-0.5 shadow-control",
720
720
  children: [
721
- /* @__PURE__ */ jsxs("span", { className: "hidden px-1.5 font-semibold text-[11px] text-ink-3 tabular-nums @sm/chart:inline", children: [
721
+ /* @__PURE__ */ jsxs("span", { className: "hidden px-1.5 font-semibold text-fs-110 text-ink-3 tabular-nums @sm/chart:inline", children: [
722
722
  Math.round(view.k * 100),
723
723
  "%"
724
724
  ] }),
@@ -728,7 +728,7 @@ function TreePlot({
728
728
  ]
729
729
  }
730
730
  ) : null,
731
- wheelZoom === "modifier" ? /* @__PURE__ */ jsx("p", { className: "pointer-events-none absolute bottom-1.5 left-2 m-0 hidden text-[11px] text-ink-3 @md/chart:block", children: labels.zoomHint }) : null
731
+ wheelZoom === "modifier" ? /* @__PURE__ */ jsx("p", { className: "pointer-events-none absolute bottom-1.5 left-2 m-0 hidden text-fs-110 text-ink-3 @md/chart:block", children: labels.zoomHint }) : null
732
732
  ] });
733
733
  }
734
734
  function ToolButton({
@@ -307,7 +307,7 @@ const TreemapCells = memo(function TreemapCells2({
307
307
  {
308
308
  x: cell.x0 + 8,
309
309
  y: cell.y0 + 16,
310
- className: "pointer-events-none select-none font-bold text-[12px]",
310
+ className: "pointer-events-none select-none font-bold text-fs-120",
311
311
  style: { fill: "var(--ink)" },
312
312
  children: [
313
313
  label,
@@ -319,7 +319,7 @@ const TreemapCells = memo(function TreemapCells2({
319
319
  {
320
320
  x: cell.x0 + 8,
321
321
  y: cell.y0 + 18,
322
- className: "pointer-events-none select-none font-semibold text-[12px]",
322
+ className: "pointer-events-none select-none font-semibold text-fs-120",
323
323
  style: { fill: ink },
324
324
  children: [
325
325
  label,
@@ -328,7 +328,7 @@ const TreemapCells = memo(function TreemapCells2({
328
328
  {
329
329
  x: cell.x0 + 8,
330
330
  dy: 17,
331
- className: "font-bold text-[11px] tabular-nums",
331
+ className: "font-bold text-fs-110 tabular-nums",
332
332
  style: { fill: ink, opacity: 0.78 },
333
333
  children: value
334
334
  }
@@ -282,7 +282,7 @@ function WaterfallPlot({
282
282
  x: shape.x + x.bandwidth / 2,
283
283
  y: shape.top - 6,
284
284
  textAnchor: "middle",
285
- className: "font-bold text-[11px] tabular-nums",
285
+ className: "font-bold text-fs-110 tabular-nums",
286
286
  style: {
287
287
  fill: shape.bar.kind === "increase" ? DIRECTION_COLORS.up : shape.bar.kind === "decrease" ? DIRECTION_COLORS.down : "var(--ink)",
288
288
  opacity: active != null && active !== i ? 0.45 : 1
@@ -471,7 +471,7 @@ function HorizontalWaterfallPlot({
471
471
  x: shape.right + 6,
472
472
  y: shape.y + band.bandwidth / 2,
473
473
  dy: "0.34em",
474
- className: "font-bold text-[11px] tabular-nums",
474
+ className: "font-bold text-fs-110 tabular-nums",
475
475
  style: {
476
476
  fill: shape.bar.kind === "increase" ? DIRECTION_COLORS.up : shape.bar.kind === "decrease" ? DIRECTION_COLORS.down : "var(--ink)",
477
477
  opacity: active != null && active !== i ? 0.45 : 1
@@ -1,4 +1,6 @@
1
1
  import type { ComponentPropsWithoutRef, ReactNode } from "react";
2
+ import type { ClassNames } from "../../utils/class-names.js";
3
+ export type ActionBarPart = "root" | "count" | "actions" | "clear";
2
4
  export interface ActionBarProps extends Omit<ComponentPropsWithoutRef<"div">, "children"> {
3
5
  /** Number of selected items. The bar renders nothing while it is 0. */
4
6
  selectedCount: number;
@@ -13,6 +15,8 @@ export interface ActionBarProps extends Omit<ComponentPropsWithoutRef<"div">, "c
13
15
  * ancestor (a card, a table wrapper); `static` renders inline.
14
16
  */
15
17
  position?: "fixed" | "absolute" | "static";
18
+ /** Per-part classes merged with `cn`; consumer classes win. `className` still targets the root and is merged last. */
19
+ classNames?: ClassNames<ActionBarPart>;
16
20
  }
17
21
  /** Floating toolbar for bulk actions on a selection. Announces the count politely. */
18
- export declare function ActionBar({ selectedCount, noun, onClear, children, position, className, onKeyDown, ...props }: ActionBarProps): import("react").JSX.Element | null;
22
+ export declare function ActionBar({ selectedCount, noun, onClear, children, position, className, classNames, onKeyDown, ...props }: ActionBarProps): import("react").JSX.Element | null;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import { X } from "lucide-react";
3
+ import { X } from "../../icons/index.js";
4
4
  import { cn } from "../../utils/cn.js";
5
5
  const positionClasses = {
6
6
  fixed: "fixed inset-x-0 bottom-4 mx-auto",
@@ -14,6 +14,7 @@ function ActionBar({
14
14
  children,
15
15
  position = "absolute",
16
16
  className,
17
+ classNames,
17
18
  onKeyDown,
18
19
  ...props
19
20
  }) {
@@ -34,23 +35,40 @@ function ActionBar({
34
35
  className: cn(
35
36
  "@container/action-bar z-40 flex w-fit max-w-[calc(100%-1rem)] flex-wrap items-center gap-density rounded-popover border-card surface-overlay bg-surface-overlay px-control-x py-density-sm shadow-overlay",
36
37
  positionClasses[position],
38
+ classNames?.root,
37
39
  className
38
40
  ),
39
41
  ...props,
40
42
  children: [
41
- /* @__PURE__ */ jsxs("span", { "aria-live": "polite", className: "whitespace-nowrap font-semibold text-control text-ink", children: [
42
- selectedCount,
43
- " ",
44
- selectedCount === 1 ? noun[0] : noun[1]
45
- ] }),
46
- /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-wrap items-center gap-density-sm", children }),
43
+ /* @__PURE__ */ jsxs(
44
+ "span",
45
+ {
46
+ "aria-live": "polite",
47
+ className: cn("whitespace-nowrap font-semibold text-control text-ink", classNames?.count),
48
+ children: [
49
+ selectedCount,
50
+ " ",
51
+ selectedCount === 1 ? noun[0] : noun[1]
52
+ ]
53
+ }
54
+ ),
55
+ /* @__PURE__ */ jsx(
56
+ "div",
57
+ {
58
+ className: cn("flex min-w-0 flex-wrap items-center gap-density-sm", classNames?.actions),
59
+ children
60
+ }
61
+ ),
47
62
  onClear ? /* @__PURE__ */ jsx(
48
63
  "button",
49
64
  {
50
65
  type: "button",
51
66
  "aria-label": "Limpiar selecci\xF3n",
52
67
  onClick: onClear,
53
- className: "pressable inline-flex size-control-sm cursor-pointer items-center justify-center rounded-button text-ink-2 hover:bg-surface-2 hover:text-ink focus-visible:focus-ring",
68
+ className: cn(
69
+ "pressable inline-flex size-control-sm cursor-pointer items-center justify-center rounded-button text-ink-2 hover:bg-surface-2 hover:text-ink focus-visible:focus-ring",
70
+ classNames?.clear
71
+ ),
54
72
  children: /* @__PURE__ */ jsx(X, { className: "size-4", "aria-hidden": "true" })
55
73
  }
56
74
  ) : null
@@ -1 +1 @@
1
- export { ActionBar, type ActionBarProps } from "./action-bar.js";
1
+ export { ActionBar, type ActionBarPart, type ActionBarProps } from "./action-bar.js";
@@ -1,5 +1,7 @@
1
1
  import type { ComponentPropsWithoutRef, ReactNode } from "react";
2
+ import type { ClassNames } from "../../utils/class-names.js";
2
3
  export type BannerTone = "info" | "success" | "warning" | "danger";
4
+ export type BannerPart = "root" | "icon" | "body" | "title" | "action";
3
5
  export interface BannerProps extends Omit<ComponentPropsWithoutRef<"div">, "role" | "title"> {
4
6
  tone?: BannerTone;
5
7
  /** Bold first line above the content. */
@@ -8,5 +10,7 @@ export interface BannerProps extends Omit<ComponentPropsWithoutRef<"div">, "role
8
10
  icon?: ReactNode;
9
11
  /** Actions on the right, e.g. a retry button. */
10
12
  action?: ReactNode;
13
+ /** Per-part classes merged with `cn`; consumer classes win. `className` still targets the root and is merged last. */
14
+ classNames?: ClassNames<BannerPart>;
11
15
  }
12
- export declare function Banner({ tone, title, icon, action, className, children, ...props }: BannerProps): import("react").JSX.Element;
16
+ export declare function Banner({ tone, title, icon, action, className, classNames, children, ...props }: BannerProps): import("react").JSX.Element;
@@ -25,6 +25,7 @@ function Banner({
25
25
  icon,
26
26
  action,
27
27
  className,
28
+ classNames,
28
29
  children,
29
30
  ...props
30
31
  }) {
@@ -34,18 +35,32 @@ function Banner({
34
35
  {
35
36
  role: toneRole[tone],
36
37
  className: cn(
37
- "flex flex-wrap items-start gap-x-3 gap-y-2 rounded-banner px-3.5 py-3 text-[13px] text-ink",
38
+ "flex flex-wrap items-start gap-x-3 gap-y-2 rounded-banner px-3.5 py-3 text-fs-130 text-ink",
38
39
  toneClasses[tone],
40
+ classNames?.root,
39
41
  className
40
42
  ),
41
43
  ...props,
42
44
  children: [
43
- resolvedIcon ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: cn("mt-0.5 shrink-0", toneIconClasses[tone]), children: resolvedIcon }) : null,
44
- /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-[1_1_14rem] break-words", children: [
45
- title ? /* @__PURE__ */ jsx("p", { className: "font-semibold", children: title }) : null,
45
+ resolvedIcon ? /* @__PURE__ */ jsx(
46
+ "span",
47
+ {
48
+ "aria-hidden": "true",
49
+ className: cn("mt-0.5 shrink-0", toneIconClasses[tone], classNames?.icon),
50
+ children: resolvedIcon
51
+ }
52
+ ) : null,
53
+ /* @__PURE__ */ jsxs("div", { className: cn("min-w-0 flex-[1_1_14rem] break-words", classNames?.body), children: [
54
+ title ? /* @__PURE__ */ jsx("p", { className: cn("font-semibold", classNames?.title), children: title }) : null,
46
55
  children
47
56
  ] }),
48
- action ? /* @__PURE__ */ jsx("div", { className: "ml-auto flex shrink-0 flex-wrap items-center gap-1.5", children: action }) : null
57
+ action ? /* @__PURE__ */ jsx(
58
+ "div",
59
+ {
60
+ className: cn("ml-auto flex shrink-0 flex-wrap items-center gap-1.5", classNames?.action),
61
+ children: action
62
+ }
63
+ ) : null
49
64
  ]
50
65
  }
51
66
  );
@@ -17,7 +17,7 @@ function CardHeader({ className, ...props }) {
17
17
  "div",
18
18
  {
19
19
  className: cn(
20
- "flex min-h-[50px] flex-wrap items-center gap-2.5 border-b-divider px-card py-3",
20
+ "flex min-h-12.5 flex-wrap items-center gap-2.5 border-b-divider px-card py-3",
21
21
  className
22
22
  ),
23
23
  ...props
@@ -1,9 +1,13 @@
1
1
  import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
+ import type { ClassNames } from "../../utils/class-names.js";
3
+ export type CarouselPart = "root" | "track" | "slide" | "controls" | "previous" | "next" | "playPause" | "dots" | "dot";
2
4
  export interface CarouselProps extends Omit<ComponentPropsWithoutRef<"section">, "children"> {
3
5
  children: ReactNode;
4
6
  /** Accessible name of the carousel. */
5
7
  label: string;
6
- /** Classes for each slide's width. Default: 1 per view, 2 from 32rem, 3 from 48rem. */
8
+ /** Per-part classes merged with `cn`; consumer classes win. `className` still targets the root and is merged last. */
9
+ classNames?: ClassNames<CarouselPart>;
10
+ /** Classes for each slide's width. Default: 1 per view, 2 from 32rem, 3 from 48rem. Prefer `classNames.slide` to add classes without replacing this default. */
7
11
  slideClassName?: string;
8
12
  /** Wrap around at the ends. */
9
13
  loop?: boolean;
@@ -16,4 +20,4 @@ export interface CarouselProps extends Omit<ComponentPropsWithoutRef<"section">,
16
20
  * Scroll-snap carousel. Native scrolling and swipe work with no JS; buttons, dots, arrow keys
17
21
  * and optional autoplay are layered on top. Slides per view follow the container width.
18
22
  */
19
- export declare function Carousel({ children, label, slideClassName, loop, autoplay, showDots, showArrows, className, ...props }: CarouselProps): import("react").JSX.Element;
23
+ export declare function Carousel({ children, label, slideClassName, loop, autoplay, showDots, showArrows, className, classNames, ...props }: CarouselProps): import("react").JSX.Element;
@@ -1,6 +1,5 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import { ChevronLeft, ChevronRight, Pause, Play } from "lucide-react";
4
3
  import {
5
4
  Children,
6
5
  useCallback,
@@ -8,6 +7,7 @@ import {
8
7
  useRef,
9
8
  useState
10
9
  } from "react";
10
+ import { ChevronLeft, ChevronRight, Pause, Play } from "../../icons/index.js";
11
11
  import { cn } from "../../utils/cn.js";
12
12
  import { usePrefersReducedMotion } from "../../utils/reduced-motion.js";
13
13
  import { nearestIndex, stepIndex } from "./model.js";
@@ -21,6 +21,7 @@ function Carousel({
21
21
  showDots = true,
22
22
  showArrows = true,
23
23
  className,
24
+ classNames,
24
25
  ...props
25
26
  }) {
26
27
  const slides = Children.toArray(children);
@@ -84,7 +85,11 @@ function Carousel({
84
85
  {
85
86
  "aria-roledescription": "carrusel",
86
87
  "aria-label": label,
87
- className: cn("@container/carousel flex min-w-0 flex-col gap-density", className),
88
+ className: cn(
89
+ "@container/carousel flex min-w-0 flex-col gap-density",
90
+ classNames?.root,
91
+ className
92
+ ),
88
93
  onMouseEnter: () => setHovered(true),
89
94
  onMouseLeave: () => setHovered(false),
90
95
  onFocus: () => setFocused(true),
@@ -100,7 +105,10 @@ function Carousel({
100
105
  "aria-label": `${label}: usa las flechas para cambiar de diapositiva`,
101
106
  onScroll: syncIndex,
102
107
  onKeyDown,
103
- className: "relative flex snap-x snap-mandatory gap-density overflow-x-auto scroll-smooth rounded-card outline-none [scrollbar-width:none] focus-visible:focus-ring motion-reduce:scroll-auto [&::-webkit-scrollbar]:hidden",
108
+ className: cn(
109
+ "relative flex snap-x snap-mandatory gap-density overflow-x-auto scroll-smooth rounded-card outline-none [scrollbar-width:none] focus-visible:focus-ring motion-reduce:scroll-auto [&::-webkit-scrollbar]:hidden",
110
+ classNames?.track
111
+ ),
104
112
  children: slides.map((slide, i) => (
105
113
  // biome-ignore lint/a11y/useSemanticElements: slide of a carousel, not a form group
106
114
  /* @__PURE__ */ jsx(
@@ -110,7 +118,7 @@ function Carousel({
110
118
  role: "group",
111
119
  "aria-roledescription": "diapositiva",
112
120
  "aria-label": `${i + 1} de ${count}`,
113
- className: cn("min-w-0 shrink-0 snap-start", slideClassName),
121
+ className: cn("min-w-0 shrink-0 snap-start", slideClassName, classNames?.slide),
114
122
  children: slide
115
123
  },
116
124
  i
@@ -118,7 +126,7 @@ function Carousel({
118
126
  ))
119
127
  }
120
128
  ),
121
- count > 1 && (showArrows || showDots || interval > 0) ? /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-density", children: [
129
+ count > 1 && (showArrows || showDots || interval > 0) ? /* @__PURE__ */ jsxs("div", { className: cn("flex items-center justify-between gap-density", classNames?.controls), children: [
122
130
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-density-sm", children: [
123
131
  showArrows ? /* @__PURE__ */ jsx(
124
132
  "button",
@@ -127,7 +135,7 @@ function Carousel({
127
135
  "aria-label": "Diapositiva anterior",
128
136
  disabled: !loop && index === 0,
129
137
  onClick: () => step(-1),
130
- className: iconButton,
138
+ className: cn(iconButton, classNames?.previous),
131
139
  children: /* @__PURE__ */ jsx(ChevronLeft, { className: "size-4", "aria-hidden": "true" })
132
140
  }
133
141
  ) : null,
@@ -138,25 +146,35 @@ function Carousel({
138
146
  "aria-label": userPaused ? "Reanudar reproducci\xF3n autom\xE1tica" : "Pausar reproducci\xF3n autom\xE1tica",
139
147
  "aria-pressed": userPaused,
140
148
  onClick: () => setUserPaused((paused) => !paused),
141
- className: iconButton,
149
+ className: cn(iconButton, classNames?.playPause),
142
150
  children: userPaused ? /* @__PURE__ */ jsx(Play, { className: "size-4", "aria-hidden": "true" }) : /* @__PURE__ */ jsx(Pause, { className: "size-4", "aria-hidden": "true" })
143
151
  }
144
152
  ) : null
145
153
  ] }),
146
- showDots ? /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-wrap items-center justify-center gap-1.5", children: slides.map((_, i) => /* @__PURE__ */ jsx(
147
- "button",
154
+ showDots ? /* @__PURE__ */ jsx(
155
+ "div",
148
156
  {
149
- type: "button",
150
- "aria-label": `Ir a la diapositiva ${i + 1}`,
151
- "aria-current": i === index ? "true" : void 0,
152
- onClick: () => goTo(i),
153
157
  className: cn(
154
- "h-2 cursor-pointer rounded-badge transition-all duration-(--motion-duration) ease-style focus-visible:focus-ring",
155
- i === index ? "w-5 bg-accent" : "w-2 bg-line-strong hover:bg-ink-3"
156
- )
157
- },
158
- i
159
- )) }) : null,
158
+ "flex min-w-0 flex-wrap items-center justify-center gap-1.5",
159
+ classNames?.dots
160
+ ),
161
+ children: slides.map((_, i) => /* @__PURE__ */ jsx(
162
+ "button",
163
+ {
164
+ type: "button",
165
+ "aria-label": `Ir a la diapositiva ${i + 1}`,
166
+ "aria-current": i === index ? "true" : void 0,
167
+ onClick: () => goTo(i),
168
+ className: cn(
169
+ "h-2 cursor-pointer rounded-badge transition-all duration-(--motion-duration) ease-style focus-visible:focus-ring",
170
+ i === index ? "w-5 bg-accent" : "w-2 bg-line-strong hover:bg-ink-3",
171
+ classNames?.dot
172
+ )
173
+ },
174
+ i
175
+ ))
176
+ }
177
+ ) : null,
160
178
  showArrows ? /* @__PURE__ */ jsx(
161
179
  "button",
162
180
  {
@@ -164,7 +182,7 @@ function Carousel({
164
182
  "aria-label": "Diapositiva siguiente",
165
183
  disabled: !loop && index >= count - 1,
166
184
  onClick: () => step(1),
167
- className: iconButton,
185
+ className: cn(iconButton, classNames?.next),
168
186
  children: /* @__PURE__ */ jsx(ChevronRight, { className: "size-4", "aria-hidden": "true" })
169
187
  }
170
188
  ) : null
@@ -1,2 +1,2 @@
1
- export { Carousel, type CarouselProps } from "./carousel.js";
1
+ export { Carousel, type CarouselPart, type CarouselProps } from "./carousel.js";
2
2
  export { nearestIndex, stepIndex } from "./model.js";