@smwb/ui-solid 0.12.1 → 0.14.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 (1137) hide show
  1. package/README.md +638 -0
  2. package/dist/assets/styles/less/components/appBar/appBar.entry.css +1 -1
  3. package/dist/assets/styles/less/components/avatar/avatar.entry.css +1 -1
  4. package/dist/assets/styles/less/components/button/button.entry.css +1 -1
  5. package/dist/assets/styles/less/components/card/card.entry.css +1 -1
  6. package/dist/assets/styles/less/components/checkbox/checkbox.entry.css +1 -1
  7. package/dist/assets/styles/less/components/chip/chip.entry.css +1 -1
  8. package/dist/assets/styles/less/components/commandPalette/commandPalette.entry.css +1 -0
  9. package/dist/assets/styles/less/components/composer/composer.entry.css +1 -0
  10. package/dist/assets/styles/less/components/dagView/dagView.entry.css +1 -0
  11. package/dist/assets/styles/less/components/diffStat/diffStat.entry.css +1 -0
  12. package/dist/assets/styles/less/components/kbd/kbd.entry.css +1 -0
  13. package/dist/assets/styles/less/components/list/list.entry.css +1 -1
  14. package/dist/assets/styles/less/components/menu/menu.entry.css +1 -1
  15. package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -1
  16. package/dist/assets/styles/less/components/qrCode/qrCode.entry.css +1 -0
  17. package/dist/assets/styles/less/components/radioButton/radioButton.entry.css +1 -1
  18. package/dist/assets/styles/less/components/rating/rating.entry.css +1 -1
  19. package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
  20. package/dist/assets/styles/less/components/sidebar/sidebar.entry.css +1 -1
  21. package/dist/assets/styles/less/components/statusDot/statusDot.entry.css +1 -0
  22. package/dist/assets/styles/less/components/swimlanes/swimlanes.entry.css +1 -0
  23. package/dist/assets/styles/less/components/tabGroups/tabGroups.entry.css +1 -0
  24. package/dist/assets/styles/less/components/table/table.entry.css +1 -1
  25. package/dist/assets/styles/less/components/tabs/tab/tab.entry.css +1 -1
  26. package/dist/assets/styles/less/components/tabs/tabPanel/tabPanel.entry.css +1 -0
  27. package/dist/assets/styles/less/components/tabs/tabs.entry.css +1 -1
  28. package/dist/assets/styles/less/components/textField/textField.entry.css +1 -1
  29. package/dist/assets/styles/less/components/thumbCard/thumbCard.entry.css +1 -1
  30. package/dist/assets/styles/less/components/toggle/toggle.entry.css +1 -1
  31. package/dist/assets/styles/less/components/treeView/treeView.entry.css +1 -1
  32. package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
  33. package/dist/assets/styles/less/tokens.entry.css +1 -1
  34. package/dist/components/base/animateHeight/animateHeight.js +41 -42
  35. package/dist/components/base/animateHeight/animateHeight.js.map +1 -1
  36. package/dist/components/base/icon/icon.d.ts +6 -2
  37. package/dist/components/base/icon/icon.js +41 -41
  38. package/dist/components/base/icon/icon.js.map +1 -1
  39. package/dist/components/base/ripple/ripple.d.ts +3 -0
  40. package/dist/components/base/ripple/ripple.js +46 -34
  41. package/dist/components/base/ripple/ripple.js.map +1 -1
  42. package/dist/components/dataDisplay/avatar/avatar.d.ts +4 -0
  43. package/dist/components/dataDisplay/avatar/avatar.js +37 -33
  44. package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
  45. package/dist/components/dataDisplay/card/card.d.ts +32 -1
  46. package/dist/components/dataDisplay/card/card.js +47 -34
  47. package/dist/components/dataDisplay/card/card.js.map +1 -1
  48. package/dist/components/dataDisplay/carousel/carousel.js +92 -88
  49. package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
  50. package/dist/components/dataDisplay/chart/chart.d.ts +2 -0
  51. package/dist/components/dataDisplay/chat/chat.d.ts +42 -0
  52. package/dist/components/dataDisplay/chat/chat.js +116 -57
  53. package/dist/components/dataDisplay/chat/chat.js.map +1 -1
  54. package/dist/components/dataDisplay/chat/chatComposer.d.ts +17 -0
  55. package/dist/components/dataDisplay/chat/chatComposer.js +21 -19
  56. package/dist/components/dataDisplay/chat/chatComposer.js.map +1 -1
  57. package/dist/components/dataDisplay/chat/chatIconButton.js +23 -13
  58. package/dist/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  59. package/dist/components/dataDisplay/chat/chatLayout.d.ts +2 -0
  60. package/dist/components/dataDisplay/chat/chatLayout.js +33 -29
  61. package/dist/components/dataDisplay/chat/chatLayout.js.map +1 -1
  62. package/dist/components/dataDisplay/chat/chatOverlayLayout.d.ts +2 -0
  63. package/dist/components/dataDisplay/chat/chatOverlayLayout.js +19 -17
  64. package/dist/components/dataDisplay/chat/chatOverlayLayout.js.map +1 -1
  65. package/dist/components/dataDisplay/chat/index.d.ts +1 -1
  66. package/dist/components/dataDisplay/chat/utils.d.ts +14 -0
  67. package/dist/components/dataDisplay/chat/utils.js.map +1 -1
  68. package/dist/components/dataDisplay/chip/chip.d.ts +32 -0
  69. package/dist/components/dataDisplay/chip/chip.js +104 -63
  70. package/dist/components/dataDisplay/chip/chip.js.map +1 -1
  71. package/dist/components/dataDisplay/chipGroup/chipGroup.js +44 -39
  72. package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  73. package/dist/components/dataDisplay/dagView/dagLayout.d.ts +74 -0
  74. package/dist/components/dataDisplay/dagView/dagLayout.js +284 -0
  75. package/dist/components/dataDisplay/dagView/dagLayout.js.map +1 -0
  76. package/dist/components/dataDisplay/dagView/dagView.d.ts +151 -0
  77. package/dist/components/dataDisplay/dagView/dagView.js +503 -0
  78. package/dist/components/dataDisplay/dagView/dagView.js.map +1 -0
  79. package/dist/components/dataDisplay/dagView/index.d.ts +4 -0
  80. package/dist/components/dataDisplay/dagView/panZoom.d.ts +75 -0
  81. package/dist/components/dataDisplay/dagView/panZoom.js +161 -0
  82. package/dist/components/dataDisplay/dagView/panZoom.js.map +1 -0
  83. package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +11 -3
  84. package/dist/components/dataDisplay/descriptionList/descriptionList.js +20 -24
  85. package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
  86. package/dist/components/dataDisplay/diffStat/diffStat.d.ts +55 -0
  87. package/dist/components/dataDisplay/diffStat/diffStat.js +70 -0
  88. package/dist/components/dataDisplay/diffStat/diffStat.js.map +1 -0
  89. package/dist/components/dataDisplay/diffStat/index.d.ts +2 -0
  90. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +114 -81
  91. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  92. package/dist/components/dataDisplay/kanban/kanban.d.ts +6 -0
  93. package/dist/components/dataDisplay/kanban/kanban.js +71 -61
  94. package/dist/components/dataDisplay/kanban/kanban.js.map +1 -1
  95. package/dist/components/dataDisplay/kbd/index.d.ts +4 -0
  96. package/dist/components/dataDisplay/kbd/kbd.d.ts +41 -0
  97. package/dist/components/dataDisplay/kbd/kbd.js +47 -0
  98. package/dist/components/dataDisplay/kbd/kbd.js.map +1 -0
  99. package/dist/components/dataDisplay/kbd/kbdKeys.d.ts +18 -0
  100. package/dist/components/dataDisplay/kbd/kbdKeys.js +70 -0
  101. package/dist/components/dataDisplay/kbd/kbdKeys.js.map +1 -0
  102. package/dist/components/dataDisplay/lazyImage/lazyImage.js +14 -12
  103. package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  104. package/dist/components/dataDisplay/list/list.d.ts +2 -0
  105. package/dist/components/dataDisplay/list/list.js +16 -12
  106. package/dist/components/dataDisplay/list/list.js.map +1 -1
  107. package/dist/components/dataDisplay/list/listItem.d.ts +34 -0
  108. package/dist/components/dataDisplay/list/listItem.js +58 -19
  109. package/dist/components/dataDisplay/list/listItem.js.map +1 -1
  110. package/dist/components/dataDisplay/meter/meter.d.ts +2 -0
  111. package/dist/components/dataDisplay/meter/meter.js +15 -13
  112. package/dist/components/dataDisplay/meter/meter.js.map +1 -1
  113. package/dist/components/dataDisplay/personChip/personChip.d.ts +2 -0
  114. package/dist/components/dataDisplay/personChip/personChip.js +12 -10
  115. package/dist/components/dataDisplay/personChip/personChip.js.map +1 -1
  116. package/dist/components/dataDisplay/qrCode/index.d.ts +2 -0
  117. package/dist/components/dataDisplay/qrCode/qrCode.d.ts +30 -0
  118. package/dist/components/dataDisplay/qrCode/qrCode.js +88 -0
  119. package/dist/components/dataDisplay/qrCode/qrCode.js.map +1 -0
  120. package/dist/components/dataDisplay/qrCode/qrCodePath.d.ts +7 -0
  121. package/dist/components/dataDisplay/qrCode/qrCodePath.js +20 -0
  122. package/dist/components/dataDisplay/qrCode/qrCodePath.js.map +1 -0
  123. package/dist/components/dataDisplay/stat/stat.d.ts +2 -0
  124. package/dist/components/dataDisplay/stat/stat.js +41 -43
  125. package/dist/components/dataDisplay/stat/stat.js.map +1 -1
  126. package/dist/components/dataDisplay/statusDot/index.d.ts +2 -0
  127. package/dist/components/dataDisplay/statusDot/statusDot.d.ts +35 -0
  128. package/dist/components/dataDisplay/statusDot/statusDot.js +31 -0
  129. package/dist/components/dataDisplay/statusDot/statusDot.js.map +1 -0
  130. package/dist/components/dataDisplay/swimlanes/index.d.ts +2 -0
  131. package/dist/components/dataDisplay/swimlanes/swimlanes.d.ts +75 -0
  132. package/dist/components/dataDisplay/swimlanes/swimlanes.js +361 -0
  133. package/dist/components/dataDisplay/swimlanes/swimlanes.js.map +1 -0
  134. package/dist/components/dataDisplay/table/table.d.ts +10 -1
  135. package/dist/components/dataDisplay/table/table.js +46 -22
  136. package/dist/components/dataDisplay/table/table.js.map +1 -1
  137. package/dist/components/dataDisplay/table/tableBody.js +25 -12
  138. package/dist/components/dataDisplay/table/tableBody.js.map +1 -1
  139. package/dist/components/dataDisplay/table/tableCell.d.ts +10 -2
  140. package/dist/components/dataDisplay/table/tableCell.js +15 -14
  141. package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
  142. package/dist/components/dataDisplay/table/tableColumns.d.ts +146 -0
  143. package/dist/components/dataDisplay/table/tableColumns.js +254 -0
  144. package/dist/components/dataDisplay/table/tableColumns.js.map +1 -0
  145. package/dist/components/dataDisplay/table/tableEntities.d.ts +4 -0
  146. package/dist/components/dataDisplay/table/tableEntities.js +6 -0
  147. package/dist/components/dataDisplay/table/tableEntities.js.map +1 -0
  148. package/dist/components/dataDisplay/table/tableHead.js +29 -11
  149. package/dist/components/dataDisplay/table/tableHead.js.map +1 -1
  150. package/dist/components/dataDisplay/table/tableHeadCell.d.ts +23 -1
  151. package/dist/components/dataDisplay/table/tableHeadCell.js +51 -26
  152. package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  153. package/dist/components/dataDisplay/table/tableHtmlText.d.ts +8 -0
  154. package/dist/components/dataDisplay/table/tableHtmlText.js +121 -0
  155. package/dist/components/dataDisplay/table/tableHtmlText.js.map +1 -0
  156. package/dist/components/dataDisplay/table/tableRow.d.ts +2 -0
  157. package/dist/components/dataDisplay/table/tableRow.js +28 -13
  158. package/dist/components/dataDisplay/table/tableRow.js.map +1 -1
  159. package/dist/components/dataDisplay/thumbCard/thumbCard.d.ts +44 -3
  160. package/dist/components/dataDisplay/thumbCard/thumbCard.js +86 -58
  161. package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  162. package/dist/components/dataDisplay/treeView/treeView.d.ts +22 -0
  163. package/dist/components/dataDisplay/treeView/treeView.js +164 -96
  164. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  165. package/dist/components/dataDisplay/typography/typography.js +22 -26
  166. package/dist/components/dataDisplay/typography/typography.js.map +1 -1
  167. package/dist/components/feedBack/emptyState/emptyState.d.ts +2 -0
  168. package/dist/components/feedBack/emptyState/emptyState.js +20 -16
  169. package/dist/components/feedBack/emptyState/emptyState.js.map +1 -1
  170. package/dist/components/feedBack/message/message.d.ts +2 -0
  171. package/dist/components/feedBack/message/message.js +17 -13
  172. package/dist/components/feedBack/message/message.js.map +1 -1
  173. package/dist/components/feedBack/modal/modal.d.ts +9 -0
  174. package/dist/components/feedBack/modal/modal.js +71 -53
  175. package/dist/components/feedBack/modal/modal.js.map +1 -1
  176. package/dist/components/feedBack/skeleton/skeleton.d.ts +10 -2
  177. package/dist/components/feedBack/skeleton/skeleton.js +43 -35
  178. package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
  179. package/dist/components/feedBack/snackbar/snackbar.js +24 -20
  180. package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
  181. package/dist/components/feedBack/tooltip/tooltip.d.ts +9 -1
  182. package/dist/components/feedBack/tooltip/tooltip.js +65 -41
  183. package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
  184. package/dist/components/inputs/button/button.d.ts +14 -0
  185. package/dist/components/inputs/button/button.js +71 -36
  186. package/dist/components/inputs/button/button.js.map +1 -1
  187. package/dist/components/inputs/buttonGroups/buttonGroup.d.ts +2 -0
  188. package/dist/components/inputs/buttonGroups/buttonGroup.js +14 -10
  189. package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  190. package/dist/components/inputs/checkbox/checkbox.d.ts +10 -0
  191. package/dist/components/inputs/checkbox/checkbox.js +59 -36
  192. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  193. package/dist/components/inputs/composer/composer.d.ts +148 -0
  194. package/dist/components/inputs/composer/composer.js +276 -0
  195. package/dist/components/inputs/composer/composer.js.map +1 -0
  196. package/dist/components/inputs/composer/composerFiles.d.ts +26 -0
  197. package/dist/components/inputs/composer/composerFiles.js +18 -0
  198. package/dist/components/inputs/composer/composerFiles.js.map +1 -0
  199. package/dist/components/inputs/composer/composerKeys.d.ts +29 -0
  200. package/dist/components/inputs/composer/composerKeys.js +7 -0
  201. package/dist/components/inputs/composer/composerKeys.js.map +1 -0
  202. package/dist/components/inputs/composer/index.d.ts +3 -0
  203. package/dist/components/inputs/datePicker/datePicker.js +108 -97
  204. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  205. package/dist/components/inputs/datePicker/datePickerActionLabel.js +19 -17
  206. package/dist/components/inputs/datePicker/datePickerActionLabel.js.map +1 -1
  207. package/dist/components/inputs/datePicker/datePickerDay.js +41 -25
  208. package/dist/components/inputs/datePicker/datePickerDay.js.map +1 -1
  209. package/dist/components/inputs/datePicker/datePickerIconButton.js +24 -14
  210. package/dist/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  211. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +90 -79
  212. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  213. package/dist/components/inputs/floatingButton/floatingButton.js +26 -16
  214. package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
  215. package/dist/components/inputs/radioButton/radioButton.d.ts +9 -0
  216. package/dist/components/inputs/radioButton/radioButton.js +48 -34
  217. package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
  218. package/dist/components/inputs/rating/rating.d.ts +9 -0
  219. package/dist/components/inputs/rating/rating.js +74 -53
  220. package/dist/components/inputs/rating/rating.js.map +1 -1
  221. package/dist/components/inputs/selectField/dropdownMenu.d.ts +21 -1
  222. package/dist/components/inputs/selectField/dropdownMenu.js +268 -143
  223. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  224. package/dist/components/inputs/selectField/optionNavigation.d.ts +17 -0
  225. package/dist/components/inputs/selectField/optionNavigation.js +37 -0
  226. package/dist/components/inputs/selectField/optionNavigation.js.map +1 -0
  227. package/dist/components/inputs/selectField/selectField.d.ts +32 -1
  228. package/dist/components/inputs/selectField/selectField.js +297 -126
  229. package/dist/components/inputs/selectField/selectField.js.map +1 -1
  230. package/dist/components/inputs/slider/slider.d.ts +25 -3
  231. package/dist/components/inputs/slider/slider.js +320 -197
  232. package/dist/components/inputs/slider/slider.js.map +1 -1
  233. package/dist/components/inputs/textField/textField.d.ts +9 -1
  234. package/dist/components/inputs/textField/textField.js +104 -51
  235. package/dist/components/inputs/textField/textField.js.map +1 -1
  236. package/dist/components/inputs/textField/textFieldWrapper.d.ts +14 -0
  237. package/dist/components/inputs/textField/textFieldWrapper.js +52 -45
  238. package/dist/components/inputs/textField/textFieldWrapper.js.map +1 -1
  239. package/dist/components/inputs/timePicker/timePicker.js +73 -62
  240. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  241. package/dist/components/inputs/toggle/toggle.d.ts +4 -0
  242. package/dist/components/inputs/toggle/toggle.js +43 -31
  243. package/dist/components/inputs/toggle/toggle.js.map +1 -1
  244. package/dist/components/inputs/valueSlider/valueSlider.d.ts +12 -0
  245. package/dist/components/inputs/valueSlider/valueSlider.js +32 -27
  246. package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
  247. package/dist/components/layout/appLayout/appLayout.d.ts +2 -0
  248. package/dist/components/layout/appLayout/appLayout.js +32 -30
  249. package/dist/components/layout/appLayout/appLayout.js.map +1 -1
  250. package/dist/components/layout/divider/divider.d.ts +2 -0
  251. package/dist/components/layout/divider/divider.js +22 -20
  252. package/dist/components/layout/divider/divider.js.map +1 -1
  253. package/dist/components/layout/floatingWindow/floatingWindow.d.ts +2 -0
  254. package/dist/components/layout/floatingWindow/floatingWindow.js +171 -168
  255. package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  256. package/dist/components/layout/grid/grid.d.ts +8 -0
  257. package/dist/components/layout/grid/grid.js +52 -44
  258. package/dist/components/layout/grid/grid.js.map +1 -1
  259. package/dist/components/layout/page/page.d.ts +2 -0
  260. package/dist/components/layout/page/page.js +14 -12
  261. package/dist/components/layout/page/page.js.map +1 -1
  262. package/dist/components/layout/pageHeader/pageHeader.d.ts +2 -0
  263. package/dist/components/layout/pageHeader/pageHeader.js +23 -21
  264. package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
  265. package/dist/components/layout/sectionHeader/sectionHeader.d.ts +2 -0
  266. package/dist/components/layout/sectionHeader/sectionHeader.js +38 -36
  267. package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -1
  268. package/dist/components/layout/sheet/sheet.d.ts +14 -0
  269. package/dist/components/layout/sheet/sheet.js +92 -76
  270. package/dist/components/layout/sheet/sheet.js.map +1 -1
  271. package/dist/components/layout/stack/stack.d.ts +2 -0
  272. package/dist/components/layout/stack/stack.js +26 -24
  273. package/dist/components/layout/stack/stack.js.map +1 -1
  274. package/dist/components/layout/tabGroups/index.d.ts +4 -0
  275. package/dist/components/layout/tabGroups/tabGroups.d.ts +102 -0
  276. package/dist/components/layout/tabGroups/tabGroups.js +895 -0
  277. package/dist/components/layout/tabGroups/tabGroups.js.map +1 -0
  278. package/dist/components/layout/tabGroups/tabGroupsFocus.d.ts +55 -0
  279. package/dist/components/layout/tabGroups/tabGroupsFocus.js +192 -0
  280. package/dist/components/layout/tabGroups/tabGroupsFocus.js.map +1 -0
  281. package/dist/components/layout/tabGroups/tabGroupsLayout.d.ts +250 -0
  282. package/dist/components/layout/tabGroups/tabGroupsLayout.js +480 -0
  283. package/dist/components/layout/tabGroups/tabGroupsLayout.js.map +1 -0
  284. package/dist/components/navigation/appBar/appBar.d.ts +24 -0
  285. package/dist/components/navigation/appBar/appBar.js +68 -28
  286. package/dist/components/navigation/appBar/appBar.js.map +1 -1
  287. package/dist/components/navigation/bottomBar/bottomBar.js +125 -120
  288. package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
  289. package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +2 -0
  290. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +18 -14
  291. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  292. package/dist/components/navigation/commandPalette/commandPalette.d.ts +126 -0
  293. package/dist/components/navigation/commandPalette/commandPalette.js +457 -0
  294. package/dist/components/navigation/commandPalette/commandPalette.js.map +1 -0
  295. package/dist/components/navigation/commandPalette/commandPaletteFilter.d.ts +11 -0
  296. package/dist/components/navigation/commandPalette/commandPaletteFilter.js +15 -0
  297. package/dist/components/navigation/commandPalette/commandPaletteFilter.js.map +1 -0
  298. package/dist/components/navigation/commandPalette/commandPaletteNavigation.d.ts +13 -0
  299. package/dist/components/navigation/commandPalette/commandPaletteNavigation.js +38 -0
  300. package/dist/components/navigation/commandPalette/commandPaletteNavigation.js.map +1 -0
  301. package/dist/components/navigation/commandPalette/commandPaletteTypes.d.ts +39 -0
  302. package/dist/components/navigation/commandPalette/index.d.ts +6 -0
  303. package/dist/components/navigation/menu/menu.d.ts +6 -0
  304. package/dist/components/navigation/menu/menu.js.map +1 -1
  305. package/dist/components/navigation/menu/menuComponent.js +12 -23
  306. package/dist/components/navigation/menu/menuComponent.js.map +1 -1
  307. package/dist/components/navigation/menu/menuContext.d.ts +2 -0
  308. package/dist/components/navigation/menu/menuContext.js.map +1 -1
  309. package/dist/components/navigation/menu/menuFloating.js +54 -46
  310. package/dist/components/navigation/menu/menuFloating.js.map +1 -1
  311. package/dist/components/navigation/menu/menuItem.d.ts +4 -0
  312. package/dist/components/navigation/menu/menuItem.js +58 -33
  313. package/dist/components/navigation/menu/menuItem.js.map +1 -1
  314. package/dist/components/navigation/menu/menuList.d.ts +4 -0
  315. package/dist/components/navigation/menu/menuList.js +34 -16
  316. package/dist/components/navigation/menu/menuList.js.map +1 -1
  317. package/dist/components/navigation/menu/menuSubmenu.d.ts +8 -1
  318. package/dist/components/navigation/menu/menuSubmenu.js +58 -38
  319. package/dist/components/navigation/menu/menuSubmenu.js.map +1 -1
  320. package/dist/components/navigation/pagination/pagination.d.ts +2 -0
  321. package/dist/components/navigation/pagination/pagination.js +28 -24
  322. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  323. package/dist/components/navigation/sidebar/sidebar.d.ts +10 -0
  324. package/dist/components/navigation/sidebar/sidebar.js +37 -33
  325. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  326. package/dist/components/navigation/stepper/stepper.d.ts +2 -0
  327. package/dist/components/navigation/stepper/stepper.js +46 -42
  328. package/dist/components/navigation/stepper/stepper.js.map +1 -1
  329. package/dist/components/navigation/tabs/index.d.ts +3 -1
  330. package/dist/components/navigation/tabs/tab/tab.d.ts +89 -2
  331. package/dist/components/navigation/tabs/tab/tab.js +174 -43
  332. package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
  333. package/dist/components/navigation/tabs/tabPanel/tabPanel.d.ts +20 -0
  334. package/dist/components/navigation/tabs/tabPanel/tabPanel.js +34 -0
  335. package/dist/components/navigation/tabs/tabPanel/tabPanel.js.map +1 -0
  336. package/dist/components/navigation/tabs/tabs.d.ts +79 -2
  337. package/dist/components/navigation/tabs/tabs.js +389 -147
  338. package/dist/components/navigation/tabs/tabs.js.map +1 -1
  339. package/dist/components/navigation/tabs/tabs.utils.d.ts +20 -0
  340. package/dist/components/navigation/tabs/tabs.utils.js +11 -0
  341. package/dist/components/navigation/tabs/tabs.utils.js.map +1 -0
  342. package/dist/components/navigation/tabs/tabsContext.d.ts +36 -4
  343. package/dist/components/navigation/tabs/tabsContext.js.map +1 -1
  344. package/dist/connects/rt/table/table.d.ts +16 -1
  345. package/dist/headless/components/base/animateHeight/animateHeight.js +41 -42
  346. package/dist/headless/components/base/animateHeight/animateHeight.js.map +1 -1
  347. package/dist/headless/components/base/icon/icon.js +40 -40
  348. package/dist/headless/components/base/icon/icon.js.map +1 -1
  349. package/dist/headless/components/base/ripple/ripple.js +46 -34
  350. package/dist/headless/components/base/ripple/ripple.js.map +1 -1
  351. package/dist/headless/components/dataDisplay/avatar/avatar.js +37 -33
  352. package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
  353. package/dist/headless/components/dataDisplay/card/card.js +44 -31
  354. package/dist/headless/components/dataDisplay/card/card.js.map +1 -1
  355. package/dist/headless/components/dataDisplay/carousel/carousel.js +102 -98
  356. package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
  357. package/dist/headless/components/dataDisplay/chat/chat.js +116 -57
  358. package/dist/headless/components/dataDisplay/chat/chat.js.map +1 -1
  359. package/dist/headless/components/dataDisplay/chat/chatComposer.js +21 -19
  360. package/dist/headless/components/dataDisplay/chat/chatComposer.js.map +1 -1
  361. package/dist/headless/components/dataDisplay/chat/chatIconButton.js +23 -13
  362. package/dist/headless/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  363. package/dist/headless/components/dataDisplay/chat/chatLayout.js +33 -29
  364. package/dist/headless/components/dataDisplay/chat/chatLayout.js.map +1 -1
  365. package/dist/headless/components/dataDisplay/chat/chatOverlayLayout.js +19 -17
  366. package/dist/headless/components/dataDisplay/chat/chatOverlayLayout.js.map +1 -1
  367. package/dist/headless/components/dataDisplay/chat/utils.js.map +1 -1
  368. package/dist/headless/components/dataDisplay/chip/chip.js +104 -63
  369. package/dist/headless/components/dataDisplay/chip/chip.js.map +1 -1
  370. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js +44 -39
  371. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  372. package/dist/headless/components/dataDisplay/dagView/dagLayout.js +284 -0
  373. package/dist/headless/components/dataDisplay/dagView/dagLayout.js.map +1 -0
  374. package/dist/headless/components/dataDisplay/dagView/dagView.js +501 -0
  375. package/dist/headless/components/dataDisplay/dagView/dagView.js.map +1 -0
  376. package/dist/headless/components/dataDisplay/dagView/panZoom.js +161 -0
  377. package/dist/headless/components/dataDisplay/dagView/panZoom.js.map +1 -0
  378. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js +15 -19
  379. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
  380. package/dist/headless/components/dataDisplay/diffStat/diffStat.js +68 -0
  381. package/dist/headless/components/dataDisplay/diffStat/diffStat.js.map +1 -0
  382. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js +114 -81
  383. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  384. package/dist/headless/components/dataDisplay/kanban/kanban.js +71 -61
  385. package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -1
  386. package/dist/headless/components/dataDisplay/kbd/kbd.js +45 -0
  387. package/dist/headless/components/dataDisplay/kbd/kbd.js.map +1 -0
  388. package/dist/headless/components/dataDisplay/kbd/kbdKeys.js +70 -0
  389. package/dist/headless/components/dataDisplay/kbd/kbdKeys.js.map +1 -0
  390. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +14 -12
  391. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  392. package/dist/headless/components/dataDisplay/list/list.js +16 -12
  393. package/dist/headless/components/dataDisplay/list/list.js.map +1 -1
  394. package/dist/headless/components/dataDisplay/list/listItem.js +58 -19
  395. package/dist/headless/components/dataDisplay/list/listItem.js.map +1 -1
  396. package/dist/headless/components/dataDisplay/meter/meter.js +14 -12
  397. package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -1
  398. package/dist/headless/components/dataDisplay/personChip/personChip.js +12 -10
  399. package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -1
  400. package/dist/headless/components/dataDisplay/qrCode/qrCode.js +86 -0
  401. package/dist/headless/components/dataDisplay/qrCode/qrCode.js.map +1 -0
  402. package/dist/headless/components/dataDisplay/qrCode/qrCodePath.js +20 -0
  403. package/dist/headless/components/dataDisplay/qrCode/qrCodePath.js.map +1 -0
  404. package/dist/headless/components/dataDisplay/stat/stat.js +43 -45
  405. package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -1
  406. package/dist/headless/components/dataDisplay/statusDot/statusDot.js +29 -0
  407. package/dist/headless/components/dataDisplay/statusDot/statusDot.js.map +1 -0
  408. package/dist/headless/components/dataDisplay/swimlanes/swimlanes.js +359 -0
  409. package/dist/headless/components/dataDisplay/swimlanes/swimlanes.js.map +1 -0
  410. package/dist/headless/components/dataDisplay/table/table.js +47 -23
  411. package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
  412. package/dist/headless/components/dataDisplay/table/tableBody.js +25 -12
  413. package/dist/headless/components/dataDisplay/table/tableBody.js.map +1 -1
  414. package/dist/headless/components/dataDisplay/table/tableCell.js +15 -14
  415. package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
  416. package/dist/headless/components/dataDisplay/table/tableColumns.js +254 -0
  417. package/dist/headless/components/dataDisplay/table/tableColumns.js.map +1 -0
  418. package/dist/headless/components/dataDisplay/table/tableEntities.js +6 -0
  419. package/dist/headless/components/dataDisplay/table/tableEntities.js.map +1 -0
  420. package/dist/headless/components/dataDisplay/table/tableHead.js +29 -11
  421. package/dist/headless/components/dataDisplay/table/tableHead.js.map +1 -1
  422. package/dist/headless/components/dataDisplay/table/tableHeadCell.js +51 -26
  423. package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  424. package/dist/headless/components/dataDisplay/table/tableHtmlText.js +121 -0
  425. package/dist/headless/components/dataDisplay/table/tableHtmlText.js.map +1 -0
  426. package/dist/headless/components/dataDisplay/table/tableRow.js +28 -13
  427. package/dist/headless/components/dataDisplay/table/tableRow.js.map +1 -1
  428. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +86 -58
  429. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  430. package/dist/headless/components/dataDisplay/treeView/treeView.js +164 -96
  431. package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
  432. package/dist/headless/components/dataDisplay/typography/typography.js +21 -25
  433. package/dist/headless/components/dataDisplay/typography/typography.js.map +1 -1
  434. package/dist/headless/components/feedBack/emptyState/emptyState.js +9 -5
  435. package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -1
  436. package/dist/headless/components/feedBack/message/message.js +17 -13
  437. package/dist/headless/components/feedBack/message/message.js.map +1 -1
  438. package/dist/headless/components/feedBack/modal/modal.js +71 -53
  439. package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
  440. package/dist/headless/components/feedBack/skeleton/skeleton.js +43 -35
  441. package/dist/headless/components/feedBack/skeleton/skeleton.js.map +1 -1
  442. package/dist/headless/components/feedBack/snackbar/snackbar.js +30 -26
  443. package/dist/headless/components/feedBack/snackbar/snackbar.js.map +1 -1
  444. package/dist/headless/components/feedBack/tooltip/tooltip.js +63 -39
  445. package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
  446. package/dist/headless/components/inputs/button/button.js +71 -36
  447. package/dist/headless/components/inputs/button/button.js.map +1 -1
  448. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js +22 -18
  449. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  450. package/dist/headless/components/inputs/checkbox/checkbox.js +59 -36
  451. package/dist/headless/components/inputs/checkbox/checkbox.js.map +1 -1
  452. package/dist/headless/components/inputs/composer/composer.js +274 -0
  453. package/dist/headless/components/inputs/composer/composer.js.map +1 -0
  454. package/dist/headless/components/inputs/composer/composerFiles.js +18 -0
  455. package/dist/headless/components/inputs/composer/composerFiles.js.map +1 -0
  456. package/dist/headless/components/inputs/composer/composerKeys.js +7 -0
  457. package/dist/headless/components/inputs/composer/composerKeys.js.map +1 -0
  458. package/dist/headless/components/inputs/datePicker/datePicker.js +106 -95
  459. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  460. package/dist/headless/components/inputs/datePicker/datePickerActionLabel.js +19 -17
  461. package/dist/headless/components/inputs/datePicker/datePickerActionLabel.js.map +1 -1
  462. package/dist/headless/components/inputs/datePicker/datePickerDay.js +41 -25
  463. package/dist/headless/components/inputs/datePicker/datePickerDay.js.map +1 -1
  464. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js +24 -14
  465. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  466. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +90 -79
  467. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  468. package/dist/headless/components/inputs/floatingButton/floatingButton.js +25 -15
  469. package/dist/headless/components/inputs/floatingButton/floatingButton.js.map +1 -1
  470. package/dist/headless/components/inputs/radioButton/radioButton.js +48 -34
  471. package/dist/headless/components/inputs/radioButton/radioButton.js.map +1 -1
  472. package/dist/headless/components/inputs/rating/rating.js +74 -53
  473. package/dist/headless/components/inputs/rating/rating.js.map +1 -1
  474. package/dist/headless/components/inputs/selectField/dropdownMenu.js +268 -143
  475. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  476. package/dist/headless/components/inputs/selectField/optionNavigation.js +37 -0
  477. package/dist/headless/components/inputs/selectField/optionNavigation.js.map +1 -0
  478. package/dist/headless/components/inputs/selectField/selectField.js +297 -126
  479. package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
  480. package/dist/headless/components/inputs/slider/slider.js +320 -197
  481. package/dist/headless/components/inputs/slider/slider.js.map +1 -1
  482. package/dist/headless/components/inputs/textField/textField.js +104 -51
  483. package/dist/headless/components/inputs/textField/textField.js.map +1 -1
  484. package/dist/headless/components/inputs/textField/textFieldWrapper.js +52 -45
  485. package/dist/headless/components/inputs/textField/textFieldWrapper.js.map +1 -1
  486. package/dist/headless/components/inputs/timePicker/timePicker.js +74 -63
  487. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  488. package/dist/headless/components/inputs/toggle/toggle.js +42 -30
  489. package/dist/headless/components/inputs/toggle/toggle.js.map +1 -1
  490. package/dist/headless/components/inputs/valueSlider/valueSlider.js +33 -28
  491. package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -1
  492. package/dist/headless/components/layout/appLayout/appLayout.js +29 -27
  493. package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
  494. package/dist/headless/components/layout/divider/divider.js +19 -17
  495. package/dist/headless/components/layout/divider/divider.js.map +1 -1
  496. package/dist/headless/components/layout/floatingWindow/floatingWindow.js +185 -182
  497. package/dist/headless/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  498. package/dist/headless/components/layout/grid/grid.js +54 -46
  499. package/dist/headless/components/layout/grid/grid.js.map +1 -1
  500. package/dist/headless/components/layout/page/page.js +12 -10
  501. package/dist/headless/components/layout/page/page.js.map +1 -1
  502. package/dist/headless/components/layout/pageHeader/pageHeader.js +22 -20
  503. package/dist/headless/components/layout/pageHeader/pageHeader.js.map +1 -1
  504. package/dist/headless/components/layout/sectionHeader/sectionHeader.js +39 -37
  505. package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -1
  506. package/dist/headless/components/layout/sheet/sheet.js +101 -85
  507. package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
  508. package/dist/headless/components/layout/stack/stack.js +23 -21
  509. package/dist/headless/components/layout/stack/stack.js.map +1 -1
  510. package/dist/headless/components/layout/tabGroups/tabGroups.js +893 -0
  511. package/dist/headless/components/layout/tabGroups/tabGroups.js.map +1 -0
  512. package/dist/headless/components/layout/tabGroups/tabGroupsFocus.js +192 -0
  513. package/dist/headless/components/layout/tabGroups/tabGroupsFocus.js.map +1 -0
  514. package/dist/headless/components/layout/tabGroups/tabGroupsLayout.js +480 -0
  515. package/dist/headless/components/layout/tabGroups/tabGroupsLayout.js.map +1 -0
  516. package/dist/headless/components/navigation/appBar/appBar.js +68 -28
  517. package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
  518. package/dist/headless/components/navigation/bottomBar/bottomBar.js +125 -120
  519. package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
  520. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js +13 -9
  521. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  522. package/dist/headless/components/navigation/commandPalette/commandPalette.js +455 -0
  523. package/dist/headless/components/navigation/commandPalette/commandPalette.js.map +1 -0
  524. package/dist/headless/components/navigation/commandPalette/commandPaletteFilter.js +15 -0
  525. package/dist/headless/components/navigation/commandPalette/commandPaletteFilter.js.map +1 -0
  526. package/dist/headless/components/navigation/commandPalette/commandPaletteNavigation.js +38 -0
  527. package/dist/headless/components/navigation/commandPalette/commandPaletteNavigation.js.map +1 -0
  528. package/dist/headless/components/navigation/menu/menu.js.map +1 -1
  529. package/dist/headless/components/navigation/menu/menuComponent.js +12 -23
  530. package/dist/headless/components/navigation/menu/menuComponent.js.map +1 -1
  531. package/dist/headless/components/navigation/menu/menuContext.js.map +1 -1
  532. package/dist/headless/components/navigation/menu/menuFloating.js +54 -46
  533. package/dist/headless/components/navigation/menu/menuFloating.js.map +1 -1
  534. package/dist/headless/components/navigation/menu/menuItem.js +58 -33
  535. package/dist/headless/components/navigation/menu/menuItem.js.map +1 -1
  536. package/dist/headless/components/navigation/menu/menuList.js +34 -16
  537. package/dist/headless/components/navigation/menu/menuList.js.map +1 -1
  538. package/dist/headless/components/navigation/menu/menuSubmenu.js +58 -38
  539. package/dist/headless/components/navigation/menu/menuSubmenu.js.map +1 -1
  540. package/dist/headless/components/navigation/pagination/pagination.js +23 -19
  541. package/dist/headless/components/navigation/pagination/pagination.js.map +1 -1
  542. package/dist/headless/components/navigation/sidebar/sidebar.js +39 -35
  543. package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
  544. package/dist/headless/components/navigation/stepper/stepper.js +38 -34
  545. package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
  546. package/dist/headless/components/navigation/tabs/tab/tab.js +175 -44
  547. package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
  548. package/dist/headless/components/navigation/tabs/tabPanel/tabPanel.js +32 -0
  549. package/dist/headless/components/navigation/tabs/tabPanel/tabPanel.js.map +1 -0
  550. package/dist/headless/components/navigation/tabs/tabs.js +389 -147
  551. package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
  552. package/dist/headless/components/navigation/tabs/tabs.utils.js +11 -0
  553. package/dist/headless/components/navigation/tabs/tabs.utils.js.map +1 -0
  554. package/dist/headless/components/navigation/tabs/tabsContext.js.map +1 -1
  555. package/dist/headless/index.js +405 -363
  556. package/dist/headless/index.js.map +1 -1
  557. package/dist/headless/primitives/createDismissOnEscape.js +14 -0
  558. package/dist/headless/primitives/createDismissOnEscape.js.map +1 -0
  559. package/dist/headless/primitives/createFocusTrap.js +17 -16
  560. package/dist/headless/primitives/createFocusTrap.js.map +1 -1
  561. package/dist/headless/primitives/createHelperText.js +14 -0
  562. package/dist/headless/primitives/createHelperText.js.map +1 -0
  563. package/dist/headless/primitives/createKeyboardShortcut.js +16 -0
  564. package/dist/headless/primitives/createKeyboardShortcut.js.map +1 -0
  565. package/dist/headless/primitives/mergeStyle.js +9 -0
  566. package/dist/headless/primitives/mergeStyle.js.map +1 -0
  567. package/dist/headless/primitives/overlayLayer.js +14 -7
  568. package/dist/headless/primitives/overlayLayer.js.map +1 -1
  569. package/dist/headless/primitives/restoreFocus.js +10 -0
  570. package/dist/headless/primitives/restoreFocus.js.map +1 -0
  571. package/dist/headless/source/components/base/animateHeight/animateHeight.jsx +7 -11
  572. package/dist/headless/source/components/base/animateHeight/animateHeight.jsx.map +1 -1
  573. package/dist/headless/source/components/base/icon/icon.jsx +10 -12
  574. package/dist/headless/source/components/base/icon/icon.jsx.map +1 -1
  575. package/dist/headless/source/components/base/ripple/ripple.jsx +16 -4
  576. package/dist/headless/source/components/base/ripple/ripple.jsx.map +1 -1
  577. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx +14 -7
  578. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  579. package/dist/headless/source/components/dataDisplay/card/card.jsx +31 -12
  580. package/dist/headless/source/components/dataDisplay/card/card.jsx.map +1 -1
  581. package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx +9 -3
  582. package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
  583. package/dist/headless/source/components/dataDisplay/chart/chart.jsx +5 -4
  584. package/dist/headless/source/components/dataDisplay/chart/chart.jsx.map +1 -1
  585. package/dist/headless/source/components/dataDisplay/chat/chat.jsx +38 -4
  586. package/dist/headless/source/components/dataDisplay/chat/chat.jsx.map +1 -1
  587. package/dist/headless/source/components/dataDisplay/chat/chatComposer.jsx +1 -0
  588. package/dist/headless/source/components/dataDisplay/chat/chatComposer.jsx.map +1 -1
  589. package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx +13 -3
  590. package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -1
  591. package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx +6 -7
  592. package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -1
  593. package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx +5 -6
  594. package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -1
  595. package/dist/headless/source/components/dataDisplay/chat/index.js.map +1 -1
  596. package/dist/headless/source/components/dataDisplay/chat/utils.js.map +2 -2
  597. package/dist/headless/source/components/dataDisplay/chip/chip.jsx +55 -19
  598. package/dist/headless/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  599. package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx +14 -11
  600. package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
  601. package/dist/headless/source/components/dataDisplay/dagView/dagLayout.js +383 -0
  602. package/dist/headless/source/components/dataDisplay/dagView/dagLayout.js.map +7 -0
  603. package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx +648 -0
  604. package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx.map +1 -0
  605. package/dist/headless/source/components/dataDisplay/dagView/index.js +10 -0
  606. package/dist/headless/source/components/dataDisplay/dagView/index.js.map +7 -0
  607. package/dist/headless/source/components/dataDisplay/dagView/panZoom.js +247 -0
  608. package/dist/headless/source/components/dataDisplay/dagView/panZoom.js.map +7 -0
  609. package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx +4 -6
  610. package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -1
  611. package/dist/headless/source/components/dataDisplay/diffStat/diffStat.jsx +76 -0
  612. package/dist/headless/source/components/dataDisplay/diffStat/diffStat.jsx.map +1 -0
  613. package/dist/headless/source/components/dataDisplay/diffStat/index.js +19 -0
  614. package/dist/headless/source/components/dataDisplay/diffStat/index.js.map +7 -0
  615. package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +83 -9
  616. package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
  617. package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx +20 -10
  618. package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx.map +1 -1
  619. package/dist/headless/source/components/dataDisplay/kbd/index.js +9 -0
  620. package/dist/headless/source/components/dataDisplay/kbd/index.js.map +7 -0
  621. package/dist/headless/source/components/dataDisplay/kbd/kbd.jsx +48 -0
  622. package/dist/headless/source/components/dataDisplay/kbd/kbd.jsx.map +1 -0
  623. package/dist/headless/source/components/dataDisplay/kbd/kbdKeys.js +79 -0
  624. package/dist/headless/source/components/dataDisplay/kbd/kbdKeys.js.map +7 -0
  625. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx +1 -1
  626. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
  627. package/dist/headless/source/components/dataDisplay/list/list.jsx +3 -3
  628. package/dist/headless/source/components/dataDisplay/list/list.jsx.map +1 -1
  629. package/dist/headless/source/components/dataDisplay/list/listItem.jsx +47 -16
  630. package/dist/headless/source/components/dataDisplay/list/listItem.jsx.map +1 -1
  631. package/dist/headless/source/components/dataDisplay/meter/meter.jsx +3 -2
  632. package/dist/headless/source/components/dataDisplay/meter/meter.jsx.map +1 -1
  633. package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx +3 -2
  634. package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx.map +1 -1
  635. package/dist/headless/source/components/dataDisplay/qrCode/index.js +6 -0
  636. package/dist/headless/source/components/dataDisplay/qrCode/index.js.map +7 -0
  637. package/dist/headless/source/components/dataDisplay/qrCode/qrCode.jsx +94 -0
  638. package/dist/headless/source/components/dataDisplay/qrCode/qrCode.jsx.map +1 -0
  639. package/dist/headless/source/components/dataDisplay/qrCode/qrCodePath.js +24 -0
  640. package/dist/headless/source/components/dataDisplay/qrCode/qrCodePath.js.map +7 -0
  641. package/dist/headless/source/components/dataDisplay/stat/stat.jsx +7 -8
  642. package/dist/headless/source/components/dataDisplay/stat/stat.jsx.map +1 -1
  643. package/dist/headless/source/components/dataDisplay/statusDot/index.js +6 -0
  644. package/dist/headless/source/components/dataDisplay/statusDot/index.js.map +7 -0
  645. package/dist/headless/source/components/dataDisplay/statusDot/statusDot.jsx +28 -0
  646. package/dist/headless/source/components/dataDisplay/statusDot/statusDot.jsx.map +1 -0
  647. package/dist/headless/source/components/dataDisplay/swimlanes/index.js +15 -0
  648. package/dist/headless/source/components/dataDisplay/swimlanes/index.js.map +7 -0
  649. package/dist/headless/source/components/dataDisplay/swimlanes/swimlanes.jsx +450 -0
  650. package/dist/headless/source/components/dataDisplay/swimlanes/swimlanes.jsx.map +1 -0
  651. package/dist/headless/source/components/dataDisplay/table/table.jsx +18 -1
  652. package/dist/headless/source/components/dataDisplay/table/table.jsx.map +1 -1
  653. package/dist/headless/source/components/dataDisplay/table/tableBody.jsx +6 -1
  654. package/dist/headless/source/components/dataDisplay/table/tableBody.jsx.map +1 -1
  655. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx +13 -4
  656. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
  657. package/dist/headless/source/components/dataDisplay/table/tableColumns.jsx +311 -0
  658. package/dist/headless/source/components/dataDisplay/table/tableColumns.jsx.map +1 -0
  659. package/dist/headless/source/components/dataDisplay/table/tableEntities.js +7 -0
  660. package/dist/headless/source/components/dataDisplay/table/tableEntities.js.map +7 -0
  661. package/dist/headless/source/components/dataDisplay/table/tableHead.jsx +14 -1
  662. package/dist/headless/source/components/dataDisplay/table/tableHead.jsx.map +1 -1
  663. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx +51 -33
  664. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
  665. package/dist/headless/source/components/dataDisplay/table/tableHtmlText.js +140 -0
  666. package/dist/headless/source/components/dataDisplay/table/tableHtmlText.js.map +7 -0
  667. package/dist/headless/source/components/dataDisplay/table/tableRow.jsx +11 -5
  668. package/dist/headless/source/components/dataDisplay/table/tableRow.jsx.map +1 -1
  669. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx +48 -19
  670. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
  671. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx +127 -39
  672. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  673. package/dist/headless/source/components/dataDisplay/typography/typography.jsx +2 -6
  674. package/dist/headless/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  675. package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx +12 -2
  676. package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx.map +1 -1
  677. package/dist/headless/source/components/feedBack/message/message.jsx +5 -4
  678. package/dist/headless/source/components/feedBack/message/message.jsx.map +1 -1
  679. package/dist/headless/source/components/feedBack/modal/modal.jsx +39 -6
  680. package/dist/headless/source/components/feedBack/modal/modal.jsx.map +1 -1
  681. package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx +12 -5
  682. package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
  683. package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx +3 -3
  684. package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
  685. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx +52 -5
  686. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  687. package/dist/headless/source/components/inputs/button/button.jsx +14 -5
  688. package/dist/headless/source/components/inputs/button/button.jsx.map +1 -1
  689. package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx +4 -3
  690. package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
  691. package/dist/headless/source/components/inputs/checkbox/checkbox.jsx +27 -4
  692. package/dist/headless/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
  693. package/dist/headless/source/components/inputs/composer/composer.jsx +319 -0
  694. package/dist/headless/source/components/inputs/composer/composer.jsx.map +1 -0
  695. package/dist/headless/source/components/inputs/composer/composerFiles.js +27 -0
  696. package/dist/headless/source/components/inputs/composer/composerFiles.js.map +7 -0
  697. package/dist/headless/source/components/inputs/composer/composerKeys.js +11 -0
  698. package/dist/headless/source/components/inputs/composer/composerKeys.js.map +7 -0
  699. package/dist/headless/source/components/inputs/composer/index.js +5 -0
  700. package/dist/headless/source/components/inputs/composer/index.js.map +7 -0
  701. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +13 -0
  702. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  703. package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx +4 -1
  704. package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -1
  705. package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx +12 -12
  706. package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -1
  707. package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx +13 -3
  708. package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -1
  709. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx +13 -0
  710. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
  711. package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx +12 -1
  712. package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
  713. package/dist/headless/source/components/inputs/radioButton/radioButton.jsx +16 -4
  714. package/dist/headless/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
  715. package/dist/headless/source/components/inputs/rating/rating.jsx +49 -20
  716. package/dist/headless/source/components/inputs/rating/rating.jsx.map +1 -1
  717. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx +222 -61
  718. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
  719. package/dist/headless/source/components/inputs/selectField/optionNavigation.js +51 -0
  720. package/dist/headless/source/components/inputs/selectField/optionNavigation.js.map +7 -0
  721. package/dist/headless/source/components/inputs/selectField/selectField.jsx +318 -92
  722. package/dist/headless/source/components/inputs/selectField/selectField.jsx.map +1 -1
  723. package/dist/headless/source/components/inputs/slider/slider.jsx +89 -18
  724. package/dist/headless/source/components/inputs/slider/slider.jsx.map +1 -1
  725. package/dist/headless/source/components/inputs/textField/textField.jsx +47 -9
  726. package/dist/headless/source/components/inputs/textField/textField.jsx.map +1 -1
  727. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx +20 -6
  728. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
  729. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx +13 -0
  730. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  731. package/dist/headless/source/components/inputs/toggle/toggle.jsx +14 -2
  732. package/dist/headless/source/components/inputs/toggle/toggle.jsx.map +1 -1
  733. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx +7 -2
  734. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
  735. package/dist/headless/source/components/layout/appLayout/appLayout.jsx +8 -6
  736. package/dist/headless/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  737. package/dist/headless/source/components/layout/divider/divider.jsx +6 -5
  738. package/dist/headless/source/components/layout/divider/divider.jsx.map +1 -1
  739. package/dist/headless/source/components/layout/floatingWindow/floatingWindow.jsx +17 -11
  740. package/dist/headless/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
  741. package/dist/headless/source/components/layout/grid/grid.jsx +20 -8
  742. package/dist/headless/source/components/layout/grid/grid.jsx.map +1 -1
  743. package/dist/headless/source/components/layout/page/page.jsx +10 -2
  744. package/dist/headless/source/components/layout/page/page.jsx.map +1 -1
  745. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx +3 -2
  746. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  747. package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx +5 -5
  748. package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -1
  749. package/dist/headless/source/components/layout/sheet/sheet.jsx +39 -19
  750. package/dist/headless/source/components/layout/sheet/sheet.jsx.map +1 -1
  751. package/dist/headless/source/components/layout/stack/stack.jsx +15 -11
  752. package/dist/headless/source/components/layout/stack/stack.jsx.map +1 -1
  753. package/dist/headless/source/components/layout/tabGroups/index.js +8 -0
  754. package/dist/headless/source/components/layout/tabGroups/index.js.map +7 -0
  755. package/dist/headless/source/components/layout/tabGroups/tabGroups.jsx +1117 -0
  756. package/dist/headless/source/components/layout/tabGroups/tabGroups.jsx.map +1 -0
  757. package/dist/headless/source/components/layout/tabGroups/tabGroupsFocus.js +222 -0
  758. package/dist/headless/source/components/layout/tabGroups/tabGroupsFocus.js.map +7 -0
  759. package/dist/headless/source/components/layout/tabGroups/tabGroupsLayout.js +629 -0
  760. package/dist/headless/source/components/layout/tabGroups/tabGroupsLayout.js.map +7 -0
  761. package/dist/headless/source/components/navigation/appBar/appBar.jsx +30 -5
  762. package/dist/headless/source/components/navigation/appBar/appBar.jsx.map +1 -1
  763. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx +48 -40
  764. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  765. package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx +9 -2
  766. package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
  767. package/dist/headless/source/components/navigation/commandPalette/commandPalette.jsx +506 -0
  768. package/dist/headless/source/components/navigation/commandPalette/commandPalette.jsx.map +1 -0
  769. package/dist/headless/source/components/navigation/commandPalette/commandPaletteFilter.js +16 -0
  770. package/dist/headless/source/components/navigation/commandPalette/commandPaletteFilter.js.map +7 -0
  771. package/dist/headless/source/components/navigation/commandPalette/commandPaletteNavigation.js +54 -0
  772. package/dist/headless/source/components/navigation/commandPalette/commandPaletteNavigation.js.map +7 -0
  773. package/dist/headless/source/components/navigation/commandPalette/commandPaletteTypes.js +1 -0
  774. package/dist/headless/source/components/navigation/commandPalette/commandPaletteTypes.js.map +7 -0
  775. package/dist/headless/source/components/navigation/commandPalette/index.js +11 -0
  776. package/dist/headless/source/components/navigation/commandPalette/index.js.map +7 -0
  777. package/dist/headless/source/components/navigation/menu/menu.jsx.map +1 -1
  778. package/dist/headless/source/components/navigation/menu/menuComponent.jsx +3 -4
  779. package/dist/headless/source/components/navigation/menu/menuComponent.jsx.map +1 -1
  780. package/dist/headless/source/components/navigation/menu/menuContext.js.map +2 -2
  781. package/dist/headless/source/components/navigation/menu/menuFloating.jsx +26 -4
  782. package/dist/headless/source/components/navigation/menu/menuFloating.jsx.map +1 -1
  783. package/dist/headless/source/components/navigation/menu/menuItem.jsx +22 -2
  784. package/dist/headless/source/components/navigation/menu/menuItem.jsx.map +1 -1
  785. package/dist/headless/source/components/navigation/menu/menuList.jsx +19 -7
  786. package/dist/headless/source/components/navigation/menu/menuList.jsx.map +1 -1
  787. package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx +36 -4
  788. package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx.map +1 -1
  789. package/dist/headless/source/components/navigation/pagination/pagination.jsx +4 -3
  790. package/dist/headless/source/components/navigation/pagination/pagination.jsx.map +1 -1
  791. package/dist/headless/source/components/navigation/sidebar/sidebar.jsx +6 -3
  792. package/dist/headless/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
  793. package/dist/headless/source/components/navigation/stepper/stepper.jsx +14 -9
  794. package/dist/headless/source/components/navigation/stepper/stepper.jsx.map +1 -1
  795. package/dist/headless/source/components/navigation/tabs/index.js +2 -0
  796. package/dist/headless/source/components/navigation/tabs/index.js.map +2 -2
  797. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx +144 -21
  798. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  799. package/dist/headless/source/components/navigation/tabs/tabPanel/tabPanel.jsx +28 -0
  800. package/dist/headless/source/components/navigation/tabs/tabPanel/tabPanel.jsx.map +1 -0
  801. package/dist/headless/source/components/navigation/tabs/tabs.jsx +392 -20
  802. package/dist/headless/source/components/navigation/tabs/tabs.jsx.map +1 -1
  803. package/dist/headless/source/components/navigation/tabs/tabs.utils.js +18 -0
  804. package/dist/headless/source/components/navigation/tabs/tabs.utils.js.map +7 -0
  805. package/dist/headless/source/components/navigation/tabs/tabsContext.js.map +2 -2
  806. package/dist/headless/source/connects/rt/table/table.jsx +7 -2
  807. package/dist/headless/source/connects/rt/table/table.jsx.map +1 -1
  808. package/dist/headless/source/index.js +44 -1
  809. package/dist/headless/source/index.js.map +2 -2
  810. package/dist/headless/source/primitives/createDismissOnEscape.js +17 -0
  811. package/dist/headless/source/primitives/createDismissOnEscape.js.map +7 -0
  812. package/dist/headless/source/primitives/createFocusTrap.js +9 -3
  813. package/dist/headless/source/primitives/createFocusTrap.js.map +2 -2
  814. package/dist/headless/source/primitives/createHelperText.js +16 -0
  815. package/dist/headless/source/primitives/createHelperText.js.map +7 -0
  816. package/dist/headless/source/primitives/createKeyboardShortcut.js +23 -0
  817. package/dist/headless/source/primitives/createKeyboardShortcut.js.map +7 -0
  818. package/dist/headless/source/primitives/mergeStyle.js +15 -0
  819. package/dist/headless/source/primitives/mergeStyle.js.map +7 -0
  820. package/dist/headless/source/primitives/overlayLayer.js +10 -2
  821. package/dist/headless/source/primitives/overlayLayer.js.map +2 -2
  822. package/dist/headless/source/primitives/restoreFocus.js +14 -0
  823. package/dist/headless/source/primitives/restoreFocus.js.map +7 -0
  824. package/dist/headless/source/utils/controlProps.js +22 -0
  825. package/dist/headless/source/utils/controlProps.js.map +7 -0
  826. package/dist/headless/source/utils/keyboardShortcut.js +74 -0
  827. package/dist/headless/source/utils/keyboardShortcut.js.map +7 -0
  828. package/dist/headless/source/utils/linkAttrs.js +16 -0
  829. package/dist/headless/source/utils/linkAttrs.js.map +7 -0
  830. package/dist/headless/source/utils/ownClick.js +41 -0
  831. package/dist/headless/source/utils/ownClick.js.map +7 -0
  832. package/dist/headless/utils/controlProps.js +20 -0
  833. package/dist/headless/utils/controlProps.js.map +1 -0
  834. package/dist/headless/utils/keyboardShortcut.js +48 -0
  835. package/dist/headless/utils/keyboardShortcut.js.map +1 -0
  836. package/dist/headless/utils/linkAttrs.js +13 -0
  837. package/dist/headless/utils/linkAttrs.js.map +1 -0
  838. package/dist/headless/utils/ownClick.js +39 -0
  839. package/dist/headless/utils/ownClick.js.map +1 -0
  840. package/dist/index.d.ts +26 -3
  841. package/dist/index.js +405 -363
  842. package/dist/index.js.map +1 -1
  843. package/dist/primitives/createDismissOnEscape.d.ts +12 -0
  844. package/dist/primitives/createDismissOnEscape.js +14 -0
  845. package/dist/primitives/createDismissOnEscape.js.map +1 -0
  846. package/dist/primitives/createFocusTrap.d.ts +7 -0
  847. package/dist/primitives/createFocusTrap.js +17 -16
  848. package/dist/primitives/createFocusTrap.js.map +1 -1
  849. package/dist/primitives/createHelperText.d.ts +26 -0
  850. package/dist/primitives/createHelperText.js +14 -0
  851. package/dist/primitives/createHelperText.js.map +1 -0
  852. package/dist/primitives/createKeyboardShortcut.d.ts +23 -0
  853. package/dist/primitives/createKeyboardShortcut.js +16 -0
  854. package/dist/primitives/createKeyboardShortcut.js.map +1 -0
  855. package/dist/primitives/mergeStyle.d.ts +19 -0
  856. package/dist/primitives/mergeStyle.js +9 -0
  857. package/dist/primitives/mergeStyle.js.map +1 -0
  858. package/dist/primitives/overlayLayer.d.ts +15 -3
  859. package/dist/primitives/overlayLayer.js +14 -7
  860. package/dist/primitives/overlayLayer.js.map +1 -1
  861. package/dist/primitives/restoreFocus.d.ts +8 -0
  862. package/dist/primitives/restoreFocus.js +10 -0
  863. package/dist/primitives/restoreFocus.js.map +1 -0
  864. package/dist/source/components/base/animateHeight/animateHeight.jsx +7 -11
  865. package/dist/source/components/base/animateHeight/animateHeight.jsx.map +1 -1
  866. package/dist/source/components/base/icon/icon.jsx +10 -12
  867. package/dist/source/components/base/icon/icon.jsx.map +1 -1
  868. package/dist/source/components/base/ripple/ripple.jsx +16 -4
  869. package/dist/source/components/base/ripple/ripple.jsx.map +1 -1
  870. package/dist/source/components/dataDisplay/avatar/avatar.jsx +14 -7
  871. package/dist/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  872. package/dist/source/components/dataDisplay/card/card.jsx +31 -12
  873. package/dist/source/components/dataDisplay/card/card.jsx.map +1 -1
  874. package/dist/source/components/dataDisplay/carousel/carousel.jsx +9 -3
  875. package/dist/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
  876. package/dist/source/components/dataDisplay/chart/chart.jsx +5 -4
  877. package/dist/source/components/dataDisplay/chart/chart.jsx.map +1 -1
  878. package/dist/source/components/dataDisplay/chat/chat.jsx +38 -4
  879. package/dist/source/components/dataDisplay/chat/chat.jsx.map +1 -1
  880. package/dist/source/components/dataDisplay/chat/chatComposer.jsx +1 -0
  881. package/dist/source/components/dataDisplay/chat/chatComposer.jsx.map +1 -1
  882. package/dist/source/components/dataDisplay/chat/chatIconButton.jsx +13 -3
  883. package/dist/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -1
  884. package/dist/source/components/dataDisplay/chat/chatLayout.jsx +6 -7
  885. package/dist/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -1
  886. package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx +5 -6
  887. package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -1
  888. package/dist/source/components/dataDisplay/chat/index.js.map +1 -1
  889. package/dist/source/components/dataDisplay/chat/utils.js.map +2 -2
  890. package/dist/source/components/dataDisplay/chip/chip.jsx +55 -19
  891. package/dist/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  892. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx +14 -11
  893. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
  894. package/dist/source/components/dataDisplay/dagView/dagLayout.js +383 -0
  895. package/dist/source/components/dataDisplay/dagView/dagLayout.js.map +7 -0
  896. package/dist/source/components/dataDisplay/dagView/dagView.jsx +650 -0
  897. package/dist/source/components/dataDisplay/dagView/dagView.jsx.map +1 -0
  898. package/dist/source/components/dataDisplay/dagView/index.js +10 -0
  899. package/dist/source/components/dataDisplay/dagView/index.js.map +7 -0
  900. package/dist/source/components/dataDisplay/dagView/panZoom.js +247 -0
  901. package/dist/source/components/dataDisplay/dagView/panZoom.js.map +7 -0
  902. package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx +4 -6
  903. package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -1
  904. package/dist/source/components/dataDisplay/diffStat/diffStat.jsx +78 -0
  905. package/dist/source/components/dataDisplay/diffStat/diffStat.jsx.map +1 -0
  906. package/dist/source/components/dataDisplay/diffStat/index.js +19 -0
  907. package/dist/source/components/dataDisplay/diffStat/index.js.map +7 -0
  908. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +83 -9
  909. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
  910. package/dist/source/components/dataDisplay/kanban/kanban.jsx +20 -10
  911. package/dist/source/components/dataDisplay/kanban/kanban.jsx.map +1 -1
  912. package/dist/source/components/dataDisplay/kbd/index.js +9 -0
  913. package/dist/source/components/dataDisplay/kbd/index.js.map +7 -0
  914. package/dist/source/components/dataDisplay/kbd/kbd.jsx +50 -0
  915. package/dist/source/components/dataDisplay/kbd/kbd.jsx.map +1 -0
  916. package/dist/source/components/dataDisplay/kbd/kbdKeys.js +79 -0
  917. package/dist/source/components/dataDisplay/kbd/kbdKeys.js.map +7 -0
  918. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx +1 -1
  919. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
  920. package/dist/source/components/dataDisplay/list/list.jsx +3 -3
  921. package/dist/source/components/dataDisplay/list/list.jsx.map +1 -1
  922. package/dist/source/components/dataDisplay/list/listItem.jsx +47 -16
  923. package/dist/source/components/dataDisplay/list/listItem.jsx.map +1 -1
  924. package/dist/source/components/dataDisplay/meter/meter.jsx +3 -2
  925. package/dist/source/components/dataDisplay/meter/meter.jsx.map +1 -1
  926. package/dist/source/components/dataDisplay/personChip/personChip.jsx +3 -2
  927. package/dist/source/components/dataDisplay/personChip/personChip.jsx.map +1 -1
  928. package/dist/source/components/dataDisplay/qrCode/index.js +6 -0
  929. package/dist/source/components/dataDisplay/qrCode/index.js.map +7 -0
  930. package/dist/source/components/dataDisplay/qrCode/qrCode.jsx +96 -0
  931. package/dist/source/components/dataDisplay/qrCode/qrCode.jsx.map +1 -0
  932. package/dist/source/components/dataDisplay/qrCode/qrCodePath.js +24 -0
  933. package/dist/source/components/dataDisplay/qrCode/qrCodePath.js.map +7 -0
  934. package/dist/source/components/dataDisplay/stat/stat.jsx +7 -8
  935. package/dist/source/components/dataDisplay/stat/stat.jsx.map +1 -1
  936. package/dist/source/components/dataDisplay/statusDot/index.js +6 -0
  937. package/dist/source/components/dataDisplay/statusDot/index.js.map +7 -0
  938. package/dist/source/components/dataDisplay/statusDot/statusDot.jsx +30 -0
  939. package/dist/source/components/dataDisplay/statusDot/statusDot.jsx.map +1 -0
  940. package/dist/source/components/dataDisplay/swimlanes/index.js +15 -0
  941. package/dist/source/components/dataDisplay/swimlanes/index.js.map +7 -0
  942. package/dist/source/components/dataDisplay/swimlanes/swimlanes.jsx +452 -0
  943. package/dist/source/components/dataDisplay/swimlanes/swimlanes.jsx.map +1 -0
  944. package/dist/source/components/dataDisplay/table/table.jsx +18 -1
  945. package/dist/source/components/dataDisplay/table/table.jsx.map +1 -1
  946. package/dist/source/components/dataDisplay/table/tableBody.jsx +6 -1
  947. package/dist/source/components/dataDisplay/table/tableBody.jsx.map +1 -1
  948. package/dist/source/components/dataDisplay/table/tableCell.jsx +13 -4
  949. package/dist/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
  950. package/dist/source/components/dataDisplay/table/tableColumns.jsx +311 -0
  951. package/dist/source/components/dataDisplay/table/tableColumns.jsx.map +1 -0
  952. package/dist/source/components/dataDisplay/table/tableEntities.js +7 -0
  953. package/dist/source/components/dataDisplay/table/tableEntities.js.map +7 -0
  954. package/dist/source/components/dataDisplay/table/tableHead.jsx +14 -1
  955. package/dist/source/components/dataDisplay/table/tableHead.jsx.map +1 -1
  956. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx +51 -33
  957. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
  958. package/dist/source/components/dataDisplay/table/tableHtmlText.js +140 -0
  959. package/dist/source/components/dataDisplay/table/tableHtmlText.js.map +7 -0
  960. package/dist/source/components/dataDisplay/table/tableRow.jsx +11 -5
  961. package/dist/source/components/dataDisplay/table/tableRow.jsx.map +1 -1
  962. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx +48 -19
  963. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
  964. package/dist/source/components/dataDisplay/treeView/treeView.jsx +127 -39
  965. package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  966. package/dist/source/components/dataDisplay/typography/typography.jsx +2 -6
  967. package/dist/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  968. package/dist/source/components/feedBack/emptyState/emptyState.jsx +12 -2
  969. package/dist/source/components/feedBack/emptyState/emptyState.jsx.map +1 -1
  970. package/dist/source/components/feedBack/message/message.jsx +5 -4
  971. package/dist/source/components/feedBack/message/message.jsx.map +1 -1
  972. package/dist/source/components/feedBack/modal/modal.jsx +39 -6
  973. package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
  974. package/dist/source/components/feedBack/skeleton/skeleton.jsx +12 -5
  975. package/dist/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
  976. package/dist/source/components/feedBack/snackbar/snackbar.jsx +3 -3
  977. package/dist/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
  978. package/dist/source/components/feedBack/tooltip/tooltip.jsx +52 -5
  979. package/dist/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  980. package/dist/source/components/inputs/button/button.jsx +14 -5
  981. package/dist/source/components/inputs/button/button.jsx.map +1 -1
  982. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx +4 -3
  983. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
  984. package/dist/source/components/inputs/checkbox/checkbox.jsx +27 -4
  985. package/dist/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
  986. package/dist/source/components/inputs/composer/composer.jsx +321 -0
  987. package/dist/source/components/inputs/composer/composer.jsx.map +1 -0
  988. package/dist/source/components/inputs/composer/composerFiles.js +27 -0
  989. package/dist/source/components/inputs/composer/composerFiles.js.map +7 -0
  990. package/dist/source/components/inputs/composer/composerKeys.js +11 -0
  991. package/dist/source/components/inputs/composer/composerKeys.js.map +7 -0
  992. package/dist/source/components/inputs/composer/index.js +5 -0
  993. package/dist/source/components/inputs/composer/index.js.map +7 -0
  994. package/dist/source/components/inputs/datePicker/datePicker.jsx +13 -0
  995. package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  996. package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx +4 -1
  997. package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -1
  998. package/dist/source/components/inputs/datePicker/datePickerDay.jsx +12 -12
  999. package/dist/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -1
  1000. package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx +13 -3
  1001. package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -1
  1002. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx +13 -0
  1003. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
  1004. package/dist/source/components/inputs/floatingButton/floatingButton.jsx +12 -1
  1005. package/dist/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
  1006. package/dist/source/components/inputs/radioButton/radioButton.jsx +16 -4
  1007. package/dist/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
  1008. package/dist/source/components/inputs/rating/rating.jsx +49 -20
  1009. package/dist/source/components/inputs/rating/rating.jsx.map +1 -1
  1010. package/dist/source/components/inputs/selectField/dropdownMenu.jsx +222 -61
  1011. package/dist/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
  1012. package/dist/source/components/inputs/selectField/optionNavigation.js +51 -0
  1013. package/dist/source/components/inputs/selectField/optionNavigation.js.map +7 -0
  1014. package/dist/source/components/inputs/selectField/selectField.jsx +318 -92
  1015. package/dist/source/components/inputs/selectField/selectField.jsx.map +1 -1
  1016. package/dist/source/components/inputs/slider/slider.jsx +89 -18
  1017. package/dist/source/components/inputs/slider/slider.jsx.map +1 -1
  1018. package/dist/source/components/inputs/textField/textField.jsx +47 -9
  1019. package/dist/source/components/inputs/textField/textField.jsx.map +1 -1
  1020. package/dist/source/components/inputs/textField/textFieldWrapper.jsx +20 -6
  1021. package/dist/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
  1022. package/dist/source/components/inputs/timePicker/timePicker.jsx +13 -0
  1023. package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  1024. package/dist/source/components/inputs/toggle/toggle.jsx +14 -2
  1025. package/dist/source/components/inputs/toggle/toggle.jsx.map +1 -1
  1026. package/dist/source/components/inputs/valueSlider/valueSlider.jsx +7 -2
  1027. package/dist/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
  1028. package/dist/source/components/layout/appLayout/appLayout.jsx +8 -6
  1029. package/dist/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  1030. package/dist/source/components/layout/divider/divider.jsx +6 -5
  1031. package/dist/source/components/layout/divider/divider.jsx.map +1 -1
  1032. package/dist/source/components/layout/floatingWindow/floatingWindow.jsx +17 -11
  1033. package/dist/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
  1034. package/dist/source/components/layout/grid/grid.jsx +20 -8
  1035. package/dist/source/components/layout/grid/grid.jsx.map +1 -1
  1036. package/dist/source/components/layout/page/page.jsx +10 -2
  1037. package/dist/source/components/layout/page/page.jsx.map +1 -1
  1038. package/dist/source/components/layout/pageHeader/pageHeader.jsx +3 -2
  1039. package/dist/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  1040. package/dist/source/components/layout/sectionHeader/sectionHeader.jsx +5 -5
  1041. package/dist/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -1
  1042. package/dist/source/components/layout/sheet/sheet.jsx +39 -19
  1043. package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
  1044. package/dist/source/components/layout/stack/stack.jsx +15 -11
  1045. package/dist/source/components/layout/stack/stack.jsx.map +1 -1
  1046. package/dist/source/components/layout/tabGroups/index.js +8 -0
  1047. package/dist/source/components/layout/tabGroups/index.js.map +7 -0
  1048. package/dist/source/components/layout/tabGroups/tabGroups.jsx +1119 -0
  1049. package/dist/source/components/layout/tabGroups/tabGroups.jsx.map +1 -0
  1050. package/dist/source/components/layout/tabGroups/tabGroupsFocus.js +222 -0
  1051. package/dist/source/components/layout/tabGroups/tabGroupsFocus.js.map +7 -0
  1052. package/dist/source/components/layout/tabGroups/tabGroupsLayout.js +629 -0
  1053. package/dist/source/components/layout/tabGroups/tabGroupsLayout.js.map +7 -0
  1054. package/dist/source/components/navigation/appBar/appBar.jsx +30 -5
  1055. package/dist/source/components/navigation/appBar/appBar.jsx.map +1 -1
  1056. package/dist/source/components/navigation/bottomBar/bottomBar.jsx +48 -40
  1057. package/dist/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  1058. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx +9 -2
  1059. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
  1060. package/dist/source/components/navigation/commandPalette/commandPalette.jsx +508 -0
  1061. package/dist/source/components/navigation/commandPalette/commandPalette.jsx.map +1 -0
  1062. package/dist/source/components/navigation/commandPalette/commandPaletteFilter.js +16 -0
  1063. package/dist/source/components/navigation/commandPalette/commandPaletteFilter.js.map +7 -0
  1064. package/dist/source/components/navigation/commandPalette/commandPaletteNavigation.js +54 -0
  1065. package/dist/source/components/navigation/commandPalette/commandPaletteNavigation.js.map +7 -0
  1066. package/dist/source/components/navigation/commandPalette/commandPaletteTypes.js +1 -0
  1067. package/dist/source/components/navigation/commandPalette/commandPaletteTypes.js.map +7 -0
  1068. package/dist/source/components/navigation/commandPalette/index.js +11 -0
  1069. package/dist/source/components/navigation/commandPalette/index.js.map +7 -0
  1070. package/dist/source/components/navigation/menu/menu.jsx.map +1 -1
  1071. package/dist/source/components/navigation/menu/menuComponent.jsx +3 -4
  1072. package/dist/source/components/navigation/menu/menuComponent.jsx.map +1 -1
  1073. package/dist/source/components/navigation/menu/menuContext.js.map +2 -2
  1074. package/dist/source/components/navigation/menu/menuFloating.jsx +26 -4
  1075. package/dist/source/components/navigation/menu/menuFloating.jsx.map +1 -1
  1076. package/dist/source/components/navigation/menu/menuItem.jsx +22 -2
  1077. package/dist/source/components/navigation/menu/menuItem.jsx.map +1 -1
  1078. package/dist/source/components/navigation/menu/menuList.jsx +19 -7
  1079. package/dist/source/components/navigation/menu/menuList.jsx.map +1 -1
  1080. package/dist/source/components/navigation/menu/menuSubmenu.jsx +36 -4
  1081. package/dist/source/components/navigation/menu/menuSubmenu.jsx.map +1 -1
  1082. package/dist/source/components/navigation/pagination/pagination.jsx +4 -3
  1083. package/dist/source/components/navigation/pagination/pagination.jsx.map +1 -1
  1084. package/dist/source/components/navigation/sidebar/sidebar.jsx +6 -3
  1085. package/dist/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
  1086. package/dist/source/components/navigation/stepper/stepper.jsx +14 -9
  1087. package/dist/source/components/navigation/stepper/stepper.jsx.map +1 -1
  1088. package/dist/source/components/navigation/tabs/index.js +2 -0
  1089. package/dist/source/components/navigation/tabs/index.js.map +2 -2
  1090. package/dist/source/components/navigation/tabs/tab/tab.jsx +144 -21
  1091. package/dist/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  1092. package/dist/source/components/navigation/tabs/tabPanel/tabPanel.jsx +30 -0
  1093. package/dist/source/components/navigation/tabs/tabPanel/tabPanel.jsx.map +1 -0
  1094. package/dist/source/components/navigation/tabs/tabs.jsx +392 -20
  1095. package/dist/source/components/navigation/tabs/tabs.jsx.map +1 -1
  1096. package/dist/source/components/navigation/tabs/tabs.utils.js +18 -0
  1097. package/dist/source/components/navigation/tabs/tabs.utils.js.map +7 -0
  1098. package/dist/source/components/navigation/tabs/tabsContext.js.map +2 -2
  1099. package/dist/source/connects/rt/table/table.jsx +7 -2
  1100. package/dist/source/connects/rt/table/table.jsx.map +1 -1
  1101. package/dist/source/index.js +44 -1
  1102. package/dist/source/index.js.map +2 -2
  1103. package/dist/source/primitives/createDismissOnEscape.js +17 -0
  1104. package/dist/source/primitives/createDismissOnEscape.js.map +7 -0
  1105. package/dist/source/primitives/createFocusTrap.js +9 -3
  1106. package/dist/source/primitives/createFocusTrap.js.map +2 -2
  1107. package/dist/source/primitives/createHelperText.js +16 -0
  1108. package/dist/source/primitives/createHelperText.js.map +7 -0
  1109. package/dist/source/primitives/createKeyboardShortcut.js +23 -0
  1110. package/dist/source/primitives/createKeyboardShortcut.js.map +7 -0
  1111. package/dist/source/primitives/mergeStyle.js +15 -0
  1112. package/dist/source/primitives/mergeStyle.js.map +7 -0
  1113. package/dist/source/primitives/overlayLayer.js +10 -2
  1114. package/dist/source/primitives/overlayLayer.js.map +2 -2
  1115. package/dist/source/primitives/restoreFocus.js +14 -0
  1116. package/dist/source/primitives/restoreFocus.js.map +7 -0
  1117. package/dist/source/utils/controlProps.js +22 -0
  1118. package/dist/source/utils/controlProps.js.map +7 -0
  1119. package/dist/source/utils/keyboardShortcut.js +74 -0
  1120. package/dist/source/utils/keyboardShortcut.js.map +7 -0
  1121. package/dist/source/utils/linkAttrs.js +16 -0
  1122. package/dist/source/utils/linkAttrs.js.map +7 -0
  1123. package/dist/source/utils/ownClick.js +41 -0
  1124. package/dist/source/utils/ownClick.js.map +7 -0
  1125. package/dist/utils/controlProps.d.ts +17 -0
  1126. package/dist/utils/controlProps.js +20 -0
  1127. package/dist/utils/controlProps.js.map +1 -0
  1128. package/dist/utils/keyboardShortcut.d.ts +12 -0
  1129. package/dist/utils/keyboardShortcut.js +48 -0
  1130. package/dist/utils/keyboardShortcut.js.map +1 -0
  1131. package/dist/utils/linkAttrs.d.ts +13 -0
  1132. package/dist/utils/linkAttrs.js +13 -0
  1133. package/dist/utils/linkAttrs.js.map +1 -0
  1134. package/dist/utils/ownClick.d.ts +16 -0
  1135. package/dist/utils/ownClick.js +39 -0
  1136. package/dist/utils/ownClick.js.map +1 -0
  1137. package/package.json +72 -3
