@smwb/ui-solid 0.12.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (841) hide show
  1. package/README.md +74 -0
  2. package/dist/assets/styles/less/components/avatar/avatar.entry.css +1 -1
  3. package/dist/assets/styles/less/components/card/card.entry.css +1 -1
  4. package/dist/assets/styles/less/components/checkbox/checkbox.entry.css +1 -1
  5. package/dist/assets/styles/less/components/chip/chip.entry.css +1 -1
  6. package/dist/assets/styles/less/components/dagView/dagView.entry.css +1 -0
  7. package/dist/assets/styles/less/components/menu/menu.entry.css +1 -1
  8. package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -1
  9. package/dist/assets/styles/less/components/radioButton/radioButton.entry.css +1 -1
  10. package/dist/assets/styles/less/components/rating/rating.entry.css +1 -1
  11. package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
  12. package/dist/assets/styles/less/components/table/table.entry.css +1 -1
  13. package/dist/assets/styles/less/components/thumbCard/thumbCard.entry.css +1 -1
  14. package/dist/assets/styles/less/components/toggle/toggle.entry.css +1 -1
  15. package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
  16. package/dist/components/base/animateHeight/animateHeight.js +41 -42
  17. package/dist/components/base/animateHeight/animateHeight.js.map +1 -1
  18. package/dist/components/base/icon/icon.d.ts +6 -2
  19. package/dist/components/base/icon/icon.js +41 -41
  20. package/dist/components/base/icon/icon.js.map +1 -1
  21. package/dist/components/base/ripple/ripple.d.ts +3 -0
  22. package/dist/components/base/ripple/ripple.js +46 -34
  23. package/dist/components/base/ripple/ripple.js.map +1 -1
  24. package/dist/components/dataDisplay/avatar/avatar.d.ts +4 -0
  25. package/dist/components/dataDisplay/avatar/avatar.js +37 -33
  26. package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
  27. package/dist/components/dataDisplay/card/card.d.ts +32 -1
  28. package/dist/components/dataDisplay/card/card.js +47 -34
  29. package/dist/components/dataDisplay/card/card.js.map +1 -1
  30. package/dist/components/dataDisplay/carousel/carousel.js +92 -88
  31. package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
  32. package/dist/components/dataDisplay/chart/chart.d.ts +2 -0
  33. package/dist/components/dataDisplay/chat/chatIconButton.js +23 -13
  34. package/dist/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  35. package/dist/components/dataDisplay/chat/chatLayout.d.ts +2 -0
  36. package/dist/components/dataDisplay/chat/chatLayout.js +33 -29
  37. package/dist/components/dataDisplay/chat/chatLayout.js.map +1 -1
  38. package/dist/components/dataDisplay/chat/chatOverlayLayout.d.ts +2 -0
  39. package/dist/components/dataDisplay/chat/chatOverlayLayout.js +19 -17
  40. package/dist/components/dataDisplay/chat/chatOverlayLayout.js.map +1 -1
  41. package/dist/components/dataDisplay/chip/chip.d.ts +32 -0
  42. package/dist/components/dataDisplay/chip/chip.js +104 -63
  43. package/dist/components/dataDisplay/chip/chip.js.map +1 -1
  44. package/dist/components/dataDisplay/chipGroup/chipGroup.js +44 -39
  45. package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  46. package/dist/components/dataDisplay/dagView/dagLayout.d.ts +74 -0
  47. package/dist/components/dataDisplay/dagView/dagLayout.js +284 -0
  48. package/dist/components/dataDisplay/dagView/dagLayout.js.map +1 -0
  49. package/dist/components/dataDisplay/dagView/dagView.d.ts +151 -0
  50. package/dist/components/dataDisplay/dagView/dagView.js +488 -0
  51. package/dist/components/dataDisplay/dagView/dagView.js.map +1 -0
  52. package/dist/components/dataDisplay/dagView/index.d.ts +4 -0
  53. package/dist/components/dataDisplay/dagView/panZoom.d.ts +75 -0
  54. package/dist/components/dataDisplay/dagView/panZoom.js +161 -0
  55. package/dist/components/dataDisplay/dagView/panZoom.js.map +1 -0
  56. package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +11 -3
  57. package/dist/components/dataDisplay/descriptionList/descriptionList.js +20 -24
  58. package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
  59. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +114 -81
  60. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  61. package/dist/components/dataDisplay/kanban/kanban.d.ts +6 -0
  62. package/dist/components/dataDisplay/kanban/kanban.js +71 -61
  63. package/dist/components/dataDisplay/kanban/kanban.js.map +1 -1
  64. package/dist/components/dataDisplay/lazyImage/lazyImage.js +14 -12
  65. package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  66. package/dist/components/dataDisplay/list/list.d.ts +2 -0
  67. package/dist/components/dataDisplay/list/list.js +16 -12
  68. package/dist/components/dataDisplay/list/list.js.map +1 -1
  69. package/dist/components/dataDisplay/list/listItem.js +20 -18
  70. package/dist/components/dataDisplay/list/listItem.js.map +1 -1
  71. package/dist/components/dataDisplay/meter/meter.d.ts +2 -0
  72. package/dist/components/dataDisplay/meter/meter.js +15 -13
  73. package/dist/components/dataDisplay/meter/meter.js.map +1 -1
  74. package/dist/components/dataDisplay/personChip/personChip.d.ts +2 -0
  75. package/dist/components/dataDisplay/personChip/personChip.js +12 -10
  76. package/dist/components/dataDisplay/personChip/personChip.js.map +1 -1
  77. package/dist/components/dataDisplay/stat/stat.d.ts +2 -0
  78. package/dist/components/dataDisplay/stat/stat.js +41 -43
  79. package/dist/components/dataDisplay/stat/stat.js.map +1 -1
  80. package/dist/components/dataDisplay/table/table.d.ts +10 -1
  81. package/dist/components/dataDisplay/table/table.js +46 -22
  82. package/dist/components/dataDisplay/table/table.js.map +1 -1
  83. package/dist/components/dataDisplay/table/tableBody.js +25 -12
  84. package/dist/components/dataDisplay/table/tableBody.js.map +1 -1
  85. package/dist/components/dataDisplay/table/tableCell.d.ts +10 -2
  86. package/dist/components/dataDisplay/table/tableCell.js +15 -14
  87. package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
  88. package/dist/components/dataDisplay/table/tableColumns.d.ts +146 -0
  89. package/dist/components/dataDisplay/table/tableColumns.js +254 -0
  90. package/dist/components/dataDisplay/table/tableColumns.js.map +1 -0
  91. package/dist/components/dataDisplay/table/tableEntities.d.ts +4 -0
  92. package/dist/components/dataDisplay/table/tableEntities.js +6 -0
  93. package/dist/components/dataDisplay/table/tableEntities.js.map +1 -0
  94. package/dist/components/dataDisplay/table/tableHead.js +29 -11
  95. package/dist/components/dataDisplay/table/tableHead.js.map +1 -1
  96. package/dist/components/dataDisplay/table/tableHeadCell.d.ts +23 -1
  97. package/dist/components/dataDisplay/table/tableHeadCell.js +51 -26
  98. package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  99. package/dist/components/dataDisplay/table/tableHtmlText.d.ts +8 -0
  100. package/dist/components/dataDisplay/table/tableHtmlText.js +121 -0
  101. package/dist/components/dataDisplay/table/tableHtmlText.js.map +1 -0
  102. package/dist/components/dataDisplay/table/tableRow.d.ts +2 -0
  103. package/dist/components/dataDisplay/table/tableRow.js +28 -13
  104. package/dist/components/dataDisplay/table/tableRow.js.map +1 -1
  105. package/dist/components/dataDisplay/thumbCard/thumbCard.d.ts +44 -3
  106. package/dist/components/dataDisplay/thumbCard/thumbCard.js +86 -58
  107. package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  108. package/dist/components/dataDisplay/treeView/treeView.d.ts +2 -0
  109. package/dist/components/dataDisplay/treeView/treeView.js +4 -2
  110. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  111. package/dist/components/dataDisplay/typography/typography.js +22 -26
  112. package/dist/components/dataDisplay/typography/typography.js.map +1 -1
  113. package/dist/components/feedBack/emptyState/emptyState.d.ts +2 -0
  114. package/dist/components/feedBack/emptyState/emptyState.js +20 -16
  115. package/dist/components/feedBack/emptyState/emptyState.js.map +1 -1
  116. package/dist/components/feedBack/message/message.d.ts +2 -0
  117. package/dist/components/feedBack/message/message.js +17 -13
  118. package/dist/components/feedBack/message/message.js.map +1 -1
  119. package/dist/components/feedBack/modal/modal.js +20 -16
  120. package/dist/components/feedBack/modal/modal.js.map +1 -1
  121. package/dist/components/feedBack/skeleton/skeleton.d.ts +10 -2
  122. package/dist/components/feedBack/skeleton/skeleton.js +43 -35
  123. package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
  124. package/dist/components/feedBack/snackbar/snackbar.js +24 -20
  125. package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
  126. package/dist/components/feedBack/tooltip/tooltip.d.ts +9 -1
  127. package/dist/components/feedBack/tooltip/tooltip.js +65 -41
  128. package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
  129. package/dist/components/inputs/button/button.d.ts +2 -0
  130. package/dist/components/inputs/button/button.js +48 -20
  131. package/dist/components/inputs/button/button.js.map +1 -1
  132. package/dist/components/inputs/buttonGroups/buttonGroup.d.ts +2 -0
  133. package/dist/components/inputs/buttonGroups/buttonGroup.js +14 -10
  134. package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  135. package/dist/components/inputs/checkbox/checkbox.d.ts +10 -0
  136. package/dist/components/inputs/checkbox/checkbox.js +59 -36
  137. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  138. package/dist/components/inputs/datePicker/datePicker.js +108 -97
  139. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  140. package/dist/components/inputs/datePicker/datePickerActionLabel.js +19 -17
  141. package/dist/components/inputs/datePicker/datePickerActionLabel.js.map +1 -1
  142. package/dist/components/inputs/datePicker/datePickerDay.js +41 -25
  143. package/dist/components/inputs/datePicker/datePickerDay.js.map +1 -1
  144. package/dist/components/inputs/datePicker/datePickerIconButton.js +24 -14
  145. package/dist/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  146. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +90 -79
  147. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  148. package/dist/components/inputs/floatingButton/floatingButton.js +26 -16
  149. package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
  150. package/dist/components/inputs/radioButton/radioButton.d.ts +9 -0
  151. package/dist/components/inputs/radioButton/radioButton.js +48 -34
  152. package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
  153. package/dist/components/inputs/rating/rating.d.ts +9 -0
  154. package/dist/components/inputs/rating/rating.js +74 -53
  155. package/dist/components/inputs/rating/rating.js.map +1 -1
  156. package/dist/components/inputs/selectField/dropdownMenu.d.ts +21 -1
  157. package/dist/components/inputs/selectField/dropdownMenu.js +268 -143
  158. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  159. package/dist/components/inputs/selectField/optionNavigation.d.ts +17 -0
  160. package/dist/components/inputs/selectField/optionNavigation.js +37 -0
  161. package/dist/components/inputs/selectField/optionNavigation.js.map +1 -0
  162. package/dist/components/inputs/selectField/selectField.d.ts +32 -1
  163. package/dist/components/inputs/selectField/selectField.js +297 -126
  164. package/dist/components/inputs/selectField/selectField.js.map +1 -1
  165. package/dist/components/inputs/slider/slider.d.ts +25 -3
  166. package/dist/components/inputs/slider/slider.js +320 -197
  167. package/dist/components/inputs/slider/slider.js.map +1 -1
  168. package/dist/components/inputs/textField/textField.d.ts +9 -1
  169. package/dist/components/inputs/textField/textField.js +104 -51
  170. package/dist/components/inputs/textField/textField.js.map +1 -1
  171. package/dist/components/inputs/textField/textFieldWrapper.d.ts +14 -0
  172. package/dist/components/inputs/textField/textFieldWrapper.js +52 -45
  173. package/dist/components/inputs/textField/textFieldWrapper.js.map +1 -1
  174. package/dist/components/inputs/timePicker/timePicker.js +73 -62
  175. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  176. package/dist/components/inputs/toggle/toggle.d.ts +4 -0
  177. package/dist/components/inputs/toggle/toggle.js +43 -31
  178. package/dist/components/inputs/toggle/toggle.js.map +1 -1
  179. package/dist/components/inputs/valueSlider/valueSlider.d.ts +12 -0
  180. package/dist/components/inputs/valueSlider/valueSlider.js +32 -27
  181. package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
  182. package/dist/components/layout/appLayout/appLayout.d.ts +2 -0
  183. package/dist/components/layout/appLayout/appLayout.js +32 -30
  184. package/dist/components/layout/appLayout/appLayout.js.map +1 -1
  185. package/dist/components/layout/divider/divider.d.ts +2 -0
  186. package/dist/components/layout/divider/divider.js +22 -20
  187. package/dist/components/layout/divider/divider.js.map +1 -1
  188. package/dist/components/layout/floatingWindow/floatingWindow.d.ts +2 -0
  189. package/dist/components/layout/floatingWindow/floatingWindow.js +171 -168
  190. package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  191. package/dist/components/layout/grid/grid.d.ts +8 -0
  192. package/dist/components/layout/grid/grid.js +52 -44
  193. package/dist/components/layout/grid/grid.js.map +1 -1
  194. package/dist/components/layout/page/page.d.ts +2 -0
  195. package/dist/components/layout/page/page.js +14 -12
  196. package/dist/components/layout/page/page.js.map +1 -1
  197. package/dist/components/layout/pageHeader/pageHeader.d.ts +2 -0
  198. package/dist/components/layout/pageHeader/pageHeader.js +23 -21
  199. package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
  200. package/dist/components/layout/sectionHeader/sectionHeader.d.ts +2 -0
  201. package/dist/components/layout/sectionHeader/sectionHeader.js +38 -36
  202. package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -1
  203. package/dist/components/layout/sheet/sheet.d.ts +2 -0
  204. package/dist/components/layout/sheet/sheet.js +50 -48
  205. package/dist/components/layout/sheet/sheet.js.map +1 -1
  206. package/dist/components/layout/stack/stack.d.ts +2 -0
  207. package/dist/components/layout/stack/stack.js +26 -24
  208. package/dist/components/layout/stack/stack.js.map +1 -1
  209. package/dist/components/navigation/appBar/appBar.d.ts +2 -0
  210. package/dist/components/navigation/appBar/appBar.js +18 -16
  211. package/dist/components/navigation/appBar/appBar.js.map +1 -1
  212. package/dist/components/navigation/bottomBar/bottomBar.js +125 -120
  213. package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
  214. package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +2 -0
  215. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +18 -14
  216. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  217. package/dist/components/navigation/menu/menu.d.ts +6 -0
  218. package/dist/components/navigation/menu/menu.js.map +1 -1
  219. package/dist/components/navigation/menu/menuComponent.js +12 -23
  220. package/dist/components/navigation/menu/menuComponent.js.map +1 -1
  221. package/dist/components/navigation/menu/menuContext.d.ts +2 -0
  222. package/dist/components/navigation/menu/menuContext.js.map +1 -1
  223. package/dist/components/navigation/menu/menuFloating.js +54 -46
  224. package/dist/components/navigation/menu/menuFloating.js.map +1 -1
  225. package/dist/components/navigation/menu/menuItem.d.ts +4 -0
  226. package/dist/components/navigation/menu/menuItem.js +58 -33
  227. package/dist/components/navigation/menu/menuItem.js.map +1 -1
  228. package/dist/components/navigation/menu/menuList.d.ts +4 -0
  229. package/dist/components/navigation/menu/menuList.js +34 -16
  230. package/dist/components/navigation/menu/menuList.js.map +1 -1
  231. package/dist/components/navigation/menu/menuSubmenu.d.ts +8 -1
  232. package/dist/components/navigation/menu/menuSubmenu.js +58 -38
  233. package/dist/components/navigation/menu/menuSubmenu.js.map +1 -1
  234. package/dist/components/navigation/pagination/pagination.d.ts +2 -0
  235. package/dist/components/navigation/pagination/pagination.js +28 -24
  236. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  237. package/dist/components/navigation/sidebar/sidebar.js +27 -25
  238. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  239. package/dist/components/navigation/stepper/stepper.d.ts +2 -0
  240. package/dist/components/navigation/stepper/stepper.js +46 -42
  241. package/dist/components/navigation/stepper/stepper.js.map +1 -1
  242. package/dist/components/navigation/tabs/tab/tab.js +46 -35
  243. package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
  244. package/dist/components/navigation/tabs/tabs.d.ts +7 -0
  245. package/dist/components/navigation/tabs/tabs.js +90 -75
  246. package/dist/components/navigation/tabs/tabs.js.map +1 -1
  247. package/dist/components/navigation/tabs/tabsContext.d.ts +6 -4
  248. package/dist/components/navigation/tabs/tabsContext.js.map +1 -1
  249. package/dist/connects/rt/table/table.d.ts +16 -1
  250. package/dist/headless/components/base/animateHeight/animateHeight.js +41 -42
  251. package/dist/headless/components/base/animateHeight/animateHeight.js.map +1 -1
  252. package/dist/headless/components/base/icon/icon.js +40 -40
  253. package/dist/headless/components/base/icon/icon.js.map +1 -1
  254. package/dist/headless/components/base/ripple/ripple.js +46 -34
  255. package/dist/headless/components/base/ripple/ripple.js.map +1 -1
  256. package/dist/headless/components/dataDisplay/avatar/avatar.js +37 -33
  257. package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
  258. package/dist/headless/components/dataDisplay/card/card.js +44 -31
  259. package/dist/headless/components/dataDisplay/card/card.js.map +1 -1
  260. package/dist/headless/components/dataDisplay/carousel/carousel.js +102 -98
  261. package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
  262. package/dist/headless/components/dataDisplay/chat/chatIconButton.js +23 -13
  263. package/dist/headless/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  264. package/dist/headless/components/dataDisplay/chat/chatLayout.js +33 -29
  265. package/dist/headless/components/dataDisplay/chat/chatLayout.js.map +1 -1
  266. package/dist/headless/components/dataDisplay/chat/chatOverlayLayout.js +19 -17
  267. package/dist/headless/components/dataDisplay/chat/chatOverlayLayout.js.map +1 -1
  268. package/dist/headless/components/dataDisplay/chip/chip.js +104 -63
  269. package/dist/headless/components/dataDisplay/chip/chip.js.map +1 -1
  270. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js +44 -39
  271. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  272. package/dist/headless/components/dataDisplay/dagView/dagLayout.js +284 -0
  273. package/dist/headless/components/dataDisplay/dagView/dagLayout.js.map +1 -0
  274. package/dist/headless/components/dataDisplay/dagView/dagView.js +486 -0
  275. package/dist/headless/components/dataDisplay/dagView/dagView.js.map +1 -0
  276. package/dist/headless/components/dataDisplay/dagView/panZoom.js +161 -0
  277. package/dist/headless/components/dataDisplay/dagView/panZoom.js.map +1 -0
  278. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js +15 -19
  279. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
  280. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js +114 -81
  281. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  282. package/dist/headless/components/dataDisplay/kanban/kanban.js +71 -61
  283. package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -1
  284. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +14 -12
  285. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  286. package/dist/headless/components/dataDisplay/list/list.js +16 -12
  287. package/dist/headless/components/dataDisplay/list/list.js.map +1 -1
  288. package/dist/headless/components/dataDisplay/list/listItem.js +20 -18
  289. package/dist/headless/components/dataDisplay/list/listItem.js.map +1 -1
  290. package/dist/headless/components/dataDisplay/meter/meter.js +14 -12
  291. package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -1
  292. package/dist/headless/components/dataDisplay/personChip/personChip.js +12 -10
  293. package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -1
  294. package/dist/headless/components/dataDisplay/stat/stat.js +43 -45
  295. package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -1
  296. package/dist/headless/components/dataDisplay/table/table.js +47 -23
  297. package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
  298. package/dist/headless/components/dataDisplay/table/tableBody.js +25 -12
  299. package/dist/headless/components/dataDisplay/table/tableBody.js.map +1 -1
  300. package/dist/headless/components/dataDisplay/table/tableCell.js +15 -14
  301. package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
  302. package/dist/headless/components/dataDisplay/table/tableColumns.js +254 -0
  303. package/dist/headless/components/dataDisplay/table/tableColumns.js.map +1 -0
  304. package/dist/headless/components/dataDisplay/table/tableEntities.js +6 -0
  305. package/dist/headless/components/dataDisplay/table/tableEntities.js.map +1 -0
  306. package/dist/headless/components/dataDisplay/table/tableHead.js +29 -11
  307. package/dist/headless/components/dataDisplay/table/tableHead.js.map +1 -1
  308. package/dist/headless/components/dataDisplay/table/tableHeadCell.js +51 -26
  309. package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  310. package/dist/headless/components/dataDisplay/table/tableHtmlText.js +121 -0
  311. package/dist/headless/components/dataDisplay/table/tableHtmlText.js.map +1 -0
  312. package/dist/headless/components/dataDisplay/table/tableRow.js +28 -13
  313. package/dist/headless/components/dataDisplay/table/tableRow.js.map +1 -1
  314. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +86 -58
  315. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  316. package/dist/headless/components/dataDisplay/treeView/treeView.js +4 -2
  317. package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
  318. package/dist/headless/components/dataDisplay/typography/typography.js +21 -25
  319. package/dist/headless/components/dataDisplay/typography/typography.js.map +1 -1
  320. package/dist/headless/components/feedBack/emptyState/emptyState.js +9 -5
  321. package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -1
  322. package/dist/headless/components/feedBack/message/message.js +17 -13
  323. package/dist/headless/components/feedBack/message/message.js.map +1 -1
  324. package/dist/headless/components/feedBack/modal/modal.js +20 -16
  325. package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
  326. package/dist/headless/components/feedBack/skeleton/skeleton.js +43 -35
  327. package/dist/headless/components/feedBack/skeleton/skeleton.js.map +1 -1
  328. package/dist/headless/components/feedBack/snackbar/snackbar.js +30 -26
  329. package/dist/headless/components/feedBack/snackbar/snackbar.js.map +1 -1
  330. package/dist/headless/components/feedBack/tooltip/tooltip.js +63 -39
  331. package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
  332. package/dist/headless/components/inputs/button/button.js +51 -23
  333. package/dist/headless/components/inputs/button/button.js.map +1 -1
  334. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js +22 -18
  335. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  336. package/dist/headless/components/inputs/checkbox/checkbox.js +59 -36
  337. package/dist/headless/components/inputs/checkbox/checkbox.js.map +1 -1
  338. package/dist/headless/components/inputs/datePicker/datePicker.js +106 -95
  339. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  340. package/dist/headless/components/inputs/datePicker/datePickerActionLabel.js +19 -17
  341. package/dist/headless/components/inputs/datePicker/datePickerActionLabel.js.map +1 -1
  342. package/dist/headless/components/inputs/datePicker/datePickerDay.js +41 -25
  343. package/dist/headless/components/inputs/datePicker/datePickerDay.js.map +1 -1
  344. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js +24 -14
  345. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  346. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +90 -79
  347. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  348. package/dist/headless/components/inputs/floatingButton/floatingButton.js +25 -15
  349. package/dist/headless/components/inputs/floatingButton/floatingButton.js.map +1 -1
  350. package/dist/headless/components/inputs/radioButton/radioButton.js +48 -34
  351. package/dist/headless/components/inputs/radioButton/radioButton.js.map +1 -1
  352. package/dist/headless/components/inputs/rating/rating.js +74 -53
  353. package/dist/headless/components/inputs/rating/rating.js.map +1 -1
  354. package/dist/headless/components/inputs/selectField/dropdownMenu.js +268 -143
  355. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  356. package/dist/headless/components/inputs/selectField/optionNavigation.js +37 -0
  357. package/dist/headless/components/inputs/selectField/optionNavigation.js.map +1 -0
  358. package/dist/headless/components/inputs/selectField/selectField.js +297 -126
  359. package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
  360. package/dist/headless/components/inputs/slider/slider.js +320 -197
  361. package/dist/headless/components/inputs/slider/slider.js.map +1 -1
  362. package/dist/headless/components/inputs/textField/textField.js +104 -51
  363. package/dist/headless/components/inputs/textField/textField.js.map +1 -1
  364. package/dist/headless/components/inputs/textField/textFieldWrapper.js +52 -45
  365. package/dist/headless/components/inputs/textField/textFieldWrapper.js.map +1 -1
  366. package/dist/headless/components/inputs/timePicker/timePicker.js +74 -63
  367. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  368. package/dist/headless/components/inputs/toggle/toggle.js +42 -30
  369. package/dist/headless/components/inputs/toggle/toggle.js.map +1 -1
  370. package/dist/headless/components/inputs/valueSlider/valueSlider.js +33 -28
  371. package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -1
  372. package/dist/headless/components/layout/appLayout/appLayout.js +29 -27
  373. package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
  374. package/dist/headless/components/layout/divider/divider.js +19 -17
  375. package/dist/headless/components/layout/divider/divider.js.map +1 -1
  376. package/dist/headless/components/layout/floatingWindow/floatingWindow.js +185 -182
  377. package/dist/headless/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  378. package/dist/headless/components/layout/grid/grid.js +54 -46
  379. package/dist/headless/components/layout/grid/grid.js.map +1 -1
  380. package/dist/headless/components/layout/page/page.js +12 -10
  381. package/dist/headless/components/layout/page/page.js.map +1 -1
  382. package/dist/headless/components/layout/pageHeader/pageHeader.js +22 -20
  383. package/dist/headless/components/layout/pageHeader/pageHeader.js.map +1 -1
  384. package/dist/headless/components/layout/sectionHeader/sectionHeader.js +39 -37
  385. package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -1
  386. package/dist/headless/components/layout/sheet/sheet.js +50 -48
  387. package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
  388. package/dist/headless/components/layout/stack/stack.js +23 -21
  389. package/dist/headless/components/layout/stack/stack.js.map +1 -1
  390. package/dist/headless/components/navigation/appBar/appBar.js +15 -13
  391. package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
  392. package/dist/headless/components/navigation/bottomBar/bottomBar.js +125 -120
  393. package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
  394. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js +13 -9
  395. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  396. package/dist/headless/components/navigation/menu/menu.js.map +1 -1
  397. package/dist/headless/components/navigation/menu/menuComponent.js +12 -23
  398. package/dist/headless/components/navigation/menu/menuComponent.js.map +1 -1
  399. package/dist/headless/components/navigation/menu/menuContext.js.map +1 -1
  400. package/dist/headless/components/navigation/menu/menuFloating.js +54 -46
  401. package/dist/headless/components/navigation/menu/menuFloating.js.map +1 -1
  402. package/dist/headless/components/navigation/menu/menuItem.js +58 -33
  403. package/dist/headless/components/navigation/menu/menuItem.js.map +1 -1
  404. package/dist/headless/components/navigation/menu/menuList.js +34 -16
  405. package/dist/headless/components/navigation/menu/menuList.js.map +1 -1
  406. package/dist/headless/components/navigation/menu/menuSubmenu.js +58 -38
  407. package/dist/headless/components/navigation/menu/menuSubmenu.js.map +1 -1
  408. package/dist/headless/components/navigation/pagination/pagination.js +23 -19
  409. package/dist/headless/components/navigation/pagination/pagination.js.map +1 -1
  410. package/dist/headless/components/navigation/sidebar/sidebar.js +14 -12
  411. package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
  412. package/dist/headless/components/navigation/stepper/stepper.js +38 -34
  413. package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
  414. package/dist/headless/components/navigation/tabs/tab/tab.js +48 -37
  415. package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
  416. package/dist/headless/components/navigation/tabs/tabs.js +91 -76
  417. package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
  418. package/dist/headless/components/navigation/tabs/tabsContext.js.map +1 -1
  419. package/dist/headless/index.js +224 -220
  420. package/dist/headless/index.js.map +1 -1
  421. package/dist/headless/primitives/createDismissOnEscape.js +14 -0
  422. package/dist/headless/primitives/createDismissOnEscape.js.map +1 -0
  423. package/dist/headless/primitives/createFocusTrap.js +1 -0
  424. package/dist/headless/primitives/createFocusTrap.js.map +1 -1
  425. package/dist/headless/primitives/createHelperText.js +14 -0
  426. package/dist/headless/primitives/createHelperText.js.map +1 -0
  427. package/dist/headless/primitives/mergeStyle.js +9 -0
  428. package/dist/headless/primitives/mergeStyle.js.map +1 -0
  429. package/dist/headless/primitives/overlayLayer.js +14 -7
  430. package/dist/headless/primitives/overlayLayer.js.map +1 -1
  431. package/dist/headless/source/components/base/animateHeight/animateHeight.jsx +7 -11
  432. package/dist/headless/source/components/base/animateHeight/animateHeight.jsx.map +1 -1
  433. package/dist/headless/source/components/base/icon/icon.jsx +10 -12
  434. package/dist/headless/source/components/base/icon/icon.jsx.map +1 -1
  435. package/dist/headless/source/components/base/ripple/ripple.jsx +16 -4
  436. package/dist/headless/source/components/base/ripple/ripple.jsx.map +1 -1
  437. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx +14 -7
  438. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  439. package/dist/headless/source/components/dataDisplay/card/card.jsx +31 -12
  440. package/dist/headless/source/components/dataDisplay/card/card.jsx.map +1 -1
  441. package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx +9 -3
  442. package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
  443. package/dist/headless/source/components/dataDisplay/chart/chart.jsx +5 -4
  444. package/dist/headless/source/components/dataDisplay/chart/chart.jsx.map +1 -1
  445. package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx +13 -3
  446. package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -1
  447. package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx +6 -7
  448. package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -1
  449. package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx +5 -6
  450. package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -1
  451. package/dist/headless/source/components/dataDisplay/chip/chip.jsx +55 -19
  452. package/dist/headless/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  453. package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx +14 -11
  454. package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
  455. package/dist/headless/source/components/dataDisplay/dagView/dagLayout.js +383 -0
  456. package/dist/headless/source/components/dataDisplay/dagView/dagLayout.js.map +7 -0
  457. package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx +639 -0
  458. package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx.map +1 -0
  459. package/dist/headless/source/components/dataDisplay/dagView/index.js +10 -0
  460. package/dist/headless/source/components/dataDisplay/dagView/index.js.map +7 -0
  461. package/dist/headless/source/components/dataDisplay/dagView/panZoom.js +247 -0
  462. package/dist/headless/source/components/dataDisplay/dagView/panZoom.js.map +7 -0
  463. package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx +4 -6
  464. package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -1
  465. package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +83 -9
  466. package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
  467. package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx +20 -10
  468. package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx.map +1 -1
  469. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx +1 -1
  470. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
  471. package/dist/headless/source/components/dataDisplay/list/list.jsx +3 -3
  472. package/dist/headless/source/components/dataDisplay/list/list.jsx.map +1 -1
  473. package/dist/headless/source/components/dataDisplay/list/listItem.jsx +11 -10
  474. package/dist/headless/source/components/dataDisplay/list/listItem.jsx.map +1 -1
  475. package/dist/headless/source/components/dataDisplay/meter/meter.jsx +3 -2
  476. package/dist/headless/source/components/dataDisplay/meter/meter.jsx.map +1 -1
  477. package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx +3 -2
  478. package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx.map +1 -1
  479. package/dist/headless/source/components/dataDisplay/stat/stat.jsx +7 -8
  480. package/dist/headless/source/components/dataDisplay/stat/stat.jsx.map +1 -1
  481. package/dist/headless/source/components/dataDisplay/table/table.jsx +18 -1
  482. package/dist/headless/source/components/dataDisplay/table/table.jsx.map +1 -1
  483. package/dist/headless/source/components/dataDisplay/table/tableBody.jsx +6 -1
  484. package/dist/headless/source/components/dataDisplay/table/tableBody.jsx.map +1 -1
  485. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx +13 -4
  486. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
  487. package/dist/headless/source/components/dataDisplay/table/tableColumns.jsx +311 -0
  488. package/dist/headless/source/components/dataDisplay/table/tableColumns.jsx.map +1 -0
  489. package/dist/headless/source/components/dataDisplay/table/tableEntities.js +7 -0
  490. package/dist/headless/source/components/dataDisplay/table/tableEntities.js.map +7 -0
  491. package/dist/headless/source/components/dataDisplay/table/tableHead.jsx +14 -1
  492. package/dist/headless/source/components/dataDisplay/table/tableHead.jsx.map +1 -1
  493. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx +51 -33
  494. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
  495. package/dist/headless/source/components/dataDisplay/table/tableHtmlText.js +140 -0
  496. package/dist/headless/source/components/dataDisplay/table/tableHtmlText.js.map +7 -0
  497. package/dist/headless/source/components/dataDisplay/table/tableRow.jsx +11 -5
  498. package/dist/headless/source/components/dataDisplay/table/tableRow.jsx.map +1 -1
  499. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx +48 -19
  500. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
  501. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx +9 -2
  502. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  503. package/dist/headless/source/components/dataDisplay/typography/typography.jsx +2 -6
  504. package/dist/headless/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  505. package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx +12 -2
  506. package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx.map +1 -1
  507. package/dist/headless/source/components/feedBack/message/message.jsx +5 -4
  508. package/dist/headless/source/components/feedBack/message/message.jsx.map +1 -1
  509. package/dist/headless/source/components/feedBack/modal/modal.jsx +5 -2
  510. package/dist/headless/source/components/feedBack/modal/modal.jsx.map +1 -1
  511. package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx +12 -5
  512. package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
  513. package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx +3 -3
  514. package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
  515. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx +52 -5
  516. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  517. package/dist/headless/source/components/inputs/button/button.jsx +8 -3
  518. package/dist/headless/source/components/inputs/button/button.jsx.map +1 -1
  519. package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx +4 -3
  520. package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
  521. package/dist/headless/source/components/inputs/checkbox/checkbox.jsx +27 -4
  522. package/dist/headless/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
  523. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +13 -0
  524. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  525. package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx +4 -1
  526. package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -1
  527. package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx +12 -12
  528. package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -1
  529. package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx +13 -3
  530. package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -1
  531. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx +13 -0
  532. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
  533. package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx +12 -1
  534. package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
  535. package/dist/headless/source/components/inputs/radioButton/radioButton.jsx +16 -4
  536. package/dist/headless/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
  537. package/dist/headless/source/components/inputs/rating/rating.jsx +49 -20
  538. package/dist/headless/source/components/inputs/rating/rating.jsx.map +1 -1
  539. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx +222 -61
  540. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
  541. package/dist/headless/source/components/inputs/selectField/optionNavigation.js +51 -0
  542. package/dist/headless/source/components/inputs/selectField/optionNavigation.js.map +7 -0
  543. package/dist/headless/source/components/inputs/selectField/selectField.jsx +318 -92
  544. package/dist/headless/source/components/inputs/selectField/selectField.jsx.map +1 -1
  545. package/dist/headless/source/components/inputs/slider/slider.jsx +89 -18
  546. package/dist/headless/source/components/inputs/slider/slider.jsx.map +1 -1
  547. package/dist/headless/source/components/inputs/textField/textField.jsx +47 -9
  548. package/dist/headless/source/components/inputs/textField/textField.jsx.map +1 -1
  549. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx +20 -6
  550. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
  551. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx +13 -0
  552. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  553. package/dist/headless/source/components/inputs/toggle/toggle.jsx +14 -2
  554. package/dist/headless/source/components/inputs/toggle/toggle.jsx.map +1 -1
  555. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx +7 -2
  556. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
  557. package/dist/headless/source/components/layout/appLayout/appLayout.jsx +8 -6
  558. package/dist/headless/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  559. package/dist/headless/source/components/layout/divider/divider.jsx +6 -5
  560. package/dist/headless/source/components/layout/divider/divider.jsx.map +1 -1
  561. package/dist/headless/source/components/layout/floatingWindow/floatingWindow.jsx +17 -11
  562. package/dist/headless/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
  563. package/dist/headless/source/components/layout/grid/grid.jsx +20 -8
  564. package/dist/headless/source/components/layout/grid/grid.jsx.map +1 -1
  565. package/dist/headless/source/components/layout/page/page.jsx +10 -2
  566. package/dist/headless/source/components/layout/page/page.jsx.map +1 -1
  567. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx +3 -2
  568. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  569. package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx +5 -5
  570. package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -1
  571. package/dist/headless/source/components/layout/sheet/sheet.jsx +6 -8
  572. package/dist/headless/source/components/layout/sheet/sheet.jsx.map +1 -1
  573. package/dist/headless/source/components/layout/stack/stack.jsx +15 -11
  574. package/dist/headless/source/components/layout/stack/stack.jsx.map +1 -1
  575. package/dist/headless/source/components/navigation/appBar/appBar.jsx +3 -2
  576. package/dist/headless/source/components/navigation/appBar/appBar.jsx.map +1 -1
  577. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx +48 -40
  578. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  579. package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx +9 -2
  580. package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
  581. package/dist/headless/source/components/navigation/menu/menu.jsx.map +1 -1
  582. package/dist/headless/source/components/navigation/menu/menuComponent.jsx +3 -4
  583. package/dist/headless/source/components/navigation/menu/menuComponent.jsx.map +1 -1
  584. package/dist/headless/source/components/navigation/menu/menuContext.js.map +2 -2
  585. package/dist/headless/source/components/navigation/menu/menuFloating.jsx +26 -4
  586. package/dist/headless/source/components/navigation/menu/menuFloating.jsx.map +1 -1
  587. package/dist/headless/source/components/navigation/menu/menuItem.jsx +22 -2
  588. package/dist/headless/source/components/navigation/menu/menuItem.jsx.map +1 -1
  589. package/dist/headless/source/components/navigation/menu/menuList.jsx +19 -7
  590. package/dist/headless/source/components/navigation/menu/menuList.jsx.map +1 -1
  591. package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx +36 -4
  592. package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx.map +1 -1
  593. package/dist/headless/source/components/navigation/pagination/pagination.jsx +4 -3
  594. package/dist/headless/source/components/navigation/pagination/pagination.jsx.map +1 -1
  595. package/dist/headless/source/components/navigation/sidebar/sidebar.jsx +1 -1
  596. package/dist/headless/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
  597. package/dist/headless/source/components/navigation/stepper/stepper.jsx +14 -9
  598. package/dist/headless/source/components/navigation/stepper/stepper.jsx.map +1 -1
  599. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx +12 -16
  600. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  601. package/dist/headless/source/components/navigation/tabs/tabs.jsx +34 -10
  602. package/dist/headless/source/components/navigation/tabs/tabs.jsx.map +1 -1
  603. package/dist/headless/source/components/navigation/tabs/tabsContext.js.map +2 -2
  604. package/dist/headless/source/connects/rt/table/table.jsx +7 -2
  605. package/dist/headless/source/connects/rt/table/table.jsx.map +1 -1
  606. package/dist/headless/source/index.js +3 -0
  607. package/dist/headless/source/index.js.map +2 -2
  608. package/dist/headless/source/primitives/createDismissOnEscape.js +17 -0
  609. package/dist/headless/source/primitives/createDismissOnEscape.js.map +7 -0
  610. package/dist/headless/source/primitives/createFocusTrap.js +1 -0
  611. package/dist/headless/source/primitives/createFocusTrap.js.map +2 -2
  612. package/dist/headless/source/primitives/createHelperText.js +16 -0
  613. package/dist/headless/source/primitives/createHelperText.js.map +7 -0
  614. package/dist/headless/source/primitives/mergeStyle.js +15 -0
  615. package/dist/headless/source/primitives/mergeStyle.js.map +7 -0
  616. package/dist/headless/source/primitives/overlayLayer.js +10 -2
  617. package/dist/headless/source/primitives/overlayLayer.js.map +2 -2
  618. package/dist/headless/source/utils/controlProps.js +22 -0
  619. package/dist/headless/source/utils/controlProps.js.map +7 -0
  620. package/dist/headless/source/utils/ownClick.js +41 -0
  621. package/dist/headless/source/utils/ownClick.js.map +7 -0
  622. package/dist/headless/utils/controlProps.js +20 -0
  623. package/dist/headless/utils/controlProps.js.map +1 -0
  624. package/dist/headless/utils/ownClick.js +39 -0
  625. package/dist/headless/utils/ownClick.js.map +1 -0
  626. package/dist/index.d.ts +2 -0
  627. package/dist/index.js +224 -220
  628. package/dist/index.js.map +1 -1
  629. package/dist/primitives/createDismissOnEscape.d.ts +12 -0
  630. package/dist/primitives/createDismissOnEscape.js +14 -0
  631. package/dist/primitives/createDismissOnEscape.js.map +1 -0
  632. package/dist/primitives/createFocusTrap.d.ts +2 -0
  633. package/dist/primitives/createFocusTrap.js +1 -0
  634. package/dist/primitives/createFocusTrap.js.map +1 -1
  635. package/dist/primitives/createHelperText.d.ts +26 -0
  636. package/dist/primitives/createHelperText.js +14 -0
  637. package/dist/primitives/createHelperText.js.map +1 -0
  638. package/dist/primitives/mergeStyle.d.ts +19 -0
  639. package/dist/primitives/mergeStyle.js +9 -0
  640. package/dist/primitives/mergeStyle.js.map +1 -0
  641. package/dist/primitives/overlayLayer.d.ts +15 -3
  642. package/dist/primitives/overlayLayer.js +14 -7
  643. package/dist/primitives/overlayLayer.js.map +1 -1
  644. package/dist/source/components/base/animateHeight/animateHeight.jsx +7 -11
  645. package/dist/source/components/base/animateHeight/animateHeight.jsx.map +1 -1
  646. package/dist/source/components/base/icon/icon.jsx +10 -12
  647. package/dist/source/components/base/icon/icon.jsx.map +1 -1
  648. package/dist/source/components/base/ripple/ripple.jsx +16 -4
  649. package/dist/source/components/base/ripple/ripple.jsx.map +1 -1
  650. package/dist/source/components/dataDisplay/avatar/avatar.jsx +14 -7
  651. package/dist/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  652. package/dist/source/components/dataDisplay/card/card.jsx +31 -12
  653. package/dist/source/components/dataDisplay/card/card.jsx.map +1 -1
  654. package/dist/source/components/dataDisplay/carousel/carousel.jsx +9 -3
  655. package/dist/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
  656. package/dist/source/components/dataDisplay/chart/chart.jsx +5 -4
  657. package/dist/source/components/dataDisplay/chart/chart.jsx.map +1 -1
  658. package/dist/source/components/dataDisplay/chat/chatIconButton.jsx +13 -3
  659. package/dist/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -1
  660. package/dist/source/components/dataDisplay/chat/chatLayout.jsx +6 -7
  661. package/dist/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -1
  662. package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx +5 -6
  663. package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -1
  664. package/dist/source/components/dataDisplay/chip/chip.jsx +55 -19
  665. package/dist/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  666. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx +14 -11
  667. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
  668. package/dist/source/components/dataDisplay/dagView/dagLayout.js +383 -0
  669. package/dist/source/components/dataDisplay/dagView/dagLayout.js.map +7 -0
  670. package/dist/source/components/dataDisplay/dagView/dagView.jsx +641 -0
  671. package/dist/source/components/dataDisplay/dagView/dagView.jsx.map +1 -0
  672. package/dist/source/components/dataDisplay/dagView/index.js +10 -0
  673. package/dist/source/components/dataDisplay/dagView/index.js.map +7 -0
  674. package/dist/source/components/dataDisplay/dagView/panZoom.js +247 -0
  675. package/dist/source/components/dataDisplay/dagView/panZoom.js.map +7 -0
  676. package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx +4 -6
  677. package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -1
  678. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +83 -9
  679. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
  680. package/dist/source/components/dataDisplay/kanban/kanban.jsx +20 -10
  681. package/dist/source/components/dataDisplay/kanban/kanban.jsx.map +1 -1
  682. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx +1 -1
  683. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
  684. package/dist/source/components/dataDisplay/list/list.jsx +3 -3
  685. package/dist/source/components/dataDisplay/list/list.jsx.map +1 -1
  686. package/dist/source/components/dataDisplay/list/listItem.jsx +11 -10
  687. package/dist/source/components/dataDisplay/list/listItem.jsx.map +1 -1
  688. package/dist/source/components/dataDisplay/meter/meter.jsx +3 -2
  689. package/dist/source/components/dataDisplay/meter/meter.jsx.map +1 -1
  690. package/dist/source/components/dataDisplay/personChip/personChip.jsx +3 -2
  691. package/dist/source/components/dataDisplay/personChip/personChip.jsx.map +1 -1
  692. package/dist/source/components/dataDisplay/stat/stat.jsx +7 -8
  693. package/dist/source/components/dataDisplay/stat/stat.jsx.map +1 -1
  694. package/dist/source/components/dataDisplay/table/table.jsx +18 -1
  695. package/dist/source/components/dataDisplay/table/table.jsx.map +1 -1
  696. package/dist/source/components/dataDisplay/table/tableBody.jsx +6 -1
  697. package/dist/source/components/dataDisplay/table/tableBody.jsx.map +1 -1
  698. package/dist/source/components/dataDisplay/table/tableCell.jsx +13 -4
  699. package/dist/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
  700. package/dist/source/components/dataDisplay/table/tableColumns.jsx +311 -0
  701. package/dist/source/components/dataDisplay/table/tableColumns.jsx.map +1 -0
  702. package/dist/source/components/dataDisplay/table/tableEntities.js +7 -0
  703. package/dist/source/components/dataDisplay/table/tableEntities.js.map +7 -0
  704. package/dist/source/components/dataDisplay/table/tableHead.jsx +14 -1
  705. package/dist/source/components/dataDisplay/table/tableHead.jsx.map +1 -1
  706. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx +51 -33
  707. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
  708. package/dist/source/components/dataDisplay/table/tableHtmlText.js +140 -0
  709. package/dist/source/components/dataDisplay/table/tableHtmlText.js.map +7 -0
  710. package/dist/source/components/dataDisplay/table/tableRow.jsx +11 -5
  711. package/dist/source/components/dataDisplay/table/tableRow.jsx.map +1 -1
  712. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx +48 -19
  713. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
  714. package/dist/source/components/dataDisplay/treeView/treeView.jsx +9 -2
  715. package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  716. package/dist/source/components/dataDisplay/typography/typography.jsx +2 -6
  717. package/dist/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  718. package/dist/source/components/feedBack/emptyState/emptyState.jsx +12 -2
  719. package/dist/source/components/feedBack/emptyState/emptyState.jsx.map +1 -1
  720. package/dist/source/components/feedBack/message/message.jsx +5 -4
  721. package/dist/source/components/feedBack/message/message.jsx.map +1 -1
  722. package/dist/source/components/feedBack/modal/modal.jsx +5 -2
  723. package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
  724. package/dist/source/components/feedBack/skeleton/skeleton.jsx +12 -5
  725. package/dist/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
  726. package/dist/source/components/feedBack/snackbar/snackbar.jsx +3 -3
  727. package/dist/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
  728. package/dist/source/components/feedBack/tooltip/tooltip.jsx +52 -5
  729. package/dist/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  730. package/dist/source/components/inputs/button/button.jsx +8 -3
  731. package/dist/source/components/inputs/button/button.jsx.map +1 -1
  732. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx +4 -3
  733. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
  734. package/dist/source/components/inputs/checkbox/checkbox.jsx +27 -4
  735. package/dist/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
  736. package/dist/source/components/inputs/datePicker/datePicker.jsx +13 -0
  737. package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  738. package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx +4 -1
  739. package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -1
  740. package/dist/source/components/inputs/datePicker/datePickerDay.jsx +12 -12
  741. package/dist/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -1
  742. package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx +13 -3
  743. package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -1
  744. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx +13 -0
  745. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
  746. package/dist/source/components/inputs/floatingButton/floatingButton.jsx +12 -1
  747. package/dist/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
  748. package/dist/source/components/inputs/radioButton/radioButton.jsx +16 -4
  749. package/dist/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
  750. package/dist/source/components/inputs/rating/rating.jsx +49 -20
  751. package/dist/source/components/inputs/rating/rating.jsx.map +1 -1
  752. package/dist/source/components/inputs/selectField/dropdownMenu.jsx +222 -61
  753. package/dist/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
  754. package/dist/source/components/inputs/selectField/optionNavigation.js +51 -0
  755. package/dist/source/components/inputs/selectField/optionNavigation.js.map +7 -0
  756. package/dist/source/components/inputs/selectField/selectField.jsx +318 -92
  757. package/dist/source/components/inputs/selectField/selectField.jsx.map +1 -1
  758. package/dist/source/components/inputs/slider/slider.jsx +89 -18
  759. package/dist/source/components/inputs/slider/slider.jsx.map +1 -1
  760. package/dist/source/components/inputs/textField/textField.jsx +47 -9
  761. package/dist/source/components/inputs/textField/textField.jsx.map +1 -1
  762. package/dist/source/components/inputs/textField/textFieldWrapper.jsx +20 -6
  763. package/dist/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
  764. package/dist/source/components/inputs/timePicker/timePicker.jsx +13 -0
  765. package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  766. package/dist/source/components/inputs/toggle/toggle.jsx +14 -2
  767. package/dist/source/components/inputs/toggle/toggle.jsx.map +1 -1
  768. package/dist/source/components/inputs/valueSlider/valueSlider.jsx +7 -2
  769. package/dist/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
  770. package/dist/source/components/layout/appLayout/appLayout.jsx +8 -6
  771. package/dist/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  772. package/dist/source/components/layout/divider/divider.jsx +6 -5
  773. package/dist/source/components/layout/divider/divider.jsx.map +1 -1
  774. package/dist/source/components/layout/floatingWindow/floatingWindow.jsx +17 -11
  775. package/dist/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
  776. package/dist/source/components/layout/grid/grid.jsx +20 -8
  777. package/dist/source/components/layout/grid/grid.jsx.map +1 -1
  778. package/dist/source/components/layout/page/page.jsx +10 -2
  779. package/dist/source/components/layout/page/page.jsx.map +1 -1
  780. package/dist/source/components/layout/pageHeader/pageHeader.jsx +3 -2
  781. package/dist/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  782. package/dist/source/components/layout/sectionHeader/sectionHeader.jsx +5 -5
  783. package/dist/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -1
  784. package/dist/source/components/layout/sheet/sheet.jsx +6 -8
  785. package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
  786. package/dist/source/components/layout/stack/stack.jsx +15 -11
  787. package/dist/source/components/layout/stack/stack.jsx.map +1 -1
  788. package/dist/source/components/navigation/appBar/appBar.jsx +3 -2
  789. package/dist/source/components/navigation/appBar/appBar.jsx.map +1 -1
  790. package/dist/source/components/navigation/bottomBar/bottomBar.jsx +48 -40
  791. package/dist/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  792. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx +9 -2
  793. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
  794. package/dist/source/components/navigation/menu/menu.jsx.map +1 -1
  795. package/dist/source/components/navigation/menu/menuComponent.jsx +3 -4
  796. package/dist/source/components/navigation/menu/menuComponent.jsx.map +1 -1
  797. package/dist/source/components/navigation/menu/menuContext.js.map +2 -2
  798. package/dist/source/components/navigation/menu/menuFloating.jsx +26 -4
  799. package/dist/source/components/navigation/menu/menuFloating.jsx.map +1 -1
  800. package/dist/source/components/navigation/menu/menuItem.jsx +22 -2
  801. package/dist/source/components/navigation/menu/menuItem.jsx.map +1 -1
  802. package/dist/source/components/navigation/menu/menuList.jsx +19 -7
  803. package/dist/source/components/navigation/menu/menuList.jsx.map +1 -1
  804. package/dist/source/components/navigation/menu/menuSubmenu.jsx +36 -4
  805. package/dist/source/components/navigation/menu/menuSubmenu.jsx.map +1 -1
  806. package/dist/source/components/navigation/pagination/pagination.jsx +4 -3
  807. package/dist/source/components/navigation/pagination/pagination.jsx.map +1 -1
  808. package/dist/source/components/navigation/sidebar/sidebar.jsx +1 -1
  809. package/dist/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
  810. package/dist/source/components/navigation/stepper/stepper.jsx +14 -9
  811. package/dist/source/components/navigation/stepper/stepper.jsx.map +1 -1
  812. package/dist/source/components/navigation/tabs/tab/tab.jsx +12 -16
  813. package/dist/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  814. package/dist/source/components/navigation/tabs/tabs.jsx +34 -10
  815. package/dist/source/components/navigation/tabs/tabs.jsx.map +1 -1
  816. package/dist/source/components/navigation/tabs/tabsContext.js.map +2 -2
  817. package/dist/source/connects/rt/table/table.jsx +7 -2
  818. package/dist/source/connects/rt/table/table.jsx.map +1 -1
  819. package/dist/source/index.js +3 -0
  820. package/dist/source/index.js.map +2 -2
  821. package/dist/source/primitives/createDismissOnEscape.js +17 -0
  822. package/dist/source/primitives/createDismissOnEscape.js.map +7 -0
  823. package/dist/source/primitives/createFocusTrap.js +1 -0
  824. package/dist/source/primitives/createFocusTrap.js.map +2 -2
  825. package/dist/source/primitives/createHelperText.js +16 -0
  826. package/dist/source/primitives/createHelperText.js.map +7 -0
  827. package/dist/source/primitives/mergeStyle.js +15 -0
  828. package/dist/source/primitives/mergeStyle.js.map +7 -0
  829. package/dist/source/primitives/overlayLayer.js +10 -2
  830. package/dist/source/primitives/overlayLayer.js.map +2 -2
  831. package/dist/source/utils/controlProps.js +22 -0
  832. package/dist/source/utils/controlProps.js.map +7 -0
  833. package/dist/source/utils/ownClick.js +41 -0
  834. package/dist/source/utils/ownClick.js.map +7 -0
  835. package/dist/utils/controlProps.d.ts +17 -0
  836. package/dist/utils/controlProps.js +20 -0
  837. package/dist/utils/controlProps.js.map +1 -0
  838. package/dist/utils/ownClick.d.ts +16 -0
  839. package/dist/utils/ownClick.js +39 -0
  840. package/dist/utils/ownClick.js.map +1 -0
  841. package/package.json +9 -3
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sources":["../../../../src/components/navigation/tabs/tabs.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, createEffect, createSignal, mergeProps, on, onCleanup, onMount, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { debounce } from \"../../../utils/debounce\";\nimport { animate } from \"../../../utils/animate\";\nimport { TabsContext, type TabsContextValue } from \"./tabsContext\";\nimport { Tab } from \"./tab/tab\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface TabsProps {\n value: number;\n onChange: (event: MouseEvent & { currentTarget: HTMLElement; target: Element }, index: number) => void;\n indicatorContent?: boolean;\n /**\n * Let the tab row scroll sideways instead of clipping it. The edge beyond which\n * more tabs are hidden fades out.\n */\n scrollable?: boolean;\n /** With `scrollable`: buttons at both ends that scroll the row while it overflows. */\n scrollButtons?: boolean;\n /** Compact tabs: labels as written (no capitals, no letter spacing) and less padding. */\n dense?: boolean;\n /** Accessible label of the button that scrolls back. */\n scrollBackAriaLabel?: string;\n /** Accessible label of the button that scrolls forward. */\n scrollForwardAriaLabel?: string;\n class?: string;\n children?: JSX.Element;\n \"aria-label\"?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\ninterface IndicatorStyle {\n root: { left?: number; width?: number };\n content?: { width: number };\n}\n\nconst VIEW_NEXT_TAB_PX = 40;\n/** A scroll button moves the row by this share of its visible width. */\nconst SCROLL_PAGE = 0.8;\n\nexport function Tabs(props: ParentProps<TabsProps>): JSX.Element {\n const merged = mergeProps(\n {\n indicatorContent: false,\n scrollable: false,\n scrollButtons: false,\n dense: false,\n scrollBackAriaLabel: \"Scroll tabs back\",\n scrollForwardAriaLabel: \"Scroll tabs forward\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"children\",\n \"onChange\",\n \"value\",\n \"indicatorContent\",\n \"scrollable\",\n \"scrollButtons\",\n \"dense\",\n \"scrollBackAriaLabel\",\n \"scrollForwardAriaLabel\",\n \"aria-label\",\n \"ref\",\n ]);\n\n const [mounted, setMounted] = createSignal(false);\n const [indicatorStyle, setIndicatorStyle] = createSignal<IndicatorStyle>({ root: {} });\n // Whether tabs are hidden past the start / the end of a scrollable row. Only\n // measured in the browser, so the server markup shows neither.\n const [overflowStart, setOverflowStart] = createSignal(false);\n const [overflowEnd, setOverflowEnd] = createSignal(false);\n\n let tabsEl: HTMLDivElement | undefined;\n let tabListEl: HTMLDivElement | undefined;\n let tabCounter = 0;\n const contentRefs: HTMLSpanElement[] = [];\n\n const getTabsMeta = () => {\n let tabsMeta: { clientWidth: number; scrollLeft: number; left: number; right: number } | undefined;\n if (tabsEl) {\n const rect = tabsEl.getBoundingClientRect();\n tabsMeta = { clientWidth: tabsEl.clientWidth, scrollLeft: tabsEl.scrollLeft, left: rect.left, right: rect.right };\n }\n let tabMeta: DOMRect | null = null;\n let tabContentMeta: DOMRect | null = null;\n if (tabsEl && tabListEl && tabListEl.children.length > 0) {\n const tab = tabListEl.children[local.value];\n tabMeta = tab ? tab.getBoundingClientRect() : null;\n if (local.indicatorContent) {\n tabContentMeta = contentRefs[local.value]?.getBoundingClientRect() ?? null;\n }\n }\n return { tabsMeta, tabMeta, tabContentMeta };\n };\n\n const updateIndicatorState = (): void => {\n const { tabsMeta, tabMeta, tabContentMeta } = getTabsMeta();\n let startValue = 0;\n if (tabMeta && tabsMeta) {\n startValue = tabMeta.left - tabsMeta.left + tabsMeta.scrollLeft;\n }\n const next: IndicatorStyle = { root: { left: startValue, width: tabMeta ? tabMeta.width : 0 } };\n if (local.indicatorContent && tabContentMeta) {\n next.content = { width: tabContentMeta.width };\n }\n const prev = indicatorStyle();\n if (prev.root.left === undefined || prev.root.width === undefined) {\n setIndicatorStyle(next);\n return;\n }\n const dStart = Math.abs((prev.root.left ?? 0) - (next.root.left ?? 0));\n const dSize = Math.abs((prev.root.width ?? 0) - (next.root.width ?? 0));\n if (dStart >= 1 || dSize >= 1) {\n setIndicatorStyle(next);\n }\n };\n\n const updateOverflow = (): void => {\n if (!tabsEl || !local.scrollable) {\n setOverflowStart(false);\n setOverflowEnd(false);\n return;\n }\n const max = tabsEl.scrollWidth - tabsEl.clientWidth;\n setOverflowStart(tabsEl.scrollLeft > 1);\n setOverflowEnd(tabsEl.scrollLeft < max - 1);\n };\n\n const scroll = (scrollValue: number): void => {\n if (!tabsEl) return;\n animate(tabsEl, \"scrollLeft\", scrollValue, { duration: 300 });\n };\n\n const scrollByPage = (direction: -1 | 1): void => {\n if (!tabsEl) return;\n scroll(tabsEl.scrollLeft + direction * tabsEl.clientWidth * SCROLL_PAGE);\n };\n\n const scrollSelectedIntoView = (): void => {\n const { tabsMeta, tabMeta } = getTabsMeta();\n if (!tabMeta || !tabsMeta) return;\n if (tabMeta.left < tabsMeta.left) {\n scroll(tabsMeta.scrollLeft + (tabMeta.left - tabsMeta.left) - VIEW_NEXT_TAB_PX);\n } else if (tabMeta.right > tabsMeta.right) {\n scroll(tabsMeta.scrollLeft + (tabMeta.right - tabsMeta.right) + VIEW_NEXT_TAB_PX);\n }\n };\n\n onMount(() => setMounted(true));\n\n // Re-measure when the active value changes (and on mount).\n createEffect(on(() => local.value, () => updateIndicatorState()));\n\n // Keep the indicator and the overflow state in sync with resizes: of the\n // window, of the row, and of each tab (a label can grow with its data).\n onMount(() => {\n const onResize = debounce(() => {\n updateIndicatorState();\n updateOverflow();\n }, 166);\n const view = tabsEl?.ownerDocument.defaultView;\n view?.addEventListener(\"resize\", onResize);\n tabsEl?.addEventListener(\"scroll\", updateOverflow, { passive: true });\n let resizeObserver: ResizeObserver | undefined;\n if (typeof ResizeObserver !== \"undefined\" && tabListEl) {\n resizeObserver = new ResizeObserver(onResize);\n if (tabsEl) resizeObserver.observe(tabsEl);\n Array.from(tabListEl.children).forEach((child) => resizeObserver?.observe(child));\n }\n updateOverflow();\n onCleanup(() => {\n onResize.cancel();\n view?.removeEventListener(\"resize\", onResize);\n tabsEl?.removeEventListener(\"scroll\", updateOverflow);\n resizeObserver?.disconnect();\n });\n });\n\n // Scroll the selected tab into view when the indicator moves.\n createEffect(() => {\n indicatorStyle();\n scrollSelectedIntoView();\n });\n\n const contextValue: TabsContextValue = {\n value: () => local.value,\n onChange: local.onChange,\n indicatorContent: local.indicatorContent,\n registerTab: () => tabCounter++,\n setContentRef: (index, el) => {\n contentRefs[index] = el;\n },\n };\n\n const showScrollButtons = (): boolean => local.scrollable && local.scrollButtons && (overflowStart() || overflowEnd());\n\n return (\n <TabsContext.Provider value={contextValue}>\n <div\n {...rest}\n class={cn(\n \"smwb-tabs\",\n {\n \"smwb-tabs--dense\": local.dense,\n \"smwb-tabs--overflow-start\": overflowStart(),\n \"smwb-tabs--overflow-end\": overflowEnd(),\n },\n local.class\n )}\n role=\"tabpanel\"\n ref={mergeRefs(local.ref)}\n >\n <Show when={showScrollButtons()}>\n <button\n type=\"button\"\n class=\"smwb-tabs__scroll-button smwb-tabs__scroll-button--start\"\n aria-label={local.scrollBackAriaLabel}\n disabled={!overflowStart()}\n onClick={() => scrollByPage(-1)}\n >\n <Icon name=\"chevron_left\" size={20} />\n </button>\n </Show>\n {/* The scroller's class is static so it is on the element from the start:\n a ref on Tabs can find the row by class right away. */}\n <div\n class=\"smwb-tabs__scroller\"\n classList={{ \"smwb-tabs__scroller--scrollable\": local.scrollable }}\n ref={(el) => (tabsEl = el)}\n >\n <div class=\"smwb-tabs__scroll-area\" ref={(el) => (tabListEl = el)} role=\"tablist\" aria-label={local[\"aria-label\"]}>\n {local.children}\n </div>\n <Show when={mounted()}>\n <span\n class=\"smwb-tabs__indicator\"\n style={{\n left: `${indicatorStyle().root.left ?? 0}px`,\n width: `${indicatorStyle().root.width ?? 0}px`,\n }}\n >\n <span\n class=\"smwb-tabs__indicator-content\"\n style={indicatorStyle().content ? { width: `${indicatorStyle().content?.width ?? 0}px` } : {}}\n />\n </span>\n </Show>\n </div>\n <Show when={showScrollButtons()}>\n <button\n type=\"button\"\n class=\"smwb-tabs__scroll-button smwb-tabs__scroll-button--end\"\n aria-label={local.scrollForwardAriaLabel}\n disabled={!overflowEnd()}\n onClick={() => scrollByPage(1)}\n >\n <Icon name=\"chevron_right\" size={20} />\n </button>\n </Show>\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport { Tab };\nexport type { TabProps } from \"./tab/tab\";\nexport default Tabs;\n"],"names":["VIEW_NEXT_TAB_PX","SCROLL_PAGE","Tabs","props","merged","mergeProps","indicatorContent","scrollable","scrollButtons","dense","scrollBackAriaLabel","scrollForwardAriaLabel","local","rest","splitProps","mounted","setMounted","createSignal","indicatorStyle","setIndicatorStyle","root","overflowStart","setOverflowStart","overflowEnd","setOverflowEnd","tabsEl","tabListEl","tabCounter","contentRefs","getTabsMeta","tabsMeta","rect","getBoundingClientRect","clientWidth","scrollLeft","left","right","tabMeta","tabContentMeta","children","length","tab","value","updateIndicatorState","startValue","next","width","content","prev","undefined","dStart","Math","abs","dSize","updateOverflow","max","scrollWidth","scroll","scrollValue","animate","duration","scrollByPage","direction","scrollSelectedIntoView","onMount","createEffect","on","onResize","debounce","view","ownerDocument","defaultView","addEventListener","passive","resizeObserver","ResizeObserver","observe","Array","from","forEach","child","onCleanup","cancel","removeEventListener","disconnect","contextValue","onChange","registerTab","setContentRef","index","el","showScrollButtons","_$createComponent","TabsContext","Provider","_el$","_tmpl$4","_el$3","firstChild","_el$4","_ref$","mergeRefs","ref","_$use","_$spread","_$mergeProps","cn","class","_$insert","Show","when","_el$2","_tmpl$","$$click","Icon","name","size","_$effect","_p$","_v$","_v$2","e","_$setAttribute","t","disabled","_el$5","_tmpl$2","_el$6","_v$3","_v$4","_v$5","_$setStyleProperty","a","_$style","_el$7","_tmpl$3","_v$6","_v$7","_v$8","_v$9","classList","toggle","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.js","sources":["../../../../src/components/navigation/tabs/tabs.tsx"],"sourcesContent":["import {\n type JSX,\n type ParentProps,\n Show,\n children,\n createComputed,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n on,\n onCleanup,\n onMount,\n splitProps,\n} from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { debounce } from \"../../../utils/debounce\";\nimport { animate } from \"../../../utils/animate\";\nimport { TabsContext, type TabsContextValue } from \"./tabsContext\";\nimport { Tab } from \"./tab/tab\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface TabsProps {\n /**\n * Index of the selected tab: its position in the row. Tabs count in the order they\n * render, so a tab behind a `<Show>` that is off takes no index, and tabs added,\n * removed or reordered count by their new place.\n */\n value: number;\n /** Called with the index of the clicked tab, counted as for `value`. */\n onChange: (event: MouseEvent & { currentTarget: HTMLElement; target: Element }, index: number) => void;\n /** Draw the indicator as wide as the selected tab's label rather than the whole tab. */\n indicatorContent?: boolean;\n /**\n * Let the tab row scroll sideways instead of clipping it. The edge beyond which\n * more tabs are hidden fades out.\n */\n scrollable?: boolean;\n /** With `scrollable`: buttons at both ends that scroll the row while it overflows. */\n scrollButtons?: boolean;\n /** Compact tabs: labels as written (no capitals, no letter spacing) and less padding. */\n dense?: boolean;\n /** Accessible label of the button that scrolls back. */\n scrollBackAriaLabel?: string;\n /** Accessible label of the button that scrolls forward. */\n scrollForwardAriaLabel?: string;\n class?: string;\n children?: JSX.Element;\n \"aria-label\"?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\ninterface IndicatorStyle {\n root: { left?: number; width?: number };\n content?: { width: number };\n}\n\nconst VIEW_NEXT_TAB_PX = 40;\n/** A scroll button moves the row by this share of its visible width. */\nconst SCROLL_PAGE = 0.8;\n\n/**\n * The tab list's children, resolved once, with their elements reported in order\n * whenever they change. It renders inside the context provider, so the tabs it\n * creates find their Tabs.\n */\nfunction TabListItems(props: { children?: JSX.Element; onItems: (items: Element[]) => void }): JSX.Element {\n const resolved = children(() => props.children);\n if (!isServer) {\n createComputed(() => props.onItems(resolved.toArray().filter((node) => node instanceof Element)));\n }\n return <>{resolved()}</>;\n}\n\nexport function Tabs(props: ParentProps<TabsProps>): JSX.Element {\n const merged = mergeProps(\n {\n indicatorContent: false,\n scrollable: false,\n scrollButtons: false,\n dense: false,\n scrollBackAriaLabel: \"Scroll tabs back\",\n scrollForwardAriaLabel: \"Scroll tabs forward\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"children\",\n \"onChange\",\n \"value\",\n \"indicatorContent\",\n \"scrollable\",\n \"scrollButtons\",\n \"dense\",\n \"scrollBackAriaLabel\",\n \"scrollForwardAriaLabel\",\n \"aria-label\",\n \"ref\",\n ]);\n\n const [mounted, setMounted] = createSignal(false);\n const [indicatorStyle, setIndicatorStyle] = createSignal<IndicatorStyle>({ root: {} });\n // Whether tabs are hidden past the start / the end of a scrollable row. Only\n // measured in the browser, so the server markup shows neither.\n const [overflowStart, setOverflowStart] = createSignal(false);\n const [overflowEnd, setOverflowEnd] = createSignal(false);\n\n let tabsEl: HTMLDivElement | undefined;\n let tabListEl: HTMLDivElement | undefined;\n // The tab list's elements in order, known once its children have resolved in\n // the browser. Before that, and on the server, a tab's index is the order it\n // was created in, which is its order in the markup.\n const [items, setItems] = createSignal<Element[]>();\n let created = 0;\n\n const getTabsMeta = () => {\n let tabsMeta: { clientWidth: number; scrollLeft: number; left: number; right: number } | undefined;\n if (tabsEl) {\n const rect = tabsEl.getBoundingClientRect();\n tabsMeta = { clientWidth: tabsEl.clientWidth, scrollLeft: tabsEl.scrollLeft, left: rect.left, right: rect.right };\n }\n let tabMeta: DOMRect | null = null;\n let tabContentMeta: DOMRect | null = null;\n if (tabsEl && tabListEl && tabListEl.children.length > 0) {\n const tab = tabListEl.children[local.value];\n tabMeta = tab ? tab.getBoundingClientRect() : null;\n if (local.indicatorContent) {\n tabContentMeta = tab?.querySelector(\".smwb-tab__content\")?.getBoundingClientRect() ?? null;\n }\n }\n return { tabsMeta, tabMeta, tabContentMeta };\n };\n\n const updateIndicatorState = (): void => {\n const { tabsMeta, tabMeta, tabContentMeta } = getTabsMeta();\n let startValue = 0;\n if (tabMeta && tabsMeta) {\n startValue = tabMeta.left - tabsMeta.left + tabsMeta.scrollLeft;\n }\n const next: IndicatorStyle = { root: { left: startValue, width: tabMeta ? tabMeta.width : 0 } };\n if (local.indicatorContent && tabContentMeta) {\n next.content = { width: tabContentMeta.width };\n }\n const prev = indicatorStyle();\n if (prev.root.left === undefined || prev.root.width === undefined) {\n setIndicatorStyle(next);\n return;\n }\n const dStart = Math.abs((prev.root.left ?? 0) - (next.root.left ?? 0));\n const dSize = Math.abs((prev.root.width ?? 0) - (next.root.width ?? 0));\n if (dStart >= 1 || dSize >= 1) {\n setIndicatorStyle(next);\n }\n };\n\n const updateOverflow = (): void => {\n if (!tabsEl || !local.scrollable) {\n setOverflowStart(false);\n setOverflowEnd(false);\n return;\n }\n const max = tabsEl.scrollWidth - tabsEl.clientWidth;\n setOverflowStart(tabsEl.scrollLeft > 1);\n setOverflowEnd(tabsEl.scrollLeft < max - 1);\n };\n\n const scroll = (scrollValue: number): void => {\n if (!tabsEl) return;\n animate(tabsEl, \"scrollLeft\", scrollValue, { duration: 300 });\n };\n\n const scrollByPage = (direction: -1 | 1): void => {\n if (!tabsEl) return;\n scroll(tabsEl.scrollLeft + direction * tabsEl.clientWidth * SCROLL_PAGE);\n };\n\n const scrollSelectedIntoView = (): void => {\n const { tabsMeta, tabMeta } = getTabsMeta();\n if (!tabMeta || !tabsMeta) return;\n if (tabMeta.left < tabsMeta.left) {\n scroll(tabsMeta.scrollLeft + (tabMeta.left - tabsMeta.left) - VIEW_NEXT_TAB_PX);\n } else if (tabMeta.right > tabsMeta.right) {\n scroll(tabsMeta.scrollLeft + (tabMeta.right - tabsMeta.right) + VIEW_NEXT_TAB_PX);\n }\n };\n\n onMount(() => setMounted(true));\n\n // Re-measure when the active value or the tabs change (and on mount).\n createEffect(on([() => local.value, items], () => updateIndicatorState()));\n\n // Keep the indicator and the overflow state in sync with resizes: of the\n // window, of the row, and of each tab (a label can grow with its data).\n onMount(() => {\n const onResize = debounce(() => {\n updateIndicatorState();\n updateOverflow();\n }, 166);\n const view = tabsEl?.ownerDocument.defaultView;\n view?.addEventListener(\"resize\", onResize);\n tabsEl?.addEventListener(\"scroll\", updateOverflow, { passive: true });\n let resizeObserver: ResizeObserver | undefined;\n if (typeof ResizeObserver !== \"undefined\" && tabListEl) {\n resizeObserver = new ResizeObserver(onResize);\n if (tabsEl) resizeObserver.observe(tabsEl);\n Array.from(tabListEl.children).forEach((child) => resizeObserver?.observe(child));\n }\n updateOverflow();\n onCleanup(() => {\n onResize.cancel();\n view?.removeEventListener(\"resize\", onResize);\n tabsEl?.removeEventListener(\"scroll\", updateOverflow);\n resizeObserver?.disconnect();\n });\n });\n\n // Scroll the selected tab into view when the indicator moves.\n createEffect(() => {\n indicatorStyle();\n scrollSelectedIntoView();\n });\n\n const contextValue: TabsContextValue = {\n value: () => local.value,\n onChange: local.onChange,\n registerTab: (element) => {\n const order = created++;\n return createMemo(() => {\n const list = items();\n if (!list) return order;\n const el = element();\n return el ? list.findIndex((item) => item.contains(el)) : -1;\n });\n },\n };\n\n const showScrollButtons = (): boolean => local.scrollable && local.scrollButtons && (overflowStart() || overflowEnd());\n\n return (\n <TabsContext.Provider value={contextValue}>\n <div\n {...rest}\n class={cn(\n \"smwb-tabs\",\n {\n \"smwb-tabs--dense\": local.dense,\n \"smwb-tabs--overflow-start\": overflowStart(),\n \"smwb-tabs--overflow-end\": overflowEnd(),\n },\n local.class\n )}\n role=\"tabpanel\"\n ref={mergeRefs(local.ref)}\n >\n <Show when={showScrollButtons()}>\n <button\n type=\"button\"\n class=\"smwb-tabs__scroll-button smwb-tabs__scroll-button--start\"\n aria-label={local.scrollBackAriaLabel}\n disabled={!overflowStart()}\n onClick={() => scrollByPage(-1)}\n >\n <Icon name=\"chevron_left\" size={20} />\n </button>\n </Show>\n {/* The scroller's class is static so it is on the element from the start:\n a ref on Tabs can find the row by class right away. */}\n <div\n class=\"smwb-tabs__scroller\"\n classList={{ \"smwb-tabs__scroller--scrollable\": local.scrollable }}\n ref={(el) => (tabsEl = el)}\n >\n <div class=\"smwb-tabs__scroll-area\" ref={(el) => (tabListEl = el)} role=\"tablist\" aria-label={local[\"aria-label\"]}>\n <TabListItems onItems={setItems}>{local.children}</TabListItems>\n </div>\n <Show when={mounted()}>\n <span\n class=\"smwb-tabs__indicator\"\n style={{\n left: `${indicatorStyle().root.left ?? 0}px`,\n width: `${indicatorStyle().root.width ?? 0}px`,\n }}\n >\n <span\n class=\"smwb-tabs__indicator-content\"\n style={indicatorStyle().content ? { width: `${indicatorStyle().content?.width ?? 0}px` } : {}}\n />\n </span>\n </Show>\n </div>\n <Show when={showScrollButtons()}>\n <button\n type=\"button\"\n class=\"smwb-tabs__scroll-button smwb-tabs__scroll-button--end\"\n aria-label={local.scrollForwardAriaLabel}\n disabled={!overflowEnd()}\n onClick={() => scrollByPage(1)}\n >\n <Icon name=\"chevron_right\" size={20} />\n </button>\n </Show>\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport { Tab };\nexport type { TabProps } from \"./tab/tab\";\nexport default Tabs;\n"],"names":["VIEW_NEXT_TAB_PX","SCROLL_PAGE","TabListItems","props","resolved","children","isServer","createComputed","onItems","toArray","filter","node","Element","_$memo","Tabs","merged","mergeProps","indicatorContent","scrollable","scrollButtons","dense","scrollBackAriaLabel","scrollForwardAriaLabel","local","rest","splitProps","mounted","setMounted","createSignal","indicatorStyle","setIndicatorStyle","root","overflowStart","setOverflowStart","overflowEnd","setOverflowEnd","tabsEl","tabListEl","items","setItems","created","getTabsMeta","tabsMeta","rect","getBoundingClientRect","clientWidth","scrollLeft","left","right","tabMeta","tabContentMeta","length","tab","value","querySelector","updateIndicatorState","startValue","next","width","content","prev","undefined","dStart","Math","abs","dSize","updateOverflow","max","scrollWidth","scroll","scrollValue","animate","duration","scrollByPage","direction","scrollSelectedIntoView","onMount","createEffect","on","onResize","debounce","view","ownerDocument","defaultView","addEventListener","passive","resizeObserver","ResizeObserver","observe","Array","from","forEach","child","onCleanup","cancel","removeEventListener","disconnect","contextValue","onChange","registerTab","element","order","createMemo","list","el","findIndex","item","contains","showScrollButtons","_$createComponent","TabsContext","Provider","_el$","_tmpl$4","_el$3","firstChild","_el$4","_ref$","mergeRefs","ref","_$use","_$spread","_$mergeProps","cn","class","_$insert","Show","when","_el$2","_tmpl$","$$click","Icon","name","size","_$effect","_p$","_v$","_v$2","e","_$setAttribute","t","disabled","_el$5","_tmpl$2","_el$6","_v$3","_v$4","_v$5","_$setStyleProperty","a","_$style","_el$7","_tmpl$3","_v$6","_v$7","_v$8","_v$9","classList","toggle","_$delegateEvents"],"mappings":"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"}
@@ -5,10 +5,12 @@ export interface TabsContextValue {
5
5
  currentTarget: HTMLElement;
6
6
  target: Element;
7
7
  }, index: number) => void;
