@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
@@ -6,6 +6,8 @@ import { Ripple } from "../../base/ripple";
6
6
  import { Icon } from "../../base/icon";
7
7
  import { mergeRefs } from "../../../primitives/mergeRefs";
8
8
  import { callHandler } from "../../../primitives/callHandler";
9
+ import { isOwnClick } from "../../../utils/ownClick";
10
+ import { splitControlProps } from "../../../utils/controlProps";
9
11
  function DeleteIcon(props) {
10
12
  const icon = children(() => props.icon);
11
13
  return <Show when={icon()} fallback={<Icon name="cancel" size={18} fill={1} />}>
@@ -26,6 +28,7 @@ function Chip(props) {
26
28
  );
27
29
  const [local, rest] = splitProps(merged, [
28
30
  "label",
31
+ "labelId",
29
32
  "class",
30
33
  "deleteIcon",
31
34
  "icon",
@@ -40,16 +43,24 @@ function Chip(props) {
40
43
  "color",
41
44
  "disabled",
42
45
  "onClick",
46
+ // The chip sets these on its root too; its own handlers call the caller's first.
47
+ "onKeyDown",
48
+ "onPointerDown",
43
49
  "deleteAriaLabel",
44
- "ref"
50
+ "ref",
51
+ "data-testid"
45
52
  ]);
46
53
  const icon = children(() => local.icon);
47
54
  let rippleActions;
48
55
  const onPointerDown = (event) => {
56
+ callHandler(local.onPointerDown, event);
49
57
  if (!local.disabled) {
50
58
  rippleActions?.onRipple(event);
51
59
  }
52
60
  };
61
+ const onDeleteClick = (event) => {
62
+ local.onDelete?.(event);
63
+ };
53
64
  const onDeleteMouseDown = (event) => {
54
65
  callHandler(local.onDeleteMouseDown, event);
55
66
  event.stopPropagation();
@@ -63,18 +74,35 @@ function Chip(props) {
63
74
  { "smwb-disabled": local.disabled, "smwb-selected": local.selected }
64
75
  );
65
76
  const clickable = () => !!local.onClick && !local.disabled;
66
- const inner = () => <>
77
+ const [control, box] = splitControlProps(rest, () => !!local.onClick);
78
+ let content;
79
+ const onKeyDown = (event) => {
80
+ callHandler(local.onKeyDown, event);
81
+ if (!clickable() || event.target !== content) return;
82
+ if (event.key === "Enter" || event.key === " ") {
83
+ event.preventDefault();
84
+ local.onClick?.();
85
+ }
86
+ };
87
+ const onChipClick = (event) => {
88
+ if (isOwnClick(event, content ?? null)) local.onClick?.();
89
+ };
90
+ const iconAndLabel = () => <>
67
91
  <Show when={icon()}>
68
92
  <span class="smwb-chip__icon">{icon()}</span>
69
93
  </Show>
70
- <span class="smwb-chip__label">{local.label}</span>
94
+ <span id={local.labelId} class="smwb-chip__label">
95
+ {local.label}
96
+ </span>
97
+ </>;
98
+ const trailing = () => <>
71
99
  <Show when={local.onDelete}>
72
100
  <button
73
101
  type="button"
74
102
  class="smwb-chip__delete-icon"
75
103
  aria-label={local.deleteAriaLabel}
76
104
  disabled={local.disabled}
77
- onClick={local.onDelete}
105
+ onClick={onDeleteClick}
78
106
  onMouseDown={onDeleteMouseDown}
79
107
  >
80
108
  <DeleteIcon icon={local.deleteIcon} />
@@ -85,36 +113,44 @@ function Chip(props) {
85
113
  return <Show
86
114
  when={local.asLink && local.href}
87
115
  fallback={<span
88
- {...rest}
116
+ {...box}
89
117
  ref={mergeRefs(local.ref)}
90
- data-testid="chip"
118
+ data-testid={local["data-testid"] ?? "chip"}
91
119
  class={classes()}
92
- role={clickable() ? "button" : void 0}
93
- tabindex={clickable() ? 0 : void 0}
94
- aria-disabled={local.disabled || void 0}
95
- onClick={clickable() ? () => local.onClick?.() : void 0}
96
- onKeyDown={clickable() ? (event) => {
97
- if (event.key === "Enter" || event.key === " ") {
98
- event.preventDefault();
99
- local.onClick?.();
100
- }
101
- } : void 0}
120
+ aria-disabled={!local.onClick && local.disabled || void 0}
121
+ onClick={clickable() ? onChipClick : void 0}
122
+ onKeyDown={onKeyDown}
102
123
  onPointerDown={onPointerDown}
103
124
  >
104
- {inner()}
125
+ <span
126
+ {...control}
127
+ ref={(el) => content = el}
128
+ class="smwb-chip__content"
129
+ role={local.onClick ? "button" : void 0}
130
+ tabindex={control.tabindex ?? (clickable() ? 0 : void 0)}
131
+ aria-disabled={!!local.onClick && local.disabled || void 0}
132
+ >
133
+ {iconAndLabel()}
134
+ </span>
135
+ {
136
+ /* Beside the button, not in it: the delete button keeps its name and input. */
137
+ }
138
+ {trailing()}
105
139
  </span>}
106
140
  >
107
141
  <a
108
142
  {...rest}
109
143
  ref={mergeRefs(local.ref)}
110
- data-testid="chip-link"
144
+ data-testid={local["data-testid"] ?? "chip-link"}
111
145
  class={classes()}
112
146
  href={local.href}
147
+ onKeyDown={local.onKeyDown}
113
148
  onPointerDown={onPointerDown}
114
149
  target={local.target}
115
150
  rel="noreferrer"
116
151
  >
117
- {inner()}
152
+ {iconAndLabel()}
153
+ {trailing()}
118
154
  </a>
119
155
  </Show>;
120
156
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/dataDisplay/chip/chip.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/tokens.entry.less\";\nimport \"@smwb/ui-styles/less/components/chip/chip.entry.less\";\nimport { type JSX, Show, children, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../primitives/callHandler\";\n\nexport type ChipColor = \"default\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n\nexport interface ChipProps extends JSX.HTMLAttributes<HTMLSpanElement | HTMLAnchorElement> {\n variant?: \"filled\" | \"outlined\";\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n onDelete?: (event: MouseEvent & { currentTarget: HTMLButtonElement; target: Element }) => void;\n icon?: JSX.Element;\n deleteIcon?: JSX.Element;\n label: string;\n onClick?: () => void;\n onDeleteMouseDown?: JSX.EventHandlerUnion<HTMLButtonElement, MouseEvent>;\n disabled?: boolean;\n asLink?: boolean;\n href?: string;\n /** Open the link in a new tab (asLink only). */\n target?: string;\n selected?: boolean;\n /** Accessible label for the delete control. */\n deleteAriaLabel?: string;\n ref?: Ref<HTMLSpanElement | HTMLAnchorElement>;\n}\n\n/**\n * The delete control's icon: a custom one or the default. It is read here, only\n * when the control renders — markup created and not rendered has no server node\n * to hydrate against either.\n */\nfunction DeleteIcon(props: { icon: JSX.Element }): JSX.Element {\n const icon = children(() => props.icon);\n return (\n <Show when={icon()} fallback={<Icon name=\"cancel\" size={18} fill={1} />}>\n {icon()}\n </Show>\n );\n}\n\nexport function Chip(props: ChipProps): JSX.Element {\n const merged = mergeProps(\n {\n target: \"_blank\",\n variant: \"filled\" as const,\n size: \"medium\" as const,\n color: \"default\" as ChipColor,\n disabled: false,\n deleteAriaLabel: \"Remove\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"label\",\n \"class\",\n \"deleteIcon\",\n \"icon\",\n \"onDelete\",\n \"onDeleteMouseDown\",\n \"asLink\",\n \"href\",\n \"target\",\n \"selected\",\n \"variant\",\n \"size\",\n \"color\",\n \"disabled\",\n \"onClick\",\n \"deleteAriaLabel\",\n \"ref\",\n ]);\n\n // Read the icon once: markup passed as a prop is created anew on every read,\n // and during hydration the copy made for the <Show> test has no server DOM\n // node to adopt (\"Unable to find DOM nodes for hydration key\").\n const icon = children(() => local.icon);\n\n let rippleActions: RippleActionsRef | undefined;\n\n const onPointerDown = (event: PointerEvent): void => {\n if (!local.disabled) {\n rippleActions?.onRipple(event);\n }\n };\n\n const onDeleteMouseDown: JSX.EventHandler<HTMLButtonElement, MouseEvent> = (event) => {\n callHandler(local.onDeleteMouseDown, event);\n event.stopPropagation();\n };\n\n const classes = (): string =>\n cn(\n \"smwb-chip\",\n `smwb-${local.variant}`,\n `smwb-chip_size-${local.size}`,\n local.color !== \"default\" && `smwb-chip_color-${local.color}`,\n local.class,\n { \"smwb-disabled\": local.disabled, \"smwb-selected\": local.selected }\n );\n\n const clickable = (): boolean => !!local.onClick && !local.disabled;\n\n const inner = (): JSX.Element => (\n <>\n <Show when={icon()}>\n <span class=\"smwb-chip__icon\">{icon()}</span>\n </Show>\n <span class=\"smwb-chip__label\">{local.label}</span>\n <Show when={local.onDelete}>\n <button\n type=\"button\"\n class=\"smwb-chip__delete-icon\"\n aria-label={local.deleteAriaLabel}\n disabled={local.disabled}\n onClick={local.onDelete}\n onMouseDown={onDeleteMouseDown}\n >\n <DeleteIcon icon={local.deleteIcon} />\n </button>\n </Show>\n <Ripple actionRef={(actions) => (rippleActions = actions)} />\n </>\n );\n\n return (\n <Show\n when={local.asLink && local.href}\n fallback={\n <span\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"chip\"\n class={classes()}\n role={clickable() ? \"button\" : undefined}\n tabindex={clickable() ? 0 : undefined}\n aria-disabled={local.disabled || undefined}\n onClick={clickable() ? () => local.onClick?.() : undefined}\n onKeyDown={\n clickable()\n ? (event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n local.onClick?.();\n }\n }\n : undefined\n }\n onPointerDown={onPointerDown}\n >\n {inner()}\n </span>\n }\n >\n <a\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"chip-link\"\n class={classes()}\n href={local.href}\n onPointerDown={onPointerDown}\n target={local.target}\n rel=\"noreferrer\"\n >\n {inner()}\n </a>\n </Show>\n );\n}\n\nexport default Chip;\n"],"mappings":"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","names":[],"file":"chip.jsx"}
1
+ {"version":3,"sources":["../../../../../src/components/dataDisplay/chip/chip.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/tokens.entry.less\";\nimport \"@smwb/ui-styles/less/components/chip/chip.entry.less\";\nimport { type JSX, Show, children, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../primitives/callHandler\";\nimport { isOwnClick } from \"../../../utils/ownClick\";\nimport { splitControlProps } from \"../../../utils/controlProps\";\n\nexport type ChipColor = \"default\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n\nexport interface ChipProps extends JSX.HTMLAttributes<HTMLSpanElement | HTMLAnchorElement> {\n /**\n * Class name(s) for the chip's root, a `<span>` (an `<a>` with `asLink`). `style`, `id`, `data-*`, `aria-hidden`,\n * `ref` and event handlers go to the root too. In a clickable chip (`onClick`), `role`, `tabindex`, `onFocus`,\n * `onBlur` and the other `aria-*` attributes go to its button, `.smwb-chip__content` (the icon and the label), which\n * is also the element to focus. Otherwise they stay on the root, which holds the delete button too.\n */\n class?: string | undefined;\n variant?: \"filled\" | \"outlined\";\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n /**\n * Shows a delete button in the chip and runs when it is pressed: a click, or\n * Enter / Space while the button has focus. In a clickable chip it sits\n * beside the chip's button, not inside it, and pressing it does not run the\n * chip's `onClick`.\n */\n onDelete?: (event: MouseEvent & { currentTarget: HTMLButtonElement; target: Element }) => void;\n icon?: JSX.Element;\n deleteIcon?: JSX.Element;\n label: string;\n /**\n * Makes the chip clickable: its icon and label become a button, named by\n * them, with a focus ring around the whole chip. The delete button is not\n * part of that button but its sibling, so it keeps its own name.\n *\n * Runs on a click on the chip and on Enter / Space while the chip's button\n * has focus, but not on a click or key on the delete button.\n */\n onClick?: () => void;\n onDeleteMouseDown?: JSX.EventHandlerUnion<HTMLButtonElement, MouseEvent>;\n /**\n * Disables the chip: it is dimmed, takes no pointer input and says `aria-disabled`, and its delete button is\n * disabled too. With `onClick` the chip is still a button, out of the tab order.\n */\n disabled?: boolean;\n asLink?: boolean;\n href?: string;\n /** Open the link in a new tab (asLink only). */\n target?: string;\n selected?: boolean;\n /**\n * Id of the label's element, for another element to take the chip's text as\n * its name (`aria-labelledby`) without the delete button's name.\n */\n labelId?: string | undefined;\n /** Accessible label for the delete control. */\n deleteAriaLabel?: string;\n /** Test id of the root; `chip`, or `chip-link` for a link, unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLSpanElement | HTMLAnchorElement>;\n}\n\n/**\n * The delete control's icon: a custom one or the default. It is read here, only\n * when the control renders — markup created and not rendered has no server node\n * to hydrate against either.\n */\nfunction DeleteIcon(props: { icon: JSX.Element }): JSX.Element {\n const icon = children(() => props.icon);\n return (\n <Show when={icon()} fallback={<Icon name=\"cancel\" size={18} fill={1} />}>\n {icon()}\n </Show>\n );\n}\n\nexport function Chip(props: ChipProps): JSX.Element {\n const merged = mergeProps(\n {\n target: \"_blank\",\n variant: \"filled\" as const,\n size: \"medium\" as const,\n color: \"default\" as ChipColor,\n disabled: false,\n deleteAriaLabel: \"Remove\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"label\",\n \"labelId\",\n \"class\",\n \"deleteIcon\",\n \"icon\",\n \"onDelete\",\n \"onDeleteMouseDown\",\n \"asLink\",\n \"href\",\n \"target\",\n \"selected\",\n \"variant\",\n \"size\",\n \"color\",\n \"disabled\",\n \"onClick\",\n // The chip sets these on its root too; its own handlers call the caller's first.\n \"onKeyDown\",\n \"onPointerDown\",\n \"deleteAriaLabel\",\n \"ref\",\n \"data-testid\",\n ]);\n\n // Read the icon once: markup passed as a prop is created anew on every read,\n // and during hydration the copy made for the <Show> test has no server DOM\n // node to adopt (\"Unable to find DOM nodes for hydration key\").\n const icon = children(() => local.icon);\n\n let rippleActions: RippleActionsRef | undefined;\n\n const onPointerDown: JSX.EventHandler<HTMLSpanElement | HTMLAnchorElement, PointerEvent> = (event) => {\n callHandler(local.onPointerDown, event);\n if (!local.disabled) {\n rippleActions?.onRipple(event);\n }\n };\n\n // Reads onDelete on each click. Solid binds event handlers once, and <Show>\n // builds the button in a tracked scope, so binding onDelete itself there\n // would rebuild the button for each new onDelete.\n const onDeleteClick: JSX.EventHandler<HTMLButtonElement, MouseEvent> = (event) => {\n local.onDelete?.(event);\n };\n\n const onDeleteMouseDown: JSX.EventHandler<HTMLButtonElement, MouseEvent> = (event) => {\n callHandler(local.onDeleteMouseDown, event);\n event.stopPropagation();\n };\n\n const classes = (): string =>\n cn(\n \"smwb-chip\",\n `smwb-${local.variant}`,\n `smwb-chip_size-${local.size}`,\n local.color !== \"default\" && `smwb-chip_color-${local.color}`,\n local.class,\n { \"smwb-disabled\": local.disabled, \"smwb-selected\": local.selected }\n );\n\n const clickable = (): boolean => !!local.onClick && !local.disabled;\n // With onClick the chip's content is its button, and what the chip is to the\n // keyboard and to assistive tech goes there. Without it the chip is not a\n // control: the caller's role and ARIA attributes stay on the root, around\n // the delete button too.\n const [control, box] = splitControlProps(rest, () => !!local.onClick);\n let content: HTMLSpanElement | undefined;\n\n // Keys pressed on the delete button bubble up here too; only the keys of the\n // chip's button activate it.\n const onKeyDown: JSX.EventHandler<HTMLSpanElement, KeyboardEvent> = (event) => {\n callHandler(local.onKeyDown, event);\n if (!clickable() || event.target !== content) return;\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n local.onClick?.();\n }\n };\n\n // A click on the chip's button, or on its padding, activates the chip: not\n // one on the delete button, nor one in a Portal rendered inside, which Solid\n // delivers here too.\n const onChipClick: JSX.EventHandler<HTMLSpanElement, MouseEvent> = (event) => {\n if (isOwnClick(event, content ?? null)) local.onClick?.();\n };\n\n // The chip's own content: its button when it is clickable.\n const iconAndLabel = (): JSX.Element => (\n <>\n <Show when={icon()}>\n <span class=\"smwb-chip__icon\">{icon()}</span>\n </Show>\n <span id={local.labelId} class=\"smwb-chip__label\">\n {local.label}\n </span>\n </>\n );\n // After the content: in a clickable chip, beside its button, not in it.\n const trailing = (): JSX.Element => (\n <>\n <Show when={local.onDelete}>\n <button\n type=\"button\"\n class=\"smwb-chip__delete-icon\"\n aria-label={local.deleteAriaLabel}\n disabled={local.disabled}\n onClick={onDeleteClick}\n onMouseDown={onDeleteMouseDown}\n >\n <DeleteIcon icon={local.deleteIcon} />\n </button>\n </Show>\n <Ripple actionRef={(actions) => (rippleActions = actions)} />\n </>\n );\n\n return (\n <Show\n when={local.asLink && local.href}\n fallback={\n <span\n {...box}\n ref={mergeRefs(local.ref)}\n data-testid={local[\"data-testid\"] ?? \"chip\"}\n class={classes()}\n // A disabled chip says so where the caller's ARIA attributes are: on\n // its button with onClick, on the root without. Where it sets none\n // (undefined), the caller's stay.\n aria-disabled={(!local.onClick && local.disabled) || undefined}\n onClick={clickable() ? onChipClick : undefined}\n onKeyDown={onKeyDown}\n onPointerDown={onPointerDown}\n >\n <span\n {...control}\n ref={(el) => (content = el)}\n class=\"smwb-chip__content\"\n // With onClick the content is the chip's button, and a disabled chip\n // says so: these win over the caller's, and where the chip sets none\n // (undefined), the caller's stay. Its tabindex is a default: the\n // caller's wins, e.g. for roving focus.\n role={local.onClick ? \"button\" : undefined}\n tabindex={control.tabindex ?? (clickable() ? 0 : undefined)}\n aria-disabled={(!!local.onClick && local.disabled) || undefined}\n >\n {iconAndLabel()}\n </span>\n {/* Beside the button, not in it: the delete button keeps its name and input. */}\n {trailing()}\n </span>\n }\n >\n <a\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid={local[\"data-testid\"] ?? \"chip-link\"}\n class={classes()}\n href={local.href}\n onKeyDown={local.onKeyDown}\n onPointerDown={onPointerDown}\n target={local.target}\n rel=\"noreferrer\"\n >\n {iconAndLabel()}\n {trailing()}\n </a>\n </Show>\n );\n}\n\nexport default Chip;\n"],"mappings":"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","names":[],"file":"chip.jsx"}
@@ -29,20 +29,23 @@ function ChipGroup(props) {
29
29
  local.onChange?.(value);
30
30
  }
31
31
  };
32
- return <div {...rest} role="group" class={cn("smwb-chip-group", local.class)}>
32
+ return (
33
+ // role="group" is a default: the caller's own wins, and an explicit undefined keeps it.
34
+ <div {...rest} role={rest.role ?? "group"} class={cn("smwb-chip-group", local.class)}>
33
35
  <For each={local.options}>
34
36
  {(option) => <Chip
35
- label={option.label}
36
- size={local.size}
37
- color={local.color}
38
- selected={isSelected(option.value)}
39
- variant={isSelected(option.value) ? "filled" : "outlined"}
40
- disabled={!!(local.disabled || option.disabled)}
41
- onClick={() => toggle(option.value)}
42
- {...option.icon ? { icon: option.icon } : {}}
43
- />}
37
+ label={option.label}
38
+ size={local.size}
39
+ color={local.color}
40
+ selected={isSelected(option.value)}
41
+ variant={isSelected(option.value) ? "filled" : "outlined"}
42
+ disabled={!!(local.disabled || option.disabled)}
43
+ onClick={() => toggle(option.value)}
44
+ {...option.icon ? { icon: option.icon } : {}}
45
+ />}
44
46
  </For>
45
- </div>;
47
+ </div>
48
+ );
46
49
  }
