@smwb/ui-solid 0.12.1 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1137) hide show
  1. package/README.md +638 -0
  2. package/dist/assets/styles/less/components/appBar/appBar.entry.css +1 -1
  3. package/dist/assets/styles/less/components/avatar/avatar.entry.css +1 -1
  4. package/dist/assets/styles/less/components/button/button.entry.css +1 -1
  5. package/dist/assets/styles/less/components/card/card.entry.css +1 -1
  6. package/dist/assets/styles/less/components/checkbox/checkbox.entry.css +1 -1
  7. package/dist/assets/styles/less/components/chip/chip.entry.css +1 -1
  8. package/dist/assets/styles/less/components/commandPalette/commandPalette.entry.css +1 -0
  9. package/dist/assets/styles/less/components/composer/composer.entry.css +1 -0
  10. package/dist/assets/styles/less/components/dagView/dagView.entry.css +1 -0
  11. package/dist/assets/styles/less/components/diffStat/diffStat.entry.css +1 -0
  12. package/dist/assets/styles/less/components/kbd/kbd.entry.css +1 -0
  13. package/dist/assets/styles/less/components/list/list.entry.css +1 -1
  14. package/dist/assets/styles/less/components/menu/menu.entry.css +1 -1
  15. package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -1
  16. package/dist/assets/styles/less/components/qrCode/qrCode.entry.css +1 -0
  17. package/dist/assets/styles/less/components/radioButton/radioButton.entry.css +1 -1
  18. package/dist/assets/styles/less/components/rating/rating.entry.css +1 -1
  19. package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
  20. package/dist/assets/styles/less/components/sidebar/sidebar.entry.css +1 -1
  21. package/dist/assets/styles/less/components/statusDot/statusDot.entry.css +1 -0
  22. package/dist/assets/styles/less/components/swimlanes/swimlanes.entry.css +1 -0
  23. package/dist/assets/styles/less/components/tabGroups/tabGroups.entry.css +1 -0
  24. package/dist/assets/styles/less/components/table/table.entry.css +1 -1
  25. package/dist/assets/styles/less/components/tabs/tab/tab.entry.css +1 -1
  26. package/dist/assets/styles/less/components/tabs/tabPanel/tabPanel.entry.css +1 -0
  27. package/dist/assets/styles/less/components/tabs/tabs.entry.css +1 -1
  28. package/dist/assets/styles/less/components/textField/textField.entry.css +1 -1
  29. package/dist/assets/styles/less/components/thumbCard/thumbCard.entry.css +1 -1
  30. package/dist/assets/styles/less/components/toggle/toggle.entry.css +1 -1
  31. package/dist/assets/styles/less/components/treeView/treeView.entry.css +1 -1
  32. package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
  33. package/dist/assets/styles/less/tokens.entry.css +1 -1
  34. package/dist/components/base/animateHeight/animateHeight.js +41 -42
  35. package/dist/components/base/animateHeight/animateHeight.js.map +1 -1
  36. package/dist/components/base/icon/icon.d.ts +6 -2
  37. package/dist/components/base/icon/icon.js +41 -41
  38. package/dist/components/base/icon/icon.js.map +1 -1
  39. package/dist/components/base/ripple/ripple.d.ts +3 -0
  40. package/dist/components/base/ripple/ripple.js +46 -34
  41. package/dist/components/base/ripple/ripple.js.map +1 -1
  42. package/dist/components/dataDisplay/avatar/avatar.d.ts +4 -0
  43. package/dist/components/dataDisplay/avatar/avatar.js +37 -33
  44. package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
  45. package/dist/components/dataDisplay/card/card.d.ts +32 -1
  46. package/dist/components/dataDisplay/card/card.js +47 -34
  47. package/dist/components/dataDisplay/card/card.js.map +1 -1
  48. package/dist/components/dataDisplay/carousel/carousel.js +92 -88
  49. package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
  50. package/dist/components/dataDisplay/chart/chart.d.ts +2 -0
  51. package/dist/components/dataDisplay/chat/chat.d.ts +42 -0
  52. package/dist/components/dataDisplay/chat/chat.js +116 -57
  53. package/dist/components/dataDisplay/chat/chat.js.map +1 -1
  54. package/dist/components/dataDisplay/chat/chatComposer.d.ts +17 -0
  55. package/dist/components/dataDisplay/chat/chatComposer.js +21 -19
  56. package/dist/components/dataDisplay/chat/chatComposer.js.map +1 -1
  57. package/dist/components/dataDisplay/chat/chatIconButton.js +23 -13
  58. package/dist/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  59. package/dist/components/dataDisplay/chat/chatLayout.d.ts +2 -0
  60. package/dist/components/dataDisplay/chat/chatLayout.js +33 -29
  61. package/dist/components/dataDisplay/chat/chatLayout.js.map +1 -1
  62. package/dist/components/dataDisplay/chat/chatOverlayLayout.d.ts +2 -0
  63. package/dist/components/dataDisplay/chat/chatOverlayLayout.js +19 -17
  64. package/dist/components/dataDisplay/chat/chatOverlayLayout.js.map +1 -1
  65. package/dist/components/dataDisplay/chat/index.d.ts +1 -1
  66. package/dist/components/dataDisplay/chat/utils.d.ts +14 -0
  67. package/dist/components/dataDisplay/chat/utils.js.map +1 -1
  68. package/dist/components/dataDisplay/chip/chip.d.ts +32 -0
  69. package/dist/components/dataDisplay/chip/chip.js +104 -63
  70. package/dist/components/dataDisplay/chip/chip.js.map +1 -1
  71. package/dist/components/dataDisplay/chipGroup/chipGroup.js +44 -39
  72. package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  73. package/dist/components/dataDisplay/dagView/dagLayout.d.ts +74 -0
  74. package/dist/components/dataDisplay/dagView/dagLayout.js +284 -0
  75. package/dist/components/dataDisplay/dagView/dagLayout.js.map +1 -0
  76. package/dist/components/dataDisplay/dagView/dagView.d.ts +151 -0
  77. package/dist/components/dataDisplay/dagView/dagView.js +503 -0
  78. package/dist/components/dataDisplay/dagView/dagView.js.map +1 -0
  79. package/dist/components/dataDisplay/dagView/index.d.ts +4 -0
  80. package/dist/components/dataDisplay/dagView/panZoom.d.ts +75 -0
  81. package/dist/components/dataDisplay/dagView/panZoom.js +161 -0
  82. package/dist/components/dataDisplay/dagView/panZoom.js.map +1 -0
  83. package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +11 -3
  84. package/dist/components/dataDisplay/descriptionList/descriptionList.js +20 -24
  85. package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
  86. package/dist/components/dataDisplay/diffStat/diffStat.d.ts +55 -0
  87. package/dist/components/dataDisplay/diffStat/diffStat.js +70 -0
  88. package/dist/components/dataDisplay/diffStat/diffStat.js.map +1 -0
  89. package/dist/components/dataDisplay/diffStat/index.d.ts +2 -0
  90. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +114 -81
  91. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  92. package/dist/components/dataDisplay/kanban/kanban.d.ts +6 -0
  93. package/dist/components/dataDisplay/kanban/kanban.js +71 -61
  94. package/dist/components/dataDisplay/kanban/kanban.js.map +1 -1
  95. package/dist/components/dataDisplay/kbd/index.d.ts +4 -0
  96. package/dist/components/dataDisplay/kbd/kbd.d.ts +41 -0
  97. package/dist/components/dataDisplay/kbd/kbd.js +47 -0
  98. package/dist/components/dataDisplay/kbd/kbd.js.map +1 -0
  99. package/dist/components/dataDisplay/kbd/kbdKeys.d.ts +18 -0
  100. package/dist/components/dataDisplay/kbd/kbdKeys.js +70 -0
  101. package/dist/components/dataDisplay/kbd/kbdKeys.js.map +1 -0
  102. package/dist/components/dataDisplay/lazyImage/lazyImage.js +14 -12
  103. package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  104. package/dist/components/dataDisplay/list/list.d.ts +2 -0
  105. package/dist/components/dataDisplay/list/list.js +16 -12
  106. package/dist/components/dataDisplay/list/list.js.map +1 -1
  107. package/dist/components/dataDisplay/list/listItem.d.ts +34 -0
  108. package/dist/components/dataDisplay/list/listItem.js +58 -19
  109. package/dist/components/dataDisplay/list/listItem.js.map +1 -1
  110. package/dist/components/dataDisplay/meter/meter.d.ts +2 -0
  111. package/dist/components/dataDisplay/meter/meter.js +15 -13
  112. package/dist/components/dataDisplay/meter/meter.js.map +1 -1
  113. package/dist/components/dataDisplay/personChip/personChip.d.ts +2 -0
  114. package/dist/components/dataDisplay/personChip/personChip.js +12 -10
  115. package/dist/components/dataDisplay/personChip/personChip.js.map +1 -1
  116. package/dist/components/dataDisplay/qrCode/index.d.ts +2 -0
  117. package/dist/components/dataDisplay/qrCode/qrCode.d.ts +30 -0
  118. package/dist/components/dataDisplay/qrCode/qrCode.js +88 -0
  119. package/dist/components/dataDisplay/qrCode/qrCode.js.map +1 -0
  120. package/dist/components/dataDisplay/qrCode/qrCodePath.d.ts +7 -0
  121. package/dist/components/dataDisplay/qrCode/qrCodePath.js +20 -0
  122. package/dist/components/dataDisplay/qrCode/qrCodePath.js.map +1 -0
  123. package/dist/components/dataDisplay/stat/stat.d.ts +2 -0
  124. package/dist/components/dataDisplay/stat/stat.js +41 -43
  125. package/dist/components/dataDisplay/stat/stat.js.map +1 -1
  126. package/dist/components/dataDisplay/statusDot/index.d.ts +2 -0
  127. package/dist/components/dataDisplay/statusDot/statusDot.d.ts +35 -0
  128. package/dist/components/dataDisplay/statusDot/statusDot.js +31 -0
  129. package/dist/components/dataDisplay/statusDot/statusDot.js.map +1 -0
  130. package/dist/components/dataDisplay/swimlanes/index.d.ts +2 -0
  131. package/dist/components/dataDisplay/swimlanes/swimlanes.d.ts +75 -0
  132. package/dist/components/dataDisplay/swimlanes/swimlanes.js +361 -0
  133. package/dist/components/dataDisplay/swimlanes/swimlanes.js.map +1 -0
  134. package/dist/components/dataDisplay/table/table.d.ts +10 -1
  135. package/dist/components/dataDisplay/table/table.js +46 -22
  136. package/dist/components/dataDisplay/table/table.js.map +1 -1
  137. package/dist/components/dataDisplay/table/tableBody.js +25 -12
  138. package/dist/components/dataDisplay/table/tableBody.js.map +1 -1
  139. package/dist/components/dataDisplay/table/tableCell.d.ts +10 -2
  140. package/dist/components/dataDisplay/table/tableCell.js +15 -14
  141. package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
  142. package/dist/components/dataDisplay/table/tableColumns.d.ts +146 -0
  143. package/dist/components/dataDisplay/table/tableColumns.js +254 -0
  144. package/dist/components/dataDisplay/table/tableColumns.js.map +1 -0
  145. package/dist/components/dataDisplay/table/tableEntities.d.ts +4 -0
  146. package/dist/components/dataDisplay/table/tableEntities.js +6 -0
  147. package/dist/components/dataDisplay/table/tableEntities.js.map +1 -0
  148. package/dist/components/dataDisplay/table/tableHead.js +29 -11
  149. package/dist/components/dataDisplay/table/tableHead.js.map +1 -1
  150. package/dist/components/dataDisplay/table/tableHeadCell.d.ts +23 -1
  151. package/dist/components/dataDisplay/table/tableHeadCell.js +51 -26
  152. package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  153. package/dist/components/dataDisplay/table/tableHtmlText.d.ts +8 -0
  154. package/dist/components/dataDisplay/table/tableHtmlText.js +121 -0
  155. package/dist/components/dataDisplay/table/tableHtmlText.js.map +1 -0
  156. package/dist/components/dataDisplay/table/tableRow.d.ts +2 -0
  157. package/dist/components/dataDisplay/table/tableRow.js +28 -13
  158. package/dist/components/dataDisplay/table/tableRow.js.map +1 -1
  159. package/dist/components/dataDisplay/thumbCard/thumbCard.d.ts +44 -3
  160. package/dist/components/dataDisplay/thumbCard/thumbCard.js +86 -58
  161. package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  162. package/dist/components/dataDisplay/treeView/treeView.d.ts +22 -0
  163. package/dist/components/dataDisplay/treeView/treeView.js +164 -96
  164. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  165. package/dist/components/dataDisplay/typography/typography.js +22 -26
  166. package/dist/components/dataDisplay/typography/typography.js.map +1 -1
  167. package/dist/components/feedBack/emptyState/emptyState.d.ts +2 -0
  168. package/dist/components/feedBack/emptyState/emptyState.js +20 -16
  169. package/dist/components/feedBack/emptyState/emptyState.js.map +1 -1
  170. package/dist/components/feedBack/message/message.d.ts +2 -0
  171. package/dist/components/feedBack/message/message.js +17 -13
  172. package/dist/components/feedBack/message/message.js.map +1 -1
  173. package/dist/components/feedBack/modal/modal.d.ts +9 -0
  174. package/dist/components/feedBack/modal/modal.js +71 -53
  175. package/dist/components/feedBack/modal/modal.js.map +1 -1
  176. package/dist/components/feedBack/skeleton/skeleton.d.ts +10 -2
  177. package/dist/components/feedBack/skeleton/skeleton.js +43 -35
  178. package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
  179. package/dist/components/feedBack/snackbar/snackbar.js +24 -20
  180. package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
  181. package/dist/components/feedBack/tooltip/tooltip.d.ts +9 -1
  182. package/dist/components/feedBack/tooltip/tooltip.js +65 -41
  183. package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
  184. package/dist/components/inputs/button/button.d.ts +14 -0
  185. package/dist/components/inputs/button/button.js +71 -36
  186. package/dist/components/inputs/button/button.js.map +1 -1
  187. package/dist/components/inputs/buttonGroups/buttonGroup.d.ts +2 -0
  188. package/dist/components/inputs/buttonGroups/buttonGroup.js +14 -10
  189. package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  190. package/dist/components/inputs/checkbox/checkbox.d.ts +10 -0
  191. package/dist/components/inputs/checkbox/checkbox.js +59 -36
  192. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  193. package/dist/components/inputs/composer/composer.d.ts +148 -0
  194. package/dist/components/inputs/composer/composer.js +276 -0
  195. package/dist/components/inputs/composer/composer.js.map +1 -0
  196. package/dist/components/inputs/composer/composerFiles.d.ts +26 -0
  197. package/dist/components/inputs/composer/composerFiles.js +18 -0
  198. package/dist/components/inputs/composer/composerFiles.js.map +1 -0
  199. package/dist/components/inputs/composer/composerKeys.d.ts +29 -0
  200. package/dist/components/inputs/composer/composerKeys.js +7 -0
  201. package/dist/components/inputs/composer/composerKeys.js.map +1 -0
  202. package/dist/components/inputs/composer/index.d.ts +3 -0
  203. package/dist/components/inputs/datePicker/datePicker.js +108 -97
  204. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  205. package/dist/components/inputs/datePicker/datePickerActionLabel.js +19 -17
  206. package/dist/components/inputs/datePicker/datePickerActionLabel.js.map +1 -1
  207. package/dist/components/inputs/datePicker/datePickerDay.js +41 -25
  208. package/dist/components/inputs/datePicker/datePickerDay.js.map +1 -1
  209. package/dist/components/inputs/datePicker/datePickerIconButton.js +24 -14
  210. package/dist/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  211. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +90 -79
  212. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  213. package/dist/components/inputs/floatingButton/floatingButton.js +26 -16
  214. package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
  215. package/dist/components/inputs/radioButton/radioButton.d.ts +9 -0
  216. package/dist/components/inputs/radioButton/radioButton.js +48 -34
  217. package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
  218. package/dist/components/inputs/rating/rating.d.ts +9 -0
  219. package/dist/components/inputs/rating/rating.js +74 -53
  220. package/dist/components/inputs/rating/rating.js.map +1 -1
  221. package/dist/components/inputs/selectField/dropdownMenu.d.ts +21 -1
  222. package/dist/components/inputs/selectField/dropdownMenu.js +268 -143
  223. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  224. package/dist/components/inputs/selectField/optionNavigation.d.ts +17 -0
  225. package/dist/components/inputs/selectField/optionNavigation.js +37 -0
  226. package/dist/components/inputs/selectField/optionNavigation.js.map +1 -0
  227. package/dist/components/inputs/selectField/selectField.d.ts +32 -1
  228. package/dist/components/inputs/selectField/selectField.js +297 -126
  229. package/dist/components/inputs/selectField/selectField.js.map +1 -1
  230. package/dist/components/inputs/slider/slider.d.ts +25 -3
  231. package/dist/components/inputs/slider/slider.js +320 -197
  232. package/dist/components/inputs/slider/slider.js.map +1 -1
  233. package/dist/components/inputs/textField/textField.d.ts +9 -1
  234. package/dist/components/inputs/textField/textField.js +104 -51
  235. package/dist/components/inputs/textField/textField.js.map +1 -1
  236. package/dist/components/inputs/textField/textFieldWrapper.d.ts +14 -0
  237. package/dist/components/inputs/textField/textFieldWrapper.js +52 -45
  238. package/dist/components/inputs/textField/textFieldWrapper.js.map +1 -1
  239. package/dist/components/inputs/timePicker/timePicker.js +73 -62
  240. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  241. package/dist/components/inputs/toggle/toggle.d.ts +4 -0
  242. package/dist/components/inputs/toggle/toggle.js +43 -31
  243. package/dist/components/inputs/toggle/toggle.js.map +1 -1
  244. package/dist/components/inputs/valueSlider/valueSlider.d.ts +12 -0
  245. package/dist/components/inputs/valueSlider/valueSlider.js +32 -27
  246. package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
  247. package/dist/components/layout/appLayout/appLayout.d.ts +2 -0
  248. package/dist/components/layout/appLayout/appLayout.js +32 -30
  249. package/dist/components/layout/appLayout/appLayout.js.map +1 -1
  250. package/dist/components/layout/divider/divider.d.ts +2 -0
  251. package/dist/components/layout/divider/divider.js +22 -20
  252. package/dist/components/layout/divider/divider.js.map +1 -1
  253. package/dist/components/layout/floatingWindow/floatingWindow.d.ts +2 -0
  254. package/dist/components/layout/floatingWindow/floatingWindow.js +171 -168
  255. package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  256. package/dist/components/layout/grid/grid.d.ts +8 -0
  257. package/dist/components/layout/grid/grid.js +52 -44
  258. package/dist/components/layout/grid/grid.js.map +1 -1
  259. package/dist/components/layout/page/page.d.ts +2 -0
  260. package/dist/components/layout/page/page.js +14 -12
  261. package/dist/components/layout/page/page.js.map +1 -1
  262. package/dist/components/layout/pageHeader/pageHeader.d.ts +2 -0
  263. package/dist/components/layout/pageHeader/pageHeader.js +23 -21
  264. package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
  265. package/dist/components/layout/sectionHeader/sectionHeader.d.ts +2 -0
  266. package/dist/components/layout/sectionHeader/sectionHeader.js +38 -36
  267. package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -1
  268. package/dist/components/layout/sheet/sheet.d.ts +14 -0
  269. package/dist/components/layout/sheet/sheet.js +92 -76
  270. package/dist/components/layout/sheet/sheet.js.map +1 -1
  271. package/dist/components/layout/stack/stack.d.ts +2 -0
  272. package/dist/components/layout/stack/stack.js +26 -24
  273. package/dist/components/layout/stack/stack.js.map +1 -1
  274. package/dist/components/layout/tabGroups/index.d.ts +4 -0
  275. package/dist/components/layout/tabGroups/tabGroups.d.ts +102 -0
  276. package/dist/components/layout/tabGroups/tabGroups.js +895 -0
  277. package/dist/components/layout/tabGroups/tabGroups.js.map +1 -0
  278. package/dist/components/layout/tabGroups/tabGroupsFocus.d.ts +55 -0
  279. package/dist/components/layout/tabGroups/tabGroupsFocus.js +192 -0
  280. package/dist/components/layout/tabGroups/tabGroupsFocus.js.map +1 -0
  281. package/dist/components/layout/tabGroups/tabGroupsLayout.d.ts +250 -0
  282. package/dist/components/layout/tabGroups/tabGroupsLayout.js +480 -0
  283. package/dist/components/layout/tabGroups/tabGroupsLayout.js.map +1 -0
  284. package/dist/components/navigation/appBar/appBar.d.ts +24 -0
  285. package/dist/components/navigation/appBar/appBar.js +68 -28
  286. package/dist/components/navigation/appBar/appBar.js.map +1 -1
  287. package/dist/components/navigation/bottomBar/bottomBar.js +125 -120
  288. package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
  289. package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +2 -0
  290. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +18 -14
  291. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  292. package/dist/components/navigation/commandPalette/commandPalette.d.ts +126 -0
  293. package/dist/components/navigation/commandPalette/commandPalette.js +457 -0
  294. package/dist/components/navigation/commandPalette/commandPalette.js.map +1 -0
  295. package/dist/components/navigation/commandPalette/commandPaletteFilter.d.ts +11 -0
  296. package/dist/components/navigation/commandPalette/commandPaletteFilter.js +15 -0
  297. package/dist/components/navigation/commandPalette/commandPaletteFilter.js.map +1 -0
  298. package/dist/components/navigation/commandPalette/commandPaletteNavigation.d.ts +13 -0
  299. package/dist/components/navigation/commandPalette/commandPaletteNavigation.js +38 -0
  300. package/dist/components/navigation/commandPalette/commandPaletteNavigation.js.map +1 -0
  301. package/dist/components/navigation/commandPalette/commandPaletteTypes.d.ts +39 -0
  302. package/dist/components/navigation/commandPalette/index.d.ts +6 -0
  303. package/dist/components/navigation/menu/menu.d.ts +6 -0
  304. package/dist/components/navigation/menu/menu.js.map +1 -1
  305. package/dist/components/navigation/menu/menuComponent.js +12 -23
  306. package/dist/components/navigation/menu/menuComponent.js.map +1 -1
  307. package/dist/components/navigation/menu/menuContext.d.ts +2 -0
  308. package/dist/components/navigation/menu/menuContext.js.map +1 -1
  309. package/dist/components/navigation/menu/menuFloating.js +54 -46
  310. package/dist/components/navigation/menu/menuFloating.js.map +1 -1
  311. package/dist/components/navigation/menu/menuItem.d.ts +4 -0
  312. package/dist/components/navigation/menu/menuItem.js +58 -33
  313. package/dist/components/navigation/menu/menuItem.js.map +1 -1
  314. package/dist/components/navigation/menu/menuList.d.ts +4 -0
  315. package/dist/components/navigation/menu/menuList.js +34 -16
  316. package/dist/components/navigation/menu/menuList.js.map +1 -1
  317. package/dist/components/navigation/menu/menuSubmenu.d.ts +8 -1
  318. package/dist/components/navigation/menu/menuSubmenu.js +58 -38
  319. package/dist/components/navigation/menu/menuSubmenu.js.map +1 -1
  320. package/dist/components/navigation/pagination/pagination.d.ts +2 -0
  321. package/dist/components/navigation/pagination/pagination.js +28 -24
  322. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  323. package/dist/components/navigation/sidebar/sidebar.d.ts +10 -0
  324. package/dist/components/navigation/sidebar/sidebar.js +37 -33
  325. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  326. package/dist/components/navigation/stepper/stepper.d.ts +2 -0
  327. package/dist/components/navigation/stepper/stepper.js +46 -42
  328. package/dist/components/navigation/stepper/stepper.js.map +1 -1
  329. package/dist/components/navigation/tabs/index.d.ts +3 -1
  330. package/dist/components/navigation/tabs/tab/tab.d.ts +89 -2
  331. package/dist/components/navigation/tabs/tab/tab.js +174 -43
  332. package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
  333. package/dist/components/navigation/tabs/tabPanel/tabPanel.d.ts +20 -0
  334. package/dist/components/navigation/tabs/tabPanel/tabPanel.js +34 -0
  335. package/dist/components/navigation/tabs/tabPanel/tabPanel.js.map +1 -0
  336. package/dist/components/navigation/tabs/tabs.d.ts +79 -2
  337. package/dist/components/navigation/tabs/tabs.js +389 -147
  338. package/dist/components/navigation/tabs/tabs.js.map +1 -1
  339. package/dist/components/navigation/tabs/tabs.utils.d.ts +20 -0
  340. package/dist/components/navigation/tabs/tabs.utils.js +11 -0
  341. package/dist/components/navigation/tabs/tabs.utils.js.map +1 -0
  342. package/dist/components/navigation/tabs/tabsContext.d.ts +36 -4
  343. package/dist/components/navigation/tabs/tabsContext.js.map +1 -1
  344. package/dist/connects/rt/table/table.d.ts +16 -1
  345. package/dist/headless/components/base/animateHeight/animateHeight.js +41 -42
  346. package/dist/headless/components/base/animateHeight/animateHeight.js.map +1 -1
  347. package/dist/headless/components/base/icon/icon.js +40 -40
  348. package/dist/headless/components/base/icon/icon.js.map +1 -1
  349. package/dist/headless/components/base/ripple/ripple.js +46 -34
  350. package/dist/headless/components/base/ripple/ripple.js.map +1 -1
  351. package/dist/headless/components/dataDisplay/avatar/avatar.js +37 -33
  352. package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
  353. package/dist/headless/components/dataDisplay/card/card.js +44 -31
  354. package/dist/headless/components/dataDisplay/card/card.js.map +1 -1
  355. package/dist/headless/components/dataDisplay/carousel/carousel.js +102 -98
  356. package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
  357. package/dist/headless/components/dataDisplay/chat/chat.js +116 -57
  358. package/dist/headless/components/dataDisplay/chat/chat.js.map +1 -1
  359. package/dist/headless/components/dataDisplay/chat/chatComposer.js +21 -19
  360. package/dist/headless/components/dataDisplay/chat/chatComposer.js.map +1 -1
  361. package/dist/headless/components/dataDisplay/chat/chatIconButton.js +23 -13
  362. package/dist/headless/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  363. package/dist/headless/components/dataDisplay/chat/chatLayout.js +33 -29
  364. package/dist/headless/components/dataDisplay/chat/chatLayout.js.map +1 -1
  365. package/dist/headless/components/dataDisplay/chat/chatOverlayLayout.js +19 -17
  366. package/dist/headless/components/dataDisplay/chat/chatOverlayLayout.js.map +1 -1
  367. package/dist/headless/components/dataDisplay/chat/utils.js.map +1 -1
  368. package/dist/headless/components/dataDisplay/chip/chip.js +104 -63
  369. package/dist/headless/components/dataDisplay/chip/chip.js.map +1 -1
  370. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js +44 -39
  371. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  372. package/dist/headless/components/dataDisplay/dagView/dagLayout.js +284 -0
  373. package/dist/headless/components/dataDisplay/dagView/dagLayout.js.map +1 -0
  374. package/dist/headless/components/dataDisplay/dagView/dagView.js +501 -0
  375. package/dist/headless/components/dataDisplay/dagView/dagView.js.map +1 -0
  376. package/dist/headless/components/dataDisplay/dagView/panZoom.js +161 -0
  377. package/dist/headless/components/dataDisplay/dagView/panZoom.js.map +1 -0
  378. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js +15 -19
  379. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
  380. package/dist/headless/components/dataDisplay/diffStat/diffStat.js +68 -0
  381. package/dist/headless/components/dataDisplay/diffStat/diffStat.js.map +1 -0
  382. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js +114 -81
  383. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  384. package/dist/headless/components/dataDisplay/kanban/kanban.js +71 -61
  385. package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -1
  386. package/dist/headless/components/dataDisplay/kbd/kbd.js +45 -0
  387. package/dist/headless/components/dataDisplay/kbd/kbd.js.map +1 -0
  388. package/dist/headless/components/dataDisplay/kbd/kbdKeys.js +70 -0
  389. package/dist/headless/components/dataDisplay/kbd/kbdKeys.js.map +1 -0
  390. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +14 -12
  391. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  392. package/dist/headless/components/dataDisplay/list/list.js +16 -12
  393. package/dist/headless/components/dataDisplay/list/list.js.map +1 -1
  394. package/dist/headless/components/dataDisplay/list/listItem.js +58 -19
  395. package/dist/headless/components/dataDisplay/list/listItem.js.map +1 -1
  396. package/dist/headless/components/dataDisplay/meter/meter.js +14 -12
  397. package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -1
  398. package/dist/headless/components/dataDisplay/personChip/personChip.js +12 -10
  399. package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -1
  400. package/dist/headless/components/dataDisplay/qrCode/qrCode.js +86 -0
  401. package/dist/headless/components/dataDisplay/qrCode/qrCode.js.map +1 -0
  402. package/dist/headless/components/dataDisplay/qrCode/qrCodePath.js +20 -0
  403. package/dist/headless/components/dataDisplay/qrCode/qrCodePath.js.map +1 -0
  404. package/dist/headless/components/dataDisplay/stat/stat.js +43 -45
  405. package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -1
  406. package/dist/headless/components/dataDisplay/statusDot/statusDot.js +29 -0
  407. package/dist/headless/components/dataDisplay/statusDot/statusDot.js.map +1 -0
  408. package/dist/headless/components/dataDisplay/swimlanes/swimlanes.js +359 -0
  409. package/dist/headless/components/dataDisplay/swimlanes/swimlanes.js.map +1 -0
  410. package/dist/headless/components/dataDisplay/table/table.js +47 -23
  411. package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
  412. package/dist/headless/components/dataDisplay/table/tableBody.js +25 -12
  413. package/dist/headless/components/dataDisplay/table/tableBody.js.map +1 -1
  414. package/dist/headless/components/dataDisplay/table/tableCell.js +15 -14
  415. package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
  416. package/dist/headless/components/dataDisplay/table/tableColumns.js +254 -0
  417. package/dist/headless/components/dataDisplay/table/tableColumns.js.map +1 -0
  418. package/dist/headless/components/dataDisplay/table/tableEntities.js +6 -0
  419. package/dist/headless/components/dataDisplay/table/tableEntities.js.map +1 -0
  420. package/dist/headless/components/dataDisplay/table/tableHead.js +29 -11
  421. package/dist/headless/components/dataDisplay/table/tableHead.js.map +1 -1
  422. package/dist/headless/components/dataDisplay/table/tableHeadCell.js +51 -26
  423. package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  424. package/dist/headless/components/dataDisplay/table/tableHtmlText.js +121 -0
  425. package/dist/headless/components/dataDisplay/table/tableHtmlText.js.map +1 -0
  426. package/dist/headless/components/dataDisplay/table/tableRow.js +28 -13
  427. package/dist/headless/components/dataDisplay/table/tableRow.js.map +1 -1
  428. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +86 -58
  429. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  430. package/dist/headless/components/dataDisplay/treeView/treeView.js +164 -96
  431. package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
  432. package/dist/headless/components/dataDisplay/typography/typography.js +21 -25
  433. package/dist/headless/components/dataDisplay/typography/typography.js.map +1 -1
  434. package/dist/headless/components/feedBack/emptyState/emptyState.js +9 -5
  435. package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -1
  436. package/dist/headless/components/feedBack/message/message.js +17 -13
  437. package/dist/headless/components/feedBack/message/message.js.map +1 -1
  438. package/dist/headless/components/feedBack/modal/modal.js +71 -53
  439. package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
  440. package/dist/headless/components/feedBack/skeleton/skeleton.js +43 -35
  441. package/dist/headless/components/feedBack/skeleton/skeleton.js.map +1 -1
  442. package/dist/headless/components/feedBack/snackbar/snackbar.js +30 -26
  443. package/dist/headless/components/feedBack/snackbar/snackbar.js.map +1 -1
  444. package/dist/headless/components/feedBack/tooltip/tooltip.js +63 -39
  445. package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
  446. package/dist/headless/components/inputs/button/button.js +71 -36
  447. package/dist/headless/components/inputs/button/button.js.map +1 -1
  448. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js +22 -18
  449. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  450. package/dist/headless/components/inputs/checkbox/checkbox.js +59 -36
  451. package/dist/headless/components/inputs/checkbox/checkbox.js.map +1 -1
  452. package/dist/headless/components/inputs/composer/composer.js +274 -0
  453. package/dist/headless/components/inputs/composer/composer.js.map +1 -0
  454. package/dist/headless/components/inputs/composer/composerFiles.js +18 -0
  455. package/dist/headless/components/inputs/composer/composerFiles.js.map +1 -0
  456. package/dist/headless/components/inputs/composer/composerKeys.js +7 -0
  457. package/dist/headless/components/inputs/composer/composerKeys.js.map +1 -0
  458. package/dist/headless/components/inputs/datePicker/datePicker.js +106 -95
  459. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  460. package/dist/headless/components/inputs/datePicker/datePickerActionLabel.js +19 -17
  461. package/dist/headless/components/inputs/datePicker/datePickerActionLabel.js.map +1 -1
  462. package/dist/headless/components/inputs/datePicker/datePickerDay.js +41 -25
  463. package/dist/headless/components/inputs/datePicker/datePickerDay.js.map +1 -1
  464. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js +24 -14
  465. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  466. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +90 -79
  467. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  468. package/dist/headless/components/inputs/floatingButton/floatingButton.js +25 -15
  469. package/dist/headless/components/inputs/floatingButton/floatingButton.js.map +1 -1
  470. package/dist/headless/components/inputs/radioButton/radioButton.js +48 -34
  471. package/dist/headless/components/inputs/radioButton/radioButton.js.map +1 -1
  472. package/dist/headless/components/inputs/rating/rating.js +74 -53
  473. package/dist/headless/components/inputs/rating/rating.js.map +1 -1
  474. package/dist/headless/components/inputs/selectField/dropdownMenu.js +268 -143
  475. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  476. package/dist/headless/components/inputs/selectField/optionNavigation.js +37 -0
  477. package/dist/headless/components/inputs/selectField/optionNavigation.js.map +1 -0
  478. package/dist/headless/components/inputs/selectField/selectField.js +297 -126
  479. package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
  480. package/dist/headless/components/inputs/slider/slider.js +320 -197
  481. package/dist/headless/components/inputs/slider/slider.js.map +1 -1
  482. package/dist/headless/components/inputs/textField/textField.js +104 -51
  483. package/dist/headless/components/inputs/textField/textField.js.map +1 -1
  484. package/dist/headless/components/inputs/textField/textFieldWrapper.js +52 -45
  485. package/dist/headless/components/inputs/textField/textFieldWrapper.js.map +1 -1
  486. package/dist/headless/components/inputs/timePicker/timePicker.js +74 -63
  487. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  488. package/dist/headless/components/inputs/toggle/toggle.js +42 -30
  489. package/dist/headless/components/inputs/toggle/toggle.js.map +1 -1
  490. package/dist/headless/components/inputs/valueSlider/valueSlider.js +33 -28
  491. package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -1
  492. package/dist/headless/components/layout/appLayout/appLayout.js +29 -27
  493. package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
  494. package/dist/headless/components/layout/divider/divider.js +19 -17
  495. package/dist/headless/components/layout/divider/divider.js.map +1 -1
  496. package/dist/headless/components/layout/floatingWindow/floatingWindow.js +185 -182
  497. package/dist/headless/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  498. package/dist/headless/components/layout/grid/grid.js +54 -46
  499. package/dist/headless/components/layout/grid/grid.js.map +1 -1
  500. package/dist/headless/components/layout/page/page.js +12 -10
  501. package/dist/headless/components/layout/page/page.js.map +1 -1
  502. package/dist/headless/components/layout/pageHeader/pageHeader.js +22 -20
  503. package/dist/headless/components/layout/pageHeader/pageHeader.js.map +1 -1
  504. package/dist/headless/components/layout/sectionHeader/sectionHeader.js +39 -37
  505. package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -1
  506. package/dist/headless/components/layout/sheet/sheet.js +101 -85
  507. package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
  508. package/dist/headless/components/layout/stack/stack.js +23 -21
  509. package/dist/headless/components/layout/stack/stack.js.map +1 -1
  510. package/dist/headless/components/layout/tabGroups/tabGroups.js +893 -0
  511. package/dist/headless/components/layout/tabGroups/tabGroups.js.map +1 -0
  512. package/dist/headless/components/layout/tabGroups/tabGroupsFocus.js +192 -0
  513. package/dist/headless/components/layout/tabGroups/tabGroupsFocus.js.map +1 -0
  514. package/dist/headless/components/layout/tabGroups/tabGroupsLayout.js +480 -0
  515. package/dist/headless/components/layout/tabGroups/tabGroupsLayout.js.map +1 -0
  516. package/dist/headless/components/navigation/appBar/appBar.js +68 -28
  517. package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
  518. package/dist/headless/components/navigation/bottomBar/bottomBar.js +125 -120
  519. package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
  520. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js +13 -9
  521. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  522. package/dist/headless/components/navigation/commandPalette/commandPalette.js +455 -0
  523. package/dist/headless/components/navigation/commandPalette/commandPalette.js.map +1 -0
  524. package/dist/headless/components/navigation/commandPalette/commandPaletteFilter.js +15 -0
  525. package/dist/headless/components/navigation/commandPalette/commandPaletteFilter.js.map +1 -0
  526. package/dist/headless/components/navigation/commandPalette/commandPaletteNavigation.js +38 -0
  527. package/dist/headless/components/navigation/commandPalette/commandPaletteNavigation.js.map +1 -0
  528. package/dist/headless/components/navigation/menu/menu.js.map +1 -1
  529. package/dist/headless/components/navigation/menu/menuComponent.js +12 -23
  530. package/dist/headless/components/navigation/menu/menuComponent.js.map +1 -1
  531. package/dist/headless/components/navigation/menu/menuContext.js.map +1 -1
  532. package/dist/headless/components/navigation/menu/menuFloating.js +54 -46
  533. package/dist/headless/components/navigation/menu/menuFloating.js.map +1 -1
  534. package/dist/headless/components/navigation/menu/menuItem.js +58 -33
  535. package/dist/headless/components/navigation/menu/menuItem.js.map +1 -1
  536. package/dist/headless/components/navigation/menu/menuList.js +34 -16
  537. package/dist/headless/components/navigation/menu/menuList.js.map +1 -1
  538. package/dist/headless/components/navigation/menu/menuSubmenu.js +58 -38
  539. package/dist/headless/components/navigation/menu/menuSubmenu.js.map +1 -1
  540. package/dist/headless/components/navigation/pagination/pagination.js +23 -19
  541. package/dist/headless/components/navigation/pagination/pagination.js.map +1 -1
  542. package/dist/headless/components/navigation/sidebar/sidebar.js +39 -35
  543. package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
  544. package/dist/headless/components/navigation/stepper/stepper.js +38 -34
  545. package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
  546. package/dist/headless/components/navigation/tabs/tab/tab.js +175 -44
  547. package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
  548. package/dist/headless/components/navigation/tabs/tabPanel/tabPanel.js +32 -0
  549. package/dist/headless/components/navigation/tabs/tabPanel/tabPanel.js.map +1 -0
  550. package/dist/headless/components/navigation/tabs/tabs.js +389 -147
  551. package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
  552. package/dist/headless/components/navigation/tabs/tabs.utils.js +11 -0
  553. package/dist/headless/components/navigation/tabs/tabs.utils.js.map +1 -0
  554. package/dist/headless/components/navigation/tabs/tabsContext.js.map +1 -1
  555. package/dist/headless/index.js +405 -363
  556. package/dist/headless/index.js.map +1 -1
  557. package/dist/headless/primitives/createDismissOnEscape.js +14 -0
  558. package/dist/headless/primitives/createDismissOnEscape.js.map +1 -0
  559. package/dist/headless/primitives/createFocusTrap.js +17 -16
  560. package/dist/headless/primitives/createFocusTrap.js.map +1 -1
  561. package/dist/headless/primitives/createHelperText.js +14 -0
  562. package/dist/headless/primitives/createHelperText.js.map +1 -0
  563. package/dist/headless/primitives/createKeyboardShortcut.js +16 -0
  564. package/dist/headless/primitives/createKeyboardShortcut.js.map +1 -0
  565. package/dist/headless/primitives/mergeStyle.js +9 -0
  566. package/dist/headless/primitives/mergeStyle.js.map +1 -0
  567. package/dist/headless/primitives/overlayLayer.js +14 -7
  568. package/dist/headless/primitives/overlayLayer.js.map +1 -1
  569. package/dist/headless/primitives/restoreFocus.js +10 -0
  570. package/dist/headless/primitives/restoreFocus.js.map +1 -0
  571. package/dist/headless/source/components/base/animateHeight/animateHeight.jsx +7 -11
  572. package/dist/headless/source/components/base/animateHeight/animateHeight.jsx.map +1 -1
  573. package/dist/headless/source/components/base/icon/icon.jsx +10 -12
  574. package/dist/headless/source/components/base/icon/icon.jsx.map +1 -1
  575. package/dist/headless/source/components/base/ripple/ripple.jsx +16 -4
  576. package/dist/headless/source/components/base/ripple/ripple.jsx.map +1 -1
  577. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx +14 -7
  578. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  579. package/dist/headless/source/components/dataDisplay/card/card.jsx +31 -12
  580. package/dist/headless/source/components/dataDisplay/card/card.jsx.map +1 -1
  581. package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx +9 -3
  582. package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
  583. package/dist/headless/source/components/dataDisplay/chart/chart.jsx +5 -4
  584. package/dist/headless/source/components/dataDisplay/chart/chart.jsx.map +1 -1
  585. package/dist/headless/source/components/dataDisplay/chat/chat.jsx +38 -4
  586. package/dist/headless/source/components/dataDisplay/chat/chat.jsx.map +1 -1
  587. package/dist/headless/source/components/dataDisplay/chat/chatComposer.jsx +1 -0
  588. package/dist/headless/source/components/dataDisplay/chat/chatComposer.jsx.map +1 -1
  589. package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx +13 -3
  590. package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -1
  591. package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx +6 -7
  592. package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -1
  593. package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx +5 -6
  594. package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -1
  595. package/dist/headless/source/components/dataDisplay/chat/index.js.map +1 -1
  596. package/dist/headless/source/components/dataDisplay/chat/utils.js.map +2 -2
  597. package/dist/headless/source/components/dataDisplay/chip/chip.jsx +55 -19
  598. package/dist/headless/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  599. package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx +14 -11
  600. package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
  601. package/dist/headless/source/components/dataDisplay/dagView/dagLayout.js +383 -0
  602. package/dist/headless/source/components/dataDisplay/dagView/dagLayout.js.map +7 -0
  603. package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx +648 -0
  604. package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx.map +1 -0
  605. package/dist/headless/source/components/dataDisplay/dagView/index.js +10 -0
  606. package/dist/headless/source/components/dataDisplay/dagView/index.js.map +7 -0
  607. package/dist/headless/source/components/dataDisplay/dagView/panZoom.js +247 -0
  608. package/dist/headless/source/components/dataDisplay/dagView/panZoom.js.map +7 -0
  609. package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx +4 -6
  610. package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -1
  611. package/dist/headless/source/components/dataDisplay/diffStat/diffStat.jsx +76 -0
  612. package/dist/headless/source/components/dataDisplay/diffStat/diffStat.jsx.map +1 -0
  613. package/dist/headless/source/components/dataDisplay/diffStat/index.js +19 -0
  614. package/dist/headless/source/components/dataDisplay/diffStat/index.js.map +7 -0
  615. package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +83 -9
  616. package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
  617. package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx +20 -10
  618. package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx.map +1 -1
  619. package/dist/headless/source/components/dataDisplay/kbd/index.js +9 -0
  620. package/dist/headless/source/components/dataDisplay/kbd/index.js.map +7 -0
  621. package/dist/headless/source/components/dataDisplay/kbd/kbd.jsx +48 -0
  622. package/dist/headless/source/components/dataDisplay/kbd/kbd.jsx.map +1 -0
  623. package/dist/headless/source/components/dataDisplay/kbd/kbdKeys.js +79 -0
  624. package/dist/headless/source/components/dataDisplay/kbd/kbdKeys.js.map +7 -0
  625. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx +1 -1
  626. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
  627. package/dist/headless/source/components/dataDisplay/list/list.jsx +3 -3
  628. package/dist/headless/source/components/dataDisplay/list/list.jsx.map +1 -1
  629. package/dist/headless/source/components/dataDisplay/list/listItem.jsx +47 -16
  630. package/dist/headless/source/components/dataDisplay/list/listItem.jsx.map +1 -1
  631. package/dist/headless/source/components/dataDisplay/meter/meter.jsx +3 -2
  632. package/dist/headless/source/components/dataDisplay/meter/meter.jsx.map +1 -1
  633. package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx +3 -2
  634. package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx.map +1 -1
  635. package/dist/headless/source/components/dataDisplay/qrCode/index.js +6 -0
  636. package/dist/headless/source/components/dataDisplay/qrCode/index.js.map +7 -0
  637. package/dist/headless/source/components/dataDisplay/qrCode/qrCode.jsx +94 -0
  638. package/dist/headless/source/components/dataDisplay/qrCode/qrCode.jsx.map +1 -0
  639. package/dist/headless/source/components/dataDisplay/qrCode/qrCodePath.js +24 -0
  640. package/dist/headless/source/components/dataDisplay/qrCode/qrCodePath.js.map +7 -0
  641. package/dist/headless/source/components/dataDisplay/stat/stat.jsx +7 -8
  642. package/dist/headless/source/components/dataDisplay/stat/stat.jsx.map +1 -1
  643. package/dist/headless/source/components/dataDisplay/statusDot/index.js +6 -0
  644. package/dist/headless/source/components/dataDisplay/statusDot/index.js.map +7 -0
  645. package/dist/headless/source/components/dataDisplay/statusDot/statusDot.jsx +28 -0
  646. package/dist/headless/source/components/dataDisplay/statusDot/statusDot.jsx.map +1 -0
  647. package/dist/headless/source/components/dataDisplay/swimlanes/index.js +15 -0
  648. package/dist/headless/source/components/dataDisplay/swimlanes/index.js.map +7 -0
  649. package/dist/headless/source/components/dataDisplay/swimlanes/swimlanes.jsx +450 -0
  650. package/dist/headless/source/components/dataDisplay/swimlanes/swimlanes.jsx.map +1 -0
  651. package/dist/headless/source/components/dataDisplay/table/table.jsx +18 -1
  652. package/dist/headless/source/components/dataDisplay/table/table.jsx.map +1 -1
  653. package/dist/headless/source/components/dataDisplay/table/tableBody.jsx +6 -1
  654. package/dist/headless/source/components/dataDisplay/table/tableBody.jsx.map +1 -1
  655. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx +13 -4
  656. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
  657. package/dist/headless/source/components/dataDisplay/table/tableColumns.jsx +311 -0
  658. package/dist/headless/source/components/dataDisplay/table/tableColumns.jsx.map +1 -0
  659. package/dist/headless/source/components/dataDisplay/table/tableEntities.js +7 -0
  660. package/dist/headless/source/components/dataDisplay/table/tableEntities.js.map +7 -0
  661. package/dist/headless/source/components/dataDisplay/table/tableHead.jsx +14 -1
  662. package/dist/headless/source/components/dataDisplay/table/tableHead.jsx.map +1 -1
  663. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx +51 -33
  664. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
  665. package/dist/headless/source/components/dataDisplay/table/tableHtmlText.js +140 -0
  666. package/dist/headless/source/components/dataDisplay/table/tableHtmlText.js.map +7 -0
  667. package/dist/headless/source/components/dataDisplay/table/tableRow.jsx +11 -5
  668. package/dist/headless/source/components/dataDisplay/table/tableRow.jsx.map +1 -1
  669. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx +48 -19
  670. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
  671. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx +127 -39
  672. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  673. package/dist/headless/source/components/dataDisplay/typography/typography.jsx +2 -6
  674. package/dist/headless/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  675. package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx +12 -2
  676. package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx.map +1 -1
  677. package/dist/headless/source/components/feedBack/message/message.jsx +5 -4
  678. package/dist/headless/source/components/feedBack/message/message.jsx.map +1 -1
  679. package/dist/headless/source/components/feedBack/modal/modal.jsx +39 -6
  680. package/dist/headless/source/components/feedBack/modal/modal.jsx.map +1 -1
  681. package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx +12 -5
  682. package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
  683. package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx +3 -3
  684. package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
  685. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx +52 -5
  686. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  687. package/dist/headless/source/components/inputs/button/button.jsx +14 -5
  688. package/dist/headless/source/components/inputs/button/button.jsx.map +1 -1
  689. package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx +4 -3
  690. package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
  691. package/dist/headless/source/components/inputs/checkbox/checkbox.jsx +27 -4
  692. package/dist/headless/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
  693. package/dist/headless/source/components/inputs/composer/composer.jsx +319 -0
  694. package/dist/headless/source/components/inputs/composer/composer.jsx.map +1 -0
  695. package/dist/headless/source/components/inputs/composer/composerFiles.js +27 -0
  696. package/dist/headless/source/components/inputs/composer/composerFiles.js.map +7 -0
  697. package/dist/headless/source/components/inputs/composer/composerKeys.js +11 -0
  698. package/dist/headless/source/components/inputs/composer/composerKeys.js.map +7 -0
  699. package/dist/headless/source/components/inputs/composer/index.js +5 -0
  700. package/dist/headless/source/components/inputs/composer/index.js.map +7 -0
  701. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +13 -0
  702. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  703. package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx +4 -1
  704. package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -1
  705. package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx +12 -12
  706. package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -1
  707. package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx +13 -3
  708. package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -1
  709. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx +13 -0
  710. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
  711. package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx +12 -1
  712. package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
  713. package/dist/headless/source/components/inputs/radioButton/radioButton.jsx +16 -4
  714. package/dist/headless/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
  715. package/dist/headless/source/components/inputs/rating/rating.jsx +49 -20
  716. package/dist/headless/source/components/inputs/rating/rating.jsx.map +1 -1
  717. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx +222 -61
  718. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
  719. package/dist/headless/source/components/inputs/selectField/optionNavigation.js +51 -0
  720. package/dist/headless/source/components/inputs/selectField/optionNavigation.js.map +7 -0
  721. package/dist/headless/source/components/inputs/selectField/selectField.jsx +318 -92
  722. package/dist/headless/source/components/inputs/selectField/selectField.jsx.map +1 -1
  723. package/dist/headless/source/components/inputs/slider/slider.jsx +89 -18
  724. package/dist/headless/source/components/inputs/slider/slider.jsx.map +1 -1
  725. package/dist/headless/source/components/inputs/textField/textField.jsx +47 -9
  726. package/dist/headless/source/components/inputs/textField/textField.jsx.map +1 -1
  727. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx +20 -6
  728. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
  729. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx +13 -0
  730. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  731. package/dist/headless/source/components/inputs/toggle/toggle.jsx +14 -2
  732. package/dist/headless/source/components/inputs/toggle/toggle.jsx.map +1 -1
  733. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx +7 -2
  734. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
  735. package/dist/headless/source/components/layout/appLayout/appLayout.jsx +8 -6
  736. package/dist/headless/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  737. package/dist/headless/source/components/layout/divider/divider.jsx +6 -5
  738. package/dist/headless/source/components/layout/divider/divider.jsx.map +1 -1
  739. package/dist/headless/source/components/layout/floatingWindow/floatingWindow.jsx +17 -11
  740. package/dist/headless/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
  741. package/dist/headless/source/components/layout/grid/grid.jsx +20 -8
  742. package/dist/headless/source/components/layout/grid/grid.jsx.map +1 -1
  743. package/dist/headless/source/components/layout/page/page.jsx +10 -2
  744. package/dist/headless/source/components/layout/page/page.jsx.map +1 -1
  745. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx +3 -2
  746. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  747. package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx +5 -5
  748. package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -1
  749. package/dist/headless/source/components/layout/sheet/sheet.jsx +39 -19
  750. package/dist/headless/source/components/layout/sheet/sheet.jsx.map +1 -1
  751. package/dist/headless/source/components/layout/stack/stack.jsx +15 -11
  752. package/dist/headless/source/components/layout/stack/stack.jsx.map +1 -1
  753. package/dist/headless/source/components/layout/tabGroups/index.js +8 -0
  754. package/dist/headless/source/components/layout/tabGroups/index.js.map +7 -0
  755. package/dist/headless/source/components/layout/tabGroups/tabGroups.jsx +1117 -0
  756. package/dist/headless/source/components/layout/tabGroups/tabGroups.jsx.map +1 -0
  757. package/dist/headless/source/components/layout/tabGroups/tabGroupsFocus.js +222 -0
  758. package/dist/headless/source/components/layout/tabGroups/tabGroupsFocus.js.map +7 -0
  759. package/dist/headless/source/components/layout/tabGroups/tabGroupsLayout.js +629 -0
  760. package/dist/headless/source/components/layout/tabGroups/tabGroupsLayout.js.map +7 -0
  761. package/dist/headless/source/components/navigation/appBar/appBar.jsx +30 -5
  762. package/dist/headless/source/components/navigation/appBar/appBar.jsx.map +1 -1
  763. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx +48 -40
  764. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  765. package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx +9 -2
  766. package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
  767. package/dist/headless/source/components/navigation/commandPalette/commandPalette.jsx +506 -0
  768. package/dist/headless/source/components/navigation/commandPalette/commandPalette.jsx.map +1 -0
  769. package/dist/headless/source/components/navigation/commandPalette/commandPaletteFilter.js +16 -0
  770. package/dist/headless/source/components/navigation/commandPalette/commandPaletteFilter.js.map +7 -0
  771. package/dist/headless/source/components/navigation/commandPalette/commandPaletteNavigation.js +54 -0
  772. package/dist/headless/source/components/navigation/commandPalette/commandPaletteNavigation.js.map +7 -0
  773. package/dist/headless/source/components/navigation/commandPalette/commandPaletteTypes.js +1 -0
  774. package/dist/headless/source/components/navigation/commandPalette/commandPaletteTypes.js.map +7 -0
  775. package/dist/headless/source/components/navigation/commandPalette/index.js +11 -0
  776. package/dist/headless/source/components/navigation/commandPalette/index.js.map +7 -0
  777. package/dist/headless/source/components/navigation/menu/menu.jsx.map +1 -1
  778. package/dist/headless/source/components/navigation/menu/menuComponent.jsx +3 -4
  779. package/dist/headless/source/components/navigation/menu/menuComponent.jsx.map +1 -1
  780. package/dist/headless/source/components/navigation/menu/menuContext.js.map +2 -2
  781. package/dist/headless/source/components/navigation/menu/menuFloating.jsx +26 -4
  782. package/dist/headless/source/components/navigation/menu/menuFloating.jsx.map +1 -1
  783. package/dist/headless/source/components/navigation/menu/menuItem.jsx +22 -2
  784. package/dist/headless/source/components/navigation/menu/menuItem.jsx.map +1 -1
  785. package/dist/headless/source/components/navigation/menu/menuList.jsx +19 -7
  786. package/dist/headless/source/components/navigation/menu/menuList.jsx.map +1 -1
  787. package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx +36 -4
  788. package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx.map +1 -1
  789. package/dist/headless/source/components/navigation/pagination/pagination.jsx +4 -3
  790. package/dist/headless/source/components/navigation/pagination/pagination.jsx.map +1 -1
  791. package/dist/headless/source/components/navigation/sidebar/sidebar.jsx +6 -3
  792. package/dist/headless/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
  793. package/dist/headless/source/components/navigation/stepper/stepper.jsx +14 -9
  794. package/dist/headless/source/components/navigation/stepper/stepper.jsx.map +1 -1
  795. package/dist/headless/source/components/navigation/tabs/index.js +2 -0
  796. package/dist/headless/source/components/navigation/tabs/index.js.map +2 -2
  797. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx +144 -21
  798. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  799. package/dist/headless/source/components/navigation/tabs/tabPanel/tabPanel.jsx +28 -0
  800. package/dist/headless/source/components/navigation/tabs/tabPanel/tabPanel.jsx.map +1 -0
  801. package/dist/headless/source/components/navigation/tabs/tabs.jsx +392 -20
  802. package/dist/headless/source/components/navigation/tabs/tabs.jsx.map +1 -1
  803. package/dist/headless/source/components/navigation/tabs/tabs.utils.js +18 -0
  804. package/dist/headless/source/components/navigation/tabs/tabs.utils.js.map +7 -0
  805. package/dist/headless/source/components/navigation/tabs/tabsContext.js.map +2 -2
  806. package/dist/headless/source/connects/rt/table/table.jsx +7 -2
  807. package/dist/headless/source/connects/rt/table/table.jsx.map +1 -1
  808. package/dist/headless/source/index.js +44 -1
  809. package/dist/headless/source/index.js.map +2 -2
  810. package/dist/headless/source/primitives/createDismissOnEscape.js +17 -0
  811. package/dist/headless/source/primitives/createDismissOnEscape.js.map +7 -0
  812. package/dist/headless/source/primitives/createFocusTrap.js +9 -3
  813. package/dist/headless/source/primitives/createFocusTrap.js.map +2 -2
  814. package/dist/headless/source/primitives/createHelperText.js +16 -0
  815. package/dist/headless/source/primitives/createHelperText.js.map +7 -0
  816. package/dist/headless/source/primitives/createKeyboardShortcut.js +23 -0
  817. package/dist/headless/source/primitives/createKeyboardShortcut.js.map +7 -0
  818. package/dist/headless/source/primitives/mergeStyle.js +15 -0
  819. package/dist/headless/source/primitives/mergeStyle.js.map +7 -0
  820. package/dist/headless/source/primitives/overlayLayer.js +10 -2
  821. package/dist/headless/source/primitives/overlayLayer.js.map +2 -2
  822. package/dist/headless/source/primitives/restoreFocus.js +14 -0
  823. package/dist/headless/source/primitives/restoreFocus.js.map +7 -0
  824. package/dist/headless/source/utils/controlProps.js +22 -0
  825. package/dist/headless/source/utils/controlProps.js.map +7 -0
  826. package/dist/headless/source/utils/keyboardShortcut.js +74 -0
  827. package/dist/headless/source/utils/keyboardShortcut.js.map +7 -0
  828. package/dist/headless/source/utils/linkAttrs.js +16 -0
  829. package/dist/headless/source/utils/linkAttrs.js.map +7 -0
  830. package/dist/headless/source/utils/ownClick.js +41 -0
  831. package/dist/headless/source/utils/ownClick.js.map +7 -0
  832. package/dist/headless/utils/controlProps.js +20 -0
  833. package/dist/headless/utils/controlProps.js.map +1 -0
  834. package/dist/headless/utils/keyboardShortcut.js +48 -0
  835. package/dist/headless/utils/keyboardShortcut.js.map +1 -0
  836. package/dist/headless/utils/linkAttrs.js +13 -0
  837. package/dist/headless/utils/linkAttrs.js.map +1 -0
  838. package/dist/headless/utils/ownClick.js +39 -0
  839. package/dist/headless/utils/ownClick.js.map +1 -0
  840. package/dist/index.d.ts +26 -3
  841. package/dist/index.js +405 -363
  842. package/dist/index.js.map +1 -1
  843. package/dist/primitives/createDismissOnEscape.d.ts +12 -0
  844. package/dist/primitives/createDismissOnEscape.js +14 -0
  845. package/dist/primitives/createDismissOnEscape.js.map +1 -0
  846. package/dist/primitives/createFocusTrap.d.ts +7 -0
  847. package/dist/primitives/createFocusTrap.js +17 -16
  848. package/dist/primitives/createFocusTrap.js.map +1 -1
  849. package/dist/primitives/createHelperText.d.ts +26 -0
  850. package/dist/primitives/createHelperText.js +14 -0
  851. package/dist/primitives/createHelperText.js.map +1 -0
  852. package/dist/primitives/createKeyboardShortcut.d.ts +23 -0
  853. package/dist/primitives/createKeyboardShortcut.js +16 -0
  854. package/dist/primitives/createKeyboardShortcut.js.map +1 -0
  855. package/dist/primitives/mergeStyle.d.ts +19 -0
  856. package/dist/primitives/mergeStyle.js +9 -0
  857. package/dist/primitives/mergeStyle.js.map +1 -0
  858. package/dist/primitives/overlayLayer.d.ts +15 -3
  859. package/dist/primitives/overlayLayer.js +14 -7
  860. package/dist/primitives/overlayLayer.js.map +1 -1
  861. package/dist/primitives/restoreFocus.d.ts +8 -0
  862. package/dist/primitives/restoreFocus.js +10 -0
  863. package/dist/primitives/restoreFocus.js.map +1 -0
  864. package/dist/source/components/base/animateHeight/animateHeight.jsx +7 -11
  865. package/dist/source/components/base/animateHeight/animateHeight.jsx.map +1 -1
  866. package/dist/source/components/base/icon/icon.jsx +10 -12
  867. package/dist/source/components/base/icon/icon.jsx.map +1 -1
  868. package/dist/source/components/base/ripple/ripple.jsx +16 -4
  869. package/dist/source/components/base/ripple/ripple.jsx.map +1 -1
  870. package/dist/source/components/dataDisplay/avatar/avatar.jsx +14 -7
  871. package/dist/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  872. package/dist/source/components/dataDisplay/card/card.jsx +31 -12
  873. package/dist/source/components/dataDisplay/card/card.jsx.map +1 -1
  874. package/dist/source/components/dataDisplay/carousel/carousel.jsx +9 -3
  875. package/dist/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
  876. package/dist/source/components/dataDisplay/chart/chart.jsx +5 -4
  877. package/dist/source/components/dataDisplay/chart/chart.jsx.map +1 -1
  878. package/dist/source/components/dataDisplay/chat/chat.jsx +38 -4
  879. package/dist/source/components/dataDisplay/chat/chat.jsx.map +1 -1
  880. package/dist/source/components/dataDisplay/chat/chatComposer.jsx +1 -0
  881. package/dist/source/components/dataDisplay/chat/chatComposer.jsx.map +1 -1
  882. package/dist/source/components/dataDisplay/chat/chatIconButton.jsx +13 -3
  883. package/dist/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -1
  884. package/dist/source/components/dataDisplay/chat/chatLayout.jsx +6 -7
  885. package/dist/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -1
  886. package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx +5 -6
  887. package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -1
  888. package/dist/source/components/dataDisplay/chat/index.js.map +1 -1
  889. package/dist/source/components/dataDisplay/chat/utils.js.map +2 -2
  890. package/dist/source/components/dataDisplay/chip/chip.jsx +55 -19
  891. package/dist/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  892. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx +14 -11
  893. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
  894. package/dist/source/components/dataDisplay/dagView/dagLayout.js +383 -0
  895. package/dist/source/components/dataDisplay/dagView/dagLayout.js.map +7 -0
  896. package/dist/source/components/dataDisplay/dagView/dagView.jsx +650 -0
  897. package/dist/source/components/dataDisplay/dagView/dagView.jsx.map +1 -0
  898. package/dist/source/components/dataDisplay/dagView/index.js +10 -0
  899. package/dist/source/components/dataDisplay/dagView/index.js.map +7 -0
  900. package/dist/source/components/dataDisplay/dagView/panZoom.js +247 -0
  901. package/dist/source/components/dataDisplay/dagView/panZoom.js.map +7 -0
  902. package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx +4 -6
  903. package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -1
  904. package/dist/source/components/dataDisplay/diffStat/diffStat.jsx +78 -0
  905. package/dist/source/components/dataDisplay/diffStat/diffStat.jsx.map +1 -0
  906. package/dist/source/components/dataDisplay/diffStat/index.js +19 -0
  907. package/dist/source/components/dataDisplay/diffStat/index.js.map +7 -0
  908. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +83 -9
  909. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
  910. package/dist/source/components/dataDisplay/kanban/kanban.jsx +20 -10
  911. package/dist/source/components/dataDisplay/kanban/kanban.jsx.map +1 -1
  912. package/dist/source/components/dataDisplay/kbd/index.js +9 -0
  913. package/dist/source/components/dataDisplay/kbd/index.js.map +7 -0
  914. package/dist/source/components/dataDisplay/kbd/kbd.jsx +50 -0
  915. package/dist/source/components/dataDisplay/kbd/kbd.jsx.map +1 -0
  916. package/dist/source/components/dataDisplay/kbd/kbdKeys.js +79 -0
  917. package/dist/source/components/dataDisplay/kbd/kbdKeys.js.map +7 -0
  918. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx +1 -1
  919. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
  920. package/dist/source/components/dataDisplay/list/list.jsx +3 -3
  921. package/dist/source/components/dataDisplay/list/list.jsx.map +1 -1
  922. package/dist/source/components/dataDisplay/list/listItem.jsx +47 -16
  923. package/dist/source/components/dataDisplay/list/listItem.jsx.map +1 -1
  924. package/dist/source/components/dataDisplay/meter/meter.jsx +3 -2
  925. package/dist/source/components/dataDisplay/meter/meter.jsx.map +1 -1
  926. package/dist/source/components/dataDisplay/personChip/personChip.jsx +3 -2
  927. package/dist/source/components/dataDisplay/personChip/personChip.jsx.map +1 -1
  928. package/dist/source/components/dataDisplay/qrCode/index.js +6 -0
  929. package/dist/source/components/dataDisplay/qrCode/index.js.map +7 -0
  930. package/dist/source/components/dataDisplay/qrCode/qrCode.jsx +96 -0
  931. package/dist/source/components/dataDisplay/qrCode/qrCode.jsx.map +1 -0
  932. package/dist/source/components/dataDisplay/qrCode/qrCodePath.js +24 -0
  933. package/dist/source/components/dataDisplay/qrCode/qrCodePath.js.map +7 -0
  934. package/dist/source/components/dataDisplay/stat/stat.jsx +7 -8
  935. package/dist/source/components/dataDisplay/stat/stat.jsx.map +1 -1
  936. package/dist/source/components/dataDisplay/statusDot/index.js +6 -0
  937. package/dist/source/components/dataDisplay/statusDot/index.js.map +7 -0
  938. package/dist/source/components/dataDisplay/statusDot/statusDot.jsx +30 -0
  939. package/dist/source/components/dataDisplay/statusDot/statusDot.jsx.map +1 -0
  940. package/dist/source/components/dataDisplay/swimlanes/index.js +15 -0
  941. package/dist/source/components/dataDisplay/swimlanes/index.js.map +7 -0
  942. package/dist/source/components/dataDisplay/swimlanes/swimlanes.jsx +452 -0
  943. package/dist/source/components/dataDisplay/swimlanes/swimlanes.jsx.map +1 -0
  944. package/dist/source/components/dataDisplay/table/table.jsx +18 -1
  945. package/dist/source/components/dataDisplay/table/table.jsx.map +1 -1
  946. package/dist/source/components/dataDisplay/table/tableBody.jsx +6 -1
  947. package/dist/source/components/dataDisplay/table/tableBody.jsx.map +1 -1
  948. package/dist/source/components/dataDisplay/table/tableCell.jsx +13 -4
  949. package/dist/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
  950. package/dist/source/components/dataDisplay/table/tableColumns.jsx +311 -0
  951. package/dist/source/components/dataDisplay/table/tableColumns.jsx.map +1 -0
  952. package/dist/source/components/dataDisplay/table/tableEntities.js +7 -0
  953. package/dist/source/components/dataDisplay/table/tableEntities.js.map +7 -0
  954. package/dist/source/components/dataDisplay/table/tableHead.jsx +14 -1
  955. package/dist/source/components/dataDisplay/table/tableHead.jsx.map +1 -1
  956. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx +51 -33
  957. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
  958. package/dist/source/components/dataDisplay/table/tableHtmlText.js +140 -0
  959. package/dist/source/components/dataDisplay/table/tableHtmlText.js.map +7 -0
  960. package/dist/source/components/dataDisplay/table/tableRow.jsx +11 -5
  961. package/dist/source/components/dataDisplay/table/tableRow.jsx.map +1 -1
  962. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx +48 -19
  963. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
  964. package/dist/source/components/dataDisplay/treeView/treeView.jsx +127 -39
  965. package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  966. package/dist/source/components/dataDisplay/typography/typography.jsx +2 -6
  967. package/dist/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  968. package/dist/source/components/feedBack/emptyState/emptyState.jsx +12 -2
  969. package/dist/source/components/feedBack/emptyState/emptyState.jsx.map +1 -1
  970. package/dist/source/components/feedBack/message/message.jsx +5 -4
  971. package/dist/source/components/feedBack/message/message.jsx.map +1 -1
  972. package/dist/source/components/feedBack/modal/modal.jsx +39 -6
  973. package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
  974. package/dist/source/components/feedBack/skeleton/skeleton.jsx +12 -5
  975. package/dist/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
  976. package/dist/source/components/feedBack/snackbar/snackbar.jsx +3 -3
  977. package/dist/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
  978. package/dist/source/components/feedBack/tooltip/tooltip.jsx +52 -5
  979. package/dist/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  980. package/dist/source/components/inputs/button/button.jsx +14 -5
  981. package/dist/source/components/inputs/button/button.jsx.map +1 -1
  982. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx +4 -3
  983. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
  984. package/dist/source/components/inputs/checkbox/checkbox.jsx +27 -4
  985. package/dist/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
  986. package/dist/source/components/inputs/composer/composer.jsx +321 -0
  987. package/dist/source/components/inputs/composer/composer.jsx.map +1 -0
  988. package/dist/source/components/inputs/composer/composerFiles.js +27 -0
  989. package/dist/source/components/inputs/composer/composerFiles.js.map +7 -0
  990. package/dist/source/components/inputs/composer/composerKeys.js +11 -0
  991. package/dist/source/components/inputs/composer/composerKeys.js.map +7 -0
  992. package/dist/source/components/inputs/composer/index.js +5 -0
  993. package/dist/source/components/inputs/composer/index.js.map +7 -0
  994. package/dist/source/components/inputs/datePicker/datePicker.jsx +13 -0
  995. package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  996. package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx +4 -1
  997. package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -1
  998. package/dist/source/components/inputs/datePicker/datePickerDay.jsx +12 -12
  999. package/dist/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -1
  1000. package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx +13 -3
  1001. package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -1
  1002. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx +13 -0
  1003. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
  1004. package/dist/source/components/inputs/floatingButton/floatingButton.jsx +12 -1
  1005. package/dist/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
  1006. package/dist/source/components/inputs/radioButton/radioButton.jsx +16 -4
  1007. package/dist/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
  1008. package/dist/source/components/inputs/rating/rating.jsx +49 -20
  1009. package/dist/source/components/inputs/rating/rating.jsx.map +1 -1
  1010. package/dist/source/components/inputs/selectField/dropdownMenu.jsx +222 -61
  1011. package/dist/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
  1012. package/dist/source/components/inputs/selectField/optionNavigation.js +51 -0
  1013. package/dist/source/components/inputs/selectField/optionNavigation.js.map +7 -0
  1014. package/dist/source/components/inputs/selectField/selectField.jsx +318 -92
  1015. package/dist/source/components/inputs/selectField/selectField.jsx.map +1 -1
  1016. package/dist/source/components/inputs/slider/slider.jsx +89 -18
  1017. package/dist/source/components/inputs/slider/slider.jsx.map +1 -1
  1018. package/dist/source/components/inputs/textField/textField.jsx +47 -9
  1019. package/dist/source/components/inputs/textField/textField.jsx.map +1 -1
  1020. package/dist/source/components/inputs/textField/textFieldWrapper.jsx +20 -6
  1021. package/dist/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
  1022. package/dist/source/components/inputs/timePicker/timePicker.jsx +13 -0
  1023. package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  1024. package/dist/source/components/inputs/toggle/toggle.jsx +14 -2
  1025. package/dist/source/components/inputs/toggle/toggle.jsx.map +1 -1
  1026. package/dist/source/components/inputs/valueSlider/valueSlider.jsx +7 -2
  1027. package/dist/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
  1028. package/dist/source/components/layout/appLayout/appLayout.jsx +8 -6
  1029. package/dist/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  1030. package/dist/source/components/layout/divider/divider.jsx +6 -5
  1031. package/dist/source/components/layout/divider/divider.jsx.map +1 -1
  1032. package/dist/source/components/layout/floatingWindow/floatingWindow.jsx +17 -11
  1033. package/dist/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
  1034. package/dist/source/components/layout/grid/grid.jsx +20 -8
  1035. package/dist/source/components/layout/grid/grid.jsx.map +1 -1
  1036. package/dist/source/components/layout/page/page.jsx +10 -2
  1037. package/dist/source/components/layout/page/page.jsx.map +1 -1
  1038. package/dist/source/components/layout/pageHeader/pageHeader.jsx +3 -2
  1039. package/dist/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  1040. package/dist/source/components/layout/sectionHeader/sectionHeader.jsx +5 -5
  1041. package/dist/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -1
  1042. package/dist/source/components/layout/sheet/sheet.jsx +39 -19
  1043. package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
  1044. package/dist/source/components/layout/stack/stack.jsx +15 -11
  1045. package/dist/source/components/layout/stack/stack.jsx.map +1 -1
  1046. package/dist/source/components/layout/tabGroups/index.js +8 -0
  1047. package/dist/source/components/layout/tabGroups/index.js.map +7 -0
  1048. package/dist/source/components/layout/tabGroups/tabGroups.jsx +1119 -0
  1049. package/dist/source/components/layout/tabGroups/tabGroups.jsx.map +1 -0
  1050. package/dist/source/components/layout/tabGroups/tabGroupsFocus.js +222 -0
  1051. package/dist/source/components/layout/tabGroups/tabGroupsFocus.js.map +7 -0
  1052. package/dist/source/components/layout/tabGroups/tabGroupsLayout.js +629 -0
  1053. package/dist/source/components/layout/tabGroups/tabGroupsLayout.js.map +7 -0
  1054. package/dist/source/components/navigation/appBar/appBar.jsx +30 -5
  1055. package/dist/source/components/navigation/appBar/appBar.jsx.map +1 -1
  1056. package/dist/source/components/navigation/bottomBar/bottomBar.jsx +48 -40
  1057. package/dist/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  1058. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx +9 -2
  1059. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
  1060. package/dist/source/components/navigation/commandPalette/commandPalette.jsx +508 -0
  1061. package/dist/source/components/navigation/commandPalette/commandPalette.jsx.map +1 -0
  1062. package/dist/source/components/navigation/commandPalette/commandPaletteFilter.js +16 -0
  1063. package/dist/source/components/navigation/commandPalette/commandPaletteFilter.js.map +7 -0
  1064. package/dist/source/components/navigation/commandPalette/commandPaletteNavigation.js +54 -0
  1065. package/dist/source/components/navigation/commandPalette/commandPaletteNavigation.js.map +7 -0
  1066. package/dist/source/components/navigation/commandPalette/commandPaletteTypes.js +1 -0
  1067. package/dist/source/components/navigation/commandPalette/commandPaletteTypes.js.map +7 -0
  1068. package/dist/source/components/navigation/commandPalette/index.js +11 -0
  1069. package/dist/source/components/navigation/commandPalette/index.js.map +7 -0
  1070. package/dist/source/components/navigation/menu/menu.jsx.map +1 -1
  1071. package/dist/source/components/navigation/menu/menuComponent.jsx +3 -4
  1072. package/dist/source/components/navigation/menu/menuComponent.jsx.map +1 -1
  1073. package/dist/source/components/navigation/menu/menuContext.js.map +2 -2
  1074. package/dist/source/components/navigation/menu/menuFloating.jsx +26 -4
  1075. package/dist/source/components/navigation/menu/menuFloating.jsx.map +1 -1
  1076. package/dist/source/components/navigation/menu/menuItem.jsx +22 -2
  1077. package/dist/source/components/navigation/menu/menuItem.jsx.map +1 -1
  1078. package/dist/source/components/navigation/menu/menuList.jsx +19 -7
  1079. package/dist/source/components/navigation/menu/menuList.jsx.map +1 -1
  1080. package/dist/source/components/navigation/menu/menuSubmenu.jsx +36 -4
  1081. package/dist/source/components/navigation/menu/menuSubmenu.jsx.map +1 -1
  1082. package/dist/source/components/navigation/pagination/pagination.jsx +4 -3
  1083. package/dist/source/components/navigation/pagination/pagination.jsx.map +1 -1
  1084. package/dist/source/components/navigation/sidebar/sidebar.jsx +6 -3
  1085. package/dist/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
  1086. package/dist/source/components/navigation/stepper/stepper.jsx +14 -9
  1087. package/dist/source/components/navigation/stepper/stepper.jsx.map +1 -1
  1088. package/dist/source/components/navigation/tabs/index.js +2 -0
  1089. package/dist/source/components/navigation/tabs/index.js.map +2 -2
  1090. package/dist/source/components/navigation/tabs/tab/tab.jsx +144 -21
  1091. package/dist/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  1092. package/dist/source/components/navigation/tabs/tabPanel/tabPanel.jsx +30 -0
  1093. package/dist/source/components/navigation/tabs/tabPanel/tabPanel.jsx.map +1 -0
  1094. package/dist/source/components/navigation/tabs/tabs.jsx +392 -20
  1095. package/dist/source/components/navigation/tabs/tabs.jsx.map +1 -1
  1096. package/dist/source/components/navigation/tabs/tabs.utils.js +18 -0
  1097. package/dist/source/components/navigation/tabs/tabs.utils.js.map +7 -0
  1098. package/dist/source/components/navigation/tabs/tabsContext.js.map +2 -2
  1099. package/dist/source/connects/rt/table/table.jsx +7 -2
  1100. package/dist/source/connects/rt/table/table.jsx.map +1 -1
  1101. package/dist/source/index.js +44 -1
  1102. package/dist/source/index.js.map +2 -2
  1103. package/dist/source/primitives/createDismissOnEscape.js +17 -0
  1104. package/dist/source/primitives/createDismissOnEscape.js.map +7 -0
  1105. package/dist/source/primitives/createFocusTrap.js +9 -3
  1106. package/dist/source/primitives/createFocusTrap.js.map +2 -2
  1107. package/dist/source/primitives/createHelperText.js +16 -0
  1108. package/dist/source/primitives/createHelperText.js.map +7 -0
  1109. package/dist/source/primitives/createKeyboardShortcut.js +23 -0
  1110. package/dist/source/primitives/createKeyboardShortcut.js.map +7 -0
  1111. package/dist/source/primitives/mergeStyle.js +15 -0
  1112. package/dist/source/primitives/mergeStyle.js.map +7 -0
  1113. package/dist/source/primitives/overlayLayer.js +10 -2
  1114. package/dist/source/primitives/overlayLayer.js.map +2 -2
  1115. package/dist/source/primitives/restoreFocus.js +14 -0
  1116. package/dist/source/primitives/restoreFocus.js.map +7 -0
  1117. package/dist/source/utils/controlProps.js +22 -0
  1118. package/dist/source/utils/controlProps.js.map +7 -0
  1119. package/dist/source/utils/keyboardShortcut.js +74 -0
  1120. package/dist/source/utils/keyboardShortcut.js.map +7 -0
  1121. package/dist/source/utils/linkAttrs.js +16 -0
  1122. package/dist/source/utils/linkAttrs.js.map +7 -0
  1123. package/dist/source/utils/ownClick.js +41 -0
  1124. package/dist/source/utils/ownClick.js.map +7 -0
  1125. package/dist/utils/controlProps.d.ts +17 -0
  1126. package/dist/utils/controlProps.js +20 -0
  1127. package/dist/utils/controlProps.js.map +1 -0
  1128. package/dist/utils/keyboardShortcut.d.ts +12 -0
  1129. package/dist/utils/keyboardShortcut.js +48 -0
  1130. package/dist/utils/keyboardShortcut.js.map +1 -0
  1131. package/dist/utils/linkAttrs.d.ts +13 -0
  1132. package/dist/utils/linkAttrs.js +13 -0
  1133. package/dist/utils/linkAttrs.js.map +1 -0
  1134. package/dist/utils/ownClick.d.ts +16 -0
  1135. package/dist/utils/ownClick.js +39 -0
  1136. package/dist/utils/ownClick.js.map +1 -0
  1137. package/package.json +72 -3