8
- indicatorContent: boolean;
9
- /** Each Tab registers on setup to learn its index (in DOM order). */
10
- registerTab: () => number;
11
- setContentRef: (index: number, el: HTMLSpanElement) => void;
8
+ /**
9
+ * Each Tab registers on setup with its root element (set once it renders) and
10
+ * gets back its index: its position in the tab list, which follows the tab when
11
+ * tabs are added, removed or reordered.
12
+ */
13
+ registerTab: (element: Accessor<Element | undefined>) => Accessor<number>;
12
14
  }
13
15
  export declare const TabsContext: import("solid-js").Context<TabsContextValue | undefined>;
14
16
  export declare const useTabsContext: () => TabsContextValue | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"tabsContext.js","sources":["../../../../src/components/navigation/tabs/tabsContext.ts"],"sourcesContent":["import { type Accessor, createContext, useContext } from \"solid-js\";\n\nexport interface TabsContextValue {\n value: Accessor<number>;\n onChange: (event: MouseEvent & { currentTarget: HTMLElement; target: Element }, index: number) => void;\n indicatorContent: boolean;\n /** Each Tab registers on setup to learn its index (in DOM order). */\n registerTab: () => number;\n setContentRef: (index: number, el: HTMLSpanElement) => void;\n}\n\nexport const TabsContext = createContext<TabsContextValue>();\n\nexport const useTabsContext = (): TabsContextValue | undefined => useContext(TabsContext);\n"],"names":["TabsContext","createContext","useTabsContext","useContext"],"mappings":";AAWO,MAAMA,IAAcC,EAAA,GAEdC,IAAiB,MAAoCC,EAAWH,CAAW;"}
