@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,383 @@
1
+ const dagEdgeId = (edge) => edge.id ?? `${edge.source}->${edge.target}`;
2
+ function normalise(input) {
3
+ const warn = input.warn ?? (() => void 0);
4
+ const nodes = [];
5
+ const index = /* @__PURE__ */ new Map();
6
+ for (const node of input.nodes) {
7
+ if (index.has(node.id)) {
8
+ warn(`node "${node.id}" is listed twice; the second is dropped.`);
9
+ continue;
10
+ }
11
+ index.set(node.id, nodes.length);
12
+ nodes.push(node);
13
+ }
14
+ const edges = [];
15
+ const pairs = /* @__PURE__ */ new Set();
16
+ const ids = /* @__PURE__ */ new Set();
17
+ for (const edge of input.edges) {
18
+ const from = index.get(edge.source);
19
+ const to = index.get(edge.target);
20
+ if (from === void 0 || to === void 0) {
21
+ const missing = from === void 0 ? edge.source : edge.target;
22
+ warn(`edge ${edge.source} -> ${edge.target} names an unknown node "${missing}"; it is dropped.`);
23
+ continue;
24
+ }
25
+ if (from === to) {
26
+ warn(`edge ${edge.source} -> ${edge.target} is a self-loop; it is dropped.`);
27
+ continue;
28
+ }
29
+ const pair = `${from} ${to}`;
30
+ const id = dagEdgeId(edge);
31
+ if (pairs.has(pair) || ids.has(id)) {
32
+ warn(`edge ${edge.source} -> ${edge.target} is listed twice; the second is dropped.`);
33
+ continue;
34
+ }
35
+ pairs.add(pair);
36
+ ids.add(id);
37
+ edges.push({ id, source: edge.source, target: edge.target, from, to, reversed: false });
38
+ }
39
+ const out = nodes.map(() => []);
40
+ edges.forEach((edge, i) => out[edge.from].push(i));
41
+ const state = new Uint8Array(nodes.length);
42
+ for (let root = 0; root < nodes.length; root++) {
43
+ if (state[root]) continue;
44
+ const stack = [[root, 0]];
45
+ state[root] = 1;
46
+ while (stack.length) {
47
+ const top = stack[stack.length - 1];
48
+ const [v, next] = top;
49
+ const list = out[v];
50
+ if (next >= list.length) {
51
+ state[v] = 2;
52
+ stack.pop();
53
+ continue;
54
+ }
55
+ top[1] = next + 1;
56
+ const edge = edges[list[next]];
57
+ if (state[edge.to] === 1) edge.reversed = true;
58
+ else if (state[edge.to] === 0) {
59
+ state[edge.to] = 1;
60
+ stack.push([edge.to, 0]);
61
+ }
62
+ }
63
+ }
64
+ return { nodes, index, edges };
65
+ }
66
+ function assignLayers(count, arcs) {
67
+ const out = Array.from({ length: count }, () => []);
68
+ const inDegree = new Array(count).fill(0);
69
+ for (const [u, v] of arcs) {
70
+ out[u].push(v);
71
+ inDegree[v]++;
72
+ }
73
+ const hasPred = inDegree.map((d) => d > 0);
74
+ const layer = new Array(count).fill(0);
75
+ const order = [];
76
+ const queue = [];
77
+ for (let v = 0; v < count; v++) if (inDegree[v] === 0) queue.push(v);
78
+ for (let head = 0; head < queue.length; head++) {
79
+ const u = queue[head];
80
+ order.push(u);
81
+ for (const v of out[u]) {
82
+ layer[v] = Math.max(layer[v], layer[u] + 1);
83
+ if (--inDegree[v] === 0) queue.push(v);
84
+ }
85
+ }
86
+ for (let i = order.length - 1; i >= 0; i--) {
87
+ const v = order[i];
88
+ const succs = out[v];
89
+ if (succs.length === 0 || hasPred[v]) continue;
90
+ layer[v] = Math.min(...succs.map((s) => layer[s])) - 1;
91
+ }
92
+ return layer;
93
+ }
94
+ function crossingsBetween(upper, vertices, position) {
95
+ const pairs = [];
96
+ for (const u of upper) for (const v of vertices[u].succs) pairs.push([position[u], position[v]]);
97
+ pairs.sort((a, b) => a[0] - b[0] || a[1] - b[1]);
98
+ let size = 1;
99
+ for (const [, b] of pairs) size = Math.max(size, b + 2);
100
+ const tree = new Int32Array(size + 1);
101
+ let crossings = 0;
102
+ for (let i = pairs.length - 1; i >= 0; i--) {
103
+ const b = pairs[i][1];
104
+ for (let j = b; j > 0; j -= j & -j) crossings += tree[j];
105
+ for (let j = b + 1; j <= size; j += j & -j) tree[j]++;
106
+ }
107
+ return crossings;
108
+ }
109
+ function totalCrossings(layers, vertices, position) {
110
+ let sum = 0;
111
+ for (let l = 0; l + 1 < layers.length; l++) sum += crossingsBetween(layers[l], vertices, position);
112
+ return sum;
113
+ }
114
+ function reorder(layer, vertices, position, down) {
115
+ const key = /* @__PURE__ */ new Map();
116
+ for (const v of layer) {
117
+ const neighbours = down ? vertices[v].preds : vertices[v].succs;
118
+ if (neighbours.length === 0) key.set(v, position[v]);
119
+ else key.set(v, neighbours.reduce((sum, n) => sum + position[n], 0) / neighbours.length);
120
+ }
121
+ layer.sort((a, b) => key.get(a) - key.get(b) || position[a] - position[b]);
122
+ layer.forEach((v, i) => position[v] = i);
123
+ }
124
+ function orderLayers(layers, vertices, sweeps) {
125
+ const position = new Int32Array(vertices.length);
126
+ for (const layer of layers) layer.forEach((v, i) => position[v] = i);
127
+ let best = layers.map((layer) => layer.slice());
128
+ let bestCrossings = totalCrossings(layers, vertices, position);
129
+ let stale = 0;
130
+ for (let sweep = 0; sweep < sweeps && bestCrossings > 0; sweep++) {
131
+ const down = sweep % 2 === 0;
132
+ if (down) for (let l = 1; l < layers.length; l++) reorder(layers[l], vertices, position, true);
133
+ else for (let l = layers.length - 2; l >= 0; l--) reorder(layers[l], vertices, position, false);
134
+ const crossings = totalCrossings(layers, vertices, position);
135
+ if (crossings < bestCrossings) {
136
+ bestCrossings = crossings;
137
+ best = layers.map((layer) => layer.slice());
138
+ stale = 0;
139
+ } else if (++stale >= 2) break;
140
+ }
141
+ best.forEach((layer, l) => layers[l] = layer);
142
+ }
143
+ function place(desired, gaps, weights) {
144
+ const offset = [0];
145
+ for (let i = 1; i < desired.length; i++) offset.push(offset[i - 1] + gaps[i - 1]);
146
+ const blocks = [];
147
+ desired.forEach((d, i) => {
148
+ let block = { value: d - offset[i], weight: weights[i], count: 1 };
149
+ while (blocks.length && blocks[blocks.length - 1].value > block.value) {
150
+ const last = blocks.pop();
151
+ const weight = last.weight + block.weight;
152
+ block = {
153
+ value: (last.value * last.weight + block.value * block.weight) / weight,
154
+ weight,
155
+ count: last.count + block.count
156
+ };
157
+ }
158
+ blocks.push(block);
159
+ });
160
+ const result = [];
161
+ for (const block of blocks) for (let k = 0; k < block.count; k++) result.push(block.value + offset[result.length]);
162
+ return result;
163
+ }
164
+ function assignCross(layers, vertices, nodeGap) {
165
+ const gapBetween = (a, b) => {
166
+ const va = vertices[a];
167
+ const vb = vertices[b];
168
+ const gap = va.node < 0 && vb.node < 0 ? nodeGap / 2 : nodeGap;
169
+ return va.crossSize / 2 + gap + vb.crossSize / 2;
170
+ };
171
+ for (const layer of layers) {
172
+ let at = 0;
173
+ layer.forEach((v, i) => {
174
+ if (i > 0) at += gapBetween(layer[i - 1], v);
175
+ vertices[v].cross = at;
176
+ });
177
+ }
178
+ const passes = ["down", "up", "down", "up", "both", "both"];
179
+ for (const pass of passes) {
180
+ const range = pass === "up" ? layers.map((_, l) => layers.length - 1 - l) : layers.map((_, l) => l);
181
+ for (const l of range) {
182
+ const layer = layers[l];
183
+ if (layer.length === 0) continue;
184
+ const desired = layer.map((v) => {
185
+ const vertex = vertices[v];
186
+ const neighbours = pass === "down" ? vertex.preds : pass === "up" ? vertex.succs : [...vertex.preds, ...vertex.succs];
187
+ if (neighbours.length === 0) return vertex.cross;
188
+ return neighbours.reduce((sum, n) => sum + vertices[n].cross, 0) / neighbours.length;
189
+ });
190
+ const gaps = layer.slice(1).map((v, i) => gapBetween(layer[i], v));
191
+ const weights = layer.map((v) => vertices[v].node < 0 ? 2 : 1);
192
+ place(desired, gaps, weights).forEach((cross, i) => vertices[layer[i]].cross = cross);
193
+ }
194
+ }
195
+ }
196
+ function layoutPart(members, graph, edgeList, rankSizeOf, crossSizeOf, rankGap, nodeGap, sweeps) {
197
+ const local = /* @__PURE__ */ new Map();
198
+ members.forEach((n, i) => local.set(n, i));
199
+ const arcs = edgeList.map((e) => {
200
+ const edge = graph.edges[e];
201
+ const from = local.get(edge.from);
202
+ const to = local.get(edge.to);
203
+ return edge.reversed ? [to, from] : [from, to];
204
+ });
205
+ const layerOf = assignLayers(members.length, arcs);
206
+ const vertices = members.map((n, i) => ({
207
+ node: n,
208
+ rankSize: rankSizeOf(n),
209
+ crossSize: crossSizeOf(n),
210
+ layer: layerOf[i],
211
+ cross: 0,
212
+ preds: [],
213
+ succs: []
214
+ }));
215
+ const segments = edgeList.map((e, k) => {
216
+ const [from, to] = arcs[k];
217
+ const chain = [from];
218
+ let previous = from;
219
+ for (let l = vertices[from].layer + 1; l < vertices[to].layer; l++) {
220
+ const dummy = vertices.length;
221
+ vertices.push({ node: -1, rankSize: 0, crossSize: 0, layer: l, cross: 0, preds: [], succs: [] });
222
+ vertices[previous].succs.push(dummy);
223
+ vertices[dummy].preds.push(previous);
224
+ chain.push(dummy);
225
+ previous = dummy;
226
+ }
227
+ vertices[previous].succs.push(to);
228
+ vertices[to].preds.push(previous);
229
+ chain.push(to);
230
+ return { edge: e, chain };
231
+ });
232
+ const layerCount = vertices.reduce((max, v) => Math.max(max, v.layer + 1), 0);
233
+ const layers = Array.from({ length: layerCount }, () => []);
234
+ vertices.forEach((v, i) => layers[v.layer].push(i));
235
+ orderLayers(layers, vertices, sweeps);
236
+ assignCross(layers, vertices, nodeGap);
237
+ const thickness = layers.map((layer) => layer.reduce((max, v) => Math.max(max, vertices[v].rankSize), 0));
238
+ const start = [];
239
+ let rank = 0;
240
+ thickness.forEach((t, l) => {
241
+ start[l] = rank;
242
+ rank += t + (l + 1 < thickness.length ? rankGap : 0);
243
+ });
244
+ let minCross = Infinity;
245
+ let maxCross = -Infinity;
246
+ for (const v of vertices) {
247
+ minCross = Math.min(minCross, v.cross - v.crossSize / 2);
248
+ maxCross = Math.max(maxCross, v.cross + v.crossSize / 2);
249
+ }
250
+ const shift = Number.isFinite(minCross) ? -minCross : 0;
251
+ const nodes = /* @__PURE__ */ new Map();
252
+ layers.forEach(
253
+ (layer, l) => layer.forEach((v, order) => {
254
+ const vertex = vertices[v];
255
+ if (vertex.node < 0) return;
256
+ nodes.set(vertex.node, {
257
+ rank: start[l] + (thickness[l] - vertex.rankSize) / 2,
258
+ cross: vertex.cross - vertex.crossSize / 2 + shift,
259
+ layer: l,
260
+ order
261
+ });
262
+ })
263
+ );
264
+ const edges = /* @__PURE__ */ new Map();
265
+ for (const { edge, chain } of segments) {
266
+ const points = [];
267
+ chain.forEach((v, i) => {
268
+ const vertex = vertices[v];
269
+ const l = vertex.layer;
270
+ const cross = vertex.cross + shift;
271
+ const bandStart = start[l] + (thickness[l] - vertex.rankSize) / 2;
272
+ if (i === 0) points.push({ rank: bandStart + vertex.rankSize, cross });
273
+ else if (i === chain.length - 1) points.push({ rank: bandStart, cross });
274
+ else {
275
+ points.push({ rank: start[l], cross }, { rank: start[l] + thickness[l], cross });
276
+ }
277
+ });
278
+ if (graph.edges[edge].reversed) points.reverse();
279
+ edges.set(edge, points);
280
+ }
281
+ return {
282
+ nodes,
283
+ edges,
284
+ rankExtent: rank,
285
+ crossExtent: Number.isFinite(maxCross) ? maxCross - minCross : 0
286
+ };
287
+ }
288
+ function dagLayout(input) {
289
+ const direction = input.direction ?? "LR";
290
+ const rankGap = input.rankGap ?? 64;
291
+ const nodeGap = input.nodeGap ?? 24;
292
+ const sweeps = input.sweeps ?? 8;
293
+ const graph = normalise(input);
294
+ const lr = direction === "LR";
295
+ const rankSizeOf = (n) => lr ? graph.nodes[n].width : graph.nodes[n].height;
296
+ const crossSizeOf = (n) => lr ? graph.nodes[n].height : graph.nodes[n].width;
297
+ const parent = graph.nodes.map((_, i) => i);
298
+ const find = (v) => {
299
+ while (parent[v] !== v) {
300
+ parent[v] = parent[parent[v]];
301
+ v = parent[v];
302
+ }
303
+ return v;
304
+ };
305
+ for (const edge of graph.edges) {
306
+ const a = find(edge.from);
307
+ const b = find(edge.to);
308
+ if (a !== b) parent[Math.max(a, b)] = Math.min(a, b);
309
+ }
310
+ const parts = /* @__PURE__ */ new Map();
311
+ graph.nodes.forEach((_, i) => {
312
+ const root = find(i);
313
+ if (!parts.has(root)) parts.set(root, { members: [], edges: [] });
314
+ parts.get(root).members.push(i);
315
+ });
316
+ graph.edges.forEach((edge, e) => parts.get(find(edge.from)).edges.push(e));
317
+ const placedNodes = /* @__PURE__ */ new Map();
318
+ const placedEdges = /* @__PURE__ */ new Map();
319
+ const toPoint = (rank, cross) => lr ? { x: rank, y: cross } : { x: cross, y: rank };
320
+ let crossAt = 0;
321
+ let rankExtent = 0;
322
+ for (const part of parts.values()) {
323
+ const laid = layoutPart(part.members, graph, part.edges, rankSizeOf, crossSizeOf, rankGap, nodeGap, sweeps);
324
+ for (const [n, p] of laid.nodes) {
325
+ const node = graph.nodes[n];
326
+ placedNodes.set(n, {
327
+ id: node.id,
328
+ ...toPoint(p.rank, p.cross + crossAt),
329
+ width: node.width,
330
+ height: node.height,
331
+ layer: p.layer,
332
+ order: p.order
333
+ });
334
+ }
335
+ for (const [e, points] of laid.edges) {
336
+ placedEdges.set(
337
+ e,
338
+ points.map((p) => toPoint(p.rank, p.cross + crossAt))
339
+ );
340
+ }
341
+ rankExtent = Math.max(rankExtent, laid.rankExtent);
342
+ crossAt += laid.crossExtent + nodeGap * 2;
343
+ }
344
+ const crossExtent = Math.max(0, crossAt - nodeGap * 2);
345
+ const nodes = /* @__PURE__ */ new Map();
346
+ graph.nodes.forEach((node, i) => nodes.set(node.id, placedNodes.get(i)));
347
+ const pairs = new Set(graph.edges.map((edge) => `${edge.from} ${edge.to}`));
348
+ const edges = graph.edges.map((edge, e) => {
349
+ let points = placedEdges.get(e);
350
+ if (edge.reversed && pairs.has(`${edge.to} ${edge.from}`)) {
351
+ const across = (n) => lr ? graph.nodes[n].height : graph.nodes[n].width;
352
+ const offset = Math.min(8, across(edge.from) / 4, across(edge.to) / 4);
353
+ points = points.map((p) => lr ? { x: p.x, y: p.y + offset } : { x: p.x + offset, y: p.y });
354
+ }
355
+ return { id: edge.id, source: edge.source, target: edge.target, points, reversed: edge.reversed };
356
+ });
357
+ const extent = toPoint(rankExtent, crossExtent);
358
+ return { nodes, edges, width: extent.x, height: extent.y };
359
+ }
360
+ function dagEdgePath(points, direction = "LR") {
361
+ if (points.length === 0) return "";
362
+ const round = (n) => Math.round(n * 10) / 10;
363
+ const first = points[0];
364
+ let d = `M${round(first.x)},${round(first.y)}`;
365
+ for (let i = 1; i < points.length; i++) {
366
+ const a = points[i - 1];
367
+ const b = points[i];
368
+ if (direction === "LR") {
369
+ const mid = (a.x + b.x) / 2;
370
+ d += ` C${round(mid)},${round(a.y)} ${round(mid)},${round(b.y)} ${round(b.x)},${round(b.y)}`;
371
+ } else {
372
+ const mid = (a.y + b.y) / 2;
373
+ d += ` C${round(a.x)},${round(mid)} ${round(b.x)},${round(mid)} ${round(b.x)},${round(b.y)}`;
374
+ }
375
+ }
376
+ return d;
377
+ }
378
+ export {
379
+ dagEdgeId,
380
+ dagEdgePath,
381
+ dagLayout
382
+ };
383
+ //# sourceMappingURL=dagLayout.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/dataDisplay/dagView/dagLayout.ts"],
4
+ "sourcesContent": ["// A layered (Sugiyama-style) layout for directed graphs: pure, synchronous and\n// deterministic, with no imports from Solid or the DOM, so the server and the\n// browser compute the same picture and a React port can copy the file as is.\n//\n// Steps: normalise the input; reverse the back edges of cycles; put each node\n// in a layer by the longest path from the sources; split edges that span\n// several layers with dummy points; order each layer by barycenter sweeps to\n// cut crossings; place nodes along the layer, pulled toward their neighbours\n// without overlapping; lay disconnected parts side by side; route each edge as\n// a list of points through its dummies.\n\n/** Which way the layers run: left to right, or top to bottom. */\nexport type DagDirection = \"LR\" | \"TB\";\n\nexport interface DagLayoutInputNode {\n id: string;\n width: number;\n height: number;\n}\n\nexport interface DagLayoutInputEdge {\n /** `source->target` unless given. */\n id?: string | undefined;\n source: string;\n target: string;\n}\n\nexport interface DagLayoutInput {\n nodes: readonly DagLayoutInputNode[];\n edges: readonly DagLayoutInputEdge[];\n /** \"LR\" by default. */\n direction?: DagDirection | undefined;\n /** The space between layers; 64 by default. */\n rankGap?: number | undefined;\n /** The space between nodes in a layer, and twice it between disconnected parts; 24 by default. */\n nodeGap?: number | undefined;\n /** Ordering sweeps (down and up count as one each); 8 by default. */\n sweeps?: number | undefined;\n /** Told what was dropped from the input: unknown ids, self-loops, duplicates. */\n warn?: ((message: string) => void) | undefined;\n}\n\nexport interface DagPoint {\n x: number;\n y: number;\n}\n\nexport interface DagLayoutNode {\n id: string;\n /** The left edge. */\n x: number;\n /** The top edge. */\n y: number;\n width: number;\n height: number;\n /** The node's layer, 0 for the first. */\n layer: number;\n /** The node's place in its layer, 0 for the first (dummies included). */\n order: number;\n}\n\nexport interface DagLayoutEdge {\n id: string;\n source: string;\n target: string;\n /** From the source's side to the target's side, through the layers between. */\n points: DagPoint[];\n /** The edge closes a cycle and was drawn against the layer direction. */\n reversed: boolean;\n}\n\nexport interface DagLayoutResult {\n /** Every node drawn, in input order. */\n nodes: Map<string, DagLayoutNode>;\n /** Every edge drawn, in input order. */\n edges: DagLayoutEdge[];\n width: number;\n height: number;\n}\n\n/** The id an edge is drawn and highlighted by. */\nexport const dagEdgeId = (edge: DagLayoutInputEdge): string => edge.id ?? `${edge.source}->${edge.target}`;\n\ninterface Vertex {\n /** Index into the real nodes, or -1 for a dummy. */\n node: number;\n /** Size along the layer axis (width in LR) and across it. */\n rankSize: number;\n crossSize: number;\n layer: number;\n /** Centre across the layer axis. */\n cross: number;\n preds: number[];\n succs: number[];\n}\n\ninterface Segment {\n /** The edge's index in the normalised list. */\n edge: number;\n /** Vertices from the layered source to the layered target, dummies between. */\n chain: number[];\n}\n\n// ---- Steps 1-2: normalise, break cycles ----\n\ninterface Normalised {\n nodes: DagLayoutInputNode[];\n index: Map<string, number>;\n edges: Array<{ id: string; source: string; target: string; from: number; to: number; reversed: boolean }>;\n}\n\nfunction normalise(input: DagLayoutInput): Normalised {\n const warn = input.warn ?? (() => undefined);\n const nodes: DagLayoutInputNode[] = [];\n const index = new Map<string, number>();\n for (const node of input.nodes) {\n if (index.has(node.id)) {\n warn(`node \"${node.id}\" is listed twice; the second is dropped.`);\n continue;\n }\n index.set(node.id, nodes.length);\n nodes.push(node);\n }\n const edges: Normalised[\"edges\"] = [];\n const pairs = new Set<string>();\n const ids = new Set<string>();\n for (const edge of input.edges) {\n const from = index.get(edge.source);\n const to = index.get(edge.target);\n if (from === undefined || to === undefined) {\n const missing = from === undefined ? edge.source : edge.target;\n warn(`edge ${edge.source} -> ${edge.target} names an unknown node \"${missing}\"; it is dropped.`);\n continue;\n }\n if (from === to) {\n warn(`edge ${edge.source} -> ${edge.target} is a self-loop; it is dropped.`);\n continue;\n }\n const pair = `${from} ${to}`;\n const id = dagEdgeId(edge);\n if (pairs.has(pair) || ids.has(id)) {\n warn(`edge ${edge.source} -> ${edge.target} is listed twice; the second is dropped.`);\n continue;\n }\n pairs.add(pair);\n ids.add(id);\n edges.push({ id, source: edge.source, target: edge.target, from, to, reversed: false });\n }\n\n // A depth-first walk in input order: an edge to a node still on the stack\n // closes a cycle, and is turned around so the rest can be layered.\n const out: number[][] = nodes.map(() => []);\n edges.forEach((edge, i) => out[edge.from]!.push(i));\n const state = new Uint8Array(nodes.length); // 0 new, 1 on the stack, 2 done\n for (let root = 0; root < nodes.length; root++) {\n if (state[root]) continue;\n const stack: Array<[number, number]> = [[root, 0]];\n state[root] = 1;\n while (stack.length) {\n const top = stack[stack.length - 1]!;\n const [v, next] = top;\n const list = out[v]!;\n if (next >= list.length) {\n state[v] = 2;\n stack.pop();\n continue;\n }\n top[1] = next + 1;\n const edge = edges[list[next]!]!;\n if (state[edge.to] === 1) edge.reversed = true;\n else if (state[edge.to] === 0) {\n state[edge.to] = 1;\n stack.push([edge.to, 0]);\n }\n }\n }\n return { nodes, index, edges };\n}\n\n// ---- Step 3: layers by the longest path ----\n\nfunction assignLayers(count: number, arcs: Array<[number, number]>): number[] {\n const out: number[][] = Array.from({ length: count }, () => []);\n const inDegree = new Array<number>(count).fill(0);\n for (const [u, v] of arcs) {\n out[u]!.push(v);\n inDegree[v]!++;\n }\n const hasPred = inDegree.map((d) => d > 0);\n const layer = new Array<number>(count).fill(0);\n const order: number[] = [];\n const queue: number[] = [];\n for (let v = 0; v < count; v++) if (inDegree[v] === 0) queue.push(v);\n for (let head = 0; head < queue.length; head++) {\n const u = queue[head]!;\n order.push(u);\n for (const v of out[u]!) {\n layer[v] = Math.max(layer[v]!, layer[u]! + 1);\n if (--inDegree[v]! === 0) queue.push(v);\n }\n }\n // A source sits just before the first layer it feeds, not in layer 0 with a\n // long edge across: a late input stays next to the step that reads it.\n for (let i = order.length - 1; i >= 0; i--) {\n const v = order[i]!;\n const succs = out[v]!;\n if (succs.length === 0 || hasPred[v]) continue;\n layer[v] = Math.min(...succs.map((s) => layer[s]!)) - 1;\n }\n return layer;\n}\n\n// ---- Step 5: ordering ----\n\n/** Crossings between two neighbouring layers, by counting inversions. */\nfunction crossingsBetween(upper: number[], vertices: Vertex[], position: Int32Array): number {\n const pairs: Array<[number, number]> = [];\n for (const u of upper) for (const v of vertices[u]!.succs) pairs.push([position[u]!, position[v]!]);\n pairs.sort((a, b) => a[0] - b[0] || a[1] - b[1]);\n // Inversions of the lower ends, with a Fenwick tree.\n let size = 1;\n for (const [, b] of pairs) size = Math.max(size, b + 2);\n const tree = new Int32Array(size + 1);\n let crossings = 0;\n for (let i = pairs.length - 1; i >= 0; i--) {\n const b = pairs[i]![1];\n for (let j = b; j > 0; j -= j & -j) crossings += tree[j]!;\n for (let j = b + 1; j <= size; j += j & -j) tree[j]!++;\n }\n return crossings;\n}\n\nfunction totalCrossings(layers: number[][], vertices: Vertex[], position: Int32Array): number {\n let sum = 0;\n for (let l = 0; l + 1 < layers.length; l++) sum += crossingsBetween(layers[l]!, vertices, position);\n return sum;\n}\n\nfunction reorder(layer: number[], vertices: Vertex[], position: Int32Array, down: boolean): void {\n const key = new Map<number, number>();\n for (const v of layer) {\n const neighbours = down ? vertices[v]!.preds : vertices[v]!.succs;\n if (neighbours.length === 0) key.set(v, position[v]!);\n else key.set(v, neighbours.reduce((sum, n) => sum + position[n]!, 0) / neighbours.length);\n }\n // Ties keep the current order, so the result is the same on every run.\n layer.sort((a, b) => key.get(a)! - key.get(b)! || position[a]! - position[b]!);\n layer.forEach((v, i) => (position[v] = i));\n}\n\nfunction orderLayers(layers: number[][], vertices: Vertex[], sweeps: number): void {\n const position = new Int32Array(vertices.length);\n for (const layer of layers) layer.forEach((v, i) => (position[v] = i));\n let best = layers.map((layer) => layer.slice());\n let bestCrossings = totalCrossings(layers, vertices, position);\n let stale = 0;\n for (let sweep = 0; sweep < sweeps && bestCrossings > 0; sweep++) {\n const down = sweep % 2 === 0;\n if (down) for (let l = 1; l < layers.length; l++) reorder(layers[l]!, vertices, position, true);\n else for (let l = layers.length - 2; l >= 0; l--) reorder(layers[l]!, vertices, position, false);\n const crossings = totalCrossings(layers, vertices, position);\n if (crossings < bestCrossings) {\n bestCrossings = crossings;\n best = layers.map((layer) => layer.slice());\n stale = 0;\n } else if (++stale >= 2) break;\n }\n best.forEach((layer, l) => (layers[l] = layer));\n}\n\n// ---- Step 6: positions across the layer ----\n\n/**\n * Centres as close to `desired` as they can get, in order, at least `gap`\n * apart: an isotonic regression by pooling adjacent violators.\n */\nfunction place(desired: number[], gaps: number[], weights: number[]): number[] {\n // Shift out the gaps, so the constraint becomes \"non-decreasing\".\n const offset: number[] = [0];\n for (let i = 1; i < desired.length; i++) offset.push(offset[i - 1]! + gaps[i - 1]!);\n const blocks: Array<{ value: number; weight: number; count: number }> = [];\n desired.forEach((d, i) => {\n let block = { value: d - offset[i]!, weight: weights[i]!, count: 1 };\n while (blocks.length && blocks[blocks.length - 1]!.value > block.value) {\n const last = blocks.pop()!;\n const weight = last.weight + block.weight;\n block = {\n value: (last.value * last.weight + block.value * block.weight) / weight,\n weight,\n count: last.count + block.count,\n };\n }\n blocks.push(block);\n });\n const result: number[] = [];\n for (const block of blocks) for (let k = 0; k < block.count; k++) result.push(block.value + offset[result.length]!);\n return result;\n}\n\nfunction assignCross(layers: number[][], vertices: Vertex[], nodeGap: number): void {\n const gapBetween = (a: number, b: number): number => {\n const va = vertices[a]!;\n const vb = vertices[b]!;\n // Dummies keep less room between each other than real nodes do.\n const gap = va.node < 0 && vb.node < 0 ? nodeGap / 2 : nodeGap;\n return va.crossSize / 2 + gap + vb.crossSize / 2;\n };\n for (const layer of layers) {\n let at = 0;\n layer.forEach((v, i) => {\n if (i > 0) at += gapBetween(layer[i - 1]!, v);\n vertices[v]!.cross = at;\n });\n }\n // Pull toward the neighbours: down from the layer before, up from the layer\n // after, and once more from both sides. Dummies weigh more, so long edges run straight.\n const passes: Array<\"down\" | \"up\" | \"both\"> = [\"down\", \"up\", \"down\", \"up\", \"both\", \"both\"];\n for (const pass of passes) {\n const range = pass === \"up\" ? layers.map((_, l) => layers.length - 1 - l) : layers.map((_, l) => l);\n for (const l of range) {\n const layer = layers[l]!;\n if (layer.length === 0) continue;\n const desired = layer.map((v) => {\n const vertex = vertices[v]!;\n const neighbours =\n pass === \"down\" ? vertex.preds : pass === \"up\" ? vertex.succs : [...vertex.preds, ...vertex.succs];\n if (neighbours.length === 0) return vertex.cross;\n return neighbours.reduce((sum, n) => sum + vertices[n]!.cross, 0) / neighbours.length;\n });\n const gaps = layer.slice(1).map((v, i) => gapBetween(layer[i]!, v));\n const weights = layer.map((v) => (vertices[v]!.node < 0 ? 2 : 1));\n place(desired, gaps, weights).forEach((cross, i) => (vertices[layer[i]!]!.cross = cross));\n }\n }\n}\n\n// ---- Steps 4, 7, 8: one connected part, then all of them ----\n\ninterface PartLayout {\n /** Real node index \u2192 its rectangle in part coordinates (rank, cross). */\n nodes: Map<number, { rank: number; cross: number; layer: number; order: number }>;\n /** Edge index \u2192 points in part coordinates (rank, cross). */\n edges: Map<number, Array<{ rank: number; cross: number }>>;\n rankExtent: number;\n crossExtent: number;\n}\n\nfunction layoutPart(\n members: number[],\n graph: Normalised,\n edgeList: number[],\n rankSizeOf: (n: number) => number,\n crossSizeOf: (n: number) => number,\n rankGap: number,\n nodeGap: number,\n sweeps: number\n): PartLayout {\n const local = new Map<number, number>();\n members.forEach((n, i) => local.set(n, i));\n const arcs: Array<[number, number]> = edgeList.map((e) => {\n const edge = graph.edges[e]!;\n const from = local.get(edge.from)!;\n const to = local.get(edge.to)!;\n return edge.reversed ? [to, from] : [from, to];\n });\n const layerOf = assignLayers(members.length, arcs);\n\n const vertices: Vertex[] = members.map((n, i) => ({\n node: n,\n rankSize: rankSizeOf(n),\n crossSize: crossSizeOf(n),\n layer: layerOf[i]!,\n cross: 0,\n preds: [],\n succs: [],\n }));\n const segments: Segment[] = edgeList.map((e, k) => {\n const [from, to] = arcs[k]!;\n const chain = [from];\n let previous = from;\n for (let l = vertices[from]!.layer + 1; l < vertices[to]!.layer; l++) {\n const dummy = vertices.length;\n vertices.push({ node: -1, rankSize: 0, crossSize: 0, layer: l, cross: 0, preds: [], succs: [] });\n vertices[previous]!.succs.push(dummy);\n vertices[dummy]!.preds.push(previous);\n chain.push(dummy);\n previous = dummy;\n }\n vertices[previous]!.succs.push(to);\n vertices[to]!.preds.push(previous);\n chain.push(to);\n return { edge: e, chain };\n });\n\n // Each layer starts in the order of first appearance in a walk from the\n // sources in input order; the sweeps take it from there.\n const layerCount = vertices.reduce((max, v) => Math.max(max, v.layer + 1), 0);\n const layers: number[][] = Array.from({ length: layerCount }, () => []);\n vertices.forEach((v, i) => layers[v.layer]!.push(i));\n orderLayers(layers, vertices, sweeps);\n assignCross(layers, vertices, nodeGap);\n\n // Layer bands along the rank axis: each as thick as its thickest node.\n const thickness = layers.map((layer) => layer.reduce((max, v) => Math.max(max, vertices[v]!.rankSize), 0));\n const start: number[] = [];\n let rank = 0;\n thickness.forEach((t, l) => {\n start[l] = rank;\n rank += t + (l + 1 < thickness.length ? rankGap : 0);\n });\n\n let minCross = Infinity;\n let maxCross = -Infinity;\n for (const v of vertices) {\n minCross = Math.min(minCross, v.cross - v.crossSize / 2);\n maxCross = Math.max(maxCross, v.cross + v.crossSize / 2);\n }\n const shift = Number.isFinite(minCross) ? -minCross : 0;\n\n const nodes: PartLayout[\"nodes\"] = new Map();\n layers.forEach((layer, l) =>\n layer.forEach((v, order) => {\n const vertex = vertices[v]!;\n if (vertex.node < 0) return;\n nodes.set(vertex.node, {\n rank: start[l]! + (thickness[l]! - vertex.rankSize) / 2,\n cross: vertex.cross - vertex.crossSize / 2 + shift,\n layer: l,\n order,\n });\n })\n );\n\n const edges: PartLayout[\"edges\"] = new Map();\n for (const { edge, chain } of segments) {\n const points: Array<{ rank: number; cross: number }> = [];\n chain.forEach((v, i) => {\n const vertex = vertices[v]!;\n const l = vertex.layer;\n const cross = vertex.cross + shift;\n const bandStart = start[l]! + (thickness[l]! - vertex.rankSize) / 2;\n if (i === 0) points.push({ rank: bandStart + vertex.rankSize, cross });\n else if (i === chain.length - 1) points.push({ rank: bandStart, cross });\n else {\n // Straight through the band of a layer it skips, so it never cuts a node.\n points.push({ rank: start[l]!, cross }, { rank: start[l]! + thickness[l]!, cross });\n }\n });\n if (graph.edges[edge]!.reversed) points.reverse();\n edges.set(edge, points);\n }\n\n return {\n nodes,\n edges,\n rankExtent: rank,\n crossExtent: Number.isFinite(maxCross) ? maxCross - minCross : 0,\n };\n}\n\n/**\n * Lays out a directed graph in layers. Never throws: unknown ids, self-loops\n * and duplicates are dropped (and reported through `warn`), and the edges that\n * close a cycle are drawn against the layer direction, marked `reversed`.\n */\nexport function dagLayout(input: DagLayoutInput): DagLayoutResult {\n const direction = input.direction ?? \"LR\";\n const rankGap = input.rankGap ?? 64;\n const nodeGap = input.nodeGap ?? 24;\n const sweeps = input.sweeps ?? 8;\n const graph = normalise(input);\n const lr = direction === \"LR\";\n const rankSizeOf = (n: number): number => (lr ? graph.nodes[n]!.width : graph.nodes[n]!.height);\n const crossSizeOf = (n: number): number => (lr ? graph.nodes[n]!.height : graph.nodes[n]!.width);\n\n // Connected parts (edges taken both ways), in the order of their first node.\n const parent = graph.nodes.map((_, i) => i);\n const find = (v: number): number => {\n while (parent[v] !== v) {\n parent[v] = parent[parent[v]!]!;\n v = parent[v]!;\n }\n return v;\n };\n for (const edge of graph.edges) {\n const a = find(edge.from);\n const b = find(edge.to);\n if (a !== b) parent[Math.max(a, b)] = Math.min(a, b);\n }\n const parts = new Map<number, { members: number[]; edges: number[] }>();\n graph.nodes.forEach((_, i) => {\n const root = find(i);\n if (!parts.has(root)) parts.set(root, { members: [], edges: [] });\n parts.get(root)!.members.push(i);\n });\n graph.edges.forEach((edge, e) => parts.get(find(edge.from))!.edges.push(e));\n\n const placedNodes = new Map<number, DagLayoutNode>();\n const placedEdges = new Map<number, DagPoint[]>();\n const toPoint = (rank: number, cross: number): DagPoint => (lr ? { x: rank, y: cross } : { x: cross, y: rank });\n let crossAt = 0;\n let rankExtent = 0;\n for (const part of parts.values()) {\n const laid = layoutPart(part.members, graph, part.edges, rankSizeOf, crossSizeOf, rankGap, nodeGap, sweeps);\n for (const [n, p] of laid.nodes) {\n const node = graph.nodes[n]!;\n placedNodes.set(n, {\n id: node.id,\n ...toPoint(p.rank, p.cross + crossAt),\n width: node.width,\n height: node.height,\n layer: p.layer,\n order: p.order,\n });\n }\n for (const [e, points] of laid.edges) {\n placedEdges.set(\n e,\n points.map((p) => toPoint(p.rank, p.cross + crossAt))\n );\n }\n rankExtent = Math.max(rankExtent, laid.rankExtent);\n crossAt += laid.crossExtent + nodeGap * 2;\n }\n const crossExtent = Math.max(0, crossAt - nodeGap * 2);\n\n const nodes = new Map<string, DagLayoutNode>();\n graph.nodes.forEach((node, i) => nodes.set(node.id, placedNodes.get(i)!));\n // A two-cycle (a->b and b->a) would draw both edges on one curve: the\n // turned-around one moves across, still ending on both nodes.\n const pairs = new Set(graph.edges.map((edge) => `${edge.from} ${edge.to}`));\n const edges = graph.edges.map((edge, e) => {\n let points = placedEdges.get(e)!;\n if (edge.reversed && pairs.has(`${edge.to} ${edge.from}`)) {\n const across = (n: number): number => (lr ? graph.nodes[n]!.height : graph.nodes[n]!.width);\n const offset = Math.min(8, across(edge.from) / 4, across(edge.to) / 4);\n points = points.map((p) => (lr ? { x: p.x, y: p.y + offset } : { x: p.x + offset, y: p.y }));\n }\n return { id: edge.id, source: edge.source, target: edge.target, points, reversed: edge.reversed };\n });\n const extent = toPoint(rankExtent, crossExtent);\n return { nodes, edges, width: extent.x, height: extent.y };\n}\n\n/**\n * An SVG path through an edge's points: a smooth S-curve between layers, a\n * straight line through the layers it skips.\n */\nexport function dagEdgePath(points: readonly DagPoint[], direction: DagDirection = \"LR\"): string {\n if (points.length === 0) return \"\";\n const round = (n: number): number => Math.round(n * 10) / 10;\n const first = points[0]!;\n let d = `M${round(first.x)},${round(first.y)}`;\n for (let i = 1; i < points.length; i++) {\n const a = points[i - 1]!;\n const b = points[i]!;\n if (direction === \"LR\") {\n const mid = (a.x + b.x) / 2;\n d += ` C${round(mid)},${round(a.y)} ${round(mid)},${round(b.y)} ${round(b.x)},${round(b.y)}`;\n } else {\n const mid = (a.y + b.y) / 2;\n d += ` C${round(a.x)},${round(mid)} ${round(b.x)},${round(mid)} ${round(b.x)},${round(b.y)}`;\n }\n }\n return d;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }