@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
@@ -1,35 +1,36 @@
1
- import { Show, mergeProps, splitProps } from "solid-js";
1
+ import {
2
+ Show,
3
+ children,
4
+ createComputed,
5
+ createMemo,
6
+ createSignal,
7
+ createUniqueId,
8
+ mergeProps,
9
+ onCleanup,
10
+ splitProps
11
+ } from "solid-js";
2
12
  import cn from "clsx";
3
13
  import { Icon } from "../../base/icon";
4
14
  import { mergeRefs } from "../../../primitives/mergeRefs";
5
- const INTERACTIVE = [
6
- "a[href]",
7
- "button",
8
- "input",
9
- "select",
10
- "textarea",
11
- "label",
12
- "summary",
13
- "[tabindex]",
14
- "[contenteditable]:not([contenteditable='false'])",
15
- ...[
16
- "button",
17
- "link",
18
- "checkbox",
19
- "radio",
20
- "switch",
21
- "textbox",
22
- "searchbox",
23
- "combobox",
24
- "spinbutton",
25
- "slider",
26
- "menuitem",
27
- "menuitemcheckbox",
28
- "menuitemradio",
29
- "option",
30
- "tab"
31
- ].map((role) => `[role='${role}']`)
32
- ].join(",");
15
+ import { isOwnClick } from "../../../utils/ownClick";
16
+ import { cellRowSpan, cellSpan, textOf, useInTableHead, useTableLabels, useTableRow } from "./tableColumns";
17
+ function useColumnLabel(element, span, rowSpan, text) {
18
+ const table = useTableLabels();
19
+ const row = useTableRow();
20
+ const inHead = useInTableHead();
21
+ const place = row?.registerCell(element, span, rowSpan);
22
+ if (!table || !place || !inHead) return;
23
+ const owner = /* @__PURE__ */ Symbol();
24
+ const label = createMemo(() => text() || void 0);
25
+ createComputed(() => {
26
+ if (!table.stacked() || span() !== 1) return;
27
+ const column = place.column();
28
+ const at = place.row();
29
+ if (column < 0) return;
30
+ table.labels.set(column, at, owner, label());
31
+ onCleanup(() => table.labels.remove(column, at, owner));
32
+ });
33
+ }
33
34
  function TableHeadCell(props) {
34
35
  const merged = mergeProps({ cellAlign: "left" }, props);
35
36
  const [local, rest] = splitProps(merged, [
@@ -41,8 +42,19 @@ function TableHeadCell(props) {
41
42
  "sortable",
42
43
  "sortDirection",
43
44
  "onSort",
45
+ "actions",
46
+ "label",
44
47
  "ref"
45
48
  ]);
49
+ const content = children(() => local.children);
50
+ const [element, setElement] = createSignal();
51
+ useColumnLabel(
52
+ element,
53
+ () => cellSpan(rest.colSpan ?? rest.colspan),
54
+ () => cellRowSpan(rest.rowSpan ?? rest.rowspan),
55
+ () => local.label ?? textOf(content())
56
+ );
57
+ const actions = children(() => local.actions);
46
58
  const direction = () => local.sortDirection !== void 0 ? local.sortDirection : local.isSortedByAsc ? "asc" : local.isSortedByDesc ? "desc" : false;
47
59
  const ariaSort = () => local.sortable ? direction() === "asc" ? "ascending" : direction() === "desc" ? "descending" : "none" : void 0;
48
60
  const iconName = () => direction() === "asc" ? "expand_more" : direction() === "desc" ? "expand_less" : "unfold_more";
@@ -54,13 +66,15 @@ function TableHeadCell(props) {
54
66
  }
55
67
  };
56
68
  const onClick = (event) => {
57
- if (!local.sortable || event.defaultPrevented) return;
58
- if (event.target?.closest(INTERACTIVE) !== event.currentTarget) return;
69
+ if (!local.sortable || !isOwnClick(event)) return;
59
70
  local.onSort?.();
60
71
  };
72
+ const labelId = `${createUniqueId()}-label`;
73
+ const labelled = () => !!actions() && rest["aria-label"] == null && rest["aria-labelledby"] == null;
61
74
  return <th
62
75
  {...rest}
63
- ref={mergeRefs(local.ref)}
76
+ ref={mergeRefs(local.ref, setElement)}
77
+ aria-labelledby={labelled() ? labelId : rest["aria-labelledby"]}
64
78
  aria-sort={ariaSort()}
65
79
  class={cn("smwb-table__cell", "smwb-head-cell", local.class, {
66
80
  [`smwb-align_${local.cellAlign}`]: !!local.cellAlign,
@@ -69,17 +83,21 @@ function TableHeadCell(props) {
69
83
  })}
70
84
  >
71
85
  <span
86
+ id={labelled() ? labelId : void 0}
72
87
  class="smwb-head-cell__content"
73
88
  onClick={onClick}
74
89
  onKeyDown={onKeyDown}
75
90
  role={local.sortable ? "button" : void 0}
76
91
  tabindex={local.sortable ? 0 : void 0}
77
92
  >
78
- {local.children}
93
+ {content()}
79
94
  <Show when={local.sortable}>
80
95
  <Icon class="smwb-head-cell__icon" name={iconName()} size={18} weight={800} />
81
96
  </Show>
82
97
  </span>
98
+ <Show when={actions()}>
99
+ <div class="smwb-head-cell__actions">{actions()}</div>
100
+ </Show>
83
101
  </th>;
84
102
  }
85
103
  var tableHeadCell_default = TableHeadCell;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/dataDisplay/table/tableHeadCell.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport type SortDirection = \"asc\" | \"desc\" | false;\n\nexport interface TableHeadCellProps extends JSX.ThHTMLAttributes<HTMLTableCellElement> {\n cellAlign?: \"left\" | \"right\" | \"center\";\n /** @deprecated use `sortDirection=\"desc\"`. */\n isSortedByDesc?: boolean;\n /** @deprecated use `sortDirection=\"asc\"`. */\n isSortedByAsc?: boolean;\n /**\n * Enables the interactive sort affordance with keyboard/aria support.\n *\n * The children sit inside the sort control, and controls among them keep\n * their own input: Enter and Space sort only while the sort control itself\n * has focus, and a click sorts unless it lands in a nested control (input,\n * button, link, label, anything focusable) or in a portal. Content that is not\n * a control, such as click-to-edit text, keeps its click from sorting by\n * calling `preventDefault()` on it. A nested control's name, or its value,\n * becomes part of the sort control's accessible name.\n */\n sortable?: boolean;\n /** Current sort direction for this column. */\n sortDirection?: SortDirection;\n /** Invoked when the user activates the sort control. */\n onSort?: () => void;\n ref?: Ref<HTMLTableCellElement>;\n}\n\n/**\n * Whatever takes a click of its own inside the sort control. The control\n * matches too (`role=\"button\"`), so it is the nearest match for a click on the\n * header's text or marker, and only then does the click sort.\n */\nconst INTERACTIVE = [\n \"a[href]\",\n \"button\",\n \"input\",\n \"select\",\n \"textarea\",\n \"label\",\n \"summary\",\n \"[tabindex]\",\n \"[contenteditable]:not([contenteditable='false'])\",\n ...[\n \"button\",\n \"link\",\n \"checkbox\",\n \"radio\",\n \"switch\",\n \"textbox\",\n \"searchbox\",\n \"combobox\",\n \"spinbutton\",\n \"slider\",\n \"menuitem\",\n \"menuitemcheckbox\",\n \"menuitemradio\",\n \"option\",\n \"tab\",\n ].map((role) => `[role='${role}']`),\n].join(\",\");\n\nexport function TableHeadCell(props: ParentProps<TableHeadCellProps>): JSX.Element {\n const merged = mergeProps({ cellAlign: \"left\" as const }, props);\n const [local, rest] = splitProps(merged, [\n \"children\",\n \"class\",\n \"cellAlign\",\n \"isSortedByAsc\",\n \"isSortedByDesc\",\n \"sortable\",\n \"sortDirection\",\n \"onSort\",\n \"ref\",\n ]);\n\n const direction = (): SortDirection =>\n local.sortDirection !== undefined ? local.sortDirection : local.isSortedByAsc ? \"asc\" : local.isSortedByDesc ? \"desc\" : false;\n\n const ariaSort = (): \"ascending\" | \"descending\" | \"none\" | undefined =>\n local.sortable ? (direction() === \"asc\" ? \"ascending\" : direction() === \"desc\" ? \"descending\" : \"none\") : undefined;\n\n /**\n * A sortable column always shows a marker: the current direction once sorted,\n * and `unfold_more` before that — otherwise nothing tells the reader the column\n * can be sorted at all. A cell that is not sortable shows nothing; it used to\n * render an `<Icon name=\"\">`, which reserved a gap and warned about a missing\n * icon under `source: \"smwb\"`.\n */\n const iconName = (): string =>\n direction() === \"asc\" ? \"expand_more\" : direction() === \"desc\" ? \"expand_less\" : \"unfold_more\";\n\n // Solid binds event handlers once, so both are always attached and check\n // `sortable` themselves: a cell can turn sortable, or stop, after it renders.\n\n // Keys typed into an input or pressed on a button inside bubble up here too;\n // only the control's own keys sort.\n const onKeyDown: JSX.EventHandler<HTMLSpanElement, KeyboardEvent> = (event) => {\n if (!local.sortable || event.target !== event.currentTarget) return;\n if (local.onSort && (event.key === \"Enter\" || event.key === \" \")) {\n event.preventDefault();\n local.onSort();\n }\n };\n\n // A click sorts only when the control is the nearest thing that takes it. A\n // click in a Portal rendered inside fails that too: Solid delivers it here,\n // though it landed outside the control.\n const onClick: JSX.EventHandler<HTMLSpanElement, MouseEvent> = (event) => {\n if (!local.sortable || event.defaultPrevented) return;\n if ((event.target as Element | null)?.closest(INTERACTIVE) !== event.currentTarget) return;\n local.onSort?.();\n };\n\n return (\n <th\n {...rest}\n ref={mergeRefs(local.ref)}\n aria-sort={ariaSort()}\n class={cn(\"smwb-table__cell\", \"smwb-head-cell\", local.class, {\n [`smwb-align_${local.cellAlign}`]: !!local.cellAlign,\n \"smwb-head-cell_sortable\": local.sortable,\n \"smwb-head-cell_sorted\": !!local.sortable && direction() !== false,\n })}\n >\n <span\n class=\"smwb-head-cell__content\"\n onClick={onClick}\n onKeyDown={onKeyDown}\n role={local.sortable ? \"button\" : undefined}\n tabindex={local.sortable ? 0 : undefined}\n >\n {local.children}\n <Show when={local.sortable}>\n <Icon class=\"smwb-head-cell__icon\" name={iconName()} size={18} weight={800} />\n </Show>\n </span>\n </th>\n );\n}\n\nexport default TableHeadCell;\n"],"mappings":"AAAA,SAAqC,MAAM,YAAY,kBAAkB;AACzE,OAAO,QAAQ;AACf,SAAS,YAAY;AACrB,SAAS,iBAA2B;AAkCpC,MAAM,cAAc;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,IAAI,CAAC,SAAS,UAAU,IAAI,IAAI;AACpC,EAAE,KAAK,GAAG;AAEH,SAAS,cAAc,OAAqD;AACjF,QAAM,SAAS,WAAW,EAAE,WAAW,OAAgB,GAAG,KAAK;AAC/D,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,YAAY,MAChB,MAAM,kBAAkB,SAAY,MAAM,gBAAgB,MAAM,gBAAgB,QAAQ,MAAM,iBAAiB,SAAS;AAE1H,QAAM,WAAW,MACf,MAAM,WAAY,UAAU,MAAM,QAAQ,cAAc,UAAU,MAAM,SAAS,eAAe,SAAU;AAS5G,QAAM,WAAW,MACf,UAAU,MAAM,QAAQ,gBAAgB,UAAU,MAAM,SAAS,gBAAgB;AAOnF,QAAM,YAA8D,CAAC,UAAU;AAC7E,QAAI,CAAC,MAAM,YAAY,MAAM,WAAW,MAAM,cAAe;AAC7D,QAAI,MAAM,WAAW,MAAM,QAAQ,WAAW,MAAM,QAAQ,MAAM;AAChE,YAAM,eAAe;AACrB,YAAM,OAAO;AAAA,IACf;AAAA,EACF;AAKA,QAAM,UAAyD,CAAC,UAAU;AACxE,QAAI,CAAC,MAAM,YAAY,MAAM,iBAAkB;AAC/C,QAAK,MAAM,QAA2B,QAAQ,WAAW,MAAM,MAAM,cAAe;AACpF,UAAM,SAAS;AAAA,EACjB;AAEA,SACE,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,WAAW,SAAS;AAAA,IACpB,OAAO,GAAG,oBAAoB,kBAAkB,MAAM,OAAO;AAAA,MAC3D,CAAC,cAAc,MAAM,SAAS,EAAE,GAAG,CAAC,CAAC,MAAM;AAAA,MAC3C,2BAA2B,MAAM;AAAA,MACjC,yBAAyB,CAAC,CAAC,MAAM,YAAY,UAAU,MAAM;AAAA,IAC/D,CAAC;AAAA,GACF;AAAA,MACC,CAAC;AAAA,IACC,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW;AAAA,IACX,MAAM,MAAM,WAAW,WAAW;AAAA,IAClC,UAAU,MAAM,WAAW,IAAI;AAAA,GAChC;AAAA,SACE,MAAM,SAAS;AAAA,QAChB,CAAC,KAAK,MAAM,MAAM,UAAU;AAAA,UAC1B,CAAC,KAAK,MAAM,uBAAuB,MAAM,SAAS,GAAG,MAAM,IAAI,QAAQ,KAAK,EAAE;AAAA,QAChF,EAFC,KAEM;AAAA,MACT,EAXC,KAWM;AAAA,IACT,EAtBC;AAwBL;AAEA,IAAO,wBAAQ;","names":[],"file":"tableHeadCell.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/dataDisplay/table/tableHeadCell.tsx"],"sourcesContent":["import {\n type Accessor,\n type JSX,\n type ParentProps,\n Show,\n children,\n createComputed,\n createMemo,\n createSignal,\n createUniqueId,\n mergeProps,\n onCleanup,\n splitProps,\n} from \"solid-js\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { isOwnClick } from \"../../../utils/ownClick\";\nimport { cellRowSpan, cellSpan, textOf, useInTableHead, useTableLabels, useTableRow } from \"./tableColumns\";\n\nexport type SortDirection = \"asc\" | \"desc\" | false;\n\nexport interface TableHeadCellProps extends JSX.ThHTMLAttributes<HTMLTableCellElement> {\n cellAlign?: \"left\" | \"right\" | \"center\";\n /** @deprecated use `sortDirection=\"desc\"`. */\n isSortedByDesc?: boolean;\n /** @deprecated use `sortDirection=\"asc\"`. */\n isSortedByAsc?: boolean;\n /**\n * Enables the interactive sort affordance with keyboard/aria support.\n *\n * The children sit inside the sort control, and controls among them keep\n * their own input: Enter and Space sort only while the sort control itself\n * has focus, and a click sorts unless it lands in a nested control (input,\n * button, link, label, anything focusable) or in a portal. Content that is not\n * a control, such as click-to-edit text, keeps its click from sorting by\n * calling `preventDefault()` on it. A nested control's name, or its value,\n * becomes part of the sort control's accessible name: put controls in\n * `actions` instead.\n */\n sortable?: boolean;\n /** Current sort direction for this column. */\n sortDirection?: SortDirection;\n /** Invoked when the user activates the sort control. */\n onSort?: () => void;\n /**\n * The column's controls — a filter field, a menu button, a column resizer —\n * drawn after the sort control, outside it. Their names and values stay out\n * of the sort control's accessible name, and their keys and clicks never\n * reach it. Rendered whether or not the cell is sortable.\n *\n * The column header is then named after the children alone: the cell's\n * `aria-labelledby` points at the sort control, unless the cell is given\n * `aria-label` or `aria-labelledby`. Named from its content, the header would\n * take in the controls' names and values too.\n */\n actions?: JSX.Element;\n /**\n * The column's name for its body cells while the table stacks rows as cards\n * (`Table stackBelow`). Without it, the text of the children is the name; give\n * `label` where they hold no text of their own (an icon) or more than the\n * name, or where their text changes inside markup: the text of markup is read\n * when it is created. An empty `label` leaves the column's cells unlabelled, so\n * they fill the card's width.\n */\n label?: string;\n ref?: Ref<HTMLTableCellElement>;\n}\n\n/**\n * A head cell of a stacked table labels its column, for its own head row: the\n * lowest row's label wins. It labels as soon as it is created: the body cells,\n * created after it, read the label at once. In a body row (a row header) it\n * labels nothing, but still takes its column, as the cells after it count it.\n */\nfunction useColumnLabel(\n element: Accessor<Element | undefined>,\n span: Accessor<number>,\n rowSpan: Accessor<number>,\n text: Accessor<string>\n): void {\n const table = useTableLabels();\n const row = useTableRow();\n const inHead = useInTableHead();\n const place = row?.registerCell(element, span, rowSpan);\n if (!table || !place || !inHead) return;\n const owner = Symbol();\n const label = createMemo(() => text() || undefined);\n createComputed(() => {\n if (!table.stacked() || span() !== 1) return;\n const column = place.column();\n const at = place.row();\n if (column < 0) return;\n table.labels.set(column, at, owner, label());\n onCleanup(() => table.labels.remove(column, at, owner));\n });\n}\n\nexport function TableHeadCell(props: ParentProps<TableHeadCellProps>): JSX.Element {\n const merged = mergeProps({ cellAlign: \"left\" as const }, props);\n const [local, rest] = splitProps(merged, [\n \"children\",\n \"class\",\n \"cellAlign\",\n \"isSortedByAsc\",\n \"isSortedByDesc\",\n \"sortable\",\n \"sortDirection\",\n \"onSort\",\n \"actions\",\n \"label\",\n \"ref\",\n ]);\n\n // Read once: the content is drawn, and its text names the column.\n const content = children(() => local.children);\n const [element, setElement] = createSignal<HTMLTableCellElement>();\n useColumnLabel(\n element,\n () => cellSpan(rest.colSpan ?? rest.colspan),\n () => cellRowSpan(rest.rowSpan ?? rest.rowspan),\n () => local.label ?? textOf(content())\n );\n\n // Read once: markup passed as a prop is created anew on every read, and\n // during hydration a copy the server never rendered has no DOM node.\n const actions = children(() => local.actions);\n\n const direction = (): SortDirection =>\n local.sortDirection !== undefined ? local.sortDirection : local.isSortedByAsc ? \"asc\" : local.isSortedByDesc ? \"desc\" : false;\n\n const ariaSort = (): \"ascending\" | \"descending\" | \"none\" | undefined =>\n local.sortable ? (direction() === \"asc\" ? \"ascending\" : direction() === \"desc\" ? \"descending\" : \"none\") : undefined;\n\n /**\n * A sortable column always shows a marker: the current direction once sorted,\n * and `unfold_more` before that — otherwise nothing tells the reader the column\n * can be sorted at all. A cell that is not sortable shows nothing; it used to\n * render an `<Icon name=\"\">`, which reserved a gap and warned about a missing\n * icon under `source: \"smwb\"`.\n */\n const iconName = (): string =>\n direction() === \"asc\" ? \"expand_more\" : direction() === \"desc\" ? \"expand_less\" : \"unfold_more\";\n\n // Solid binds event handlers once, so both are always attached and check\n // `sortable` themselves: a cell can turn sortable, or stop, after it renders.\n\n // Keys typed into an input or pressed on a button inside bubble up here too;\n // only the control's own keys sort.\n const onKeyDown: JSX.EventHandler<HTMLSpanElement, KeyboardEvent> = (event) => {\n if (!local.sortable || event.target !== event.currentTarget) return;\n if (local.onSort && (event.key === \"Enter\" || event.key === \" \")) {\n event.preventDefault();\n local.onSort();\n }\n };\n\n // A click sorts only when the control is the nearest thing that takes it. A\n // click in a Portal rendered inside fails that too: Solid delivers it here,\n // though it landed outside the control.\n const onClick: JSX.EventHandler<HTMLSpanElement, MouseEvent> = (event) => {\n if (!local.sortable || !isOwnClick(event)) return;\n local.onSort?.();\n };\n\n // With actions drawn, the column header is named after the content of its\n // sort control, not after the whole cell: the controls' names and the text\n // typed into them would join the header's name.\n const labelId = `${createUniqueId()}-label`;\n const labelled = (): boolean => !!actions() && rest[\"aria-label\"] == null && rest[\"aria-labelledby\"] == null;\n\n return (\n <th\n {...rest}\n ref={mergeRefs(local.ref, setElement)}\n aria-labelledby={labelled() ? labelId : rest[\"aria-labelledby\"]}\n aria-sort={ariaSort()}\n class={cn(\"smwb-table__cell\", \"smwb-head-cell\", local.class, {\n [`smwb-align_${local.cellAlign}`]: !!local.cellAlign,\n \"smwb-head-cell_sortable\": local.sortable,\n \"smwb-head-cell_sorted\": !!local.sortable && direction() !== false,\n })}\n >\n <span\n id={labelled() ? labelId : undefined}\n class=\"smwb-head-cell__content\"\n onClick={onClick}\n onKeyDown={onKeyDown}\n role={local.sortable ? \"button\" : undefined}\n tabindex={local.sortable ? 0 : undefined}\n >\n {content()}\n <Show when={local.sortable}>\n <Icon class=\"smwb-head-cell__icon\" name={iconName()} size={18} weight={800} />\n </Show>\n </span>\n <Show when={actions()}>\n <div class=\"smwb-head-cell__actions\">{actions()}</div>\n </Show>\n </th>\n );\n}\n\nexport default TableHeadCell;\n"],"mappings":"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","names":[],"file":"tableHeadCell.jsx"}