1
+ {"version":3,"file":"tabsContext.js","sources":["../../../../src/components/navigation/tabs/tabsContext.ts"],"sourcesContent":["import { type Accessor, createContext, useContext } from \"solid-js\";\n\nexport interface TabsContextValue {\n value: Accessor<number>;\n onChange: (event: MouseEvent & { currentTarget: HTMLElement; target: Element }, index: number) => void;\n /**\n * Each Tab registers on setup with its root element (set once it renders) and\n * gets back its index: its position in the tab list, which follows the tab when\n * tabs are added, removed or reordered.\n */\n registerTab: (element: Accessor<Element | undefined>) => Accessor<number>;\n}\n\nexport const TabsContext = createContext<TabsContextValue>();\n\nexport const useTabsContext = (): TabsContextValue | undefined => useContext(TabsContext);\n"],"names":["TabsContext","createContext","useTabsContext","useContext"],"mappings":";AAaO,MAAMA,IAAcC,EAAA,GAEdC,IAAiB,MAAoCC,EAAWH,CAAW;"}
@@ -1,5 +1,5 @@
1
1
  import { type JSX } from "solid-js";
2
- import { type ColumnDef, type Row, type RowData, type SortingState } from "@tanstack/solid-table";
2
+ import { type ColumnDef, type HeaderContext, type Row, type RowData, type SortingState } from "@tanstack/solid-table";
3
3
  import { type TableProps as SmwbTableProps } from "../../../components/dataDisplay/table";