@@ -0,0 +1,54 @@
1
+ function firstOption(count, isEnabled) {
2
+ for (let index = 0; index < count; index++) {
3
+ if (isEnabled(index)) {
4
+ return index;
5
+ }
6
+ }
7
+ return -1;
8
+ }
9
+ function lastOption(count, isEnabled) {
10
+ for (let index = count - 1; index >= 0; index--) {
11
+ if (isEnabled(index)) {
12
+ return index;
13
+ }
14
+ }
15
+ return -1;
16
+ }
17
+ function moveOption(count, isEnabled, from, steps) {
18
+ if (from < 0) {
19
+ return steps > 0 ? firstOption(count, isEnabled) : lastOption(count, isEnabled);
20
+ }
21
+ const direction = steps > 0 ? 1 : -1;
22
+ let result = from;
23
+ let left = Math.abs(steps);
24
+ for (let index = from + direction; index >= 0 && index < count && left > 0; index += direction) {
25
+ if (isEnabled(index)) {
26
+ result = index;
27
+ left--;
28
+ }
29
+ }
30
+ return result;
31
+ }
32
+ function keepInView(element, root) {
33
+ for (let box = element.parentElement; box; box = box.parentElement) {
34
+ if (box.scrollHeight > box.clientHeight) {
35
+ const outer = box.getBoundingClientRect();
36
+ const inner = element.getBoundingClientRect();
37
+ if (inner.top < outer.top) {
38
+ box.scrollTop -= outer.top - inner.top;
39
+ } else if (inner.bottom > outer.bottom) {
40
+ box.scrollTop += inner.bottom - outer.bottom;
41
+ }
42
+ }
43
+ if (box === root) {
44
+ break;
45
+ }
46
+ }
47
+ }
48
+ export {
49
+ firstOption,
50
+ keepInView,
51
+ lastOption,
52
+ moveOption
53
+ };
54
+ //# sourceMappingURL=commandPaletteNavigation.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/navigation/commandPalette/commandPaletteNavigation.ts"],
4
+ "sourcesContent": ["// Moves of the active option over the palette's options, by index in the order they are drawn.\n// A disabled option is passed over. A copy of the helpers of the select field's listbox: importing\n// them from there would make the palette depend on the select field's styles.\n\nexport type IsOptionEnabled = (index: number) => boolean;\n\n/** The first enabled option, or -1. */\nexport function firstOption(count: number, isEnabled: IsOptionEnabled): number {\n for (let index = 0; index < count; index++) {\n if (isEnabled(index)) {\n return index;\n }\n }\n return -1;\n}\n\n/** The last enabled option, or -1. */\nexport function lastOption(count: number, isEnabled: IsOptionEnabled): number {\n for (let index = count - 1; index >= 0; index--) {\n if (isEnabled(index)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The enabled option `steps` options after `from` (before it for a negative\n * count), stopping at the first or the last one. With no active option, a move\n * down starts at the first option and a move up at the last.\n */\nexport function moveOption(count: number, isEnabled: IsOptionEnabled, from: number, steps: number): number {\n if (from < 0) {\n return steps > 0 ? firstOption(count, isEnabled) : lastOption(count, isEnabled);\n }\n const direction = steps > 0 ? 1 : -1;\n let result = from;\n let left = Math.abs(steps);\n for (let index = from + direction; index >= 0 && index < count && left > 0; index += direction) {\n if (isEnabled(index)) {\n result = index;\n left--;\n }\n }\n return result;\n}\n\n/** Scrolls each scrolling box from the element up to `root` so the element shows. */\nexport function keepInView(element: HTMLElement, root: HTMLElement | null) {\n for (let box = element.parentElement; box; box = box.parentElement) {\n if (box.scrollHeight > box.clientHeight) {\n const outer = box.getBoundingClientRect();\n const inner = element.getBoundingClientRect();\n if (inner.top < outer.top) {\n box.scrollTop -= outer.top - inner.top;\n } else if (inner.bottom > outer.bottom) {\n box.scrollTop += inner.bottom - outer.bottom;\n }\n }\n if (box === root) {\n break;\n }\n }\n}\n"],
5
+ "mappings": "AAOO,SAAS,YAAY,OAAe,WAAoC;AAC7E,WAAS,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC1C,QAAI,UAAU,KAAK,GAAG;AACpB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAGO,SAAS,WAAW,OAAe,WAAoC;AAC5E,WAAS,QAAQ,QAAQ,GAAG,SAAS,GAAG,SAAS;AAC/C,QAAI,UAAU,KAAK,GAAG;AACpB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAOO,SAAS,WAAW,OAAe,WAA4B,MAAc,OAAuB;AACzG,MAAI,OAAO,GAAG;AACZ,WAAO,QAAQ,IAAI,YAAY,OAAO,SAAS,IAAI,WAAW,OAAO,SAAS;AAAA,EAChF;AACA,QAAM,YAAY,QAAQ,IAAI,IAAI;AAClC,MAAI,SAAS;AACb,MAAI,OAAO,KAAK,IAAI,KAAK;AACzB,WAAS,QAAQ,OAAO,WAAW,SAAS,KAAK,QAAQ,SAAS,OAAO,GAAG,SAAS,WAAW;AAC9F,QAAI,UAAU,KAAK,GAAG;AACpB,eAAS;AACT;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAGO,SAAS,WAAW,SAAsB,MAA0B;AACzE,WAAS,MAAM,QAAQ,eAAe,KAAK,MAAM,IAAI,eAAe;AAClE,QAAI,IAAI,eAAe,IAAI,cAAc;AACvC,YAAM,QAAQ,IAAI,sBAAsB;AACxC,YAAM,QAAQ,QAAQ,sBAAsB;AAC5C,UAAI,MAAM,MAAM,MAAM,KAAK;AACzB,YAAI,aAAa,MAAM,MAAM,MAAM;AAAA,MACrC,WAAW,MAAM,SAAS,MAAM,QAAQ;AACtC,YAAI,aAAa,MAAM,SAAS,MAAM;AAAA,MACxC;AAAA,IACF;AACA,QAAI,QAAQ,MAAM;AAChB;AAAA,IACF;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=commandPaletteTypes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,11 @@
1
+ import { CommandPalette, default as default2 } from "./commandPalette";
2
+ import { commandPaletteFilter, normalizeSearchText } from "./commandPaletteFilter";
3
+ import { createKeyboardShortcut } from "../../../primitives/createKeyboardShortcut";
4
+ export {
5
+ CommandPalette,
6
+ commandPaletteFilter,
7
+ createKeyboardShortcut,
8
+ default2 as default,
9
+ normalizeSearchText
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/navigation/commandPalette/index.ts"],
4
+ "sourcesContent": ["export { CommandPalette, default } from \"./commandPalette\";\nexport type { CommandPaletteProps } from \"./commandPalette\";\nexport type {\n CommandPaletteFilter,\n CommandPaletteGroup,\n CommandPaletteItem,\n CommandPaletteSource,\n} from \"./commandPaletteTypes\";\nexport { commandPaletteFilter, normalizeSearchText } from \"./commandPaletteFilter\";\nexport { createKeyboardShortcut } from \"../../../primitives/createKeyboardShortcut\";\nexport type { CreateKeyboardShortcutOptions } from \"../../../primitives/createKeyboardShortcut\";\n"],
5
+ "mappings": "AAAA,SAAS,gBAAgB,WAAAA,gBAAe;AAQxC,SAAS,sBAAsB,2BAA2B;AAC1D,SAAS,8BAA8B;",
6
+ "names": ["default"]
7
+ }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/navigation/menu/menu.tsx"],"sourcesContent":["import { type JSX, type ParentProps, mergeProps, splitProps } from \"solid-js\";\nimport { MenuContext } from \"./menuContext\";\nimport { MenuComponent } from \"./menuComponent\";\nimport type { MenuFloatingProps } from \"./menuFloating\";\n\nexport type MenuProps = MenuFloatingProps & {\n variant?: \"static\" | \"floating\";\n dense?: boolean;\n};\n\nexport function Menu(props: ParentProps<MenuProps>): JSX.Element {\n const merged = mergeProps({ dense: false, variant: \"floating\" as const }, props);\n const [local, rest] = splitProps(merged, [\"dense\", \"variant\", \"children\", \"ref\"]);\n\n const value = {\n get dense() {\n return local.dense;\n },\n get variant() {\n return local.variant;\n },\n onClose: () => rest.onClose?.(),\n };\n\n return (\n <MenuContext.Provider value={value}>\n <MenuComponent ref={local.ref} {...rest}>\n {local.children}\n </MenuComponent>\n </MenuContext.Provider>\n );\n}\n\nexport default Menu;\n"],"mappings":"AAAA,SAAqC,YAAY,kBAAkB;AACnE,SAAS,mBAAmB;AAC5B,SAAS,qBAAqB;AAQvB,SAAS,KAAK,OAA4C;AAC/D,QAAM,SAAS,WAAW,EAAE,OAAO,OAAO,SAAS,WAAoB,GAAG,KAAK;AAC/E,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ,CAAC,SAAS,WAAW,YAAY,KAAK,CAAC;AAEhF,QAAM,QAAQ;AAAA,IACZ,IAAI,QAAQ;AACV,aAAO,MAAM;AAAA,IACf;AAAA,IACA,IAAI,UAAU;AACZ,aAAO,MAAM;AAAA,IACf;AAAA,IACA,SAAS,MAAM,KAAK,UAAU;AAAA,EAChC;AAEA,SACE,CAAC,YAAY,SAAS,OAAO,OAAO;AAAA,MAClC,CAAC,cAAc,KAAK,MAAM,SAAS,MAAM;AAAA,SACtC,MAAM,SAAS;AAAA,MAClB,EAFC,cAEe;AAAA,IAClB,EAJC,YAAY;AAMjB;AAEA,IAAO,eAAQ;","names":[],"file":"menu.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/navigation/menu/menu.tsx"],"sourcesContent":["import { type JSX, type ParentProps, mergeProps, splitProps } from \"solid-js\";\nimport { MenuContext } from \"./menuContext\";\nimport { MenuComponent } from \"./menuComponent\";\nimport type { MenuFloatingProps } from \"./menuFloating\";\n\nexport type MenuProps = MenuFloatingProps & {\n variant?: \"static\" | \"floating\";\n dense?: boolean;\n /**\n * Role of the list inside the menu, `menu` by default. A component that draws\n * a list of its own on the menu's surface sets `presentation`: SelectField's\n * options are a `listbox` inside it.\n */\n listRole?: JSX.AriaAttributes[\"role\"];\n};\n\nexport function Menu(props: ParentProps<MenuProps>): JSX.Element {\n const merged = mergeProps({ dense: false, variant: \"floating\" as const }, props);\n const [local, rest] = splitProps(merged, [\"dense\", \"variant\", \"children\", \"ref\"]);\n\n const value = {\n get dense() {\n return local.dense;\n },\n get variant() {\n return local.variant;\n },\n onClose: () => rest.onClose?.(),\n };\n\n return (\n <MenuContext.Provider value={value}>\n <MenuComponent ref={local.ref} {...rest}>\n {local.children}\n </MenuComponent>\n </MenuContext.Provider>\n );\n}\n\nexport default Menu;\n"],"mappings":"AAAA,SAAqC,YAAY,kBAAkB;AACnE,SAAS,mBAAmB;AAC5B,SAAS,qBAAqB;AAcvB,SAAS,KAAK,OAA4C;AAC/D,QAAM,SAAS,WAAW,EAAE,OAAO,OAAO,SAAS,WAAoB,GAAG,KAAK;AAC/E,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ,CAAC,SAAS,WAAW,YAAY,KAAK,CAAC;AAEhF,QAAM,QAAQ;AAAA,IACZ,IAAI,QAAQ;AACV,aAAO,MAAM;AAAA,IACf;AAAA,IACA,IAAI,UAAU;AACZ,aAAO,MAAM;AAAA,IACf;AAAA,IACA,SAAS,MAAM,KAAK,UAAU;AAAA,EAChC;AAEA,SACE,CAAC,YAAY,SAAS,OAAO,OAAO;AAAA,MAClC,CAAC,cAAc,KAAK,MAAM,SAAS,MAAM;AAAA,SACtC,MAAM,SAAS;AAAA,MAClB,EAFC,cAEe;AAAA,IAClB,EAJC,YAAY;AAMjB;AAEA,IAAO,eAAQ;","names":[],"file":"menu.jsx"}
@@ -1,13 +1,12 @@
1
- import { Show } from "solid-js";
1
+ import { Show, splitProps } from "solid-js";
2
2
  import { useMenuContext } from "./menuContext";