@@ -0,0 +1,480 @@
1
+ const gt = 1, nt = {
2
+ top: "above",
3
+ right: "on the right",
4
+ bottom: "below",
5
+ left: "on the left"
6
+ }, rt = {
7
+ group: (t, n) => n === 1 ? "Tabs" : `Group ${t} of ${n}`,
8
+ groupActions: "Group actions",
9
+ splitRight: "Split right",
10
+ splitDown: "Split down",
11
+ moveToPreviousGroup: "Move to previous group",
12
+ moveToNextGroup: "Move to next group",
13
+ moveLeft: "Move tab left",
14
+ moveRight: "Move tab right",
15
+ resize: "Resize groups",
16
+ movedToGroup: (t, n, r) => `${t} moved to group ${n} of ${r}`,
17
+ movedToNewGroup: (t, n) => `${t} moved to a new group ${nt[n]}`,
18
+ movedInGroup: (t, n, r) => `${t} moved to position ${n} of ${r}`
19
+ }, x = 0.05, P = 1e-6, k = x * 2, et = 32, it = 1e-6;
20
+ function d(t, n) {
21
+ const r = t[n];
22
+ if (r === void 0) throw new RangeError(`tabGroupsLayout: no item at ${n}`);
23
+ return r;
24
+ }
25
+ function z(t, n, r) {
26
+ return Math.min(r, Math.max(n, t));
27
+ }
28
+ function st(t) {
29
+ return Math.round(t * 1e4) / 1e4;
30
+ }
31
+ function b(t) {
32
+ return t.reduce((n, r) => n + r, 0);
33
+ }
34
+ function R(t, n) {
35
+ return t.type === "group" ? n.push(t) : t.children.forEach((r) => R(r, n)), n;
36
+ }
37
+ function N(t) {
38
+ return t.type === "group" ? t : N(d(t.children, 0));
39
+ }
40
+ function j(t) {
41
+ return t.type === "group" ? t : j(d(t.children, t.children.length - 1));
42
+ }
43
+ function L(t, n) {
44
+ n(t), t.type === "split" && t.children.forEach((r) => L(r, n));
45
+ }
46
+ function G(t, n, r = []) {
47
+ if (t.id === n) return r;
48
+ if (t.type !== "group")
49
+ for (let e = 0; e < t.children.length; e++) {
50
+ const i = G(d(t.children, e), n, [...r, e]);
51
+ if (i) return i;
52
+ }
53
+ }
54
+ function T(t, n) {
55
+ let r = t;
56
+ for (const e of n) r = d(r.children, e);
57
+ return r;
58
+ }
59
+ function m(t, n, r) {
60
+ if (n.length === 0) return r;
61
+ const e = t, [i, ...s] = n, o = e.children.slice();
62
+ return o[i] = m(d(o, i), s, r), { ...e, children: o };
63
+ }
64
+ function S(t, n) {
65
+ return _(t).find((r) => r.id === n);
66
+ }
67
+ function F(t, n) {
68
+ const r = G(t, n.id);
69
+ return r ? m(t, r, n) : t;
70
+ }
71
+ function A(t, n, r = t.activeGroup) {
72
+ return n === t.root && r === t.activeGroup ? t : { version: 1, root: n, activeGroup: r };
73
+ }
74
+ function H(t, n, r) {
75
+ const e = (s) => s !== void 0 && R(n, []).some((o) => o.id === s);
76
+ if (e(r)) return r;
77
+ const i = vt(t, r);
78
+ return i !== void 0 && e(i) ? i : N(n).id;
79
+ }
80
+ function C(t, n) {
81
+ let r = 0;
82
+ return L(t, (e) => {
83
+ const i = /^(\D+)(\d+)$/.exec(e.id);
84
+ i && i[1] === n && (r = Math.max(r, Number(i[2])));
85
+ }), `${n}${r + 1}`;
86
+ }
87
+ function w(t) {
88
+ if (t.type === "group") return t;
89
+ let n = !1;
90
+ const r = [];
91
+ let e = [];
92
+ if (t.children.forEach((s, o) => {
93
+ const c = t.sizes[o] ?? 0, u = w(s);
94
+ u !== s && (n = !0), u.type === "split" && u.direction === t.direction ? (n = !0, u.children.forEach((f, l) => {
95
+ r.push(f), e.push(c * (u.sizes[l] ?? 0) / 100);
96
+ })) : (r.push(u), e.push(c));
97
+ }), r.length === 1) return d(r, 0);
98
+ const i = b(e);
99
+ return i > 0 && Math.abs(i - 100) > P && (n = !0, e = e.map((s) => s * 100 / i)), n ? { ...t, children: r, sizes: e } : t;
100
+ }
101
+ function ot(t, n) {
102
+ const r = n.slice(0, -1), e = d(n, n.length - 1), i = T(t, r), s = e > 0 ? e - 1 : e + 1, o = i.sizes.slice();
103
+ o[s] = (o[s] ?? 0) + (o[e] ?? 0), o.splice(e, 1);
104
+ const c = i.children.filter((u, f) => f !== e);
105
+ return w(m(t, r, { ...i, children: c, sizes: o }));
106
+ }
107
+ function U(t, n, r) {
108
+ const e = G(t, n.id), i = n.tabs.indexOf(r), s = n.tabs.filter((c) => c !== r);
109
+ if (s.length === 0 && e.length > 0) return { root: ot(t, e), closed: !0 };
110
+ const o = n.active === r ? s[i] ?? s[i - 1] ?? null : n.active;
111
+ return { root: m(t, e, { ...n, tabs: s, active: o }), closed: !1 };
112
+ }
113
+ function ct(t, n, r, e, i) {
114
+ const s = G(t, n), o = T(t, s), c = o.tabs.slice();
115
+ c.splice(z(e ?? c.length, 0, c.length), 0, r);
116
+ const u = i || o.active === null ? r : o.active;
117
+ return m(t, s, { ...o, tabs: c, active: u });
118
+ }
119
+ function ut(t, n, r, e, i) {
120
+ const s = G(t, n), o = e === "left" || e === "right" ? "row" : "column", c = e === "left" || e === "top";
121
+ if (s.length > 0) {
122
+ const l = s.slice(0, -1), p = d(s, s.length - 1), a = T(t, l);
123
+ if (a.direction === o) {
124
+ const h = (a.sizes[p] ?? 0) / 2, v = a.children.slice(), g = a.sizes.slice();
125
+ g[p] = h;
126
+ const E = c ? p : p + 1;
127
+ return v.splice(E, 0, r), g.splice(E, 0, h), m(t, l, { ...a, children: v, sizes: g });
128
+ }
129
+ }
130
+ const u = T(t, s);
131
+ return m(t, s, {
132
+ type: "split",
133
+ id: i,
134
+ direction: o,
135
+ children: c ? [r, u] : [u, r],
136
+ sizes: [50, 50]
137
+ });
138
+ }
139
+ function xt(t = [], n = {}) {
140
+ const r = Array.from(new Set(t)), e = n.active !== void 0 && r.includes(n.active) ? n.active : r[0] ?? null;
141
+ return {
142
+ version: 1,
143
+ root: { type: "group", id: "g1", tabs: r, active: e },
144
+ activeGroup: "g1"
145
+ };
146
+ }
147
+ function I(t) {
148
+ return typeof t == "object" && t !== null && !Array.isArray(t);
149
+ }
150
+ function X(t, n, r = 0) {
151
+ if (!I(t) || r > et) return null;
152
+ const e = typeof t.id == "string" ? t.id : "";
153
+ if (t.type === "group") {
154
+ const p = [];
155
+ if (Array.isArray(t.tabs))
156
+ for (const h of t.tabs)
157
+ typeof h != "string" || n.has(h) || (n.add(h), p.push(h));
158
+ const a = typeof t.active == "string" && p.includes(t.active) ? t.active : p[0] ?? null;
159
+ return { type: "group", id: e, tabs: p, active: a };
160
+ }
161
+ const i = t.direction;
162
+ if (t.type !== "split" || i !== "row" && i !== "column" || !Array.isArray(t.children))
163
+ return null;
164
+ const s = t.children, o = t.sizes, c = Array.isArray(o) && o.length === s.length && o.every((p) => typeof p == "number" && Number.isFinite(p) && p > 0), u = c && !Number.isFinite(b(o) * 100) ? Math.max(...o) : 1, f = [], l = [];
165
+ return s.forEach((p, a) => {
166
+ const h = X(p, n, r + 1);
167
+ h && (f.push(h), l.push(c ? (o[a] ?? u) / u : 1));
168
+ }), f.length === 0 ? null : { type: "split", id: e, direction: i, children: f, sizes: l };
169
+ }
170
+ function Z(t) {
171
+ if (t.type === "group") return t.tabs.length > 0 ? t : null;
172
+ const n = [], r = [];
173
+ return t.children.forEach((e, i) => {
174
+ const s = Z(e);
175
+ s && (n.push(s), r.push(t.sizes[i] ?? 0));
176
+ }), n.length > 0 ? { ...t, children: n, sizes: r } : null;
177
+ }
178
+ function q(t, n = 100, r = 100) {
179
+ if (t.type === "group") return t;
180
+ const e = t.direction === "row", i = e ? n : r, s = i > 0 ? k / i * 100 : 100;
181
+ let o = t.sizes;
182
+ if (s * o.length >= 100)
183
+ o.some((f) => Math.abs(f - 100 / t.sizes.length) > P) && (o = o.map(() => 100 / t.sizes.length));
184
+ else if (o.some((f) => f < s)) {
185
+ const f = b(o.map((p) => Math.max(0, s - p))), l = b(o.map((p) => Math.max(0, p - s)));
186
+ o = o.map((p) => p < s ? s : p - (p - s) * f / l);
187
+ }
188
+ let c = o !== t.sizes;
189
+ const u = t.children.map((f, l) => {
190
+ const p = (o[l] ?? 0) / 100, a = q(f, e ? n * p : n, e ? r : r * p);
191
+ return a !== f && (c = !0), a;
192
+ });
193
+ return c ? { ...t, children: u, sizes: o } : t;
194
+ }
195
+ function ft(t) {
196
+ const n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
197
+ if (L(t, (s) => {
198
+ s.id !== "" && !n.has(s.id) ? n.add(s.id) : r.add(s);
199
+ }), r.size === 0) return t;
200
+ const e = { g: 0, s: 0 };
201
+ n.forEach((s) => {
202
+ const o = /^(\D+)(\d+)$/.exec(s);
203
+ o && (o[1] === "g" || o[1] === "s") && (e[o[1]] = Math.max(e[o[1]], Number(o[2])));
204
+ });
205
+ const i = (s) => {
206
+ const o = s.type === "group" ? "g" : "s", c = r.has(s) ? `${o}${++e[o]}` : s.id;
207
+ return s.type === "group" ? { ...s, id: c } : { ...s, id: c, children: s.children.map(i) };
208
+ };
209
+ return i(t);
210
+ }
211
+ function bt(t, n = {}) {
212
+ if (!I(t) || t.version !== 1) return null;
213
+ const r = X(t.root, /* @__PURE__ */ new Set());
214
+ if (!r) return null;
215
+ const e = Z(r), i = ft(
216
+ e ? q(w(e)) : { type: "group", id: N(r).id, tabs: [], active: null }
217
+ ), s = R(i, []), o = s.some((u) => u.id === t.activeGroup) ? t.activeGroup : d(s, 0).id, c = { version: 1, root: i, activeGroup: o };
218
+ return n.tabs ? pt(c, n.tabs) : c;
219
+ }
220
+ function pt(t, n) {
221
+ const r = new Set(n);
222
+ let e = t;
223
+ return _(t).forEach(
224
+ (i) => i.tabs.forEach((s) => {
225
+ r.has(s) || (e = lt(e, s));
226
+ })
227
+ ), n.forEach((i) => {
228
+ $(e, i) || (e = K(e, i, { select: !1 }));
229
+ }), e;
230
+ }
231
+ function _(t) {
232
+ return R(t.root, []);
233
+ }
234
+ function $(t, n) {
235
+ return _(t).find((r) => r.tabs.includes(n));
236
+ }
237
+ function K(t, n, r = {}) {
238
+ const e = S(t, r.group ?? t.activeGroup);
239
+ if (!e) return t;
240
+ const i = r.select ?? !0, s = $(t, n);
241
+ if (s && s.id === e.id) {
242
+ const f = W(t, s, n, r.index);
243
+ return i ? at(f, n) : f;
244
+ }
245
+ let o = t.root, c = !1;
246
+ s && ({ root: o, closed: c } = U(o, s, n)), o = ct(o, e.id, n, r.index, i);
247
+ const u = i ? e.id : c ? H(t, o, t.activeGroup) : t.activeGroup;
248
+ return A(t, o, u);
249
+ }
250
+ function lt(t, n) {
251
+ const r = $(t, n);
252
+ if (!r) return t;
253
+ const { root: e } = U(t.root, r, n);
254
+ return A(t, e, H(t, e, t.activeGroup));
255
+ }
256
+ function at(t, n) {
257
+ const r = $(t, n);
258
+ if (!r) return t;
259
+ const e = r.active === n ? t.root : F(t.root, { ...r, active: n });
260
+ return A(t, e, r.id);
261
+ }
262
+ function Tt(t, n) {
263
+ return S(t, n) ? A(t, t.root, n) : t;
264
+ }
265
+ function W(t, n, r, e) {
266
+ const i = n.tabs.indexOf(r), s = n.tabs.length - 1, o = z(e ?? s, 0, s);
267
+ if (o === i) return t;
268
+ const c = n.tabs.slice();
269
+ return c.splice(i, 1), c.splice(o, 0, r), A(t, F(t.root, { ...n, tabs: c }));
270
+ }
271
+ function D(t, n, r) {
272
+ const e = $(t, n), i = S(t, r.group);
273
+ if (!e || !i) return t;
274
+ if (r.edge === void 0)
275
+ return i.id === e.id ? W(t, e, n, r.index) : K(t, n, {
276
+ group: i.id,
277
+ ...r.index === void 0 ? {} : { index: r.index }
278
+ });
279
+ if (i.id === e.id && e.tabs.length < 2) return t;
280
+ const s = C(t.root, "g"), o = C(t.root, "s"), { root: c } = U(t.root, e, n), u = { type: "group", id: s, tabs: [n], active: n };
281
+ return A(t, ut(c, i.id, u, r.edge, o), s);
282
+ }
283
+ function Gt(t, n, r) {
284
+ const e = $(t, n);
285
+ if (!e) return t;
286
+ const i = mt(t, e.id, r);
287
+ return i !== void 0 ? D(t, n, { group: i }) : D(t, n, { group: e.id, edge: r });
288
+ }
289
+ function ht(t, n, r) {
290
+ let e = 100, i = t;
291
+ for (const s of n) {
292
+ if (i.type !== "split") break;
293
+ i.direction === r && (e *= (i.sizes[s] ?? 0) / (b(i.sizes) || 1)), i = d(i.children, s);
294
+ }
295
+ return e;
296
+ }
297
+ function J(t, n, r) {
298
+ if (t.type === "group") return r;
299
+ const e = t.children.map((s) => J(s, n, r));
300
+ if (t.direction !== n) return Math.max(...e);
301
+ const i = b(t.sizes) || 1;
302
+ return Math.max(
303
+ ...e.map((s, o) => {
304
+ const c = (t.sizes[o] ?? 0) / i;
305
+ return c > 0 ? s / c : Number.POSITIVE_INFINITY;
306
+ })
307
+ );
308
+ }
309
+ function At(t, n, r, e, i = 0) {
310
+ const s = G(t.root, n);
311
+ if (!s) return t;
312
+ const o = T(t.root, s);
313
+ if (o.type !== "split" || !Number.isInteger(r) || r < 0 || r >= o.children.length - 1 || Number.isNaN(e) || e === 0) return t;
314
+ const c = o.sizes[r] ?? 0, u = o.sizes[r + 1] ?? 0, f = c + u, l = ht(t.root, s, o.direction), p = l > 0 ? k / l * 100 : 0, a = (M) => Math.min(f, Math.max(p, J(M, o.direction, i > 0 ? i : 0)));
315
+ let h = a(d(o.children, r)), v = a(d(o.children, r + 1));
316
+ if (h + v > f) {
317
+ const M = f / (h + v);
318
+ h *= M, v *= M;
319
+ }
320
+ const g = z(c + e, h, f - v);
321
+ if (g === c) return t;
322
+ const E = o.sizes.slice();
323
+ return E[r] = g, E[r + 1] = f - g, A(t, m(t.root, s, { ...o, sizes: E }));
324
+ }
325
+ function B(t, n, r, e) {
326
+ if (t.type === "group") {
327
+ r(t, n);
328
+ return;
329
+ }
330
+ const i = b(t.sizes) || 1, s = t.direction === "row", o = s ? n.x0 : n.y0, c = s ? n.x1 - n.x0 : n.y1 - n.y0;
331
+ let u = 0;
332
+ t.children.forEach((f, l) => {
333
+ const p = o + c * u / i;
334
+ u += t.sizes[l] ?? 0;
335
+ const a = l === t.children.length - 1 ? s ? n.x1 : n.y1 : o + c * u / i, h = s ? { ...n, x0: p, x1: a } : { ...n, y0: p, y1: a };
336
+ B(f, h, r, e), e && l < t.children.length - 1 && e(t, l, a, n);
337
+ });
338
+ }
339
+ const Q = { x0: 0, y0: 0, x1: 100, y1: 100 };
340
+ function dt(t) {
341
+ const n = [];
342
+ return B(t.root, Q, (r, e) => n.push({ group: r, rect: e })), n;
343
+ }
344
+ function mt(t, n, r) {
345
+ const e = dt(t), i = e.find((u) => u.group.id === n)?.rect;
346
+ if (!i) return;
347
+ const s = r === "left" || r === "right";
348
+ let o, c = x;
349
+ return e.forEach(({ group: u, rect: f }) => {
350
+ if (u.id === n || !(r === "right" ? Math.abs(f.x0 - i.x1) < x : r === "left" ? Math.abs(f.x1 - i.x0) < x : r === "bottom" ? Math.abs(f.y0 - i.y1) < x : Math.abs(f.y1 - i.y0) < x)) return;
351
+ const p = s ? Math.min(f.y1, i.y1) - Math.max(f.y0, i.y0) : Math.min(f.x1, i.x1) - Math.max(f.x0, i.x0);
352
+ p > c + P && (o = u.id, c = p);
353
+ }), o;
354
+ }
355
+ function vt(t, n) {
356
+ const r = G(t.root, n);
357
+ if (!r || r.length === 0 || T(t.root, r).type !== "group") return;
358
+ const e = T(t.root, r.slice(0, -1)), i = d(r, r.length - 1), s = e.children[i - 1];
359
+ if (s) return j(s).id;
360
+ const o = e.children[i + 1];
361
+ return o ? N(o).id : void 0;
362
+ }
363
+ function Et(t, n, r, e, i = 0.25) {
364
+ if (!(r > 0) || !(e > 0)) return "center";
365
+ const s = z(t, 0, r) / r, o = z(n, 0, e) / e, c = [
366
+ ["top", o],
367
+ ["right", 1 - s],
368
+ ["bottom", 1 - o],
369
+ ["left", s]
370
+ ];
371
+ let u = "center", f = 1 / 0;
372
+ return c.forEach(([l, p]) => {
373
+ p < i && p < f - it && (u = l, f = p);
374
+ }), u;
375
+ }
376
+ function V(t) {
377
+ const n = [];
378
+ return t.slice().sort((r, e) => r - e).forEach((r) => {
379
+ const e = n[n.length - 1];
380
+ (e === void 0 || r - e >= x) && n.push(r);
381
+ }), n;
382
+ }
383
+ function y(t, n) {
384
+ let r = 0;
385
+ return t.forEach((e, i) => {
386
+ e <= n + 1e-9 && (r = i);
387
+ }), r;
388
+ }
389
+ function O(t, n, r) {
390
+ const e = y(t, n);
391
+ return [e, Math.max(e + 1, y(t, r))];
392
+ }
393
+ function Y(t) {
394
+ return t.slice(1).map((n, r) => st(n - d(t, r)));
395
+ }
396
+ function zt(t) {
397
+ const n = [], r = [];
398
+ B(
399
+ t.root,
400
+ Q,
401
+ (c, u) => n.push({ group: c, rect: u }),
402
+ (c, u, f, l) => r.push({ split: c, index: u, position: f, rect: l })
403
+ );
404
+ const e = V(n.flatMap(({ rect: c }) => [c.x0, c.x1])), i = V(n.flatMap(({ rect: c }) => [c.y0, c.y1])), s = Y(e), o = Y(i);
405
+ return {
406
+ columns: s,
407
+ rows: o,
408
+ groups: n.map(({ group: c, rect: u }) => ({
409
+ id: c.id,
410
+ column: O(e, u.x0, u.x1),
411
+ row: O(i, u.y0, u.y1)
412
+ })),
413
+ separators: r.map(({ split: c, index: u, position: f, rect: l }) => {
414
+ const p = c.direction === "row", a = p ? s.length : o.length;
415
+ return {
416
+ split: c.id,
417
+ index: u,
418
+ orientation: p ? "vertical" : "horizontal",
419
+ line: z(y(p ? e : i, f), 1, Math.max(1, a - 1)),
420
+ span: p ? O(i, l.y0, l.y1) : O(e, l.x0, l.x1)
421
+ };
422
+ })
423
+ };
424
+ }
425
+ const tt = " var(--smwb-tab-groups-separator-size) ";
426
+ function $t(t) {
427
+ return t.columns.map((n) => `minmax(0, ${n}fr)`).join(tt);
428
+ }
429
+ function Mt(t) {
430
+ return t.rows.map((n) => `auto minmax(0, ${n}fr)`).join(tt);
431
+ }
432
+ function Ot(t) {
433
+ const [n, r] = t.column, [e] = t.row;
434
+ return `${3 * e + 1} / ${2 * n + 1} / ${3 * e + 2} / ${2 * r}`;
435
+ }
436
+ function Rt(t) {
437
+ const [n, r] = t.column, [e, i] = t.row;
438
+ return `${3 * e + 2} / ${2 * n + 1} / ${3 * i} / ${2 * r}`;
439
+ }
440
+ function Nt(t) {
441
+ const n = t.line, [r, e] = t.span;
442
+ return t.orientation === "vertical" ? `${3 * r + 1} / ${2 * n} / ${3 * e} / ${2 * n + 1}` : `${3 * n} / ${2 * r + 1} / ${3 * n + 1} / ${2 * e}`;
443
+ }
444
+ function St(t, n, r, e = rt) {
445
+ if (t.type === "split") return e.movedToNewGroup(r(t.tab), t.edge);
446
+ if (t.type !== "move") return "";
447
+ if (t.from === t.to) {
448
+ const o = S(n, t.to), c = o ? o.tabs.indexOf(t.tab) + 1 : 0;
449
+ return e.movedInGroup(r(t.tab), c || t.index + 1, o?.tabs.length ?? 0);
450
+ }
451
+ const i = _(n), s = i.findIndex((o) => o.id === t.to);
452
+ return e.movedToGroup(r(t.tab), s + 1, i.length);
453
+ }
454
+ export {
455
+ rt as TAB_GROUPS_LABELS,
456
+ gt as TAB_GROUPS_LAYOUT_VERSION,
457
+ K as addTab,
458
+ vt as adjacentGroup,
459
+ zt as computeTabGroupsGrid,
460
+ xt as createTabGroupsLayout,
461
+ St as describeTabGroupsChange,
462
+ Et as dropZoneAt,
463
+ $ as findGroupOfTab,
464
+ _ as getGroups,
465
+ $t as gridTemplateColumns,
466
+ Mt as gridTemplateRows,
467
+ Rt as groupBodyArea,
468
+ Ot as groupHeaderArea,
469
+ D as moveTab,
470
+ Gt as moveTabInDirection,
471
+ mt as neighbourGroup,
472
+ bt as parseTabGroupsLayout,
473
+ lt as removeTab,
474
+ At as resizeSplit,
475
+ at as selectTab,
476
+ Nt as separatorArea,
477
+ Tt as setActiveGroup,
478
+ pt as syncTabs
479
+ };
480
+ //# sourceMappingURL=tabGroupsLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabGroupsLayout.js","sources":["../../../../../src/components/layout/tabGroups/tabGroupsLayout.ts"],"sourcesContent":["/**\n * The pure layout model of `TabGroups`: the split tree, every operation on it and the grid\n * geometry drawn from it. There is no framework and no DOM here, so jsdom tests feed layouts\n * and numbers straight in, and the server and the client compute the same markup. The file is\n * a byte-identical copy in ui-react and ui-solid.\n *\n * Every operation is pure: it never mutates its input and returns the input object itself when\n * nothing changes. Unknown ids are no-ops, never errors.\n */\n\n/** The version of the layout JSON this model reads and writes. */\nexport const TAB_GROUPS_LAYOUT_VERSION = 1;\n\n/** An edge of a group: a tab dropped or moved there gets a new group on that side. */\nexport type TabGroupsEdge = \"top\" | \"right\" | \"bottom\" | \"left\";\n\n/** Where a drop over a group's body lands: into the group (`center`) or a new group at an edge. */\nexport type TabGroupsDropZone = \"center\" | TabGroupsEdge;\n\n/** A group: one tab row and its panels. */\nexport interface TabGroupsGroup {\n type: \"group\";\n /** Unique among all nodes. Generated ids are \"g1\", \"g2\", …; an app may use any string. */\n id: string;\n /** Tab ids in row order. A tab id appears in exactly one group. Empty only for the root group (nothing open). */\n tabs: string[];\n /** The selected tab: one of `tabs`; null only when `tabs` is empty. */\n active: string | null;\n}\n\n/** A split of an area into side-by-side or stacked children. */\nexport interface TabGroupsSplit {\n type: \"split\";\n /** Unique among all nodes. Generated ids are \"s1\", \"s2\", …. */\n id: string;\n /** \"row\": children side by side, left to right; \"column\": stacked, top to bottom. */\n direction: \"row\" | \"column\";\n /** At least two. Never a split of the same direction (it is flattened into this one). */\n children: TabGroupsNode[];\n /** Each child's share of this split in percent, same length as `children`, positive, summing to 100. */\n sizes: number[];\n}\n\n/** A node of the split tree. */\nexport type TabGroupsNode = TabGroupsGroup | TabGroupsSplit;\n\n/** The whole arrangement: what an app stores. Only ids and sizes, no labels or content. */\nexport interface TabGroupsLayout {\n version: 1;\n root: TabGroupsNode;\n /** The group the user last worked in: new tabs go there by default. Always an existing group id. */\n activeGroup: string;\n}\n\n/** What a layout change did: the second argument of `onLayoutChange`. */\nexport type TabGroupsChange =\n | { type: \"select\"; tab: string; group: string }\n /** Focus moved into another group. */\n | { type: \"activate\"; group: string }\n /** Into an existing group, including a reorder within the same group. */\n | { type: \"move\"; tab: string; from: string; to: string; index: number; sourceClosed: boolean }\n /** Into a new group at an edge; `to` is the new group. */\n | { type: \"split\"; tab: string; from: string; to: string; edge: TabGroupsEdge; sourceClosed: boolean }\n | { type: \"close\"; tab: string; group: string; groupClosed: boolean }\n | { type: \"resize\"; split: string; sizes: number[] };\n\n/** Where `moveTab` puts a tab. */\nexport type TabGroupsMoveTarget =\n /** Into an existing group; `index` = the tab's final index (default: the end). */\n | { group: string; index?: number; edge?: undefined }\n /** A new group at that edge of `group`. */\n | { group: string; edge: TabGroupsEdge };\n\n/** The CSS grid a layout is drawn on (see `computeTabGroupsGrid`). */\nexport interface TabGroupsGrid {\n /** Content column widths, percent, left to right. */\n columns: number[];\n /** Content row heights, percent, top to bottom. */\n rows: number[];\n /** Every group's content columns and rows, end-exclusive, in reading order. */\n groups: { id: string; column: [number, number]; row: [number, number] }[];\n /**\n * Every separator, in reading order (after the subtree of child `index` of its split). `line` is the\n * content boundary it sits on (1..n-1); `span` its extent across the other axis, end-exclusive.\n */\n separators: {\n split: string;\n index: number;\n orientation: \"vertical\" | \"horizontal\";\n line: number;\n span: [number, number];\n }[];\n}\n\n/** The texts of `TabGroups`. Numbers passed in are 1-based, as they are read out. */\nexport interface TabGroupsLabels {\n /** The tab row's name: \"Group 1 of 4\"; \"Tabs\" when count is 1. */\n group: (index: number, count: number) => string;\n /** The group actions button: \"Group actions\". */\n groupActions: string;\n /** \"Split right\". */\n splitRight: string;\n /** \"Split down\". */\n splitDown: string;\n /** \"Move to previous group\". */\n moveToPreviousGroup: string;\n /** \"Move to next group\". */\n moveToNextGroup: string;\n /** \"Move tab left\". */\n moveLeft: string;\n /** \"Move tab right\". */\n moveRight: string;\n /** The separators: \"Resize groups\". */\n resize: string;\n /** \"Terminal moved to group 2 of 3\". */\n movedToGroup: (tab: string, index: number, count: number) => string;\n /** \"Terminal moved to a new group on the right\" (below, on the left, above). */\n movedToNewGroup: (tab: string, edge: TabGroupsEdge) => string;\n /** \"Terminal moved to position 2 of 4\". */\n movedInGroup: (tab: string, position: number, count: number) => string;\n}\n\nconst NEW_GROUP_PLACES: Record<TabGroupsEdge, string> = {\n top: \"above\",\n right: \"on the right\",\n bottom: \"below\",\n left: \"on the left\",\n};\n\n/** The default (English) texts. */\nexport const TAB_GROUPS_LABELS: TabGroupsLabels = {\n group: (index, count) => (count === 1 ? \"Tabs\" : `Group ${index} of ${count}`),\n groupActions: \"Group actions\",\n splitRight: \"Split right\",\n splitDown: \"Split down\",\n moveToPreviousGroup: \"Move to previous group\",\n moveToNextGroup: \"Move to next group\",\n moveLeft: \"Move tab left\",\n moveRight: \"Move tab right\",\n resize: \"Resize groups\",\n movedToGroup: (tab, index, count) => `${tab} moved to group ${index} of ${count}`,\n movedToNewGroup: (tab, edge) => `${tab} moved to a new group ${NEW_GROUP_PLACES[edge]}`,\n movedInGroup: (tab, position, count) => `${tab} moved to position ${position} of ${count}`,\n};\n\n/** Grid boundaries closer than this (percent of the root) are one line. */\nconst SNAP = 0.05;\n/** Sizes summing to 100 within this are left as they are (float noise from halving and scaling). */\nconst SUM_TOLERANCE = 1e-6;\n/**\n * The least a group or split covers of the root along its split's axis, in percent: twice the\n * snap, so that its two edges never snap into one line and it keeps a grid track of its own.\n */\nconst MIN_EXTENT = SNAP * 2;\n/** How deep stored JSON may nest; a deeper node (or a cycle in an object) is not read. */\nconst MAX_DEPTH = 32;\n/**\n * Two edges of a drop area this close to the pointer (a fraction of it) are one tie, and the earlier\n * of the two wins. Without it the noise of `1 - 0.9` against `0.1` decides, and a corner that is\n * exactly as far from the top as from the right reads as the right edge.\n */\nconst ZONE_TOLERANCE = 1e-6;\n\n/** Child indexes from the root down to a node; `[]` is the root. */\ntype Path = number[];\n\n/** A rectangle in percent of the root: left/top inclusive, right/bottom the far edges. */\ninterface Rect {\n x0: number;\n y0: number;\n x1: number;\n y1: number;\n}\n\n/**\n * `items[index]` for an index the caller knows exists: one spelling for both packages (ui-solid\n * checks indexed access, ui-react does not). Only an internal bug can make it throw.\n */\nfunction itemAt<T>(items: readonly T[], index: number): T {\n const item = items[index];\n if (item === undefined) throw new RangeError(`tabGroupsLayout: no item at ${index}`);\n return item;\n}\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, value));\n}\n\nfunction round4(value: number): number {\n return Math.round(value * 10000) / 10000;\n}\n\nfunction sum(values: readonly number[]): number {\n return values.reduce((total, value) => total + value, 0);\n}\n\nfunction collectGroups(node: TabGroupsNode, out: TabGroupsGroup[]): TabGroupsGroup[] {\n if (node.type === \"group\") out.push(node);\n else node.children.forEach((child) => collectGroups(child, out));\n return out;\n}\n\nfunction firstGroup(node: TabGroupsNode): TabGroupsGroup {\n return node.type === \"group\" ? node : firstGroup(itemAt(node.children, 0));\n}\n\nfunction lastGroup(node: TabGroupsNode): TabGroupsGroup {\n return node.type === \"group\" ? node : lastGroup(itemAt(node.children, node.children.length - 1));\n}\n\nfunction forEachNode(node: TabGroupsNode, visit: (node: TabGroupsNode) => void): void {\n visit(node);\n if (node.type === \"split\") node.children.forEach((child) => forEachNode(child, visit));\n}\n\nfunction findPath(node: TabGroupsNode, id: string, path: Path = []): Path | undefined {\n if (node.id === id) return path;\n if (node.type === \"group\") return undefined;\n for (let index = 0; index < node.children.length; index++) {\n const found = findPath(itemAt(node.children, index), id, [...path, index]);\n if (found) return found;\n }\n return undefined;\n}\n\nfunction nodeAt(root: TabGroupsNode, path: Path): TabGroupsNode {\n let node = root;\n for (const index of path) node = itemAt((node as TabGroupsSplit).children, index);\n return node;\n}\n\n/** A copy of `root` with the node at `path` replaced; nodes off the path are shared. */\nfunction replaceAt(root: TabGroupsNode, path: Path, replacement: TabGroupsNode): TabGroupsNode {\n if (path.length === 0) return replacement;\n const split = root as TabGroupsSplit;\n const [index, ...rest] = path as [number, ...number[]];\n const children = split.children.slice();\n children[index] = replaceAt(itemAt(children, index), rest, replacement);\n return { ...split, children };\n}\n\nfunction getGroup(layout: TabGroupsLayout, groupId: string): TabGroupsGroup | undefined {\n return getGroups(layout).find((group) => group.id === groupId);\n}\n\nfunction replaceGroup(root: TabGroupsNode, group: TabGroupsGroup): TabGroupsNode {\n const path = findPath(root, group.id);\n return path ? replaceAt(root, path, group) : root;\n}\n\nfunction withRoot(layout: TabGroupsLayout, root: TabGroupsNode, activeGroup = layout.activeGroup): TabGroupsLayout {\n if (root === layout.root && activeGroup === layout.activeGroup) return layout;\n return { version: TAB_GROUPS_LAYOUT_VERSION, root, activeGroup };\n}\n\n/** `activeGroup` after a change: `wanted` if it still exists, else the group that took its space, else the first. */\nfunction resolveActiveGroup(before: TabGroupsLayout, root: TabGroupsNode, wanted: string): string {\n const exists = (id: string | undefined) =>\n id !== undefined && collectGroups(root, []).some((group) => group.id === id);\n if (exists(wanted)) return wanted;\n const heir = adjacentGroup(before, wanted);\n return heir !== undefined && exists(heir) ? heir : firstGroup(root).id;\n}\n\n/** \"g8\" when the largest number used with prefix \"g\" by any node is 7; \"g1\" when none is. */\nfunction nextId(root: TabGroupsNode, prefix: \"g\" | \"s\"): string {\n let max = 0;\n forEachNode(root, (node) => {\n const match = /^(\\D+)(\\d+)$/.exec(node.id);\n if (match && match[1] === prefix) max = Math.max(max, Number(match[2]));\n });\n return `${prefix}${max + 1}`;\n}\n\n/**\n * Collapses splits left with one child, flattens a child split of its parent's direction into\n * the parent (sizes scaled) and rescales sizes that do not sum to 100. Unchanged subtrees keep\n * their identity, so a normalized tree comes back as the same object.\n */\nfunction normalize(node: TabGroupsNode): TabGroupsNode {\n if (node.type === \"group\") return node;\n let changed = false;\n const children: TabGroupsNode[] = [];\n let sizes: number[] = [];\n node.children.forEach((child, index) => {\n const size = node.sizes[index] ?? 0;\n const next = normalize(child);\n if (next !== child) changed = true;\n if (next.type === \"split\" && next.direction === node.direction) {\n changed = true;\n next.children.forEach((grandchild, inner) => {\n children.push(grandchild);\n sizes.push((size * (next.sizes[inner] ?? 0)) / 100);\n });\n } else {\n children.push(next);\n sizes.push(size);\n }\n });\n if (children.length === 1) return itemAt(children, 0);\n const total = sum(sizes);\n if (total > 0 && Math.abs(total - 100) > SUM_TOLERANCE) {\n changed = true;\n sizes = sizes.map((size) => (size * 100) / total);\n }\n return changed ? { ...node, children, sizes } : node;\n}\n\n/** Removes the node at `path` (not the root); its share goes to the previous sibling, else the next. */\nfunction removeAt(root: TabGroupsNode, path: Path): TabGroupsNode {\n const parentPath = path.slice(0, -1);\n const index = itemAt(path, path.length - 1);\n const parent = nodeAt(root, parentPath) as TabGroupsSplit;\n const heir = index > 0 ? index - 1 : index + 1;\n const sizes = parent.sizes.slice();\n sizes[heir] = (sizes[heir] ?? 0) + (sizes[index] ?? 0);\n sizes.splice(index, 1);\n const children = parent.children.filter((_, i) => i !== index);\n return normalize(replaceAt(root, parentPath, { ...parent, children, sizes }));\n}\n\n/**\n * Takes a tab out of its group. When the closed tab was selected, the tab that takes its place\n * (the previous one if it was last) is selected. An emptied group other than the root is removed.\n */\nfunction detachTab(\n root: TabGroupsNode,\n group: TabGroupsGroup,\n tabId: string\n): { root: TabGroupsNode; closed: boolean } {\n const path = findPath(root, group.id)!;\n const index = group.tabs.indexOf(tabId);\n const tabs = group.tabs.filter((tab) => tab !== tabId);\n if (tabs.length === 0 && path.length > 0) return { root: removeAt(root, path), closed: true };\n const active = group.active === tabId ? (tabs[index] ?? tabs[index - 1] ?? null) : group.active;\n return { root: replaceAt(root, path, { ...group, tabs, active }), closed: false };\n}\n\n/** Puts a tab into a group at `index` (clamped; default the end). */\nfunction insertTab(\n root: TabGroupsNode,\n groupId: string,\n tabId: string,\n index: number | undefined,\n select: boolean\n): TabGroupsNode {\n const path = findPath(root, groupId)!;\n const group = nodeAt(root, path) as TabGroupsGroup;\n const tabs = group.tabs.slice();\n tabs.splice(clamp(index ?? tabs.length, 0, tabs.length), 0, tabId);\n const active = select || group.active === null ? tabId : group.active;\n return replaceAt(root, path, { ...group, tabs, active });\n}\n\n/** Puts `node` at `edge` of the node `targetId`: beside it in a split along that axis, else in a new 50/50 split. */\nfunction insertBeside(\n root: TabGroupsNode,\n targetId: string,\n node: TabGroupsNode,\n edge: TabGroupsEdge,\n splitId: string\n): TabGroupsNode {\n const path = findPath(root, targetId)!;\n const direction = edge === \"left\" || edge === \"right\" ? \"row\" : \"column\";\n const before = edge === \"left\" || edge === \"top\";\n if (path.length > 0) {\n const parentPath = path.slice(0, -1);\n const index = itemAt(path, path.length - 1);\n const parent = nodeAt(root, parentPath) as TabGroupsSplit;\n if (parent.direction === direction) {\n const half = (parent.sizes[index] ?? 0) / 2;\n const children = parent.children.slice();\n const sizes = parent.sizes.slice();\n sizes[index] = half;\n const at = before ? index : index + 1;\n children.splice(at, 0, node);\n sizes.splice(at, 0, half);\n return replaceAt(root, parentPath, { ...parent, children, sizes });\n }\n }\n const target = nodeAt(root, path);\n const split: TabGroupsSplit = {\n type: \"split\",\n id: splitId,\n direction,\n children: before ? [node, target] : [target, node],\n sizes: [50, 50],\n };\n return replaceAt(root, path, split);\n}\n\n/** A layout of one group \"g1\" holding `tabs`; `active` (when one of them) or the first is selected. */\nexport function createTabGroupsLayout(\n tabs: readonly string[] = [],\n options: { active?: string } = {}\n): TabGroupsLayout {\n const unique = Array.from(new Set(tabs));\n const active = options.active !== undefined && unique.includes(options.active) ? options.active : (unique[0] ?? null);\n return {\n version: TAB_GROUPS_LAYOUT_VERSION,\n root: { type: \"group\", id: \"g1\", tabs: unique, active },\n activeGroup: \"g1\",\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/**\n * Reads one node of untrusted JSON; tab ids already taken (`seen`) are dropped. Ids are fixed later.\n * A node deeper than `MAX_DEPTH` is not read, which also ends a cycle.\n */\nfunction readNode(raw: unknown, seen: Set<string>, depth = 0): TabGroupsNode | null {\n if (!isRecord(raw) || depth > MAX_DEPTH) return null;\n const id = typeof raw.id === \"string\" ? raw.id : \"\";\n if (raw.type === \"group\") {\n const tabs: string[] = [];\n if (Array.isArray(raw.tabs)) {\n for (const tab of raw.tabs as unknown[]) {\n if (typeof tab !== \"string\" || seen.has(tab)) continue;\n seen.add(tab);\n tabs.push(tab);\n }\n }\n const active = typeof raw.active === \"string\" && tabs.includes(raw.active) ? raw.active : (tabs[0] ?? null);\n return { type: \"group\", id, tabs, active };\n }\n const direction = raw.direction;\n if (raw.type !== \"split\" || (direction !== \"row\" && direction !== \"column\") || !Array.isArray(raw.children)) {\n return null;\n }\n const rawChildren = raw.children as unknown[];\n const rawSizes = raw.sizes;\n const validSizes =\n Array.isArray(rawSizes) &&\n rawSizes.length === rawChildren.length &&\n (rawSizes as unknown[]).every((size) => typeof size === \"number\" && Number.isFinite(size) && size > 0);\n // Sizes near the float limit are read relative to the largest, so that they still add up (and\n // rescale) to numbers; any others as they are, so that a stored layout reads back unchanged.\n const scale =\n validSizes && !Number.isFinite(sum(rawSizes as number[]) * 100) ? Math.max(...(rawSizes as number[])) : 1;\n const children: TabGroupsNode[] = [];\n const sizes: number[] = [];\n rawChildren.forEach((rawChild, index) => {\n const child = readNode(rawChild, seen, depth + 1);\n if (!child) return;\n children.push(child);\n // Equal shares when the sizes are unusable; `normalize` rescales to 100.\n sizes.push(validSizes ? ((rawSizes as number[])[index] ?? scale) / scale : 1);\n });\n if (children.length === 0) return null;\n return { type: \"split\", id, direction, children, sizes };\n}\n\n/** Drops empty groups and the splits left without children; null when nothing is left. */\nfunction pruneEmpty(node: TabGroupsNode): TabGroupsNode | null {\n if (node.type === \"group\") return node.tabs.length > 0 ? node : null;\n const children: TabGroupsNode[] = [];\n const sizes: number[] = [];\n node.children.forEach((child, index) => {\n const next = pruneEmpty(child);\n if (!next) return;\n children.push(next);\n sizes.push(node.sizes[index] ?? 0);\n });\n return children.length > 0 ? { ...node, children, sizes } : null;\n}\n\n/**\n * Raises every share that the grid could not draw — a child covering less than `MIN_EXTENT` of the\n * root along its split's axis would snap into its neighbour's track — to that minimum, taking the\n * difference from its siblings above it; equal shares when the split is too small for that.\n * `width` and `height` are the node's extent in percent of the root. Sizes must sum to 100.\n */\nfunction keepDrawable(node: TabGroupsNode, width = 100, height = 100): TabGroupsNode {\n if (node.type === \"group\") return node;\n const row = node.direction === \"row\";\n const extent = row ? width : height;\n const floor = extent > 0 ? (MIN_EXTENT / extent) * 100 : 100;\n let sizes = node.sizes;\n if (floor * sizes.length >= 100) {\n if (sizes.some((size) => Math.abs(size - 100 / node.sizes.length) > SUM_TOLERANCE)) {\n sizes = sizes.map(() => 100 / node.sizes.length);\n }\n } else if (sizes.some((size) => size < floor)) {\n const short = sum(sizes.map((size) => Math.max(0, floor - size)));\n const spare = sum(sizes.map((size) => Math.max(0, size - floor)));\n sizes = sizes.map((size) => (size < floor ? floor : size - ((size - floor) * short) / spare));\n }\n let changed = sizes !== node.sizes;\n const children = node.children.map((child, index) => {\n const share = (sizes[index] ?? 0) / 100;\n const next = keepDrawable(child, row ? width * share : width, row ? height : height * share);\n if (next !== child) changed = true;\n return next;\n });\n return changed ? { ...node, children, sizes } : node;\n}\n\n/** Regenerates missing and duplicate node ids (the first in reading order keeps its id). */\nfunction assignIds(root: TabGroupsNode): TabGroupsNode {\n const used = new Set<string>();\n const missing = new Set<TabGroupsNode>();\n forEachNode(root, (node) => {\n if (node.id !== \"\" && !used.has(node.id)) used.add(node.id);\n else missing.add(node);\n });\n if (missing.size === 0) return root;\n const counters = { g: 0, s: 0 };\n used.forEach((id) => {\n const match = /^(\\D+)(\\d+)$/.exec(id);\n if (match && (match[1] === \"g\" || match[1] === \"s\")) {\n counters[match[1]] = Math.max(counters[match[1]], Number(match[2]));\n }\n });\n const rebuild = (node: TabGroupsNode): TabGroupsNode => {\n const prefix = node.type === \"group\" ? \"g\" : \"s\";\n const id = missing.has(node) ? `${prefix}${++counters[prefix]}` : node.id;\n return node.type === \"group\" ? { ...node, id } : { ...node, id, children: node.children.map(rebuild) };\n };\n return rebuild(root);\n}\n\n/**\n * Reads a layout from untrusted JSON (storage, a URL, a file). `null` for a non-object, a version\n * other than 1 or no valid root; anything else is repaired: non-string and duplicate tab ids\n * dropped (the first in reading order wins), empty non-root groups removed and splits collapsed\n * or flattened, an invalid `active` replaced by the first tab, unusable sizes replaced by equal\n * shares and all sizes rescaled to 100, missing or duplicate node ids regenerated, an invalid\n * `activeGroup` replaced by the first group. With `options.tabs` the layout is synced to that\n * list (`syncTabs`). A layout produced by this model round-trips through JSON unchanged.\n */\nexport function parseTabGroupsLayout(raw: unknown, options: { tabs?: readonly string[] } = {}): TabGroupsLayout | null {\n if (!isRecord(raw) || raw.version !== TAB_GROUPS_LAYOUT_VERSION) return null;\n const parsed = readNode(raw.root, new Set());\n if (!parsed) return null;\n const pruned = pruneEmpty(parsed);\n const root = assignIds(\n pruned ? keepDrawable(normalize(pruned)) : { type: \"group\", id: firstGroup(parsed).id, tabs: [], active: null }\n );\n const groups = collectGroups(root, []);\n const activeGroup = groups.some((group) => group.id === raw.activeGroup)\n ? (raw.activeGroup as string)\n : itemAt(groups, 0).id;\n const layout: TabGroupsLayout = { version: TAB_GROUPS_LAYOUT_VERSION, root, activeGroup };\n return options.tabs ? syncTabs(layout, options.tabs) : layout;\n}\n\n/** Makes the layout hold exactly `tabs`: unknown ids are closed, missing ones appended to `activeGroup`. */\nexport function syncTabs(layout: TabGroupsLayout, tabs: readonly string[]): TabGroupsLayout {\n const wanted = new Set(tabs);\n let next = layout;\n getGroups(layout).forEach((group) =>\n group.tabs.forEach((tab) => {\n if (!wanted.has(tab)) next = removeTab(next, tab);\n })\n );\n tabs.forEach((tab) => {\n if (!findGroupOfTab(next, tab)) next = addTab(next, tab, { select: false });\n });\n return next;\n}\n\n/** Every group in reading order (depth first): the order \"Group n of N\" counts in. */\nexport function getGroups(layout: TabGroupsLayout): TabGroupsGroup[] {\n return collectGroups(layout.root, []);\n}\n\n/** The group holding `tabId`. */\nexport function findGroupOfTab(layout: TabGroupsLayout, tabId: string): TabGroupsGroup | undefined {\n return getGroups(layout).find((group) => group.tabs.includes(tabId));\n}\n\n/**\n * Adds a tab to `options.group` (default `activeGroup`) at `options.index` (default the end),\n * selected unless `options.select` is false. An id already in the layout moves there instead.\n */\nexport function addTab(\n layout: TabGroupsLayout,\n tabId: string,\n options: { group?: string; index?: number; select?: boolean } = {}\n): TabGroupsLayout {\n const target = getGroup(layout, options.group ?? layout.activeGroup);\n if (!target) return layout;\n const select = options.select ?? true;\n const source = findGroupOfTab(layout, tabId);\n if (source && source.id === target.id) {\n const moved = reorderTab(layout, source, tabId, options.index);\n return select ? selectTab(moved, tabId) : moved;\n }\n let root = layout.root;\n let closed = false;\n if (source) ({ root, closed } = detachTab(root, source, tabId));\n root = insertTab(root, target.id, tabId, options.index, select);\n const activeGroup = select\n ? target.id\n : closed\n ? resolveActiveGroup(layout, root, layout.activeGroup)\n : layout.activeGroup;\n return withRoot(layout, root, activeGroup);\n}\n\n/**\n * Closes a tab. When it was its group's last tab the group goes too: its share passes to the\n * previous sibling (else the next), a split left with one child is replaced by that child and\n * `activeGroup` moves to the group that took the space. The last tab of the last group leaves\n * an empty root group.\n */\nexport function removeTab(layout: TabGroupsLayout, tabId: string): TabGroupsLayout {\n const group = findGroupOfTab(layout, tabId);\n if (!group) return layout;\n const { root } = detachTab(layout.root, group, tabId);\n return withRoot(layout, root, resolveActiveGroup(layout, root, layout.activeGroup));\n}\n\n/** Selects a tab in its group and makes that group `activeGroup`. */\nexport function selectTab(layout: TabGroupsLayout, tabId: string): TabGroupsLayout {\n const group = findGroupOfTab(layout, tabId);\n if (!group) return layout;\n const root = group.active === tabId ? layout.root : replaceGroup(layout.root, { ...group, active: tabId });\n return withRoot(layout, root, group.id);\n}\n\n/** Makes an existing group `activeGroup`. */\nexport function setActiveGroup(layout: TabGroupsLayout, groupId: string): TabGroupsLayout {\n return getGroup(layout, groupId) ? withRoot(layout, layout.root, groupId) : layout;\n}\n\nfunction reorderTab(\n layout: TabGroupsLayout,\n group: TabGroupsGroup,\n tabId: string,\n index: number | undefined\n): TabGroupsLayout {\n const from = group.tabs.indexOf(tabId);\n const last = group.tabs.length - 1;\n const to = clamp(index ?? last, 0, last);\n if (to === from) return layout;\n const tabs = group.tabs.slice();\n tabs.splice(from, 1);\n tabs.splice(to, 0, tabId);\n return withRoot(layout, replaceGroup(layout.root, { ...group, tabs }));\n}\n\n/**\n * Moves a tab. Into another group: inserted at `target.index` (its final index; default the end),\n * selected there, and that group becomes `activeGroup`. Within its own group: a reorder, the\n * selection stays. To an edge: a new group there holding the tab (see `TabGroupsEdge`); the own\n * edge of a group with one tab is a no-op. A source group left empty closes as in `removeTab`.\n */\nexport function moveTab(layout: TabGroupsLayout, tabId: string, target: TabGroupsMoveTarget): TabGroupsLayout {\n const source = findGroupOfTab(layout, tabId);\n const destination = getGroup(layout, target.group);\n if (!source || !destination) return layout;\n if (target.edge === undefined) {\n if (destination.id === source.id) return reorderTab(layout, source, tabId, target.index);\n return addTab(layout, tabId, {\n group: destination.id,\n ...(target.index === undefined ? {} : { index: target.index }),\n });\n }\n if (destination.id === source.id && source.tabs.length < 2) return layout;\n const groupId = nextId(layout.root, \"g\");\n const splitId = nextId(layout.root, \"s\");\n const { root } = detachTab(layout.root, source, tabId);\n const group: TabGroupsGroup = { type: \"group\", id: groupId, tabs: [tabId], active: tabId };\n return withRoot(layout, insertBeside(root, destination.id, group, target.edge, splitId), groupId);\n}\n\n/**\n * The keyboard move (Alt+Shift+Arrow): into the neighbouring group at that edge (appended,\n * selected); with no neighbour and at least two tabs in the group, a new group at that edge;\n * otherwise nothing.\n */\nexport function moveTabInDirection(layout: TabGroupsLayout, tabId: string, edge: TabGroupsEdge): TabGroupsLayout {\n const group = findGroupOfTab(layout, tabId);\n if (!group) return layout;\n const neighbour = neighbourGroup(layout, group.id, edge);\n if (neighbour !== undefined) return moveTab(layout, tabId, { group: neighbour });\n return moveTab(layout, tabId, { group: group.id, edge });\n}\n\n/** How much of the root a node covers along `direction`'s axis, in percent: its share of each split of that direction above it. */\nfunction extentAlong(root: TabGroupsNode, path: Path, direction: TabGroupsSplit[\"direction\"]): number {\n let extent = 100;\n let node = root;\n for (const index of path) {\n if (node.type !== \"split\") break;\n if (node.direction === direction) extent *= (node.sizes[index] ?? 0) / (sum(node.sizes) || 1);\n node = itemAt(node.children, index);\n }\n return extent;\n}\n\n/**\n * The least share of a split one of its children needs so that every group inside it keeps `min`\n * (both in percent of that split): `min` for a group, the most any child needs across the axis,\n * and along it the tightest child — a nested split keeps its proportions as it shrinks.\n */\nfunction leastShare(node: TabGroupsNode, direction: TabGroupsSplit[\"direction\"], min: number): number {\n if (node.type === \"group\") return min;\n const parts = node.children.map((child) => leastShare(child, direction, min));\n if (node.direction !== direction) return Math.max(...parts);\n const total = sum(node.sizes) || 1;\n return Math.max(\n ...parts.map((part, index) => {\n const fraction = (node.sizes[index] ?? 0) / total;\n return fraction > 0 ? part / fraction : Number.POSITIVE_INFINITY;\n })\n );\n}\n\n/**\n * Moves separator `index` of a split (between children `index` and `index + 1`) by `delta`\n * percent of the split (±Infinity: to the limit). Only that pair changes and the sizes still sum\n * to 100. Every group on both sides keeps at least `min` percent of the split (default 0) — a\n * nested split as a whole is held to what its groups need — and never so little that the grid\n * could not draw it (a few hundredths of a percent of the root).\n */\nexport function resizeSplit(\n layout: TabGroupsLayout,\n splitId: string,\n index: number,\n delta: number,\n min = 0\n): TabGroupsLayout {\n const path = findPath(layout.root, splitId);\n if (!path) return layout;\n const split = nodeAt(layout.root, path);\n if (split.type !== \"split\" || !Number.isInteger(index) || index < 0 || index >= split.children.length - 1) {\n return layout;\n }\n if (Number.isNaN(delta) || delta === 0) return layout;\n const first = split.sizes[index] ?? 0;\n const second = split.sizes[index + 1] ?? 0;\n const pair = first + second;\n const extent = extentAlong(layout.root, path, split.direction);\n const floor = extent > 0 ? (MIN_EXTENT / extent) * 100 : 0;\n const least = (child: TabGroupsNode): number =>\n Math.min(pair, Math.max(floor, leastShare(child, split.direction, min > 0 ? min : 0)));\n let lowFirst = least(itemAt(split.children, index));\n let lowSecond = least(itemAt(split.children, index + 1));\n // Both cannot have what they need: the pair is shared in proportion to it.\n if (lowFirst + lowSecond > pair) {\n const scale = pair / (lowFirst + lowSecond);\n lowFirst *= scale;\n lowSecond *= scale;\n }\n const next = clamp(first + delta, lowFirst, pair - lowSecond);\n if (next === first) return layout;\n const sizes = split.sizes.slice();\n sizes[index] = next;\n sizes[index + 1] = pair - next;\n return withRoot(layout, replaceAt(layout.root, path, { ...split, sizes }));\n}\n\n/** Walks the tree with each node's rectangle; `onSeparator` runs after the subtree of each child but the last. */\nfunction walkRects(\n node: TabGroupsNode,\n rect: Rect,\n onGroup: (group: TabGroupsGroup, rect: Rect) => void,\n onSeparator?: (split: TabGroupsSplit, index: number, position: number, rect: Rect) => void\n): void {\n if (node.type === \"group\") {\n onGroup(node, rect);\n return;\n }\n const total = sum(node.sizes) || 1;\n const row = node.direction === \"row\";\n const start = row ? rect.x0 : rect.y0;\n const extent = row ? rect.x1 - rect.x0 : rect.y1 - rect.y0;\n let offset = 0;\n node.children.forEach((child, index) => {\n const from = start + (extent * offset) / total;\n offset += node.sizes[index] ?? 0;\n // The last child ends exactly on the parent's edge, so shared boundaries compare equal.\n const to = index === node.children.length - 1 ? (row ? rect.x1 : rect.y1) : start + (extent * offset) / total;\n const childRect = row ? { ...rect, x0: from, x1: to } : { ...rect, y0: from, y1: to };\n walkRects(child, childRect, onGroup, onSeparator);\n if (onSeparator && index < node.children.length - 1) onSeparator(node, index, to, rect);\n });\n}\n\nconst ROOT_RECT: Rect = { x0: 0, y0: 0, x1: 100, y1: 100 };\n\nfunction groupRects(layout: TabGroupsLayout): { group: TabGroupsGroup; rect: Rect }[] {\n const out: { group: TabGroupsGroup; rect: Rect }[] = [];\n walkRects(layout.root, ROOT_RECT, (group, rect) => out.push({ group, rect }));\n return out;\n}\n\n/**\n * The group touching `edge` of the group `groupId` with the largest overlap along that edge\n * (ties: the first in reading order); undefined at the area's outer edge.\n */\nexport function neighbourGroup(layout: TabGroupsLayout, groupId: string, edge: TabGroupsEdge): string | undefined {\n const rects = groupRects(layout);\n const own = rects.find((entry) => entry.group.id === groupId)?.rect;\n if (!own) return undefined;\n const horizontal = edge === \"left\" || edge === \"right\";\n let best: string | undefined;\n let bestOverlap = SNAP;\n rects.forEach(({ group, rect }) => {\n if (group.id === groupId) return;\n const touches =\n edge === \"right\"\n ? Math.abs(rect.x0 - own.x1) < SNAP\n : edge === \"left\"\n ? Math.abs(rect.x1 - own.x0) < SNAP\n : edge === \"bottom\"\n ? Math.abs(rect.y0 - own.y1) < SNAP\n : Math.abs(rect.y1 - own.y0) < SNAP;\n if (!touches) return;\n const overlap = horizontal\n ? Math.min(rect.y1, own.y1) - Math.max(rect.y0, own.y0)\n : Math.min(rect.x1, own.x1) - Math.max(rect.x0, own.x0);\n if (overlap > bestOverlap + SUM_TOLERANCE) {\n best = group.id;\n bestOverlap = overlap;\n }\n });\n return best;\n}\n\n/**\n * The group that takes the space of `groupId` when it closes: the previous sibling's last group\n * in reading order, else the next sibling's first group; undefined for the root group.\n */\nexport function adjacentGroup(layout: TabGroupsLayout, groupId: string): string | undefined {\n const path = findPath(layout.root, groupId);\n if (!path || path.length === 0 || nodeAt(layout.root, path).type !== \"group\") return undefined;\n const parent = nodeAt(layout.root, path.slice(0, -1)) as TabGroupsSplit;\n const index = itemAt(path, path.length - 1);\n const previous = parent.children[index - 1];\n if (previous) return lastGroup(previous).id;\n const next = parent.children[index + 1];\n return next ? firstGroup(next).id : undefined;\n}\n\n/**\n * The drop zone under a point of a group's body (`x`, `y` relative to it, clamped into it): within\n * `edgeSize` (a fraction, default 0.25) of an edge, that edge; the nearest edge wins where bands\n * overlap (ties: top, right, bottom, left); else `center`.\n */\nexport function dropZoneAt(x: number, y: number, width: number, height: number, edgeSize = 0.25): TabGroupsDropZone {\n if (!(width > 0) || !(height > 0)) return \"center\";\n const px = clamp(x, 0, width) / width;\n const py = clamp(y, 0, height) / height;\n const distances: [TabGroupsEdge, number][] = [\n [\"top\", py],\n [\"right\", 1 - px],\n [\"bottom\", 1 - py],\n [\"left\", px],\n ];\n let zone: TabGroupsDropZone = \"center\";\n let nearest = Infinity;\n distances.forEach(([edge, distance]) => {\n // Only a distance smaller by more than the tolerance takes over, so a tie stays with the\n // earlier edge: top, then right, then bottom, then left.\n if (distance < edgeSize && distance < nearest - ZONE_TOLERANCE) {\n zone = edge;\n nearest = distance;\n }\n });\n return zone;\n}\n\n/** Sorted distinct boundaries; one closer than `SNAP` to the line before it joins that line. */\nfunction snapLines(values: number[]): number[] {\n const lines: number[] = [];\n values\n .slice()\n .sort((a, b) => a - b)\n .forEach((value) => {\n const last = lines[lines.length - 1];\n if (last === undefined || value - last >= SNAP) lines.push(value);\n });\n return lines;\n}\n\n/** The index of the line a boundary snapped to: the last line not after it. */\nfunction lineIndex(lines: number[], value: number): number {\n let found = 0;\n lines.forEach((line, index) => {\n if (line <= value + 1e-9) found = index;\n });\n return found;\n}\n\nfunction spans(lines: number[], from: number, to: number): [number, number] {\n const start = lineIndex(lines, from);\n return [start, Math.max(start + 1, lineIndex(lines, to))];\n}\n\nfunction tracks(lines: number[]): number[] {\n return lines.slice(1).map((line, index) => round4(line - itemAt(lines, index)));\n}\n\n/**\n * The grid a layout is drawn on: every group's rectangle in percent of the root, cut into\n * content columns and rows at the distinct boundaries (closer than 0.05 percent snap together).\n * Pure numbers, so the server and the client draw the same tracks.\n */\nexport function computeTabGroupsGrid(layout: TabGroupsLayout): TabGroupsGrid {\n const placed: { group: TabGroupsGroup; rect: Rect }[] = [];\n const cuts: { split: TabGroupsSplit; index: number; position: number; rect: Rect }[] = [];\n walkRects(\n layout.root,\n ROOT_RECT,\n (group, rect) => placed.push({ group, rect }),\n (split, index, position, rect) => cuts.push({ split, index, position, rect })\n );\n const xs = snapLines(placed.flatMap(({ rect }) => [rect.x0, rect.x1]));\n const ys = snapLines(placed.flatMap(({ rect }) => [rect.y0, rect.y1]));\n const columns = tracks(xs);\n const rows = tracks(ys);\n return {\n columns,\n rows,\n groups: placed.map(({ group, rect }) => ({\n id: group.id,\n column: spans(xs, rect.x0, rect.x1),\n row: spans(ys, rect.y0, rect.y1),\n })),\n separators: cuts.map(({ split, index, position, rect }) => {\n const vertical = split.direction === \"row\";\n const count = vertical ? columns.length : rows.length;\n return {\n split: split.id,\n index,\n orientation: vertical ? \"vertical\" : \"horizontal\",\n line: clamp(lineIndex(vertical ? xs : ys, position), 1, Math.max(1, count - 1)),\n span: vertical ? spans(ys, rect.y0, rect.y1) : spans(xs, rect.x0, rect.x1),\n };\n }),\n };\n}\n\nconst SEPARATOR_TRACK = \" var(--smwb-tab-groups-separator-size) \";\n\n/** `grid-template-columns`: a `minmax(0, <w>fr)` per content column, separator tracks between. */\nexport function gridTemplateColumns(grid: TabGroupsGrid): string {\n return grid.columns.map((width) => `minmax(0, ${width}fr)`).join(SEPARATOR_TRACK);\n}\n\n/** `grid-template-rows`: per content row an `auto` header track and a `minmax(0, <h>fr)` body track, separators between. */\nexport function gridTemplateRows(grid: TabGroupsGrid): string {\n return grid.rows.map((height) => `auto minmax(0, ${height}fr)`).join(SEPARATOR_TRACK);\n}\n\n/** The `grid-area` of a group's header (its tab row). */\nexport function groupHeaderArea(group: TabGroupsGrid[\"groups\"][number]): string {\n const [a, b] = group.column;\n const [c] = group.row;\n return `${3 * c + 1} / ${2 * a + 1} / ${3 * c + 2} / ${2 * b}`;\n}\n\n/** The `grid-area` of a group's panels. */\nexport function groupBodyArea(group: TabGroupsGrid[\"groups\"][number]): string {\n const [a, b] = group.column;\n const [c, d] = group.row;\n return `${3 * c + 2} / ${2 * a + 1} / ${3 * d} / ${2 * b}`;\n}\n\n/** The `grid-area` of a separator. */\nexport function separatorArea(separator: TabGroupsGrid[\"separators\"][number]): string {\n const k = separator.line;\n const [from, to] = separator.span;\n return separator.orientation === \"vertical\"\n ? `${3 * from + 1} / ${2 * k} / ${3 * to} / ${2 * k + 1}`\n : `${3 * k} / ${2 * from + 1} / ${3 * k + 1} / ${2 * to}`;\n}\n\n/**\n * The announcement of a change, read from the layout after it: \"Terminal moved to group 2 of 3\",\n * \"… to a new group on the right\", \"… to position 2 of 4\"; \"\" for select, activate, close and resize.\n */\nexport function describeTabGroupsChange(\n change: TabGroupsChange,\n layout: TabGroupsLayout,\n title: (tabId: string) => string,\n labels: TabGroupsLabels = TAB_GROUPS_LABELS\n): string {\n if (change.type === \"split\") return labels.movedToNewGroup(title(change.tab), change.edge);\n if (change.type !== \"move\") return \"\";\n if (change.from === change.to) {\n const group = getGroup(layout, change.to);\n const position = group ? group.tabs.indexOf(change.tab) + 1 : 0;\n return labels.movedInGroup(title(change.tab), position || change.index + 1, group?.tabs.length ?? 0);\n }\n const groups = getGroups(layout);\n const index = groups.findIndex((group) => group.id === change.to);\n return labels.movedToGroup(title(change.tab), index + 1, groups.length);\n}\n"],"names":["TAB_GROUPS_LAYOUT_VERSION","NEW_GROUP_PLACES","TAB_GROUPS_LABELS","index","count","tab","edge","position","SNAP","SUM_TOLERANCE","MIN_EXTENT","MAX_DEPTH","ZONE_TOLERANCE","itemAt","items","item","clamp","value","min","max","round4","sum","values","total","collectGroups","node","out","child","firstGroup","lastGroup","forEachNode","visit","findPath","id","path","found","nodeAt","root","replaceAt","replacement","split","rest","children","getGroup","layout","groupId","getGroups","group","replaceGroup","withRoot","activeGroup","resolveActiveGroup","before","wanted","exists","heir","adjacentGroup","nextId","prefix","match","normalize","changed","sizes","size","next","grandchild","inner","removeAt","parentPath","parent","_","i","detachTab","tabId","tabs","active","insertTab","select","insertBeside","targetId","splitId","direction","half","at","target","createTabGroupsLayout","options","unique","isRecord","readNode","raw","seen","depth","rawChildren","rawSizes","validSizes","scale","rawChild","pruneEmpty","keepDrawable","width","height","row","extent","floor","short","spare","share","assignIds","used","missing","counters","rebuild","parseTabGroupsLayout","parsed","pruned","groups","syncTabs","removeTab","findGroupOfTab","addTab","source","moved","reorderTab","selectTab","closed","setActiveGroup","from","last","to","moveTab","destination","moveTabInDirection","neighbour","neighbourGroup","extentAlong","leastShare","parts","part","fraction","resizeSplit","delta","first","second","pair","least","lowFirst","lowSecond","walkRects","rect","onGroup","onSeparator","start","offset","childRect","ROOT_RECT","groupRects","rects","own","entry","horizontal","best","bestOverlap","overlap","previous","dropZoneAt","x","y","edgeSize","px","py","distances","zone","nearest","distance","snapLines","lines","a","b","lineIndex","line","spans","tracks","computeTabGroupsGrid","placed","cuts","xs","ys","columns","rows","vertical","SEPARATOR_TRACK","gridTemplateColumns","grid","gridTemplateRows","groupHeaderArea","c","groupBodyArea","d","separatorArea","separator","k","describeTabGroupsChange","change","title","labels"],"mappings":"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"}