47
50
  var chipGroup_default = ChipGroup;
48
51
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/dataDisplay/chipGroup/chipGroup.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/tokens.entry.less\";\nimport \"@smwb/ui-styles/less/components/chipGroup/chipGroup.entry.less\";\nimport { type JSX, For, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Chip, type ChipColor } from \"../chip\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n icon?: JSX.Element;\n disabled?: boolean;\n}\n\nexport interface ChipGroupProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n options: ChipGroupOption[];\n /** Selected value (single) or values (when `multiple`). */\n value?: string | string[];\n /** Allow more than one selected chip (value becomes a string[]). */\n multiple?: boolean;\n onChange?: (value: string | string[]) => void;\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n disabled?: boolean;\n}\n\n/**\n * A multi/single-select toggle group built on `Chip` — the \"chip as a toggle\"\n * loop (selected → filled, else outlined; `role=group`) that apps re-hand-roll\n * for filters / segmented controls. Pass an `options` array and a controlled\n * `value`; `onChange` returns the next value (string, or string[] when multiple).\n */\nexport function ChipGroup(props: ChipGroupProps): JSX.Element {\n const merged = mergeProps({ size: \"medium\" as const, color: \"primary\" as ChipColor }, props);\n const [local, rest] = splitProps(merged, [\n \"options\",\n \"value\",\n \"multiple\",\n \"onChange\",\n \"size\",\n \"color\",\n \"disabled\",\n \"class\",\n ]);\n\n const selectedValues = (): string[] => {\n if (local.value == null) return [];\n return Array.isArray(local.value) ? local.value : [local.value];\n };\n const isSelected = (value: string): boolean => selectedValues().includes(value);\n\n const toggle = (value: string): void => {\n if (local.multiple) {\n const current = selectedValues();\n const next = current.includes(value) ? current.filter((v) => v !== value) : [...current, value];\n local.onChange?.(next);\n } else {\n local.onChange?.(value);\n }\n };\n\n return (\n <div {...rest} role=\"group\" class={cn(\"smwb-chip-group\", local.class)}>\n <For each={local.options}>\n {(option) => (\n <Chip\n label={option.label}\n size={local.size}\n color={local.color}\n selected={isSelected(option.value)}\n variant={isSelected(option.value) ? \"filled\" : \"outlined\"}\n disabled={!!(local.disabled || option.disabled)}\n onClick={() => toggle(option.value)}\n {...(option.icon ? { icon: option.icon } : {})}\n />\n )}\n </For>\n </div>\n );\n}\n\nexport default ChipGroup;\n"],"mappings":"AAAA,OAAO;AACP,OAAO;AACP,SAAmB,KAAK,YAAY,kBAAkB;AACtD,OAAO,QAAQ;AACf,SAAS,YAA4B;AA2B9B,SAAS,UAAU,OAAoC;AAC5D,QAAM,SAAS,WAAW,EAAE,MAAM,UAAmB,OAAO,UAAuB,GAAG,KAAK;AAC3F,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,iBAAiB,MAAgB;AACrC,QAAI,MAAM,SAAS,KAAM,QAAO,CAAC;AACjC,WAAO,MAAM,QAAQ,MAAM,KAAK,IAAI,MAAM,QAAQ,CAAC,MAAM,KAAK;AAAA,EAChE;AACA,QAAM,aAAa,CAAC,UAA2B,eAAe,EAAE,SAAS,KAAK;AAE9E,QAAM,SAAS,CAAC,UAAwB;AACtC,QAAI,MAAM,UAAU;AAClB,YAAM,UAAU,eAAe;AAC/B,YAAM,OAAO,QAAQ,SAAS,KAAK,IAAI,QAAQ,OAAO,CAAC,MAAM,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,KAAK;AAC9F,YAAM,WAAW,IAAI;AAAA,IACvB,OAAO;AACL,YAAM,WAAW,KAAK;AAAA,IACxB;AAAA,EACF;AAEA,SACE,CAAC,QAAQ,MAAM,KAAK,QAAQ,OAAO,GAAG,mBAAmB,MAAM,KAAK,GAAG;AAAA,MACrE,CAAC,IAAI,MAAM,MAAM,SAAS;AAAA,SACvB,CAAC,WACA,CAAC;AAAA,IACC,OAAO,OAAO;AAAA,IACd,MAAM,MAAM;AAAA,IACZ,OAAO,MAAM;AAAA,IACb,UAAU,WAAW,OAAO,KAAK;AAAA,IACjC,SAAS,WAAW,OAAO,KAAK,IAAI,WAAW;AAAA,IAC/C,UAAU,CAAC,EAAE,MAAM,YAAY,OAAO;AAAA,IACtC,SAAS,MAAM,OAAO,OAAO,KAAK;AAAA,QAC7B,OAAO,OAAO,EAAE,MAAM,OAAO,KAAK,IAAI,CAAC;AAAA,EAC9C,GACA;AAAA,MACJ,EAbC,IAaK;AAAA,IACR,EAfC;AAiBL;AAEA,IAAO,oBAAQ;","names":[],"file":"chipGroup.jsx"}
1
+ {"version":3,"sources":["../../../../../src/components/dataDisplay/chipGroup/chipGroup.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/tokens.entry.less\";\nimport \"@smwb/ui-styles/less/components/chipGroup/chipGroup.entry.less\";\nimport { type JSX, For, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Chip, type ChipColor } from \"../chip\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n icon?: JSX.Element;\n disabled?: boolean;\n}\n\nexport interface ChipGroupProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n options: ChipGroupOption[];\n /** Selected value (single) or values (when `multiple`). */\n value?: string | string[];\n /** Allow more than one selected chip (value becomes a string[]). */\n multiple?: boolean;\n onChange?: (value: string | string[]) => void;\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n disabled?: boolean;\n}\n\n/**\n * A multi/single-select toggle group built on `Chip` — the \"chip as a toggle\"\n * loop (selected → filled, else outlined; `role=group`) that apps re-hand-roll\n * for filters / segmented controls. Pass an `options` array and a controlled\n * `value`; `onChange` returns the next value (string, or string[] when multiple).\n */\nexport function ChipGroup(props: ChipGroupProps): JSX.Element {\n const merged = mergeProps({ size: \"medium\" as const, color: \"primary\" as ChipColor }, props);\n const [local, rest] = splitProps(merged, [\n \"options\",\n \"value\",\n \"multiple\",\n \"onChange\",\n \"size\",\n \"color\",\n \"disabled\",\n \"class\",\n ]);\n\n const selectedValues = (): string[] => {\n if (local.value == null) return [];\n return Array.isArray(local.value) ? local.value : [local.value];\n };\n const isSelected = (value: string): boolean => selectedValues().includes(value);\n\n const toggle = (value: string): void => {\n if (local.multiple) {\n const current = selectedValues();\n const next = current.includes(value) ? current.filter((v) => v !== value) : [...current, value];\n local.onChange?.(next);\n } else {\n local.onChange?.(value);\n }\n };\n\n return (\n // role=\"group\" is a default: the caller's own wins, and an explicit undefined keeps it.\n <div {...rest} role={rest.role ?? \"group\"} class={cn(\"smwb-chip-group\", local.class)}>\n <For each={local.options}>\n {(option) => (\n <Chip\n label={option.label}\n size={local.size}\n color={local.color}\n selected={isSelected(option.value)}\n variant={isSelected(option.value) ? \"filled\" : \"outlined\"}\n disabled={!!(local.disabled || option.disabled)}\n onClick={() => toggle(option.value)}\n {...(option.icon ? { icon: option.icon } : {})}\n />\n )}\n </For>\n </div>\n );\n}\n\nexport default ChipGroup;\n"],"mappings":"AAAA,OAAO;AACP,OAAO;AACP,SAAmB,KAAK,YAAY,kBAAkB;AACtD,OAAO,QAAQ;AACf,SAAS,YAA4B;AA2B9B,SAAS,UAAU,OAAoC;AAC5D,QAAM,SAAS,WAAW,EAAE,MAAM,UAAmB,OAAO,UAAuB,GAAG,KAAK;AAC3F,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,iBAAiB,MAAgB;AACrC,QAAI,MAAM,SAAS,KAAM,QAAO,CAAC;AACjC,WAAO,MAAM,QAAQ,MAAM,KAAK,IAAI,MAAM,QAAQ,CAAC,MAAM,KAAK;AAAA,EAChE;AACA,QAAM,aAAa,CAAC,UAA2B,eAAe,EAAE,SAAS,KAAK;AAE9E,QAAM,SAAS,CAAC,UAAwB;AACtC,QAAI,MAAM,UAAU;AAClB,YAAM,UAAU,eAAe;AAC/B,YAAM,OAAO,QAAQ,SAAS,KAAK,IAAI,QAAQ,OAAO,CAAC,MAAM,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,KAAK;AAC9F,YAAM,WAAW,IAAI;AAAA,IACvB,OAAO;AACL,YAAM,WAAW,KAAK;AAAA,IACxB;AAAA,EACF;AAEA;AAAA;AAAA,IAEE,CAAC,QAAQ,MAAM,MAAM,KAAK,QAAQ,SAAS,OAAO,GAAG,mBAAmB,MAAM,KAAK,GAAG;AAAA,MACpF,CAAC,IAAI,MAAM,MAAM,SAAS;AAAA,SACvB,CAAC,WACA,CAAC;AAAA,MACC,OAAO,OAAO;AAAA,MACd,MAAM,MAAM;AAAA,MACZ,OAAO,MAAM;AAAA,MACb,UAAU,WAAW,OAAO,KAAK;AAAA,MACjC,SAAS,WAAW,OAAO,KAAK,IAAI,WAAW;AAAA,MAC/C,UAAU,CAAC,EAAE,MAAM,YAAY,OAAO;AAAA,MACtC,SAAS,MAAM,OAAO,OAAO,KAAK;AAAA,UAC7B,OAAO,OAAO,EAAE,MAAM,OAAO,KAAK,IAAI,CAAC;AAAA,IAC9C,GACA;AAAA,MACJ,EAbC,IAaK;AAAA,IACR,EAfC;AAAA;AAiBL;AAEA,IAAO,oBAAQ;","names":[],"file":"chipGroup.jsx"}
@@ -0,0 +1,383 @@
1
+ const dagEdgeId = (edge) => edge.id ?? `${edge.source}->${edge.target}`;
2
+ function normalise(input) {
3
+ const warn = input.warn ?? (() => void 0);
4
+ const nodes = [];
5
+ const index = /* @__PURE__ */ new Map();
6
+ for (const node of input.nodes) {
7
+ if (index.has(node.id)) {
8
+ warn(`node "${node.id}" is listed twice; the second is dropped.`);
9
+ continue;
10
+ }
11
+ index.set(node.id, nodes.length);
12
+ nodes.push(node);
13
+ }
14
+ const edges = [];
15
+ const pairs = /* @__PURE__ */ new Set();
16
+ const ids = /* @__PURE__ */ new Set();
17
+ for (const edge of input.edges) {
18
+ const from = index.get(edge.source);
19
+ const to = index.get(edge.target);
20
+ if (from === void 0 || to === void 0) {
21
+ const missing = from === void 0 ? edge.source : edge.target;
22
+ warn(`edge ${edge.source} -> ${edge.target} names an unknown node "${missing}"; it is dropped.`);
23
+ continue;
24
+ }
25
+ if (from === to) {
26
+ warn(`edge ${edge.source} -> ${edge.target} is a self-loop; it is dropped.`);
27
+ continue;
28
+ }
29
+ const pair = `${from} ${to}`;
30
+ const id = dagEdgeId(edge);
31
+ if (pairs.has(pair) || ids.has(id)) {
32
+ warn(`edge ${edge.source} -> ${edge.target} is listed twice; the second is dropped.`);
33
+ continue;
34
+ }
35
+ pairs.add(pair);
36
+ ids.add(id);
37
+ edges.push({ id, source: edge.source, target: edge.target, from, to, reversed: false });
38
+ }
39
+ const out = nodes.map(() => []);
40
+ edges.forEach((edge, i) => out[edge.from].push(i));
41
+ const state = new Uint8Array(nodes.length);
42
+ for (let root = 0; root < nodes.length; root++) {
43
+ if (state[root]) continue;
44
+ const stack = [[root, 0]];
45
+ state[root] = 1;
46
+ while (stack.length) {
47
+ const top = stack[stack.length - 1];
48
+ const [v, next] = top;
49
+ const list = out[v];
50
+ if (next >= list.length) {
51
+ state[v] = 2;
52
+ stack.pop();
53
+ continue;
54
+ }
55
+ top[1] = next + 1;
56
+ const edge = edges[list[next]];
57
+ if (state[edge.to] === 1) edge.reversed = true;
58
+ else if (state[edge.to] === 0) {
59
+ state[edge.to] = 1;
60
+ stack.push([edge.to, 0]);
61
+ }
62
+ }
63
+ }
64
+ return { nodes, index, edges };
65
+ }
66
+ function assignLayers(count, arcs) {
67
+ const out = Array.from({ length: count }, () => []);
68
+ const inDegree = new Array(count).fill(0);
69
+ for (const [u, v] of arcs) {
70
+ out[u].push(v);
71
+ inDegree[v]++;
72
+ }
73
+ const hasPred = inDegree.map((d) => d > 0);
74
+ const layer = new Array(count).fill(0);
75
+ const order = [];
76
+ const queue = [];
77
+ for (let v = 0; v < count; v++) if (inDegree[v] === 0) queue.push(v);
78
+ for (let head = 0; head < queue.length; head++) {
79
+ const u = queue[head];
80
+ order.push(u);
81
+ for (const v of out[u]) {
82
+ layer[v] = Math.max(layer[v], layer[u] + 1);
83
+ if (--inDegree[v] === 0) queue.push(v);
84
+ }
85
+ }
86
+ for (let i = order.length - 1; i >= 0; i--) {
87
+ const v = order[i];
88
+ const succs = out[v];
89
+ if (succs.length === 0 || hasPred[v]) continue;
90
+ layer[v] = Math.min(...succs.map((s) => layer[s])) - 1;
91
+ }
92
+ return layer;
93
+ }
94
+ function crossingsBetween(upper, vertices, position) {
95
+ const pairs = [];
96
+ for (const u of upper) for (const v of vertices[u].succs) pairs.push([position[u], position[v]]);
97
+ pairs.sort((a, b) => a[0] - b[0] || a[1] - b[1]);
98
+ let size = 1;
99
+ for (const [, b] of pairs) size = Math.max(size, b + 2);
100
+ const tree = new Int32Array(size + 1);
101
+ let crossings = 0;
102
+ for (let i = pairs.length - 1; i >= 0; i--) {
103
+ const b = pairs[i][1];
104
+ for (let j = b; j > 0; j -= j & -j) crossings += tree[j];
105
+ for (let j = b + 1; j <= size; j += j & -j) tree[j]++;
106
+ }
107
+ return crossings;
108
+ }
109
+ function totalCrossings(layers, vertices, position) {
110
+ let sum = 0;
111
+ for (let l = 0; l + 1 < layers.length; l++) sum += crossingsBetween(layers[l], vertices, position);
112
+ return sum;
113
+ }
114
+ function reorder(layer, vertices, position, down) {
115
+ const key = /* @__PURE__ */ new Map();
116
+ for (const v of layer) {
117
+ const neighbours = down ? vertices[v].preds : vertices[v].succs;
118
+ if (neighbours.length === 0) key.set(v, position[v]);
119
+ else key.set(v, neighbours.reduce((sum, n) => sum + position[n], 0) / neighbours.length);
120
+ }
121
+ layer.sort((a, b) => key.get(a) - key.get(b) || position[a] - position[b]);
122
+ layer.forEach((v, i) => position[v] = i);
123
+ }
124
+ function orderLayers(layers, vertices, sweeps) {
125
+ const position = new Int32Array(vertices.length);
126
+ for (const layer of layers) layer.forEach((v, i) => position[v] = i);
127
+ let best = layers.map((layer) => layer.slice());
128
+ let bestCrossings = totalCrossings(layers, vertices, position);
129
+ let stale = 0;
130
+ for (let sweep = 0; sweep < sweeps && bestCrossings > 0; sweep++) {
131
+ const down = sweep % 2 === 0;
132
+ if (down) for (let l = 1; l < layers.length; l++) reorder(layers[l], vertices, position, true);
133
+ else for (let l = layers.length - 2; l >= 0; l--) reorder(layers[l], vertices, position, false);
134
+ const crossings = totalCrossings(layers, vertices, position);
135
+ if (crossings < bestCrossings) {
136
+ bestCrossings = crossings;
137
+ best = layers.map((layer) => layer.slice());
138
+ stale = 0;
139
+ } else if (++stale >= 2) break;
140
+ }
141
+ best.forEach((layer, l) => layers[l] = layer);
142
+ }
143
+ function place(desired, gaps, weights) {
144
+ const offset = [0];
145
+ for (let i = 1; i < desired.length; i++) offset.push(offset[i - 1] + gaps[i - 1]);
146
+ const blocks = [];
147
+ desired.forEach((d, i) => {
148
+ let block = { value: d - offset[i], weight: weights[i], count: 1 };
149
+ while (blocks.length && blocks[blocks.length - 1].value > block.value) {
150
+ const last = blocks.pop();
151
+ const weight = last.weight + block.weight;
152
+ block = {
153
+ value: (last.value * last.weight + block.value * block.weight) / weight,
154
+ weight,
155
+ count: last.count + block.count
156
+ };
157
+ }
158
+ blocks.push(block);
159
+ });
160
+ const result = [];
161
+ for (const block of blocks) for (let k = 0; k < block.count; k++) result.push(block.value + offset[result.length]);
162
+ return result;
163
+ }
164
+ function assignCross(layers, vertices, nodeGap) {
165
+ const gapBetween = (a, b) => {
166
+ const va = vertices[a];
167
+ const vb = vertices[b];
168
+ const gap = va.node < 0 && vb.node < 0 ? nodeGap / 2 : nodeGap;
169
+ return va.crossSize / 2 + gap + vb.crossSize / 2;
170
+ };
171
+ for (const layer of layers) {
172
+ let at = 0;
173
+ layer.forEach((v, i) => {
174
+ if (i > 0) at += gapBetween(layer[i - 1], v);
175
+ vertices[v].cross = at;
176
+ });
177
+ }
178
+ const passes = ["down", "up", "down", "up", "both", "both"];
179
+ for (const pass of passes) {
180
+ const range = pass === "up" ? layers.map((_, l) => layers.length - 1 - l) : layers.map((_, l) => l);
181
+ for (const l of range) {
182
+ const layer = layers[l];
183
+ if (layer.length === 0) continue;
184
+ const desired = layer.map((v) => {
185
+ const vertex = vertices[v];
186
+ const neighbours = pass === "down" ? vertex.preds : pass === "up" ? vertex.succs : [...vertex.preds, ...vertex.succs];
187
+ if (neighbours.length === 0) return vertex.cross;
188
+ return neighbours.reduce((sum, n) => sum + vertices[n].cross, 0) / neighbours.length;
189
+ });
190
+ const gaps = layer.slice(1).map((v, i) => gapBetween(layer[i], v));
191
+ const weights = layer.map((v) => vertices[v].node < 0 ? 2 : 1);
192
+ place(desired, gaps, weights).forEach((cross, i) => vertices[layer[i]].cross = cross);
193
+ }
194
+ }
195
+ }
196
+ function layoutPart(members, graph, edgeList, rankSizeOf, crossSizeOf, rankGap, nodeGap, sweeps) {
197
+ const local = /* @__PURE__ */ new Map();
198
+ members.forEach((n, i) => local.set(n, i));
199
+ const arcs = edgeList.map((e) => {
200
+ const edge = graph.edges[e];
201
+ const from = local.get(edge.from);
202
+ const to = local.get(edge.to);
203
+ return edge.reversed ? [to, from] : [from, to];
204
+ });
205
+ const layerOf = assignLayers(members.length, arcs);
206
+ const vertices = members.map((n, i) => ({
207
+ node: n,
208
+ rankSize: rankSizeOf(n),
209
+ crossSize: crossSizeOf(n),
210
+ layer: layerOf[i],
211
+ cross: 0,
212
+ preds: [],
213
+ succs: []
214
+ }));
215
+ const segments = edgeList.map((e, k) => {
216
+ const [from, to] = arcs[k];
217
+ const chain = [from];
218
+ let previous = from;
219
+ for (let l = vertices[from].layer + 1; l < vertices[to].layer; l++) {
220
+ const dummy = vertices.length;
221
+ vertices.push({ node: -1, rankSize: 0, crossSize: 0, layer: l, cross: 0, preds: [], succs: [] });
222
+ vertices[previous].succs.push(dummy);
223
+ vertices[dummy].preds.push(previous);
224
+ chain.push(dummy);
225
+ previous = dummy;
226
+ }
227
+ vertices[previous].succs.push(to);
228
+ vertices[to].preds.push(previous);
229
+ chain.push(to);
230
+ return { edge: e, chain };
231
+ });
232
+ const layerCount = vertices.reduce((max, v) => Math.max(max, v.layer + 1), 0);
233
+ const layers = Array.from({ length: layerCount }, () => []);
234
+ vertices.forEach((v, i) => layers[v.layer].push(i));
235
+ orderLayers(layers, vertices, sweeps);
236
+ assignCross(layers, vertices, nodeGap);
237
+ const thickness = layers.map((layer) => layer.reduce((max, v) => Math.max(max, vertices[v].rankSize), 0));
238
+ const start = [];
239
+ let rank = 0;
240
+ thickness.forEach((t, l) => {
241
+ start[l] = rank;
242
+ rank += t + (l + 1 < thickness.length ? rankGap : 0);
243
+ });
244
+ let minCross = Infinity;
245
+ let maxCross = -Infinity;
246
+ for (const v of vertices) {
247
+ minCross = Math.min(minCross, v.cross - v.crossSize / 2);
248
+ maxCross = Math.max(maxCross, v.cross + v.crossSize / 2);
249
+ }
250
+ const shift = Number.isFinite(minCross) ? -minCross : 0;
251
+ const nodes = /* @__PURE__ */ new Map();
252
+ layers.forEach(
253
+ (layer, l) => layer.forEach((v, order) => {
254
+ const vertex = vertices[v];
255
+ if (vertex.node < 0) return;
256
+ nodes.set(vertex.node, {
257
+ rank: start[l] + (thickness[l] - vertex.rankSize) / 2,
258
+ cross: vertex.cross - vertex.crossSize / 2 + shift,
259
+ layer: l,
260
+ order
261
+ });
262
+ })
263
+ );
264
+ const edges = /* @__PURE__ */ new Map();
265
+ for (const { edge, chain } of segments) {
266
+ const points = [];
267
+ chain.forEach((v, i) => {
268
+ const vertex = vertices[v];
269
+ const l = vertex.layer;
270
+ const cross = vertex.cross + shift;
271
+ const bandStart = start[l] + (thickness[l] - vertex.rankSize) / 2;
272
+ if (i === 0) points.push({ rank: bandStart + vertex.rankSize, cross });
273
+ else if (i === chain.length - 1) points.push({ rank: bandStart, cross });
274
+ else {
275
+ points.push({ rank: start[l], cross }, { rank: start[l] + thickness[l], cross });
276
+ }
277
+ });
278
+ if (graph.edges[edge].reversed) points.reverse();
279
+ edges.set(edge, points);
280
+ }
281
+ return {
282
+ nodes,
283
+ edges,
284
+ rankExtent: rank,
285
+ crossExtent: Number.isFinite(maxCross) ? maxCross - minCross : 0
286
+ };
287
+ }
288
+ function dagLayout(input) {
289
+ const direction = input.direction ?? "LR";
290
+ const rankGap = input.rankGap ?? 64;
291
+ const nodeGap = input.nodeGap ?? 24;
292
+ const sweeps = input.sweeps ?? 8;
293
+ const graph = normalise(input);
294
+ const lr = direction === "LR";
295
+ const rankSizeOf = (n) => lr ? graph.nodes[n].width : graph.nodes[n].height;
296
+ const crossSizeOf = (n) => lr ? graph.nodes[n].height : graph.nodes[n].width;
297
+ const parent = graph.nodes.map((_, i) => i);
298
+ const find = (v) => {
299
+ while (parent[v] !== v) {
300
+ parent[v] = parent[parent[v]];
301
+ v = parent[v];
302
+ }
303
+ return v;
304
+ };
305
+ for (const edge of graph.edges) {
306
+ const a = find(edge.from);
307
+ const b = find(edge.to);
308
+ if (a !== b) parent[Math.max(a, b)] = Math.min(a, b);
309
+ }
310
+ const parts = /* @__PURE__ */ new Map();
311
+ graph.nodes.forEach((_, i) => {
312
+ const root = find(i);
313
+ if (!parts.has(root)) parts.set(root, { members: [], edges: [] });
314
+ parts.get(root).members.push(i);
315
+ });
316
+ graph.edges.forEach((edge, e) => parts.get(find(edge.from)).edges.push(e));
317
+ const placedNodes = /* @__PURE__ */ new Map();
318
+ const placedEdges = /* @__PURE__ */ new Map();
319
+ const toPoint = (rank, cross) => lr ? { x: rank, y: cross } : { x: cross, y: rank };
320
+ let crossAt = 0;
321
+ let rankExtent = 0;
322
+ for (const part of parts.values()) {
323
+ const laid = layoutPart(part.members, graph, part.edges, rankSizeOf, crossSizeOf, rankGap, nodeGap, sweeps);
324
+ for (const [n, p] of laid.nodes) {
325
+ const node = graph.nodes[n];
326
+ placedNodes.set(n, {
327
+ id: node.id,
328
+ ...toPoint(p.rank, p.cross + crossAt),
329
+ width: node.width,
330
+ height: node.height,
331
+ layer: p.layer,
332
+ order: p.order
333
+ });
334
+ }
335
+ for (const [e, points] of laid.edges) {
336
+ placedEdges.set(
337
+ e,
338
+ points.map((p) => toPoint(p.rank, p.cross + crossAt))
339
+ );
340
+ }
341
+ rankExtent = Math.max(rankExtent, laid.rankExtent);
342
+ crossAt += laid.crossExtent + nodeGap * 2;
343
+ }
344
+ const crossExtent = Math.max(0, crossAt - nodeGap * 2);
345
+ const nodes = /* @__PURE__ */ new Map();
346
+ graph.nodes.forEach((node, i) => nodes.set(node.id, placedNodes.get(i)));
347
+ const pairs = new Set(graph.edges.map((edge) => `${edge.from} ${edge.to}`));
348
+ const edges = graph.edges.map((edge, e) => {
349
+ let points = placedEdges.get(e);
350
+ if (edge.reversed && pairs.has(`${edge.to} ${edge.from}`)) {
351
+ const across = (n) => lr ? graph.nodes[n].height : graph.nodes[n].width;
352
+ const offset = Math.min(8, across(edge.from) / 4, across(edge.to) / 4);
353
+ points = points.map((p) => lr ? { x: p.x, y: p.y + offset } : { x: p.x + offset, y: p.y });
354
+ }
355
+ return { id: edge.id, source: edge.source, target: edge.target, points, reversed: edge.reversed };
356
+ });
357
+ const extent = toPoint(rankExtent, crossExtent);
358
+ return { nodes, edges, width: extent.x, height: extent.y };
359
+ }
360
+ function dagEdgePath(points, direction = "LR") {
361
+ if (points.length === 0) return "";
362
+ const round = (n) => Math.round(n * 10) / 10;
363
+ const first = points[0];
364
+ let d = `M${round(first.x)},${round(first.y)}`;
365
+ for (let i = 1; i < points.length; i++) {
366
+ const a = points[i - 1];
367
+ const b = points[i];
368
+ if (direction === "LR") {
369
+ const mid = (a.x + b.x) / 2;
370
+ d += ` C${round(mid)},${round(a.y)} ${round(mid)},${round(b.y)} ${round(b.x)},${round(b.y)}`;
371
+ } else {
372
+ const mid = (a.y + b.y) / 2;
373
+ d += ` C${round(a.x)},${round(mid)} ${round(b.x)},${round(mid)} ${round(b.x)},${round(b.y)}`;
374
+ }
375
+ }
376
+ return d;
377
+ }
378
+ export {
379
+ dagEdgeId,
380
+ dagEdgePath,
381
+ dagLayout
382
+ };
383
+ //# sourceMappingURL=dagLayout.js.map