3
3
  import { MenuList } from "./menuList";
4
4
  import { MenuFloating } from "./menuFloating";
5
5
  function MenuComponent(props) {
6
6
  const ctx = useMenuContext();
7
+ const [, listProps] = splitProps(props, ["anchorElement", "isOpen", "onClose", "placement", "middleware"]);
7
8
  return <Show when={ctx.variant === "static"} fallback={<MenuFloating {...props} />}>
8
- <MenuList ref={props.ref} class={props.class}>
9
- {props.children}
10
- </MenuList>
9
+ <MenuList {...listProps} />
11
10
  </Show>;
12
11
  }
13
12
  var menuComponent_default = MenuComponent;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/navigation/menu/menuComponent.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show } from \"solid-js\";\nimport { useMenuContext } from \"./menuContext\";\nimport { MenuList } from \"./menuList\";\nimport { MenuFloating, type MenuFloatingProps } from \"./menuFloating\";\n\nexport function MenuComponent(props: ParentProps<MenuFloatingProps>): JSX.Element {\n const ctx = useMenuContext();\n return (\n <Show when={ctx.variant === \"static\"} fallback={<MenuFloating {...props} />}>\n <MenuList ref={props.ref} class={props.class}>\n {props.children}\n </MenuList>\n </Show>\n );\n}\n\nexport default MenuComponent;\n"],"mappings":"AAAA,SAAqC,YAAY;AACjD,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AACzB,SAAS,oBAA4C;AAE9C,SAAS,cAAc,OAAoD;AAChF,QAAM,MAAM,eAAe;AAC3B,SACE,CAAC,KAAK,MAAM,IAAI,YAAY,UAAU,UAAU,CAAC,iBAAiB,OAAO,IAAI;AAAA,MAC3E,CAAC,SAAS,KAAK,MAAM,KAAK,OAAO,MAAM,OAAO;AAAA,SAC3C,MAAM,SAAS;AAAA,MAClB,EAFC,SAEU;AAAA,IACb,EAJC;AAML;AAEA,IAAO,wBAAQ;","names":[],"file":"menuComponent.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/navigation/menu/menuComponent.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, splitProps } from \"solid-js\";\nimport { useMenuContext } from \"./menuContext\";\nimport { MenuList } from \"./menuList\";\nimport { MenuFloating, type MenuFloatingProps } from \"./menuFloating\";\n\nexport function MenuComponent(props: ParentProps<MenuFloatingProps>): JSX.Element {\n const ctx = useMenuContext();\n // A static menu is the list itself: the caller's props go on its root, except\n // the floating-only ones (isOpen would become a DOM attribute, onClose a\n // \"close\" listener). Escape still reaches onClose through the menu context.\n const [, listProps] = splitProps(props, [\"anchorElement\", \"isOpen\", \"onClose\", \"placement\", \"middleware\"]);\n return (\n <Show when={ctx.variant === \"static\"} fallback={<MenuFloating {...props} />}>\n <MenuList {...listProps} />\n </Show>\n );\n}\n\nexport default MenuComponent;\n"],"mappings":"AAAA,SAAqC,MAAM,kBAAkB;AAC7D,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AACzB,SAAS,oBAA4C;AAE9C,SAAS,cAAc,OAAoD;AAChF,QAAM,MAAM,eAAe;AAI3B,QAAM,CAAC,EAAE,SAAS,IAAI,WAAW,OAAO,CAAC,iBAAiB,UAAU,WAAW,aAAa,YAAY,CAAC;AACzG,SACE,CAAC,KAAK,MAAM,IAAI,YAAY,UAAU,UAAU,CAAC,iBAAiB,OAAO,IAAI;AAAA,MAC3E,CAAC,aAAa,WAAW,EAAE;AAAA,IAC7B,EAFC;AAIL;AAEA,IAAO,wBAAQ;","names":[],"file":"menuComponent.jsx"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/navigation/menu/menuContext.ts"],
