@smwb/ui-solid 0.12.0 → 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 (850) 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/createCssTransition.js +31 -28
  422. package/dist/headless/primitives/createCssTransition.js.map +1 -1
  423. package/dist/headless/primitives/createDismissOnEscape.js +14 -0
  424. package/dist/headless/primitives/createDismissOnEscape.js.map +1 -0
  425. package/dist/headless/primitives/createFocusTrap.js +1 -0
  426. package/dist/headless/primitives/createFocusTrap.js.map +1 -1
  427. package/dist/headless/primitives/createHelperText.js +14 -0
  428. package/dist/headless/primitives/createHelperText.js.map +1 -0
  429. package/dist/headless/primitives/mergeStyle.js +9 -0
  430. package/dist/headless/primitives/mergeStyle.js.map +1 -0
  431. package/dist/headless/primitives/overlayLayer.js +14 -7
  432. package/dist/headless/primitives/overlayLayer.js.map +1 -1
  433. package/dist/headless/source/components/base/animateHeight/animateHeight.jsx +7 -11
  434. package/dist/headless/source/components/base/animateHeight/animateHeight.jsx.map +1 -1
  435. package/dist/headless/source/components/base/icon/icon.jsx +10 -12
  436. package/dist/headless/source/components/base/icon/icon.jsx.map +1 -1
  437. package/dist/headless/source/components/base/ripple/ripple.jsx +16 -4
  438. package/dist/headless/source/components/base/ripple/ripple.jsx.map +1 -1
  439. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx +14 -7
  440. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  441. package/dist/headless/source/components/dataDisplay/card/card.jsx +31 -12
  442. package/dist/headless/source/components/dataDisplay/card/card.jsx.map +1 -1
  443. package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx +9 -3
  444. package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
  445. package/dist/headless/source/components/dataDisplay/chart/chart.jsx +5 -4
  446. package/dist/headless/source/components/dataDisplay/chart/chart.jsx.map +1 -1
  447. package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx +13 -3
  448. package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -1
  449. package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx +6 -7
  450. package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -1
  451. package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx +5 -6
  452. package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -1
  453. package/dist/headless/source/components/dataDisplay/chip/chip.jsx +55 -19
  454. package/dist/headless/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  455. package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx +14 -11
  456. package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
  457. package/dist/headless/source/components/dataDisplay/dagView/dagLayout.js +383 -0
  458. package/dist/headless/source/components/dataDisplay/dagView/dagLayout.js.map +7 -0
  459. package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx +639 -0
  460. package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx.map +1 -0
  461. package/dist/headless/source/components/dataDisplay/dagView/index.js +10 -0
  462. package/dist/headless/source/components/dataDisplay/dagView/index.js.map +7 -0
  463. package/dist/headless/source/components/dataDisplay/dagView/panZoom.js +247 -0
  464. package/dist/headless/source/components/dataDisplay/dagView/panZoom.js.map +7 -0
  465. package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx +4 -6
  466. package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -1
  467. package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +83 -9
  468. package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
  469. package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx +20 -10
  470. package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx.map +1 -1
  471. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx +1 -1
  472. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
  473. package/dist/headless/source/components/dataDisplay/list/list.jsx +3 -3
  474. package/dist/headless/source/components/dataDisplay/list/list.jsx.map +1 -1
  475. package/dist/headless/source/components/dataDisplay/list/listItem.jsx +11 -10
  476. package/dist/headless/source/components/dataDisplay/list/listItem.jsx.map +1 -1
  477. package/dist/headless/source/components/dataDisplay/meter/meter.jsx +3 -2
  478. package/dist/headless/source/components/dataDisplay/meter/meter.jsx.map +1 -1
  479. package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx +3 -2
  480. package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx.map +1 -1
  481. package/dist/headless/source/components/dataDisplay/stat/stat.jsx +7 -8
  482. package/dist/headless/source/components/dataDisplay/stat/stat.jsx.map +1 -1
  483. package/dist/headless/source/components/dataDisplay/table/table.jsx +18 -1
  484. package/dist/headless/source/components/dataDisplay/table/table.jsx.map +1 -1
  485. package/dist/headless/source/components/dataDisplay/table/tableBody.jsx +6 -1
  486. package/dist/headless/source/components/dataDisplay/table/tableBody.jsx.map +1 -1
  487. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx +13 -4
  488. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
  489. package/dist/headless/source/components/dataDisplay/table/tableColumns.jsx +311 -0
  490. package/dist/headless/source/components/dataDisplay/table/tableColumns.jsx.map +1 -0
  491. package/dist/headless/source/components/dataDisplay/table/tableEntities.js +7 -0
  492. package/dist/headless/source/components/dataDisplay/table/tableEntities.js.map +7 -0
  493. package/dist/headless/source/components/dataDisplay/table/tableHead.jsx +14 -1
  494. package/dist/headless/source/components/dataDisplay/table/tableHead.jsx.map +1 -1
  495. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx +51 -33
  496. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
  497. package/dist/headless/source/components/dataDisplay/table/tableHtmlText.js +140 -0
  498. package/dist/headless/source/components/dataDisplay/table/tableHtmlText.js.map +7 -0
  499. package/dist/headless/source/components/dataDisplay/table/tableRow.jsx +11 -5
  500. package/dist/headless/source/components/dataDisplay/table/tableRow.jsx.map +1 -1
  501. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx +48 -19
  502. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
  503. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx +9 -2
  504. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  505. package/dist/headless/source/components/dataDisplay/typography/typography.jsx +2 -6
  506. package/dist/headless/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  507. package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx +12 -2
  508. package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx.map +1 -1
  509. package/dist/headless/source/components/feedBack/message/message.jsx +5 -4
  510. package/dist/headless/source/components/feedBack/message/message.jsx.map +1 -1
  511. package/dist/headless/source/components/feedBack/modal/modal.jsx +5 -2
  512. package/dist/headless/source/components/feedBack/modal/modal.jsx.map +1 -1
  513. package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx +12 -5
  514. package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
  515. package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx +3 -3
  516. package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
  517. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx +52 -5
  518. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  519. package/dist/headless/source/components/inputs/button/button.jsx +8 -3
  520. package/dist/headless/source/components/inputs/button/button.jsx.map +1 -1
  521. package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx +4 -3
  522. package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
  523. package/dist/headless/source/components/inputs/checkbox/checkbox.jsx +27 -4
  524. package/dist/headless/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
  525. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +13 -0
  526. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  527. package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx +4 -1
  528. package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -1
  529. package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx +12 -12
  530. package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -1
  531. package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx +13 -3
  532. package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -1
  533. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx +13 -0
  534. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
  535. package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx +12 -1
  536. package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
  537. package/dist/headless/source/components/inputs/radioButton/radioButton.jsx +16 -4
  538. package/dist/headless/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
  539. package/dist/headless/source/components/inputs/rating/rating.jsx +49 -20
  540. package/dist/headless/source/components/inputs/rating/rating.jsx.map +1 -1
  541. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx +222 -61
  542. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
  543. package/dist/headless/source/components/inputs/selectField/optionNavigation.js +51 -0
  544. package/dist/headless/source/components/inputs/selectField/optionNavigation.js.map +7 -0
  545. package/dist/headless/source/components/inputs/selectField/selectField.jsx +318 -92
  546. package/dist/headless/source/components/inputs/selectField/selectField.jsx.map +1 -1
  547. package/dist/headless/source/components/inputs/slider/slider.jsx +89 -18
  548. package/dist/headless/source/components/inputs/slider/slider.jsx.map +1 -1
  549. package/dist/headless/source/components/inputs/textField/textField.jsx +47 -9
  550. package/dist/headless/source/components/inputs/textField/textField.jsx.map +1 -1
  551. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx +20 -6
  552. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
  553. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx +13 -0
  554. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  555. package/dist/headless/source/components/inputs/toggle/toggle.jsx +14 -2
  556. package/dist/headless/source/components/inputs/toggle/toggle.jsx.map +1 -1
  557. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx +7 -2
  558. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
  559. package/dist/headless/source/components/layout/appLayout/appLayout.jsx +8 -6
  560. package/dist/headless/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  561. package/dist/headless/source/components/layout/divider/divider.jsx +6 -5
  562. package/dist/headless/source/components/layout/divider/divider.jsx.map +1 -1
  563. package/dist/headless/source/components/layout/floatingWindow/floatingWindow.jsx +17 -11
  564. package/dist/headless/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
  565. package/dist/headless/source/components/layout/grid/grid.jsx +20 -8
  566. package/dist/headless/source/components/layout/grid/grid.jsx.map +1 -1
  567. package/dist/headless/source/components/layout/page/page.jsx +10 -2
  568. package/dist/headless/source/components/layout/page/page.jsx.map +1 -1
  569. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx +3 -2
  570. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  571. package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx +5 -5
  572. package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -1
  573. package/dist/headless/source/components/layout/sheet/sheet.jsx +6 -8
  574. package/dist/headless/source/components/layout/sheet/sheet.jsx.map +1 -1
  575. package/dist/headless/source/components/layout/stack/stack.jsx +15 -11
  576. package/dist/headless/source/components/layout/stack/stack.jsx.map +1 -1
  577. package/dist/headless/source/components/navigation/appBar/appBar.jsx +3 -2
  578. package/dist/headless/source/components/navigation/appBar/appBar.jsx.map +1 -1
  579. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx +48 -40
  580. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  581. package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx +9 -2
  582. package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
  583. package/dist/headless/source/components/navigation/menu/menu.jsx.map +1 -1
  584. package/dist/headless/source/components/navigation/menu/menuComponent.jsx +3 -4
  585. package/dist/headless/source/components/navigation/menu/menuComponent.jsx.map +1 -1
  586. package/dist/headless/source/components/navigation/menu/menuContext.js.map +2 -2
  587. package/dist/headless/source/components/navigation/menu/menuFloating.jsx +26 -4
  588. package/dist/headless/source/components/navigation/menu/menuFloating.jsx.map +1 -1
  589. package/dist/headless/source/components/navigation/menu/menuItem.jsx +22 -2
  590. package/dist/headless/source/components/navigation/menu/menuItem.jsx.map +1 -1
  591. package/dist/headless/source/components/navigation/menu/menuList.jsx +19 -7
  592. package/dist/headless/source/components/navigation/menu/menuList.jsx.map +1 -1
  593. package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx +36 -4
  594. package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx.map +1 -1
  595. package/dist/headless/source/components/navigation/pagination/pagination.jsx +4 -3
  596. package/dist/headless/source/components/navigation/pagination/pagination.jsx.map +1 -1
  597. package/dist/headless/source/components/navigation/sidebar/sidebar.jsx +1 -1
  598. package/dist/headless/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
  599. package/dist/headless/source/components/navigation/stepper/stepper.jsx +14 -9
  600. package/dist/headless/source/components/navigation/stepper/stepper.jsx.map +1 -1
  601. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx +12 -16
  602. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  603. package/dist/headless/source/components/navigation/tabs/tabs.jsx +34 -10
  604. package/dist/headless/source/components/navigation/tabs/tabs.jsx.map +1 -1
  605. package/dist/headless/source/components/navigation/tabs/tabsContext.js.map +2 -2
  606. package/dist/headless/source/connects/rt/table/table.jsx +7 -2
  607. package/dist/headless/source/connects/rt/table/table.jsx.map +1 -1
  608. package/dist/headless/source/index.js +3 -0
  609. package/dist/headless/source/index.js.map +2 -2
  610. package/dist/headless/source/primitives/createCssTransition.js +10 -1
  611. package/dist/headless/source/primitives/createCssTransition.js.map +2 -2
  612. package/dist/headless/source/primitives/createDismissOnEscape.js +17 -0
  613. package/dist/headless/source/primitives/createDismissOnEscape.js.map +7 -0
  614. package/dist/headless/source/primitives/createFocusTrap.js +1 -0
  615. package/dist/headless/source/primitives/createFocusTrap.js.map +2 -2
  616. package/dist/headless/source/primitives/createHelperText.js +16 -0
  617. package/dist/headless/source/primitives/createHelperText.js.map +7 -0
  618. package/dist/headless/source/primitives/mergeStyle.js +15 -0
  619. package/dist/headless/source/primitives/mergeStyle.js.map +7 -0
  620. package/dist/headless/source/primitives/overlayLayer.js +10 -2
  621. package/dist/headless/source/primitives/overlayLayer.js.map +2 -2
  622. package/dist/headless/source/utils/controlProps.js +22 -0
  623. package/dist/headless/source/utils/controlProps.js.map +7 -0
  624. package/dist/headless/source/utils/ownClick.js +41 -0
  625. package/dist/headless/source/utils/ownClick.js.map +7 -0
  626. package/dist/headless/utils/controlProps.js +20 -0
  627. package/dist/headless/utils/controlProps.js.map +1 -0
  628. package/dist/headless/utils/ownClick.js +39 -0
  629. package/dist/headless/utils/ownClick.js.map +1 -0
  630. package/dist/index.d.ts +2 -0
  631. package/dist/index.js +224 -220
  632. package/dist/index.js.map +1 -1
  633. package/dist/primitives/createCssTransition.d.ts +6 -0
  634. package/dist/primitives/createCssTransition.js +31 -28
  635. package/dist/primitives/createCssTransition.js.map +1 -1
  636. package/dist/primitives/createDismissOnEscape.d.ts +12 -0
  637. package/dist/primitives/createDismissOnEscape.js +14 -0
  638. package/dist/primitives/createDismissOnEscape.js.map +1 -0
  639. package/dist/primitives/createFocusTrap.d.ts +2 -0
  640. package/dist/primitives/createFocusTrap.js +1 -0
  641. package/dist/primitives/createFocusTrap.js.map +1 -1
  642. package/dist/primitives/createHelperText.d.ts +26 -0
  643. package/dist/primitives/createHelperText.js +14 -0
  644. package/dist/primitives/createHelperText.js.map +1 -0
  645. package/dist/primitives/mergeStyle.d.ts +19 -0
  646. package/dist/primitives/mergeStyle.js +9 -0
  647. package/dist/primitives/mergeStyle.js.map +1 -0
  648. package/dist/primitives/overlayLayer.d.ts +15 -3
  649. package/dist/primitives/overlayLayer.js +14 -7
  650. package/dist/primitives/overlayLayer.js.map +1 -1
  651. package/dist/source/components/base/animateHeight/animateHeight.jsx +7 -11
  652. package/dist/source/components/base/animateHeight/animateHeight.jsx.map +1 -1
  653. package/dist/source/components/base/icon/icon.jsx +10 -12
  654. package/dist/source/components/base/icon/icon.jsx.map +1 -1
  655. package/dist/source/components/base/ripple/ripple.jsx +16 -4
  656. package/dist/source/components/base/ripple/ripple.jsx.map +1 -1
  657. package/dist/source/components/dataDisplay/avatar/avatar.jsx +14 -7
  658. package/dist/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  659. package/dist/source/components/dataDisplay/card/card.jsx +31 -12
  660. package/dist/source/components/dataDisplay/card/card.jsx.map +1 -1
  661. package/dist/source/components/dataDisplay/carousel/carousel.jsx +9 -3
  662. package/dist/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
  663. package/dist/source/components/dataDisplay/chart/chart.jsx +5 -4
  664. package/dist/source/components/dataDisplay/chart/chart.jsx.map +1 -1
  665. package/dist/source/components/dataDisplay/chat/chatIconButton.jsx +13 -3
  666. package/dist/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -1
  667. package/dist/source/components/dataDisplay/chat/chatLayout.jsx +6 -7
  668. package/dist/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -1
  669. package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx +5 -6
  670. package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -1
  671. package/dist/source/components/dataDisplay/chip/chip.jsx +55 -19
  672. package/dist/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  673. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx +14 -11
  674. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
  675. package/dist/source/components/dataDisplay/dagView/dagLayout.js +383 -0
  676. package/dist/source/components/dataDisplay/dagView/dagLayout.js.map +7 -0
  677. package/dist/source/components/dataDisplay/dagView/dagView.jsx +641 -0
  678. package/dist/source/components/dataDisplay/dagView/dagView.jsx.map +1 -0
  679. package/dist/source/components/dataDisplay/dagView/index.js +10 -0
  680. package/dist/source/components/dataDisplay/dagView/index.js.map +7 -0
  681. package/dist/source/components/dataDisplay/dagView/panZoom.js +247 -0
  682. package/dist/source/components/dataDisplay/dagView/panZoom.js.map +7 -0
  683. package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx +4 -6
  684. package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -1
  685. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +83 -9
  686. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
  687. package/dist/source/components/dataDisplay/kanban/kanban.jsx +20 -10
  688. package/dist/source/components/dataDisplay/kanban/kanban.jsx.map +1 -1
  689. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx +1 -1
  690. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
  691. package/dist/source/components/dataDisplay/list/list.jsx +3 -3
  692. package/dist/source/components/dataDisplay/list/list.jsx.map +1 -1
  693. package/dist/source/components/dataDisplay/list/listItem.jsx +11 -10
  694. package/dist/source/components/dataDisplay/list/listItem.jsx.map +1 -1
  695. package/dist/source/components/dataDisplay/meter/meter.jsx +3 -2
  696. package/dist/source/components/dataDisplay/meter/meter.jsx.map +1 -1
  697. package/dist/source/components/dataDisplay/personChip/personChip.jsx +3 -2
  698. package/dist/source/components/dataDisplay/personChip/personChip.jsx.map +1 -1
  699. package/dist/source/components/dataDisplay/stat/stat.jsx +7 -8
  700. package/dist/source/components/dataDisplay/stat/stat.jsx.map +1 -1
  701. package/dist/source/components/dataDisplay/table/table.jsx +18 -1
  702. package/dist/source/components/dataDisplay/table/table.jsx.map +1 -1
  703. package/dist/source/components/dataDisplay/table/tableBody.jsx +6 -1
  704. package/dist/source/components/dataDisplay/table/tableBody.jsx.map +1 -1
  705. package/dist/source/components/dataDisplay/table/tableCell.jsx +13 -4
  706. package/dist/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
  707. package/dist/source/components/dataDisplay/table/tableColumns.jsx +311 -0
  708. package/dist/source/components/dataDisplay/table/tableColumns.jsx.map +1 -0
  709. package/dist/source/components/dataDisplay/table/tableEntities.js +7 -0
  710. package/dist/source/components/dataDisplay/table/tableEntities.js.map +7 -0
  711. package/dist/source/components/dataDisplay/table/tableHead.jsx +14 -1
  712. package/dist/source/components/dataDisplay/table/tableHead.jsx.map +1 -1
  713. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx +51 -33
  714. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
  715. package/dist/source/components/dataDisplay/table/tableHtmlText.js +140 -0
  716. package/dist/source/components/dataDisplay/table/tableHtmlText.js.map +7 -0
  717. package/dist/source/components/dataDisplay/table/tableRow.jsx +11 -5
  718. package/dist/source/components/dataDisplay/table/tableRow.jsx.map +1 -1
  719. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx +48 -19
  720. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
  721. package/dist/source/components/dataDisplay/treeView/treeView.jsx +9 -2
  722. package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  723. package/dist/source/components/dataDisplay/typography/typography.jsx +2 -6
  724. package/dist/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  725. package/dist/source/components/feedBack/emptyState/emptyState.jsx +12 -2
  726. package/dist/source/components/feedBack/emptyState/emptyState.jsx.map +1 -1
  727. package/dist/source/components/feedBack/message/message.jsx +5 -4
  728. package/dist/source/components/feedBack/message/message.jsx.map +1 -1
  729. package/dist/source/components/feedBack/modal/modal.jsx +5 -2
  730. package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
  731. package/dist/source/components/feedBack/skeleton/skeleton.jsx +12 -5
  732. package/dist/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
  733. package/dist/source/components/feedBack/snackbar/snackbar.jsx +3 -3
  734. package/dist/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
  735. package/dist/source/components/feedBack/tooltip/tooltip.jsx +52 -5
  736. package/dist/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  737. package/dist/source/components/inputs/button/button.jsx +8 -3
  738. package/dist/source/components/inputs/button/button.jsx.map +1 -1
  739. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx +4 -3
  740. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
  741. package/dist/source/components/inputs/checkbox/checkbox.jsx +27 -4
  742. package/dist/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
  743. package/dist/source/components/inputs/datePicker/datePicker.jsx +13 -0
  744. package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  745. package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx +4 -1
  746. package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -1
  747. package/dist/source/components/inputs/datePicker/datePickerDay.jsx +12 -12
  748. package/dist/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -1
  749. package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx +13 -3
  750. package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -1
  751. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx +13 -0
  752. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
  753. package/dist/source/components/inputs/floatingButton/floatingButton.jsx +12 -1
  754. package/dist/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
  755. package/dist/source/components/inputs/radioButton/radioButton.jsx +16 -4
  756. package/dist/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
  757. package/dist/source/components/inputs/rating/rating.jsx +49 -20
  758. package/dist/source/components/inputs/rating/rating.jsx.map +1 -1
  759. package/dist/source/components/inputs/selectField/dropdownMenu.jsx +222 -61
  760. package/dist/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
  761. package/dist/source/components/inputs/selectField/optionNavigation.js +51 -0
  762. package/dist/source/components/inputs/selectField/optionNavigation.js.map +7 -0
  763. package/dist/source/components/inputs/selectField/selectField.jsx +318 -92
  764. package/dist/source/components/inputs/selectField/selectField.jsx.map +1 -1
  765. package/dist/source/components/inputs/slider/slider.jsx +89 -18
  766. package/dist/source/components/inputs/slider/slider.jsx.map +1 -1
  767. package/dist/source/components/inputs/textField/textField.jsx +47 -9
  768. package/dist/source/components/inputs/textField/textField.jsx.map +1 -1
  769. package/dist/source/components/inputs/textField/textFieldWrapper.jsx +20 -6
  770. package/dist/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
  771. package/dist/source/components/inputs/timePicker/timePicker.jsx +13 -0
  772. package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  773. package/dist/source/components/inputs/toggle/toggle.jsx +14 -2
  774. package/dist/source/components/inputs/toggle/toggle.jsx.map +1 -1
  775. package/dist/source/components/inputs/valueSlider/valueSlider.jsx +7 -2
  776. package/dist/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
  777. package/dist/source/components/layout/appLayout/appLayout.jsx +8 -6
  778. package/dist/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  779. package/dist/source/components/layout/divider/divider.jsx +6 -5
  780. package/dist/source/components/layout/divider/divider.jsx.map +1 -1
  781. package/dist/source/components/layout/floatingWindow/floatingWindow.jsx +17 -11
  782. package/dist/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
  783. package/dist/source/components/layout/grid/grid.jsx +20 -8
  784. package/dist/source/components/layout/grid/grid.jsx.map +1 -1
  785. package/dist/source/components/layout/page/page.jsx +10 -2
  786. package/dist/source/components/layout/page/page.jsx.map +1 -1
  787. package/dist/source/components/layout/pageHeader/pageHeader.jsx +3 -2
  788. package/dist/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  789. package/dist/source/components/layout/sectionHeader/sectionHeader.jsx +5 -5
  790. package/dist/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -1
  791. package/dist/source/components/layout/sheet/sheet.jsx +6 -8
  792. package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
  793. package/dist/source/components/layout/stack/stack.jsx +15 -11
  794. package/dist/source/components/layout/stack/stack.jsx.map +1 -1
  795. package/dist/source/components/navigation/appBar/appBar.jsx +3 -2
  796. package/dist/source/components/navigation/appBar/appBar.jsx.map +1 -1
  797. package/dist/source/components/navigation/bottomBar/bottomBar.jsx +48 -40
  798. package/dist/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  799. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx +9 -2
  800. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
  801. package/dist/source/components/navigation/menu/menu.jsx.map +1 -1
  802. package/dist/source/components/navigation/menu/menuComponent.jsx +3 -4
  803. package/dist/source/components/navigation/menu/menuComponent.jsx.map +1 -1
  804. package/dist/source/components/navigation/menu/menuContext.js.map +2 -2
  805. package/dist/source/components/navigation/menu/menuFloating.jsx +26 -4
  806. package/dist/source/components/navigation/menu/menuFloating.jsx.map +1 -1
  807. package/dist/source/components/navigation/menu/menuItem.jsx +22 -2
  808. package/dist/source/components/navigation/menu/menuItem.jsx.map +1 -1
  809. package/dist/source/components/navigation/menu/menuList.jsx +19 -7
  810. package/dist/source/components/navigation/menu/menuList.jsx.map +1 -1
  811. package/dist/source/components/navigation/menu/menuSubmenu.jsx +36 -4
  812. package/dist/source/components/navigation/menu/menuSubmenu.jsx.map +1 -1
  813. package/dist/source/components/navigation/pagination/pagination.jsx +4 -3
  814. package/dist/source/components/navigation/pagination/pagination.jsx.map +1 -1
  815. package/dist/source/components/navigation/sidebar/sidebar.jsx +1 -1
  816. package/dist/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
  817. package/dist/source/components/navigation/stepper/stepper.jsx +14 -9
  818. package/dist/source/components/navigation/stepper/stepper.jsx.map +1 -1
  819. package/dist/source/components/navigation/tabs/tab/tab.jsx +12 -16
  820. package/dist/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  821. package/dist/source/components/navigation/tabs/tabs.jsx +34 -10
  822. package/dist/source/components/navigation/tabs/tabs.jsx.map +1 -1
  823. package/dist/source/components/navigation/tabs/tabsContext.js.map +2 -2
  824. package/dist/source/connects/rt/table/table.jsx +7 -2
  825. package/dist/source/connects/rt/table/table.jsx.map +1 -1
  826. package/dist/source/index.js +3 -0
  827. package/dist/source/index.js.map +2 -2
  828. package/dist/source/primitives/createCssTransition.js +10 -1
  829. package/dist/source/primitives/createCssTransition.js.map +2 -2
  830. package/dist/source/primitives/createDismissOnEscape.js +17 -0
  831. package/dist/source/primitives/createDismissOnEscape.js.map +7 -0
  832. package/dist/source/primitives/createFocusTrap.js +1 -0
  833. package/dist/source/primitives/createFocusTrap.js.map +2 -2
  834. package/dist/source/primitives/createHelperText.js +16 -0
  835. package/dist/source/primitives/createHelperText.js.map +7 -0
  836. package/dist/source/primitives/mergeStyle.js +15 -0
  837. package/dist/source/primitives/mergeStyle.js.map +7 -0
  838. package/dist/source/primitives/overlayLayer.js +10 -2
  839. package/dist/source/primitives/overlayLayer.js.map +2 -2
  840. package/dist/source/utils/controlProps.js +22 -0
  841. package/dist/source/utils/controlProps.js.map +7 -0
  842. package/dist/source/utils/ownClick.js +41 -0
  843. package/dist/source/utils/ownClick.js.map +7 -0
  844. package/dist/utils/controlProps.d.ts +17 -0
  845. package/dist/utils/controlProps.js +20 -0
  846. package/dist/utils/controlProps.js.map +1 -0
  847. package/dist/utils/ownClick.d.ts +16 -0
  848. package/dist/utils/ownClick.js +39 -0
  849. package/dist/utils/ownClick.js.map +1 -0
  850. package/package.json +9 -3
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/dataDisplay/dagView/dagView.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/tokens.entry.less\";\nimport \"@smwb/ui-styles/less/components/dagView/dagView.entry.less\";\nimport {\n DEV,\n For,\n type JSX,\n Show,\n createEffect,\n createMemo,\n createSelector,\n createSignal,\n createUniqueId,\n mergeProps,\n on,\n onCleanup,\n onMount,\n splitProps,\n untrack,\n} from \"solid-js\";\nimport cn from \"clsx\";\nimport { createControllableState } from \"../../../primitives/createControllableState\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { mergeStyle } from \"../../../primitives/mergeStyle\";\nimport {\n type DagDirection,\n type DagLayoutEdge,\n type DagLayoutInput,\n type DagLayoutNode,\n type DagLayoutResult,\n dagEdgePath,\n dagLayout,\n} from \"./dagLayout\";\nimport { type Viewport, centerOn, createPanZoom, fitBounds, isVisible, viewportTransform, zoomAt } from \"./panZoom\";\n\n/** A node's status: a built-in one, coloured by the theme, or any word of the app's, styled by `[data-status]`. */\nexport type DagViewStatus =\n | \"idle\"\n | \"pending\"\n | \"running\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"skipped\"\n | (string & {});\n\nexport interface DagViewNode<T = unknown> {\n /** Unique among the nodes; edges name nodes by it. */\n id: string;\n /** What the default node shows, and its accessible name; the id unless given. */\n label?: JSX.Element;\n /** Colours the node's accent from the theme. */\n status?: DagViewStatus | undefined;\n /** The node's accent colour, over its status colour: any CSS colour. */\n accent?: string | undefined;\n /** The node's width in pixels; `nodeWidth` unless given. */\n width?: number | undefined;\n /** The node's height in pixels; `nodeHeight` unless given. */\n height?: number | undefined;\n /** Anything of the app's, handed back to `renderNode` and `onNodeClick`. */\n data?: T;\n /** Shown, focusable, but not selectable. */\n disabled?: boolean | undefined;\n}\n\nexport interface DagViewEdge {\n /** `source->target` unless given. */\n id?: string | undefined;\n /** The id of the node the edge starts from: the one depended on. */\n source: string;\n /** The id of the node the edge points to: the one that depends on `source`. */\n target: string;\n}\n\n/** A node's state for `renderNode`. Its fields are reactive: read them in JSX or an effect. */\nexport interface DagViewNodeState {\n readonly selected: boolean;\n /** Next to the selected node: \"upstream\" feeds it, \"downstream\" depends on it. */\n readonly related: \"upstream\" | \"downstream\" | null;\n /** Set apart from the selected node and its neighbours, with `dimUnrelated`. */\n readonly dimmed: boolean;\n /** Has keyboard focus. */\n readonly focused: boolean;\n}\n\n/** Where the graph is: moved by x, y (pixels) and scaled by zoom. */\nexport type DagViewViewport = Viewport;\n\n/** Moves the view from outside; handed over by `apiRef` once the graph is in the page. */\nexport interface DagViewApi {\n /** Fits the whole graph in view. */\n fitView(): void;\n /** Zooms to `zoom` around the middle of the view. */\n zoomTo(zoom: number): void;\n /** Zooms by `factor` around the middle of the view. */\n zoomBy(factor: number): void;\n /** Moves the node with this id to the middle of the view. */\n centerNode(id: string): void;\n}\n\n/** Texts for assistive technology and the zoom buttons, English by default. */\nexport interface DagViewLabels {\n /** What the graph is called as a widget: \"dependency graph\". */\n roleDescription: string;\n /** \"Status\", before a node's status word. */\n status: string;\n /** \"Depends on\", before the names of the nodes a node's edges come from. */\n dependsOn: string;\n /** \"Required by\", before the names of the nodes a node's edges go to. */\n requiredBy: string;\n /** Status words, shown on the default nodes and read out: { running: \"Running\", … }. */\n statuses: Record<string, string>;\n zoomIn: string;\n zoomOut: string;\n fitView: string;\n /** The name of the group of zoom buttons. */\n controls: string;\n}\n\nexport interface DagViewProps<T = unknown> extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onClick\"> {\n /** What the graph shows: its accessible name. */\n label: string;\n /** The graph in words, for screen readers; it is there on the server too. */\n summary?: string | undefined;\n /** The nodes. A change of status, label or data alone does not lay the graph out again. */\n nodes: readonly DagViewNode<T>[];\n /** The edges, from the node depended on to the node that depends on it. */\n edges: readonly DagViewEdge[];\n /**\n * Draws a node's content inside its box; the default shows a status dot,\n * the label and the status word. Called once per node: `node` and `state`\n * are reactive, so read their fields in JSX. Keep the content\n * non-interactive where you can: a node is an ARIA option, whose content\n * assistive technology may read as plain text, and a click in it also\n * selects the node. Links and buttons in it are left out of the Tab order\n * except in the node that is the graph's Tab stop.\n */\n renderNode?: ((node: DagViewNode<T>, state: DagViewNodeState) => JSX.Element) | undefined;\n /** Which way the layers run: \"LR\" (left to right, default) or \"TB\" (top to bottom). */\n direction?: DagDirection | undefined;\n /** A node's width in pixels, unless the node sets its own; 180 by default. */\n nodeWidth?: number | undefined;\n /** A node's height in pixels, unless the node sets its own; 56 by default. */\n nodeHeight?: number | undefined;\n /** The space between layers in pixels; 64 by default. */\n rankGap?: number | undefined;\n /** The space between nodes in a layer in pixels; 24 by default. */\n nodeGap?: number | undefined;\n /** Lays the graph out in place of the built-in layout, e.g. with dagre or elk. It must be synchronous. */\n layout?: ((input: DagLayoutInput) => DagLayoutResult) | undefined;\n /** The selected node's id (controlled); null selects nothing. */\n selectedId?: string | null | undefined;\n /** The node selected at first (uncontrolled). */\n defaultSelectedId?: string | null | undefined;\n /** A node was selected (its id) or the selection was cleared (null). */\n onSelectedChange?: ((id: string | null) => void) | undefined;\n /** A node was clicked, or chosen with Enter or Space. Not called for a disabled node. */\n onNodeClick?: ((node: DagViewNode<T>, event: MouseEvent | KeyboardEvent) => void) | undefined;\n /** Fades the nodes and edges that are not next to the selected node. */\n dimUnrelated?: boolean | undefined;\n /** Where the graph is (controlled). */\n viewport?: DagViewViewport | undefined;\n /** Where the graph is at first (uncontrolled); with `fit={false}` the page does not move after it loads. */\n defaultViewport?: DagViewViewport | undefined;\n /** The view moved or zoomed: at most once per frame during a gesture. */\n onViewportChange?: ((viewport: DagViewViewport) => void) | undefined;\n /** Fits the graph in view once it is in the page, and again when its nodes or edges change; true by default. */\n fit?: boolean | undefined;\n /** The smallest zoom; 0.1 by default. */\n minZoom?: number | undefined;\n /** The largest zoom; 2 by default. */\n maxZoom?: number | undefined;\n /** What a plain mouse wheel does: \"zoom\" (default), \"pan\", or \"none\" (the page scrolls). Ctrl+wheel and a trackpad pinch always zoom. */\n wheel?: \"zoom\" | \"pan\" | \"none\" | undefined;\n /** Shows the zoom in, zoom out and fit buttons; true by default. */\n controls?: boolean | undefined;\n /** Texts for assistive technology and the buttons, over the English defaults. */\n labels?: Partial<DagViewLabels> | undefined;\n /**\n * The graph's height: a number of pixels or any CSS length; 480 by default,\n * from the stylesheet, so a height in `style` works too. It fills the width.\n */\n height?: number | string | undefined;\n /** Gets the functions that move the view from outside. */\n apiRef?: ((api: DagViewApi) => void) | undefined;\n /** Test id of the root `<div>`; `dag-view` unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLDivElement>;\n}\n\n/** Room around the graph inside its world, in pixels. */\nconst PADDING = 24;\n\nconst DEFAULT_LABELS: DagViewLabels = {\n roleDescription: \"dependency graph\",\n status: \"Status\",\n dependsOn: \"Depends on\",\n requiredBy: \"Required by\",\n statuses: {\n idle: \"Idle\",\n pending: \"Pending\",\n running: \"Running\",\n success: \"Success\",\n warning: \"Warning\",\n error: \"Error\",\n skipped: \"Skipped\",\n },\n zoomIn: \"Zoom in\",\n zoomOut: \"Zoom out\",\n fitView: \"Fit to view\",\n controls: \"Zoom\",\n};\n\nconst NODE_KEYS = [\"label\", \"status\", \"accent\", \"width\", \"height\", \"data\", \"disabled\"] as const;\n\n/** What can take focus inside a node's own content. */\nconst INNER_FOCUSABLE =\n 'a[href], button, input, select, textarea, iframe, summary, audio[controls], video[controls], [tabindex], [contenteditable]:not([contenteditable=\"false\"])';\n\nconst cssLength =(value: number | string): string => (typeof value === \"number\" ? `${value}px` : value);\n\nconst sameList = (a: readonly string[], b: readonly string[]): boolean =>\n a.length === b.length && a.every((value, i) => value === b[i]);\n\n/** A node's name in words, for descriptions: its label when that is text, else its id. */\nconst nameOf = (node: DagViewNode<unknown> | undefined, id: string): string => {\n const label = node?.label;\n return typeof label === \"string\" || typeof label === \"number\" ? String(label) : id;\n};\n\nconst warn = DEV ? (message: string): void => console.warn(`[smwb] DagView: ${message}`) : undefined;\n\n/**\n * A directed graph of dependencies: nodes in layers, left to right or top to\n * bottom, joined by arrows. A node is selected by a click or the keyboard, and\n * the edges into and out of it light up; the view pans and zooms with a mouse,\n * a trackpad, touch or the keyboard.\n */\nexport function DagView<T = unknown>(props: DagViewProps<T>): JSX.Element {\n const merged = mergeProps(\n {\n direction: \"LR\" as DagDirection,\n nodeWidth: 180,\n nodeHeight: 56,\n rankGap: 64,\n nodeGap: 24,\n fit: true,\n minZoom: 0.1,\n maxZoom: 2,\n wheel: \"zoom\" as \"zoom\" | \"pan\" | \"none\",\n controls: true,\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"style\",\n \"label\",\n \"summary\",\n \"nodes\",\n \"edges\",\n \"renderNode\",\n \"direction\",\n \"nodeWidth\",\n \"nodeHeight\",\n \"rankGap\",\n \"nodeGap\",\n \"layout\",\n \"selectedId\",\n \"defaultSelectedId\",\n \"onSelectedChange\",\n \"onNodeClick\",\n \"dimUnrelated\",\n \"viewport\",\n \"defaultViewport\",\n \"onViewportChange\",\n \"fit\",\n \"minZoom\",\n \"maxZoom\",\n \"wheel\",\n \"controls\",\n \"labels\",\n \"height\",\n \"apiRef\",\n \"ref\",\n \"data-testid\",\n ]);\n\n const uid = createUniqueId();\n const arrowId = `${uid}-arrow`;\n const activeArrowId = `${uid}-arrow-active`;\n const summaryId = `${uid}-summary`;\n let root!: HTMLDivElement;\n const elements = new Map<string, HTMLElement>();\n\n const labels = createMemo(\n (): DagViewLabels => ({\n ...DEFAULT_LABELS,\n ...local.labels,\n statuses: { ...DEFAULT_LABELS.statuses, ...local.labels?.statuses },\n })\n );\n const statusWord = (status: string): string => labels().statuses[status] ?? status;\n\n // ---- Nodes and layout ----\n\n const byId = createMemo(() => {\n const map = new Map<string, DagViewNode<T>>();\n for (const node of local.nodes) if (!map.has(node.id)) map.set(node.id, node);\n return map;\n });\n // Nodes are drawn by id, so content stays mounted when the app replaces a\n // node object to change its status.\n const ids = createMemo(() => [...byId().keys()], [], { equals: sameList });\n\n // The layout depends only on the graph's shape; a status change leaves it be.\n const structure = createMemo(\n () => {\n const nodes = [...byId().values()].map((node) => ({\n id: node.id,\n width: node.width ?? local.nodeWidth,\n height: node.height ?? local.nodeHeight,\n }));\n const edges = local.edges.map((edge) => ({ id: edge.id, source: edge.source, target: edge.target }));\n const input: DagLayoutInput = {\n nodes,\n edges,\n direction: local.direction,\n rankGap: local.rankGap,\n nodeGap: local.nodeGap,\n warn,\n };\n const key = JSON.stringify([\n local.direction,\n local.rankGap,\n local.nodeGap,\n nodes.map((n) => [n.id, n.width, n.height]),\n edges.map((e) => [e.id ?? null, e.source, e.target]),\n ]);\n return { key, input };\n },\n undefined,\n { equals: (a, b) => a.key === b.key }\n );\n const layout = createMemo(() => (local.layout ?? dagLayout)(structure().input));\n\n // The flow of a layer runs along x in LR and along y in TB; across it is the other one.\n const across = (node: DagLayoutNode): number => (local.direction === \"TB\" ? node.x : node.y);\n\n const graph = createMemo(() => {\n const result = layout();\n const incoming = new Map<string, DagLayoutEdge[]>();\n const outgoing = new Map<string, DagLayoutEdge[]>();\n for (const edge of result.edges) {\n if (!incoming.has(edge.target)) incoming.set(edge.target, []);\n if (!outgoing.has(edge.source)) outgoing.set(edge.source, []);\n incoming.get(edge.target)!.push(edge);\n outgoing.get(edge.source)!.push(edge);\n }\n const ordered = [...result.nodes.values()].sort((a, b) => a.layer - b.layer || across(a) - across(b));\n const layers = new Map<number, DagLayoutNode[]>();\n for (const node of ordered) {\n if (!layers.has(node.layer)) layers.set(node.layer, []);\n layers.get(node.layer)!.push(node);\n }\n return { incoming, outgoing, ordered, layers };\n });\n\n // ---- Selection ----\n\n const [selected, setSelected] = createControllableState<string | null>({\n value: () => local.selectedId,\n defaultValue: untrack(() => local.defaultSelectedId) ?? null,\n onChange: (id) => local.onSelectedChange?.(id),\n });\n const isSelected = createSelector(selected);\n\n const relations = createMemo(() => {\n const id = selected();\n const edges = new Map<string, \"upstream\" | \"downstream\">();\n const nodes = new Map<string, \"upstream\" | \"downstream\">();\n if (id === null || !layout().nodes.has(id)) return { active: false, edges, nodes };\n const { incoming, outgoing } = graph();\n for (const edge of incoming.get(id) ?? []) {\n edges.set(edge.id, \"upstream\");\n nodes.set(edge.source, \"upstream\");\n }\n for (const edge of outgoing.get(id) ?? []) {\n edges.set(edge.id, \"downstream\");\n nodes.set(edge.target, \"downstream\");\n }\n return { active: true, edges, nodes };\n });\n\n // ---- Focus: one tab stop, on the last focused node, else the selected one, else the first ----\n\n const [active, setActive] = createSignal<string | null>(null);\n const [focused, setFocused] = createSignal<string | null>(null);\n const tabStop = createMemo(() => {\n const nodes = layout().nodes;\n const last = active();\n if (last !== null && nodes.has(last)) return last;\n const chosen = selected();\n if (chosen !== null && nodes.has(chosen)) return chosen;\n return graph().ordered[0]?.id ?? null;\n });\n\n // ---- Viewport ----\n\n const [viewport, setViewport] = createControllableState<Viewport>({\n value: () => local.viewport,\n defaultValue: untrack(() => local.defaultViewport) ?? { x: 0, y: 0, zoom: 1 },\n onChange: (next) => local.onViewportChange?.(next),\n });\n const [interacting, setInteracting] = createSignal(false);\n const far = createMemo(() => viewport().zoom < 0.45);\n\n const size = (): { width: number; height: number } => ({\n width: root?.clientWidth ?? 0,\n height: root?.clientHeight ?? 0,\n });\n const hasSize = (): boolean => {\n const { width, height } = size();\n return width > 0 && height > 0;\n };\n const worldSize = (): { width: number; height: number } => ({\n width: layout().width + PADDING * 2,\n height: layout().height + PADDING * 2,\n });\n const nodeRect = (id: string): { x: number; y: number; width: number; height: number } | undefined => {\n const box = layout().nodes.get(id);\n return box && { x: box.x + PADDING, y: box.y + PADDING, width: box.width, height: box.height };\n };\n\n const api: DagViewApi = {\n fitView() {\n if (!hasSize()) return;\n const world = worldSize();\n setViewport(\n fitBounds(\n { x: 0, y: 0, ...world },\n size(),\n 0,\n local.minZoom,\n Math.max(local.minZoom, Math.min(1, local.maxZoom))\n )\n );\n },\n zoomTo(zoom) {\n api.zoomBy(zoom / viewport().zoom);\n },\n zoomBy(factor) {\n const { width, height } = size();\n setViewport(zoomAt(viewport(), { x: width / 2, y: height / 2 }, factor, local.minZoom, local.maxZoom));\n },\n centerNode(id) {\n const rect = nodeRect(id);\n if (!rect) return;\n setViewport(centerOn(viewport(), { x: rect.x + rect.width / 2, y: rect.y + rect.height / 2 }, size()));\n },\n };\n\n const ensureVisible = (id: string): void => {\n const rect = nodeRect(id);\n if (rect && hasSize() && !isVisible(viewport(), rect, size(), 8)) api.centerNode(id);\n };\n\n // Fit once the graph has a size, and again when its shape changes. At zero\n // size (a hidden tab) the fit waits for the first resize that gives one.\n let fitPending = false;\n const tryFit = (): void => {\n if (!fitPending || !hasSize()) return;\n fitPending = false;\n api.fitView();\n };\n createEffect(\n on(\n layout,\n () => {\n if (!untrack(() => local.fit)) return;\n fitPending = true;\n tryFit();\n },\n { defer: true }\n )\n );\n\n onMount(() => {\n const dispose = createPanZoom(root, {\n viewport,\n write: setViewport,\n minZoom: () => local.minZoom,\n maxZoom: () => local.maxZoom,\n wheel: () => local.wheel,\n onInteracting: setInteracting,\n });\n let frame = 0;\n const resizeObserver =\n typeof ResizeObserver === \"function\"\n ? new ResizeObserver(() => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(tryFit);\n })\n : undefined;\n resizeObserver?.observe(root);\n onCleanup(() => {\n dispose();\n resizeObserver?.disconnect();\n cancelAnimationFrame(frame);\n });\n fitPending = local.fit;\n tryFit();\n local.apiRef?.(api);\n });\n\n // ---- Interaction ----\n\n const choose = (id: string, event: MouseEvent | KeyboardEvent): void => {\n const node = byId().get(id);\n if (!node || node.disabled) return;\n setSelected(id);\n local.onNodeClick?.(node, event);\n };\n\n const focusNode = (id: string | undefined): void => {\n if (id === undefined) return;\n setActive(id);\n elements.get(id)?.focus({ preventScroll: true });\n ensureVisible(id);\n };\n\n // A node that goes away takes its selection with it, and focus moves to the\n // Tab stop rather than dropping to the page. Only a node that was there\n // counts: a selection given before its node loads is kept.\n createEffect<readonly string[] | undefined>((before) => {\n const now = ids();\n if (before) {\n untrack(() => {\n const present = new Set(now);\n const chosen = selected();\n if (chosen !== null && !present.has(chosen) && before.includes(chosen)) setSelected(null);\n const had = focused();\n if (had === null || present.has(had)) return;\n setFocused(null);\n const doc = root?.ownerDocument;\n const stop = tabStop();\n if (doc && (doc.activeElement === null || doc.activeElement === doc.body) && stop !== null)\n elements.get(stop)?.focus({ preventScroll: true });\n });\n }\n return now;\n });\n\n // One Tab stop: focusables in `renderNode` content (a link, a button) are\n // taken out of the Tab order, except in the node that is the Tab stop. Their\n // own tabindex comes back when their node becomes it.\n const ownTabIndex = new WeakMap<Element, string | null>();\n const syncInnerTabStops = (): void => {\n const stop = untrack(tabStop);\n for (const [id, el] of elements) {\n for (const inner of el.querySelectorAll(INNER_FOCUSABLE)) {\n if (!ownTabIndex.has(inner)) ownTabIndex.set(inner, inner.getAttribute(\"tabindex\"));\n const own = ownTabIndex.get(inner) ?? null;\n const next = id === stop ? own : \"-1\";\n if (inner.getAttribute(\"tabindex\") === next) continue;\n if (next === null) inner.removeAttribute(\"tabindex\");\n else inner.setAttribute(\"tabindex\", next);\n }\n }\n };\n onMount(() => {\n if (!local.renderNode) return;\n createEffect(on(tabStop, syncInnerTabStops));\n if (typeof MutationObserver !== \"function\") return;\n // Content that changes later (a link that shows up with a status) is caught too.\n const observer = new MutationObserver(syncInnerTabStops);\n observer.observe(root, { childList: true, subtree: true });\n onCleanup(() => observer.disconnect());\n });\n\n /** The node an arrow key leads to from `id`: along the edges, or to a neighbour in the layer. */\n const neighbour = (id: string, key: string): string | undefined => {\n const tb = local.direction === \"TB\";\n const forward = tb ? \"ArrowDown\" : \"ArrowRight\";\n const back = tb ? \"ArrowUp\" : \"ArrowLeft\";\n const before = tb ? \"ArrowLeft\" : \"ArrowUp\";\n const after = tb ? \"ArrowRight\" : \"ArrowDown\";\n const nodes = layout().nodes;\n const first = (list: string[]): string | undefined =>\n list\n .map((other) => nodes.get(other))\n .filter((node): node is DagLayoutNode => node !== undefined)\n .sort((a, b) => across(a) - across(b))[0]?.id;\n if (key === forward) return first((graph().outgoing.get(id) ?? []).map((e) => e.target));\n if (key === back) return first((graph().incoming.get(id) ?? []).map((e) => e.source));\n const self = nodes.get(id);\n if (!self) return undefined;\n const layer = graph().layers.get(self.layer) ?? [];\n const index = layer.findIndex((node) => node.id === id);\n if (key === before) return layer[index - 1]?.id;\n if (key === after) return layer[index + 1]?.id;\n return undefined;\n };\n\n const onKeyDown = (event: KeyboardEvent): void => {\n const target = event.target as HTMLElement;\n const id = target.dataset?.[\"dagId\"];\n // Keys pressed in a node's own content (a link, a field) are its own.\n if (id === undefined || !target.classList.contains(\"smwb-dag-view__node\")) return;\n // Ctrl, Cmd and Alt shortcuts are the browser's: page zoom, history, tabs.\n if (event.ctrlKey || event.metaKey || event.altKey) return;\n const key = event.key;\n if (key.startsWith(\"Arrow\") && event.shiftKey) {\n const step = 48;\n const v = viewport();\n const dx = key === \"ArrowLeft\" ? step : key === \"ArrowRight\" ? -step : 0;\n const dy = key === \"ArrowUp\" ? step : key === \"ArrowDown\" ? -step : 0;\n setViewport({ x: v.x + dx, y: v.y + dy, zoom: v.zoom });\n event.preventDefault();\n return;\n }\n if (key.startsWith(\"Arrow\")) {\n event.preventDefault();\n focusNode(neighbour(id, key));\n return;\n }\n switch (key) {\n case \"Home\":\n event.preventDefault();\n focusNode(graph().ordered[0]?.id);\n return;\n case \"End\":\n event.preventDefault();\n focusNode(graph().ordered[graph().ordered.length - 1]?.id);\n return;\n case \"Enter\":\n case \" \":\n event.preventDefault();\n choose(id, event);\n return;\n case \"Escape\":\n // Handled only when there was a selection, so an enclosing dialog still gets it otherwise.\n if (selected() === null) return;\n event.preventDefault();\n setSelected(null);\n return;\n case \"+\":\n case \"=\":\n event.preventDefault();\n api.zoomBy(1.25);\n return;\n case \"-\":\n case \"_\":\n event.preventDefault();\n api.zoomBy(0.8);\n return;\n case \"0\":\n event.preventDefault();\n api.fitView();\n return;\n }\n };\n\n const defaultRender = (node: DagViewNode<T>): JSX.Element => (\n <>\n <span class=\"smwb-dag-view__dot\" aria-hidden=\"true\" />\n <span class=\"smwb-dag-view__label\">{node.label ?? node.id}</span>\n <Show when={node.status}>{(status) => <span class=\"smwb-dag-view__status\">{statusWord(status())}</span>}</Show>\n </>\n );\n\n const description = (id: string): string => {\n const node = byId().get(id);\n const parts: string[] = [];\n if (node?.status) parts.push(`${labels().status}: ${statusWord(node.status)}.`);\n const names = (list: string[]): string => list.map((other) => nameOf(byId().get(other), other)).join(\", \");\n const from = (graph().incoming.get(id) ?? []).map((e) => e.source);\n const to = (graph().outgoing.get(id) ?? []).map((e) => e.target);\n if (from.length) parts.push(`${labels().dependsOn}: ${names(from)}.`);\n if (to.length) parts.push(`${labels().requiredBy}: ${names(to)}.`);\n return parts.join(\" \");\n };\n\n const renderNodeFor = (id: string, index: () => number): JSX.Element => {\n const node = (): DagViewNode<T> | undefined => byId().get(id);\n // The node as `renderNode` sees it: its fields read the app's latest object.\n const view = { id } as DagViewNode<T>;\n for (const key of NODE_KEYS) Object.defineProperty(view, key, { enumerable: true, get: () => node()?.[key] });\n const state: DagViewNodeState = {\n get selected() {\n return isSelected(id);\n },\n get related() {\n return relations().nodes.get(id) ?? null;\n },\n get dimmed() {\n const r = relations();\n return Boolean(local.dimUnrelated) && r.active && !isSelected(id) && !r.nodes.has(id);\n },\n get focused() {\n return focused() === id;\n },\n };\n const descriptionId = (): string => `${uid}-node-${index()}`;\n const style = (): JSX.CSSProperties => {\n const box = layout().nodes.get(id);\n const css: JSX.CSSProperties = box\n ? {\n left: `${box.x + PADDING}px`,\n top: `${box.y + PADDING}px`,\n width: `${box.width}px`,\n height: `${box.height}px`,\n }\n : { display: \"none\" };\n const accent = node()?.accent;\n if (accent) css[\"--smwb-dag-view-node-accent\"] = accent;\n return css;\n };\n const onFocus = (event: FocusEvent): void => {\n if (event.target !== event.currentTarget) return;\n setActive(id);\n setFocused(id);\n let keyboard = true;\n try {\n keyboard = (event.currentTarget as HTMLElement).matches(\":focus-visible\");\n } catch {\n // An engine without :focus-visible: treat it as the keyboard.\n }\n if (keyboard) ensureVisible(id);\n };\n const onBlur = (event: FocusEvent): void => {\n if (event.target === event.currentTarget && focused() === id) setFocused(null);\n };\n const content = untrack(() => (local.renderNode ?? defaultRender)(view, state));\n return (\n <div\n role=\"option\"\n data-dag-id={id}\n ref={(el) => {\n elements.set(id, el);\n onCleanup(() => elements.get(id) === el && elements.delete(id));\n }}\n class={cn(\"smwb-dag-view__node\", {\n \"smwb-dag-view__node--selected\": state.selected,\n \"smwb-dag-view__node--upstream\": state.related === \"upstream\",\n \"smwb-dag-view__node--downstream\": state.related === \"downstream\",\n \"smwb-dag-view__node--dimmed\": state.dimmed,\n \"smwb-dag-view__node--disabled\": Boolean(node()?.disabled),\n })}\n data-status={node()?.status}\n aria-selected={state.selected ? \"true\" : \"false\"}\n aria-disabled={node()?.disabled ? \"true\" : undefined}\n aria-describedby={description(id) ? descriptionId() : undefined}\n tabIndex={tabStop() === id ? 0 : -1}\n style={style()}\n onClick={(event) => choose(id, event)}\n onFocus={onFocus}\n onBlur={onBlur}\n >\n {content}\n <span id={descriptionId()} hidden>\n {description(id)}\n </span>\n </div>\n );\n };\n\n const edgeClass = (edge: DagLayoutEdge): string => {\n const r = relations();\n const relation = r.edges.get(edge.id);\n return cn(\"smwb-dag-view__edge\", {\n \"smwb-dag-view__edge--active\": relation !== undefined,\n \"smwb-dag-view__edge--upstream\": relation === \"upstream\",\n \"smwb-dag-view__edge--downstream\": relation === \"downstream\",\n \"smwb-dag-view__edge--dimmed\": Boolean(local.dimUnrelated) && r.active && relation === undefined,\n \"smwb-dag-view__edge--reversed\": edge.reversed,\n });\n };\n\n // The default height is the stylesheet's, so a height in the caller's style is not overridden.\n const rootStyle = (): JSX.CSSProperties | string | undefined =>\n mergeStyle(local.style, { height: local.height === undefined ? undefined : cssLength(local.height) });\n\n return (\n <div\n data-testid={local[\"data-testid\"] ?? \"dag-view\"}\n {...rest}\n ref={mergeRefs(local.ref, (el) => (root = el))}\n class={cn(\"smwb-dag-view\", local.class)}\n // Only when there is one: the server would print an empty style=\"\".\n {...(rootStyle() === undefined ? {} : { style: rootStyle() })}\n data-direction={local.direction}\n data-zoom={far() ? \"far\" : undefined}\n data-interacting={interacting() ? \"\" : undefined}\n >\n <div\n class=\"smwb-dag-view__world\"\n role=\"listbox\"\n aria-label={local.label}\n aria-roledescription={labels().roleDescription}\n aria-describedby={local.summary ? summaryId : undefined}\n style={{\n width: `${worldSize().width}px`,\n height: `${worldSize().height}px`,\n transform: viewportTransform(viewport()),\n }}\n onKeyDown={onKeyDown}\n >\n <svg class=\"smwb-dag-view__edges\" width={worldSize().width} height={worldSize().height} aria-hidden=\"true\">\n <defs>\n <marker\n id={arrowId}\n viewBox=\"0 0 10 10\"\n refX=\"9\"\n refY=\"5\"\n markerWidth=\"10\"\n markerHeight=\"10\"\n markerUnits=\"userSpaceOnUse\"\n orient=\"auto-start-reverse\"\n >\n <path class=\"smwb-dag-view__arrow\" d=\"M0,1 L9,5 L0,9 z\" />\n </marker>\n <marker\n id={activeArrowId}\n viewBox=\"0 0 10 10\"\n refX=\"9\"\n refY=\"5\"\n markerWidth=\"10\"\n markerHeight=\"10\"\n markerUnits=\"userSpaceOnUse\"\n orient=\"auto-start-reverse\"\n >\n <path class=\"smwb-dag-view__arrow smwb-dag-view__arrow--active\" d=\"M0,1 L9,5 L0,9 z\" />\n </marker>\n </defs>\n <g transform={`translate(${PADDING} ${PADDING})`}>\n <For each={layout().edges}>\n {(edge) => (\n <path\n class={edgeClass(edge)}\n data-source={edge.source}\n data-target={edge.target}\n d={dagEdgePath(edge.points, local.direction)}\n marker-end={`url(#${relations().edges.has(edge.id) ? activeArrowId : arrowId})`}\n />\n )}\n </For>\n </g>\n </svg>\n <For each={ids()}>{(id, index) => renderNodeFor(id, index)}</For>\n </div>\n <Show when={local.summary}>\n <p id={summaryId} class=\"smwb-dag-view__summary\">\n {local.summary}\n </p>\n </Show>\n <Show when={local.controls}>\n <div class=\"smwb-dag-view__controls\" role=\"group\" aria-label={labels().controls}>\n <button\n type=\"button\"\n class=\"smwb-dag-view__control\"\n title={labels().zoomIn}\n onClick={() => api.zoomBy(1.25)}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M12 5v14M5 12h14\" />\n </svg>\n </button>\n <button\n type=\"button\"\n class=\"smwb-dag-view__control\"\n title={labels().zoomOut}\n onClick={() => api.zoomBy(0.8)}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M5 12h14\" />\n </svg>\n </button>\n <button\n type=\"button\"\n class=\"smwb-dag-view__control\"\n title={labels().fitView}\n onClick={() => api.fitView()}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5\" />\n </svg>\n </button>\n </div>\n </Show>\n </div>\n );\n}\n\nexport default DagView;\n"],"mappings":"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","names":[],"file":"dagView.jsx"}
@@ -0,0 +1,10 @@
1
+ import { DagView, default as default2 } from "./dagView";
2
+ import { dagLayout, dagEdgePath, dagEdgeId } from "./dagLayout";
3
+ export {
4
+ DagView,
5
+ dagEdgeId,
6
+ dagEdgePath,
7
+ dagLayout,
8
+ default2 as default
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/dataDisplay/dagView/index.ts"],
4
+ "sourcesContent": ["export { DagView, default } from \"./dagView\";\nexport type {\n DagViewProps,\n DagViewNode,\n DagViewEdge,\n DagViewStatus,\n DagViewViewport,\n DagViewApi,\n DagViewNodeState,\n DagViewLabels,\n} from \"./dagView\";\nexport { dagLayout, dagEdgePath, dagEdgeId } from \"./dagLayout\";\nexport type {\n DagDirection,\n DagLayoutInput,\n DagLayoutInputNode,\n DagLayoutInputEdge,\n DagLayoutResult,\n DagLayoutNode,\n DagLayoutEdge,\n DagPoint,\n} from \"./dagLayout\";\n"],
5
+ "mappings": "AAAA,SAAS,SAAS,WAAAA,gBAAe;AAWjC,SAAS,WAAW,aAAa,iBAAiB;",
6
+ "names": ["default"]
7
+ }
@@ -0,0 +1,247 @@
1
+ const clamp = (value, min, max) => Math.min(max, Math.max(min, value));
2
+ function zoomAt(viewport, point, factor, min, max) {
3
+ const zoom = clamp(viewport.zoom * factor, min, max);
4
+ const k = zoom / viewport.zoom;
5
+ return { x: point.x - (point.x - viewport.x) * k, y: point.y - (point.y - viewport.y) * k, zoom };
6
+ }
7
+ function fitBounds(bounds, size, padding, min, max) {
8
+ const room = { width: Math.max(1, size.width - padding * 2), height: Math.max(1, size.height - padding * 2) };
9
+ const fit = Math.min(room.width / Math.max(1, bounds.width), room.height / Math.max(1, bounds.height));
10
+ const zoom = clamp(fit, min, max);
11
+ return {
12
+ x: (size.width - bounds.width * zoom) / 2 - bounds.x * zoom,
13
+ y: (size.height - bounds.height * zoom) / 2 - bounds.y * zoom,
14
+ zoom
15
+ };
16
+ }
17
+ function centerOn(viewport, point, size) {
18
+ return {
19
+ x: size.width / 2 - point.x * viewport.zoom,
20
+ y: size.height / 2 - point.y * viewport.zoom,
21
+ zoom: viewport.zoom
22
+ };
23
+ }
24
+ function isVisible(viewport, rect, size, margin = 0) {
25
+ const left = viewport.x + rect.x * viewport.zoom;
26
+ const top = viewport.y + rect.y * viewport.zoom;
27
+ return left >= margin && top >= margin && left + rect.width * viewport.zoom <= size.width - margin && top + rect.height * viewport.zoom <= size.height - margin;
28
+ }
29
+ function wheelZoomFactor(deltaY, deltaMode, pinch) {
30
+ const pixels = deltaMode === 1 ? deltaY * 16 : deltaMode === 2 ? deltaY * 400 : deltaY;
31
+ const step = clamp(pixels, -100, 100) * (pinch ? 0.01 : 2e-3);
32
+ return Math.exp(-step);
33
+ }
34
+ const viewportTransform = (viewport) => `translate(${Math.round(viewport.x)}px, ${Math.round(viewport.y)}px) scale(${Math.round(viewport.zoom * 1e4) / 1e4})`;
35
+ const sameViewport = (a, b) => a.x === b.x && a.y === b.y && a.zoom === b.zoom;
36
+ function createFrameWriter(write, frame = {
37
+ request: (callback) => typeof requestAnimationFrame === "function" ? requestAnimationFrame(callback) : window.setTimeout(callback, 16),
38
+ cancel: (id) => typeof cancelAnimationFrame === "function" ? cancelAnimationFrame(id) : window.clearTimeout(id)
39
+ }) {
40
+ let value;
41
+ let id;
42
+ const flush = () => {
43
+ if (id !== void 0) frame.cancel(id);
44
+ id = void 0;
45
+ const next = value;
46
+ value = void 0;
47
+ if (next) write(next.current);
48
+ };
49
+ return {
50
+ schedule(next) {
51
+ value = { current: next };
52
+ if (id === void 0)
53
+ id = frame.request(() => {
54
+ id = void 0;
55
+ flush();
56
+ });
57
+ },
58
+ pending: () => value?.current,
59
+ flush,
60
+ cancel() {
61
+ if (id !== void 0) frame.cancel(id);
62
+ id = void 0;
63
+ value = void 0;
64
+ }
65
+ };
66
+ }
67
+ const INTERACTIVE = "a[href], button, input, select, textarea, label, summary, [contenteditable], [data-dag-no-pan]";
68
+ function createPanZoom(el, options) {
69
+ const threshold = options.threshold ?? 3;
70
+ const writer = createFrameWriter(options.write);
71
+ const current = () => writer.pending() ?? options.viewport();
72
+ const set = (next) => {
73
+ if (!sameViewport(next, current())) writer.schedule(next);
74
+ };
75
+ const local = (clientX, clientY) => {
76
+ const rect = el.getBoundingClientRect();
77
+ return { x: clientX - rect.left, y: clientY - rect.top };
78
+ };
79
+ const pointers = /* @__PURE__ */ new Map();
80
+ const doc = el.ownerDocument;
81
+ let following = false;
82
+ const follow = (on) => {
83
+ if (on === following) return;
84
+ following = on;
85
+ if (on) {
86
+ doc.addEventListener("pointermove", onPointerMove, true);
87
+ doc.addEventListener("pointerup", onPointerUp, true);
88
+ doc.addEventListener("pointercancel", onPointerUp, true);
89
+ } else {
90
+ doc.removeEventListener("pointermove", onPointerMove, true);
91
+ doc.removeEventListener("pointerup", onPointerUp, true);
92
+ doc.removeEventListener("pointercancel", onPointerUp, true);
93
+ }
94
+ };
95
+ let start;
96
+ let pinch;
97
+ let panning = false;
98
+ let swallowClick = false;
99
+ let interacting = false;
100
+ const setInteracting = (value) => {
101
+ if (value === interacting) return;
102
+ interacting = value;
103
+ options.onInteracting?.(value);
104
+ };
105
+ const pinchState = () => {
106
+ const [a, b] = [...pointers.values()];
107
+ return { distance: Math.hypot(a.x - b.x, a.y - b.y), mid: { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 } };
108
+ };
109
+ const onPointerDown = (event) => {
110
+ if (event.button !== 0 && event.pointerType === "mouse") return;
111
+ const target = event.target;
112
+ if (target?.closest?.(INTERACTIVE)) return;
113
+ pointers.set(event.pointerId, local(event.clientX, event.clientY));
114
+ follow(true);
115
+ if (pointers.size === 1) {
116
+ start = { point: pointers.get(event.pointerId), viewport: current(), id: event.pointerId };
117
+ panning = false;
118
+ } else if (pointers.size === 2) {
119
+ const { distance, mid } = pinchState();
120
+ pinch = { distance, mid, viewport: current() };
121
+ start = void 0;
122
+ for (const id of pointers.keys()) capture(id);
123
+ setInteracting(true);
124
+ }
125
+ };
126
+ const capture = (id) => {
127
+ try {
128
+ el.setPointerCapture?.(id);
129
+ } catch {
130
+ }
131
+ };
132
+ const onPointerMove = (event) => {
133
+ if (!pointers.has(event.pointerId)) return;
134
+ const point = local(event.clientX, event.clientY);
135
+ pointers.set(event.pointerId, point);
136
+ if (pinch && pointers.size >= 2) {
137
+ const { distance, mid } = pinchState();
138
+ const scaled = zoomAt(
139
+ pinch.viewport,
140
+ pinch.mid,
141
+ distance / Math.max(1, pinch.distance),
142
+ options.minZoom(),
143
+ options.maxZoom()
144
+ );
145
+ set({ ...scaled, x: scaled.x + mid.x - pinch.mid.x, y: scaled.y + mid.y - pinch.mid.y });
146
+ return;
147
+ }
148
+ if (!start || start.id !== event.pointerId) return;
149
+ const dx = point.x - start.point.x;
150
+ const dy = point.y - start.point.y;
151
+ if (!panning) {
152
+ if (Math.hypot(dx, dy) < threshold) return;
153
+ panning = true;
154
+ capture(event.pointerId);
155
+ setInteracting(true);
156
+ }
157
+ set({ x: start.viewport.x + dx, y: start.viewport.y + dy, zoom: start.viewport.zoom });
158
+ };
159
+ const onPointerUp = (event) => {
160
+ if (!pointers.delete(event.pointerId)) return;
161
+ if (panning || pinch) swallowClick = true;
162
+ if (pointers.size < 2) pinch = void 0;
163
+ if (pointers.size === 0) {
164
+ follow(false);
165
+ start = void 0;
166
+ panning = false;
167
+ setInteracting(false);
168
+ writer.flush();
169
+ setTimeout(() => swallowClick = false, 0);
170
+ } else if (pointers.size === 1) {
171
+ const [[id, point]] = [...pointers.entries()];
172
+ start = { point, viewport: current(), id };
173
+ panning = true;
174
+ }
175
+ };
176
+ const onClick = (event) => {
177
+ if (!swallowClick) return;
178
+ swallowClick = false;
179
+ event.stopPropagation();
180
+ event.preventDefault();
181
+ };
182
+ const onWheel = (event) => {
183
+ const pinchGesture = event.ctrlKey || event.metaKey;
184
+ const mode = options.wheel();
185
+ if (!pinchGesture && mode === "none") return;
186
+ event.preventDefault();
187
+ if (!pinchGesture && mode === "pan") {
188
+ const v = current();
189
+ const scale = event.deltaMode === 1 ? 16 : event.deltaMode === 2 ? 400 : 1;
190
+ const dx = event.shiftKey && !event.deltaX ? event.deltaY : event.deltaX;
191
+ const dy = event.shiftKey && !event.deltaX ? 0 : event.deltaY;
192
+ set({ x: v.x - dx * scale, y: v.y - dy * scale, zoom: v.zoom });
193
+ return;
194
+ }
195
+ const factor = wheelZoomFactor(event.deltaY, event.deltaMode, pinchGesture);
196
+ set(zoomAt(current(), local(event.clientX, event.clientY), factor, options.minZoom(), options.maxZoom()));
197
+ };
198
+ let gesture;
199
+ const onGestureStart = (event) => {
200
+ event.preventDefault();
201
+ const e = event;
202
+ const rect = el.getBoundingClientRect();
203
+ gesture = {
204
+ viewport: current(),
205
+ point: e.clientX === void 0 ? { x: rect.width / 2, y: rect.height / 2 } : local(e.clientX, e.clientY ?? 0)
206
+ };
207
+ };
208
+ const onGestureChange = (event) => {
209
+ event.preventDefault();
210
+ const scale = event.scale;
211
+ if (!gesture || typeof scale !== "number") return;
212
+ set(zoomAt(gesture.viewport, gesture.point, scale, options.minZoom(), options.maxZoom()));
213
+ };
214
+ const onGestureEnd = (event) => {
215
+ event.preventDefault();
216
+ gesture = void 0;
217
+ };
218
+ el.addEventListener("pointerdown", onPointerDown);
219
+ el.addEventListener("click", onClick, true);
220
+ el.addEventListener("wheel", onWheel, { passive: false });
221
+ el.addEventListener("gesturestart", onGestureStart);
222
+ el.addEventListener("gesturechange", onGestureChange);
223
+ el.addEventListener("gestureend", onGestureEnd);
224
+ return () => {
225
+ writer.cancel();
226
+ follow(false);
227
+ el.removeEventListener("pointerdown", onPointerDown);
228
+ el.removeEventListener("click", onClick, true);
229
+ el.removeEventListener("wheel", onWheel);
230
+ el.removeEventListener("gesturestart", onGestureStart);
231
+ el.removeEventListener("gesturechange", onGestureChange);
232
+ el.removeEventListener("gestureend", onGestureEnd);
233
+ };
234
+ }
235
+ export {
236
+ centerOn,
237
+ clamp,
238
+ createFrameWriter,
239
+ createPanZoom,
240
+ fitBounds,
241
+ isVisible,
242
+ sameViewport,
243
+ viewportTransform,
244
+ wheelZoomFactor,
245
+ zoomAt
246
+ };
247
+ //# sourceMappingURL=panZoom.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/dataDisplay/dagView/panZoom.ts"],
4
+ "sourcesContent": ["// Pan and zoom for a transformed \"world\" inside a viewport element: pure math\n// (unit-tested) and plain DOM glue, with no Solid imports, so a React port can\n// copy the file. The glue reads gestures and hands at most one new viewport per\n// animation frame to `write`.\n\n/** What the world is moved and scaled by: `translate(x, y) scale(zoom)`, origin top left. */\nexport interface Viewport {\n x: number;\n y: number;\n zoom: number;\n}\n\nexport interface Point {\n x: number;\n y: number;\n}\n\nexport interface Bounds {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport const clamp = (value: number, min: number, max: number): number => Math.min(max, Math.max(min, value));\n\n/** The viewport scaled by `factor` (clamped to min\u2026max), keeping the world point under `point` in place. */\nexport function zoomAt(viewport: Viewport, point: Point, factor: number, min: number, max: number): Viewport {\n const zoom = clamp(viewport.zoom * factor, min, max);\n const k = zoom / viewport.zoom;\n return { x: point.x - (point.x - viewport.x) * k, y: point.y - (point.y - viewport.y) * k, zoom };\n}\n\n/** The viewport that shows `bounds` (world units) whole and centred in a box of `size`, `padding` from its edges. */\nexport function fitBounds(\n bounds: Bounds,\n size: { width: number; height: number },\n padding: number,\n min: number,\n max: number\n): Viewport {\n const room = { width: Math.max(1, size.width - padding * 2), height: Math.max(1, size.height - padding * 2) };\n const fit = Math.min(room.width / Math.max(1, bounds.width), room.height / Math.max(1, bounds.height));\n const zoom = clamp(fit, min, max);\n return {\n x: (size.width - bounds.width * zoom) / 2 - bounds.x * zoom,\n y: (size.height - bounds.height * zoom) / 2 - bounds.y * zoom,\n zoom,\n };\n}\n\n/** The viewport, at its zoom, that puts the world point `point` in the middle of a box of `size`. */\nexport function centerOn(viewport: Viewport, point: Point, size: { width: number; height: number }): Viewport {\n return {\n x: size.width / 2 - point.x * viewport.zoom,\n y: size.height / 2 - point.y * viewport.zoom,\n zoom: viewport.zoom,\n };\n}\n\n/** Whether the world rectangle lies inside the box of `size` at `viewport`, `margin` from its edges. */\nexport function isVisible(\n viewport: Viewport,\n rect: Bounds,\n size: { width: number; height: number },\n margin = 0\n): boolean {\n const left = viewport.x + rect.x * viewport.zoom;\n const top = viewport.y + rect.y * viewport.zoom;\n return (\n left >= margin &&\n top >= margin &&\n left + rect.width * viewport.zoom <= size.width - margin &&\n top + rect.height * viewport.zoom <= size.height - margin\n );\n}\n\n/** The zoom factor for a wheel turn: lines and pages count as many pixels, a pinch (ctrl) zooms faster. */\nexport function wheelZoomFactor(deltaY: number, deltaMode: number, pinch: boolean): number {\n const pixels = deltaMode === 1 ? deltaY * 16 : deltaMode === 2 ? deltaY * 400 : deltaY;\n const step = clamp(pixels, -100, 100) * (pinch ? 0.01 : 0.002);\n return Math.exp(-step);\n}\n\n/** Rounded translation, so text is not blurred at rest by subpixel offsets. */\nexport const viewportTransform = (viewport: Viewport): string =>\n `translate(${Math.round(viewport.x)}px, ${Math.round(viewport.y)}px) scale(${Math.round(viewport.zoom * 10000) / 10000})`;\n\nexport const sameViewport = (a: Viewport, b: Viewport): boolean => a.x === b.x && a.y === b.y && a.zoom === b.zoom;\n\n/**\n * Coalesces writes to one per animation frame: `schedule` keeps the latest\n * value, and `write` gets it on the next frame. `pending()` is that latest value\n * until it is written, so a gesture builds on what it asked for, not on what was\n * drawn last.\n */\nexport function createFrameWriter<T>(\n write: (value: T) => void,\n frame: { request: (callback: () => void) => number; cancel: (id: number) => void } = {\n request: (callback) =>\n typeof requestAnimationFrame === \"function\" ? requestAnimationFrame(callback) : window.setTimeout(callback, 16),\n cancel: (id) => (typeof cancelAnimationFrame === \"function\" ? cancelAnimationFrame(id) : window.clearTimeout(id)),\n }\n): { schedule(value: T): void; pending(): T | undefined; flush(): void; cancel(): void } {\n let value: { current: T } | undefined;\n let id: number | undefined;\n const flush = (): void => {\n if (id !== undefined) frame.cancel(id);\n id = undefined;\n const next = value;\n value = undefined;\n if (next) write(next.current);\n };\n return {\n schedule(next) {\n value = { current: next };\n if (id === undefined)\n id = frame.request(() => {\n id = undefined;\n flush();\n });\n },\n pending: () => value?.current,\n flush,\n cancel() {\n if (id !== undefined) frame.cancel(id);\n id = undefined;\n value = undefined;\n },\n };\n}\n\nexport type WheelMode = \"zoom\" | \"pan\" | \"none\";\n\nexport interface PanZoomOptions {\n /** The viewport as drawn now. */\n viewport: () => Viewport;\n /** Gets the new viewport, at most once per frame. */\n write: (viewport: Viewport) => void;\n minZoom: () => number;\n maxZoom: () => number;\n /** Plain wheel: zoom (default), pan, or leave it to the page. Ctrl+wheel (a trackpad pinch) always zooms. */\n wheel: () => WheelMode;\n /** True while a drag or pinch is under way. */\n onInteracting?: (interacting: boolean) => void;\n /** Pixels a press moves before it pans rather than clicks; 3 by default. */\n threshold?: number;\n}\n\n/** Targets where a press keeps its own meaning and does not pan: controls, links, fields. */\nconst INTERACTIVE = \"a[href], button, input, select, textarea, label, summary, [contenteditable], [data-dag-no-pan]\";\n\n/**\n * Pan and zoom on `el`: drag with a mouse or one finger, pinch with two, wheel,\n * and a Safari trackpad pinch. A drag that moved past the threshold swallows\n * the click that follows it. Returns the function that removes it all.\n */\nexport function createPanZoom(el: HTMLElement, options: PanZoomOptions): () => void {\n const threshold = options.threshold ?? 3;\n const writer = createFrameWriter<Viewport>(options.write);\n const current = (): Viewport => writer.pending() ?? options.viewport();\n const set = (next: Viewport): void => {\n if (!sameViewport(next, current())) writer.schedule(next);\n };\n const local = (clientX: number, clientY: number): Point => {\n const rect = el.getBoundingClientRect();\n return { x: clientX - rect.left, y: clientY - rect.top };\n };\n\n const pointers = new Map<number, Point>();\n // While a press is held, its moves and release are read on the document: a\n // quick drag can leave the box before the threshold, when the pointer is\n // captured, and the box would see nothing more of it. A captured pointer's\n // events still reach the document, through the box.\n const doc = el.ownerDocument;\n let following = false;\n const follow = (on: boolean): void => {\n if (on === following) return;\n following = on;\n if (on) {\n doc.addEventListener(\"pointermove\", onPointerMove, true);\n doc.addEventListener(\"pointerup\", onPointerUp, true);\n doc.addEventListener(\"pointercancel\", onPointerUp, true);\n } else {\n doc.removeEventListener(\"pointermove\", onPointerMove, true);\n doc.removeEventListener(\"pointerup\", onPointerUp, true);\n doc.removeEventListener(\"pointercancel\", onPointerUp, true);\n }\n };\n let start: { point: Point; viewport: Viewport; id: number } | undefined;\n let pinch: { distance: number; mid: Point; viewport: Viewport } | undefined;\n let panning = false;\n let swallowClick = false;\n let interacting = false;\n const setInteracting = (value: boolean): void => {\n if (value === interacting) return;\n interacting = value;\n options.onInteracting?.(value);\n };\n\n const pinchState = (): { distance: number; mid: Point } => {\n const [a, b] = [...pointers.values()] as [Point, Point];\n return { distance: Math.hypot(a.x - b.x, a.y - b.y), mid: { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 } };\n };\n\n const onPointerDown = (event: PointerEvent): void => {\n if (event.button !== 0 && event.pointerType === \"mouse\") return;\n const target = event.target as Element | null;\n if (target?.closest?.(INTERACTIVE)) return;\n pointers.set(event.pointerId, local(event.clientX, event.clientY));\n follow(true);\n if (pointers.size === 1) {\n start = { point: pointers.get(event.pointerId)!, viewport: current(), id: event.pointerId };\n panning = false;\n } else if (pointers.size === 2) {\n const { distance, mid } = pinchState();\n pinch = { distance, mid, viewport: current() };\n start = undefined;\n // A second finger makes it a gesture: take both pointers.\n for (const id of pointers.keys()) capture(id);\n setInteracting(true);\n }\n };\n\n const capture = (id: number): void => {\n try {\n el.setPointerCapture?.(id);\n } catch {\n // The pointer is gone already.\n }\n };\n\n const onPointerMove = (event: PointerEvent): void => {\n if (!pointers.has(event.pointerId)) return;\n const point = local(event.clientX, event.clientY);\n pointers.set(event.pointerId, point);\n if (pinch && pointers.size >= 2) {\n const { distance, mid } = pinchState();\n const scaled = zoomAt(\n pinch.viewport,\n pinch.mid,\n distance / Math.max(1, pinch.distance),\n options.minZoom(),\n options.maxZoom()\n );\n set({ ...scaled, x: scaled.x + mid.x - pinch.mid.x, y: scaled.y + mid.y - pinch.mid.y });\n return;\n }\n if (!start || start.id !== event.pointerId) return;\n const dx = point.x - start.point.x;\n const dy = point.y - start.point.y;\n if (!panning) {\n if (Math.hypot(dx, dy) < threshold) return;\n // Captured only now: a capture from the press would take the click from the node under it.\n panning = true;\n capture(event.pointerId);\n setInteracting(true);\n }\n set({ x: start.viewport.x + dx, y: start.viewport.y + dy, zoom: start.viewport.zoom });\n };\n\n const onPointerUp = (event: PointerEvent): void => {\n if (!pointers.delete(event.pointerId)) return;\n if (panning || pinch) swallowClick = true;\n if (pointers.size < 2) pinch = undefined;\n if (pointers.size === 0) {\n follow(false);\n start = undefined;\n panning = false;\n setInteracting(false);\n writer.flush();\n // A click comes right after the release, or not at all.\n setTimeout(() => (swallowClick = false), 0);\n } else if (pointers.size === 1) {\n // One finger left after a pinch: it pans from here.\n const [[id, point]] = [...pointers.entries()] as [[number, Point]];\n start = { point, viewport: current(), id };\n panning = true;\n }\n };\n\n const onClick = (event: MouseEvent): void => {\n if (!swallowClick) return;\n swallowClick = false;\n event.stopPropagation();\n event.preventDefault();\n };\n\n const onWheel = (event: WheelEvent): void => {\n const pinchGesture = event.ctrlKey || event.metaKey;\n const mode = options.wheel();\n if (!pinchGesture && mode === \"none\") return;\n event.preventDefault();\n if (!pinchGesture && mode === \"pan\") {\n const v = current();\n const scale = event.deltaMode === 1 ? 16 : event.deltaMode === 2 ? 400 : 1;\n const dx = event.shiftKey && !event.deltaX ? event.deltaY : event.deltaX;\n const dy = event.shiftKey && !event.deltaX ? 0 : event.deltaY;\n set({ x: v.x - dx * scale, y: v.y - dy * scale, zoom: v.zoom });\n return;\n }\n const factor = wheelZoomFactor(event.deltaY, event.deltaMode, pinchGesture);\n set(zoomAt(current(), local(event.clientX, event.clientY), factor, options.minZoom(), options.maxZoom()));\n };\n\n // Safari reports a trackpad pinch as gesture events, with the scale since the gesture began.\n let gesture: { viewport: Viewport; point: Point } | undefined;\n const onGestureStart = (event: Event): void => {\n event.preventDefault();\n const e = event as Event & { clientX?: number; clientY?: number };\n const rect = el.getBoundingClientRect();\n gesture = {\n viewport: current(),\n point: e.clientX === undefined ? { x: rect.width / 2, y: rect.height / 2 } : local(e.clientX, e.clientY ?? 0),\n };\n };\n const onGestureChange = (event: Event): void => {\n event.preventDefault();\n const scale = (event as Event & { scale?: number }).scale;\n if (!gesture || typeof scale !== \"number\") return;\n set(zoomAt(gesture.viewport, gesture.point, scale, options.minZoom(), options.maxZoom()));\n };\n const onGestureEnd = (event: Event): void => {\n event.preventDefault();\n gesture = undefined;\n };\n\n el.addEventListener(\"pointerdown\", onPointerDown);\n el.addEventListener(\"click\", onClick, true);\n el.addEventListener(\"wheel\", onWheel, { passive: false });\n el.addEventListener(\"gesturestart\", onGestureStart);\n el.addEventListener(\"gesturechange\", onGestureChange);\n el.addEventListener(\"gestureend\", onGestureEnd);\n\n return () => {\n writer.cancel();\n follow(false);\n el.removeEventListener(\"pointerdown\", onPointerDown);\n el.removeEventListener(\"click\", onClick, true);\n el.removeEventListener(\"wheel\", onWheel);\n el.removeEventListener(\"gesturestart\", onGestureStart);\n el.removeEventListener(\"gesturechange\", onGestureChange);\n el.removeEventListener(\"gestureend\", onGestureEnd);\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -3,6 +3,7 @@ import "@smwb/ui-styles/less/components/descriptionList/descriptionList.entry.le
3
3
  import { For, createMemo, mergeProps, splitProps } from "solid-js";
4
4
  import cn from "clsx";
5
5
  import { mergeRefs } from "../../../primitives/mergeRefs";
6
+ import { mergeStyle } from "../../../primitives/mergeStyle";
6
7
  function DescriptionItem(props) {
7
8
  const [local, rest] = splitProps(props, ["class", "term", "children", "ref"]);
8
9
  return <div {...rest} ref={mergeRefs(local.ref)} class={cn("smwb-description-list__item", local.class)}>
@@ -14,12 +15,9 @@ function DescriptionList(props) {
14
15
  const merged = mergeProps({ layout: "auto" }, props);
15
16
  const [local, rest] = splitProps(merged, ["class", "style", "items", "layout", "termWidth", "dense", "children", "ref"]);
16
17
  const items = createMemo(() => local.items ?? []);
17
- const style = () => {
18
- if (local.termWidth === void 0) return local.style;
19
- const width = typeof local.termWidth === "number" ? `${local.termWidth}px` : local.termWidth;
20
- if (typeof local.style === "string") return `${local.style};--smwb-description-term:${width}`;
21
- return { ...local.style, "--smwb-description-term": width };
22
- };
18
+ const style = () => mergeStyle(local.style, {
19
+ "--smwb-description-term": typeof local.termWidth === "number" ? `${local.termWidth}px` : local.termWidth
20
+ });
23
21
  return <dl
24
22
  {...rest}
25
23
  ref={mergeRefs(local.ref)}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/dataDisplay/descriptionList/descriptionList.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/tokens.entry.less\";\nimport \"@smwb/ui-styles/less/components/descriptionList/descriptionList.entry.less\";\nimport { type JSX, type ParentProps, For, createMemo, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface DescriptionListEntry {\n term: JSX.Element;\n description: JSX.Element;\n}\n\n/**\n * `auto`: the term beside its description while the list's container is at\n * least 420px wide, above it when narrower (a container query). `row` and\n * `stacked` fix one layout.\n */\nexport type DescriptionListLayout = \"auto\" | \"row\" | \"stacked\";\n\nexport interface DescriptionListProps extends JSX.HTMLAttributes<HTMLDListElement> {\n /** The pairs as data; `DescriptionItem` children work too, and come after them. */\n items?: DescriptionListEntry[];\n layout?: DescriptionListLayout;\n /** Width of the term column in the row layout: px or any CSS track size. 30% of the list, at least 6rem, by default. */\n termWidth?: number | string;\n /** Tighter spacing, for side panels. */\n dense?: boolean;\n ref?: Ref<HTMLDListElement>;\n}\n\nexport interface DescriptionItemProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /** The field's name. */\n term: JSX.Element;\n ref?: Ref<HTMLDivElement>;\n}\n\n/** One pair: the term and, as children, its description. */\nexport function DescriptionItem(props: ParentProps<DescriptionItemProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\"class\", \"term\", \"children\", \"ref\"]);\n return (\n <div {...rest} ref={mergeRefs(local.ref)} class={cn(\"smwb-description-list__item\", local.class)}>\n <dt class=\"smwb-description-list__term\">{local.term}</dt>\n <dd class=\"smwb-description-list__details\">{local.children}</dd>\n </div>\n );\n}\n\n/** Field–value pairs (a `<dl>`): side by side, stacking on a narrow container. */\nexport function DescriptionList(props: ParentProps<DescriptionListProps>): JSX.Element {\n const merged = mergeProps({ layout: \"auto\" as DescriptionListLayout }, props);\n const [local, rest] = splitProps(merged, [\"class\", \"style\", \"items\", \"layout\", \"termWidth\", \"dense\", \"children\", \"ref\"]);\n\n // Read the items once: an inline array is re-evaluated on every read, creating\n // the markup in it again, and during hydration the extra copies have no server\n // DOM nodes to adopt.\n const items = createMemo(() => local.items ?? []);\n\n const style = (): JSX.CSSProperties | string | undefined => {\n if (local.termWidth === undefined) return local.style;\n const width = typeof local.termWidth === \"number\" ? `${local.termWidth}px` : local.termWidth;\n if (typeof local.style === \"string\") return `${local.style};--smwb-description-term:${width}`;\n return { ...local.style, \"--smwb-description-term\": width };\n };\n\n return (\n <dl\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\n \"smwb-description-list\",\n `smwb-description-list_${local.layout}`,\n { \"smwb-description-list_dense\": local.dense },\n local.class\n )}\n style={style()}\n >\n <For each={items()}>{(item) => <DescriptionItem term={item.term}>{item.description}</DescriptionItem>}</For>\n {local.children}\n </dl>\n );\n}\n\nexport default DescriptionList;\n"],"mappings":"AAAA,OAAO;AACP,OAAO;AACP,SAAqC,KAAK,YAAY,YAAY,kBAAkB;AACpF,OAAO,QAAQ;AACf,SAAS,iBAA2B;AAgC7B,SAAS,gBAAgB,OAAuD;AACrF,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,SAAS,QAAQ,YAAY,KAAK,CAAC;AAC5E,SACE,CAAC,QAAQ,MAAM,KAAK,UAAU,MAAM,GAAG,GAAG,OAAO,GAAG,+BAA+B,MAAM,KAAK,GAAG;AAAA,MAC/F,CAAC,GAAG,MAAM,+BAA+B,MAAM,KAAK,EAAnD,GAAwD;AAAA,MACzD,CAAC,GAAG,MAAM,kCAAkC,MAAM,SAAS,EAA1D,GAA+D;AAAA,IAClE,EAHC;AAKL;AAGO,SAAS,gBAAgB,OAAuD;AACrF,QAAM,SAAS,WAAW,EAAE,QAAQ,OAAgC,GAAG,KAAK;AAC5E,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ,CAAC,SAAS,SAAS,SAAS,UAAU,aAAa,SAAS,YAAY,KAAK,CAAC;AAKvH,QAAM,QAAQ,WAAW,MAAM,MAAM,SAAS,CAAC,CAAC;AAEhD,QAAM,QAAQ,MAA8C;AAC1D,QAAI,MAAM,cAAc,OAAW,QAAO,MAAM;AAChD,UAAM,QAAQ,OAAO,MAAM,cAAc,WAAW,GAAG,MAAM,SAAS,OAAO,MAAM;AACnF,QAAI,OAAO,MAAM,UAAU,SAAU,QAAO,GAAG,MAAM,KAAK,4BAA4B,KAAK;AAC3F,WAAO,EAAE,GAAG,MAAM,OAAO,2BAA2B,MAAM;AAAA,EAC5D;AAEA,SACE,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,OAAO;AAAA,MACL;AAAA,MACA,yBAAyB,MAAM,MAAM;AAAA,MACrC,EAAE,+BAA+B,MAAM,MAAM;AAAA,MAC7C,MAAM;AAAA,IACR;AAAA,IACA,OAAO,MAAM;AAAA,GACd;AAAA,MACC,CAAC,IAAI,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,MAAM,KAAK,OAAO,KAAK,YAAY,EAAnD,iBAAsE,EAArG,IAA2G;AAAA,OAC3G,MAAM,SAAS;AAAA,IAClB,EAbC;AAeL;AAEA,IAAO,0BAAQ;","names":[],"file":"descriptionList.jsx"}
1
+ {"version":3,"sources":["../../../../../src/components/dataDisplay/descriptionList/descriptionList.tsx"],"sourcesContent":["import \"@smwb/ui-styles/less/tokens.entry.less\";\nimport \"@smwb/ui-styles/less/components/descriptionList/descriptionList.entry.less\";\nimport { type JSX, type ParentProps, For, createMemo, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { mergeStyle } from \"../../../primitives/mergeStyle\";\n\nexport interface DescriptionListEntry {\n term: JSX.Element;\n description: JSX.Element;\n}\n\n/**\n * `auto`: the term beside its description while the list is at least 420px\n * wide, above it when narrower (a container query on the list itself). `row`\n * and `stacked` fix one layout.\n */\nexport type DescriptionListLayout = \"auto\" | \"row\" | \"stacked\";\n\nexport interface DescriptionListProps extends JSX.HTMLAttributes<HTMLDListElement> {\n /** The pairs as data; `DescriptionItem` children work too, and come after them. */\n items?: DescriptionListEntry[];\n /**\n * \"auto\" (default): each term beside its value while the list is at least\n * 420px wide, above it when narrower — the list's own width decides. So its\n * content does not widen it: where the parent takes its width from its\n * content (a flex item that does not grow, a popover, a table cell) the list\n * has no width; give it one there, or use \"row\" / \"stacked\", which fix one\n * layout and take their width from their content.\n */\n layout?: DescriptionListLayout;\n /** Width of the term column in the row layout: px or any CSS track size. 30% of the list, at least 6rem, by default. */\n termWidth?: number | string;\n /** Tighter spacing, for side panels. */\n dense?: boolean;\n ref?: Ref<HTMLDListElement>;\n}\n\nexport interface DescriptionItemProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /** The field's name. */\n term: JSX.Element;\n ref?: Ref<HTMLDivElement>;\n}\n\n/** One pair: the term and, as children, its description. */\nexport function DescriptionItem(props: ParentProps<DescriptionItemProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\"class\", \"term\", \"children\", \"ref\"]);\n return (\n <div {...rest} ref={mergeRefs(local.ref)} class={cn(\"smwb-description-list__item\", local.class)}>\n <dt class=\"smwb-description-list__term\">{local.term}</dt>\n <dd class=\"smwb-description-list__details\">{local.children}</dd>\n </div>\n );\n}\n\n/** Field–value pairs (a `<dl>`): side by side, stacking on a narrow container. */\nexport function DescriptionList(props: ParentProps<DescriptionListProps>): JSX.Element {\n const merged = mergeProps({ layout: \"auto\" as DescriptionListLayout }, props);\n const [local, rest] = splitProps(merged, [\"class\", \"style\", \"items\", \"layout\", \"termWidth\", \"dense\", \"children\", \"ref\"]);\n\n // Read the items once: an inline array is re-evaluated on every read, creating\n // the markup in it again, and during hydration the extra copies have no server\n // DOM nodes to adopt.\n const items = createMemo(() => local.items ?? []);\n\n const style = (): JSX.CSSProperties | string | undefined =>\n mergeStyle(local.style, {\n \"--smwb-description-term\": typeof local.termWidth === \"number\" ? `${local.termWidth}px` : local.termWidth,\n });\n\n return (\n <dl\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\n \"smwb-description-list\",\n `smwb-description-list_${local.layout}`,\n { \"smwb-description-list_dense\": local.dense },\n local.class\n )}\n style={style()}\n >\n <For each={items()}>{(item) => <DescriptionItem term={item.term}>{item.description}</DescriptionItem>}</For>\n {local.children}\n </dl>\n );\n}\n\nexport default DescriptionList;\n"],"mappings":"AAAA,OAAO;AACP,OAAO;AACP,SAAqC,KAAK,YAAY,YAAY,kBAAkB;AACpF,OAAO,QAAQ;AACf,SAAS,iBAA2B;AACpC,SAAS,kBAAkB;AAwCpB,SAAS,gBAAgB,OAAuD;AACrF,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,SAAS,QAAQ,YAAY,KAAK,CAAC;AAC5E,SACE,CAAC,QAAQ,MAAM,KAAK,UAAU,MAAM,GAAG,GAAG,OAAO,GAAG,+BAA+B,MAAM,KAAK,GAAG;AAAA,MAC/F,CAAC,GAAG,MAAM,+BAA+B,MAAM,KAAK,EAAnD,GAAwD;AAAA,MACzD,CAAC,GAAG,MAAM,kCAAkC,MAAM,SAAS,EAA1D,GAA+D;AAAA,IAClE,EAHC;AAKL;AAGO,SAAS,gBAAgB,OAAuD;AACrF,QAAM,SAAS,WAAW,EAAE,QAAQ,OAAgC,GAAG,KAAK;AAC5E,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ,CAAC,SAAS,SAAS,SAAS,UAAU,aAAa,SAAS,YAAY,KAAK,CAAC;AAKvH,QAAM,QAAQ,WAAW,MAAM,MAAM,SAAS,CAAC,CAAC;AAEhD,QAAM,QAAQ,MACZ,WAAW,MAAM,OAAO;AAAA,IACtB,2BAA2B,OAAO,MAAM,cAAc,WAAW,GAAG,MAAM,SAAS,OAAO,MAAM;AAAA,EAClG,CAAC;AAEH,SACE,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,OAAO;AAAA,MACL;AAAA,MACA,yBAAyB,MAAM,MAAM;AAAA,MACrC,EAAE,+BAA+B,MAAM,MAAM;AAAA,MAC7C,MAAM;AAAA,IACR;AAAA,IACA,OAAO,MAAM;AAAA,GACd;AAAA,MACC,CAAC,IAAI,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,MAAM,KAAK,OAAO,KAAK,YAAY,EAAnD,iBAAsE,EAArG,IAA2G;AAAA,OAC3G,MAAM,SAAS;AAAA,IAClB,EAbC;AAeL;AAEA,IAAO,0BAAQ;","names":[],"file":"descriptionList.jsx"}