@d4gger/design-system 3.0.0 → 3.0.1

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 (403) hide show
  1. package/dist/{components/controlGroup/ControlGroup.cjs → _internal/floatingLayer.cjs} +11 -26
  2. package/dist/_internal/floatingLayer.cjs.map +7 -0
  3. package/dist/_internal/floatingLayer.d.cts +28 -0
  4. package/dist/_internal/floatingLayer.d.cts.map +1 -0
  5. package/dist/_internal/floatingLayer.d.mts +28 -0
  6. package/dist/_internal/floatingLayer.d.mts.map +1 -0
  7. package/dist/_internal/floatingLayer.d.ts +28 -0
  8. package/dist/_internal/floatingLayer.d.ts.map +1 -0
  9. package/dist/_internal/floatingLayer.js +11 -0
  10. package/dist/_internal/floatingLayer.js.map +7 -0
  11. package/dist/components/banner/Banner.cjs +105 -0
  12. package/dist/components/banner/Banner.cjs.map +7 -0
  13. package/dist/components/banner/Banner.d.cts +27 -0
  14. package/dist/components/banner/Banner.d.cts.map +1 -0
  15. package/dist/components/banner/Banner.d.mts +27 -0
  16. package/dist/components/banner/Banner.d.mts.map +1 -0
  17. package/dist/components/banner/Banner.d.ts +27 -0
  18. package/dist/components/banner/Banner.d.ts.map +1 -0
  19. package/dist/components/banner/Banner.js +80 -0
  20. package/dist/components/banner/Banner.js.map +7 -0
  21. package/dist/components/{controlGroup/controlGroup.props.cjs → banner/banner.props.cjs} +23 -16
  22. package/dist/components/banner/banner.props.cjs.map +7 -0
  23. package/dist/components/banner/banner.props.d.cts +32 -0
  24. package/dist/components/banner/banner.props.d.cts.map +1 -0
  25. package/dist/components/banner/banner.props.d.mts +32 -0
  26. package/dist/components/banner/banner.props.d.mts.map +1 -0
  27. package/dist/components/banner/banner.props.d.ts +32 -0
  28. package/dist/components/banner/banner.props.d.ts.map +1 -0
  29. package/dist/components/banner/banner.props.js +27 -0
  30. package/dist/components/banner/banner.props.js.map +7 -0
  31. package/dist/components/banner.css +60 -0
  32. package/dist/components/button-group.css +25 -0
  33. package/dist/components/button.css +9 -0
  34. package/dist/components/card.css +3 -0
  35. package/dist/components/carousel/Carousel.cjs +109 -39
  36. package/dist/components/carousel/Carousel.cjs.map +3 -3
  37. package/dist/components/carousel/Carousel.d.cts.map +1 -1
  38. package/dist/components/carousel/Carousel.d.mts.map +1 -1
  39. package/dist/components/carousel/Carousel.d.ts.map +1 -1
  40. package/dist/components/carousel/Carousel.js +111 -41
  41. package/dist/components/carousel/Carousel.js.map +3 -3
  42. package/dist/components/carousel.css +93 -26
  43. package/dist/components/chart/Chart.cjs +61 -11
  44. package/dist/components/chart/Chart.cjs.map +2 -2
  45. package/dist/components/chart/Chart.d.cts.map +1 -1
  46. package/dist/components/chart/Chart.d.mts.map +1 -1
  47. package/dist/components/chart/Chart.d.ts.map +1 -1
  48. package/dist/components/chart/Chart.js +62 -11
  49. package/dist/components/chart/Chart.js.map +2 -2
  50. package/dist/components/chart.css +10 -1
  51. package/dist/components/checkbox.css +14 -0
  52. package/dist/components/combobox/Combobox.cjs +3 -1
  53. package/dist/components/combobox/Combobox.cjs.map +2 -2
  54. package/dist/components/combobox/Combobox.d.cts.map +1 -1
  55. package/dist/components/combobox/Combobox.d.mts.map +1 -1
  56. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  57. package/dist/components/combobox/Combobox.js +3 -1
  58. package/dist/components/combobox/Combobox.js.map +2 -2
  59. package/dist/components/combobox.css +5 -1
  60. package/dist/components/command/Command.cjs +1 -1
  61. package/dist/components/command/Command.cjs.map +2 -2
  62. package/dist/components/command/Command.js +1 -1
  63. package/dist/components/command/Command.js.map +2 -2
  64. package/dist/components/context-menu.css +1 -1
  65. package/dist/components/copy-field.css +18 -0
  66. package/dist/components/copyField/CopyField.cjs +3 -3
  67. package/dist/components/copyField/CopyField.cjs.map +2 -2
  68. package/dist/components/copyField/CopyField.d.cts.map +1 -1
  69. package/dist/components/copyField/CopyField.d.mts.map +1 -1
  70. package/dist/components/copyField/CopyField.d.ts.map +1 -1
  71. package/dist/components/copyField/CopyField.js +3 -3
  72. package/dist/components/copyField/CopyField.js.map +2 -2
  73. package/dist/components/data-list.css +19 -4
  74. package/dist/components/data-table.css +190 -0
  75. package/dist/components/dataTable/DataTable.cjs +193 -68
  76. package/dist/components/dataTable/DataTable.cjs.map +3 -3
  77. package/dist/components/dataTable/DataTable.d.cts +29 -1
  78. package/dist/components/dataTable/DataTable.d.cts.map +1 -1
  79. package/dist/components/dataTable/DataTable.d.mts +29 -1
  80. package/dist/components/dataTable/DataTable.d.mts.map +1 -1
  81. package/dist/components/dataTable/DataTable.d.ts +29 -1
  82. package/dist/components/dataTable/DataTable.d.ts.map +1 -1
  83. package/dist/components/dataTable/DataTable.js +193 -68
  84. package/dist/components/dataTable/DataTable.js.map +2 -2
  85. package/dist/components/dataTable/DataTableContext.cjs +41 -0
  86. package/dist/components/dataTable/DataTableContext.cjs.map +7 -0
  87. package/dist/components/dataTable/DataTableContext.d.cts +23 -0
  88. package/dist/components/dataTable/DataTableContext.d.cts.map +1 -0
  89. package/dist/components/dataTable/DataTableContext.d.mts +23 -0
  90. package/dist/components/dataTable/DataTableContext.d.mts.map +1 -0
  91. package/dist/components/dataTable/DataTableContext.d.ts +23 -0
  92. package/dist/components/dataTable/DataTableContext.d.ts.map +1 -0
  93. package/dist/components/dataTable/DataTableContext.js +11 -0
  94. package/dist/components/dataTable/DataTableContext.js.map +7 -0
  95. package/dist/components/dataTable/DataTablePagination.cjs +72 -47
  96. package/dist/components/dataTable/DataTablePagination.cjs.map +2 -2
  97. package/dist/components/dataTable/DataTablePagination.d.cts +5 -1
  98. package/dist/components/dataTable/DataTablePagination.d.cts.map +1 -1
  99. package/dist/components/dataTable/DataTablePagination.d.mts +5 -1
  100. package/dist/components/dataTable/DataTablePagination.d.mts.map +1 -1
  101. package/dist/components/dataTable/DataTablePagination.d.ts +5 -1
  102. package/dist/components/dataTable/DataTablePagination.d.ts.map +1 -1
  103. package/dist/components/dataTable/DataTablePagination.js +75 -47
  104. package/dist/components/dataTable/DataTablePagination.js.map +2 -2
  105. package/dist/components/dataTable/DataTableToolbar.cjs +122 -93
  106. package/dist/components/dataTable/DataTableToolbar.cjs.map +2 -2
  107. package/dist/components/dataTable/DataTableToolbar.d.cts +6 -5
  108. package/dist/components/dataTable/DataTableToolbar.d.cts.map +1 -1
  109. package/dist/components/dataTable/DataTableToolbar.d.mts +6 -5
  110. package/dist/components/dataTable/DataTableToolbar.d.mts.map +1 -1
  111. package/dist/components/dataTable/DataTableToolbar.d.ts +6 -5
  112. package/dist/components/dataTable/DataTableToolbar.d.ts.map +1 -1
  113. package/dist/components/dataTable/DataTableToolbar.js +123 -94
  114. package/dist/components/dataTable/DataTableToolbar.js.map +2 -2
  115. package/dist/components/dataTable/dataTable.export.cjs +83 -0
  116. package/dist/components/dataTable/dataTable.export.cjs.map +7 -0
  117. package/dist/components/dataTable/dataTable.export.d.cts +11 -0
  118. package/dist/components/dataTable/dataTable.export.d.cts.map +1 -0
  119. package/dist/components/dataTable/dataTable.export.d.mts +11 -0
  120. package/dist/components/dataTable/dataTable.export.d.mts.map +1 -0
  121. package/dist/components/dataTable/dataTable.export.d.ts +11 -0
  122. package/dist/components/dataTable/dataTable.export.d.ts.map +1 -0
  123. package/dist/components/dataTable/dataTable.export.js +63 -0
  124. package/dist/components/dataTable/dataTable.export.js.map +7 -0
  125. package/dist/components/dataTable/dataTable.props.cjs +23 -1
  126. package/dist/components/dataTable/dataTable.props.cjs.map +2 -2
  127. package/dist/components/dataTable/dataTable.props.d.cts +21 -1
  128. package/dist/components/dataTable/dataTable.props.d.cts.map +1 -1
  129. package/dist/components/dataTable/dataTable.props.d.mts +21 -1
  130. package/dist/components/dataTable/dataTable.props.d.mts.map +1 -1
  131. package/dist/components/dataTable/dataTable.props.d.ts +21 -1
  132. package/dist/components/dataTable/dataTable.props.d.ts.map +1 -1
  133. package/dist/components/dataTable/dataTable.props.js +23 -1
  134. package/dist/components/dataTable/dataTable.props.js.map +2 -2
  135. package/dist/components/dialog/Dialog.cjs +2 -1
  136. package/dist/components/dialog/Dialog.cjs.map +2 -2
  137. package/dist/components/dialog/Dialog.d.cts.map +1 -1
  138. package/dist/components/dialog/Dialog.d.mts.map +1 -1
  139. package/dist/components/dialog/Dialog.d.ts.map +1 -1
  140. package/dist/components/dialog/Dialog.js +2 -1
  141. package/dist/components/dialog/Dialog.js.map +2 -2
  142. package/dist/components/dropdown-menu.css +1 -1
  143. package/dist/components/empty-state.css +5 -0
  144. package/dist/components/fileUpload/FileUpload.cjs +10 -1
  145. package/dist/components/fileUpload/FileUpload.cjs.map +2 -2
  146. package/dist/components/fileUpload/FileUpload.d.cts +1 -0
  147. package/dist/components/fileUpload/FileUpload.d.cts.map +1 -1
  148. package/dist/components/fileUpload/FileUpload.d.mts +1 -0
  149. package/dist/components/fileUpload/FileUpload.d.mts.map +1 -1
  150. package/dist/components/fileUpload/FileUpload.d.ts +1 -0
  151. package/dist/components/fileUpload/FileUpload.d.ts.map +1 -1
  152. package/dist/components/fileUpload/FileUpload.js +10 -1
  153. package/dist/components/fileUpload/FileUpload.js.map +2 -2
  154. package/dist/components/filter-bar.css +380 -8
  155. package/dist/components/filterBar/FilterBar.cjs +630 -1
  156. package/dist/components/filterBar/FilterBar.cjs.map +2 -2
  157. package/dist/components/filterBar/FilterBar.d.cts +132 -2
  158. package/dist/components/filterBar/FilterBar.d.cts.map +1 -1
  159. package/dist/components/filterBar/FilterBar.d.mts +132 -2
  160. package/dist/components/filterBar/FilterBar.d.mts.map +1 -1
  161. package/dist/components/filterBar/FilterBar.d.ts +132 -2
  162. package/dist/components/filterBar/FilterBar.d.ts.map +1 -1
  163. package/dist/components/filterBar/FilterBar.js +631 -2
  164. package/dist/components/filterBar/FilterBar.js.map +2 -2
  165. package/dist/components/floating-panel.css +1 -1
  166. package/dist/components/fontProvider/FontProvider.cjs +1 -1
  167. package/dist/components/fontProvider/FontProvider.cjs.map +1 -1
  168. package/dist/components/fontProvider/FontProvider.js +1 -1
  169. package/dist/components/fontProvider/FontProvider.js.map +1 -1
  170. package/dist/components/icon/Icon.cjs +25 -2
  171. package/dist/components/icon/Icon.cjs.map +2 -2
  172. package/dist/components/icon/Icon.d.cts +29 -1
  173. package/dist/components/icon/Icon.d.cts.map +1 -1
  174. package/dist/components/icon/Icon.d.mts +29 -1
  175. package/dist/components/icon/Icon.d.mts.map +1 -1
  176. package/dist/components/icon/Icon.d.ts +29 -1
  177. package/dist/components/icon/Icon.d.ts.map +1 -1
  178. package/dist/components/icon/Icon.js +33 -2
  179. package/dist/components/icon/Icon.js.map +2 -2
  180. package/dist/components/icon/icons.cjs +16 -0
  181. package/dist/components/icon/icons.cjs.map +2 -2
  182. package/dist/components/icon/icons.d.cts +40 -0
  183. package/dist/components/icon/icons.d.cts.map +1 -1
  184. package/dist/components/icon/icons.d.mts +40 -0
  185. package/dist/components/icon/icons.d.mts.map +1 -1
  186. package/dist/components/icon/icons.d.ts +40 -0
  187. package/dist/components/icon/icons.d.ts.map +1 -1
  188. package/dist/components/icon/icons.js +16 -0
  189. package/dist/components/icon/icons.js.map +2 -2
  190. package/dist/components/icon-button.css +29 -0
  191. package/dist/components/index.cjs +1 -1
  192. package/dist/components/index.cjs.map +2 -2
  193. package/dist/components/index.d.cts +1 -1
  194. package/dist/components/index.d.cts.map +1 -1
  195. package/dist/components/index.d.mts +1 -1
  196. package/dist/components/index.d.mts.map +1 -1
  197. package/dist/components/index.d.ts +1 -1
  198. package/dist/components/index.d.ts.map +1 -1
  199. package/dist/components/index.js +1 -1
  200. package/dist/components/index.js.map +1 -1
  201. package/dist/components/item/Item.cjs +1 -1
  202. package/dist/components/item/Item.cjs.map +2 -2
  203. package/dist/components/item/Item.js +1 -1
  204. package/dist/components/item/Item.js.map +2 -2
  205. package/dist/components/item.css +12 -1
  206. package/dist/components/marquee/Marquee.cjs +1 -1
  207. package/dist/components/marquee/Marquee.cjs.map +2 -2
  208. package/dist/components/marquee/Marquee.js +1 -1
  209. package/dist/components/marquee/Marquee.js.map +2 -2
  210. package/dist/components/marquee.css +6 -0
  211. package/dist/components/menu/Menu.cjs +3 -1
  212. package/dist/components/menu/Menu.cjs.map +2 -2
  213. package/dist/components/menu/Menu.d.cts.map +1 -1
  214. package/dist/components/menu/Menu.d.mts.map +1 -1
  215. package/dist/components/menu/Menu.d.ts.map +1 -1
  216. package/dist/components/menu/Menu.js +3 -1
  217. package/dist/components/menu/Menu.js.map +2 -2
  218. package/dist/components/menubar.css +1 -1
  219. package/dist/components/metric.css +5 -0
  220. package/dist/components/pagination/Pagination.cjs +143 -17
  221. package/dist/components/pagination/Pagination.cjs.map +2 -2
  222. package/dist/components/pagination/Pagination.d.cts +64 -4
  223. package/dist/components/pagination/Pagination.d.cts.map +1 -1
  224. package/dist/components/pagination/Pagination.d.mts +64 -4
  225. package/dist/components/pagination/Pagination.d.mts.map +1 -1
  226. package/dist/components/pagination/Pagination.d.ts +64 -4
  227. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  228. package/dist/components/pagination/Pagination.js +143 -17
  229. package/dist/components/pagination/Pagination.js.map +2 -2
  230. package/dist/components/pagination.css +50 -8
  231. package/dist/components/phoneInput/PhoneInput.cjs +18 -13
  232. package/dist/components/phoneInput/PhoneInput.cjs.map +2 -2
  233. package/dist/components/phoneInput/PhoneInput.d.cts.map +1 -1
  234. package/dist/components/phoneInput/PhoneInput.d.mts.map +1 -1
  235. package/dist/components/phoneInput/PhoneInput.d.ts.map +1 -1
  236. package/dist/components/phoneInput/PhoneInput.js +19 -14
  237. package/dist/components/phoneInput/PhoneInput.js.map +2 -2
  238. package/dist/components/popover/Popover.cjs +2 -1
  239. package/dist/components/popover/Popover.cjs.map +2 -2
  240. package/dist/components/popover/Popover.d.cts.map +1 -1
  241. package/dist/components/popover/Popover.d.mts.map +1 -1
  242. package/dist/components/popover/Popover.d.ts.map +1 -1
  243. package/dist/components/popover/Popover.js +2 -1
  244. package/dist/components/popover/Popover.js.map +2 -2
  245. package/dist/components/prose.css +1 -1
  246. package/dist/components/qr-code.css +5 -15
  247. package/dist/components/radio-group.css +19 -0
  248. package/dist/components/radioGroup/RadioGroup.cjs +3 -2
  249. package/dist/components/radioGroup/RadioGroup.cjs.map +2 -2
  250. package/dist/components/radioGroup/RadioGroup.d.cts.map +1 -1
  251. package/dist/components/radioGroup/RadioGroup.d.mts.map +1 -1
  252. package/dist/components/radioGroup/RadioGroup.d.ts.map +1 -1
  253. package/dist/components/radioGroup/RadioGroup.js +3 -2
  254. package/dist/components/radioGroup/RadioGroup.js.map +2 -2
  255. package/dist/components/radioGroup/radioGroup.props.cjs +1 -1
  256. package/dist/components/radioGroup/radioGroup.props.cjs.map +2 -2
  257. package/dist/components/radioGroup/radioGroup.props.d.cts +1 -1
  258. package/dist/components/radioGroup/radioGroup.props.d.mts +1 -1
  259. package/dist/components/radioGroup/radioGroup.props.d.ts +1 -1
  260. package/dist/components/radioGroup/radioGroup.props.js +1 -1
  261. package/dist/components/radioGroup/radioGroup.props.js.map +2 -2
  262. package/dist/components/rating.css +12 -0
  263. package/dist/components/result.css +2 -1
  264. package/dist/components/richTextEditor/RichTextEditor.cjs +11 -3
  265. package/dist/components/richTextEditor/RichTextEditor.cjs.map +2 -2
  266. package/dist/components/richTextEditor/RichTextEditor.d.cts.map +1 -1
  267. package/dist/components/richTextEditor/RichTextEditor.d.mts.map +1 -1
  268. package/dist/components/richTextEditor/RichTextEditor.d.ts.map +1 -1
  269. package/dist/components/richTextEditor/RichTextEditor.js +11 -3
  270. package/dist/components/richTextEditor/RichTextEditor.js.map +2 -2
  271. package/dist/components/segmented-control.css +80 -4
  272. package/dist/components/segmentedControl/SegmentedControl.cjs +18 -5
  273. package/dist/components/segmentedControl/SegmentedControl.cjs.map +2 -2
  274. package/dist/components/segmentedControl/SegmentedControl.d.cts.map +1 -1
  275. package/dist/components/segmentedControl/SegmentedControl.d.mts.map +1 -1
  276. package/dist/components/segmentedControl/SegmentedControl.d.ts.map +1 -1
  277. package/dist/components/segmentedControl/SegmentedControl.js +18 -5
  278. package/dist/components/segmentedControl/SegmentedControl.js.map +2 -2
  279. package/dist/components/segmentedControl/segmentedControl.props.cjs +10 -0
  280. package/dist/components/segmentedControl/segmentedControl.props.cjs.map +2 -2
  281. package/dist/components/segmentedControl/segmentedControl.props.d.cts +9 -0
  282. package/dist/components/segmentedControl/segmentedControl.props.d.cts.map +1 -1
  283. package/dist/components/segmentedControl/segmentedControl.props.d.mts +9 -0
  284. package/dist/components/segmentedControl/segmentedControl.props.d.mts.map +1 -1
  285. package/dist/components/segmentedControl/segmentedControl.props.d.ts +9 -0
  286. package/dist/components/segmentedControl/segmentedControl.props.d.ts.map +1 -1
  287. package/dist/components/segmentedControl/segmentedControl.props.js +10 -0
  288. package/dist/components/segmentedControl/segmentedControl.props.js.map +2 -2
  289. package/dist/components/select/Select.cjs +3 -1
  290. package/dist/components/select/Select.cjs.map +2 -2
  291. package/dist/components/select/Select.d.cts.map +1 -1
  292. package/dist/components/select/Select.d.mts.map +1 -1
  293. package/dist/components/select/Select.d.ts.map +1 -1
  294. package/dist/components/select/Select.js +3 -1
  295. package/dist/components/select/Select.js.map +2 -2
  296. package/dist/components/select.css +1 -1
  297. package/dist/components/sonner.css +1 -1
  298. package/dist/components/sortableList/SortableList.cjs +8 -2
  299. package/dist/components/sortableList/SortableList.cjs.map +2 -2
  300. package/dist/components/sortableList/SortableList.d.cts.map +1 -1
  301. package/dist/components/sortableList/SortableList.d.mts.map +1 -1
  302. package/dist/components/sortableList/SortableList.d.ts.map +1 -1
  303. package/dist/components/sortableList/SortableList.js +8 -2
  304. package/dist/components/sortableList/SortableList.js.map +2 -2
  305. package/dist/components/stat-card.css +2 -0
  306. package/dist/components/table/Table.cjs +3 -2
  307. package/dist/components/table/Table.cjs.map +2 -2
  308. package/dist/components/table/Table.d.cts.map +1 -1
  309. package/dist/components/table/Table.d.mts.map +1 -1
  310. package/dist/components/table/Table.d.ts.map +1 -1
  311. package/dist/components/table/Table.js +3 -2
  312. package/dist/components/table/Table.js.map +2 -2
  313. package/dist/components/table/table.props.cjs +6 -0
  314. package/dist/components/table/table.props.cjs.map +2 -2
  315. package/dist/components/table/table.props.d.cts +5 -0
  316. package/dist/components/table/table.props.d.cts.map +1 -1
  317. package/dist/components/table/table.props.d.mts +5 -0
  318. package/dist/components/table/table.props.d.mts.map +1 -1
  319. package/dist/components/table/table.props.d.ts +5 -0
  320. package/dist/components/table/table.props.d.ts.map +1 -1
  321. package/dist/components/table/table.props.js +6 -0
  322. package/dist/components/table/table.props.js.map +2 -2
  323. package/dist/components/table.css +20 -13
  324. package/dist/components/tabs.css +10 -0
  325. package/dist/components/timeline.css +54 -18
  326. package/dist/components/toast.css +33 -1
  327. package/dist/components/toggle-group.css +5 -0
  328. package/dist/components.css +1 -2
  329. package/dist/docs/README.md +1 -1
  330. package/dist/docs/component-contract.md +4 -4
  331. package/dist/docs/component-index.json +9 -9
  332. package/dist/docs/components/banner.md +152 -0
  333. package/dist/docs/components/button-group.md +4 -3
  334. package/dist/docs/components/button.md +2 -2
  335. package/dist/docs/components/card.md +1 -0
  336. package/dist/docs/components/carousel.md +55 -32
  337. package/dist/docs/components/chart.md +25 -7
  338. package/dist/docs/components/checkbox.md +4 -0
  339. package/dist/docs/components/combobox.md +3 -1
  340. package/dist/docs/components/command.md +2 -2
  341. package/dist/docs/components/copy-field.md +2 -2
  342. package/dist/docs/components/data-list.md +15 -3
  343. package/dist/docs/components/data-table.md +98 -17
  344. package/dist/docs/components/dialog.md +4 -0
  345. package/dist/docs/components/dropdown-menu.md +2 -1
  346. package/dist/docs/components/empty-state.md +3 -1
  347. package/dist/docs/components/file-upload.md +1 -0
  348. package/dist/docs/components/filter-bar.md +193 -8
  349. package/dist/docs/components/floating-panel.md +8 -8
  350. package/dist/docs/components/icon-button.md +4 -1
  351. package/dist/docs/components/item.md +18 -13
  352. package/dist/docs/components/marquee.md +2 -2
  353. package/dist/docs/components/menu.md +4 -1
  354. package/dist/docs/components/metric.md +4 -1
  355. package/dist/docs/components/pagination.md +88 -17
  356. package/dist/docs/components/pills.md +1 -1
  357. package/dist/docs/components/popover.md +2 -0
  358. package/dist/docs/components/prose.md +5 -1
  359. package/dist/docs/components/qr-code.md +14 -13
  360. package/dist/docs/components/radio-group.md +5 -2
  361. package/dist/docs/components/rating.md +2 -0
  362. package/dist/docs/components/result.md +6 -0
  363. package/dist/docs/components/segmented-control.md +7 -2
  364. package/dist/docs/components/select.md +3 -2
  365. package/dist/docs/components/sidebar.md +3 -1
  366. package/dist/docs/components/sonner.md +1 -1
  367. package/dist/docs/components/sortable-list.md +2 -0
  368. package/dist/docs/components/stat-card.md +5 -4
  369. package/dist/docs/components/stepper.md +1 -0
  370. package/dist/docs/components/table.md +14 -5
  371. package/dist/docs/components/tag.md +4 -2
  372. package/dist/docs/components/timeline.md +9 -5
  373. package/dist/docs/components/toast.md +1 -1
  374. package/dist/docs/components/toggle-group.md +2 -1
  375. package/dist/fonts.css +1 -1
  376. package/dist/generated/tokens.cjs +1 -1
  377. package/dist/generated/tokens.cjs.map +1 -1
  378. package/dist/generated/tokens.js +1 -1
  379. package/dist/generated/tokens.js.map +1 -1
  380. package/dist/motion.css +18 -3
  381. package/dist/styles.css +1249 -292
  382. package/dist/tokens.css +21 -15
  383. package/package.json +1 -1
  384. package/dist/components/control-group.css +0 -142
  385. package/dist/components/controlGroup/ControlGroup.cjs.map +0 -7
  386. package/dist/components/controlGroup/ControlGroup.d.cts +0 -16
  387. package/dist/components/controlGroup/ControlGroup.d.cts.map +0 -1
  388. package/dist/components/controlGroup/ControlGroup.d.mts +0 -16
  389. package/dist/components/controlGroup/ControlGroup.d.mts.map +0 -1
  390. package/dist/components/controlGroup/ControlGroup.d.ts +0 -16
  391. package/dist/components/controlGroup/ControlGroup.d.ts.map +0 -1
  392. package/dist/components/controlGroup/ControlGroup.js +0 -26
  393. package/dist/components/controlGroup/ControlGroup.js.map +0 -7
  394. package/dist/components/controlGroup/controlGroup.props.cjs.map +0 -7
  395. package/dist/components/controlGroup/controlGroup.props.d.cts +0 -18
  396. package/dist/components/controlGroup/controlGroup.props.d.cts.map +0 -1
  397. package/dist/components/controlGroup/controlGroup.props.d.mts +0 -18
  398. package/dist/components/controlGroup/controlGroup.props.d.mts.map +0 -1
  399. package/dist/components/controlGroup/controlGroup.props.d.ts +0 -18
  400. package/dist/components/controlGroup/controlGroup.props.d.ts.map +0 -1
  401. package/dist/components/controlGroup/controlGroup.props.js +0 -20
  402. package/dist/components/controlGroup/controlGroup.props.js.map +0 -7
  403. package/dist/docs/components/control-group.md +0 -261
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/filterBar/FilterBar.tsx"],
4
- "sourcesContent": ["import * as React from 'react'\nimport classNames from 'classnames'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { Button, type ButtonProps } from '../button/Button'\nimport { filterBarPropDefs } from './filterBar.props'\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\ntype FilterBarOwnProps = GetPropDefTypes<typeof filterBarPropDefs>\ninterface FilterBarProps extends React.HTMLAttributes<HTMLDivElement>, FilterBarOwnProps { activeCount?: number }\ninterface FilterBarClearProps extends Omit<ButtonProps, 'onClick'> {\n onClear?: () => void\n onClick?: React.MouseEventHandler<HTMLButtonElement>\n}\n\nconst FilterBarContext = React.createContext<number | undefined>(undefined)\nconst FilterBarRoot = React.forwardRef<HTMLDivElement, FilterBarProps>((props, forwardedRef) => {\n const { activeCount, children, className, size = 'md', ...rootProps } = extractProps(props, filterBarPropDefs)\n return (\n <FilterBarContext.Provider value={activeCount}>\n <div\n {...rootProps}\n ref={forwardedRef}\n role={rootProps.role ?? 'toolbar'}\n aria-label={rootProps['aria-label'] ?? 'Filters'}\n className={classNames('dsx-filter-bar', className)}\n data-size={size}\n data-active={activeCount !== undefined && activeCount > 0 ? 'true' : undefined}\n >{children}</div>\n </FilterBarContext.Provider>\n )\n})\nFilterBarRoot.displayName = 'FilterBar'\n\nfunction createFilterBarSlot(className: string, displayName: string, defaultRole?: React.AriaRole) {\n const SlotComponent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className: slotClassName, role, ...props }, forwardedRef) => (\n <div\n {...props}\n ref={forwardedRef}\n role={role ?? defaultRole}\n className={classNames(className, slotClassName)}\n />\n ),\n )\n SlotComponent.displayName = displayName\n return SlotComponent\n}\n\nconst FilterBarGroup = createFilterBarSlot('dsx-filter-bar__group', 'FilterBarGroup', 'group')\nconst FilterBarSummary = createFilterBarSlot('dsx-filter-bar__summary', 'FilterBarSummary')\nconst FilterBarActions = createFilterBarSlot('dsx-filter-bar__actions', 'FilterBarActions')\ninterface FilterBarControlProps extends React.HTMLAttributes<HTMLDivElement> { active?: boolean }\nconst FilterBarControl = React.forwardRef<HTMLDivElement, FilterBarControlProps>(({ active = false, className, ...props }, ref) => <div {...props} ref={ref} className={classNames('dsx-filter-bar__control', className)} data-active={active ? 'true' : undefined} />)\nFilterBarControl.displayName = 'FilterBarControl'\nconst FilterBarCount = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(({ children, className, ...props }, ref) => { const count = React.useContext(FilterBarContext); return <span {...props} ref={ref} className={classNames('dsx-filter-bar__count', className)}>{children ?? count ?? 0}</span> })\nFilterBarCount.displayName = 'FilterBarCount'\n\nconst FilterBarClear = React.forwardRef<React.ComponentRef<typeof Button>, FilterBarClearProps>(\n ({ children = 'Clear filters', className, disabled, onClear, onClick, type = 'button', variant = 'ghost', ...props }, forwardedRef) => {\n const activeCount = React.useContext(FilterBarContext)\n return (\n <Button\n {...props}\n ref={forwardedRef}\n type={type}\n variant={variant}\n disabled={disabled ?? activeCount === 0}\n className={classNames('dsx-filter-bar__clear', className)}\n onClick={(event) => {\n onClick?.(event)\n if (!event.defaultPrevented) onClear?.()\n }}\n >\n {children}\n </Button>\n )\n },\n)\nFilterBarClear.displayName = 'FilterBarClear'\n\nconst FilterBar: typeof FilterBarRoot & {\n Group: typeof FilterBarGroup\n Summary: typeof FilterBarSummary\n Actions: typeof FilterBarActions\n Clear: typeof FilterBarClear\n Control: typeof FilterBarControl\n Count: typeof FilterBarCount\n} = Object.assign(FilterBarRoot, {\n Group: FilterBarGroup,\n Summary: FilterBarSummary,\n Actions: FilterBarActions,\n Clear: FilterBarClear,\n Control: FilterBarControl,\n Count: FilterBarCount,\n})\n\nexport { FilterBar, FilterBarActions, FilterBarClear, FilterBarControl, FilterBarCount, FilterBarGroup, FilterBarRoot, FilterBarSummary }\nexport type { FilterBarClearProps, FilterBarProps }\n"],
5
- "mappings": "AAAA,YAAY,WAAW;AACvB,OAAO,gBAAgB;AAEvB,SAAS,oBAAoB;AAC7B,SAAS,cAAgC;AACzC,SAAS,yBAAyB;AAe9B;AALJ,MAAM,mBAAmB,MAAM,cAAkC,MAAS;AAC1E,MAAM,gBAAgB,MAAM,WAA2C,CAAC,OAAO,iBAAiB;AAC9F,QAAM,EAAE,aAAa,UAAU,WAAW,OAAO,MAAM,GAAG,UAAU,IAAI,aAAa,OAAO,iBAAiB;AAC7G,SACE,oBAAC,iBAAiB,UAAjB,EAA0B,OAAO,aAClC;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,KAAK;AAAA,MACL,MAAM,UAAU,QAAQ;AAAA,MACxB,cAAY,UAAU,YAAY,KAAK;AAAA,MACvC,WAAW,WAAW,kBAAkB,SAAS;AAAA,MACjD,aAAW;AAAA,MACX,eAAa,gBAAgB,UAAa,cAAc,IAAI,SAAS;AAAA,MACrE;AAAA;AAAA,EAAS,GACX;AAEJ,CAAC;AACD,cAAc,cAAc;AAE5B,SAAS,oBAAoB,WAAmB,aAAqB,aAA8B;AACjG,QAAM,gBAAgB,MAAM;AAAA,IAC1B,CAAC,EAAE,WAAW,eAAe,MAAM,GAAG,MAAM,GAAG,iBAC7C;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,KAAK;AAAA,QACL,MAAM,QAAQ;AAAA,QACd,WAAW,WAAW,WAAW,aAAa;AAAA;AAAA,IAChD;AAAA,EAEJ;AACA,gBAAc,cAAc;AAC5B,SAAO;AACT;AAEA,MAAM,iBAAiB,oBAAoB,yBAAyB,kBAAkB,OAAO;AAC7F,MAAM,mBAAmB,oBAAoB,2BAA2B,kBAAkB;AAC1F,MAAM,mBAAmB,oBAAoB,2BAA2B,kBAAkB;AAE1F,MAAM,mBAAmB,MAAM,WAAkD,CAAC,EAAE,SAAS,OAAO,WAAW,GAAG,MAAM,GAAG,QAAQ,oBAAC,SAAK,GAAG,OAAO,KAAU,WAAW,WAAW,2BAA2B,SAAS,GAAG,eAAa,SAAS,SAAS,QAAW,CAAE;AACtQ,iBAAiB,cAAc;AAC/B,MAAM,iBAAiB,MAAM,WAAmE,CAAC,EAAE,UAAU,WAAW,GAAG,MAAM,GAAG,QAAQ;AAAE,QAAM,QAAQ,MAAM,WAAW,gBAAgB;AAAG,SAAO,oBAAC,UAAM,GAAG,OAAO,KAAU,WAAW,WAAW,yBAAyB,SAAS,GAAI,sBAAY,SAAS,GAAE;AAAQ,CAAC;AAC9T,eAAe,cAAc;AAE7B,MAAM,iBAAiB,MAAM;AAAA,EAC3B,CAAC,EAAE,WAAW,iBAAiB,WAAW,UAAU,SAAS,SAAS,OAAO,UAAU,UAAU,SAAS,GAAG,MAAM,GAAG,iBAAiB;AACrI,UAAM,cAAc,MAAM,WAAW,gBAAgB;AACrD,WACA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,KAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA,UAAU,YAAY,gBAAgB;AAAA,QACtC,WAAW,WAAW,yBAAyB,SAAS;AAAA,QACxD,SAAS,CAAC,UAAU;AAClB,oBAAU,KAAK;AACf,cAAI,CAAC,MAAM,iBAAkB,WAAU;AAAA,QACzC;AAAA,QAEC;AAAA;AAAA,IACH;AAAA,EAEF;AACF;AACA,eAAe,cAAc;AAE7B,MAAM,YAOF,OAAO,OAAO,eAAe;AAAA,EAC/B,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AACT,CAAC;",
4
+ "sourcesContent": ["import * as React from 'react'\nimport classNames from 'classnames'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { Button, type ButtonProps } from '../button/Button'\nimport { Badge } from '../badge/Badge'\nimport { Icon } from '../icon/Icon'\nimport { IconButton } from '../iconButton/IconButton'\nimport { Input } from '../input/Input'\nimport { NumberInput } from '../numberInput/NumberInput'\nimport { Pill, Pills } from '../pills/Pills'\nimport { Popover } from '../popover/Popover'\nimport { SelectContent, SelectItem, SelectRoot, SelectTrigger, SelectValue } from '../select/Select'\nimport { Slider } from '../slider/Slider'\nimport { TagsInput } from '../tagsInput/TagsInput'\nimport { filterBarPropDefs } from './filterBar.props'\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\ntype FilterBarOwnProps = GetPropDefTypes<typeof filterBarPropDefs>\ninterface FilterBarProps extends React.HTMLAttributes<HTMLDivElement>, FilterBarOwnProps { activeCount?: number }\ninterface FilterBarClearProps extends Omit<ButtonProps, 'onClick'> {\n onClear?: () => void\n onClick?: React.MouseEventHandler<HTMLButtonElement>\n}\n\nconst FilterBarContext = React.createContext<number | undefined>(undefined)\nconst FilterBarRoot = React.forwardRef<HTMLDivElement, FilterBarProps>((props, forwardedRef) => {\n const { activeCount, children, className, size = 'md', ...rootProps } = extractProps(props, filterBarPropDefs)\n return (\n <FilterBarContext.Provider value={activeCount}>\n <div\n {...rootProps}\n ref={forwardedRef}\n role={rootProps.role ?? 'toolbar'}\n aria-label={rootProps['aria-label'] ?? 'Filters'}\n className={classNames('dsx-filter-bar', className)}\n data-size={size}\n data-active={activeCount !== undefined && activeCount > 0 ? 'true' : undefined}\n >{children}</div>\n </FilterBarContext.Provider>\n )\n})\nFilterBarRoot.displayName = 'FilterBar'\n\nfunction createFilterBarSlot(className: string, displayName: string, defaultRole?: React.AriaRole) {\n const SlotComponent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className: slotClassName, role, ...props }, forwardedRef) => (\n <div\n {...props}\n ref={forwardedRef}\n role={role ?? defaultRole}\n className={classNames(className, slotClassName)}\n />\n ),\n )\n SlotComponent.displayName = displayName\n return SlotComponent\n}\n\nconst FilterBarGroup = createFilterBarSlot('dsx-filter-bar__group', 'FilterBarGroup', 'group')\nconst FilterBarSummary = createFilterBarSlot('dsx-filter-bar__summary', 'FilterBarSummary')\nconst FilterBarActions = createFilterBarSlot('dsx-filter-bar__actions', 'FilterBarActions')\ninterface FilterBarControlProps extends React.HTMLAttributes<HTMLDivElement> { active?: boolean }\nconst FilterBarControl = React.forwardRef<HTMLDivElement, FilterBarControlProps>(({ active = false, className, ...props }, ref) => <div {...props} ref={ref} className={classNames('dsx-filter-bar__control', className)} data-active={active ? 'true' : undefined} />)\nFilterBarControl.displayName = 'FilterBarControl'\nconst FilterBarCount = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(({ children, className, ...props }, ref) => { const count = React.useContext(FilterBarContext); return <span {...props} ref={ref} className={classNames('dsx-filter-bar__count', className)}>{children ?? count ?? 0}</span> })\nFilterBarCount.displayName = 'FilterBarCount'\n\nconst FilterBarClear = React.forwardRef<React.ComponentRef<typeof Button>, FilterBarClearProps>(\n ({ children = 'Clear filters', className, disabled, onClear, onClick, type = 'button', variant = 'ghost', ...props }, forwardedRef) => {\n const activeCount = React.useContext(FilterBarContext)\n return (\n <Button\n {...props}\n ref={forwardedRef}\n type={type}\n variant={variant}\n disabled={disabled ?? activeCount === 0}\n className={classNames('dsx-filter-bar__clear', className)}\n onClick={(event) => {\n onClick?.(event)\n if (!event.defaultPrevented) onClear?.()\n }}\n >\n {children}\n </Button>\n )\n },\n)\nFilterBarClear.displayName = 'FilterBarClear'\n\ninterface FilterBarSearchProps extends React.HTMLAttributes<HTMLDivElement> {}\nconst FilterBarSearch = React.forwardRef<HTMLDivElement, FilterBarSearchProps>(({ className, ...props }, ref) => (\n <div {...props} ref={ref} className={classNames('dsx-filter-bar__search', className)} />\n))\nFilterBarSearch.displayName = 'FilterBarSearch'\n\ninterface FilterBarRulesProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'color'> {\n size?: 'sm' | 'md' | 'lg'\n maxVisible?: number\n expanded?: boolean\n defaultExpanded?: boolean\n onExpandedChange?: (expanded: boolean) => void\n showMoreLabel?: (hiddenCount: number) => React.ReactNode\n showLessLabel?: React.ReactNode\n onClearAll?: () => void\n clearAllLabel?: React.ReactNode\n}\nconst FilterBarRules = React.forwardRef<HTMLUListElement, FilterBarRulesProps>(\n (\n {\n children,\n className,\n clearAllLabel = 'Clear',\n defaultExpanded = false,\n expanded: expandedProp,\n maxVisible,\n onClearAll,\n onExpandedChange,\n showLessLabel = 'Show less',\n showMoreLabel = (hiddenCount: number) => `+${hiddenCount} more`,\n size = 'md',\n ...props\n },\n forwardedRef,\n ) => {\n const items = React.Children.toArray(children)\n const [uncontrolledExpanded, setUncontrolledExpanded] = React.useState(defaultExpanded)\n const expanded = expandedProp ?? uncontrolledExpanded\n function setExpanded(next: boolean) {\n if (expandedProp === undefined) setUncontrolledExpanded(next)\n onExpandedChange?.(next)\n }\n const collapsible = maxVisible !== undefined && items.length > maxVisible\n const visibleItems = collapsible && !expanded ? items.slice(0, maxVisible) : items\n const hiddenCount = items.length - visibleItems.length\n return (\n <Pills {...props} ref={forwardedRef} size={size} className={classNames('dsx-filter-bar__rules', className)}>\n {visibleItems}\n {collapsible || onClearAll !== undefined ? (\n <li className=\"dsx-filter-bar__rules-overflow\">\n {collapsible && !expanded ? (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n aria-expanded={false}\n aria-label={`Show ${hiddenCount} more filters`}\n onClick={() => { setExpanded(true) }}\n >\n {showMoreLabel(hiddenCount)}\n </Button>\n ) : null}\n {collapsible && expanded ? (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n aria-expanded={true}\n onClick={() => { setExpanded(false) }}\n >\n {showLessLabel}\n </Button>\n ) : null}\n {onClearAll !== undefined ? (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n aria-label=\"Clear all filters\"\n onClick={onClearAll}\n >\n {clearAllLabel}\n </Button>\n ) : null}\n </li>\n ) : null}\n </Pills>\n )\n },\n)\nFilterBarRules.displayName = 'FilterBarRules'\n\ninterface FilterBarRuleValue {\n field: string\n operator: string\n value: string\n}\ninterface FilterBarRuleProps extends Omit<React.HTMLAttributes<HTMLLIElement>, 'color'> {\n field: React.ReactNode\n operator: React.ReactNode\n value: React.ReactNode\n count?: React.ReactNode\n active?: boolean\n size?: 'sm' | 'md' | 'lg'\n onRemove?: () => void\n onEdit?: () => void\n}\nfunction describeRulePart(part: React.ReactNode): string | undefined {\n return typeof part === 'string' || typeof part === 'number' ? String(part) : undefined\n}\nfunction describeRuleEditLabel(field: React.ReactNode, operator: React.ReactNode, value: React.ReactNode): string {\n const fieldText = describeRulePart(field)\n const operatorText = describeRulePart(operator)\n const valueText = describeRulePart(value)\n return fieldText !== undefined && operatorText !== undefined && valueText !== undefined\n ? `Edit filter: ${fieldText} ${operatorText} ${valueText}`\n : 'Edit filter'\n}\nconst FilterBarRule = React.forwardRef<HTMLLIElement, FilterBarRuleProps>(\n ({ active = false, children, className, count, field, onEdit, onRemove, operator, size = 'md', value, ...props }, forwardedRef) => {\n const editLabel = describeRuleEditLabel(field, operator, value)\n return (\n <Pill\n {...props}\n ref={forwardedRef}\n size={size}\n removable={onRemove !== undefined}\n onRemove={onRemove}\n className={classNames('dsx-filter-bar__rule', className)}\n data-active={active ? 'true' : undefined}\n >\n {onEdit !== undefined ? (\n <button type=\"button\" className=\"dsx-filter-bar__rule-label\" onClick={onEdit} aria-label={editLabel}>\n <span className=\"dsx-filter-bar__rule-field\">{field}</span>\n <span className=\"dsx-filter-bar__rule-operator\">{operator}</span>\n {value === '' ? (\n <span className=\"dsx-filter-bar__rule-value\" data-empty=\"true\">empty</span>\n ) : (\n <span className=\"dsx-filter-bar__rule-value\">{value}</span>\n )}\n {count !== undefined ? <span className=\"dsx-filter-bar__rule-count\">{count}</span> : null}\n </button>\n ) : (\n <span className=\"dsx-filter-bar__rule-label\" aria-hidden={false}>\n <span className=\"dsx-filter-bar__rule-field\">{field}</span>\n <span className=\"dsx-filter-bar__rule-operator\">{operator}</span>\n {value === '' ? (\n <span className=\"dsx-filter-bar__rule-value\" data-empty=\"true\">empty</span>\n ) : (\n <span className=\"dsx-filter-bar__rule-value\">{value}</span>\n )}\n {count !== undefined ? <span className=\"dsx-filter-bar__rule-count\">{count}</span> : null}\n </span>\n )}\n {children}\n </Pill>\n )\n },\n)\nFilterBarRule.displayName = 'FilterBarRule'\n\ninterface FilterBarBuilderOption {\n value: string\n label?: React.ReactNode\n}\ninterface FilterBarBuilderField {\n value: string\n label?: React.ReactNode\n type?: 'text' | 'number' | 'enum' | 'multi' | 'range' | 'date' | 'person'\n operators?: string[]\n options?: FilterBarBuilderOption[]\n min?: number\n max?: number\n step?: number\n renderValue?: (state: { value: string, onChange: (nextValue: string) => void, id: string }) => React.ReactNode\n}\ninterface FilterBarBuilderProps {\n fields: FilterBarBuilderField[]\n operators?: string[]\n initialRule?: FilterBarRuleValue | null\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n trigger?: React.ReactNode\n count?: React.ReactNode\n title?: React.ReactNode\n submitLabel?: React.ReactNode\n cancelLabel?: React.ReactNode\n onApply?: (rule: FilterBarRuleValue) => void\n onCancel?: () => void\n className?: string\n}\n\nconst FILTER_BAR_BUILDER_DEFAULT_OPERATORS = ['is', 'is not', 'contains', 'does not contain'] as const\nconst FILTER_BAR_BUILDER_EMPTY_RULE: FilterBarRuleValue = { field: '', operator: '', value: '' }\n\nfunction parseRangeValue(raw: string, min: number, max: number): [number, number] {\n const [lo, hi] = raw.split('..').map((part) => Number(part))\n const safeLo = Number.isFinite(lo) ? Math.min(Math.max(lo as number, min), max) : min\n const safeHi = Number.isFinite(hi) ? Math.min(Math.max(hi as number, safeLo), max) : max\n return [safeLo, safeHi]\n}\n\ninterface FilterBarDraftFieldsProps {\n draft: FilterBarRuleValue\n fields: FilterBarBuilderField[]\n fieldClassName: string\n labelClassName: string\n onPatch: (patch: Partial<FilterBarRuleValue>) => void\n operators?: string[]\n operatorLabelId: string\n valueInputId: string\n valueLabelId: string\n compact?: boolean\n valueClassName?: string\n}\nfunction FilterBarDraftFields({\n compact = false,\n draft,\n fields,\n fieldClassName,\n labelClassName,\n onPatch,\n operators: operatorsProp,\n operatorLabelId,\n valueClassName,\n valueInputId,\n valueLabelId,\n}: FilterBarDraftFieldsProps) {\n const selectedField = fields.find((field) => field.value === draft.field)\n const operatorOptions = selectedField?.operators ?? operatorsProp ?? [...FILTER_BAR_BUILDER_DEFAULT_OPERATORS]\n const valueOptions = selectedField?.options\n return (\n <>\n <div className={fieldClassName}>\n {compact ? null : (\n <span className={labelClassName} id={operatorLabelId}>Operator</span>\n )}\n <SelectRoot value={draft.operator} onValueChange={(nextOperator) => { onPatch({ operator: nextOperator }) }}>\n {compact ? (\n <SelectTrigger aria-label=\"Operator\">\n <SelectValue placeholder=\"Choose operator\" />\n </SelectTrigger>\n ) : (\n <SelectTrigger aria-labelledby={operatorLabelId}>\n <SelectValue placeholder=\"Choose operator\" />\n </SelectTrigger>\n )}\n <SelectContent>\n {operatorOptions.map((operator) => (\n <SelectItem key={operator} value={operator}>\n {operator}\n </SelectItem>\n ))}\n </SelectContent>\n </SelectRoot>\n </div>\n <div className={valueClassName ?? fieldClassName}>\n {selectedField?.renderValue !== undefined ? (\n <>\n {compact ? null : (\n <span className={labelClassName} id={valueLabelId}>Value</span>\n )}\n {selectedField.renderValue({\n value: draft.value,\n onChange: (nextValue) => { onPatch({ value: nextValue }) },\n id: valueInputId,\n })}\n </>\n ) : valueOptions !== undefined || selectedField?.type === 'enum' ? (\n <>\n {compact ? null : (\n <span className={labelClassName} id={valueLabelId}>Value</span>\n )}\n <SelectRoot value={draft.value} onValueChange={(nextValue) => { onPatch({ value: nextValue }) }}>\n {compact ? (\n <SelectTrigger aria-label=\"Value\">\n <SelectValue placeholder=\"Choose value\" />\n </SelectTrigger>\n ) : (\n <SelectTrigger aria-labelledby={valueLabelId}>\n <SelectValue placeholder=\"Choose value\" />\n </SelectTrigger>\n )}\n <SelectContent>\n {(valueOptions ?? []).map((option) => (\n <SelectItem key={option.value} value={option.value}>\n {option.label ?? option.value}\n </SelectItem>\n ))}\n </SelectContent>\n </SelectRoot>\n </>\n ) : selectedField?.type === 'number' ? (\n <>\n {compact ? null : (\n <label className={labelClassName} htmlFor={valueInputId}>Value</label>\n )}\n <NumberInput\n id={valueInputId}\n aria-label=\"Filter value\"\n value={draft.value === '' ? undefined : Number(draft.value)}\n onChange={(nextValue) => { onPatch({ value: nextValue === undefined ? '' : String(nextValue) }) }}\n />\n </>\n ) : selectedField?.type === 'multi' ? (\n <>\n {compact ? null : (\n <span className={labelClassName} id={valueLabelId}>Value</span>\n )}\n {compact ? (\n <TagsInput\n aria-label=\"Filter value\"\n value={draft.value === '' ? [] : draft.value.split(',')}\n onChange={(nextTags) => { onPatch({ value: nextTags.join(',') }) }}\n />\n ) : (\n <TagsInput\n aria-labelledby={valueLabelId}\n value={draft.value === '' ? [] : draft.value.split(',')}\n onChange={(nextTags) => { onPatch({ value: nextTags.join(',') }) }}\n />\n )}\n </>\n ) : selectedField?.type === 'range' ? (\n <>\n {compact ? null : (\n <span className={labelClassName} id={valueLabelId}>\n Value{ draft.value !== '' ? ` (${draft.value})` : '' }\n </span>\n )}\n {compact ? (\n <Slider\n aria-label=\"Filter value\"\n min={selectedField.min ?? 0}\n max={selectedField.max ?? 100}\n step={selectedField.step ?? 1}\n value={parseRangeValue(draft.value, selectedField.min ?? 0, selectedField.max ?? 100)}\n onValueChange={(nextRange) => {\n const lo = nextRange[0] ?? selectedField.min ?? 0\n const hi = nextRange[1] ?? selectedField.max ?? 100\n onPatch({ value: `${lo}..${hi}` })\n }}\n />\n ) : (\n <Slider\n aria-labelledby={valueLabelId}\n min={selectedField.min ?? 0}\n max={selectedField.max ?? 100}\n step={selectedField.step ?? 1}\n value={parseRangeValue(draft.value, selectedField.min ?? 0, selectedField.max ?? 100)}\n onValueChange={(nextRange) => {\n const lo = nextRange[0] ?? selectedField.min ?? 0\n const hi = nextRange[1] ?? selectedField.max ?? 100\n onPatch({ value: `${lo}..${hi}` })\n }}\n />\n )}\n </>\n ) : (\n <>\n {compact ? null : (\n <label className={labelClassName} htmlFor={valueInputId}>Value</label>\n )}\n <Input\n id={valueInputId}\n aria-label=\"Filter value\"\n placeholder={selectedField?.type === 'date' ? 'YYYY-MM-DD' : selectedField?.type === 'person' ? 'Enter name' : 'Enter value'}\n value={draft.value}\n onChange={(event) => {\n const nextValue = event.currentTarget.value\n onPatch({ value: nextValue })\n }}\n />\n </>\n )}\n </div>\n </>\n )\n}\n\nfunction FilterBarBuilder({\n cancelLabel = 'Cancel',\n className,\n count,\n defaultOpen = false,\n fields,\n initialRule = null,\n onApply,\n onCancel,\n onOpenChange,\n open: openProp,\n operators: operatorsProp,\n submitLabel = 'Apply',\n title = 'Add filter',\n trigger,\n}: FilterBarBuilderProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen)\n const open = openProp ?? uncontrolledOpen\n const [draft, setDraft] = React.useState<FilterBarRuleValue>(initialRule ?? FILTER_BAR_BUILDER_EMPTY_RULE)\n // Controlled opens bypass handleOpenChange, so re-seed the draft on every\n // closed \u2192 open transition. This is what makes the spec's \"initialRule is\n // re-read every time the popup opens\" promise true in both modes.\n const wasOpenRef = React.useRef(open)\n React.useEffect(() => {\n if (open && !wasOpenRef.current) {\n setDraft(initialRule ?? FILTER_BAR_BUILDER_EMPTY_RULE)\n }\n wasOpenRef.current = open\n }, [open, initialRule])\n const fieldLabelId = React.useId()\n const operatorLabelId = React.useId()\n const valueLabelId = React.useId()\n const valueInputId = React.useId()\n\n function handleOpenChange(nextOpen: boolean) {\n if (nextOpen) {\n setDraft(initialRule ?? FILTER_BAR_BUILDER_EMPTY_RULE)\n }\n if (openProp === undefined) {\n setUncontrolledOpen(nextOpen)\n }\n onOpenChange?.(nextOpen)\n }\n\n function close(nextOpen: false) {\n if (openProp === undefined) {\n setUncontrolledOpen(nextOpen)\n }\n onOpenChange?.(nextOpen)\n }\n\n function handleFieldChange(nextField: string) {\n const nextFieldDef = fields.find((field) => field.value === nextField)\n const nextOperators = nextFieldDef?.operators ?? operatorsProp ?? [...FILTER_BAR_BUILDER_DEFAULT_OPERATORS]\n const nextValue = nextFieldDef?.type === 'range'\n ? `${nextFieldDef.min ?? 0}..${nextFieldDef.max ?? 100}`\n : ''\n setDraft({ field: nextField, operator: nextOperators[0] ?? '', value: nextValue })\n }\n\n const canApply = draft.field !== '' && draft.operator !== ''\n\n function handleApply() {\n if (!canApply) return\n onApply?.({ ...draft })\n close(false)\n }\n\n function handleCancel() {\n onCancel?.()\n close(false)\n }\n\n return (\n <Popover open={open} onOpenChange={handleOpenChange}>\n {trigger !== null ? (\n <Popover.Trigger asChild>\n {trigger ?? (\n <Button type=\"button\" variant=\"outline\" size=\"sm\">\n + Add filter\n {count !== undefined ? (\n <Badge size=\"sm\" variant=\"primary\" style={{ marginLeft: 'var(--dsx-space-xs)' }}>\n {count}\n </Badge>\n ) : null}\n </Button>\n )}\n </Popover.Trigger>\n ) : (\n <Popover.Anchor asChild>\n <span aria-hidden=\"true\" className=\"dsx-filter-bar__builder-anchor\" />\n </Popover.Anchor>\n )}\n <Popover.Content className={classNames('dsx-filter-bar__builder', className)} align=\"start\">\n <Popover.Title>{title}</Popover.Title>\n <div className=\"dsx-filter-bar__builder-field\">\n <span className=\"dsx-filter-bar__builder-label\" id={fieldLabelId}>Field</span>\n <SelectRoot value={draft.field} onValueChange={handleFieldChange}>\n <SelectTrigger aria-labelledby={fieldLabelId}>\n <SelectValue placeholder=\"Choose field\" />\n </SelectTrigger>\n <SelectContent>\n {fields.map((field) => (\n <SelectItem key={field.value} value={field.value}>\n {field.label ?? field.value}\n </SelectItem>\n ))}\n </SelectContent>\n </SelectRoot>\n </div>\n <FilterBarDraftFields\n draft={draft}\n fields={fields}\n fieldClassName=\"dsx-filter-bar__builder-field\"\n labelClassName=\"dsx-filter-bar__builder-label\"\n onPatch={(patch) => { setDraft((prev) => ({ ...prev, ...patch })) }}\n operators={operatorsProp}\n operatorLabelId={operatorLabelId}\n valueInputId={valueInputId}\n valueLabelId={valueLabelId}\n />\n <div className=\"dsx-filter-bar__builder-actions\">\n <Button type=\"button\" variant=\"ghost\" size=\"sm\" onClick={handleCancel}>\n {cancelLabel}\n </Button>\n <Button type=\"button\" variant=\"primary\" size=\"sm\" onClick={handleApply} disabled={!canApply}>\n {submitLabel}\n </Button>\n </div>\n </Popover.Content>\n </Popover>\n )\n}\nFilterBarBuilder.displayName = 'FilterBarBuilder'\n\ninterface FilterBarConditionEditorProps {\n fields: FilterBarBuilderField[]\n draft: FilterBarRuleValue\n onDraftChange: (next: FilterBarRuleValue) => void\n operators?: string[]\n title?: React.ReactNode\n submitLabel?: React.ReactNode\n newLabel?: React.ReactNode\n onApply?: () => void\n onNew?: () => void\n className?: string\n}\nfunction FilterBarConditionEditor({\n className,\n draft,\n fields,\n newLabel = 'New',\n onApply,\n onDraftChange,\n onNew,\n operators: operatorsProp,\n submitLabel = 'Apply',\n title = 'Condition editor',\n}: FilterBarConditionEditorProps) {\n const operatorLabelId = React.useId()\n const valueInputId = React.useId()\n const valueLabelId = React.useId()\n const canApply = draft.field !== '' && draft.operator !== ''\n function handleRailField(nextField: string) {\n const nextFieldDef = fields.find((field) => field.value === nextField)\n const nextOperators = nextFieldDef?.operators ?? operatorsProp ?? [...FILTER_BAR_BUILDER_DEFAULT_OPERATORS]\n const nextValue = nextFieldDef?.type === 'range'\n ? `${nextFieldDef.min ?? 0}..${nextFieldDef.max ?? 100}`\n : ''\n onDraftChange({ field: nextField, operator: nextOperators[0] ?? '', value: nextValue })\n }\n return (\n <div\n className={classNames('dsx-filter-bar__condition-editor', className)}\n role=\"group\"\n aria-label={typeof title === 'string' ? title : 'Condition editor'}\n >\n <span className=\"dsx-filter-bar__condition-editor-title\">{title}</span>\n <div className=\"dsx-filter-bar__condition-editor-body\">\n <div className=\"dsx-filter-bar__condition-editor-fields\" role=\"group\" aria-label=\"Fields\">\n {fields.map((field) => (\n <Button\n key={field.value}\n type=\"button\"\n variant={draft.field === field.value ? 'primary' : 'outline'}\n size=\"sm\"\n aria-pressed={draft.field === field.value}\n onClick={() => { handleRailField(field.value) }}\n >\n {field.label ?? field.value}\n </Button>\n ))}\n </div>\n <div className=\"dsx-filter-bar__condition-editor-config\">\n <FilterBarDraftFields\n draft={draft}\n fields={fields}\n fieldClassName=\"dsx-filter-bar__condition-editor-field\"\n labelClassName=\"dsx-filter-bar__condition-editor-label\"\n onPatch={(patch) => { onDraftChange({ ...draft, ...patch }) }}\n operators={operatorsProp}\n operatorLabelId={operatorLabelId}\n valueInputId={valueInputId}\n valueLabelId={valueLabelId}\n />\n </div>\n </div>\n <div className=\"dsx-filter-bar__condition-editor-actions\">\n <Button type=\"button\" variant=\"primary\" size=\"sm\" onClick={onApply} disabled={!canApply}>\n {submitLabel}\n </Button>\n {onNew !== undefined ? (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onNew}>\n {newLabel}\n </Button>\n ) : null}\n </div>\n </div>\n )\n}\nFilterBarConditionEditor.displayName = 'FilterBarConditionEditor'\n\ntype FilterBarCombinator = 'and' | 'or'\n\ninterface FilterBarConditionGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n combinator?: FilterBarCombinator\n onCombinatorChange?: (next: FilterBarCombinator) => void\n combinatorLabel?: string\n onAddCondition?: () => void\n onAddSubgroup?: () => void\n onClearAll?: () => void\n addConditionLabel?: React.ReactNode\n addSubgroupLabel?: React.ReactNode\n clearAllLabel?: React.ReactNode\n emptyHint?: React.ReactNode\n editor?: React.ReactNode\n rowsLabel?: React.ReactNode\n allLabel?: React.ReactNode\n anyLabel?: React.ReactNode\n gapCombinators?: FilterBarCombinator[]\n onGapCombinatorChange?: (index: number, next: FilterBarCombinator) => void\n}\nconst FILTER_BAR_COMBINATORS: FilterBarCombinator[] = ['and', 'or']\nconst FilterBarConditionGroup = React.forwardRef<HTMLDivElement, FilterBarConditionGroupProps>(\n (\n {\n addConditionLabel = 'Add condition',\n addSubgroupLabel = 'Add subgroup',\n allLabel = null,\n anyLabel = null,\n children,\n className,\n clearAllLabel = 'Clear all',\n combinator = 'and',\n combinatorLabel = 'Match',\n editor = null,\n emptyHint = 'No conditions yet \u2014 add one below.',\n rowsLabel = null,\n gapCombinators,\n onGapCombinatorChange,\n onAddCondition,\n onAddSubgroup,\n onClearAll,\n onCombinatorChange,\n ...props\n },\n forwardedRef,\n ) => (\n <div\n {...props}\n ref={forwardedRef}\n role={props['aria-label'] !== undefined ? 'group' : undefined}\n className={classNames('dsx-filter-bar__condition-group', className)}\n data-empty={React.Children.count(children) === 0 ? 'true' : undefined}\n >\n {onCombinatorChange !== undefined && gapCombinators === undefined ? (\n <>\n {allLabel !== null || anyLabel !== null ? (\n <span className=\"dsx-filter-bar__condition-match-label\">\n {combinator === 'and' ? (allLabel ?? 'Match all') : (anyLabel ?? 'Match any')}\n </span>\n ) : null}\n <div className=\"dsx-filter-bar__condition-combinator\" role=\"group\" aria-label={combinatorLabel}>\n {FILTER_BAR_COMBINATORS.map((option) => (\n <Button\n key={option}\n type=\"button\"\n size=\"sm\"\n variant={combinator === option ? 'primary' : 'ghost'}\n aria-pressed={combinator === option}\n onClick={() => { onCombinatorChange(option) }}\n >\n {option === 'and' ? 'AND' : 'OR'}\n </Button>\n ))}\n </div>\n </>\n ) : (\n <>\n {allLabel !== null || anyLabel !== null ? (\n <span className=\"dsx-filter-bar__condition-match-label\">\n {combinator === 'and' ? (allLabel ?? 'Match all') : (anyLabel ?? 'Match any')}\n </span>\n ) : null}\n <span className=\"dsx-filter-bar__condition-combinator-label\">{combinator === 'and' ? 'AND' : 'OR'}</span>\n </>\n )}\n {editor}\n {rowsLabel !== null ? (\n <span className=\"dsx-filter-bar__condition-rows-label\">{rowsLabel}</span>\n ) : null}\n <div className=\"dsx-filter-bar__condition-children\">\n {React.Children.count(children) === 0 ? (\n <span className=\"dsx-filter-bar__condition-empty\">{emptyHint}</span>\n ) : gapCombinators !== undefined && onGapCombinatorChange !== undefined ? (\n React.Children.toArray(children).map((child, index) => {\n const key = React.isValidElement(child) && child.key !== null ? child.key : index\n const gap = gapCombinators[index] ?? 'and'\n return (\n <React.Fragment key={key}>\n {index > 0 ? (\n <div className=\"dsx-filter-bar__condition-gap\" role=\"group\" aria-label={`Logic before item ${index + 1}`}>\n {FILTER_BAR_COMBINATORS.map((option) => (\n <Button\n key={option}\n type=\"button\"\n size=\"sm\"\n variant={gap === option ? 'primary' : 'ghost'}\n aria-pressed={gap === option}\n onClick={() => { onGapCombinatorChange(index, option) }}\n >\n {option === 'and' ? 'And' : 'Or'}\n </Button>\n ))}\n </div>\n ) : null}\n {child}\n </React.Fragment>\n )\n })\n ) : children}\n </div>\n {onAddCondition !== undefined || onAddSubgroup !== undefined || onClearAll !== undefined ? (\n <div className=\"dsx-filter-bar__condition-actions\">\n {onAddCondition !== undefined ? (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onAddCondition}>\n {addConditionLabel}\n </Button>\n ) : null}\n {onAddSubgroup !== undefined ? (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onAddSubgroup}>\n {addSubgroupLabel}\n </Button>\n ) : null}\n {onClearAll !== undefined ? (\n <Button type=\"button\" variant=\"ghost\" size=\"sm\" onClick={onClearAll}>\n {clearAllLabel}\n </Button>\n ) : null}\n </div>\n ) : null}\n </div>\n ),\n)\nFilterBarConditionGroup.displayName = 'FilterBarConditionGroup'\n\ninterface FilterBarConditionProps extends React.HTMLAttributes<HTMLDivElement> {\n field: React.ReactNode\n operator: React.ReactNode\n value: React.ReactNode\n count?: React.ReactNode\n onEdit?: () => void\n onRemove?: () => void\n removeLabel?: string\n dragProps?: React.HTMLAttributes<HTMLDivElement>\n editLabel?: string\n fields?: FilterBarBuilderField[]\n operators?: string[]\n onFieldChange?: (nextField: string) => void\n onOperatorChange?: (nextOperator: string) => void\n onValueChange?: (nextValue: string) => void\n}\ninterface FilterBarEditableRowProps {\n fields: FilterBarBuilderField[]\n field: string\n operator: string\n value: string\n operators?: string[]\n onFieldChange?: (nextField: string) => void\n onOperatorChange?: (nextOperator: string) => void\n onValueChange?: (nextValue: string) => void\n}\nfunction FilterBarEditableRow({\n field,\n fields,\n onFieldChange,\n onOperatorChange,\n onValueChange,\n operator,\n operators,\n value,\n}: FilterBarEditableRowProps) {\n const operatorLabelId = React.useId()\n const valueInputId = React.useId()\n const valueLabelId = React.useId()\n return (\n <>\n <div className=\"dsx-filter-bar__condition-field\">\n <SelectRoot value={field} onValueChange={(nextField) => { onFieldChange?.(nextField) }}>\n <SelectTrigger aria-label=\"Field\">\n <SelectValue placeholder=\"Choose field\" />\n </SelectTrigger>\n <SelectContent>\n {fields.map((option) => (\n <SelectItem key={option.value} value={option.value}>\n {option.label ?? option.value}\n </SelectItem>\n ))}\n </SelectContent>\n </SelectRoot>\n </div>\n <FilterBarDraftFields\n compact\n draft={{ field, operator, value }}\n fields={fields}\n fieldClassName=\"dsx-filter-bar__condition-operator\"\n valueClassName=\"dsx-filter-bar__condition-value\"\n labelClassName=\"dsx-filter-bar__condition-operator\"\n onPatch={(patch) => {\n if (patch.operator !== undefined) onOperatorChange?.(patch.operator)\n if (patch.value !== undefined) onValueChange?.(patch.value)\n }}\n operators={operators}\n operatorLabelId={operatorLabelId}\n valueInputId={valueInputId}\n valueLabelId={valueLabelId}\n />\n </>\n )\n}\nconst FilterBarCondition = React.forwardRef<HTMLDivElement, FilterBarConditionProps>(\n (\n {\n children,\n className,\n count,\n dragProps,\n editLabel,\n field,\n fields,\n onEdit,\n onFieldChange,\n onOperatorChange,\n onRemove,\n onValueChange,\n operator,\n operators,\n removeLabel = 'Remove condition',\n value,\n ...props\n },\n forwardedRef,\n ) => (\n <div {...props} {...dragProps} ref={forwardedRef} className={classNames('dsx-filter-bar__condition', className)}>\n {dragProps !== undefined ? (\n <span aria-hidden=\"true\" className=\"dsx-filter-bar__condition-grip\">\n <Icon name=\"grip-vertical\" size=\"sm\" />\n </span>\n ) : null}\n {fields !== undefined ? (\n <FilterBarEditableRow\n fields={fields}\n field={String(field)}\n operator={String(operator)}\n value={typeof value === 'string' ? value : ''}\n operators={operators}\n onFieldChange={onFieldChange}\n onOperatorChange={onOperatorChange}\n onValueChange={onValueChange}\n />\n ) : null}\n {fields === undefined && onEdit !== undefined ? (\n <button\n type=\"button\"\n className=\"dsx-filter-bar__condition-label\"\n onClick={onEdit}\n aria-label={editLabel ?? describeRuleEditLabel(field, operator, value)}\n >\n <span className=\"dsx-filter-bar__rule-field\">{field}</span>\n <span className=\"dsx-filter-bar__rule-operator\">{operator}</span>\n {value === '' ? (\n <span className=\"dsx-filter-bar__rule-value\" data-empty=\"true\">empty</span>\n ) : (\n <span className=\"dsx-filter-bar__rule-value\">{value}</span>\n )}\n {count !== undefined ? <span className=\"dsx-filter-bar__rule-count\">{count}</span> : null}\n </button>\n ) : fields === undefined ? (\n <span className=\"dsx-filter-bar__condition-label\" aria-hidden={false}>\n <span className=\"dsx-filter-bar__rule-field\">{field}</span>\n <span className=\"dsx-filter-bar__rule-operator\">{operator}</span>\n {value === '' ? (\n <span className=\"dsx-filter-bar__rule-value\" data-empty=\"true\">empty</span>\n ) : (\n <span className=\"dsx-filter-bar__rule-value\">{value}</span>\n )}\n {count !== undefined ? <span className=\"dsx-filter-bar__rule-count\">{count}</span> : null}\n </span>\n ) : null}\n {onRemove !== undefined ? (\n <IconButton type=\"button\" size=\"sm\" variant=\"ghost\" aria-label={removeLabel} onClick={onRemove}>\n <Icon name=\"trash\" size=\"sm\" />\n </IconButton>\n ) : null}\n {children}\n </div>\n ),\n)\nFilterBarCondition.displayName = 'FilterBarCondition'\n\nconst FilterBar: typeof FilterBarRoot & {\n Group: typeof FilterBarGroup\n Summary: typeof FilterBarSummary\n Actions: typeof FilterBarActions\n Clear: typeof FilterBarClear\n Control: typeof FilterBarControl\n Count: typeof FilterBarCount\n Search: typeof FilterBarSearch\n Rules: typeof FilterBarRules\n Rule: typeof FilterBarRule\n ConditionGroup: typeof FilterBarConditionGroup\n Condition: typeof FilterBarCondition\n ConditionEditor: typeof FilterBarConditionEditor\n Builder: typeof FilterBarBuilder\n} = Object.assign(FilterBarRoot, {\n Group: FilterBarGroup,\n Summary: FilterBarSummary,\n Actions: FilterBarActions,\n Clear: FilterBarClear,\n Control: FilterBarControl,\n Count: FilterBarCount,\n Search: FilterBarSearch,\n Rules: FilterBarRules,\n Rule: FilterBarRule,\n ConditionGroup: FilterBarConditionGroup,\n Condition: FilterBarCondition,\n ConditionEditor: FilterBarConditionEditor,\n Builder: FilterBarBuilder,\n})\n\nexport { FilterBar, FilterBarActions, FilterBarBuilder, FilterBarClear, FilterBarCondition, FilterBarConditionEditor, FilterBarConditionGroup, FilterBarControl, FilterBarCount, FilterBarGroup, FilterBarRoot, FilterBarRule, FilterBarRules, FilterBarSearch, FilterBarSummary }\nexport type { FilterBarBuilderField, FilterBarBuilderOption, FilterBarBuilderProps, FilterBarClearProps, FilterBarCombinator, FilterBarConditionEditorProps, FilterBarConditionGroupProps, FilterBarConditionProps, FilterBarProps, FilterBarRuleProps, FilterBarRuleValue, FilterBarRulesProps, FilterBarSearchProps }\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -15,7 +15,7 @@
15
15
  }