4
- "sourcesContent": ["import { createContext, useContext } from \"solid-js\";\n\nexport interface MenuContextValue {\n dense: boolean;\n variant: \"static\" | \"floating\";\n onClose: () => void;\n}\n\nexport const MenuContext = createContext<MenuContextValue>({\n dense: false,\n variant: \"floating\",\n onClose: () => undefined,\n});\n\nexport function useMenuContext(): MenuContextValue {\n return useContext(MenuContext);\n}\n"],
5
- "mappings": "AAAA,SAAS,eAAe,kBAAkB;AAQnC,MAAM,cAAc,cAAgC;AAAA,EACzD,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS,MAAM;AACjB,CAAC;AAEM,SAAS,iBAAmC;AACjD,SAAO,WAAW,WAAW;AAC/B;",
4
+ "sourcesContent": ["import { createContext, useContext } from \"solid-js\";\n\nexport interface MenuContextValue {\n dense: boolean;\n variant: \"static\" | \"floating\";\n onClose: () => void;\n /** A submenu's own list: ArrowLeft in it closes the submenu (onClose). */\n submenu?: boolean;\n}\n\nexport const MenuContext = createContext<MenuContextValue>({\n dense: false,\n variant: \"floating\",\n onClose: () => undefined,\n});\n\nexport function useMenuContext(): MenuContextValue {\n return useContext(MenuContext);\n}\n"],
5
+ "mappings": "AAAA,SAAS,eAAe,kBAAkB;AAUnC,MAAM,cAAc,cAAgC;AAAA,EACzD,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS,MAAM;AACjB,CAAC;AAEM,SAAS,iBAAmC;AACjD,SAAO,WAAW,WAAW;AAC/B;",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,10 @@
1
- import { Show, createEffect, createSignal, mergeProps, onCleanup, splitProps } from "solid-js";
1
+ import { Show, createEffect, createSignal, mergeProps, on, onCleanup, splitProps } from "solid-js";
2
2
  import { buildFloatingMiddleware, resolvePlacement } from "../../../utils/floating";