4
4
  declare module "@tanstack/table-core" {
5
5
  interface ColumnMeta<TData extends RowData, TValue> {
@@ -7,10 +7,25 @@ declare module "@tanstack/table-core" {
7
7
  cellProps?: JSX.ThHTMLAttributes<HTMLTableCellElement>;
8
8
  /** The column's name on each cell when rows stack as cards (`stackBelow`); a string `header` is used by default. */
9
9
  label?: string;
10
+ /**
11
+ * The column's controls in its head cell, such as a filter field or a menu
12
+ * button. They go to the cell's `actions`, after the sort control and
13
+ * outside it, so they stay out of its accessible name, while `header` is
14
+ * drawn inside it. Whatever `flexRender` takes: a component that gets the
15
+ * header context (`{ column, header, table }`), as `header` does, or
16
+ * markup. Markup is made once, with the column definitions, so it is drawn
17
+ * in one head cell at a time; a component draws the controls anew in each.
18
+ */
19
+ headerActions?: JSX.Element | ((context: HeaderContext<TData, TValue>) => JSX.Element);
10
20
  }
11
21
  }
12
22
  export interface RtTableProps<TData extends RowData, TValue = unknown> extends SmwbTableProps {
13
23
  data: TData[];
24
+ /**
25
+ * TanStack column definitions. A column's `meta` may add `headerActions`
26
+ * (controls drawn beside the sort control in its head cell), `label` (its
27
+ * name on stacked rows) and `cellProps` (attributes of its body cells).
28
+ */
14
29
  columns: ColumnDef<TData, TValue>[];
15
30
  /** Enables the sort affordance in head cells and the sorted row model. */
16
31
  sortable?: boolean;
@@ -1,16 +1,17 @@
1
- import { use as $, spread as z, mergeProps as F, insert as M, effect as j, className as L, style as R, template as k } from "solid-js/web";
2
- import { mergeProps as q, splitProps as B, createSignal as d, onMount as G, createEffect as J, onCleanup as K } from "solid-js";
1
+ import { use as $, spread as z, mergeProps as F, insert as M, effect as L, className as R, style as j, template as k } from "solid-js/web";
2
+ import { mergeProps as q, splitProps as B, createSignal as p, onMount as G, createEffect as J, onCleanup as K } from "solid-js";
3
3
  import w from "clsx";
4
4
  import { mergeRefs as Q } from "../../../primitives/mergeRefs.js";
5
- var V = /* @__PURE__ */ k("<div><div>");
6
- const W = (e) => {
5
+ import { mergeStyle as V } from "../../../primitives/mergeStyle.js";
6
+ var W = /* @__PURE__ */ k("<div><div>");
7
+ const X = (e) => {
7
8
  const o = parseFloat(e);
8
9
  return !isNaN(o) && isFinite(o);
9
- }, E = (e) => typeof e == "string" && e[e.length - 1] === "%" && W(e.substring(0, e.length - 1)), A = (e, o) => {
10
+ }, E = (e) => typeof e == "string" && e[e.length - 1] === "%" && X(e.substring(0, e.length - 1)), b = (e, o) => {
10
11
  o === 0 && e?.style && (e.style.display = "none");
11
- }, X = (e, o) => {
12
+ }, Y = (e, o) => {
12
13
  o === 0 && e?.style && (e.style.display = "");
13
- }, Y = {
14
+ }, tt = {
14
15
  animating: "rah-animating",
15
16
  animatingUp: "rah-animating--up",
16
17
  animatingDown: "rah-animating--down",
@@ -26,8 +27,8 @@ const W = (e) => {
26
27
  [e.staticHeightZero]: o === 0,
27
28
  [e.staticHeightSpecific]: typeof o == "number" && o > 0,
28
29
  [e.staticHeightAuto]: o === "auto"
29
- }), tt = (e) => typeof e == "number" ? `${e}px` : e;
30
- function ot(e) {
30
+ }), et = (e) => typeof e == "number" ? `${e}px` : e;
31
+ function rt(e) {
31
32
  const o = q({
32
33
  animateOpacity: !1,
33
34
  applyInlineTransitions: !0,
@@ -35,58 +36,56 @@ function ot(e) {
35
36
  duration: 300,
36
37
  easing: "ease"
37
38
  }, e), [t, y] = B(o, ["animateOpacity", "animationStateClasses", "applyInlineTransitions", "children", "class", "contentClassName", "delay", "duration", "easing", "height", "onHeightAnimationEnd", "onHeightAnimationStart", "style", "ref"]), c = {
38
- ...Y,
39
+ ...tt,
39
40
  ...t.animationStateClasses
40
41
  };
41
42
  let s, r = t.height, f, H, l = t.height, v = "visible";
42
43
  typeof l == "number" ? (l = l < 0 ? 0 : l, v = "hidden") : E(l) && (l = l === "0%" ? 0 : l, v = "hidden");
43
- const [T, S] = d(l), [O, C] = d(v), [P, p] = d(!1), [_, b] = d(I(c, t.height));
44
- G(() => A(s, T())), J(() => {
45
- const i = t.height;
46
- if (i !== r && s) {
47
- X(s, r), s.style.overflow = "hidden";
44
+ const [T, S] = p(l), [O, C] = p(v), [P, d] = p(!1), [_, A] = p(I(c, t.height));
45
+ G(() => b(s, T())), J(() => {
46
+ const n = t.height;
47
+ if (n !== r && s) {
48
+ Y(s, r), s.style.overflow = "hidden";
48
49
  const m = s.offsetHeight;
49
50
  s.style.overflow = "";
50
51
  const u = t.duration + t.delay;
51
- let a, n, g = "hidden";
52
+ let a, i, g = "hidden";
52
53
  const h = r === "auto";
53
- typeof i == "number" ? (a = i < 0 ? 0 : i, n = a) : E(i) ? (a = i === "0%" ? 0 : i, n = a) : (a = m, n = "auto", g = void 0), h && (n = a, a = m);
54
+ typeof n == "number" ? (a = n < 0 ? 0 : n, i = a) : E(n) ? (a = n === "0%" ? 0 : n, i = a) : (a = m, i = "auto", g = void 0), h && (i = a, a = m);
54
55
  const x = w({
55
56
  [c.animating]: !0,
56
- [c.animatingUp]: r === "auto" || typeof r == "number" && typeof i == "number" && i < r,
57
- [c.animatingDown]: i === "auto" || typeof r == "number" && typeof i == "number" && i > r,
58
- [c.animatingToHeightZero]: n === 0,
59
- [c.animatingToHeightAuto]: n === "auto",
60
- [c.animatingToHeightSpecific]: typeof n == "number" && n > 0
61
- }), N = I(c, n);
62
- S(a), C("hidden"), p(!h), b(x), clearTimeout(f), clearTimeout(H), h ? (f = setTimeout(() => {
63
- S(n), C(g), p(!0), t.onHeightAnimationStart?.(n);
57
+ [c.animatingUp]: r === "auto" || typeof r == "number" && typeof n == "number" && n < r,
58
+ [c.animatingDown]: n === "auto" || typeof r == "number" && typeof n == "number" && n > r,
59
+ [c.animatingToHeightZero]: i === 0,
60
+ [c.animatingToHeightAuto]: i === "auto",
61
+ [c.animatingToHeightSpecific]: typeof i == "number" && i > 0
62
+ }), N = I(c, i);
63
+ S(a), C("hidden"), d(!h), A(x), clearTimeout(f), clearTimeout(H), h ? (f = setTimeout(() => {
64
+ S(i), C(g), d(!0), t.onHeightAnimationStart?.(i);
64
65
  }, 50), H = setTimeout(() => {
65
- p(!1), b(N), A(s, n), t.onHeightAnimationEnd?.(n);
66
+ d(!1), A(N), b(s, i), t.onHeightAnimationEnd?.(i);
66
67
  }, u)) : (t.onHeightAnimationStart?.(a), f = setTimeout(() => {
67
- S(n), C(g), p(!1), b(N), i !== "auto" && A(s, a), t.onHeightAnimationEnd?.(a);
68
+ S(i), C(g), d(!1), A(N), n !== "auto" && b(s, a), t.onHeightAnimationEnd?.(a);
68
69
  }, u));
69
70
  }
70
- r = i;
71
+ r = n;
71
72
  }), K(() => {
72
73
  clearTimeout(f), clearTimeout(H);
73
74
  });
74
- const Z = () => {
75
- const i = {
76
- ...typeof t.style == "object" && t.style ? t.style : {},
77
- height: tt(T()),
78
- overflow: O() ?? "visible"
79
- };
80
- return P() && t.applyInlineTransitions && (i.transition = `height ${t.duration}ms ${t.easing} ${t.delay}ms`), i;
81
- }, D = () => t.animateOpacity ? {
75
+ const Z = () => V(t.style, {
76
+ height: et(T()),
77
+ overflow: O() ?? "visible",
78
+ // Unset while not animating, so a transition the caller set stays.
79
+ transition: P() && t.applyInlineTransitions ? `height ${t.duration}ms ${t.easing} ${t.delay}ms` : void 0
80
+ }), D = () => t.animateOpacity ? {
82
81
  transition: `opacity ${t.duration}ms ${t.easing} ${t.delay}ms`,
83
82
  ...T() === 0 ? {
84
83
  opacity: 0
85
84
  } : {}
86
85
  } : {}, U = () => y["aria-hidden"] !== void 0 ? y["aria-hidden"] : t.height === 0;
87
86
  return (() => {
88
- var i = V(), m = i.firstChild, u = Q(t.ref);
89
- typeof u == "function" && $(u, i), z(i, F(y, {
87
+ var n = W(), m = n.firstChild, u = Q(t.ref);
88
+ typeof u == "function" && $(u, n), z(n, F(y, {
90
89
  get "aria-hidden"() {
91
90
  return U();
92
91
  },
@@ -98,16 +97,16 @@ function ot(e) {
98
97
  }
99
98
  }), !1, !0);
100
99
  var a = s;
101
- return typeof a == "function" ? $(a, m) : s = m, M(m, () => t.children), j((n) => {
100
+ return typeof a == "function" ? $(a, m) : s = m, M(m, () => t.children), L((i) => {
102
101
  var g = t.contentClassName, h = D();
103
- return g !== n.e && L(m, n.e = g), n.t = R(m, h, n.t), n;
102
+ return g !== i.e && R(m, i.e = g), i.t = j(m, h, i.t), i;
104
103
  }, {
105
104
  e: void 0,
106
105
  t: void 0
107
- }), i;
106
+ }), n;
108
107
  })();
109
108
  }
110
109
  export {
111
- ot as AnimateHeight
110
+ rt as AnimateHeight
112
111
  };
113
112
  //# sourceMappingURL=animateHeight.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animateHeight.js","sources":["../../../../../src/components/base/animateHeight/animateHeight.tsx"],"sourcesContent":["// Solid port of react-animate-height (MIT, © Stanko Tadić)\n// https://github.com/Stanko/react-animate-height\nimport { type JSX, type ParentProps, createEffect, createSignal, mergeProps, onCleanup, onMount, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport type Height = \"auto\" | number | `${number}%`;\ntype Overflow = \"auto\" | \"visible\" | \"hidden\" | undefined;\n\ninterface AnimationStateClasses {\n animating: string;\n animatingUp: string;\n animatingDown: string;\n animatingToHeightZero: string;\n animatingToHeightAuto: string;\n animatingToHeightSpecific: string;\n static: string;\n staticHeightZero: string;\n staticHeightAuto: string;\n staticHeightSpecific: string;\n}\n\nconst isNumberString = (n: string): boolean => {\n const number = parseFloat(n);\n return !isNaN(number) && isFinite(number);\n};\n\nconst isPercentage = (height: Height): height is `${number}%` =>\n typeof height === \"string\" && height[height.length - 1] === \"%\" && isNumberString(height.substring(0, height.length - 1));\n\nconst hideContent = (element: HTMLDivElement | undefined, height: Height): void => {\n if (height === 0 && element?.style) element.style.display = \"none\";\n};\nconst showContent = (element: HTMLDivElement | undefined, height: Height): void => {\n if (height === 0 && element?.style) element.style.display = \"\";\n};\n\nconst ANIMATION_STATE_CLASSES: AnimationStateClasses = {\n animating: \"rah-animating\",\n animatingUp: \"rah-animating--up\",\n animatingDown: \"rah-animating--down\",\n animatingToHeightZero: \"rah-animating--to-height-zero\",\n animatingToHeightAuto: \"rah-animating--to-height-auto\",\n animatingToHeightSpecific: \"rah-animating--to-height-specific\",\n static: \"rah-static\",\n staticHeightZero: \"rah-static--height-zero\",\n staticHeightAuto: \"rah-static--height-auto\",\n staticHeightSpecific: \"rah-static--height-specific\",\n};\n\nconst getStaticStateClasses = (s: AnimationStateClasses, height: Height): string =>\n cn({\n [s.static]: true,\n [s.staticHeightZero]: height === 0,\n [s.staticHeightSpecific]: typeof height === \"number\" && height > 0,\n [s.staticHeightAuto]: height === \"auto\",\n });\n\nconst toCssHeight = (height: Height): string => (typeof height === \"number\" ? `${height}px` : height);\n\nexport interface AnimateHeightProps extends JSX.HTMLAttributes<HTMLDivElement> {\n animateOpacity?: boolean;\n animationStateClasses?: Partial<AnimationStateClasses>;\n applyInlineTransitions?: boolean;\n contentClassName?: string;\n delay?: number;\n duration?: number;\n easing?: string;\n height: Height;\n onHeightAnimationEnd?: (newHeight: Height) => void;\n onHeightAnimationStart?: (newHeight: Height) => void;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport function AnimateHeight(props: ParentProps<AnimateHeightProps>): JSX.Element {\n const merged = mergeProps(\n { animateOpacity: false, applyInlineTransitions: true, delay: 0, duration: 300, easing: \"ease\" },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"animateOpacity\",\n \"animationStateClasses\",\n \"applyInlineTransitions\",\n \"children\",\n \"class\",\n \"contentClassName\",\n \"delay\",\n \"duration\",\n \"easing\",\n \"height\",\n \"onHeightAnimationEnd\",\n \"onHeightAnimationStart\",\n \"style\",\n \"ref\",\n ]);\n\n const stateClasses: AnimationStateClasses = { ...ANIMATION_STATE_CLASSES, ...local.animationStateClasses };\n\n let contentEl: HTMLDivElement | undefined;\n let prevHeight: Height = local.height;\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n let classesTimeoutId: ReturnType<typeof setTimeout> | undefined;\n\n let initHeight: Height = local.height;\n let initOverflow: Overflow = \"visible\";\n if (typeof initHeight === \"number\") {\n initHeight = initHeight < 0 ? 0 : initHeight;\n initOverflow = \"hidden\";\n } else if (isPercentage(initHeight)) {\n initHeight = initHeight === \"0%\" ? 0 : initHeight;\n initOverflow = \"hidden\";\n }\n\n const [currentHeight, setCurrentHeight] = createSignal<Height>(initHeight);\n const [overflow, setOverflow] = createSignal<Overflow>(initOverflow);\n const [useTransitions, setUseTransitions] = createSignal(false);\n const [stateClassNames, setStateClassNames] = createSignal(getStaticStateClasses(stateClasses, local.height));\n\n onMount(() => hideContent(contentEl, currentHeight()));\n\n createEffect(() => {\n const height = local.height;\n if (height !== prevHeight && contentEl) {\n showContent(contentEl, prevHeight);\n contentEl.style.overflow = \"hidden\";\n const contentHeight = contentEl.offsetHeight;\n contentEl.style.overflow = \"\";\n\n const totalDuration = local.duration + local.delay;\n let newHeight: Height;\n let timeoutHeight: Height;\n let timeoutOverflow: Overflow = \"hidden\";\n const isCurrentHeightAuto = prevHeight === \"auto\";\n\n if (typeof height === \"number\") {\n newHeight = height < 0 ? 0 : height;\n timeoutHeight = newHeight;\n } else if (isPercentage(height)) {\n newHeight = height === \"0%\" ? 0 : height;\n timeoutHeight = newHeight;\n } else {\n newHeight = contentHeight;\n timeoutHeight = \"auto\";\n timeoutOverflow = undefined;\n }\n\n if (isCurrentHeightAuto) {\n timeoutHeight = newHeight;\n newHeight = contentHeight;\n }\n\n const animatingClassNames = cn({\n [stateClasses.animating]: true,\n [stateClasses.animatingUp]:\n prevHeight === \"auto\" || (typeof prevHeight === \"number\" && typeof height === \"number\" && height < prevHeight),\n [stateClasses.animatingDown]:\n height === \"auto\" || (typeof prevHeight === \"number\" && typeof height === \"number\" && height > prevHeight),\n [stateClasses.animatingToHeightZero]: timeoutHeight === 0,\n [stateClasses.animatingToHeightAuto]: timeoutHeight === \"auto\",\n [stateClasses.animatingToHeightSpecific]: typeof timeoutHeight === \"number\" && timeoutHeight > 0,\n });\n const finalClassNames = getStaticStateClasses(stateClasses, timeoutHeight);\n\n setCurrentHeight(newHeight);\n setOverflow(\"hidden\");\n setUseTransitions(!isCurrentHeightAuto);\n setStateClassNames(animatingClassNames);\n\n clearTimeout(timeoutId);\n clearTimeout(classesTimeoutId);\n\n if (isCurrentHeightAuto) {\n timeoutId = setTimeout(() => {\n setCurrentHeight(timeoutHeight);\n setOverflow(timeoutOverflow);\n setUseTransitions(true);\n local.onHeightAnimationStart?.(timeoutHeight);\n }, 50);\n classesTimeoutId = setTimeout(() => {\n setUseTransitions(false);\n setStateClassNames(finalClassNames);\n hideContent(contentEl, timeoutHeight);\n local.onHeightAnimationEnd?.(timeoutHeight);\n }, totalDuration);\n } else {\n local.onHeightAnimationStart?.(newHeight);\n timeoutId = setTimeout(() => {\n setCurrentHeight(timeoutHeight);\n setOverflow(timeoutOverflow);\n setUseTransitions(false);\n setStateClassNames(finalClassNames);\n if (height !== \"auto\") hideContent(contentEl, newHeight);\n local.onHeightAnimationEnd?.(newHeight);\n }, totalDuration);\n }\n }\n prevHeight = height;\n });\n\n onCleanup(() => {\n clearTimeout(timeoutId);\n clearTimeout(classesTimeoutId);\n });\n\n const componentStyle = (): JSX.CSSProperties => {\n const base: JSX.CSSProperties = {\n ...(typeof local.style === \"object\" && local.style ? local.style : {}),\n height: toCssHeight(currentHeight()),\n overflow: overflow() ?? \"visible\",\n };\n if (useTransitions() && local.applyInlineTransitions) {\n base.transition = `height ${local.duration}ms ${local.easing} ${local.delay}ms`;\n }\n return base;\n };\n\n const contentStyle = (): JSX.CSSProperties => {\n if (!local.animateOpacity) return {};\n return {\n transition: `opacity ${local.duration}ms ${local.easing} ${local.delay}ms`,\n ...(currentHeight() === 0 ? { opacity: 0 } : {}),\n };\n };\n\n const ariaHidden = (): boolean | undefined =>\n rest[\"aria-hidden\"] !== undefined ? (rest[\"aria-hidden\"] as boolean) : local.height === 0;\n\n return (\n <div {...rest} ref={mergeRefs(local.ref)} aria-hidden={ariaHidden()} class={cn(stateClassNames(), local.class)} style={componentStyle()}>\n <div class={local.contentClassName} style={contentStyle()} ref={contentEl}>\n {local.children}\n </div>\n </div>\n );\n}\n\nexport default AnimateHeight;\n"],"names":["isNumberString","n","number","parseFloat","isNaN","isFinite","isPercentage","height","length","substring","hideContent","element","style","display","showContent","ANIMATION_STATE_CLASSES","animating","animatingUp","animatingDown","animatingToHeightZero","animatingToHeightAuto","animatingToHeightSpecific","static","staticHeightZero","staticHeightAuto","staticHeightSpecific","getStaticStateClasses","s","cn","toCssHeight","AnimateHeight","props","merged","mergeProps","animateOpacity","applyInlineTransitions","delay","duration","easing","local","rest","splitProps","stateClasses","animationStateClasses","contentEl","prevHeight","timeoutId","classesTimeoutId","initHeight","initOverflow","currentHeight","setCurrentHeight","createSignal","overflow","setOverflow","useTransitions","setUseTransitions","stateClassNames","setStateClassNames","onMount","createEffect","contentHeight","offsetHeight","totalDuration","newHeight","timeoutHeight","timeoutOverflow","isCurrentHeightAuto","undefined","animatingClassNames","finalClassNames","clearTimeout","setTimeout","onHeightAnimationStart","onHeightAnimationEnd","onCleanup","componentStyle","base","transition","contentStyle","opacity","ariaHidden","_el$","_tmpl$","_el$2","firstChild","_ref$","mergeRefs","ref","_$use","_$spread","_$mergeProps","class","_ref$2","_$insert","children","_$effect","_p$","_v$","contentClassName","_v$2","e","_$className","t","_$style"],"mappings":"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"}
1
+ {"version":3,"file":"animateHeight.js","sources":["../../../../../src/components/base/animateHeight/animateHeight.tsx"],"sourcesContent":["// Solid port of react-animate-height (MIT, © Stanko Tadić)\n// https://github.com/Stanko/react-animate-height\nimport { type JSX, type ParentProps, createEffect, createSignal, mergeProps, onCleanup, onMount, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { mergeStyle } from \"../../../primitives/mergeStyle\";\n\nexport type Height = \"auto\" | number | `${number}%`;\ntype Overflow = \"auto\" | \"visible\" | \"hidden\" | undefined;\n\ninterface AnimationStateClasses {\n animating: string;\n animatingUp: string;\n animatingDown: string;\n animatingToHeightZero: string;\n animatingToHeightAuto: string;\n animatingToHeightSpecific: string;\n static: string;\n staticHeightZero: string;\n staticHeightAuto: string;\n staticHeightSpecific: string;\n}\n\nconst isNumberString = (n: string): boolean => {\n const number = parseFloat(n);\n return !isNaN(number) && isFinite(number);\n};\n\nconst isPercentage = (height: Height): height is `${number}%` =>\n typeof height === \"string\" && height[height.length - 1] === \"%\" && isNumberString(height.substring(0, height.length - 1));\n\nconst hideContent = (element: HTMLDivElement | undefined, height: Height): void => {\n if (height === 0 && element?.style) element.style.display = \"none\";\n};\nconst showContent = (element: HTMLDivElement | undefined, height: Height): void => {\n if (height === 0 && element?.style) element.style.display = \"\";\n};\n\nconst ANIMATION_STATE_CLASSES: AnimationStateClasses = {\n animating: \"rah-animating\",\n animatingUp: \"rah-animating--up\",\n animatingDown: \"rah-animating--down\",\n animatingToHeightZero: \"rah-animating--to-height-zero\",\n animatingToHeightAuto: \"rah-animating--to-height-auto\",\n animatingToHeightSpecific: \"rah-animating--to-height-specific\",\n static: \"rah-static\",\n staticHeightZero: \"rah-static--height-zero\",\n staticHeightAuto: \"rah-static--height-auto\",\n staticHeightSpecific: \"rah-static--height-specific\",\n};\n\nconst getStaticStateClasses = (s: AnimationStateClasses, height: Height): string =>\n cn({\n [s.static]: true,\n [s.staticHeightZero]: height === 0,\n [s.staticHeightSpecific]: typeof height === \"number\" && height > 0,\n [s.staticHeightAuto]: height === \"auto\",\n });\n\nconst toCssHeight = (height: Height): string => (typeof height === \"number\" ? `${height}px` : height);\n\nexport interface AnimateHeightProps extends JSX.HTMLAttributes<HTMLDivElement> {\n animateOpacity?: boolean;\n animationStateClasses?: Partial<AnimationStateClasses>;\n applyInlineTransitions?: boolean;\n contentClassName?: string;\n delay?: number;\n duration?: number;\n easing?: string;\n height: Height;\n onHeightAnimationEnd?: (newHeight: Height) => void;\n onHeightAnimationStart?: (newHeight: Height) => void;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport function AnimateHeight(props: ParentProps<AnimateHeightProps>): JSX.Element {\n const merged = mergeProps(\n { animateOpacity: false, applyInlineTransitions: true, delay: 0, duration: 300, easing: \"ease\" },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"animateOpacity\",\n \"animationStateClasses\",\n \"applyInlineTransitions\",\n \"children\",\n \"class\",\n \"contentClassName\",\n \"delay\",\n \"duration\",\n \"easing\",\n \"height\",\n \"onHeightAnimationEnd\",\n \"onHeightAnimationStart\",\n \"style\",\n \"ref\",\n ]);\n\n const stateClasses: AnimationStateClasses = { ...ANIMATION_STATE_CLASSES, ...local.animationStateClasses };\n\n let contentEl: HTMLDivElement | undefined;\n let prevHeight: Height = local.height;\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n let classesTimeoutId: ReturnType<typeof setTimeout> | undefined;\n\n let initHeight: Height = local.height;\n let initOverflow: Overflow = \"visible\";\n if (typeof initHeight === \"number\") {\n initHeight = initHeight < 0 ? 0 : initHeight;\n initOverflow = \"hidden\";\n } else if (isPercentage(initHeight)) {\n initHeight = initHeight === \"0%\" ? 0 : initHeight;\n initOverflow = \"hidden\";\n }\n\n const [currentHeight, setCurrentHeight] = createSignal<Height>(initHeight);\n const [overflow, setOverflow] = createSignal<Overflow>(initOverflow);\n const [useTransitions, setUseTransitions] = createSignal(false);\n const [stateClassNames, setStateClassNames] = createSignal(getStaticStateClasses(stateClasses, local.height));\n\n onMount(() => hideContent(contentEl, currentHeight()));\n\n createEffect(() => {\n const height = local.height;\n if (height !== prevHeight && contentEl) {\n showContent(contentEl, prevHeight);\n contentEl.style.overflow = \"hidden\";\n const contentHeight = contentEl.offsetHeight;\n contentEl.style.overflow = \"\";\n\n const totalDuration = local.duration + local.delay;\n let newHeight: Height;\n let timeoutHeight: Height;\n let timeoutOverflow: Overflow = \"hidden\";\n const isCurrentHeightAuto = prevHeight === \"auto\";\n\n if (typeof height === \"number\") {\n newHeight = height < 0 ? 0 : height;\n timeoutHeight = newHeight;\n } else if (isPercentage(height)) {\n newHeight = height === \"0%\" ? 0 : height;\n timeoutHeight = newHeight;\n } else {\n newHeight = contentHeight;\n timeoutHeight = \"auto\";\n timeoutOverflow = undefined;\n }\n\n if (isCurrentHeightAuto) {\n timeoutHeight = newHeight;\n newHeight = contentHeight;\n }\n\n const animatingClassNames = cn({\n [stateClasses.animating]: true,\n [stateClasses.animatingUp]:\n prevHeight === \"auto\" || (typeof prevHeight === \"number\" && typeof height === \"number\" && height < prevHeight),\n [stateClasses.animatingDown]:\n height === \"auto\" || (typeof prevHeight === \"number\" && typeof height === \"number\" && height > prevHeight),\n [stateClasses.animatingToHeightZero]: timeoutHeight === 0,\n [stateClasses.animatingToHeightAuto]: timeoutHeight === \"auto\",\n [stateClasses.animatingToHeightSpecific]: typeof timeoutHeight === \"number\" && timeoutHeight > 0,\n });\n const finalClassNames = getStaticStateClasses(stateClasses, timeoutHeight);\n\n setCurrentHeight(newHeight);\n setOverflow(\"hidden\");\n setUseTransitions(!isCurrentHeightAuto);\n setStateClassNames(animatingClassNames);\n\n clearTimeout(timeoutId);\n clearTimeout(classesTimeoutId);\n\n if (isCurrentHeightAuto) {\n timeoutId = setTimeout(() => {\n setCurrentHeight(timeoutHeight);\n setOverflow(timeoutOverflow);\n setUseTransitions(true);\n local.onHeightAnimationStart?.(timeoutHeight);\n }, 50);\n classesTimeoutId = setTimeout(() => {\n setUseTransitions(false);\n setStateClassNames(finalClassNames);\n hideContent(contentEl, timeoutHeight);\n local.onHeightAnimationEnd?.(timeoutHeight);\n }, totalDuration);\n } else {\n local.onHeightAnimationStart?.(newHeight);\n timeoutId = setTimeout(() => {\n setCurrentHeight(timeoutHeight);\n setOverflow(timeoutOverflow);\n setUseTransitions(false);\n setStateClassNames(finalClassNames);\n if (height !== \"auto\") hideContent(contentEl, newHeight);\n local.onHeightAnimationEnd?.(newHeight);\n }, totalDuration);\n }\n }\n prevHeight = height;\n });\n\n onCleanup(() => {\n clearTimeout(timeoutId);\n clearTimeout(classesTimeoutId);\n });\n\n const componentStyle = (): JSX.CSSProperties | string | undefined =>\n mergeStyle(local.style, {\n height: toCssHeight(currentHeight()),\n overflow: overflow() ?? \"visible\",\n // Unset while not animating, so a transition the caller set stays.\n transition:\n useTransitions() && local.applyInlineTransitions\n ? `height ${local.duration}ms ${local.easing} ${local.delay}ms`\n : undefined,\n });\n\n const contentStyle = (): JSX.CSSProperties => {\n if (!local.animateOpacity) return {};\n return {\n transition: `opacity ${local.duration}ms ${local.easing} ${local.delay}ms`,\n ...(currentHeight() === 0 ? { opacity: 0 } : {}),\n };\n };\n\n const ariaHidden = (): boolean | undefined =>\n rest[\"aria-hidden\"] !== undefined ? (rest[\"aria-hidden\"] as boolean) : local.height === 0;\n\n return (\n <div {...rest} ref={mergeRefs(local.ref)} aria-hidden={ariaHidden()} class={cn(stateClassNames(), local.class)} style={componentStyle()}>\n <div class={local.contentClassName} style={contentStyle()} ref={contentEl}>\n {local.children}\n </div>\n </div>\n );\n}\n\nexport default AnimateHeight;\n"],"names":["isNumberString","n","number","parseFloat","isNaN","isFinite","isPercentage","height","length","substring","hideContent","element","style","display","showContent","ANIMATION_STATE_CLASSES","animating","animatingUp","animatingDown","animatingToHeightZero","animatingToHeightAuto","animatingToHeightSpecific","static","staticHeightZero","staticHeightAuto","staticHeightSpecific","getStaticStateClasses","s","cn","toCssHeight","AnimateHeight","props","merged","mergeProps","animateOpacity","applyInlineTransitions","delay","duration","easing","local","rest","splitProps","stateClasses","animationStateClasses","contentEl","prevHeight","timeoutId","classesTimeoutId","initHeight","initOverflow","currentHeight","setCurrentHeight","createSignal","overflow","setOverflow","useTransitions","setUseTransitions","stateClassNames","setStateClassNames","onMount","createEffect","contentHeight","offsetHeight","totalDuration","newHeight","timeoutHeight","timeoutOverflow","isCurrentHeightAuto","undefined","animatingClassNames","finalClassNames","clearTimeout","setTimeout","onHeightAnimationStart","onHeightAnimationEnd","onCleanup","componentStyle","mergeStyle","transition","contentStyle","opacity","ariaHidden","_el$","_tmpl$","_el$2","firstChild","_ref$","mergeRefs","ref","_$use","_$spread","_$mergeProps","class","_ref$2","_$insert","children","_$effect","_p$","_v$","contentClassName","_v$2","e","_$className","t","_$style"],"mappings":"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"}
@@ -1,75 +1,75 @@
1
- import { use as j, spread as L, mergeProps as R, insert as b, memo as A, effect as h, setStyleProperty as a, setAttribute as $, template as c } from "solid-js/web";
2
- import { mergeProps as B, splitProps as T, useContext as D } from "solid-js";
3
- import E from "clsx";
4
- import { mergeRefs as F } from "../../../primitives/mergeRefs.js";
1
+ import { use as L, spread as O, mergeProps as R, insert as y, memo as j, effect as $, setStyleProperty as c, setAttribute as _, template as m } from "solid-js/web";
2
+ import { mergeProps as A, splitProps as B, useContext as T } from "solid-js";
3
+ import D from "clsx";
4
+ import { mergeRefs as E } from "../../../primitives/mergeRefs.js";
5
+ import { mergeStyle as F } from "../../../primitives/mergeStyle.js";
5
6
  import { getIcon as G } from "../../../icons/registry.js";
6
- import { getIconConfig as x } from "../../../icons/config.js";
7
+ import { getIconConfig as z } from "../../../icons/config.js";
7
8
  import { IconContext as H, createIconVersion as K } from "./iconProvider.js";
8
- var N = /* @__PURE__ */ c("<span>"), V = /* @__PURE__ */ c("<span class=material-symbols-outlined>"), W = /* @__PURE__ */ c("<svg class=smwb-icon__svg fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round aria-hidden=true>");
9
- const q = ["primary", "secondary", "error", "success", "warning", "info", "disabled"], _ = /* @__PURE__ */ new Set();
10
- function J(s) {
11
- !x().warnOnMissing || _.has(s) || (_.add(s), console.warn(`[smwb] Icon "${s}" is not registered. Register it (import { ${s} } from "@smwb/ui-solid/icons") or use source="auto" to fall back to Material Symbols.`));
9
+ var N = /* @__PURE__ */ m("<span>"), V = /* @__PURE__ */ m("<span class=material-symbols-outlined>"), W = /* @__PURE__ */ m("<svg class=smwb-icon__svg fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round aria-hidden=true>");
10
+ const q = ["primary", "secondary", "error", "success", "warning", "info", "disabled"], x = /* @__PURE__ */ new Set();
11
+ function J(i) {
12
+ !z().warnOnMissing || x.has(i) || (x.add(i), console.warn(`[smwb] Icon "${i}" is not registered. Register it (import { ${i} } from "@smwb/ui-solid/icons") or use source="auto" to fall back to Material Symbols.`));
12
13
  }
13
- function oe(s) {
14
- const z = B({
14
+ function oe(i) {
15
+ const I = A({
15
16
  weight: 400,
16
17
  fill: 0,
17
18
  size: 20,
18
19
  grade: 100,
19
20
  color: "inherit"
20
- }, s), [e, I] = T(z, ["class", "weight", "fill", "size", "grade", "name", "color", "title", "style", "source", "ref"]), M = D(H), m = K(), k = () => (m(), e.source ?? M?.source ?? x().source), n = () => (m(), typeof e.name == "object" ? e.name : G(e.name)), u = () => typeof e.name == "string" ? e.name : e.name.name, i = () => {
21
- const r = k();
22
- return r === "google" ? "google" : n() ? "smwb" : r === "smwb" ? (J(u()), "missing") : "google";
23
- }, g = () => e.title === void 0, C = () => typeof e.color == "string" && q.includes(e.color) ? `smwb-icon_color-${e.color}` : void 0, O = () => typeof e.style == "object" && e.style ? e.style : {}, l = () => typeof e.size == "number" ? `${e.size}px` : e.size, P = () => Math.round(Math.min(3, Math.max(1, e.weight / 200)) * 100) / 100;
21
+ }, i), [e, n] = B(I, ["class", "weight", "fill", "size", "grade", "name", "color", "title", "style", "source", "ref", "data-testid"]), M = T(H), g = K(), k = () => (g(), e.source ?? M?.source ?? z().source), s = () => (g(), typeof e.name == "object" ? e.name : G(e.name)), u = () => typeof e.name == "string" ? e.name : e.name.name, a = () => {
22
+ const o = k();
23
+ return o === "google" ? "google" : s() ? "smwb" : o === "smwb" ? (J(u()), "missing") : "google";
24
+ }, d = () => !(e.title || n["aria-label"] || n["aria-labelledby"]), C = () => typeof e.color == "string" && q.includes(e.color) ? `smwb-icon_color-${e.color}` : void 0, l = () => typeof e.size == "number" ? `${e.size}px` : e.size, S = () => Math.round(Math.min(3, Math.max(1, e.weight / 200)) * 100) / 100;
24
25
  return (() => {
25
- var r = N(), d = F(e.ref);
26
- return typeof d == "function" && j(d, r), L(r, R(I, {
27
- "data-testid": "icon",
26
+ var o = N(), f = E(e.ref);
27
+ return typeof f == "function" && L(f, o), O(o, R(n, {
28
+ get "data-testid"() {
29
+ return e["data-testid"] ?? "icon";
30
+ },
28
31
  get "data-icon-source"() {
29
- return i();
32
+ return a();
30
33
  },
31
34
  get role() {
32
- return g() ? void 0 : "img";
35
+ return n.role ?? (d() ? void 0 : "img");
33
36
  },
34
37
  get "aria-hidden"() {
35
- return g() ? !0 : void 0;
38
+ return d() ? !0 : void 0;
36
39
  },
37
40
  get "aria-label"() {
38
- return e.title;
41
+ return e.title || n["aria-label"];
39
42
  },
40
43
  get title() {
41
44
  return e.title;
42
45
  },
43
46
  get style() {
44
- return {
45
- ...O(),
46
- ...i() === "google" ? {
47
- "font-variation-settings": `'FILL' ${e.fill}, 'wght' ${e.weight}, 'GRAD' ${e.grade}, 'opsz' 48`
48
- } : null
49
- };
47
+ return F(e.style, {
48
+ "font-variation-settings": a() === "google" ? `'FILL' ${e.fill}, 'wght' ${e.weight}, 'GRAD' ${e.grade}, 'opsz' 48` : void 0
49
+ });
50
50
  },
51
51
  get class() {
52
- return E("smwb-icon__wrapper", C(), e.class);
52
+ return D("smwb-icon__wrapper", C(), e.class);
53
53
  }
54
- }), !1, !0), b(r, (() => {
55
- var S = A(() => i() === "google");
56
- return () => S() ? (() => {
57
- var o = V();
58
- return b(o, u), h((t) => a(o, "font-size", l())), o;
54
+ }), !1, !0), y(o, (() => {
55
+ var P = j(() => a() === "google");
56
+ return () => P() ? (() => {
57
+ var r = V();
58
+ return y(r, u), $((t) => c(r, "font-size", l())), r;
59
59
  })() : (() => {
60
- var o = W();
61
- return h((t) => {
62
- var f = n()?.viewBox ?? "0 0 24 24", v = l(), p = l(), w = P(), y = n()?.body ?? "";
63
- return f !== t.e && $(o, "viewBox", t.e = f), v !== t.t && a(o, "width", t.t = v), p !== t.a && a(o, "height", t.a = p), w !== t.o && $(o, "stroke-width", t.o = w), y !== t.i && (o.innerHTML = t.i = y), t;
60
+ var r = W();
61
+ return $((t) => {
62
+ var v = s()?.viewBox ?? "0 0 24 24", p = l(), w = l(), b = S(), h = s()?.body ?? "";
63
+ return v !== t.e && _(r, "viewBox", t.e = v), p !== t.t && c(r, "width", t.t = p), w !== t.a && c(r, "height", t.a = w), b !== t.o && _(r, "stroke-width", t.o = b), h !== t.i && (r.innerHTML = t.i = h), t;
64
64
  }, {
65
65
  e: void 0,
66
66
  t: void 0,
67
67
  a: void 0,
68
68
  o: void 0,
69
69
  i: void 0
70
- }), o;
70
+ }), r;
71
71
  })();
72
- })()), r;
72
+ })()), o;
73
73
  })();
74
74
  }
75
75
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sources":["../../../../../src/components/base/icon/icon.tsx"],"sourcesContent":["/* eslint-disable solid/no-innerhtml -- icon bodies are static SVG geometry\n generated from icons/data into src/icons/svg; nothing user-supplied reaches\n this attribute, and an <svg> assembled from JSX children cannot be handed to\n a consumer as plain data. */\nimport { type JSX, mergeProps, splitProps, useContext } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { getIcon } from \"../../../icons/registry\";\nimport { getIconConfig } from \"../../../icons/config\";\nimport type { IconDefinition, IconSource } from \"../../../icons/types\";\nimport { createIconVersion, IconContext } from \"./iconProvider\";\n\nexport type IconColor = \"inherit\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\" | \"disabled\";\n\nconst COLOR_TOKENS: ReadonlyArray<string> = [\n \"primary\",\n \"secondary\",\n \"error\",\n \"success\",\n \"warning\",\n \"info\",\n \"disabled\",\n];\n\nconst warned = new Set<string>();\n\nfunction warnMissing(name: string): void {\n if (!getIconConfig().warnOnMissing || warned.has(name)) return;\n warned.add(name);\n console.warn(\n `[smwb] Icon \"${name}\" is not registered. Register it (import { ${name} } from \"@smwb/ui-solid/icons\") ` +\n `or use source=\"auto\" to fall back to Material Symbols.`\n );\n}\n\nexport interface IconProps extends JSX.HTMLAttributes<HTMLSpanElement> {\n /**\n * Icon name — the Google Material Symbols name, e.g. `\"arrow_right_alt\"`.\n * Lookup is forgiving: `arrowRightAlt` and `arrow-right-alt` resolve too, as\n * do an icon's aliases.\n *\n * An {@link IconDefinition} may be passed instead, which skips the registry\n * entirely and is the most bundle-friendly form:\n *\n * ```tsx\n * import { arrowRightAlt } from \"@smwb/ui-solid/icons\";\n * <Icon name={arrowRightAlt} />\n * ```\n */\n name: string | IconDefinition;\n /**\n * Material Symbols weight axis (100-700). For the smwb SVG set it maps to the\n * stroke width: 400 → 2px, 700 → 3px, 100 → 1px.\n */\n weight?: number;\n /** Material Symbols FILL axis. Not used by the smwb SVG set (it is a contour set). */\n fill?: 0 | 1;\n /** Pixel number or any CSS length (e.g. \"1.5rem\"). */\n size?: number | string;\n /** Material Symbols GRAD axis. Not used by the smwb SVG set. */\n grade?: number;\n /**\n * Semantic color token; `inherit` (default) keeps the text color. Any string\n * is accepted for backward compatibility, but only known {@link IconColor}\n * tokens emit a color class.\n */\n color?: IconColor | (string & {});\n /**\n * Accessible name. When provided the icon is exposed as `role=\"img\"`;\n * otherwise it is `aria-hidden` (decorative).\n */\n title?: string;\n /** Overrides the icon source for this icon only. See {@link IconSource}. */\n source?: IconSource;\n ref?: Ref<HTMLSpanElement>;\n}\n\nexport function Icon(props: IconProps): JSX.Element {\n const merged = mergeProps(\n { weight: 400, fill: 0 as 0 | 1, size: 20 as number | string, grade: 100, color: \"inherit\" as IconProps[\"color\"] },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"weight\",\n \"fill\",\n \"size\",\n \"grade\",\n \"name\",\n \"color\",\n \"title\",\n \"style\",\n \"source\",\n \"ref\",\n ]);\n\n const context = useContext(IconContext);\n // Re-reads the registry when icons are registered late (lazy chunks, HMR).\n const version = createIconVersion();\n\n const source = (): IconSource => {\n version();\n return local.source ?? context?.source ?? getIconConfig().source;\n };\n const definition = (): IconDefinition | undefined => {\n version();\n return typeof local.name === \"object\" ? local.name : getIcon(local.name);\n };\n const glyph = (): string => (typeof local.name === \"string\" ? local.name : local.name.name);\n\n const mode = (): \"google\" | \"smwb\" | \"missing\" => {\n const resolved = source();\n if (resolved === \"google\") return \"google\";\n if (definition()) return \"smwb\";\n if (resolved === \"smwb\") {\n warnMissing(glyph());\n return \"missing\";\n }\n return \"google\";\n };\n\n const decorative = (): boolean => local.title === undefined;\n const colorClass = (): string | undefined =>\n typeof local.color === \"string\" && COLOR_TOKENS.includes(local.color) ? `smwb-icon_color-${local.color}` : undefined;\n const styleObject = (): JSX.CSSProperties => (typeof local.style === \"object\" && local.style ? local.style : {});\n const cssSize = (): string => (typeof local.size === \"number\" ? `${local.size}px` : local.size);\n const strokeWidth = (): number => Math.round(Math.min(3, Math.max(1, local.weight / 200)) * 100) / 100;\n\n return (\n <span\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"icon\"\n data-icon-source={mode()}\n role={decorative() ? undefined : \"img\"}\n aria-hidden={decorative() ? true : undefined}\n aria-label={local.title}\n title={local.title}\n style={{\n ...styleObject(),\n ...(mode() === \"google\"\n ? {\n \"font-variation-settings\": `'FILL' ${local.fill}, 'wght' ${local.weight}, 'GRAD' ${local.grade}, 'opsz' 48`,\n }\n : null),\n }}\n class={cn(\"smwb-icon__wrapper\", colorClass(), local.class)}\n >\n {mode() === \"google\" ? (\n <span class=\"material-symbols-outlined\" style={{ \"font-size\": cssSize() }}>\n {glyph()}\n </span>\n ) : (\n <svg\n class=\"smwb-icon__svg\"\n viewBox={definition()?.viewBox ?? \"0 0 24 24\"}\n style={{ width: cssSize(), height: cssSize() }}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width={strokeWidth()}\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n innerHTML={definition()?.body ?? \"\"}\n />\n )}\n </span>\n );\n}\n\nexport default Icon;\n"],"names":["COLOR_TOKENS","warned","Set","warnMissing","name","getIconConfig","warnOnMissing","has","add","console","warn","Icon","props","merged","mergeProps","weight","fill","size","grade","color","local","rest","splitProps","context","useContext","IconContext","version","createIconVersion","source","definition","getIcon","glyph","mode","resolved","decorative","title","undefined","colorClass","includes","styleObject","style","cssSize","strokeWidth","Math","round","min","max","_el$","_tmpl$","_ref$","mergeRefs","ref","_$use","_$spread","_$mergeProps","role","cn","class","_$insert","_c$","_$memo","_el$2","_tmpl$2","_$effect","_$p","_$setStyleProperty","_el$3","_tmpl$3","_p$","_v$","viewBox","_v$2","_v$3","_v$4","_v$5","body","e","_$setAttribute","t","a","o","i","innerHTML"],"mappings":"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"}
1
+ {"version":3,"file":"icon.js","sources":["../../../../../src/components/base/icon/icon.tsx"],"sourcesContent":["/* eslint-disable solid/no-innerhtml -- icon bodies are static SVG geometry\n generated from icons/data into src/icons/svg; nothing user-supplied reaches\n this attribute, and an <svg> assembled from JSX children cannot be handed to\n a consumer as plain data. */\nimport { type JSX, mergeProps, splitProps, useContext } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { mergeStyle } from \"../../../primitives/mergeStyle\";\nimport { getIcon } from \"../../../icons/registry\";\nimport { getIconConfig } from \"../../../icons/config\";\nimport type { IconDefinition, IconSource } from \"../../../icons/types\";\nimport { createIconVersion, IconContext } from \"./iconProvider\";\n\nexport type IconColor = \"inherit\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\" | \"disabled\";\n\nconst COLOR_TOKENS: ReadonlyArray<string> = [\n \"primary\",\n \"secondary\",\n \"error\",\n \"success\",\n \"warning\",\n \"info\",\n \"disabled\",\n];\n\nconst warned = new Set<string>();\n\nfunction warnMissing(name: string): void {\n if (!getIconConfig().warnOnMissing || warned.has(name)) return;\n warned.add(name);\n console.warn(\n `[smwb] Icon \"${name}\" is not registered. Register it (import { ${name} } from \"@smwb/ui-solid/icons\") ` +\n `or use source=\"auto\" to fall back to Material Symbols.`\n );\n}\n\nexport interface IconProps extends JSX.HTMLAttributes<HTMLSpanElement> {\n /**\n * Icon name — the Google Material Symbols name, e.g. `\"arrow_right_alt\"`.\n * Lookup is forgiving: `arrowRightAlt` and `arrow-right-alt` resolve too, as\n * do an icon's aliases.\n *\n * An {@link IconDefinition} may be passed instead, which skips the registry\n * entirely and is the most bundle-friendly form:\n *\n * ```tsx\n * import { arrowRightAlt } from \"@smwb/ui-solid/icons\";\n * <Icon name={arrowRightAlt} />\n * ```\n */\n name: string | IconDefinition;\n /**\n * Material Symbols weight axis (100-700). For the smwb SVG set it maps to the\n * stroke width: 400 → 2px, 700 → 3px, 100 → 1px.\n */\n weight?: number;\n /** Material Symbols FILL axis. Not used by the smwb SVG set (it is a contour set). */\n fill?: 0 | 1;\n /** Pixel number or any CSS length (e.g. \"1.5rem\"). */\n size?: number | string;\n /** Material Symbols GRAD axis. Not used by the smwb SVG set. */\n grade?: number;\n /**\n * Semantic color token; `inherit` (default) keeps the text color. Any string\n * is accepted for backward compatibility, but only known {@link IconColor}\n * tokens emit a color class.\n */\n color?: IconColor | (string & {});\n /**\n * Accessible name, also shown as a tooltip. A non-empty `title`,\n * `aria-label` or `aria-labelledby` names the icon: it is exposed as\n * `role=\"img\"`, or with the `role` you pass. Without any of them the icon is\n * decorative and `aria-hidden`.\n */\n title?: string;\n /** Overrides the icon source for this icon only. See {@link IconSource}. */\n source?: IconSource;\n /** Test id of the root `<span>`; `icon` unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLSpanElement>;\n}\n\nexport function Icon(props: IconProps): JSX.Element {\n const merged = mergeProps(\n { weight: 400, fill: 0 as 0 | 1, size: 20 as number | string, grade: 100, color: \"inherit\" as IconProps[\"color\"] },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"weight\",\n \"fill\",\n \"size\",\n \"grade\",\n \"name\",\n \"color\",\n \"title\",\n \"style\",\n \"source\",\n \"ref\",\n \"data-testid\",\n ]);\n\n const context = useContext(IconContext);\n // Re-reads the registry when icons are registered late (lazy chunks, HMR).\n const version = createIconVersion();\n\n const source = (): IconSource => {\n version();\n return local.source ?? context?.source ?? getIconConfig().source;\n };\n const definition = (): IconDefinition | undefined => {\n version();\n return typeof local.name === \"object\" ? local.name : getIcon(local.name);\n };\n const glyph = (): string => (typeof local.name === \"string\" ? local.name : local.name.name);\n\n const mode = (): \"google\" | \"smwb\" | \"missing\" => {\n const resolved = source();\n if (resolved === \"google\") return \"google\";\n if (definition()) return \"smwb\";\n if (resolved === \"smwb\") {\n warnMissing(glyph());\n return \"missing\";\n }\n return \"google\";\n };\n\n const decorative = (): boolean => !(local.title || rest[\"aria-label\"] || rest[\"aria-labelledby\"]);\n const colorClass = (): string | undefined =>\n typeof local.color === \"string\" && COLOR_TOKENS.includes(local.color) ? `smwb-icon_color-${local.color}` : undefined;\n const cssSize = (): string => (typeof local.size === \"number\" ? `${local.size}px` : local.size);\n const strokeWidth = (): number => Math.round(Math.min(3, Math.max(1, local.weight / 200)) * 100) / 100;\n\n return (\n <span\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid={local[\"data-testid\"] ?? \"icon\"}\n data-icon-source={mode()}\n // An unnamed icon is hidden over the caller's aria-hidden. A named one is\n // an image unless the caller gives it a role, and a title names it over\n // the caller's aria-label.\n role={rest.role ?? (decorative() ? undefined : \"img\")}\n aria-hidden={decorative() ? true : undefined}\n aria-label={local.title || rest[\"aria-label\"]}\n title={local.title}\n style={mergeStyle(local.style, {\n \"font-variation-settings\":\n mode() === \"google\"\n ? `'FILL' ${local.fill}, 'wght' ${local.weight}, 'GRAD' ${local.grade}, 'opsz' 48`\n : undefined,\n })}\n class={cn(\"smwb-icon__wrapper\", colorClass(), local.class)}\n >\n {mode() === \"google\" ? (\n <span class=\"material-symbols-outlined\" style={{ \"font-size\": cssSize() }}>\n {glyph()}\n </span>\n ) : (\n <svg\n class=\"smwb-icon__svg\"\n viewBox={definition()?.viewBox ?? \"0 0 24 24\"}\n style={{ width: cssSize(), height: cssSize() }}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width={strokeWidth()}\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n innerHTML={definition()?.body ?? \"\"}\n />\n )}\n </span>\n );\n}\n\nexport default Icon;\n"],"names":["COLOR_TOKENS","warned","Set","warnMissing","name","getIconConfig","warnOnMissing","has","add","console","warn","Icon","props","merged","mergeProps","weight","fill","size","grade","color","local","rest","splitProps","context","useContext","IconContext","version","createIconVersion","source","definition","getIcon","glyph","mode","resolved","decorative","title","colorClass","includes","undefined","cssSize","strokeWidth","Math","round","min","max","_el$","_tmpl$","_ref$","mergeRefs","ref","_$use","_$spread","_$mergeProps","role","style","mergeStyle","cn","class","_$insert","_c$","_$memo","_el$2","_tmpl$2","_$effect","_$p","_$setStyleProperty","_el$3","_tmpl$3","_p$","_v$","viewBox","_v$2","_v$3","_v$4","_v$5","body","e","_$setAttribute","t","a","o","i","innerHTML"],"mappings":";;;;;;;;;AAeA,MAAMA,IAAsC,CAC1C,WACA,aACA,SACA,WACA,WACA,QACA,UAAU,GAGNC,wBAAaC,IAAAA;AAEnB,SAASC,EAAYC,GAAoB;AACvC,EAAI,CAACC,EAAAA,EAAgBC,iBAAiBL,EAAOM,IAAIH,CAAI,MACrDH,EAAOO,IAAIJ,CAAI,GACfK,QAAQC,KACN,gBAAgBN,CAAI,8CAA8CA,CAAI,wFAExE;AACF;AAgDO,SAASO,GAAKC,GAA+B;AAClD,QAAMC,IAASC,EACb;AAAA,IAAEC,QAAQ;AAAA,IAAKC,MAAM;AAAA,IAAYC,MAAM;AAAA,IAAuBC,OAAO;AAAA,IAAKC,OAAO;AAAA,EAAA,GACjFP,CACF,GACM,CAACQ,GAAOC,CAAI,IAAIC,EAAWT,GAAQ,CACvC,SACA,UACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,UACA,OACA,aAAa,CACd,GAEKU,IAAUC,EAAWC,CAAW,GAEhCC,IAAUC,EAAAA,GAEVC,IAASA,OACbF,EAAAA,GACON,EAAMQ,UAAUL,GAASK,UAAUvB,IAAgBuB,SAEtDC,IAAaA,OACjBH,EAAAA,GACO,OAAON,EAAMhB,QAAS,WAAWgB,EAAMhB,OAAO0B,EAAQV,EAAMhB,IAAI,IAEnE2B,IAAQA,MAAe,OAAOX,EAAMhB,QAAS,WAAWgB,EAAMhB,OAAOgB,EAAMhB,KAAKA,MAEhF4B,IAAOA,MAAqC;AAChD,UAAMC,IAAWL,EAAAA;AACjB,WAAIK,MAAa,WAAiB,WAC9BJ,EAAAA,IAAqB,SACrBI,MAAa,UACf9B,EAAY4B,GAAO,GACZ,aAEF;AAAA,EACT,GAEMG,IAAaA,MAAe,EAAEd,EAAMe,SAASd,EAAK,YAAY,KAAKA,EAAK,iBAAiB,IACzFe,IAAaA,MACjB,OAAOhB,EAAMD,SAAU,YAAYnB,EAAaqC,SAASjB,EAAMD,KAAK,IAAI,mBAAmBC,EAAMD,KAAK,KAAKmB,QACvGC,IAAUA,MAAe,OAAOnB,EAAMH,QAAS,WAAW,GAAGG,EAAMH,IAAI,OAAOG,EAAMH,MACpFuB,IAAcA,MAAcC,KAAKC,MAAMD,KAAKE,IAAI,GAAGF,KAAKG,IAAI,GAAGxB,EAAML,SAAS,GAAG,CAAC,IAAI,GAAG,IAAI;AAEnG,UAAA,MAAA;AAAA,QAAA8B,IAAAC,EAAAA,GAAAC,IAGSC,EAAU5B,EAAM6B,GAAG;AAAC,kBAAAF,KAAA,cAAAG,EAAAH,GAAAF,CAAA,GAAAM,EAAAN,GAAAO,EADrB/B,GAAI;AAAA,MAAA,IAAA,gBAAA;AAAA,eAEKD,EAAM,aAAa,KAAK;AAAA,MAAM;AAAA,MAAA,IAAA,qBAAA;AAAA,eACzBY,EAAAA;AAAAA,MAAM;AAAA,MAAA,IAIxBqB,OAAI;AAAA,eAAEhC,EAAKgC,SAASnB,EAAAA,IAAeI,SAAY;AAAA,MAAM;AAAA,MAAA,IAAA,gBAAA;AAAA,eACxCJ,EAAAA,IAAe,KAAOI;AAAAA,MAAS;AAAA,MAAA,IAAA,eAAA;AAAA,eAChClB,EAAMe,SAASd,EAAK,YAAY;AAAA,MAAC;AAAA,MAAA,IAC7Cc,QAAK;AAAA,eAAEf,EAAMe;AAAAA,MAAK;AAAA,MAAA,IAClBmB,QAAK;AAAA,eAAEC,EAAWnC,EAAMkC,OAAO;AAAA,UAC7B,2BACEtB,EAAAA,MAAW,WACP,UAAUZ,EAAMJ,IAAI,YAAYI,EAAML,MAAM,YAAYK,EAAMF,KAAK,gBACnEoB;AAAAA,QAAAA,CACP;AAAA,MAAC;AAAA,MAAA,IAAA,QAAA;AAAA,eACKkB,EAAG,sBAAsBpB,EAAAA,GAAchB,EAAMqC,KAAK;AAAA,MAAC;AAAA,IAAA,CAAA,GAAA,IAAA,EAAA,GAAAC,EAAAb,IAAA,MAAA;AAAA,UAAAc,IAAAC,EAAA,MAEzD5B,EAAAA,MAAW,QAAQ;AAAA,aAAA,MAAnB2B,EAAAA,KAAA,MAAA;AAAA,YAAAE,IAAAC,EAAAA;AAAAJ,eAAAA,EAAAG,GAEI9B,CAAK,GAAAgC,EAAAC,OAAAC,EAAAJ,GAAA,aADsDtB,EAAAA,CAAS,CAAA,GAAAsB;AAAAA,MAAA,GAAA,KAAA,MAAA;AAAA,YAAAK,IAAAC,EAAAA;AAAAJ,eAAAA,EAAAK,CAAAA,MAAA;AAAA,cAAAC,IAM5DxC,KAAcyC,WAAW,aAAWC,IAC7BhC,KAASiC,IAAUjC,EAAAA,GAASkC,IAG9BjC,EAAAA,GAAakC,IAIhB7C,EAAAA,GAAc8C,QAAQ;AAAEN,iBAAAA,MAAAD,EAAAQ,KAAAC,EAAAX,GAAA,WAAAE,EAAAQ,IAAAP,CAAA,GAAAE,MAAAH,EAAAU,KAAAb,EAAAC,GAAA,SAAAE,EAAAU,IAAAP,CAAA,GAAAC,MAAAJ,EAAAW,KAAAd,EAAAC,GAAA,UAAAE,EAAAW,IAAAP,CAAA,GAAAC,MAAAL,EAAAY,KAAAH,EAAAX,GAAA,gBAAAE,EAAAY,IAAAP,CAAA,GAAAC,MAAAN,EAAAa,MAAAf,EAAAgB,YAAAd,EAAAa,IAAAP,IAAAN;AAAAA,QAAA,GAAA;AAAA,UAAAQ,GAAAtC;AAAAA,UAAAwC,GAAAxC;AAAAA,UAAAyC,GAAAzC;AAAAA,UAAA0C,GAAA1C;AAAAA,UAAA2C,GAAA3C;AAAAA,QAAAA,CAAA,GAAA4B;AAAAA,MAAA,GAAA;AAAA,IAEtC,IAAA,GAAArB;AAAAA,EAAA,GAAA;AAGP;"}