@@ -0,0 +1,140 @@
1
+ import { LEGACY_REFERENCES, NAMED_REFERENCES } from "./tableEntities";
2
+ let named;
3
+ let legacy;
4
+ function references() {
5
+ if (!named || !legacy) {
6
+ named = new Map(
7
+ NAMED_REFERENCES.split(",").map((entry) => {
8
+ const [name, points] = entry.split(":");
9
+ return [name, String.fromCodePoint(...points.split(".").map((point) => parseInt(point, 36)))];
10
+ })
11
+ );
12
+ legacy = new Set(LEGACY_REFERENCES.split(","));
13
+ }
14
+ return { named, legacy };
15
+ }
16
+ const WINDOWS_1252 = {
17
+ 128: 8364,
18
+ 130: 8218,
19
+ 131: 402,
20
+ 132: 8222,
21
+ 133: 8230,
22
+ 134: 8224,
23
+ 135: 8225,
24
+ 136: 710,
25
+ 137: 8240,
26
+ 138: 352,
27
+ 139: 8249,
28
+ 140: 338,
29
+ 142: 381,
30
+ 145: 8216,
31
+ 146: 8217,
32
+ 147: 8220,
33
+ 148: 8221,
34
+ 149: 8226,
35
+ 150: 8211,
36
+ 151: 8212,
37
+ 152: 732,
38
+ 153: 8482,
39
+ 154: 353,
40
+ 155: 8250,
41
+ 156: 339,
42
+ 158: 382,
43
+ 159: 376
44
+ };
45
+ function fromNumber(value) {
46
+ if (value === 0 || value > 1114111 || value >= 55296 && value <= 57343) return "\uFFFD";
47
+ return String.fromCodePoint(WINDOWS_1252[value] ?? value);
48
+ }
49
+ function decode(text) {
50
+ return text.replace(/&(?:#([0-9]+);?|#[xX]([0-9a-fA-F]+);?|([A-Za-z0-9]+)(;?))/g, (match, dec, hex, name, semi) => {
51
+ if (dec !== void 0) return fromNumber(Number.parseInt(dec, 10));
52
+ if (hex !== void 0) return fromNumber(Number.parseInt(hex, 16));
53
+ const refs = references();
54
+ const word = name;
55
+ if (semi) {
56
+ const char = refs.named.get(word);
57
+ if (char !== void 0) return char;
58
+ }
59
+ for (let length = Math.min(word.length, 6); length > 1; length--) {
60
+ const prefix = word.slice(0, length);
61
+ if (refs.legacy.has(prefix)) return refs.named.get(prefix) + match.slice(1 + length);
62
+ }
63
+ return match;
64
+ });
65
+ }
66
+ const RAW_TEXT = /* @__PURE__ */ new Set(["script", "style", "xmp", "iframe", "noembed", "noframes"]);
67
+ const ESCAPABLE_RAW_TEXT = /* @__PURE__ */ new Set(["textarea", "title"]);
68
+ function htmlText(html) {
69
+ let text = "";
70
+ let at = 0;
71
+ let lower;
72
+ while (at < html.length) {
73
+ const open = html.indexOf("<", at);
74
+ if (open < 0) break;
75
+ const next = html[open + 1] ?? "";
76
+ let end;
77
+ if (html.startsWith("<!--", open)) {
78
+ if (html.startsWith(">", open + 4)) end = open + 5;
79
+ else if (html.startsWith("->", open + 4)) end = open + 6;
80
+ else {
81
+ const close = html.indexOf("-->", open + 4);
82
+ end = close < 0 ? html.length : close + 3;
83
+ }
84
+ } else if (/[A-Za-z]/.test(next)) {
85
+ end = tagEnd(html, open + 1);
86
+ const name = /^[A-Za-z][^\s/>]*/.exec(html.slice(open + 1, open + 10))?.[0].toLowerCase() ?? "";
87
+ const raw = RAW_TEXT.has(name);
88
+ if (raw || ESCAPABLE_RAW_TEXT.has(name)) {
89
+ lower ?? (lower = html.toLowerCase());
90
+ const close = endTag(lower, name, end);
91
+ const content = html.slice(end, close);
92
+ text += decode(html.slice(at, open)) + (raw ? content : decode(content));
93
+ at = close < html.length ? tagEnd(html, close + 1) : close;
94
+ continue;
95
+ }
96
+ } else if (next === "/") {
97
+ end = tagEnd(html, open + 1);
98
+ } else if (next === "!" || next === "?") {
99
+ const close = html.indexOf(">", open);
100
+ end = close < 0 ? html.length : close + 1;
101
+ } else {
102
+ text += decode(html.slice(at, open + 1));
103
+ at = open + 1;
104
+ continue;
105
+ }
106
+ text += decode(html.slice(at, open));
107
+ at = end;
108
+ }
109
+ return text + decode(html.slice(at));
110
+ }
111
+ function endTag(lower, name, from) {
112
+ for (let at = lower.indexOf(`</${name}`, from); at >= 0; at = lower.indexOf(`</${name}`, at + 1)) {
113
+ const after = lower[at + 2 + name.length];
114
+ if (after === void 0 || /[\s/>]/.test(after)) return at;
115
+ }
116
+ return lower.length;
117
+ }
118
+ function tagEnd(html, from) {
119
+ let at = from;
120
+ let afterEquals = false;
121
+ while (at < html.length) {
122
+ const char = html[at];
123
+ if (char === ">") return at + 1;
124
+ if (afterEquals && (char === '"' || char === "'")) {
125
+ const close = html.indexOf(char, at + 1);
126
+ if (close < 0) return html.length;
127
+ at = close + 1;
128
+ afterEquals = false;
129
+ continue;
130
+ }
131
+ if (char === "=") afterEquals = true;
132
+ else if (!/\s/.test(char)) afterEquals = false;
133
+ at++;
134
+ }
135
+ return html.length;
136
+ }
137
+ export {
138
+ htmlText
139
+ };
140
+ //# sourceMappingURL=tableHtmlText.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/dataDisplay/table/tableHtmlText.ts"],
4
+ "sourcesContent": ["import { LEGACY_REFERENCES, NAMED_REFERENCES } from \"./tableEntities\";\n\nlet named: Map<string, string> | undefined;\nlet legacy: Set<string> | undefined;\n\nfunction references(): { named: Map<string, string>; legacy: Set<string> } {\n if (!named || !legacy) {\n named = new Map(\n NAMED_REFERENCES.split(\",\").map((entry) => {\n const [name, points] = entry.split(\":\") as [string, string];\n return [name, String.fromCodePoint(...points.split(\".\").map((point) => parseInt(point, 36)))];\n })\n );\n legacy = new Set(LEGACY_REFERENCES.split(\",\"));\n }\n return { named, legacy };\n}\n\n// Numeric references to C1 controls that browsers read as windows-1252.\nconst WINDOWS_1252: Record<number, number> = {\n 0x80: 0x20ac,\n 0x82: 0x201a,\n 0x83: 0x0192,\n 0x84: 0x201e,\n 0x85: 0x2026,\n 0x86: 0x2020,\n 0x87: 0x2021,\n 0x88: 0x02c6,\n 0x89: 0x2030,\n 0x8a: 0x0160,\n 0x8b: 0x2039,\n 0x8c: 0x0152,\n 0x8e: 0x017d,\n 0x91: 0x2018,\n 0x92: 0x2019,\n 0x93: 0x201c,\n 0x94: 0x201d,\n 0x95: 0x2022,\n 0x96: 0x2013,\n 0x97: 0x2014,\n 0x98: 0x02dc,\n 0x99: 0x2122,\n 0x9a: 0x0161,\n 0x9b: 0x203a,\n 0x9c: 0x0153,\n 0x9e: 0x017e,\n 0x9f: 0x0178,\n};\n\nfunction fromNumber(value: number): string {\n if (value === 0 || value > 0x10ffff || (value >= 0xd800 && value <= 0xdfff)) return \"\uFFFD\";\n return String.fromCodePoint(WINDOWS_1252[value] ?? value);\n}\n\n/** Reads the character references of HTML text as a browser does. */\nfunction decode(text: string): string {\n return text.replace(/&(?:#([0-9]+);?|#[xX]([0-9a-fA-F]+);?|([A-Za-z0-9]+)(;?))/g, (match, dec, hex, name, semi) => {\n if (dec !== undefined) return fromNumber(Number.parseInt(dec as string, 10));\n if (hex !== undefined) return fromNumber(Number.parseInt(hex as string, 16));\n const refs = references();\n const word = name as string;\n if (semi) {\n const char = refs.named.get(word);\n if (char !== undefined) return char;\n }\n // Without a \";\" (or with an unknown name before it), the longest name that\n // counts without one is read, and the rest stays as written.\n for (let length = Math.min(word.length, 6); length > 1; length--) {\n const prefix = word.slice(0, length);\n if (refs.legacy.has(prefix)) return refs.named.get(prefix)! + match.slice(1 + length);\n }\n return match;\n });\n}\n\n// Elements whose content is text up to their end tag: kept as written (raw\n// text), or with its character references decoded (escapable raw text).\nconst RAW_TEXT = new Set([\"script\", \"style\", \"xmp\", \"iframe\", \"noembed\", \"noframes\"]);\nconst ESCAPABLE_RAW_TEXT = new Set([\"textarea\", \"title\"]);\n\n/**\n * The text of a piece of HTML, as `textContent` reads it once a browser has\n * parsed it: tags and comments dropped (`>` inside a quoted attribute value\n * included), and character references, named or numeric, decoded. The content\n * of `<script>`, `<style>`, `<textarea>`, `<title>` and the like is text up to\n * the end tag, as the browser reads it.\n */\nexport function htmlText(html: string): string {\n let text = \"\";\n let at = 0;\n let lower: string | undefined;\n while (at < html.length) {\n const open = html.indexOf(\"<\", at);\n if (open < 0) break;\n const next = html[open + 1] ?? \"\";\n let end: number;\n if (html.startsWith(\"<!--\", open)) {\n if (html.startsWith(\">\", open + 4)) end = open + 5;\n else if (html.startsWith(\"->\", open + 4)) end = open + 6;\n else {\n const close = html.indexOf(\"-->\", open + 4);\n end = close < 0 ? html.length : close + 3;\n }\n } else if (/[A-Za-z]/.test(next)) {\n end = tagEnd(html, open + 1);\n const name = /^[A-Za-z][^\\s/>]*/.exec(html.slice(open + 1, open + 10))?.[0].toLowerCase() ?? \"\";\n const raw = RAW_TEXT.has(name);\n if (raw || ESCAPABLE_RAW_TEXT.has(name)) {\n lower ??= html.toLowerCase();\n const close = endTag(lower, name, end);\n const content = html.slice(end, close);\n text += decode(html.slice(at, open)) + (raw ? content : decode(content));\n at = close < html.length ? tagEnd(html, close + 1) : close;\n continue;\n }\n } else if (next === \"/\") {\n end = tagEnd(html, open + 1);\n } else if (next === \"!\" || next === \"?\") {\n const close = html.indexOf(\">\", open);\n end = close < 0 ? html.length : close + 1;\n } else {\n // A \"<\" that starts no tag is text.\n text += decode(html.slice(at, open + 1));\n at = open + 1;\n continue;\n }\n text += decode(html.slice(at, open));\n at = end;\n }\n return text + decode(html.slice(at));\n}\n\n/** Where the end tag of a raw-text element starts, in the lower-cased markup; its length if there is none. */\nfunction endTag(lower: string, name: string, from: number): number {\n for (let at = lower.indexOf(`</${name}`, from); at >= 0; at = lower.indexOf(`</${name}`, at + 1)) {\n const after = lower[at + 2 + name.length];\n if (after === undefined || /[\\s/>]/.test(after)) return at;\n }\n return lower.length;\n}\n\n/** Where a tag that starts at `from` ends: after its \">\", skipping quoted attribute values. */\nfunction tagEnd(html: string, from: number): number {\n let at = from;\n let afterEquals = false;\n while (at < html.length) {\n const char = html[at]!;\n if (char === \">\") return at + 1;\n if (afterEquals && (char === '\"' || char === \"'\")) {\n const close = html.indexOf(char, at + 1);\n if (close < 0) return html.length;\n at = close + 1;\n afterEquals = false;\n continue;\n }\n if (char === \"=\") afterEquals = true;\n else if (!/\\s/.test(char)) afterEquals = false;\n at++;\n }\n return html.length;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,12 +1,16 @@
1
- import { splitProps } from "solid-js";
1
+ import { createSignal, splitProps } from "solid-js";
2
2
  import cn from "clsx";
3
3
  import { mergeRefs } from "../../../primitives/mergeRefs";
4
+ import { ChildElements, TableRowContext, createRowColumns, useTableLabels, useTableSection } from "./tableColumns";
4
5
  function TableRow(props) {
5
- const [local, rest] = splitProps(props, ["children", "class", "selected", "expanded", "ref"]);
6
+ const [local, rest] = splitProps(props, ["children", "class", "selected", "expanded", "ref", "data-testid"]);
7
+ const table = useTableLabels();
8
+ const [element, setElement] = createSignal();
9
+ const columns = createRowColumns(() => !!table?.stacked(), useTableSection(), element);
6
10
  return <tr
7
11
  {...rest}
8
- ref={mergeRefs(local.ref)}
9
- data-testid="table-row"
12
+ ref={mergeRefs(local.ref, setElement)}
13
+ data-testid={local["data-testid"] ?? "table-row"}
10
14
  class={cn("smwb-table__row", local.class, {
11
15
  "smwb-table__row_selected": local.selected,
12
16
  "smwb-table__row_expanded": local.expanded
@@ -14,7 +18,9 @@ function TableRow(props) {
14
18
  aria-selected={local.selected ?? void 0}
15
19
  aria-expanded={local.expanded ?? void 0}
16
20
  >
17
- {local.children}
21
+ <TableRowContext.Provider value={columns}>
22
+ <ChildElements onItems={columns.setItems}>{local.children}</ChildElements>
23
+ </TableRowContext.Provider>
18
24
  </tr>;
19
25
  }
20
26
  var tableRow_default = TableRow;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/dataDisplay/table/tableRow.tsx"],"sourcesContent":["import { type JSX, type ParentProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface TableRowProps extends JSX.HTMLAttributes<HTMLTableRowElement> {\n /** Marks the row as selected (adds aria-selected + styling). */\n selected?: boolean;\n /** Reflects expandable-row state (adds aria-expanded + styling). */\n expanded?: boolean;\n ref?: Ref<HTMLTableRowElement>;\n}\n\nexport function TableRow(props: ParentProps<TableRowProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\"children\", \"class\", \"selected\", \"expanded\", \"ref\"]);\n return (\n <tr\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"table-row\"\n class={cn(\"smwb-table__row\", local.class, {\n \"smwb-table__row_selected\": local.selected,\n \"smwb-table__row_expanded\": local.expanded,\n })}\n aria-selected={local.selected ?? undefined}\n aria-expanded={local.expanded ?? undefined}\n >\n {local.children}\n </tr>\n );\n}\n\nexport default TableRow;\n"],"mappings":"AAAA,SAAqC,kBAAkB;AACvD,OAAO,QAAQ;AACf,SAAS,iBAA2B;AAU7B,SAAS,SAAS,OAAgD;AACvE,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,YAAY,SAAS,YAAY,YAAY,KAAK,CAAC;AAC5F,SACE,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,YAAY;AAAA,IACZ,OAAO,GAAG,mBAAmB,MAAM,OAAO;AAAA,MACxC,4BAA4B,MAAM;AAAA,MAClC,4BAA4B,MAAM;AAAA,IACpC,CAAC;AAAA,IACD,eAAe,MAAM,YAAY;AAAA,IACjC,eAAe,MAAM,YAAY;AAAA,GAClC;AAAA,OACE,MAAM,SAAS;AAAA,IAClB,EAZC;AAcL;AAEA,IAAO,mBAAQ;","names":[],"file":"tableRow.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/dataDisplay/table/tableRow.tsx"],"sourcesContent":["import { type JSX, type ParentProps, createSignal, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { ChildElements, TableRowContext, createRowColumns, useTableLabels, useTableSection } from \"./tableColumns\";\n\nexport interface TableRowProps extends JSX.HTMLAttributes<HTMLTableRowElement> {\n /** Marks the row as selected (adds aria-selected + styling). */\n selected?: boolean;\n /** Reflects expandable-row state (adds aria-expanded + styling). */\n expanded?: boolean;\n /** Test id of the `<tr>`; `table-row` unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLTableRowElement>;\n}\n\nexport function TableRow(props: ParentProps<TableRowProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\"children\", \"class\", \"selected\", \"expanded\", \"ref\", \"data-testid\"]);\n // Each cell learns its column, by which a body cell of a stacked table finds\n // its label in the head.\n const table = useTableLabels();\n const [element, setElement] = createSignal<HTMLTableRowElement>();\n const columns = createRowColumns(() => !!table?.stacked(), useTableSection(), element);\n return (\n <tr\n {...rest}\n ref={mergeRefs(local.ref, setElement)}\n data-testid={local[\"data-testid\"] ?? \"table-row\"}\n class={cn(\"smwb-table__row\", local.class, {\n \"smwb-table__row_selected\": local.selected,\n \"smwb-table__row_expanded\": local.expanded,\n })}\n // `selected` and `expanded` win over the caller's aria-selected and\n // aria-expanded; without them (undefined), the caller's stay.\n aria-selected={local.selected ?? undefined}\n aria-expanded={local.expanded ?? undefined}\n >\n <TableRowContext.Provider value={columns}>\n <ChildElements onItems={columns.setItems}>{local.children}</ChildElements>\n </TableRowContext.Provider>\n </tr>\n );\n}\n\nexport default TableRow;\n"],"mappings":"AAAA,SAAqC,cAAc,kBAAkB;AACrE,OAAO,QAAQ;AACf,SAAS,iBAA2B;AACpC,SAAS,eAAe,iBAAiB,kBAAkB,gBAAgB,uBAAuB;AAY3F,SAAS,SAAS,OAAgD;AACvE,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,YAAY,SAAS,YAAY,YAAY,OAAO,aAAa,CAAC;AAG3G,QAAM,QAAQ,eAAe;AAC7B,QAAM,CAAC,SAAS,UAAU,IAAI,aAAkC;AAChE,QAAM,UAAU,iBAAiB,MAAM,CAAC,CAAC,OAAO,QAAQ,GAAG,gBAAgB,GAAG,OAAO;AACrF,SACE,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,KAAK,UAAU;AAAA,IACpC,aAAa,MAAM,aAAa,KAAK;AAAA,IACrC,OAAO,GAAG,mBAAmB,MAAM,OAAO;AAAA,MACxC,4BAA4B,MAAM;AAAA,MAClC,4BAA4B,MAAM;AAAA,IACpC,CAAC;AAAA,IAGD,eAAe,MAAM,YAAY;AAAA,IACjC,eAAe,MAAM,YAAY;AAAA,GAClC;AAAA,MACC,CAAC,gBAAgB,SAAS,OAAO,SAAS;AAAA,QACxC,CAAC,cAAc,SAAS,QAAQ,WAAW,MAAM,SAAS,EAAzD,cAAyE;AAAA,MAC5E,EAFC,gBAAgB,SAEU;AAAA,IAC7B,EAhBC;AAkBL;AAEA,IAAO,mBAAQ;","names":[],"file":"tableRow.jsx"}
@@ -4,6 +4,9 @@ import cn from "clsx";
4
4
  import { createFloating } from "../../../primitives/createFloating";
5
5
  import { LazyImage } from "../lazyImage";
6
6
  import { mergeRefs } from "../../../primitives/mergeRefs";
7
+ import { callHandler } from "../../../primitives/callHandler";
8
+ import { isOwnClick } from "../../../utils/ownClick";
9
+ import { splitControlProps } from "../../../utils/controlProps";
7
10
  function ThumbCard(props) {
8
11
  const merged = mergeProps({ lazy: true, hoverDelay: 350 }, props);
9
12
  const [local, rest] = splitProps(merged, [
@@ -19,8 +22,15 @@ function ThumbCard(props) {
19
22
  "disabled",
20
23
  "hoverDelay",
21
24
  "class",
22
- "ref"
25
+ "ref",
26
+ // The card sets these on its root too; its own handlers call the caller's.
27
+ "onClick",
28
+ "onKeyDown",
29
+ "onMouseEnter",
30
+ "onMouseLeave"
23
31
  ]);
32
+ const [control, box] = splitControlProps(rest);
33
+ let content;
24
34
  const topStart = children(() => local.topStart);
25
35
  const topEnd = children(() => local.topEnd);
26
36
  const caption = children(() => local.caption);
@@ -33,51 +43,70 @@ function ThumbCard(props) {
33
43
  hoverTimer = void 0;
34
44
  }
35
45
  };
36
- const onEnter = () => {
46
+ const onEnter = (event) => {
47
+ callHandler(local.onMouseEnter, event);
37
48
  if (local.hoverPreview == null || local.disabled) return;
38
49
  clearTimer();
39
50
  hoverTimer = setTimeout(() => setPreviewOpen(true), local.hoverDelay);
40
51
  };
41
- const onLeave = () => {
52
+ const onLeave = (event) => {
53
+ callHandler(local.onMouseLeave, event);
42
54
  clearTimer();
43
55
  setPreviewOpen(false);
44
56
  };
45
57
  onCleanup(clearTimer);
46
58
  const interactive = () => !!local.onSelect && !local.disabled;
59
+ const onClick = (event) => {
60
+ if (local.disabled) return;
61
+ const selects = isOwnClick(event, content ?? null);
62
+ callHandler(local.onClick, event);
63
+ if (selects) local.onSelect?.();
64
+ };
47
65
  const onKeyDown = (event) => {
48
- if (interactive() && (event.key === "Enter" || event.key === " ")) {
66
+ callHandler(local.onKeyDown, event);
67
+ if (!interactive() || event.target !== content) return;
68
+ if (event.key === "Enter" || event.key === " ") {
49
69
  event.preventDefault();
50
70
  local.onSelect?.();
51
71
  }
52
72
  };
53
73
  return <div
54
- {...rest}
74
+ {...box}
55
75
  ref={mergeRefs(local.ref, (el) => floating.setReference(el))}
56
76
  class={cn("smwb-thumb-card", local.class, {
57
77
  "smwb-thumb-card--selected": local.selected,
58
78
  "smwb-thumb-card--disabled": local.disabled,
59
79
  "smwb-thumb-card--interactive": interactive()
60
80
  })}
61
- role={interactive() ? "button" : void 0}
62
- tabindex={interactive() ? 0 : void 0}
63
- aria-pressed={local.onSelect ? local.selected ?? false : void 0}
64
- aria-disabled={local.disabled || void 0}
65
- onClick={interactive() ? () => local.onSelect?.() : void 0}
81
+ onClick={onClick}
66
82
  onKeyDown={onKeyDown}
67
83
  onMouseEnter={onEnter}
68
84
  onMouseLeave={onLeave}
69
85
  >
70
- <div class="smwb-thumb-card__media">
71
- <LazyImage src={local.src} lazy={local.lazy} fallback={local.fallback} />
72
- <Show when={topStart()}>
73
- <div class="smwb-thumb-card__slot smwb-thumb-card__slot--start">{topStart()}</div>
74
- </Show>
75
- <Show when={topEnd()}>
76
- <div class="smwb-thumb-card__slot smwb-thumb-card__slot--end">{topEnd()}</div>
86
+ <div
87
+ {...control}
88
+ ref={(el) => content = el}
89
+ class="smwb-thumb-card__content"
90
+ role={local.onSelect ? "button" : void 0}
91
+ tabindex={control.tabindex ?? (interactive() ? 0 : void 0)}
92
+ aria-pressed={local.onSelect ? local.selected ?? false : void 0}
93
+ aria-disabled={local.disabled || void 0}
94
+ >
95
+ <div class="smwb-thumb-card__media">
96
+ <LazyImage src={local.src} lazy={local.lazy} fallback={local.fallback} />
97
+ </div>
98
+ <Show when={caption()}>
99
+ <div class="smwb-thumb-card__caption">{caption()}</div>
77
100
  </Show>
78
101
  </div>
79
- <Show when={caption()}>
80
- <div class="smwb-thumb-card__caption">{caption()}</div>
102
+ {
103
+ /* Beside the button, not in it: controls here keep their names and input. */
104
+ }
105
+ <Show when={topStart()}>
106
+ <div class="smwb-thumb-card__slot smwb-thumb-card__slot--start">{topStart()}</div>
107
+ </Show>
108
+ <Show when={topEnd()}>
109
+ <div class="smwb-thumb-card__slot smwb-thumb-card__slot--end">{topEnd()}</div>
81
110
  </Show>
82
111
  <Show when={previewOpen() && !isServer}>
83
112
  <Portal>
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/dataDisplay/thumbCard/thumbCard.tsx"],"sourcesContent":["import { type JSX, Show, children, createSignal, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { Portal, isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { createFloating } from \"../../../primitives/createFloating\";\nimport { LazyImage } from \"../lazyImage\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface ThumbCardProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onSelect\"> {\n /** Thumbnail URL; falls back to `fallback` when missing / failed. */\n src?: string;\n caption?: JSX.Element;\n selected?: boolean;\n /** Makes the card a selectable button (keyboard + `aria-pressed`). */\n onSelect?: () => void;\n /** Shown in place of the image when `src` is missing / fails. */\n fallback?: JSX.Element;\n /** A larger preview shown in a floating popup after a hover delay. */\n hoverPreview?: JSX.Element | string;\n /** Top-left overlay slot (e.g. a favourite star). */\n topStart?: JSX.Element;\n /** Top-right overlay slot (e.g. a kebab menu). */\n topEnd?: JSX.Element;\n lazy?: boolean;\n disabled?: boolean;\n /** Delay (ms) before the hover preview appears. Default 350. */\n hoverDelay?: number;\n ref?: Ref<HTMLDivElement>;\n}\n\n/**\n * A selectable gallery card: image with an `onError` fallback + optional lazy\n * load, keyboard/`aria-pressed` selection, corner action slots, and a delayed\n * floating hover-preview. The generic gallery-card behaviour every app rebuilds\n * on top of the primitives. SSR-safe — the hover preview is client-only.\n */\nexport function ThumbCard(props: ThumbCardProps): JSX.Element {\n const merged = mergeProps({ lazy: true, hoverDelay: 350 }, props);\n const [local, rest] = splitProps(merged, [\n \"src\",\n \"caption\",\n \"selected\",\n \"onSelect\",\n \"fallback\",\n \"hoverPreview\",\n \"topStart\",\n \"topEnd\",\n \"lazy\",\n \"disabled\",\n \"hoverDelay\",\n \"class\",\n \"ref\",\n ]);\n\n // Read each slot once: markup passed as a prop is created anew on every read,\n // and during hydration a copy the server never rendered has no DOM node.\n // (The hover preview is read on hover only, after hydration.)\n const topStart = children(() => local.topStart);\n const topEnd = children(() => local.topEnd);\n const caption = children(() => local.caption);\n\n const floating = createFloating({ placement: () => \"right\" });\n const [previewOpen, setPreviewOpen] = createSignal(false);\n let hoverTimer: ReturnType<typeof setTimeout> | undefined;\n\n const clearTimer = (): void => {\n if (hoverTimer) {\n clearTimeout(hoverTimer);\n hoverTimer = undefined;\n }\n };\n const onEnter = (): void => {\n if (local.hoverPreview == null || local.disabled) return;\n clearTimer();\n hoverTimer = setTimeout(() => setPreviewOpen(true), local.hoverDelay);\n };\n const onLeave = (): void => {\n clearTimer();\n setPreviewOpen(false);\n };\n onCleanup(clearTimer);\n\n const interactive = (): boolean => !!local.onSelect && !local.disabled;\n const onKeyDown: JSX.EventHandler<HTMLDivElement, KeyboardEvent> = (event) => {\n if (interactive() && (event.key === \"Enter\" || event.key === \" \")) {\n event.preventDefault();\n local.onSelect?.();\n }\n };\n\n return (\n <div\n {...rest}\n ref={mergeRefs(local.ref, (el) => floating.setReference(el))}\n class={cn(\"smwb-thumb-card\", local.class, {\n \"smwb-thumb-card--selected\": local.selected,\n \"smwb-thumb-card--disabled\": local.disabled,\n \"smwb-thumb-card--interactive\": interactive(),\n })}\n role={interactive() ? \"button\" : undefined}\n tabindex={interactive() ? 0 : undefined}\n aria-pressed={local.onSelect ? (local.selected ?? false) : undefined}\n aria-disabled={local.disabled || undefined}\n onClick={interactive() ? () => local.onSelect?.() : undefined}\n onKeyDown={onKeyDown}\n onMouseEnter={onEnter}\n onMouseLeave={onLeave}\n >\n <div class=\"smwb-thumb-card__media\">\n <LazyImage src={local.src} lazy={local.lazy} fallback={local.fallback} />\n <Show when={topStart()}>\n <div class=\"smwb-thumb-card__slot smwb-thumb-card__slot--start\">{topStart()}</div>\n </Show>\n <Show when={topEnd()}>\n <div class=\"smwb-thumb-card__slot smwb-thumb-card__slot--end\">{topEnd()}</div>\n </Show>\n </div>\n <Show when={caption()}>\n <div class=\"smwb-thumb-card__caption\">{caption()}</div>\n </Show>\n <Show when={previewOpen() && !isServer}>\n <Portal>\n <div class=\"smwb-thumb-card__preview\" ref={(el) => floating.setFloating(el)} style={floating.floatingStyles()}>\n {typeof local.hoverPreview === \"string\" ? (\n <img src={local.hoverPreview} alt=\"\" />\n ) : (\n (local.hoverPreview as JSX.Element)\n )}\n </div>\n </Portal>\n </Show>\n </div>\n );\n}\n\nexport default ThumbCard;\n"],"mappings":"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","names":[],"file":"thumbCard.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/dataDisplay/thumbCard/thumbCard.tsx"],"sourcesContent":["import { type JSX, Show, children, createSignal, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { Portal, isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { createFloating } from \"../../../primitives/createFloating\";\nimport { LazyImage } from \"../lazyImage\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../primitives/callHandler\";\nimport { isOwnClick } from \"../../../utils/ownClick\";\nimport { splitControlProps } from \"../../../utils/controlProps\";\n\nexport interface ThumbCardProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onSelect\"> {\n /**\n * Class name(s) for the root `<div>`, the card's box. `style`, `id`, `data-*`, `aria-hidden`, `ref` and event\n * handlers go to the root too, but `role`, `tabindex`, `onFocus`, `onBlur` and the other `aria-*` attributes go to\n * the card's content, `.smwb-thumb-card__content` (the image and the caption): that is the card's button when it has\n * `onSelect`, and the element to focus.\n */\n class?: string | undefined;\n /** Thumbnail URL; falls back to `fallback` when missing / failed. */\n src?: string;\n /**\n * Text under the image. With `onSelect` it is part of the card's button and names it, so keep controls out of it:\n * they go in `topStart` / `topEnd`.\n */\n caption?: JSX.Element;\n /** Outlines the image; with `onSelect`, the card's button is also `aria-pressed=\"true\"`. */\n selected?: boolean;\n /**\n * Makes the card selectable: its content (the image and the caption) becomes a toggle button with `aria-pressed`,\n * selected by a click and by Enter / Space. The corner slots are not part of that button but its siblings, laid over\n * the image, so their controls keep their own names, clicks and keys.\n *\n * A click selects the card unless it lands in a control in a slot (button, link, input, anything focusable) or in a\n * portal opened from the card. Slot content that is not a control keeps its click from selecting the card by calling\n * `preventDefault()` on it.\n */\n onSelect?: () => void;\n /**\n * Runs on each click on the card, before `onSelect`, but not while the card is `disabled`.\n * A click on a control in a slot runs it too, without selecting the card.\n * Enter / Space select the card without a click, so they call only `onSelect`.\n */\n onClick?: JSX.EventHandlerUnion<HTMLDivElement, MouseEvent> | undefined;\n /** Shown in place of the image when `src` is missing / fails. */\n fallback?: JSX.Element;\n /** A larger preview shown in a floating popup after a hover delay. */\n hoverPreview?: JSX.Element | string;\n /**\n * Top-left overlay slot (e.g. a favourite star). It sits over the image, outside the card's button, so controls here\n * keep their own names, clicks and keys; see `onSelect`.\n */\n topStart?: JSX.Element;\n /**\n * Top-right overlay slot (e.g. a kebab menu). It sits over the image, outside the card's button, so controls here\n * keep their own names, clicks and keys; see `onSelect`.\n */\n topEnd?: JSX.Element;\n lazy?: boolean;\n /**\n * Dims the card and ignores clicks on it: neither `onClick` nor `onSelect` runs.\n * Keys do not select it either, and there is no hover preview. With `onSelect`\n * the card is still a button, `aria-disabled` and out of the tab order.\n */\n disabled?: boolean;\n /** Delay (ms) before the hover preview appears. Default 350. */\n hoverDelay?: number;\n ref?: Ref<HTMLDivElement>;\n}\n\n/**\n * A selectable gallery card: image with an `onError` fallback + optional lazy\n * load, keyboard/`aria-pressed` selection, corner action slots, and a delayed\n * floating hover-preview. The generic gallery-card behaviour every app rebuilds\n * on top of the primitives. SSR-safe — the hover preview is client-only.\n *\n * The root is a box around the card's content (the image and the caption, the\n * card's button when it is selectable) and the corner slots, which are laid\n * over the image beside that button rather than inside it.\n */\nexport function ThumbCard(props: ThumbCardProps): JSX.Element {\n const merged = mergeProps({ lazy: true, hoverDelay: 350 }, props);\n const [local, rest] = splitProps(merged, [\n \"src\",\n \"caption\",\n \"selected\",\n \"onSelect\",\n \"fallback\",\n \"hoverPreview\",\n \"topStart\",\n \"topEnd\",\n \"lazy\",\n \"disabled\",\n \"hoverDelay\",\n \"class\",\n \"ref\",\n // The card sets these on its root too; its own handlers call the caller's.\n \"onClick\",\n \"onKeyDown\",\n \"onMouseEnter\",\n \"onMouseLeave\",\n ]);\n // What the card is to the keyboard and to assistive tech goes to its\n // content, the element that is its button; the rest stays on the root.\n const [control, box] = splitControlProps(rest);\n let content: HTMLDivElement | undefined;\n\n // Read each slot once: markup passed as a prop is created anew on every read,\n // and during hydration a copy the server never rendered has no DOM node.\n // (The hover preview is read on hover only, after hydration.)\n const topStart = children(() => local.topStart);\n const topEnd = children(() => local.topEnd);\n const caption = children(() => local.caption);\n\n const floating = createFloating({ placement: () => \"right\" });\n const [previewOpen, setPreviewOpen] = createSignal(false);\n let hoverTimer: ReturnType<typeof setTimeout> | undefined;\n\n const clearTimer = (): void => {\n if (hoverTimer) {\n clearTimeout(hoverTimer);\n hoverTimer = undefined;\n }\n };\n const onEnter: JSX.EventHandler<HTMLDivElement, MouseEvent> = (event) => {\n callHandler(local.onMouseEnter, event);\n if (local.hoverPreview == null || local.disabled) return;\n clearTimer();\n hoverTimer = setTimeout(() => setPreviewOpen(true), local.hoverDelay);\n };\n const onLeave: JSX.EventHandler<HTMLDivElement, MouseEvent> = (event) => {\n callHandler(local.onMouseLeave, event);\n clearTimer();\n setPreviewOpen(false);\n };\n onCleanup(clearTimer);\n\n const interactive = (): boolean => !!local.onSelect && !local.disabled;\n // A disabled card ignores clicks, the caller's onClick included: it says\n // aria-disabled, and its styles turn pointer events off. The caller's onClick\n // sees every other click, those in the slots too, but only clicks on the\n // card's content and on what is not a control in a slot select it: not one\n // on a control in a slot, nor one in a Portal opened from the card. That is\n // settled before onClick runs, so what onClick does to the event or the DOM\n // does not change it.\n const onClick: JSX.EventHandler<HTMLDivElement, MouseEvent> = (event) => {\n if (local.disabled) return;\n const selects = isOwnClick(event, content ?? null);\n callHandler(local.onClick, event);\n if (selects) local.onSelect?.();\n };\n // Keys pressed on a control in a slot bubble up here too; only the keys of\n // the card's button select it.\n const onKeyDown: JSX.EventHandler<HTMLDivElement, KeyboardEvent> = (event) => {\n callHandler(local.onKeyDown, event);\n if (!interactive() || event.target !== content) return;\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n local.onSelect?.();\n }\n };\n\n return (\n <div\n {...box}\n ref={mergeRefs(local.ref, (el) => floating.setReference(el))}\n class={cn(\"smwb-thumb-card\", local.class, {\n \"smwb-thumb-card--selected\": local.selected,\n \"smwb-thumb-card--disabled\": local.disabled,\n \"smwb-thumb-card--interactive\": interactive(),\n })}\n onClick={onClick}\n onKeyDown={onKeyDown}\n onMouseEnter={onEnter}\n onMouseLeave={onLeave}\n >\n <div\n {...control}\n ref={(el) => (content = el)}\n class=\"smwb-thumb-card__content\"\n // With onSelect the content is the card's button and says whether it is\n // pressed, and a disabled card says so: these win over the caller's, and\n // where the card sets none (undefined), the caller's stay. Its tabindex\n // is a default: the caller's wins, e.g. for roving focus.\n role={local.onSelect ? \"button\" : undefined}\n tabindex={control.tabindex ?? (interactive() ? 0 : undefined)}\n aria-pressed={local.onSelect ? (local.selected ?? false) : undefined}\n aria-disabled={local.disabled || undefined}\n >\n <div class=\"smwb-thumb-card__media\">\n <LazyImage src={local.src} lazy={local.lazy} fallback={local.fallback} />\n </div>\n <Show when={caption()}>\n <div class=\"smwb-thumb-card__caption\">{caption()}</div>\n </Show>\n </div>\n {/* Beside the button, not in it: controls here keep their names and input. */}\n <Show when={topStart()}>\n <div class=\"smwb-thumb-card__slot smwb-thumb-card__slot--start\">{topStart()}</div>\n </Show>\n <Show when={topEnd()}>\n <div class=\"smwb-thumb-card__slot smwb-thumb-card__slot--end\">{topEnd()}</div>\n </Show>\n <Show when={previewOpen() && !isServer}>\n <Portal>\n <div class=\"smwb-thumb-card__preview\" ref={(el) => floating.setFloating(el)} style={floating.floatingStyles()}>\n {typeof local.hoverPreview === \"string\" ? (\n <img src={local.hoverPreview} alt=\"\" />\n ) : (\n (local.hoverPreview as JSX.Element)\n )}\n </div>\n </Portal>\n </Show>\n </div>\n );\n}\n\nexport default ThumbCard;\n"],"mappings":"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","names":[],"file":"thumbCard.jsx"}