3
3
  import { createFloating } from "../../../primitives/createFloating";
4
4
  import { ClickAwayListener } from "../../clickAwayListener";
5
5
  import { MenuList } from "./menuList";
6
6
  import { mergeRefs } from "../../../primitives/mergeRefs";
7
+ import { mergeStyle } from "../../../primitives/mergeStyle";
7
8
  function buildMenuFloatingMiddleware(resolved, custom) {
8
9
  return buildFloatingMiddleware(resolved, custom);
9
10
  }
@@ -53,6 +54,29 @@ function MenuFloating(props) {
53
54
  if (raf !== void 0) cancelAnimationFrame(raf);
54
55
  if (timer !== void 0) clearTimeout(timer);
55
56
  });
57
+ createEffect(() => {
58
+ const anchor = local.anchorElement;
59
+ const onClose = local.onClose;
60
+ if (!local.isOpen || !onClose || !anchor) return;
61
+ const onAnchorKeyDown = (event) => {
62
+ if (event.key === "Escape" && !event.defaultPrevented) {
63
+ event.preventDefault();
64
+ onClose();
65
+ }
66
+ };
67
+ anchor.addEventListener("keydown", onAnchorKeyDown);
68
+ onCleanup(() => anchor.removeEventListener("keydown", onAnchorKeyDown));
69
+ });
70
+ createEffect(
71
+ on(
72
+ () => Boolean(local.isOpen),
73
+ (open) => {
74
+ if (!open && menuEl?.contains(document.activeElement)) {
75
+ local.anchorElement?.focus?.();
76
+ }
77
+ }
78
+ )
79
+ );
56
80
  const onAwayClick = (event) => {
57
81
  if (!local.isOpen || !local.onClose || !menuEl) return;
58
82
  const target = event.target;
@@ -61,9 +85,7 @@ function MenuFloating(props) {
61
85
  }
62
86
  local.onClose();
63
87
  };