16
16
 
17
17
  .dsx-floating-panel[data-dragging] {
18
- box-shadow: var(--dsx-shadow-elevation-4);
18
+ box-shadow: var(--dsx-shadow-elevation-5); /* Spotlight while lifted (B4 Q3) */
19
19
  cursor: grabbing;
20
20
  }
21
21
 
@@ -37,7 +37,7 @@ var React = __toESM(require("react"), 1);
37
37
  var import_fontProvider = require("./fontProvider.props");
38
38
  var import_jsx_runtime = require("react/jsx-runtime");
39
39
  const FontContext = React.createContext(null);
40
- const DEFAULT_GOOGLE_FONTS_URL = "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@100..800&family=Science+Gothic:CTRS,slnt,wdth,wght@0..75,-10..0,50..200,100..900&display=swap&subset=cyrillic,latin";
40
+ const DEFAULT_GOOGLE_FONTS_URL = "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@100..800&family=Science+Gothic:CTRS,wdth,wght@0..75,50..200,100..900&display=swap&subset=cyrillic,latin";
41
41
  const DISPLAY_FONT_VARS = [
42
42
  "--dsx-typography-display-large-font-family",
43
43
  "--dsx-typography-display-medium-font-family",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/fontProvider/FontProvider.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport * as React from 'react'\n\nimport { type FontProviderProps } from './fontProvider.props'\n\ntype FontContextValue = {\n fontFamily: string\n}\n\nconst FontContext = React.createContext<FontContextValue | null>(null)\n\nconst DEFAULT_GOOGLE_FONTS_URL =\n 'https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@100..800&family=Science+Gothic:CTRS,slnt,wdth,wght@0..75,-10..0,50..200,100..900&display=swap&subset=cyrillic,latin'\n\n// The real typography CSS (heading.css, text.css) never reads a single global\n// `--dsx-font-family` / `--dsx-display-font-family` \u2014 each type-scale variant\n// reads its own token (`--dsx-typography-display-large-font-family`,\n// `--dsx-typography-body-medium-font-family`, etc.), defined once in\n// generated/tokens.css. Overriding only the two vars this component used to\n// write was a no-op: nothing in the package ever consumed them. `caption` is\n// intentionally left alone \u2014 its token is `inherit` by design.\nconst DISPLAY_FONT_VARS = [\n '--dsx-typography-display-large-font-family',\n '--dsx-typography-display-medium-font-family',\n '--dsx-typography-headline-large-font-family',\n '--dsx-typography-headline-medium-font-family',\n]\nconst BODY_FONT_VARS = [\n '--dsx-typography-body-large-font-family',\n '--dsx-typography-body-medium-font-family',\n '--dsx-typography-body-small-font-family',\n '--dsx-typography-label-large-font-family',\n '--dsx-typography-label-medium-font-family',\n '--dsx-typography-label-small-font-family',\n]\n\nfunction FontProvider({\n children,\n fontFamily = 'Science Gothic, ui-sans-serif, system-ui, sans-serif',\n displayFontFamily = 'Science Gothic, Arial Narrow, ui-sans-serif, system-ui, sans-serif',\n loadGoogleFonts = false,\n}: FontProviderProps) {\n const contextValue = React.useMemo<FontContextValue>(\n () => ({ fontFamily }),\n [fontFamily],\n )\n\n // useLayoutEffect, not useEffect (2026-08-26, real bug found live): with useEffect, React\n // defers this DOM mutation until after the browser has already painted the just-hydrated\n // frame \u2014 so on every reload the DS's default typography tokens\n // paint first, then visibly swap to the override font a beat later. Measured live: default\n // tokens still showing 100ms after commit, override not applied until ~300ms. useLayoutEffect\n // runs synchronously in the same commit as hydration, before that frame paints, so the\n // override is already applied by the first frame the browser shows post-hydration \u2014 it\n // cannot remove the one truly unavoidable flash (the server-rendered HTML painting before any\n // JS runs at all, inherent to Next.js's single root layout owning <html>/<body>), only the\n // second, avoidable one stacked on top of it.\n React.useLayoutEffect(() => {\n const html = document.documentElement\n const body = document.body\n // foundations/Theme.tsx's applyThemeToDocument sets every theme data-attribute\n // on BOTH html and body \u2014 deliberately, so Radix portals (Select/Dialog/\n // DropdownMenu content, rendered into document.body, not under the app's\n // themed root) still pick up theme-scoped tokens. Overriding only html left\n // body \u2014 a same-attribute match for `[data-dsx-theme=\"dark\"]` in\n // generated/tokens.css \u2014 still asserting the default package families\n // stack, which then wins for anything under body (i.e. everything), since\n // custom-property resolution takes the nearest ancestor's value. That's why\n // The custom display family only rendered correctly in light mode: that block\n // doesn't define font-family tokens at all, so body had nothing to\n // re-assert there. Writing to both elements matches the real architecture.\n const elements = body ? [html, body] : [html]\n const previousValues = new Map<Element, Map<string, string>>()\n\n for (const el of elements) {\n const previous = new Map<string, string>()\n for (const name of DISPLAY_FONT_VARS) {\n previous.set(name, (el as HTMLElement).style.getPropertyValue(name))\n ;(el as HTMLElement).style.setProperty(name, displayFontFamily)\n }\n for (const name of BODY_FONT_VARS) {\n previous.set(name, (el as HTMLElement).style.getPropertyValue(name))\n ;(el as HTMLElement).style.setProperty(name, fontFamily)\n }\n previousValues.set(el, previous)\n }\n\n return () => {\n for (const [el, previous] of previousValues) {\n for (const [name, value] of previous) {\n if (value) {\n (el as HTMLElement).style.setProperty(name, value)\n } else {\n (el as HTMLElement).style.removeProperty(name)\n }\n }\n }\n }\n }, [fontFamily, displayFontFamily])\n\n // Optional hosted compatibility path for the canonical bilingual and mono families.\n React.useEffect(() => {\n if (!loadGoogleFonts) return\n if (typeof document === 'undefined') return\n\n const linkId = 'dsx-font-provider-default-fonts'\n if (document.getElementById(linkId)) return\n\n const link = document.createElement('link')\n link.id = linkId\n link.rel = 'stylesheet'\n link.href = DEFAULT_GOOGLE_FONTS_URL\n document.head.appendChild(link)\n\n return () => {\n const existing = document.getElementById(linkId)\n if (existing) {\n document.head.removeChild(existing)\n }\n }\n }, [loadGoogleFonts])\n\n return (\n <FontContext.Provider value={contextValue}>\n {children}\n </FontContext.Provider>\n )\n}\n\nfunction useFont(): FontContextValue {\n const context = React.useContext(FontContext)\n\n if (!context) {\n return { fontFamily: 'Science Gothic, ui-sans-serif, system-ui, sans-serif' }\n }\n\n return context\n}\n\nexport { FontProvider, useFont }\n"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\n\nimport { type FontProviderProps } from './fontProvider.props'\n\ntype FontContextValue = {\n fontFamily: string\n}\n\nconst FontContext = React.createContext<FontContextValue | null>(null)\n\nconst DEFAULT_GOOGLE_FONTS_URL =\n 'https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@100..800&family=Science+Gothic:CTRS,wdth,wght@0..75,50..200,100..900&display=swap&subset=cyrillic,latin'\n\n// The real typography CSS (heading.css, text.css) never reads a single global\n// `--dsx-font-family` / `--dsx-display-font-family` \u2014 each type-scale variant\n// reads its own token (`--dsx-typography-display-large-font-family`,\n// `--dsx-typography-body-medium-font-family`, etc.), defined once in\n// generated/tokens.css. Overriding only the two vars this component used to\n// write was a no-op: nothing in the package ever consumed them. `caption` is\n// intentionally left alone \u2014 its token is `inherit` by design.\nconst DISPLAY_FONT_VARS = [\n '--dsx-typography-display-large-font-family',\n '--dsx-typography-display-medium-font-family',\n '--dsx-typography-headline-large-font-family',\n '--dsx-typography-headline-medium-font-family',\n]\nconst BODY_FONT_VARS = [\n '--dsx-typography-body-large-font-family',\n '--dsx-typography-body-medium-font-family',\n '--dsx-typography-body-small-font-family',\n '--dsx-typography-label-large-font-family',\n '--dsx-typography-label-medium-font-family',\n '--dsx-typography-label-small-font-family',\n]\n\nfunction FontProvider({\n children,\n fontFamily = 'Science Gothic, ui-sans-serif, system-ui, sans-serif',\n displayFontFamily = 'Science Gothic, Arial Narrow, ui-sans-serif, system-ui, sans-serif',\n loadGoogleFonts = false,\n}: FontProviderProps) {\n const contextValue = React.useMemo<FontContextValue>(\n () => ({ fontFamily }),\n [fontFamily],\n )\n\n // useLayoutEffect, not useEffect (2026-08-26, real bug found live): with useEffect, React\n // defers this DOM mutation until after the browser has already painted the just-hydrated\n // frame \u2014 so on every reload the DS's default typography tokens\n // paint first, then visibly swap to the override font a beat later. Measured live: default\n // tokens still showing 100ms after commit, override not applied until ~300ms. useLayoutEffect\n // runs synchronously in the same commit as hydration, before that frame paints, so the\n // override is already applied by the first frame the browser shows post-hydration \u2014 it\n // cannot remove the one truly unavoidable flash (the server-rendered HTML painting before any\n // JS runs at all, inherent to Next.js's single root layout owning <html>/<body>), only the\n // second, avoidable one stacked on top of it.\n React.useLayoutEffect(() => {\n const html = document.documentElement\n const body = document.body\n // foundations/Theme.tsx's applyThemeToDocument sets every theme data-attribute\n // on BOTH html and body \u2014 deliberately, so Radix portals (Select/Dialog/\n // DropdownMenu content, rendered into document.body, not under the app's\n // themed root) still pick up theme-scoped tokens. Overriding only html left\n // body \u2014 a same-attribute match for `[data-dsx-theme=\"dark\"]` in\n // generated/tokens.css \u2014 still asserting the default package families\n // stack, which then wins for anything under body (i.e. everything), since\n // custom-property resolution takes the nearest ancestor's value. That's why\n // The custom display family only rendered correctly in light mode: that block\n // doesn't define font-family tokens at all, so body had nothing to\n // re-assert there. Writing to both elements matches the real architecture.\n const elements = body ? [html, body] : [html]\n const previousValues = new Map<Element, Map<string, string>>()\n\n for (const el of elements) {\n const previous = new Map<string, string>()\n for (const name of DISPLAY_FONT_VARS) {\n previous.set(name, (el as HTMLElement).style.getPropertyValue(name))\n ;(el as HTMLElement).style.setProperty(name, displayFontFamily)\n }\n for (const name of BODY_FONT_VARS) {\n previous.set(name, (el as HTMLElement).style.getPropertyValue(name))\n ;(el as HTMLElement).style.setProperty(name, fontFamily)\n }\n previousValues.set(el, previous)\n }\n\n return () => {\n for (const [el, previous] of previousValues) {\n for (const [name, value] of previous) {\n if (value) {\n (el as HTMLElement).style.setProperty(name, value)\n } else {\n (el as HTMLElement).style.removeProperty(name)\n }\n }\n }\n }\n }, [fontFamily, displayFontFamily])\n\n // Optional hosted compatibility path for the canonical bilingual and mono families.\n React.useEffect(() => {\n if (!loadGoogleFonts) return\n if (typeof document === 'undefined') return\n\n const linkId = 'dsx-font-provider-default-fonts'\n if (document.getElementById(linkId)) return\n\n const link = document.createElement('link')\n link.id = linkId\n link.rel = 'stylesheet'\n link.href = DEFAULT_GOOGLE_FONTS_URL\n document.head.appendChild(link)\n\n return () => {\n const existing = document.getElementById(linkId)\n if (existing) {\n document.head.removeChild(existing)\n }\n }\n }, [loadGoogleFonts])\n\n return (\n <FontContext.Provider value={contextValue}>\n {children}\n </FontContext.Provider>\n )\n}\n\nfunction useFont(): FontContextValue {\n const context = React.useContext(FontContext)\n\n if (!context) {\n return { fontFamily: 'Science Gothic, ui-sans-serif, system-ui, sans-serif' }\n }\n\n return context\n}\n\nexport { FontProvider, useFont }\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,YAAuB;AAEvB,0BAAuC;AAwHnC;AAlHJ,MAAM,cAAc,MAAM,cAAuC,IAAI;AAErE,MAAM,2BACJ;AASF,MAAM,oBAAoB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,MAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,kBAAkB;AACpB,GAAsB;AACpB,QAAM,eAAe,MAAM;AAAA,IACzB,OAAO,EAAE,WAAW;AAAA,IACpB,CAAC,UAAU;AAAA,EACb;AAYA,QAAM,gBAAgB,MAAM;AAC1B,UAAM,OAAO,SAAS;AACtB,UAAM,OAAO,SAAS;AAYtB,UAAM,WAAW,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI;AAC5C,UAAM,iBAAiB,oBAAI,IAAkC;AAE7D,eAAW,MAAM,UAAU;AACzB,YAAM,WAAW,oBAAI,IAAoB;AACzC,iBAAW,QAAQ,mBAAmB;AACpC,iBAAS,IAAI,MAAO,GAAmB,MAAM,iBAAiB,IAAI,CAAC;AAClE,QAAC,GAAmB,MAAM,YAAY,MAAM,iBAAiB;AAAA,MAChE;AACA,iBAAW,QAAQ,gBAAgB;AACjC,iBAAS,IAAI,MAAO,GAAmB,MAAM,iBAAiB,IAAI,CAAC;AAClE,QAAC,GAAmB,MAAM,YAAY,MAAM,UAAU;AAAA,MACzD;AACA,qBAAe,IAAI,IAAI,QAAQ;AAAA,IACjC;AAEA,WAAO,MAAM;AACX,iBAAW,CAAC,IAAI,QAAQ,KAAK,gBAAgB;AAC3C,mBAAW,CAAC,MAAM,KAAK,KAAK,UAAU;AACpC,cAAI,OAAO;AACT,YAAC,GAAmB,MAAM,YAAY,MAAM,KAAK;AAAA,UACnD,OAAO;AACL,YAAC,GAAmB,MAAM,eAAe,IAAI;AAAA,UAC/C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,YAAY,iBAAiB,CAAC;AAGlC,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,gBAAiB;AACtB,QAAI,OAAO,aAAa,YAAa;AAErC,UAAM,SAAS;AACf,QAAI,SAAS,eAAe,MAAM,EAAG;AAErC,UAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,SAAK,KAAK;AACV,SAAK,MAAM;AACX,SAAK,OAAO;AACZ,aAAS,KAAK,YAAY,IAAI;AAE9B,WAAO,MAAM;AACX,YAAM,WAAW,SAAS,eAAe,MAAM;AAC/C,UAAI,UAAU;AACZ,iBAAS,KAAK,YAAY,QAAQ;AAAA,MACpC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,eAAe,CAAC;AAEpB,SACE,4CAAC,YAAY,UAAZ,EAAqB,OAAO,cAC1B,UACH;AAEJ;AAEA,SAAS,UAA4B;AACnC,QAAM,UAAU,MAAM,WAAW,WAAW;AAE5C,MAAI,CAAC,SAAS;AACZ,WAAO,EAAE,YAAY,uDAAuD;AAAA,EAC9E;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -3,7 +3,7 @@ import * as React from "react";
3
3
  import {} from "./fontProvider.props.js";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  const FontContext = React.createContext(null);
6
- const DEFAULT_GOOGLE_FONTS_URL = "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@100..800&family=Science+Gothic:CTRS,slnt,wdth,wght@0..75,-10..0,50..200,100..900&display=swap&subset=cyrillic,latin";
6
+ const DEFAULT_GOOGLE_FONTS_URL = "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@100..800&family=Science+Gothic:CTRS,wdth,wght@0..75,50..200,100..900&display=swap&subset=cyrillic,latin";
7
7
  const DISPLAY_FONT_VARS = [
8
8
  "--dsx-typography-display-large-font-family",
9
9
  "--dsx-typography-display-medium-font-family",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/fontProvider/FontProvider.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport * as React from 'react'\n\nimport { type FontProviderProps } from './fontProvider.props'\n\ntype FontContextValue = {\n fontFamily: string\n}\n\nconst FontContext = React.createContext<FontContextValue | null>(null)\n\nconst DEFAULT_GOOGLE_FONTS_URL =\n 'https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@100..800&family=Science+Gothic:CTRS,slnt,wdth,wght@0..75,-10..0,50..200,100..900&display=swap&subset=cyrillic,latin'\n\n// The real typography CSS (heading.css, text.css) never reads a single global\n// `--dsx-font-family` / `--dsx-display-font-family` \u2014 each type-scale variant\n// reads its own token (`--dsx-typography-display-large-font-family`,\n// `--dsx-typography-body-medium-font-family`, etc.), defined once in\n// generated/tokens.css. Overriding only the two vars this component used to\n// write was a no-op: nothing in the package ever consumed them. `caption` is\n// intentionally left alone \u2014 its token is `inherit` by design.\nconst DISPLAY_FONT_VARS = [\n '--dsx-typography-display-large-font-family',\n '--dsx-typography-display-medium-font-family',\n '--dsx-typography-headline-large-font-family',\n '--dsx-typography-headline-medium-font-family',\n]\nconst BODY_FONT_VARS = [\n '--dsx-typography-body-large-font-family',\n '--dsx-typography-body-medium-font-family',\n '--dsx-typography-body-small-font-family',\n '--dsx-typography-label-large-font-family',\n '--dsx-typography-label-medium-font-family',\n '--dsx-typography-label-small-font-family',\n]\n\nfunction FontProvider({\n children,\n fontFamily = 'Science Gothic, ui-sans-serif, system-ui, sans-serif',\n displayFontFamily = 'Science Gothic, Arial Narrow, ui-sans-serif, system-ui, sans-serif',\n loadGoogleFonts = false,\n}: FontProviderProps) {\n const contextValue = React.useMemo<FontContextValue>(\n () => ({ fontFamily }),\n [fontFamily],\n )\n\n // useLayoutEffect, not useEffect (2026-08-26, real bug found live): with useEffect, React\n // defers this DOM mutation until after the browser has already painted the just-hydrated\n // frame \u2014 so on every reload the DS's default typography tokens\n // paint first, then visibly swap to the override font a beat later. Measured live: default\n // tokens still showing 100ms after commit, override not applied until ~300ms. useLayoutEffect\n // runs synchronously in the same commit as hydration, before that frame paints, so the\n // override is already applied by the first frame the browser shows post-hydration \u2014 it\n // cannot remove the one truly unavoidable flash (the server-rendered HTML painting before any\n // JS runs at all, inherent to Next.js's single root layout owning <html>/<body>), only the\n // second, avoidable one stacked on top of it.\n React.useLayoutEffect(() => {\n const html = document.documentElement\n const body = document.body\n // foundations/Theme.tsx's applyThemeToDocument sets every theme data-attribute\n // on BOTH html and body \u2014 deliberately, so Radix portals (Select/Dialog/\n // DropdownMenu content, rendered into document.body, not under the app's\n // themed root) still pick up theme-scoped tokens. Overriding only html left\n // body \u2014 a same-attribute match for `[data-dsx-theme=\"dark\"]` in\n // generated/tokens.css \u2014 still asserting the default package families\n // stack, which then wins for anything under body (i.e. everything), since\n // custom-property resolution takes the nearest ancestor's value. That's why\n // The custom display family only rendered correctly in light mode: that block\n // doesn't define font-family tokens at all, so body had nothing to\n // re-assert there. Writing to both elements matches the real architecture.\n const elements = body ? [html, body] : [html]\n const previousValues = new Map<Element, Map<string, string>>()\n\n for (const el of elements) {\n const previous = new Map<string, string>()\n for (const name of DISPLAY_FONT_VARS) {\n previous.set(name, (el as HTMLElement).style.getPropertyValue(name))\n ;(el as HTMLElement).style.setProperty(name, displayFontFamily)\n }\n for (const name of BODY_FONT_VARS) {\n previous.set(name, (el as HTMLElement).style.getPropertyValue(name))\n ;(el as HTMLElement).style.setProperty(name, fontFamily)\n }\n previousValues.set(el, previous)\n }\n\n return () => {\n for (const [el, previous] of previousValues) {\n for (const [name, value] of previous) {\n if (value) {\n (el as HTMLElement).style.setProperty(name, value)\n } else {\n (el as HTMLElement).style.removeProperty(name)\n }\n }\n }\n }\n }, [fontFamily, displayFontFamily])\n\n // Optional hosted compatibility path for the canonical bilingual and mono families.\n React.useEffect(() => {\n if (!loadGoogleFonts) return\n if (typeof document === 'undefined') return\n\n const linkId = 'dsx-font-provider-default-fonts'\n if (document.getElementById(linkId)) return\n\n const link = document.createElement('link')\n link.id = linkId\n link.rel = 'stylesheet'\n link.href = DEFAULT_GOOGLE_FONTS_URL\n document.head.appendChild(link)\n\n return () => {\n const existing = document.getElementById(linkId)\n if (existing) {\n document.head.removeChild(existing)\n }\n }\n }, [loadGoogleFonts])\n\n return (\n <FontContext.Provider value={contextValue}>\n {children}\n </FontContext.Provider>\n )\n}\n\nfunction useFont(): FontContextValue {\n const context = React.useContext(FontContext)\n\n if (!context) {\n return { fontFamily: 'Science Gothic, ui-sans-serif, system-ui, sans-serif' }\n }\n\n return context\n}\n\nexport { FontProvider, useFont }\n"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\n\nimport { type FontProviderProps } from './fontProvider.props'\n\ntype FontContextValue = {\n fontFamily: string\n}\n\nconst FontContext = React.createContext<FontContextValue | null>(null)\n\nconst DEFAULT_GOOGLE_FONTS_URL =\n 'https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@100..800&family=Science+Gothic:CTRS,wdth,wght@0..75,50..200,100..900&display=swap&subset=cyrillic,latin'\n\n// The real typography CSS (heading.css, text.css) never reads a single global\n// `--dsx-font-family` / `--dsx-display-font-family` \u2014 each type-scale variant\n// reads its own token (`--dsx-typography-display-large-font-family`,\n// `--dsx-typography-body-medium-font-family`, etc.), defined once in\n// generated/tokens.css. Overriding only the two vars this component used to\n// write was a no-op: nothing in the package ever consumed them. `caption` is\n// intentionally left alone \u2014 its token is `inherit` by design.\nconst DISPLAY_FONT_VARS = [\n '--dsx-typography-display-large-font-family',\n '--dsx-typography-display-medium-font-family',\n '--dsx-typography-headline-large-font-family',\n '--dsx-typography-headline-medium-font-family',\n]\nconst BODY_FONT_VARS = [\n '--dsx-typography-body-large-font-family',\n '--dsx-typography-body-medium-font-family',\n '--dsx-typography-body-small-font-family',\n '--dsx-typography-label-large-font-family',\n '--dsx-typography-label-medium-font-family',\n '--dsx-typography-label-small-font-family',\n]\n\nfunction FontProvider({\n children,\n fontFamily = 'Science Gothic, ui-sans-serif, system-ui, sans-serif',\n displayFontFamily = 'Science Gothic, Arial Narrow, ui-sans-serif, system-ui, sans-serif',\n loadGoogleFonts = false,\n}: FontProviderProps) {\n const contextValue = React.useMemo<FontContextValue>(\n () => ({ fontFamily }),\n [fontFamily],\n )\n\n // useLayoutEffect, not useEffect (2026-08-26, real bug found live): with useEffect, React\n // defers this DOM mutation until after the browser has already painted the just-hydrated\n // frame \u2014 so on every reload the DS's default typography tokens\n // paint first, then visibly swap to the override font a beat later. Measured live: default\n // tokens still showing 100ms after commit, override not applied until ~300ms. useLayoutEffect\n // runs synchronously in the same commit as hydration, before that frame paints, so the\n // override is already applied by the first frame the browser shows post-hydration \u2014 it\n // cannot remove the one truly unavoidable flash (the server-rendered HTML painting before any\n // JS runs at all, inherent to Next.js's single root layout owning <html>/<body>), only the\n // second, avoidable one stacked on top of it.\n React.useLayoutEffect(() => {\n const html = document.documentElement\n const body = document.body\n // foundations/Theme.tsx's applyThemeToDocument sets every theme data-attribute\n // on BOTH html and body \u2014 deliberately, so Radix portals (Select/Dialog/\n // DropdownMenu content, rendered into document.body, not under the app's\n // themed root) still pick up theme-scoped tokens. Overriding only html left\n // body \u2014 a same-attribute match for `[data-dsx-theme=\"dark\"]` in\n // generated/tokens.css \u2014 still asserting the default package families\n // stack, which then wins for anything under body (i.e. everything), since\n // custom-property resolution takes the nearest ancestor's value. That's why\n // The custom display family only rendered correctly in light mode: that block\n // doesn't define font-family tokens at all, so body had nothing to\n // re-assert there. Writing to both elements matches the real architecture.\n const elements = body ? [html, body] : [html]\n const previousValues = new Map<Element, Map<string, string>>()\n\n for (const el of elements) {\n const previous = new Map<string, string>()\n for (const name of DISPLAY_FONT_VARS) {\n previous.set(name, (el as HTMLElement).style.getPropertyValue(name))\n ;(el as HTMLElement).style.setProperty(name, displayFontFamily)\n }\n for (const name of BODY_FONT_VARS) {\n previous.set(name, (el as HTMLElement).style.getPropertyValue(name))\n ;(el as HTMLElement).style.setProperty(name, fontFamily)\n }\n previousValues.set(el, previous)\n }\n\n return () => {\n for (const [el, previous] of previousValues) {\n for (const [name, value] of previous) {\n if (value) {\n (el as HTMLElement).style.setProperty(name, value)\n } else {\n (el as HTMLElement).style.removeProperty(name)\n }\n }\n }\n }\n }, [fontFamily, displayFontFamily])\n\n // Optional hosted compatibility path for the canonical bilingual and mono families.\n React.useEffect(() => {\n if (!loadGoogleFonts) return\n if (typeof document === 'undefined') return\n\n const linkId = 'dsx-font-provider-default-fonts'\n if (document.getElementById(linkId)) return\n\n const link = document.createElement('link')\n link.id = linkId\n link.rel = 'stylesheet'\n link.href = DEFAULT_GOOGLE_FONTS_URL\n document.head.appendChild(link)\n\n return () => {\n const existing = document.getElementById(linkId)\n if (existing) {\n document.head.removeChild(existing)\n }\n }\n }, [loadGoogleFonts])\n\n return (\n <FontContext.Provider value={contextValue}>\n {children}\n </FontContext.Provider>\n )\n}\n\nfunction useFont(): FontContextValue {\n const context = React.useContext(FontContext)\n\n if (!context) {\n return { fontFamily: 'Science Gothic, ui-sans-serif, system-ui, sans-serif' }\n }\n\n return context\n}\n\nexport { FontProvider, useFont }\n"],
5
5
  "mappings": ";AAEA,YAAY,WAAW;AAEvB,eAAuC;AAwHnC;AAlHJ,MAAM,cAAc,MAAM,cAAuC,IAAI;AAErE,MAAM,2BACJ;AASF,MAAM,oBAAoB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,MAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,kBAAkB;AACpB,GAAsB;AACpB,QAAM,eAAe,MAAM;AAAA,IACzB,OAAO,EAAE,WAAW;AAAA,IACpB,CAAC,UAAU;AAAA,EACb;AAYA,QAAM,gBAAgB,MAAM;AAC1B,UAAM,OAAO,SAAS;AACtB,UAAM,OAAO,SAAS;AAYtB,UAAM,WAAW,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI;AAC5C,UAAM,iBAAiB,oBAAI,IAAkC;AAE7D,eAAW,MAAM,UAAU;AACzB,YAAM,WAAW,oBAAI,IAAoB;AACzC,iBAAW,QAAQ,mBAAmB;AACpC,iBAAS,IAAI,MAAO,GAAmB,MAAM,iBAAiB,IAAI,CAAC;AAClE,QAAC,GAAmB,MAAM,YAAY,MAAM,iBAAiB;AAAA,MAChE;AACA,iBAAW,QAAQ,gBAAgB;AACjC,iBAAS,IAAI,MAAO,GAAmB,MAAM,iBAAiB,IAAI,CAAC;AAClE,QAAC,GAAmB,MAAM,YAAY,MAAM,UAAU;AAAA,MACzD;AACA,qBAAe,IAAI,IAAI,QAAQ;AAAA,IACjC;AAEA,WAAO,MAAM;AACX,iBAAW,CAAC,IAAI,QAAQ,KAAK,gBAAgB;AAC3C,mBAAW,CAAC,MAAM,KAAK,KAAK,UAAU;AACpC,cAAI,OAAO;AACT,YAAC,GAAmB,MAAM,YAAY,MAAM,KAAK;AAAA,UACnD,OAAO;AACL,YAAC,GAAmB,MAAM,eAAe,IAAI;AAAA,UAC/C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,YAAY,iBAAiB,CAAC;AAGlC,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,gBAAiB;AACtB,QAAI,OAAO,aAAa,YAAa;AAErC,UAAM,SAAS;AACf,QAAI,SAAS,eAAe,MAAM,EAAG;AAErC,UAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,SAAK,KAAK;AACV,SAAK,MAAM;AACX,SAAK,OAAO;AACZ,aAAS,KAAK,YAAY,IAAI;AAE9B,WAAO,MAAM;AACX,YAAM,WAAW,SAAS,eAAe,MAAM;AAC/C,UAAI,UAAU;AACZ,iBAAS,KAAK,YAAY,QAAQ;AAAA,MACpC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,eAAe,CAAC;AAEpB,SACE,oBAAC,YAAY,UAAZ,EAAqB,OAAO,cAC1B,UACH;AAEJ;AAEA,SAAS,UAA4B;AACnC,QAAM,UAAU,MAAM,WAAW,WAAW;AAE5C,MAAI,CAAC,SAAS;AACZ,WAAO,EAAE,YAAY,uDAAuD;AAAA,EAC9E;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -63,8 +63,11 @@ const DSX_ICON_NAMES = [
63
63
  "activity",
64
64
  "alert-triangle",
65
65
  "apple",
66
+ "arrow-down",
66
67
  "arrow-left",
67
68
  "arrow-right",
69
+ "arrow-up",
70
+ "arrow-up-down",
68
71
  "bell",
69
72
  "banknote",
70
73
  "bold",
@@ -73,15 +76,18 @@ const DSX_ICON_NAMES = [
73
76
  "check-circle",
74
77
  "circle-dollar-sign",
75
78
  "chevron-down",
76
- "clock",
77
79
  "chevron-left",
78
80
  "chevron-right",
79
81
  "chevron-up",
82
+ "chevrons-left",
83
+ "chevrons-right",
84
+ "clock",
80
85
  "code",
81
86
  "copy",
82
87
  "discord",
83
88
  "dots-horizontal",
84
89
  "dots-vertical",
90
+ "download",
85
91
  "edit",
86
92
  "eraser",
87
93
  "external-link",
@@ -95,6 +101,7 @@ const DSX_ICON_NAMES = [
95
101
  "gitlab",
96
102
  "globe",
97
103
  "google",
104
+ "grip-vertical",
98
105
  "hard-drive",
99
106
  "heading-1",
100
107
  "heading-2",
@@ -102,6 +109,7 @@ const DSX_ICON_NAMES = [
102
109
  "help-circle",
103
110
  "home",
104
111
  "image",
112
+ "inbox",
105
113
  "info",
106
114
  "instagram",
107
115
  "italic",
@@ -161,8 +169,11 @@ const DSX_ICON_NAMES = [
161
169
  const LUCIDE_ICON_COMPONENTS = {
162
170
  activity: import_lucide_react.Activity,
163
171
  "alert-triangle": import_lucide_react.AlertTriangle,
172
+ "arrow-down": import_lucide_react.ArrowDown,
164
173
  "arrow-left": import_lucide_react.ArrowLeft,
165
174
  "arrow-right": import_lucide_react.ArrowRight,
175
+ "arrow-up": import_lucide_react.ArrowUp,
176
+ "arrow-up-down": import_lucide_react.ArrowUpDown,
166
177
  bell: import_lucide_react.Bell,
167
178
  banknote: import_lucide_react.Banknote,
168
179
  bold: import_lucide_react.Bold,
@@ -171,14 +182,17 @@ const LUCIDE_ICON_COMPONENTS = {
171
182
  "check-circle": import_lucide_react.CheckCircle,
172
183
  "circle-dollar-sign": import_lucide_react.CircleDollarSign,
173
184
  "chevron-down": import_lucide_react.ChevronDown,
174
- clock: import_lucide_react.Clock,
175
185
  "chevron-left": import_lucide_react.ChevronLeft,
176
186
  "chevron-right": import_lucide_react.ChevronRight,
177
187
  "chevron-up": import_lucide_react.ChevronUp,
188
+ "chevrons-left": import_lucide_react.ChevronsLeft,
189
+ "chevrons-right": import_lucide_react.ChevronsRight,
190
+ clock: import_lucide_react.Clock,
178
191
  code: import_lucide_react.Code2,
179
192
  copy: import_lucide_react.Copy,
180
193
  "dots-horizontal": import_lucide_react.Ellipsis,
181
194
  "dots-vertical": import_lucide_react.EllipsisVertical,
195
+ download: import_lucide_react.Download,
182
196
  edit: import_lucide_react.Edit,
183
197
  eraser: import_lucide_react.Eraser,
184
198
  "external-link": import_lucide_react.ExternalLink,
@@ -188,6 +202,7 @@ const LUCIDE_ICON_COMPONENTS = {
188
202
  fingerprint: import_lucide_react.Fingerprint,
189
203
  gem: import_lucide_react.Gem,
190
204
  globe: import_lucide_react.Globe,
205
+ "grip-vertical": import_lucide_react.GripVertical,
191
206
  "hard-drive": import_lucide_react.HardDrive,
192
207
  "heading-1": import_lucide_react.Heading1,
193
208
  "heading-2": import_lucide_react.Heading2,
@@ -195,6 +210,7 @@ const LUCIDE_ICON_COMPONENTS = {
195
210
  "help-circle": import_lucide_react.HelpCircle,
196
211
  home: import_lucide_react.Home,
197
212
  image: import_lucide_react.Image,
213
+ inbox: import_lucide_react.Inbox,
198
214
  info: import_lucide_react.Info,
199
215
  italic: import_lucide_react.Italic,
200
216
  key: import_lucide_react.Key,
@@ -359,6 +375,9 @@ const dsxIconCatalog = [
359
375
  { name: "apple", category: "Companies & Services", file: "apple.svg" },
360
376
  { name: "arrow-left", category: "Navigation & System", file: "arrow-left.svg" },
361
377
  { name: "arrow-right", category: "Navigation & System", file: "arrow-right.svg" },
378
+ { name: "arrow-down", category: "Navigation & System", file: "arrow-down.svg" },
379
+ { name: "arrow-up", category: "Navigation & System", file: "arrow-up.svg" },
380
+ { name: "arrow-up-down", category: "Navigation & System", file: "arrow-up-down.svg" },
362
381
  { name: "bell", category: "Feedback", file: "bell.svg" },
363
382
  { name: "banknote", category: "Commerce", file: "banknote.svg" },
364
383
  { name: "bold", category: "Forms & Actions", file: "bold.svg" },
@@ -371,11 +390,14 @@ const dsxIconCatalog = [
371
390
  { name: "chevron-left", category: "Navigation & System", file: "chevron-left.svg" },
372
391
  { name: "chevron-right", category: "Navigation & System", file: "chevron-right.svg" },
373
392
  { name: "chevron-up", category: "Navigation & System", file: "chevron-up.svg" },
393
+ { name: "chevrons-left", category: "Navigation & System", file: "chevrons-left.svg" },
394
+ { name: "chevrons-right", category: "Navigation & System", file: "chevrons-right.svg" },
374
395
  { name: "code", category: "Forms & Actions", file: "code.svg" },
375
396
  { name: "copy", category: "Forms & Actions", file: "copy.svg" },
376
397
  { name: "discord", category: "Brand & Social", file: "discord.svg" },
377
398
  { name: "dots-horizontal", category: "Navigation & System", file: "dots-horizontal.svg" },
378
399
  { name: "dots-vertical", category: "Navigation & System", file: "dots-vertical.svg" },
400
+ { name: "download", category: "Forms & Actions", file: "download.svg" },
379
401
  { name: "edit", category: "Forms & Actions", file: "edit.svg" },
380
402
  { name: "eraser", category: "Forms & Actions", file: "eraser.svg" },
381
403
  { name: "external-link", category: "Navigation & System", file: "external-link.svg" },
@@ -396,6 +418,7 @@ const dsxIconCatalog = [
396
418
  { name: "help-circle", category: "Feedback", file: "help-circle.svg" },
397
419
  { name: "home", category: "App Specific", file: "home.svg" },
398
420
  { name: "image", category: "Forms & Actions", file: "image.svg" },
421
+ { name: "inbox", category: "Feedback", file: "inbox.svg" },
399
422
  { name: "info", category: "Feedback", file: "info.svg" },
400
423
  { name: "instagram", category: "Brand & Social", file: "instagram.svg" },
401
424
  { name: "italic", category: "Forms & Actions", file: "italic.svg" },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/icon/Icon.tsx"],
4
- "sourcesContent": ["import * as React from 'react'\nimport {\n Activity,\n AlertTriangle,\n ArrowLeft,\n ArrowRight,\n Bell,\n Banknote,\n Bold,\n Calendar,\n Check,\n Clock,\n CheckCircle,\n CircleDollarSign,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n Copy,\n Code2,\n Edit,\n Ellipsis,\n EllipsisVertical,\n Eraser,\n ExternalLink,\n Eye,\n EyeOff,\n File,\n Fingerprint,\n Gem,\n Globe,\n HardDrive,\n Heading1,\n Heading2,\n Heading3,\n HelpCircle,\n Home,\n Image,\n Info,\n Italic,\n Key,\n Link,\n List,\n ListOrdered,\n Loader,\n Lock,\n LockKeyhole,\n Mail,\n Menu,\n Minus,\n Monitor,\n Moon,\n PanelLeft,\n PanelLeftDashed,\n Plus,\n Power,\n Quote,\n ReceiptText,\n Redo2,\n Rocket,\n Search,\n Send,\n Server,\n Settings,\n Shield,\n ShieldCheck,\n Signal,\n Sparkles,\n Star,\n Strikethrough,\n Trash,\n RussianRuble,\n Sun,\n Unlock,\n Upload,\n Undo2,\n User,\n Wifi,\n X,\n Zap,\n} from 'lucide-react'\nimport type { LucideIcon } from 'lucide-react'\nimport {\n SiApple,\n SiDiscord,\n SiFacebook,\n SiGithub,\n SiGitlab,\n SiGoogle,\n SiInstagram,\n SiNetflix,\n SiNpm,\n SiPaypal,\n SiReddit,\n SiSpotify,\n SiStripe,\n SiSupabase,\n SiTelegram,\n SiTwitch,\n SiVercel,\n SiX,\n SiYoutube,\n} from '@icons-pack/react-simple-icons'\nimport type { IconType as SimpleIconType } from '@icons-pack/react-simple-icons'\n\nimport { cn } from '../../_internal/cn'\n\nconst PRIMITIVE_ICON_SIZES = {\n sm: 16,\n md: 20,\n lg: 24,\n xl: 32,\n} as const\n\nconst PUBLIC_ICON_SIZES = {\n xs: 16,\n sm: 20,\n md: 24,\n lg: 32,\n xl: 40,\n} as const\n\nconst ICON_COLORS = {\n 'on-surface': 'var(--dsx-color-on-surface)',\n muted: 'var(--dsx-color-on-surface-variant)',\n primary: 'var(--dsx-color-primary)',\n secondary: 'var(--dsx-color-secondary)',\n success: 'var(--dsx-color-success)',\n error: 'var(--dsx-color-error)',\n} as const\n\nconst DSX_ICON_NAMES = [\n 'activity',\n 'alert-triangle',\n 'apple',\n 'arrow-left',\n 'arrow-right',\n 'bell',\n 'banknote',\n 'bold',\n 'calendar',\n 'check',\n 'check-circle',\n 'circle-dollar-sign',\n 'chevron-down',\n 'clock',\n 'chevron-left',\n 'chevron-right',\n 'chevron-up',\n 'code',\n 'copy',\n 'discord',\n 'dots-horizontal',\n 'dots-vertical',\n 'edit',\n 'eraser',\n 'external-link',\n 'eye',\n 'eye-off',\n 'facebook',\n 'file',\n 'fingerprint',\n 'gem',\n 'github',\n 'gitlab',\n 'globe',\n 'google',\n 'hard-drive',\n 'heading-1',\n 'heading-2',\n 'heading-3',\n 'help-circle',\n 'home',\n 'image',\n 'info',\n 'instagram',\n 'italic',\n 'key',\n 'link',\n 'list',\n 'list-ordered',\n 'loader',\n 'lock',\n 'lock-keyhole',\n 'mail',\n 'menu',\n 'minus',\n 'monitor',\n 'moon',\n 'netflix',\n 'npm',\n 'panel-left',\n 'panel-left-dashed',\n 'paypal',\n 'plus',\n 'power',\n 'quote',\n 'receipt-text',\n 'redo',\n 'reddit',\n 'rocket',\n 'search',\n 'send',\n 'server',\n 'settings',\n 'shield',\n 'shield-check',\n 'signal',\n 'sparkles',\n 'star',\n 'strikethrough',\n 'spotify',\n 'stripe',\n 'supabase',\n 'telegram',\n 'trash',\n 'russian-ruble',\n 'sun',\n 'twitch',\n 'twitter',\n 'unlock',\n 'upload',\n 'undo',\n 'user',\n 'vercel',\n 'wifi',\n 'x',\n 'youtube',\n 'zap',\n] as const\n\nconst LUCIDE_ICON_COMPONENTS: Partial<Record<DSXIconName, LucideIcon>> = {\n activity: Activity,\n 'alert-triangle': AlertTriangle,\n 'arrow-left': ArrowLeft,\n 'arrow-right': ArrowRight,\n bell: Bell,\n banknote: Banknote,\n bold: Bold,\n calendar: Calendar,\n check: Check,\n 'check-circle': CheckCircle,\n 'circle-dollar-sign': CircleDollarSign,\n 'chevron-down': ChevronDown,\n clock: Clock,\n 'chevron-left': ChevronLeft,\n 'chevron-right': ChevronRight,\n 'chevron-up': ChevronUp,\n code: Code2,\n copy: Copy,\n 'dots-horizontal': Ellipsis,\n 'dots-vertical': EllipsisVertical,\n edit: Edit,\n eraser: Eraser,\n 'external-link': ExternalLink,\n eye: Eye,\n 'eye-off': EyeOff,\n file: File,\n fingerprint: Fingerprint,\n gem: Gem,\n globe: Globe,\n 'hard-drive': HardDrive,\n 'heading-1': Heading1,\n 'heading-2': Heading2,\n 'heading-3': Heading3,\n 'help-circle': HelpCircle,\n home: Home,\n image: Image,\n info: Info,\n italic: Italic,\n key: Key,\n link: Link,\n list: List,\n 'list-ordered': ListOrdered,\n loader: Loader,\n lock: Lock,\n 'lock-keyhole': LockKeyhole,\n mail: Mail,\n menu: Menu,\n minus: Minus,\n monitor: Monitor,\n moon: Moon,\n 'panel-left': PanelLeft,\n 'panel-left-dashed': PanelLeftDashed,\n plus: Plus,\n power: Power,\n quote: Quote,\n 'receipt-text': ReceiptText,\n redo: Redo2,\n rocket: Rocket,\n search: Search,\n send: Send,\n server: Server,\n settings: Settings,\n shield: Shield,\n 'shield-check': ShieldCheck,\n signal: Signal,\n sparkles: Sparkles,\n star: Star,\n strikethrough: Strikethrough,\n trash: Trash,\n 'russian-ruble': RussianRuble,\n sun: Sun,\n unlock: Unlock,\n upload: Upload,\n undo: Undo2,\n user: User,\n wifi: Wifi,\n x: X,\n zap: Zap,\n}\n\nconst SIMPLE_ICON_COMPONENTS: Partial<Record<DSXIconName, SimpleIconType>> = {\n apple: SiApple,\n discord: SiDiscord,\n facebook: SiFacebook,\n github: SiGithub,\n gitlab: SiGitlab,\n google: SiGoogle,\n instagram: SiInstagram,\n netflix: SiNetflix,\n npm: SiNpm,\n paypal: SiPaypal,\n reddit: SiReddit,\n spotify: SiSpotify,\n stripe: SiStripe,\n supabase: SiSupabase,\n telegram: SiTelegram,\n twitch: SiTwitch,\n twitter: SiX,\n vercel: SiVercel,\n youtube: SiYoutube,\n}\n\nexport type DSXIconName = (typeof DSX_ICON_NAMES)[number]\nexport type DSXIconSize = keyof typeof PUBLIC_ICON_SIZES\nexport type DSXIconColor = keyof typeof ICON_COLORS\nexport type IconSize = keyof typeof PRIMITIVE_ICON_SIZES\n\nexport type DSXIconProps = Omit<React.ComponentPropsWithoutRef<'svg'>, 'color'> & {\n color?: DSXIconColor | string\n size?: DSXIconSize | number | string\n title?: string\n}\n\nexport type IconProps = Omit<React.ComponentPropsWithoutRef<'svg'>, 'color'> & {\n name: string\n size?: IconSize\n title?: string\n}\n\nfunction resolvePrimitiveSize(size: IconSize | undefined) {\n return PRIMITIVE_ICON_SIZES[size ?? 'md']\n}\n\nfunction resolvePublicSize(size: DSXIconProps['size']) {\n if (typeof size === 'number') return size\n if (!size) return PUBLIC_ICON_SIZES.md\n if (size in PUBLIC_ICON_SIZES) return PUBLIC_ICON_SIZES[size as DSXIconSize]\n return size\n}\n\nfunction resolveColor(color: DSXIconProps['color']) {\n if (!color) return ICON_COLORS['on-surface']\n if (color in ICON_COLORS) return ICON_COLORS[color as DSXIconColor]\n return color\n}\n\nfunction isDSXIconName(name: string): name is DSXIconName {\n return DSX_ICON_NAMES.includes(name as DSXIconName)\n}\n\nfunction toDisplayName(name: DSXIconName) {\n return `${name\n .split('-')\n .filter(Boolean)\n .map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1))\n .join('')}Icon`\n}\n\ntype SharedIconRenderProps = Omit<React.ComponentPropsWithoutRef<'svg'>, 'color'> & {\n name: DSXIconName\n color?: string\n size?: number | string\n title?: string\n}\n\nfunction renderDSXIcon(\n { name, color, size, title, children, className, strokeWidth, 'data-size': dataSize, ...props }: SharedIconRenderProps & { 'data-size'?: string },\n ref: React.ForwardedRef<SVGSVGElement>,\n) {\n const resolvedClassName = cn('dsx-icon', className)\n const a11yProps = {\n 'data-size': dataSize,\n role: title ? ('img' as const) : ('presentation' as const),\n 'aria-hidden': title ? undefined : true,\n }\n\n const LucideComponent = LUCIDE_ICON_COMPONENTS[name]\n if (LucideComponent) {\n return (\n <LucideComponent\n {...props}\n {...a11yProps}\n ref={ref}\n data-size={dataSize}\n color={color}\n size={size}\n strokeWidth={strokeWidth ?? 'var(--dsx-icon-stroke-width, 1.75)'}\n className={resolvedClassName}\n >\n {title ? <title>{title}</title> : null}\n {children}\n </LucideComponent>\n )\n }\n\n const SimpleIconComponent = SIMPLE_ICON_COMPONENTS[name]\n if (!SimpleIconComponent) return null\n\n return (\n <SimpleIconComponent\n {...props}\n {...a11yProps}\n ref={ref}\n data-size={dataSize}\n color={color === undefined ? 'currentColor' : color}\n size={size}\n className={resolvedClassName}\n title={title}\n />\n )\n}\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(function Icon(\n { name, size = 'md', className, title, ...props },\n ref,\n) {\n if (!isDSXIconName(name)) return null\n\n return renderDSXIcon(\n {\n ...props,\n 'data-size': size,\n name,\n size: resolvePrimitiveSize(size),\n className: cn(className),\n title,\n },\n ref,\n )\n})\n\nexport function createDSXIconComponent(name: DSXIconName) {\n const Component = React.forwardRef<SVGSVGElement, DSXIconProps>(function DSXIcon(\n { color = 'on-surface', size = 'md', className, title, ...props },\n ref,\n ) {\n return renderDSXIcon(\n {\n ...props,\n name,\n color: resolveColor(color),\n size: resolvePublicSize(size),\n className,\n title,\n },\n ref,\n )\n })\n\n Component.displayName = toDisplayName(name)\n return Component\n}\n\nexport const dsxIconCatalog = [\n { name: 'activity', category: 'Connectivity', file: 'activity.svg' },\n { name: 'alert-triangle', category: 'Feedback', file: 'alert-triangle.svg' },\n { name: 'apple', category: 'Companies & Services', file: 'apple.svg' },\n { name: 'arrow-left', category: 'Navigation & System', file: 'arrow-left.svg' },\n { name: 'arrow-right', category: 'Navigation & System', file: 'arrow-right.svg' },\n { name: 'bell', category: 'Feedback', file: 'bell.svg' },\n { name: 'banknote', category: 'Commerce', file: 'banknote.svg' },\n { name: 'bold', category: 'Forms & Actions', file: 'bold.svg' },\n { name: 'calendar', category: 'Forms & Actions', file: 'calendar.svg' },\n { name: 'check', category: 'Feedback', file: 'check.svg' },\n { name: 'check-circle', category: 'Feedback', file: 'check-circle.svg' },\n { name: 'circle-dollar-sign', category: 'Commerce', file: 'circle-dollar-sign.svg' },\n { name: 'chevron-down', category: 'Navigation & System', file: 'chevron-down.svg' },\n { name: 'clock', category: 'Forms & Actions', file: 'clock.svg' },\n { name: 'chevron-left', category: 'Navigation & System', file: 'chevron-left.svg' },\n { name: 'chevron-right', category: 'Navigation & System', file: 'chevron-right.svg' },\n { name: 'chevron-up', category: 'Navigation & System', file: 'chevron-up.svg' },\n { name: 'code', category: 'Forms & Actions', file: 'code.svg' },\n { name: 'copy', category: 'Forms & Actions', file: 'copy.svg' },\n { name: 'discord', category: 'Brand & Social', file: 'discord.svg' },\n { name: 'dots-horizontal', category: 'Navigation & System', file: 'dots-horizontal.svg' },\n { name: 'dots-vertical', category: 'Navigation & System', file: 'dots-vertical.svg' },\n { name: 'edit', category: 'Forms & Actions', file: 'edit.svg' },\n { name: 'eraser', category: 'Forms & Actions', file: 'eraser.svg' },\n { name: 'external-link', category: 'Navigation & System', file: 'external-link.svg' },\n { name: 'eye', category: 'Forms & Actions', file: 'eye.svg' },\n { name: 'eye-off', category: 'Forms & Actions', file: 'eye-off.svg' },\n { name: 'facebook', category: 'Brand & Social', file: 'facebook.svg' },\n { name: 'file', category: 'Forms & Actions', file: 'file.svg' },\n { name: 'fingerprint', category: 'Security & Privacy', file: 'fingerprint.svg' },\n { name: 'gem', category: 'Commerce', file: 'gem.svg' },\n { name: 'github', category: 'Brand & Social', file: 'github.svg' },\n { name: 'gitlab', category: 'Companies & Services', file: 'gitlab.svg' },\n { name: 'globe', category: 'Connectivity', file: 'globe.svg' },\n { name: 'google', category: 'Companies & Services', file: 'google.svg' },\n { name: 'hard-drive', category: 'Connectivity', file: 'hard-drive.svg' },\n { name: 'heading-1', category: 'Forms & Actions', file: 'heading-1.svg' },\n { name: 'heading-2', category: 'Forms & Actions', file: 'heading-2.svg' },\n { name: 'heading-3', category: 'Forms & Actions', file: 'heading-3.svg' },\n { name: 'help-circle', category: 'Feedback', file: 'help-circle.svg' },\n { name: 'home', category: 'App Specific', file: 'home.svg' },\n { name: 'image', category: 'Forms & Actions', file: 'image.svg' },\n { name: 'info', category: 'Feedback', file: 'info.svg' },\n { name: 'instagram', category: 'Brand & Social', file: 'instagram.svg' },\n { name: 'italic', category: 'Forms & Actions', file: 'italic.svg' },\n { name: 'key', category: 'Security & Privacy', file: 'key.svg' },\n { name: 'link', category: 'Forms & Actions', file: 'link.svg' },\n { name: 'list', category: 'Forms & Actions', file: 'list.svg' },\n { name: 'list-ordered', category: 'Forms & Actions', file: 'list-ordered.svg' },\n { name: 'loader', category: 'Feedback', file: 'loader.svg' },\n { name: 'lock', category: 'Security & Privacy', file: 'lock.svg' },\n { name: 'lock-keyhole', category: 'Security & Privacy', file: 'lock-keyhole.svg' },\n { name: 'mail', category: 'Communication', file: 'mail.svg' },\n { name: 'menu', category: 'Navigation & System', file: 'menu.svg' },\n { name: 'minus', category: 'Navigation & System', file: 'minus.svg' },\n { name: 'monitor', category: 'Theme', file: 'monitor.svg' },\n { name: 'moon', category: 'Theme', file: 'moon.svg' },\n { name: 'netflix', category: 'Companies & Services', file: 'netflix.svg' },\n { name: 'npm', category: 'Companies & Services', file: 'npm.svg' },\n { name: 'panel-left', category: 'Navigation & System', file: 'panel-left.svg' },\n { name: 'panel-left-dashed', category: 'Navigation & System', file: 'panel-left-dashed.svg' },\n { name: 'paypal', category: 'Companies & Services', file: 'paypal.svg' },\n { name: 'plus', category: 'Navigation & System', file: 'plus.svg' },\n { name: 'power', category: 'Actions', file: 'power.svg' },\n { name: 'quote', category: 'Forms & Actions', file: 'quote.svg' },\n { name: 'receipt-text', category: 'Commerce', file: 'receipt-text.svg' },\n { name: 'redo', category: 'Forms & Actions', file: 'redo.svg' },\n { name: 'reddit', category: 'Brand & Social', file: 'reddit.svg' },\n { name: 'rocket', category: 'App Specific', file: 'rocket.svg' },\n { name: 'search', category: 'Navigation & System', file: 'search.svg' },\n { name: 'send', category: 'Communication', file: 'send.svg' },\n { name: 'server', category: 'Connectivity', file: 'server.svg' },\n { name: 'settings', category: 'Navigation & System', file: 'settings.svg' },\n { name: 'shield', category: 'Security & Privacy', file: 'shield.svg' },\n { name: 'shield-check', category: 'Security & Privacy', file: 'shield-check.svg' },\n { name: 'signal', category: 'Connectivity', file: 'signal.svg' },\n { name: 'sparkles', category: 'Feedback', file: 'sparkles.svg' },\n { name: 'star', category: 'Feedback', file: 'star.svg' },\n { name: 'strikethrough', category: 'Forms & Actions', file: 'strikethrough.svg' },\n { name: 'spotify', category: 'Companies & Services', file: 'spotify.svg' },\n { name: 'stripe', category: 'Companies & Services', file: 'stripe.svg' },\n { name: 'supabase', category: 'Companies & Services', file: 'supabase.svg' },\n { name: 'telegram', category: 'Brand & Social', file: 'telegram.svg' },\n { name: 'trash', category: 'Forms & Actions', file: 'trash.svg' },\n { name: 'russian-ruble', category: 'Commerce', file: 'russian-ruble.svg' },\n { name: 'sun', category: 'Theme', file: 'sun.svg' },\n { name: 'twitch', category: 'Brand & Social', file: 'twitch.svg' },\n { name: 'twitter', category: 'Brand & Social', file: 'twitter.svg' },\n { name: 'unlock', category: 'Security & Privacy', file: 'unlock.svg' },\n { name: 'undo', category: 'Forms & Actions', file: 'undo.svg' },\n { name: 'upload', category: 'Forms & Actions', file: 'upload.svg' },\n { name: 'user', category: 'Navigation & System', file: 'user.svg' },\n { name: 'vercel', category: 'Companies & Services', file: 'vercel.svg' },\n { name: 'wifi', category: 'Connectivity', file: 'wifi.svg' },\n { name: 'x', category: 'Navigation & System', file: 'x.svg' },\n { name: 'youtube', category: 'Brand & Social', file: 'youtube.svg' },\n { name: 'zap', category: 'Connectivity', file: 'zap.svg' },\n] as const\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import * as React from 'react'\nimport {\n Activity,\n AlertTriangle,\n ArrowDown,\n ArrowLeft,\n ArrowRight,\n ArrowUp,\n ArrowUpDown,\n Bell,\n Banknote,\n Bold,\n Calendar,\n Check,\n Clock,\n CheckCircle,\n CircleDollarSign,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n ChevronsLeft,\n ChevronsRight,\n Copy,\n Code2,\n Download,\n Edit,\n Ellipsis,\n EllipsisVertical,\n Eraser,\n ExternalLink,\n Eye,\n EyeOff,\n File,\n Fingerprint,\n Gem,\n Globe,\n GripVertical,\n HardDrive,\n Heading1,\n Heading2,\n Heading3,\n HelpCircle,\n Home,\n Image,\n Inbox,\n Info,\n Italic,\n Key,\n Link,\n List,\n ListOrdered,\n Loader,\n Lock,\n LockKeyhole,\n Mail,\n Menu,\n Minus,\n Monitor,\n Moon,\n PanelLeft,\n PanelLeftDashed,\n Plus,\n Power,\n Quote,\n ReceiptText,\n Redo2,\n Rocket,\n Search,\n Send,\n Server,\n Settings,\n Shield,\n ShieldCheck,\n Signal,\n Sparkles,\n Star,\n Strikethrough,\n Trash,\n RussianRuble,\n Sun,\n Unlock,\n Upload,\n Undo2,\n User,\n Wifi,\n X,\n Zap,\n} from 'lucide-react'\nimport type { LucideIcon } from 'lucide-react'\nimport {\n SiApple,\n SiDiscord,\n SiFacebook,\n SiGithub,\n SiGitlab,\n SiGoogle,\n SiInstagram,\n SiNetflix,\n SiNpm,\n SiPaypal,\n SiReddit,\n SiSpotify,\n SiStripe,\n SiSupabase,\n SiTelegram,\n SiTwitch,\n SiVercel,\n SiX,\n SiYoutube,\n} from '@icons-pack/react-simple-icons'\nimport type { IconType as SimpleIconType } from '@icons-pack/react-simple-icons'\n\nimport { cn } from '../../_internal/cn'\n\nconst PRIMITIVE_ICON_SIZES = {\n sm: 16,\n md: 20,\n lg: 24,\n xl: 32,\n} as const\n\nconst PUBLIC_ICON_SIZES = {\n xs: 16,\n sm: 20,\n md: 24,\n lg: 32,\n xl: 40,\n} as const\n\nconst ICON_COLORS = {\n 'on-surface': 'var(--dsx-color-on-surface)',\n muted: 'var(--dsx-color-on-surface-variant)',\n primary: 'var(--dsx-color-primary)',\n secondary: 'var(--dsx-color-secondary)',\n success: 'var(--dsx-color-success)',\n error: 'var(--dsx-color-error)',\n} as const\n\nconst DSX_ICON_NAMES = [\n 'activity',\n 'alert-triangle',\n 'apple',\n 'arrow-down',\n 'arrow-left',\n 'arrow-right',\n 'arrow-up',\n 'arrow-up-down',\n 'bell',\n 'banknote',\n 'bold',\n 'calendar',\n 'check',\n 'check-circle',\n 'circle-dollar-sign',\n 'chevron-down',\n 'chevron-left',\n 'chevron-right',\n 'chevron-up',\n 'chevrons-left',\n 'chevrons-right',\n 'clock',\n 'code',\n 'copy',\n 'discord',\n 'dots-horizontal',\n 'dots-vertical',\n 'download',\n 'edit',\n 'eraser',\n 'external-link',\n 'eye',\n 'eye-off',\n 'facebook',\n 'file',\n 'fingerprint',\n 'gem',\n 'github',\n 'gitlab',\n 'globe',\n 'google',\n 'grip-vertical',\n 'hard-drive',\n 'heading-1',\n 'heading-2',\n 'heading-3',\n 'help-circle',\n 'home',\n 'image',\n 'inbox',\n 'info',\n 'instagram',\n 'italic',\n 'key',\n 'link',\n 'list',\n 'list-ordered',\n 'loader',\n 'lock',\n 'lock-keyhole',\n 'mail',\n 'menu',\n 'minus',\n 'monitor',\n 'moon',\n 'netflix',\n 'npm',\n 'panel-left',\n 'panel-left-dashed',\n 'paypal',\n 'plus',\n 'power',\n 'quote',\n 'receipt-text',\n 'redo',\n 'reddit',\n 'rocket',\n 'search',\n 'send',\n 'server',\n 'settings',\n 'shield',\n 'shield-check',\n 'signal',\n 'sparkles',\n 'star',\n 'strikethrough',\n 'spotify',\n 'stripe',\n 'supabase',\n 'telegram',\n 'trash',\n 'russian-ruble',\n 'sun',\n 'twitch',\n 'twitter',\n 'unlock',\n 'upload',\n 'undo',\n 'user',\n 'vercel',\n 'wifi',\n 'x',\n 'youtube',\n 'zap',\n] as const\n\nconst LUCIDE_ICON_COMPONENTS: Partial<Record<DSXIconName, LucideIcon>> = {\n activity: Activity,\n 'alert-triangle': AlertTriangle,\n 'arrow-down': ArrowDown,\n 'arrow-left': ArrowLeft,\n 'arrow-right': ArrowRight,\n 'arrow-up': ArrowUp,\n 'arrow-up-down': ArrowUpDown,\n bell: Bell,\n banknote: Banknote,\n bold: Bold,\n calendar: Calendar,\n check: Check,\n 'check-circle': CheckCircle,\n 'circle-dollar-sign': CircleDollarSign,\n 'chevron-down': ChevronDown,\n 'chevron-left': ChevronLeft,\n 'chevron-right': ChevronRight,\n 'chevron-up': ChevronUp,\n 'chevrons-left': ChevronsLeft,\n 'chevrons-right': ChevronsRight,\n clock: Clock,\n code: Code2,\n copy: Copy,\n 'dots-horizontal': Ellipsis,\n 'dots-vertical': EllipsisVertical,\n download: Download,\n edit: Edit,\n eraser: Eraser,\n 'external-link': ExternalLink,\n eye: Eye,\n 'eye-off': EyeOff,\n file: File,\n fingerprint: Fingerprint,\n gem: Gem,\n globe: Globe,\n 'grip-vertical': GripVertical,\n 'hard-drive': HardDrive,\n 'heading-1': Heading1,\n 'heading-2': Heading2,\n 'heading-3': Heading3,\n 'help-circle': HelpCircle,\n home: Home,\n image: Image,\n inbox: Inbox,\n info: Info,\n italic: Italic,\n key: Key,\n link: Link,\n list: List,\n 'list-ordered': ListOrdered,\n loader: Loader,\n lock: Lock,\n 'lock-keyhole': LockKeyhole,\n mail: Mail,\n menu: Menu,\n minus: Minus,\n monitor: Monitor,\n moon: Moon,\n 'panel-left': PanelLeft,\n 'panel-left-dashed': PanelLeftDashed,\n plus: Plus,\n power: Power,\n quote: Quote,\n 'receipt-text': ReceiptText,\n redo: Redo2,\n rocket: Rocket,\n search: Search,\n send: Send,\n server: Server,\n settings: Settings,\n shield: Shield,\n 'shield-check': ShieldCheck,\n signal: Signal,\n sparkles: Sparkles,\n star: Star,\n strikethrough: Strikethrough,\n trash: Trash,\n 'russian-ruble': RussianRuble,\n sun: Sun,\n unlock: Unlock,\n upload: Upload,\n undo: Undo2,\n user: User,\n wifi: Wifi,\n x: X,\n zap: Zap,\n}\n\nconst SIMPLE_ICON_COMPONENTS: Partial<Record<DSXIconName, SimpleIconType>> = {\n apple: SiApple,\n discord: SiDiscord,\n facebook: SiFacebook,\n github: SiGithub,\n gitlab: SiGitlab,\n google: SiGoogle,\n instagram: SiInstagram,\n netflix: SiNetflix,\n npm: SiNpm,\n paypal: SiPaypal,\n reddit: SiReddit,\n spotify: SiSpotify,\n stripe: SiStripe,\n supabase: SiSupabase,\n telegram: SiTelegram,\n twitch: SiTwitch,\n twitter: SiX,\n vercel: SiVercel,\n youtube: SiYoutube,\n}\n\nexport type DSXIconName = (typeof DSX_ICON_NAMES)[number]\nexport type DSXIconSize = keyof typeof PUBLIC_ICON_SIZES\nexport type DSXIconColor = keyof typeof ICON_COLORS\nexport type IconSize = keyof typeof PRIMITIVE_ICON_SIZES\n\nexport type DSXIconProps = Omit<React.ComponentPropsWithoutRef<'svg'>, 'color'> & {\n color?: DSXIconColor | string\n size?: DSXIconSize | number | string\n title?: string\n}\n\nexport type IconProps = Omit<React.ComponentPropsWithoutRef<'svg'>, 'color'> & {\n name: string\n size?: IconSize\n title?: string\n}\n\nfunction resolvePrimitiveSize(size: IconSize | undefined) {\n return PRIMITIVE_ICON_SIZES[size ?? 'md']\n}\n\nfunction resolvePublicSize(size: DSXIconProps['size']) {\n if (typeof size === 'number') return size\n if (!size) return PUBLIC_ICON_SIZES.md\n if (size in PUBLIC_ICON_SIZES) return PUBLIC_ICON_SIZES[size as DSXIconSize]\n return size\n}\n\nfunction resolveColor(color: DSXIconProps['color']) {\n if (!color) return ICON_COLORS['on-surface']\n if (color in ICON_COLORS) return ICON_COLORS[color as DSXIconColor]\n return color\n}\n\nfunction isDSXIconName(name: string): name is DSXIconName {\n return DSX_ICON_NAMES.includes(name as DSXIconName)\n}\n\nfunction toDisplayName(name: DSXIconName) {\n return `${name\n .split('-')\n .filter(Boolean)\n .map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1))\n .join('')}Icon`\n}\n\ntype SharedIconRenderProps = Omit<React.ComponentPropsWithoutRef<'svg'>, 'color'> & {\n name: DSXIconName\n color?: string\n size?: number | string\n title?: string\n}\n\nfunction renderDSXIcon(\n { name, color, size, title, children, className, strokeWidth, 'data-size': dataSize, ...props }: SharedIconRenderProps & { 'data-size'?: string },\n ref: React.ForwardedRef<SVGSVGElement>,\n) {\n const resolvedClassName = cn('dsx-icon', className)\n const a11yProps = {\n 'data-size': dataSize,\n role: title ? ('img' as const) : ('presentation' as const),\n 'aria-hidden': title ? undefined : true,\n }\n\n const LucideComponent = LUCIDE_ICON_COMPONENTS[name]\n if (LucideComponent) {\n return (\n <LucideComponent\n {...props}\n {...a11yProps}\n ref={ref}\n data-size={dataSize}\n color={color}\n size={size}\n strokeWidth={strokeWidth ?? 'var(--dsx-icon-stroke-width, 1.75)'}\n className={resolvedClassName}\n >\n {title ? <title>{title}</title> : null}\n {children}\n </LucideComponent>\n )\n }\n\n const SimpleIconComponent = SIMPLE_ICON_COMPONENTS[name]\n if (!SimpleIconComponent) return null\n\n return (\n <SimpleIconComponent\n {...props}\n {...a11yProps}\n ref={ref}\n data-size={dataSize}\n color={color === undefined ? 'currentColor' : color}\n size={size}\n className={resolvedClassName}\n title={title}\n />\n )\n}\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(function Icon(\n { name, size = 'md', className, title, ...props },\n ref,\n) {\n if (!isDSXIconName(name)) return null\n\n return renderDSXIcon(\n {\n ...props,\n 'data-size': size,\n name,\n size: resolvePrimitiveSize(size),\n className: cn(className),\n title,\n },\n ref,\n )\n})\n\nexport function createDSXIconComponent(name: DSXIconName) {\n const Component = React.forwardRef<SVGSVGElement, DSXIconProps>(function DSXIcon(\n { color = 'on-surface', size = 'md', className, title, ...props },\n ref,\n ) {\n return renderDSXIcon(\n {\n ...props,\n name,\n color: resolveColor(color),\n size: resolvePublicSize(size),\n className,\n title,\n },\n ref,\n )\n })\n\n Component.displayName = toDisplayName(name)\n return Component\n}\n\nexport const dsxIconCatalog = [\n { name: 'activity', category: 'Connectivity', file: 'activity.svg' },\n { name: 'alert-triangle', category: 'Feedback', file: 'alert-triangle.svg' },\n { name: 'apple', category: 'Companies & Services', file: 'apple.svg' },\n { name: 'arrow-left', category: 'Navigation & System', file: 'arrow-left.svg' },\n { name: 'arrow-right', category: 'Navigation & System', file: 'arrow-right.svg' },\n { name: 'arrow-down', category: 'Navigation & System', file: 'arrow-down.svg' },\n { name: 'arrow-up', category: 'Navigation & System', file: 'arrow-up.svg' },\n { name: 'arrow-up-down', category: 'Navigation & System', file: 'arrow-up-down.svg' },\n { name: 'bell', category: 'Feedback', file: 'bell.svg' },\n { name: 'banknote', category: 'Commerce', file: 'banknote.svg' },\n { name: 'bold', category: 'Forms & Actions', file: 'bold.svg' },\n { name: 'calendar', category: 'Forms & Actions', file: 'calendar.svg' },\n { name: 'check', category: 'Feedback', file: 'check.svg' },\n { name: 'check-circle', category: 'Feedback', file: 'check-circle.svg' },\n { name: 'circle-dollar-sign', category: 'Commerce', file: 'circle-dollar-sign.svg' },\n { name: 'chevron-down', category: 'Navigation & System', file: 'chevron-down.svg' },\n { name: 'clock', category: 'Forms & Actions', file: 'clock.svg' },\n { name: 'chevron-left', category: 'Navigation & System', file: 'chevron-left.svg' },\n { name: 'chevron-right', category: 'Navigation & System', file: 'chevron-right.svg' },\n { name: 'chevron-up', category: 'Navigation & System', file: 'chevron-up.svg' },\n { name: 'chevrons-left', category: 'Navigation & System', file: 'chevrons-left.svg' },\n { name: 'chevrons-right', category: 'Navigation & System', file: 'chevrons-right.svg' },\n { name: 'code', category: 'Forms & Actions', file: 'code.svg' },\n { name: 'copy', category: 'Forms & Actions', file: 'copy.svg' },\n { name: 'discord', category: 'Brand & Social', file: 'discord.svg' },\n { name: 'dots-horizontal', category: 'Navigation & System', file: 'dots-horizontal.svg' },\n { name: 'dots-vertical', category: 'Navigation & System', file: 'dots-vertical.svg' },\n { name: 'download', category: 'Forms & Actions', file: 'download.svg' },\n { name: 'edit', category: 'Forms & Actions', file: 'edit.svg' },\n { name: 'eraser', category: 'Forms & Actions', file: 'eraser.svg' },\n { name: 'external-link', category: 'Navigation & System', file: 'external-link.svg' },\n { name: 'eye', category: 'Forms & Actions', file: 'eye.svg' },\n { name: 'eye-off', category: 'Forms & Actions', file: 'eye-off.svg' },\n { name: 'facebook', category: 'Brand & Social', file: 'facebook.svg' },\n { name: 'file', category: 'Forms & Actions', file: 'file.svg' },\n { name: 'fingerprint', category: 'Security & Privacy', file: 'fingerprint.svg' },\n { name: 'gem', category: 'Commerce', file: 'gem.svg' },\n { name: 'github', category: 'Brand & Social', file: 'github.svg' },\n { name: 'gitlab', category: 'Companies & Services', file: 'gitlab.svg' },\n { name: 'globe', category: 'Connectivity', file: 'globe.svg' },\n { name: 'google', category: 'Companies & Services', file: 'google.svg' },\n { name: 'hard-drive', category: 'Connectivity', file: 'hard-drive.svg' },\n { name: 'heading-1', category: 'Forms & Actions', file: 'heading-1.svg' },\n { name: 'heading-2', category: 'Forms & Actions', file: 'heading-2.svg' },\n { name: 'heading-3', category: 'Forms & Actions', file: 'heading-3.svg' },\n { name: 'help-circle', category: 'Feedback', file: 'help-circle.svg' },\n { name: 'home', category: 'App Specific', file: 'home.svg' },\n { name: 'image', category: 'Forms & Actions', file: 'image.svg' },\n { name: 'inbox', category: 'Feedback', file: 'inbox.svg' },\n { name: 'info', category: 'Feedback', file: 'info.svg' },\n { name: 'instagram', category: 'Brand & Social', file: 'instagram.svg' },\n { name: 'italic', category: 'Forms & Actions', file: 'italic.svg' },\n { name: 'key', category: 'Security & Privacy', file: 'key.svg' },\n { name: 'link', category: 'Forms & Actions', file: 'link.svg' },\n { name: 'list', category: 'Forms & Actions', file: 'list.svg' },\n { name: 'list-ordered', category: 'Forms & Actions', file: 'list-ordered.svg' },\n { name: 'loader', category: 'Feedback', file: 'loader.svg' },\n { name: 'lock', category: 'Security & Privacy', file: 'lock.svg' },\n { name: 'lock-keyhole', category: 'Security & Privacy', file: 'lock-keyhole.svg' },\n { name: 'mail', category: 'Communication', file: 'mail.svg' },\n { name: 'menu', category: 'Navigation & System', file: 'menu.svg' },\n { name: 'minus', category: 'Navigation & System', file: 'minus.svg' },\n { name: 'monitor', category: 'Theme', file: 'monitor.svg' },\n { name: 'moon', category: 'Theme', file: 'moon.svg' },\n { name: 'netflix', category: 'Companies & Services', file: 'netflix.svg' },\n { name: 'npm', category: 'Companies & Services', file: 'npm.svg' },\n { name: 'panel-left', category: 'Navigation & System', file: 'panel-left.svg' },\n { name: 'panel-left-dashed', category: 'Navigation & System', file: 'panel-left-dashed.svg' },\n { name: 'paypal', category: 'Companies & Services', file: 'paypal.svg' },\n { name: 'plus', category: 'Navigation & System', file: 'plus.svg' },\n { name: 'power', category: 'Actions', file: 'power.svg' },\n { name: 'quote', category: 'Forms & Actions', file: 'quote.svg' },\n { name: 'receipt-text', category: 'Commerce', file: 'receipt-text.svg' },\n { name: 'redo', category: 'Forms & Actions', file: 'redo.svg' },\n { name: 'reddit', category: 'Brand & Social', file: 'reddit.svg' },\n { name: 'rocket', category: 'App Specific', file: 'rocket.svg' },\n { name: 'search', category: 'Navigation & System', file: 'search.svg' },\n { name: 'send', category: 'Communication', file: 'send.svg' },\n { name: 'server', category: 'Connectivity', file: 'server.svg' },\n { name: 'settings', category: 'Navigation & System', file: 'settings.svg' },\n { name: 'shield', category: 'Security & Privacy', file: 'shield.svg' },\n { name: 'shield-check', category: 'Security & Privacy', file: 'shield-check.svg' },\n { name: 'signal', category: 'Connectivity', file: 'signal.svg' },\n { name: 'sparkles', category: 'Feedback', file: 'sparkles.svg' },\n { name: 'star', category: 'Feedback', file: 'star.svg' },\n { name: 'strikethrough', category: 'Forms & Actions', file: 'strikethrough.svg' },\n { name: 'spotify', category: 'Companies & Services', file: 'spotify.svg' },\n { name: 'stripe', category: 'Companies & Services', file: 'stripe.svg' },\n { name: 'supabase', category: 'Companies & Services', file: 'supabase.svg' },\n { name: 'telegram', category: 'Brand & Social', file: 'telegram.svg' },\n { name: 'trash', category: 'Forms & Actions', file: 'trash.svg' },\n { name: 'russian-ruble', category: 'Commerce', file: 'russian-ruble.svg' },\n { name: 'sun', category: 'Theme', file: 'sun.svg' },\n { name: 'twitch', category: 'Brand & Social', file: 'twitch.svg' },\n { name: 'twitter', category: 'Brand & Social', file: 'twitter.svg' },\n { name: 'unlock', category: 'Security & Privacy', file: 'unlock.svg' },\n { name: 'undo', category: 'Forms & Actions', file: 'undo.svg' },\n { name: 'upload', category: 'Forms & Actions', file: 'upload.svg' },\n { name: 'user', category: 'Navigation & System', file: 'user.svg' },\n { name: 'vercel', category: 'Companies & Services', file: 'vercel.svg' },\n { name: 'wifi', category: 'Connectivity', file: 'wifi.svg' },\n { name: 'x', category: 'Navigation & System', file: 'x.svg' },\n { name: 'youtube', category: 'Brand & Social', file: 'youtube.svg' },\n { name: 'zap', category: 'Connectivity', file: 'zap.svg' },\n] as const\n"],
5
+ "mappings": "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",
6
6
  "names": ["Icon"]
7
7
  }