64
- const style = () => ({
65
- ...floating.floatingStyles(),
66
- ...typeof local.style === "object" && local.style ? local.style : {},
88
+ const style = () => mergeStyle(floating.floatingStyles(), local.style, {
67
89
  transition: `opacity ${FADE_MS}ms ease-in-out`,
68
90
  opacity: shown() ? 1 : 0
69
91
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/navigation/menu/menuFloating.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, createEffect, createSignal, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport type { Middleware } from \"@floating-ui/dom\";\nimport { buildFloatingMiddleware, type Placement, resolvePlacement, type ResolvedPlacement } from \"../../../utils/floating\";\nimport { createFloating } from \"../../../primitives/createFloating\";\nimport { ClickAwayListener } from \"../../clickAwayListener\";\nimport { MenuList } from \"./menuList\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport function buildMenuFloatingMiddleware(resolved: ResolvedPlacement, custom?: Middleware[]): Middleware[] {\n return buildFloatingMiddleware(resolved, custom);\n}\n\nexport interface MenuFloatingProps extends JSX.HTMLAttributes<HTMLDivElement> {\n anchorElement?: Element | null | undefined;\n isOpen?: boolean;\n onClose?: () => void;\n placement?: Placement;\n middleware?: Middleware[] | undefined;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst FADE_MS = 150;\n\nexport function MenuFloating(props: ParentProps<MenuFloatingProps>): JSX.Element {\n const merged = mergeProps({ placement: \"bottom-start\" as Placement }, props);\n const [local, rest] = splitProps(merged, [\n \"anchorElement\",\n \"isOpen\",\n \"onClose\",\n \"placement\",\n \"middleware\",\n \"style\",\n \"children\",\n \"ref\",\n ]);\n\n let menuEl: HTMLElement | undefined;\n const resolved = (): ResolvedPlacement => resolvePlacement(local.placement);\n const floating = createFloating({\n placement: () => resolved().placement,\n middleware: () => buildMenuFloatingMiddleware(resolved(), local.middleware),\n });\n\n createEffect(() => {\n floating.setReference(local.anchorElement ?? null);\n });\n\n // mountOnEnter + unmountOnExit fade lifecycle (replaces RTG Transition).\n const [mounted, setMounted] = createSignal(Boolean(local.isOpen));\n const [shown, setShown] = createSignal(false);\n let raf: number | undefined;\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n createEffect(() => {\n const open = Boolean(local.isOpen);\n if (open) {\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n setMounted(true);\n raf = requestAnimationFrame(() => setShown(true));\n } else {\n setShown(false);\n if (mounted()) {\n timer = setTimeout(() => setMounted(false), FADE_MS);\n }\n }\n });\n onCleanup(() => {\n if (raf !== undefined) cancelAnimationFrame(raf);\n if (timer !== undefined) clearTimeout(timer);\n });\n\n const onAwayClick = (event: MouseEvent | TouchEvent): void => {\n if (!local.isOpen || !local.onClose || !menuEl) return;\n const target = event.target as HTMLElement;\n if (menuEl.contains(target) || (local.anchorElement as HTMLElement | null)?.contains(target)) {\n return;\n }\n local.onClose();\n };\n\n const style = (): JSX.CSSProperties => ({\n ...floating.floatingStyles(),\n ...(typeof local.style === \"object\" && local.style ? local.style : {}),\n transition: `opacity ${FADE_MS}ms ease-in-out`,\n opacity: shown() ? 1 : 0,\n });\n\n return (\n <Show when={mounted()}>\n <ClickAwayListener onClickAway={onAwayClick}>\n <MenuList {...rest} ref={mergeRefs(local.ref, floating.setFloating, (el) => (menuEl = el))} style={style()}>\n {local.children}\n </MenuList>\n </ClickAwayListener>\n </Show>\n );\n}\n\nexport default MenuFloating;\n"],"mappings":"AAAA,SAAqC,MAAM,cAAc,cAAc,YAAY,WAAW,kBAAkB;AAEhH,SAAS,yBAAyC,wBAAgD;AAClG,SAAS,sBAAsB;AAC/B,SAAS,yBAAyB;AAClC,SAAS,gBAAgB;AACzB,SAAS,iBAA2B;AAE7B,SAAS,4BAA4B,UAA6B,QAAqC;AAC5G,SAAO,wBAAwB,UAAU,MAAM;AACjD;AAWA,MAAM,UAAU;AAET,SAAS,aAAa,OAAoD;AAC/E,QAAM,SAAS,WAAW,EAAE,WAAW,eAA4B,GAAG,KAAK;AAC3E,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,MAAI;AACJ,QAAM,WAAW,MAAyB,iBAAiB,MAAM,SAAS;AAC1E,QAAM,WAAW,eAAe;AAAA,IAC9B,WAAW,MAAM,SAAS,EAAE;AAAA,IAC5B,YAAY,MAAM,4BAA4B,SAAS,GAAG,MAAM,UAAU;AAAA,EAC5E,CAAC;AAED,eAAa,MAAM;AACjB,aAAS,aAAa,MAAM,iBAAiB,IAAI;AAAA,EACnD,CAAC;AAGD,QAAM,CAAC,SAAS,UAAU,IAAI,aAAa,QAAQ,MAAM,MAAM,CAAC;AAChE,QAAM,CAAC,OAAO,QAAQ,IAAI,aAAa,KAAK;AAC5C,MAAI;AACJ,MAAI;AAEJ,eAAa,MAAM;AACjB,UAAM,OAAO,QAAQ,MAAM,MAAM;AACjC,QAAI,MAAM;AACR,UAAI,UAAU,QAAW;AACvB,qBAAa,KAAK;AAClB,gBAAQ;AAAA,MACV;AACA,iBAAW,IAAI;AACf,YAAM,sBAAsB,MAAM,SAAS,IAAI,CAAC;AAAA,IAClD,OAAO;AACL,eAAS,KAAK;AACd,UAAI,QAAQ,GAAG;AACb,gBAAQ,WAAW,MAAM,WAAW,KAAK,GAAG,OAAO;AAAA,MACrD;AAAA,IACF;AAAA,EACF,CAAC;AACD,YAAU,MAAM;AACd,QAAI,QAAQ,OAAW,sBAAqB,GAAG;AAC/C,QAAI,UAAU,OAAW,cAAa,KAAK;AAAA,EAC7C,CAAC;AAED,QAAM,cAAc,CAAC,UAAyC;AAC5D,QAAI,CAAC,MAAM,UAAU,CAAC,MAAM,WAAW,CAAC,OAAQ;AAChD,UAAM,SAAS,MAAM;AACrB,QAAI,OAAO,SAAS,MAAM,KAAM,MAAM,eAAsC,SAAS,MAAM,GAAG;AAC5F;AAAA,IACF;AACA,UAAM,QAAQ;AAAA,EAChB;AAEA,QAAM,QAAQ,OAA0B;AAAA,IACtC,GAAG,SAAS,eAAe;AAAA,IAC3B,GAAI,OAAO,MAAM,UAAU,YAAY,MAAM,QAAQ,MAAM,QAAQ,CAAC;AAAA,IACpE,YAAY,WAAW,OAAO;AAAA,IAC9B,SAAS,MAAM,IAAI,IAAI;AAAA,EACzB;AAEA,SACE,CAAC,KAAK,MAAM,QAAQ,GAAG;AAAA,MACrB,CAAC,kBAAkB,aAAa,aAAa;AAAA,QAC3C,CAAC,aAAa,MAAM,KAAK,UAAU,MAAM,KAAK,SAAS,aAAa,CAAC,OAAQ,SAAS,EAAG,GAAG,OAAO,MAAM,GAAG;AAAA,WACzG,MAAM,SAAS;AAAA,QAClB,EAFC,SAEU;AAAA,MACb,EAJC,kBAImB;AAAA,IACtB,EANC;AAQL;AAEA,IAAO,uBAAQ;","names":[],"file":"menuFloating.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/navigation/menu/menuFloating.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, createEffect, createSignal, mergeProps, on, onCleanup, splitProps } from \"solid-js\";\nimport type { Middleware } from \"@floating-ui/dom\";\nimport { buildFloatingMiddleware, type Placement, resolvePlacement, type ResolvedPlacement } from \"../../../utils/floating\";\nimport { createFloating } from \"../../../primitives/createFloating\";\nimport { ClickAwayListener } from \"../../clickAwayListener\";\nimport { MenuList } from \"./menuList\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { mergeStyle } from \"../../../primitives/mergeStyle\";\n\nexport function buildMenuFloatingMiddleware(resolved: ResolvedPlacement, custom?: Middleware[]): Middleware[] {\n return buildFloatingMiddleware(resolved, custom);\n}\n\nexport interface MenuFloatingProps extends JSX.HTMLAttributes<HTMLDivElement> {\n anchorElement?: Element | null | undefined;\n isOpen?: boolean;\n onClose?: () => void;\n placement?: Placement;\n middleware?: Middleware[] | undefined;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst FADE_MS = 150;\n\nexport function MenuFloating(props: ParentProps<MenuFloatingProps>): JSX.Element {\n const merged = mergeProps({ placement: \"bottom-start\" as Placement }, props);\n const [local, rest] = splitProps(merged, [\n \"anchorElement\",\n \"isOpen\",\n \"onClose\",\n \"placement\",\n \"middleware\",\n \"style\",\n \"children\",\n \"ref\",\n ]);\n\n let menuEl: HTMLElement | undefined;\n const resolved = (): ResolvedPlacement => resolvePlacement(local.placement);\n const floating = createFloating({\n placement: () => resolved().placement,\n middleware: () => buildMenuFloatingMiddleware(resolved(), local.middleware),\n });\n\n createEffect(() => {\n floating.setReference(local.anchorElement ?? null);\n });\n\n // mountOnEnter + unmountOnExit fade lifecycle (replaces RTG Transition).\n const [mounted, setMounted] = createSignal(Boolean(local.isOpen));\n const [shown, setShown] = createSignal(false);\n let raf: number | undefined;\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n createEffect(() => {\n const open = Boolean(local.isOpen);\n if (open) {\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n setMounted(true);\n raf = requestAnimationFrame(() => setShown(true));\n } else {\n setShown(false);\n if (mounted()) {\n timer = setTimeout(() => setMounted(false), FADE_MS);\n }\n }\n });\n onCleanup(() => {\n if (raf !== undefined) cancelAnimationFrame(raf);\n if (timer !== undefined) clearTimeout(timer);\n });\n\n // While the menu is open, Escape on its anchor (focus left on the button that opened\n // it, or on a submenu's row) closes it, marked as handled like an Escape in the list.\n createEffect(() => {\n const anchor = local.anchorElement;\n const onClose = local.onClose;\n if (!local.isOpen || !onClose || !anchor) return;\n const onAnchorKeyDown = (event: Event): void => {\n if ((event as KeyboardEvent).key === \"Escape\" && !event.defaultPrevented) {\n event.preventDefault();\n onClose();\n }\n };\n anchor.addEventListener(\"keydown\", onAnchorKeyDown);\n onCleanup(() => anchor.removeEventListener(\"keydown\", onAnchorKeyDown));\n });\n\n // A menu that closes while it holds focus (on Escape, on a chosen item) hands focus\n // back to its anchor, the button or submenu row it opened from. Otherwise focus falls\n // to <body> when the items unmount, out of a FloatingWindow or Modal around the menu,\n // and the next Escape does not reach them.\n createEffect(\n on(\n () => Boolean(local.isOpen),\n (open) => {\n if (!open && menuEl?.contains(document.activeElement)) {\n (local.anchorElement as HTMLElement | null | undefined)?.focus?.();\n }\n }\n )\n );\n\n const onAwayClick = (event: MouseEvent | TouchEvent): void => {\n if (!local.isOpen || !local.onClose || !menuEl) return;\n const target = event.target as HTMLElement;\n if (menuEl.contains(target) || (local.anchorElement as HTMLElement | null)?.contains(target)) {\n return;\n }\n local.onClose();\n };\n\n // The caller's style over the position, the fade over the caller's style.\n const style = (): JSX.CSSProperties | string | undefined =>\n mergeStyle(floating.floatingStyles(), local.style, {\n transition: `opacity ${FADE_MS}ms ease-in-out`,\n opacity: shown() ? 1 : 0,\n });\n\n return (\n <Show when={mounted()}>\n <ClickAwayListener onClickAway={onAwayClick}>\n <MenuList {...rest} ref={mergeRefs(local.ref, floating.setFloating, (el) => (menuEl = el))} style={style()}>\n {local.children}\n </MenuList>\n </ClickAwayListener>\n </Show>\n );\n}\n\nexport default MenuFloating;\n"],"mappings":"AAAA,SAAqC,MAAM,cAAc,cAAc,YAAY,IAAI,WAAW,kBAAkB;AAEpH,SAAS,yBAAyC,wBAAgD;AAClG,SAAS,sBAAsB;AAC/B,SAAS,yBAAyB;AAClC,SAAS,gBAAgB;AACzB,SAAS,iBAA2B;AACpC,SAAS,kBAAkB;AAEpB,SAAS,4BAA4B,UAA6B,QAAqC;AAC5G,SAAO,wBAAwB,UAAU,MAAM;AACjD;AAWA,MAAM,UAAU;AAET,SAAS,aAAa,OAAoD;AAC/E,QAAM,SAAS,WAAW,EAAE,WAAW,eAA4B,GAAG,KAAK;AAC3E,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,MAAI;AACJ,QAAM,WAAW,MAAyB,iBAAiB,MAAM,SAAS;AAC1E,QAAM,WAAW,eAAe;AAAA,IAC9B,WAAW,MAAM,SAAS,EAAE;AAAA,IAC5B,YAAY,MAAM,4BAA4B,SAAS,GAAG,MAAM,UAAU;AAAA,EAC5E,CAAC;AAED,eAAa,MAAM;AACjB,aAAS,aAAa,MAAM,iBAAiB,IAAI;AAAA,EACnD,CAAC;AAGD,QAAM,CAAC,SAAS,UAAU,IAAI,aAAa,QAAQ,MAAM,MAAM,CAAC;AAChE,QAAM,CAAC,OAAO,QAAQ,IAAI,aAAa,KAAK;AAC5C,MAAI;AACJ,MAAI;AAEJ,eAAa,MAAM;AACjB,UAAM,OAAO,QAAQ,MAAM,MAAM;AACjC,QAAI,MAAM;AACR,UAAI,UAAU,QAAW;AACvB,qBAAa,KAAK;AAClB,gBAAQ;AAAA,MACV;AACA,iBAAW,IAAI;AACf,YAAM,sBAAsB,MAAM,SAAS,IAAI,CAAC;AAAA,IAClD,OAAO;AACL,eAAS,KAAK;AACd,UAAI,QAAQ,GAAG;AACb,gBAAQ,WAAW,MAAM,WAAW,KAAK,GAAG,OAAO;AAAA,MACrD;AAAA,IACF;AAAA,EACF,CAAC;AACD,YAAU,MAAM;AACd,QAAI,QAAQ,OAAW,sBAAqB,GAAG;AAC/C,QAAI,UAAU,OAAW,cAAa,KAAK;AAAA,EAC7C,CAAC;AAID,eAAa,MAAM;AACjB,UAAM,SAAS,MAAM;AACrB,UAAM,UAAU,MAAM;AACtB,QAAI,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,OAAQ;AAC1C,UAAM,kBAAkB,CAAC,UAAuB;AAC9C,UAAK,MAAwB,QAAQ,YAAY,CAAC,MAAM,kBAAkB;AACxE,cAAM,eAAe;AACrB,gBAAQ;AAAA,MACV;AAAA,IACF;AACA,WAAO,iBAAiB,WAAW,eAAe;AAClD,cAAU,MAAM,OAAO,oBAAoB,WAAW,eAAe,CAAC;AAAA,EACxE,CAAC;AAMD;AAAA,IACE;AAAA,MACE,MAAM,QAAQ,MAAM,MAAM;AAAA,MAC1B,CAAC,SAAS;AACR,YAAI,CAAC,QAAQ,QAAQ,SAAS,SAAS,aAAa,GAAG;AACrD,UAAC,MAAM,eAAkD,QAAQ;AAAA,QACnE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,cAAc,CAAC,UAAyC;AAC5D,QAAI,CAAC,MAAM,UAAU,CAAC,MAAM,WAAW,CAAC,OAAQ;AAChD,UAAM,SAAS,MAAM;AACrB,QAAI,OAAO,SAAS,MAAM,KAAM,MAAM,eAAsC,SAAS,MAAM,GAAG;AAC5F;AAAA,IACF;AACA,UAAM,QAAQ;AAAA,EAChB;AAGA,QAAM,QAAQ,MACZ,WAAW,SAAS,eAAe,GAAG,MAAM,OAAO;AAAA,IACjD,YAAY,WAAW,OAAO;AAAA,IAC9B,SAAS,MAAM,IAAI,IAAI;AAAA,EACzB,CAAC;AAEH,SACE,CAAC,KAAK,MAAM,QAAQ,GAAG;AAAA,MACrB,CAAC,kBAAkB,aAAa,aAAa;AAAA,QAC3C,CAAC,aAAa,MAAM,KAAK,UAAU,MAAM,KAAK,SAAS,aAAa,CAAC,OAAQ,SAAS,EAAG,GAAG,OAAO,MAAM,GAAG;AAAA,WACzG,MAAM,SAAS;AAAA,QAClB,EAFC,SAEU;AAAA,MACb,EAJC,kBAImB;AAAA,IACtB,EANC;AAQL;AAEA,IAAO,uBAAQ;","names":[],"file":"menuFloating.jsx"}
@@ -13,14 +13,27 @@ function MenuItem(props) {
13
13
  "disabled",
14
14
  "selected",
15
15
  "onClick",
16
+ "onKeyDown",
16
17
  "href",
17
18
  "linkElement",
18
19
  "linkProps",
19
20
  "value",
20
21
  "optionRenderer",
21
- "ref"
22
+ "ref",
23
+ // The item sets these on its root too; its own handlers call the caller's.
24
+ "onMouseDown",
25
+ "onPointerDown"
22
26
  ]);
23
27
  let rippleActions;
28
+ const onKeyDown = (event) => {
29
+ callHandler(local.onKeyDown, event);
30
+ if (event.defaultPrevented || local.disabled || event.target !== event.currentTarget) return;
31
+ if (event.key === "Enter" || event.key === " ") {
32
+ event.preventDefault();
33
+ const link = local.href ? event.currentTarget.firstElementChild : null;
34
+ (link ?? event.currentTarget).click();
35
+ }
36
+ };
24
37
  const onClick = (event) => {
25
38
  if (local.disabled) {
26
39
  if (local.href) event.preventDefault();
@@ -28,7 +41,11 @@ function MenuItem(props) {
28
41
  }
29
42
  callHandler(local.onClick, event);
30
43
  };
44
+ const onMouseDown = (event) => {
45
+ if (!local.disabled) callHandler(local.onMouseDown, event);
46
+ };
31
47
  const onPointerDown = (event) => {
48
+ callHandler(local.onPointerDown, event);
32
49
  if (!local.disabled) rippleActions?.onRipple(event);
33
50
  };
34
51
  const classes = () => cn("smwb-menu__item", local.class, {
@@ -41,10 +58,13 @@ function MenuItem(props) {
41
58
  {...rest}
42
59
  role="menuitem"
43
60
  ref={mergeRefs(local.ref)}
61
+ aria-disabled={local.disabled || void 0}
44
62
  class={classes()}
45
- tabindex={local.disabled ? void 0 : 0}
63
+ tabindex={rest.tabindex ?? (local.disabled ? void 0 : 0)}
46
64
  onClick={onClick}
65
+ onKeyDown={onKeyDown}
47
66
  data-value={local.value}
67
+ onMouseDown={onMouseDown}
48
68
  onPointerDown={onPointerDown}
49
69
  >
50
70
  <Show
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/navigation/menu/menuItem.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, splitProps } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { useMenuContext } from \"./menuContext\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../primitives/callHandler\";\n\nexport interface MenuItemProps extends JSX.HTMLAttributes<HTMLLIElement> {\n disabled?: boolean | undefined;\n selected?: boolean | undefined;\n href?: string | undefined;\n linkElement?: string;\n linkProps?: JSX.AnchorHTMLAttributes<HTMLAnchorElement>;\n value?: unknown;\n optionRenderer?: ((args: MenuItemProps) => JSX.Element) | undefined;\n onClick?: JSX.EventHandlerUnion<HTMLLIElement, MouseEvent>;\n ref?: Ref<HTMLLIElement>;\n}\n\nexport function MenuItem(props: ParentProps<MenuItemProps>): JSX.Element {\n const ctx = useMenuContext();\n const [local, rest] = splitProps(props, [\n \"children\",\n \"class\",\n \"disabled\",\n \"selected\",\n \"onClick\",\n \"href\",\n \"linkElement\",\n \"linkProps\",\n \"value\",\n \"optionRenderer\",\n \"ref\",\n ]);\n\n let rippleActions: RippleActionsRef | undefined;\n\n const onClick: JSX.EventHandler<HTMLLIElement, MouseEvent> = (event) => {\n if (local.disabled) {\n if (local.href) event.preventDefault();\n return;\n }\n callHandler(local.onClick, event);\n };\n\n const onPointerDown = (event: PointerEvent): void => {\n if (!local.disabled) rippleActions?.onRipple(event);\n };\n\n const classes = (): string =>\n cn(\"smwb-menu__item\", local.class, {\n \"smwb-menu__item--dense\": ctx.dense,\n \"smwb-menu__item--disabled\": local.disabled,\n \"smwb-menu__item--selected\": local.selected,\n });\n\n return (\n <Show when={!local.optionRenderer} fallback={local.optionRenderer?.(props)}>\n <li\n {...rest}\n role=\"menuitem\"\n ref={mergeRefs(local.ref)}\n class={classes()}\n tabindex={local.disabled ? undefined : 0}\n onClick={onClick}\n data-value={local.value as string | number | undefined}\n onPointerDown={onPointerDown}\n >\n <Show\n when={local.href}\n fallback={<span class=\"smwb-menu__item-inner\">{local.children}</span>}\n >\n <Dynamic component={local.linkElement ?? \"a\"} class=\"smwb-menu__item-inner\" href={local.href} {...(local.linkProps ?? {})}>\n {local.children}\n <span class=\"smwb-menu__item__helper-text\" />\n </Dynamic>\n </Show>\n <Ripple actionRef={(actions) => (rippleActions = actions)} />\n </li>\n </Show>\n );\n}\n\nexport default MenuItem;\n"],"mappings":"AAAA,SAAqC,MAAM,kBAAkB;AAC7D,SAAS,eAAe;AACxB,OAAO,QAAQ;AACf,SAAS,sBAAsB;AAC/B,SAAS,cAAqC;AAC9C,SAAS,iBAA2B;AACpC,SAAS,mBAAmB;AAcrB,SAAS,SAAS,OAAgD;AACvE,QAAM,MAAM,eAAe;AAC3B,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,MAAI;AAEJ,QAAM,UAAuD,CAAC,UAAU;AACtE,QAAI,MAAM,UAAU;AAClB,UAAI,MAAM,KAAM,OAAM,eAAe;AACrC;AAAA,IACF;AACA,gBAAY,MAAM,SAAS,KAAK;AAAA,EAClC;AAEA,QAAM,gBAAgB,CAAC,UAA8B;AACnD,QAAI,CAAC,MAAM,SAAU,gBAAe,SAAS,KAAK;AAAA,EACpD;AAEA,QAAM,UAAU,MACd,GAAG,mBAAmB,MAAM,OAAO;AAAA,IACjC,0BAA0B,IAAI;AAAA,IAC9B,6BAA6B,MAAM;AAAA,IACnC,6BAA6B,MAAM;AAAA,EACrC,CAAC;AAEH,SACE,CAAC,KAAK,MAAM,CAAC,MAAM,gBAAgB,UAAU,MAAM,iBAAiB,KAAK,GAAG;AAAA,MAC1E,CAAC;AAAA,QACK;AAAA,IACJ,KAAK;AAAA,IACL,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,OAAO,QAAQ;AAAA,IACf,UAAU,MAAM,WAAW,SAAY;AAAA,IACvC,SAAS;AAAA,IACT,YAAY,MAAM;AAAA,IAClB,eAAe;AAAA,GAChB;AAAA,QACC,CAAC;AAAA,IACC,MAAM,MAAM;AAAA,IACZ,UAAU,CAAC,KAAK,MAAM,yBAAyB,MAAM,SAAS,EAAnD;AAAA,GACZ;AAAA,UACC,CAAC,QAAQ,WAAW,MAAM,eAAe,KAAK,MAAM,wBAAwB,MAAM,MAAM,UAAW,MAAM,aAAa,CAAC,GAAI;AAAA,aACxH,MAAM,SAAS;AAAA,YAChB,CAAC,KAAK,MAAM,+BAA+B,EAAE;AAAA,UAC/C,EAHC,QAGS;AAAA,QACZ,EARC,KAQM;AAAA,QACP,CAAC,OAAO,WAAW,CAAC,YAAa,gBAAgB,SAAU,EAAE;AAAA,MAC/D,EApBC,GAoBI;AAAA,IACP,EAtBC;AAwBL;AAEA,IAAO,mBAAQ;","names":[],"file":"menuItem.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/navigation/menu/menuItem.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, splitProps } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { useMenuContext } from \"./menuContext\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../primitives/callHandler\";\n\nexport interface MenuItemProps extends JSX.HTMLAttributes<HTMLLIElement> {\n /**\n * Greys the item out and marks it `aria-disabled`. It takes no focus, the arrow keys\n * skip it, and neither a click nor Enter or Space chooses it.\n */\n disabled?: boolean | undefined;\n selected?: boolean | undefined;\n href?: string | undefined;\n linkElement?: string;\n linkProps?: JSX.AnchorHTMLAttributes<HTMLAnchorElement>;\n value?: unknown;\n optionRenderer?: ((args: MenuItemProps) => JSX.Element) | undefined;\n onClick?: JSX.EventHandlerUnion<HTMLLIElement, MouseEvent>;\n ref?: Ref<HTMLLIElement>;\n}\n\nexport function MenuItem(props: ParentProps<MenuItemProps>): JSX.Element {\n const ctx = useMenuContext();\n const [local, rest] = splitProps(props, [\n \"children\",\n \"class\",\n \"disabled\",\n \"selected\",\n \"onClick\",\n \"onKeyDown\",\n \"href\",\n \"linkElement\",\n \"linkProps\",\n \"value\",\n \"optionRenderer\",\n \"ref\",\n // The item sets these on its root too; its own handlers call the caller's.\n \"onMouseDown\",\n \"onPointerDown\",\n ]);\n\n let rippleActions: RippleActionsRef | undefined;\n\n // Enter or Space chooses the focused item, as it would press a button: through a click,\n // so the item's onClick and whatever listens for its clicks (a submenu closing the menu)\n // run as for a pointer. An item with a link clicks the link. A key pressed on something\n // inside the item, such as the link itself, is that element's own.\n const onKeyDown: JSX.EventHandler<HTMLLIElement, KeyboardEvent> = (event) => {\n callHandler(local.onKeyDown, event);\n if (event.defaultPrevented || local.disabled || event.target !== event.currentTarget) return;\n if (event.key === \"Enter\" || event.key === \" \") {\n // Handled: Space doesn't scroll, and Enter doesn't press the button that takes\n // focus when the menu closes.\n event.preventDefault();\n const link = local.href ? event.currentTarget.firstElementChild : null;\n ((link as HTMLElement | null) ?? event.currentTarget).click();\n }\n };\n\n const onClick: JSX.EventHandler<HTMLLIElement, MouseEvent> = (event) => {\n if (local.disabled) {\n if (local.href) event.preventDefault();\n return;\n }\n callHandler(local.onClick, event);\n };\n\n // Like a click, a press on a disabled item reaches no handler of the caller's.\n const onMouseDown: JSX.EventHandler<HTMLLIElement, MouseEvent> = (event) => {\n if (!local.disabled) callHandler(local.onMouseDown, event);\n };\n\n const onPointerDown: JSX.EventHandler<HTMLLIElement, PointerEvent> = (event) => {\n callHandler(local.onPointerDown, event);\n if (!local.disabled) rippleActions?.onRipple(event);\n };\n\n const classes = (): string =>\n cn(\"smwb-menu__item\", local.class, {\n \"smwb-menu__item--dense\": ctx.dense,\n \"smwb-menu__item--disabled\": local.disabled,\n \"smwb-menu__item--selected\": local.selected,\n });\n\n return (\n <Show when={!local.optionRenderer} fallback={local.optionRenderer?.(props)}>\n <li\n {...rest}\n // A menu item's role wins over the caller's, and so does its data-value\n // where it has a value. Its tabindex is a default: the caller's wins.\n role=\"menuitem\"\n ref={mergeRefs(local.ref)}\n aria-disabled={local.disabled || undefined}\n class={classes()}\n tabindex={rest.tabindex ?? (local.disabled ? undefined : 0)}\n onClick={onClick}\n onKeyDown={onKeyDown}\n data-value={local.value as string | number | undefined}\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n >\n <Show\n when={local.href}\n fallback={<span class=\"smwb-menu__item-inner\">{local.children}</span>}\n >\n <Dynamic component={local.linkElement ?? \"a\"} class=\"smwb-menu__item-inner\" href={local.href} {...(local.linkProps ?? {})}>\n {local.children}\n <span class=\"smwb-menu__item__helper-text\" />\n </Dynamic>\n </Show>\n <Ripple actionRef={(actions) => (rippleActions = actions)} />\n </li>\n </Show>\n );\n}\n\nexport default MenuItem;\n"],"mappings":"AAAA,SAAqC,MAAM,kBAAkB;AAC7D,SAAS,eAAe;AACxB,OAAO,QAAQ;AACf,SAAS,sBAAsB;AAC/B,SAAS,cAAqC;AAC9C,SAAS,iBAA2B;AACpC,SAAS,mBAAmB;AAkBrB,SAAS,SAAS,OAAgD;AACvE,QAAM,MAAM,eAAe;AAC3B,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,EACF,CAAC;AAED,MAAI;AAMJ,QAAM,YAA4D,CAAC,UAAU;AAC3E,gBAAY,MAAM,WAAW,KAAK;AAClC,QAAI,MAAM,oBAAoB,MAAM,YAAY,MAAM,WAAW,MAAM,cAAe;AACtF,QAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ,KAAK;AAG9C,YAAM,eAAe;AACrB,YAAM,OAAO,MAAM,OAAO,MAAM,cAAc,oBAAoB;AAClE,OAAE,QAA+B,MAAM,eAAe,MAAM;AAAA,IAC9D;AAAA,EACF;AAEA,QAAM,UAAuD,CAAC,UAAU;AACtE,QAAI,MAAM,UAAU;AAClB,UAAI,MAAM,KAAM,OAAM,eAAe;AACrC;AAAA,IACF;AACA,gBAAY,MAAM,SAAS,KAAK;AAAA,EAClC;AAGA,QAAM,cAA2D,CAAC,UAAU;AAC1E,QAAI,CAAC,MAAM,SAAU,aAAY,MAAM,aAAa,KAAK;AAAA,EAC3D;AAEA,QAAM,gBAA+D,CAAC,UAAU;AAC9E,gBAAY,MAAM,eAAe,KAAK;AACtC,QAAI,CAAC,MAAM,SAAU,gBAAe,SAAS,KAAK;AAAA,EACpD;AAEA,QAAM,UAAU,MACd,GAAG,mBAAmB,MAAM,OAAO;AAAA,IACjC,0BAA0B,IAAI;AAAA,IAC9B,6BAA6B,MAAM;AAAA,IACnC,6BAA6B,MAAM;AAAA,EACrC,CAAC;AAEH,SACE,CAAC,KAAK,MAAM,CAAC,MAAM,gBAAgB,UAAU,MAAM,iBAAiB,KAAK,GAAG;AAAA,MAC1E,CAAC;AAAA,QACK;AAAA,IAGJ,KAAK;AAAA,IACL,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,eAAe,MAAM,YAAY;AAAA,IACjC,OAAO,QAAQ;AAAA,IACf,UAAU,KAAK,aAAa,MAAM,WAAW,SAAY;AAAA,IACzD,SAAS;AAAA,IACT,WAAW;AAAA,IACX,YAAY,MAAM;AAAA,IAClB,aAAa;AAAA,IACb,eAAe;AAAA,GAChB;AAAA,QACC,CAAC;AAAA,IACC,MAAM,MAAM;AAAA,IACZ,UAAU,CAAC,KAAK,MAAM,yBAAyB,MAAM,SAAS,EAAnD;AAAA,GACZ;AAAA,UACC,CAAC,QAAQ,WAAW,MAAM,eAAe,KAAK,MAAM,wBAAwB,MAAM,MAAM,UAAW,MAAM,aAAa,CAAC,GAAI;AAAA,aACxH,MAAM,SAAS;AAAA,YAChB,CAAC,KAAK,MAAM,+BAA+B,EAAE;AAAA,UAC/C,EAHC,QAGS;AAAA,QACZ,EARC,KAQM;AAAA,QACP,CAAC,OAAO,WAAW,CAAC,YAAa,gBAAgB,SAAU,EAAE;AAAA,MAC/D,EAzBC,GAyBI;AAAA,IACP,EA3BC;AA6BL;AAEA,IAAO,mBAAQ;","names":[],"file":"menuItem.jsx"}
@@ -2,12 +2,25 @@ import { splitProps } from "solid-js";
2
2
  import cn from "clsx";
3
3
  import { useMenuContext } from "./menuContext";
4
4
  import { mergeRefs } from "../../../primitives/mergeRefs";
5
+ const ENABLED_ITEM_SELECTOR = '[role="menuitem"]:not([aria-disabled="true"])';
5
6
  function MenuList(props) {
6
7
  const ctx = useMenuContext();
7
- const [local, rest] = splitProps(props, ["children", "class", "ref"]);
8
+ const [local, rest] = splitProps(props, ["children", "class", "ref", "listRole"]);
8
9
  const onKeyDown = (event) => {
9
- const items = Array.from(
10
- event.currentTarget.querySelectorAll('[role="menuitem"]:not([aria-disabled="true"])')
10
+ if (event.defaultPrevented) return;
11
+ if (event.key === "Escape") {
12
+ if (ctx.variant === "floating") event.preventDefault();
13
+ ctx.onClose();
14
+ return;
15
+ }
16
+ if (event.key === "ArrowLeft" && ctx.submenu) {
17
+ event.preventDefault();
18
+ ctx.onClose();
19
+ return;
20
+ }
21
+ const list = event.currentTarget;
22
+ const items = Array.from(list.querySelectorAll(ENABLED_ITEM_SELECTOR)).filter(
23
+ (item) => item.closest('[role="menu"]') === list
11
24
  );
12
25
  if (items.length === 0) return;
13
26
  const currentIndex = items.indexOf(document.activeElement);
@@ -23,15 +36,13 @@ function MenuList(props) {
23
36
  } else if (event.key === "End") {
24
37
  event.preventDefault();
25
38
  items[items.length - 1]?.focus();
26
- } else if (event.key === "Escape") {
27
- ctx.onClose();
28
39
  }
29
40
  };
30
41
  return <div {...rest} ref={mergeRefs(local.ref)} class={cn("smwb-menu", local.class, `smwb-menu--${ctx.variant}`)}>
31
42
  <ul
32
43
  class={cn("smwb-menu__list", `smwb-menu__list--${ctx.variant}`)}
33
- role="menu"
34
- aria-orientation="vertical"
44
+ role={local.listRole ?? "menu"}
45
+ aria-orientation={(local.listRole ?? "menu") === "menu" ? "vertical" : void 0}
35
46
  onKeyDown={onKeyDown}
36
47
  >
37
48
  {local.children}
@@ -40,6 +51,7 @@ function MenuList(props) {
40
51
  }
41
52
  var menuList_default = MenuList;
42
53
  export {
54
+ ENABLED_ITEM_SELECTOR,
43
55
  MenuList,
44
56
  menuList_default as default
45
57
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/navigation/menu/menuList.tsx"],"sourcesContent":["import { type JSX, type ParentProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { useMenuContext } from \"./menuContext\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface MenuListProps extends JSX.HTMLAttributes<HTMLDivElement> {\n ref?: Ref<HTMLDivElement>;\n}\n\nexport function MenuList(props: ParentProps<MenuListProps>): JSX.Element {\n const ctx = useMenuContext();\n const [local, rest] = splitProps(props, [\"children\", \"class\", \"ref\"]);\n\n const onKeyDown: JSX.EventHandler<HTMLUListElement, KeyboardEvent> = (event) => {\n const items = Array.from(\n event.currentTarget.querySelectorAll<HTMLElement>('[role=\"menuitem\"]:not([aria-disabled=\"true\"])')\n );\n if (items.length === 0) return;\n const currentIndex = items.indexOf(document.activeElement as HTMLElement);\n\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n items[(currentIndex + 1 + items.length) % items.length]?.focus();\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n items[(currentIndex - 1 + items.length) % items.length]?.focus();\n } else if (event.key === \"Home\") {\n event.preventDefault();\n items[0]?.focus();\n } else if (event.key === \"End\") {\n event.preventDefault();\n items[items.length - 1]?.focus();\n } else if (event.key === \"Escape\") {\n ctx.onClose();\n }\n };\n\n return (\n <div {...rest} ref={mergeRefs(local.ref)} class={cn(\"smwb-menu\", local.class, `smwb-menu--${ctx.variant}`)}>\n <ul\n class={cn(\"smwb-menu__list\", `smwb-menu__list--${ctx.variant}`)}\n role=\"menu\"\n aria-orientation=\"vertical\"\n onKeyDown={onKeyDown}\n >\n {local.children}\n </ul>\n </div>\n );\n}\n\nexport default MenuList;\n"],"mappings":"AAAA,SAAqC,kBAAkB;AACvD,OAAO,QAAQ;AACf,SAAS,sBAAsB;AAC/B,SAAS,iBAA2B;AAM7B,SAAS,SAAS,OAAgD;AACvE,QAAM,MAAM,eAAe;AAC3B,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,YAAY,SAAS,KAAK,CAAC;AAEpE,QAAM,YAA+D,CAAC,UAAU;AAC9E,UAAM,QAAQ,MAAM;AAAA,MAClB,MAAM,cAAc,iBAA8B,+CAA+C;AAAA,IACnG;AACA,QAAI,MAAM,WAAW,EAAG;AACxB,UAAM,eAAe,MAAM,QAAQ,SAAS,aAA4B;AAExE,QAAI,MAAM,QAAQ,aAAa;AAC7B,YAAM,eAAe;AACrB,aAAO,eAAe,IAAI,MAAM,UAAU,MAAM,MAAM,GAAG,MAAM;AAAA,IACjE,WAAW,MAAM,QAAQ,WAAW;AAClC,YAAM,eAAe;AACrB,aAAO,eAAe,IAAI,MAAM,UAAU,MAAM,MAAM,GAAG,MAAM;AAAA,IACjE,WAAW,MAAM,QAAQ,QAAQ;AAC/B,YAAM,eAAe;AACrB,YAAM,CAAC,GAAG,MAAM;AAAA,IAClB,WAAW,MAAM,QAAQ,OAAO;AAC9B,YAAM,eAAe;AACrB,YAAM,MAAM,SAAS,CAAC,GAAG,MAAM;AAAA,IACjC,WAAW,MAAM,QAAQ,UAAU;AACjC,UAAI,QAAQ;AAAA,IACd;AAAA,EACF;AAEA,SACE,CAAC,QAAQ,MAAM,KAAK,UAAU,MAAM,GAAG,GAAG,OAAO,GAAG,aAAa,MAAM,OAAO,cAAc,IAAI,OAAO,EAAE,GAAG;AAAA,MAC1G,CAAC;AAAA,IACC,OAAO,GAAG,mBAAmB,oBAAoB,IAAI,OAAO,EAAE;AAAA,IAC9D,KAAK;AAAA,IACL,iBAAiB;AAAA,IACjB,WAAW;AAAA,GACZ;AAAA,SACE,MAAM,SAAS;AAAA,MAClB,EAPC,GAOI;AAAA,IACP,EATC;AAWL;AAEA,IAAO,mBAAQ;","names":[],"file":"menuList.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/navigation/menu/menuList.tsx"],"sourcesContent":["import { type JSX, type ParentProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { useMenuContext } from \"./menuContext\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\n/** The items the arrow keys move between; a disabled item is marked aria-disabled. */\nexport const ENABLED_ITEM_SELECTOR = '[role=\"menuitem\"]:not([aria-disabled=\"true\"])';\n\nexport interface MenuListProps extends JSX.HTMLAttributes<HTMLDivElement> {\n ref?: Ref<HTMLDivElement>;\n /** Role of the inner list, `menu` by default (see `MenuProps`). */\n listRole?: JSX.AriaAttributes[\"role\"] | undefined;\n}\n\nexport function MenuList(props: ParentProps<MenuListProps>): JSX.Element {\n const ctx = useMenuContext();\n const [local, rest] = splitProps(props, [\"children\", \"class\", \"ref\", \"listRole\"]);\n\n const onKeyDown: JSX.EventHandler<HTMLUListElement, KeyboardEvent> = (event) => {\n // Handled inside already, e.g. by a submenu's own list: not this list's key.\n if (event.defaultPrevented) return;\n if (event.key === \"Escape\") {\n // A floating menu closes on it and marks it handled, so what is around the menu\n // (a parent menu, FloatingWindow, fullscreen ExpansionPanel, Modal, Sheet) leaves\n // this press alone. A static menu stays in place and lets it through.\n if (ctx.variant === \"floating\") event.preventDefault();\n ctx.onClose();\n return;\n }\n if (event.key === \"ArrowLeft\" && ctx.submenu) {\n // A submenu closes and gives focus back to its row (MenuFloating does that).\n event.preventDefault();\n ctx.onClose();\n return;\n }\n // This list's own items: an open submenu drawn inside it keeps its items to itself.\n const list = event.currentTarget;\n const items = Array.from(list.querySelectorAll<HTMLElement>(ENABLED_ITEM_SELECTOR)).filter(\n (item) => item.closest('[role=\"menu\"]') === list\n );\n if (items.length === 0) return;\n const currentIndex = items.indexOf(document.activeElement as HTMLElement);\n\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n items[(currentIndex + 1 + items.length) % items.length]?.focus();\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n items[(currentIndex - 1 + items.length) % items.length]?.focus();\n } else if (event.key === \"Home\") {\n event.preventDefault();\n items[0]?.focus();\n } else if (event.key === \"End\") {\n event.preventDefault();\n items[items.length - 1]?.focus();\n }\n };\n\n return (\n <div {...rest} ref={mergeRefs(local.ref)} class={cn(\"smwb-menu\", local.class, `smwb-menu--${ctx.variant}`)}>\n <ul\n class={cn(\"smwb-menu__list\", `smwb-menu__list--${ctx.variant}`)}\n role={local.listRole ?? \"menu\"}\n // ARIA allows an orientation on a menu, not on a presentation list.\n aria-orientation={(local.listRole ?? \"menu\") === \"menu\" ? \"vertical\" : undefined}\n onKeyDown={onKeyDown}\n >\n {local.children}\n </ul>\n </div>\n );\n}\n\nexport default MenuList;\n"],"mappings":"AAAA,SAAqC,kBAAkB;AACvD,OAAO,QAAQ;AACf,SAAS,sBAAsB;AAC/B,SAAS,iBAA2B;AAG7B,MAAM,wBAAwB;AAQ9B,SAAS,SAAS,OAAgD;AACvE,QAAM,MAAM,eAAe;AAC3B,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,YAAY,SAAS,OAAO,UAAU,CAAC;AAEhF,QAAM,YAA+D,CAAC,UAAU;AAE9E,QAAI,MAAM,iBAAkB;AAC5B,QAAI,MAAM,QAAQ,UAAU;AAI1B,UAAI,IAAI,YAAY,WAAY,OAAM,eAAe;AACrD,UAAI,QAAQ;AACZ;AAAA,IACF;AACA,QAAI,MAAM,QAAQ,eAAe,IAAI,SAAS;AAE5C,YAAM,eAAe;AACrB,UAAI,QAAQ;AACZ;AAAA,IACF;AAEA,UAAM,OAAO,MAAM;AACnB,UAAM,QAAQ,MAAM,KAAK,KAAK,iBAA8B,qBAAqB,CAAC,EAAE;AAAA,MAClF,CAAC,SAAS,KAAK,QAAQ,eAAe,MAAM;AAAA,IAC9C;AACA,QAAI,MAAM,WAAW,EAAG;AACxB,UAAM,eAAe,MAAM,QAAQ,SAAS,aAA4B;AAExE,QAAI,MAAM,QAAQ,aAAa;AAC7B,YAAM,eAAe;AACrB,aAAO,eAAe,IAAI,MAAM,UAAU,MAAM,MAAM,GAAG,MAAM;AAAA,IACjE,WAAW,MAAM,QAAQ,WAAW;AAClC,YAAM,eAAe;AACrB,aAAO,eAAe,IAAI,MAAM,UAAU,MAAM,MAAM,GAAG,MAAM;AAAA,IACjE,WAAW,MAAM,QAAQ,QAAQ;AAC/B,YAAM,eAAe;AACrB,YAAM,CAAC,GAAG,MAAM;AAAA,IAClB,WAAW,MAAM,QAAQ,OAAO;AAC9B,YAAM,eAAe;AACrB,YAAM,MAAM,SAAS,CAAC,GAAG,MAAM;AAAA,IACjC;AAAA,EACF;AAEA,SACE,CAAC,QAAQ,MAAM,KAAK,UAAU,MAAM,GAAG,GAAG,OAAO,GAAG,aAAa,MAAM,OAAO,cAAc,IAAI,OAAO,EAAE,GAAG;AAAA,MAC1G,CAAC;AAAA,IACC,OAAO,GAAG,mBAAmB,oBAAoB,IAAI,OAAO,EAAE;AAAA,IAC9D,MAAM,MAAM,YAAY;AAAA,IAExB,mBAAmB,MAAM,YAAY,YAAY,SAAS,aAAa;AAAA,IACvE,WAAW;AAAA,GACZ;AAAA,SACE,MAAM,SAAS;AAAA,MAClB,EARC,GAQI;AAAA,IACP,EAVC;AAYL;AAEA,IAAO,mBAAQ;","names":[],"file":"menuList.jsx"}
@@ -2,12 +2,24 @@ import { createSignal, splitProps } from "solid-js";
2
2
  import { offset } from "@floating-ui/dom";
3
3
  import cn from "clsx";
4
4
  import { MenuContext, useMenuContext } from "./menuContext";
5
+ import { ENABLED_ITEM_SELECTOR } from "./menuList";
5
6
  import { MenuFloating } from "./menuFloating";
7
+ import { Ripple } from "../../base/ripple";
8
+ import { callHandler } from "../../../primitives/callHandler";
6
9
  function MenuSubmenu(props) {
7
10
  const parentCtx = useMenuContext();
8
- const [local] = splitProps(props, ["placement", "onClose", "toggleElement", "children", "openOnHover", "class"]);
11
+ const [local, rest] = splitProps(props, [
12
+ "placement",
13
+ "onClose",
14
+ "toggleElement",
15
+ "children",
16
+ "openOnHover",
17
+ "onClick",
18
+ "ref"
19
+ ]);
9
20
  const [isOpen, setIsOpen] = createSignal(false);
10
21
  const [anchor, setAnchor] = createSignal(null);
22
+ let rippleActions;
11
23
  const middleware = [
12
24
  offset(({ placement }) => {
13
25
  switch (placement) {
@@ -26,19 +38,31 @@ function MenuSubmenu(props) {
26
38
  if (event.button !== 0) return;
27
39
  setIsOpen((prev) => !prev);
28
40
  };
41
+ const onTogglePointerDown = (event) => {
42
+ rippleActions?.onRipple(event);
43
+ };
29
44
  const close = () => {
30
45
  setIsOpen(false);
31
46
  local.onClose?.();
32
47
  };
48
+ const focusFirstItem = () => {
49
+ anchor()?.nextElementSibling?.querySelector(ENABLED_ITEM_SELECTOR)?.focus();
50
+ };
33
51
  const onToggleKeyDown = (event) => {
34
52
  if (event.key === "ArrowRight" || event.key === "Enter" || event.key === " ") {
35
53
  event.preventDefault();
36
54
  setIsOpen(true);
55
+ focusFirstItem();
37
56
  } else if (event.key === "ArrowLeft" || event.key === "Escape") {
57
+ if (isOpen()) event.preventDefault();
38
58
  setIsOpen(false);
39
59
  }
40
60
  };
61
+ const onToggleMouseEnter = () => {
62
+ if (local.openOnHover) setIsOpen(true);
63
+ };
41
64
  const onContentClick = (event) => {
65
+ callHandler(local.onClick, event);
42
66
  const item = event.target.closest('[role="menuitem"]');
43
67
  if (item && !item.hasAttribute("aria-haspopup")) {
44
68
  close();
@@ -50,23 +74,31 @@ function MenuSubmenu(props) {
50
74
  return parentCtx.dense;
51
75
  },
52
76
  variant: "floating",
53
- onClose: close
77
+ onClose: close,
78
+ submenu: true
54
79
  };
55
80
  return <MenuContext.Provider value={value}>
56
81
  <li
57
82
  role="menuitem"
58
83
  ref={setAnchor}
59
- class={cn("smwb-menu__item", local.class, { "smwb-menu__item--selected": isOpen() })}
84
+ class={cn("smwb-menu__item", {
85
+ "smwb-menu__item--dense": parentCtx.dense,
86
+ "smwb-menu__item--selected": isOpen()
87
+ })}
60
88
  tabindex={0}
61
89
  aria-haspopup="menu"
62
90
  aria-expanded={isOpen()}
63
91
  onClick={onToggle}
92
+ onPointerDown={onTogglePointerDown}
64
93
  onKeyDown={onToggleKeyDown}
65
- onMouseEnter={local.openOnHover ? () => setIsOpen(true) : void 0}
94
+ onMouseEnter={onToggleMouseEnter}
66
95
  >
67
96
  <span class="smwb-menu__item-inner">{local.toggleElement}</span>
97
+ <Ripple actionRef={(actions) => rippleActions = actions} />
68
98
  </li>
69
99
  <MenuFloating
100
+ {...rest}
101
+ ref={local.ref}
70
102
  placement={local.placement ?? "right-start"}
71
103
  isOpen={isOpen()}
72
104
  onClose={close}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/navigation/menu/menuSubmenu.tsx"],"sourcesContent":["import { type JSX, type ParentProps, createSignal, splitProps } from \"solid-js\";\nimport { type Middleware, offset } from \"@floating-ui/dom\";\nimport cn from \"clsx\";\nimport { MenuContext, useMenuContext } from \"./menuContext\";\nimport { MenuFloating } from \"./menuFloating\";\nimport type { Placement } from \"../../../utils/floating\";\n\nexport interface MenuSubmenuProps {\n placement?: Placement;\n onClose?: () => void;\n /** Content of the toggle row (e.g. an icon + <MenuItemText/>). */\n toggleElement?: JSX.Element;\n /** Items and/or nested `MenuSubmenu` elements (multi-level supported). */\n children: JSX.Element;\n /** Open the submenu on pointer hover in addition to click. */\n openOnHover?: boolean;\n class?: string;\n}\n\n/**\n * Solid redesign of MenuSubmenu. React injected props into a cloned toggle and\n * cloned each child's onClick; Solid renders its own toggle row and closes the\n * menu chain via click delegation on the floating content (leaf menuitems close,\n * nested submenu toggles — which carry `aria-haspopup` — do not).\n */\nexport function MenuSubmenu(props: ParentProps<MenuSubmenuProps>): JSX.Element {\n const parentCtx = useMenuContext();\n const [local] = splitProps(props, [\"placement\", \"onClose\", \"toggleElement\", \"children\", \"openOnHover\", \"class\"]);\n const [isOpen, setIsOpen] = createSignal(false);\n const [anchor, setAnchor] = createSignal<HTMLElement | null>(null);\n\n const middleware: Middleware[] = [\n offset(({ placement }) => {\n switch (placement) {\n case \"right-start\":\n case \"left-start\":\n return { crossAxis: -8, mainAxis: 0 };\n case \"right-end\":\n case \"left-end\":\n return { crossAxis: 8, mainAxis: 0 };\n default:\n return { crossAxis: 0, mainAxis: 0 };\n }\n }),\n ];\n\n const onToggle: JSX.EventHandler<HTMLLIElement, MouseEvent> = (event) => {\n if (event.button !== 0) return;\n setIsOpen((prev) => !prev);\n };\n\n const close = (): void => {\n setIsOpen(false);\n local.onClose?.();\n };\n\n const onToggleKeyDown: JSX.EventHandler<HTMLLIElement, KeyboardEvent> = (event) => {\n if (event.key === \"ArrowRight\" || event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n setIsOpen(true);\n } else if (event.key === \"ArrowLeft\" || event.key === \"Escape\") {\n setIsOpen(false);\n }\n };\n\n const onContentClick: JSX.EventHandler<HTMLDivElement, MouseEvent> = (event) => {\n const item = (event.target as HTMLElement).closest('[role=\"menuitem\"]');\n if (item && !item.hasAttribute(\"aria-haspopup\")) {\n close();\n parentCtx.onClose();\n }\n };\n\n const value = {\n get dense() {\n return parentCtx.dense;\n },\n variant: \"floating\" as const,\n onClose: close,\n };\n\n return (\n <MenuContext.Provider value={value}>\n <li\n role=\"menuitem\"\n ref={setAnchor}\n class={cn(\"smwb-menu__item\", local.class, { \"smwb-menu__item--selected\": isOpen() })}\n tabindex={0}\n aria-haspopup=\"menu\"\n aria-expanded={isOpen()}\n onClick={onToggle}\n onKeyDown={onToggleKeyDown}\n onMouseEnter={local.openOnHover ? () => setIsOpen(true) : undefined}\n >\n <span class=\"smwb-menu__item-inner\">{local.toggleElement}</span>\n </li>\n <MenuFloating\n placement={local.placement ?? \"right-start\"}\n isOpen={isOpen()}\n onClose={close}\n anchorElement={anchor()}\n middleware={middleware}\n onClick={onContentClick}\n >\n {local.children}\n </MenuFloating>\n </MenuContext.Provider>\n );\n}\n\nexport default MenuSubmenu;\n"],"mappings":"AAAA,SAAqC,cAAc,kBAAkB;AACrE,SAA0B,cAAc;AACxC,OAAO,QAAQ;AACf,SAAS,aAAa,sBAAsB;AAC5C,SAAS,oBAAoB;AAqBtB,SAAS,YAAY,OAAmD;AAC7E,QAAM,YAAY,eAAe;AACjC,QAAM,CAAC,KAAK,IAAI,WAAW,OAAO,CAAC,aAAa,WAAW,iBAAiB,YAAY,eAAe,OAAO,CAAC;AAC/G,QAAM,CAAC,QAAQ,SAAS,IAAI,aAAa,KAAK;AAC9C,QAAM,CAAC,QAAQ,SAAS,IAAI,aAAiC,IAAI;AAEjE,QAAM,aAA2B;AAAA,IAC/B,OAAO,CAAC,EAAE,UAAU,MAAM;AACxB,cAAQ,WAAW;AAAA,QACjB,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,EAAE,WAAW,IAAI,UAAU,EAAE;AAAA,QACtC,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,EAAE,WAAW,GAAG,UAAU,EAAE;AAAA,QACrC;AACE,iBAAO,EAAE,WAAW,GAAG,UAAU,EAAE;AAAA,MACvC;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,WAAwD,CAAC,UAAU;AACvE,QAAI,MAAM,WAAW,EAAG;AACxB,cAAU,CAAC,SAAS,CAAC,IAAI;AAAA,EAC3B;AAEA,QAAM,QAAQ,MAAY;AACxB,cAAU,KAAK;AACf,UAAM,UAAU;AAAA,EAClB;AAEA,QAAM,kBAAkE,CAAC,UAAU;AACjF,QAAI,MAAM,QAAQ,gBAAgB,MAAM,QAAQ,WAAW,MAAM,QAAQ,KAAK;AAC5E,YAAM,eAAe;AACrB,gBAAU,IAAI;AAAA,IAChB,WAAW,MAAM,QAAQ,eAAe,MAAM,QAAQ,UAAU;AAC9D,gBAAU,KAAK;AAAA,IACjB;AAAA,EACF;AAEA,QAAM,iBAA+D,CAAC,UAAU;AAC9E,UAAM,OAAQ,MAAM,OAAuB,QAAQ,mBAAmB;AACtE,QAAI,QAAQ,CAAC,KAAK,aAAa,eAAe,GAAG;AAC/C,YAAM;AACN,gBAAU,QAAQ;AAAA,IACpB;AAAA,EACF;AAEA,QAAM,QAAQ;AAAA,IACZ,IAAI,QAAQ;AACV,aAAO,UAAU;AAAA,IACnB;AAAA,IACA,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAEA,SACE,CAAC,YAAY,SAAS,OAAO,OAAO;AAAA,MAClC,CAAC;AAAA,IACC,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO,GAAG,mBAAmB,MAAM,OAAO,EAAE,6BAA6B,OAAO,EAAE,CAAC;AAAA,IACnF,UAAU;AAAA,IACV,cAAc;AAAA,IACd,eAAe,OAAO;AAAA,IACtB,SAAS;AAAA,IACT,WAAW;AAAA,IACX,cAAc,MAAM,cAAc,MAAM,UAAU,IAAI,IAAI;AAAA,GAC3D;AAAA,QACC,CAAC,KAAK,MAAM,yBAAyB,MAAM,cAAc,EAAxD,KAA+D;AAAA,MAClE,EAZC,GAYI;AAAA,MACL,CAAC;AAAA,IACC,WAAW,MAAM,aAAa;AAAA,IAC9B,QAAQ,OAAO;AAAA,IACf,SAAS;AAAA,IACT,eAAe,OAAO;AAAA,IACtB,YAAY;AAAA,IACZ,SAAS;AAAA,GACV;AAAA,SACE,MAAM,SAAS;AAAA,MAClB,EATC,aASc;AAAA,IACjB,EAxBC,YAAY;AA0BjB;AAEA,IAAO,sBAAQ;","names":[],"file":"menuSubmenu.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/navigation/menu/menuSubmenu.tsx"],"sourcesContent":["import { type JSX, type ParentProps, createSignal, splitProps } from \"solid-js\";\nimport { type Middleware, offset } from \"@floating-ui/dom\";\nimport cn from \"clsx\";\nimport { MenuContext, useMenuContext } from \"./menuContext\";\nimport { ENABLED_ITEM_SELECTOR } from \"./menuList\";\nimport { MenuFloating } from \"./menuFloating\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport type { Placement } from \"../../../utils/floating\";\nimport type { Ref } from \"../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../primitives/callHandler\";\n\nexport interface MenuSubmenuProps extends JSX.HTMLAttributes<HTMLDivElement> {\n placement?: Placement;\n onClose?: () => void;\n /** Content of the toggle row (e.g. an icon + <MenuItemText/>). */\n toggleElement?: JSX.Element;\n /** Items and/or nested `MenuSubmenu` elements (multi-level supported). */\n children: JSX.Element;\n /** Open the submenu on pointer hover in addition to click. */\n openOnHover?: boolean;\n /**\n * Class of the floating panel that holds the items, as in React. The other HTML\n * attributes and `style` go to the panel too; the toggle row takes none of them.\n */\n class?: string;\n /** Gets the floating panel that holds the items, while it is open. */\n ref?: Ref<HTMLDivElement>;\n}\n\n/**\n * Solid redesign of MenuSubmenu. React injected props into a cloned toggle and\n * cloned each child's onClick; Solid renders its own toggle row and closes the\n * menu chain via click delegation on the floating content (leaf menuitems close,\n * nested submenu toggles — which carry `aria-haspopup` — do not).\n */\nexport function MenuSubmenu(props: ParentProps<MenuSubmenuProps>): JSX.Element {\n const parentCtx = useMenuContext();\n const [local, rest] = splitProps(props, [\n \"placement\",\n \"onClose\",\n \"toggleElement\",\n \"children\",\n \"openOnHover\",\n \"onClick\",\n \"ref\",\n ]);\n const [isOpen, setIsOpen] = createSignal(false);\n const [anchor, setAnchor] = createSignal<HTMLElement | null>(null);\n let rippleActions: RippleActionsRef | undefined;\n\n const middleware: Middleware[] = [\n offset(({ placement }) => {\n switch (placement) {\n case \"right-start\":\n case \"left-start\":\n return { crossAxis: -8, mainAxis: 0 };\n case \"right-end\":\n case \"left-end\":\n return { crossAxis: 8, mainAxis: 0 };\n default:\n return { crossAxis: 0, mainAxis: 0 };\n }\n }),\n ];\n\n const onToggle: JSX.EventHandler<HTMLLIElement, MouseEvent> = (event) => {\n if (event.button !== 0) return;\n setIsOpen((prev) => !prev);\n };\n\n // The toggle row ripples like MenuItem's rows: on pointerdown, so touch and\n // pen get it too.\n const onTogglePointerDown = (event: PointerEvent): void => {\n rippleActions?.onRipple(event);\n };\n\n const close = (): void => {\n setIsOpen(false);\n local.onClose?.();\n };\n\n // A keyboard open hands focus to the submenu's first item. Solid draws the list as soon\n // as isOpen is set, as the element right after the row (MenuFloating adds no wrapper).\n const focusFirstItem = (): void => {\n anchor()?.nextElementSibling?.querySelector<HTMLElement>(ENABLED_ITEM_SELECTOR)?.focus();\n };\n\n const onToggleKeyDown: JSX.EventHandler<HTMLLIElement, KeyboardEvent> = (event) => {\n if (event.key === \"ArrowRight\" || event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n setIsOpen(true);\n focusFirstItem();\n } else if (event.key === \"ArrowLeft\" || event.key === \"Escape\") {\n // Closing its own open submenu takes the key: the menu the row is in stays open.\n if (isOpen()) event.preventDefault();\n setIsOpen(false);\n }\n };\n\n // Always attached and checks `openOnHover` itself. Solid binds event handlers\n // once, and the context provider builds the toggle in a tracked scope, so\n // choosing the handler by that prop there would rebuild the toggle whenever\n // it changes.\n const onToggleMouseEnter = (): void => {\n if (local.openOnHover) setIsOpen(true);\n };\n\n const onContentClick: JSX.EventHandler<HTMLDivElement, MouseEvent> = (event) => {\n // The caller's onClick on the panel runs first.\n callHandler(local.onClick, event);\n const item = (event.target as HTMLElement).closest('[role=\"menuitem\"]');\n if (item && !item.hasAttribute(\"aria-haspopup\")) {\n close();\n parentCtx.onClose();\n }\n };\n\n const value = {\n get dense() {\n return parentCtx.dense;\n },\n variant: \"floating\" as const,\n onClose: close,\n submenu: true,\n };\n\n return (\n <MenuContext.Provider value={value}>\n <li\n role=\"menuitem\"\n ref={setAnchor}\n class={cn(\"smwb-menu__item\", {\n \"smwb-menu__item--dense\": parentCtx.dense,\n \"smwb-menu__item--selected\": isOpen(),\n })}\n tabindex={0}\n aria-haspopup=\"menu\"\n aria-expanded={isOpen()}\n onClick={onToggle}\n onPointerDown={onTogglePointerDown}\n onKeyDown={onToggleKeyDown}\n onMouseEnter={onToggleMouseEnter}\n >\n <span class=\"smwb-menu__item-inner\">{local.toggleElement}</span>\n <Ripple actionRef={(actions) => (rippleActions = actions)} />\n </li>\n <MenuFloating\n {...rest}\n ref={local.ref}\n placement={local.placement ?? \"right-start\"}\n isOpen={isOpen()}\n onClose={close}\n anchorElement={anchor()}\n middleware={middleware}\n onClick={onContentClick}\n >\n {local.children}\n </MenuFloating>\n </MenuContext.Provider>\n );\n}\n\nexport default MenuSubmenu;\n"],"mappings":"AAAA,SAAqC,cAAc,kBAAkB;AACrE,SAA0B,cAAc;AACxC,OAAO,QAAQ;AACf,SAAS,aAAa,sBAAsB;AAC5C,SAAS,6BAA6B;AACtC,SAAS,oBAAoB;AAC7B,SAAS,cAAqC;AAG9C,SAAS,mBAAmB;AA0BrB,SAAS,YAAY,OAAmD;AAC7E,QAAM,YAAY,eAAe;AACjC,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,CAAC,QAAQ,SAAS,IAAI,aAAa,KAAK;AAC9C,QAAM,CAAC,QAAQ,SAAS,IAAI,aAAiC,IAAI;AACjE,MAAI;AAEJ,QAAM,aAA2B;AAAA,IAC/B,OAAO,CAAC,EAAE,UAAU,MAAM;AACxB,cAAQ,WAAW;AAAA,QACjB,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,EAAE,WAAW,IAAI,UAAU,EAAE;AAAA,QACtC,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,EAAE,WAAW,GAAG,UAAU,EAAE;AAAA,QACrC;AACE,iBAAO,EAAE,WAAW,GAAG,UAAU,EAAE;AAAA,MACvC;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,WAAwD,CAAC,UAAU;AACvE,QAAI,MAAM,WAAW,EAAG;AACxB,cAAU,CAAC,SAAS,CAAC,IAAI;AAAA,EAC3B;AAIA,QAAM,sBAAsB,CAAC,UAA8B;AACzD,mBAAe,SAAS,KAAK;AAAA,EAC/B;AAEA,QAAM,QAAQ,MAAY;AACxB,cAAU,KAAK;AACf,UAAM,UAAU;AAAA,EAClB;AAIA,QAAM,iBAAiB,MAAY;AACjC,WAAO,GAAG,oBAAoB,cAA2B,qBAAqB,GAAG,MAAM;AAAA,EACzF;AAEA,QAAM,kBAAkE,CAAC,UAAU;AACjF,QAAI,MAAM,QAAQ,gBAAgB,MAAM,QAAQ,WAAW,MAAM,QAAQ,KAAK;AAC5E,YAAM,eAAe;AACrB,gBAAU,IAAI;AACd,qBAAe;AAAA,IACjB,WAAW,MAAM,QAAQ,eAAe,MAAM,QAAQ,UAAU;AAE9D,UAAI,OAAO,EAAG,OAAM,eAAe;AACnC,gBAAU,KAAK;AAAA,IACjB;AAAA,EACF;AAMA,QAAM,qBAAqB,MAAY;AACrC,QAAI,MAAM,YAAa,WAAU,IAAI;AAAA,EACvC;AAEA,QAAM,iBAA+D,CAAC,UAAU;AAE9E,gBAAY,MAAM,SAAS,KAAK;AAChC,UAAM,OAAQ,MAAM,OAAuB,QAAQ,mBAAmB;AACtE,QAAI,QAAQ,CAAC,KAAK,aAAa,eAAe,GAAG;AAC/C,YAAM;AACN,gBAAU,QAAQ;AAAA,IACpB;AAAA,EACF;AAEA,QAAM,QAAQ;AAAA,IACZ,IAAI,QAAQ;AACV,aAAO,UAAU;AAAA,IACnB;AAAA,IACA,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAEA,SACE,CAAC,YAAY,SAAS,OAAO,OAAO;AAAA,MAClC,CAAC;AAAA,IACC,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO,GAAG,mBAAmB;AAAA,MAC3B,0BAA0B,UAAU;AAAA,MACpC,6BAA6B,OAAO;AAAA,IACtC,CAAC;AAAA,IACD,UAAU;AAAA,IACV,cAAc;AAAA,IACd,eAAe,OAAO;AAAA,IACtB,SAAS;AAAA,IACT,eAAe;AAAA,IACf,WAAW;AAAA,IACX,cAAc;AAAA,GACf;AAAA,QACC,CAAC,KAAK,MAAM,yBAAyB,MAAM,cAAc,EAAxD,KAA+D;AAAA,QAChE,CAAC,OAAO,WAAW,CAAC,YAAa,gBAAgB,SAAU,EAAE;AAAA,MAC/D,EAjBC,GAiBI;AAAA,MACL,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,MAAM;AAAA,IACX,WAAW,MAAM,aAAa;AAAA,IAC9B,QAAQ,OAAO;AAAA,IACf,SAAS;AAAA,IACT,eAAe,OAAO;AAAA,IACtB,YAAY;AAAA,IACZ,SAAS;AAAA,GACV;AAAA,SACE,MAAM,SAAS;AAAA,MAClB,EAXC,aAWc;AAAA,IACjB,EA/BC,YAAY;AAiCjB;AAEA,IAAO,sBAAQ;","names":[],"file":"menuSubmenu.jsx"}
@@ -55,7 +55,8 @@ function Pagination(props) {
55
55
  "hidePrevButton",
56
56
  "hideNextButton",
57
57
  "onChange",
58
- "ref"
58
+ "ref",
59
+ "data-testid"
59
60
  ]);
60
61
  let navEl;
61
62
  const go = (target) => {
@@ -94,8 +95,8 @@ function Pagination(props) {
94
95
  return <nav
95
96
  {...rest}
96
97
  ref={mergeRefs(local.ref, (el) => navEl = el)}
97
- data-testid="pagination"
98
- aria-label="pagination"
98
+ data-testid={local["data-testid"] ?? "pagination"}
99
+ aria-label={rest["aria-label"] ?? "pagination"}
99
100
  class={cn(
100
101
  "smwb-pagination",
101
102
  `smwb-pagination_${local.size}`,