@smwb/ui-react 2.7.0 → 2.8.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 (414) hide show
  1. package/README.md +27 -0
  2. package/dist/assets/styles/less/components/avatar/avatar.entry.css +1 -1
  3. package/dist/assets/styles/less/components/card/card.entry.css +1 -1
  4. package/dist/assets/styles/less/components/checkbox/checkbox.entry.css +1 -1
  5. package/dist/assets/styles/less/components/chip/chip.entry.css +1 -1
  6. package/dist/assets/styles/less/components/menu/menu.entry.css +1 -1
  7. package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -1
  8. package/dist/assets/styles/less/components/radioButton/radioButton.entry.css +1 -1
  9. package/dist/assets/styles/less/components/rating/rating.entry.css +1 -1
  10. package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
  11. package/dist/assets/styles/less/components/table/table.entry.css +1 -1
  12. package/dist/assets/styles/less/components/thumbCard/thumbCard.entry.css +1 -1
  13. package/dist/assets/styles/less/components/toggle/toggle.entry.css +1 -1
  14. package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
  15. package/dist/assets/styles/less/connects/rt/table.entry.css +1 -1
  16. package/dist/components/base/icon/icon.d.ts +6 -2
  17. package/dist/components/base/icon/icon.js +49 -37
  18. package/dist/components/base/icon/icon.js.map +1 -1
  19. package/dist/components/base/ripple/ripple.d.ts +3 -0
  20. package/dist/components/base/ripple/ripple.js +38 -23
  21. package/dist/components/base/ripple/ripple.js.map +1 -1
  22. package/dist/components/dataDisplay/avatar/avatar.d.ts +4 -0
  23. package/dist/components/dataDisplay/avatar/avatar.js +50 -37
  24. package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
  25. package/dist/components/dataDisplay/badge/badge.js +37 -28
  26. package/dist/components/dataDisplay/badge/badge.js.map +1 -1
  27. package/dist/components/dataDisplay/card/card.d.ts +30 -2
  28. package/dist/components/dataDisplay/card/card.js +50 -23
  29. package/dist/components/dataDisplay/card/card.js.map +1 -1
  30. package/dist/components/dataDisplay/carousel/carousel.js +70 -70
  31. package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
  32. package/dist/components/dataDisplay/chart/chart.d.ts +2 -0
  33. package/dist/components/dataDisplay/chart/chart.js +66 -53
  34. package/dist/components/dataDisplay/chart/chart.js.map +1 -1
  35. package/dist/components/dataDisplay/chat/chatIconButton.d.ts +1 -1
  36. package/dist/components/dataDisplay/chat/chatIconButton.js +30 -26
  37. package/dist/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  38. package/dist/components/dataDisplay/chat/chatLayout.d.ts +3 -1
  39. package/dist/components/dataDisplay/chat/chatLayout.js +56 -55
  40. package/dist/components/dataDisplay/chat/chatLayout.js.map +1 -1
  41. package/dist/components/dataDisplay/chat/chatOverlayLayout.d.ts +3 -1
  42. package/dist/components/dataDisplay/chip/chip.d.ts +31 -0
  43. package/dist/components/dataDisplay/chip/chip.js +110 -83
  44. package/dist/components/dataDisplay/chip/chip.js.map +1 -1
  45. package/dist/components/dataDisplay/chipGroup/chipGroup.js +34 -30
  46. package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  47. package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +11 -3
  48. package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
  49. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +143 -98
  50. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  51. package/dist/components/dataDisplay/kanban/kanban.d.ts +6 -0
  52. package/dist/components/dataDisplay/kanban/kanban.js +46 -35
  53. package/dist/components/dataDisplay/kanban/kanban.js.map +1 -1
  54. package/dist/components/dataDisplay/lazyImage/lazyImage.js +31 -30
  55. package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  56. package/dist/components/dataDisplay/list/list.d.ts +2 -0
  57. package/dist/components/dataDisplay/list/list.js +15 -14
  58. package/dist/components/dataDisplay/list/list.js.map +1 -1
  59. package/dist/components/dataDisplay/meter/meter.d.ts +2 -0
  60. package/dist/components/dataDisplay/meter/meter.js +24 -23
  61. package/dist/components/dataDisplay/meter/meter.js.map +1 -1
  62. package/dist/components/dataDisplay/personChip/personChip.d.ts +2 -0
  63. package/dist/components/dataDisplay/personChip/personChip.js +39 -27
  64. package/dist/components/dataDisplay/personChip/personChip.js.map +1 -1
  65. package/dist/components/dataDisplay/stat/stat.d.ts +2 -0
  66. package/dist/components/dataDisplay/stat/stat.js +25 -13
  67. package/dist/components/dataDisplay/stat/stat.js.map +1 -1
  68. package/dist/components/dataDisplay/table/table.d.ts +16 -1
  69. package/dist/components/dataDisplay/table/table.js +40 -36
  70. package/dist/components/dataDisplay/table/table.js.map +1 -1
  71. package/dist/components/dataDisplay/table/tableBody.js +10 -4
  72. package/dist/components/dataDisplay/table/tableBody.js.map +1 -1
  73. package/dist/components/dataDisplay/table/tableCell.d.ts +10 -2
  74. package/dist/components/dataDisplay/table/tableCell.js +20 -13
  75. package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
  76. package/dist/components/dataDisplay/table/tableColumns.d.ts +83 -0
  77. package/dist/components/dataDisplay/table/tableColumns.js +112 -0
  78. package/dist/components/dataDisplay/table/tableColumns.js.map +1 -0
  79. package/dist/components/dataDisplay/table/tableHead.js +9 -3
  80. package/dist/components/dataDisplay/table/tableHead.js.map +1 -1
  81. package/dist/components/dataDisplay/table/tableHeadCell.d.ts +24 -3
  82. package/dist/components/dataDisplay/table/tableHeadCell.js +60 -65
  83. package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  84. package/dist/components/dataDisplay/table/tableRow.d.ts +3 -1
  85. package/dist/components/dataDisplay/table/tableRow.js +28 -16
  86. package/dist/components/dataDisplay/table/tableRow.js.map +1 -1
  87. package/dist/components/dataDisplay/thumbCard/thumbCard.d.ts +44 -3
  88. package/dist/components/dataDisplay/thumbCard/thumbCard.js +79 -59
  89. package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  90. package/dist/components/dataDisplay/treeView/treeView.d.ts +2 -0
  91. package/dist/components/dataDisplay/treeView/treeView.js +24 -23
  92. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  93. package/dist/components/feedBack/emptyState/emptyState.d.ts +2 -0
  94. package/dist/components/feedBack/emptyState/emptyState.js +22 -12
  95. package/dist/components/feedBack/emptyState/emptyState.js.map +1 -1
  96. package/dist/components/feedBack/message/message.d.ts +2 -0
  97. package/dist/components/feedBack/message/message.js +30 -19
  98. package/dist/components/feedBack/message/message.js.map +1 -1
  99. package/dist/components/feedBack/modal/modal.js +40 -40
  100. package/dist/components/feedBack/modal/modal.js.map +1 -1
  101. package/dist/components/feedBack/skeleton/skeleton.d.ts +10 -2
  102. package/dist/components/feedBack/skeleton/skeleton.js +37 -34
  103. package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
  104. package/dist/components/feedBack/snackbar/snackbar.js +104 -103
  105. package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
  106. package/dist/components/feedBack/tooltip/tooltip.d.ts +9 -1
  107. package/dist/components/feedBack/tooltip/tooltip.js +67 -47
  108. package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
  109. package/dist/components/inputs/button/button.d.ts +2 -0
  110. package/dist/components/inputs/button/button.js +62 -58
  111. package/dist/components/inputs/button/button.js.map +1 -1
  112. package/dist/components/inputs/buttonGroups/buttonGroup.d.ts +2 -0
  113. package/dist/components/inputs/buttonGroups/buttonGroup.js +40 -36
  114. package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  115. package/dist/components/inputs/checkbox/checkbox.d.ts +10 -0
  116. package/dist/components/inputs/checkbox/checkbox.js +84 -59
  117. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  118. package/dist/components/inputs/datePicker/datePicker.js +170 -164
  119. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  120. package/dist/components/inputs/datePicker/datePickerDay.d.ts +1 -1
  121. package/dist/components/inputs/datePicker/datePickerDay.js +52 -44
  122. package/dist/components/inputs/datePicker/datePickerDay.js.map +1 -1
  123. package/dist/components/inputs/datePicker/datePickerIconButton.d.ts +1 -1
  124. package/dist/components/inputs/datePicker/datePickerIconButton.js +32 -28
  125. package/dist/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  126. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +160 -154
  127. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  128. package/dist/components/inputs/floatingButton/floatingButton.js +32 -30
  129. package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
  130. package/dist/components/inputs/radioButton/radioButton.d.ts +9 -0
  131. package/dist/components/inputs/radioButton/radioButton.js +77 -58
  132. package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
  133. package/dist/components/inputs/rating/rating.d.ts +8 -0
  134. package/dist/components/inputs/rating/rating.js +85 -70
  135. package/dist/components/inputs/rating/rating.js.map +1 -1
  136. package/dist/components/inputs/selectField/dropdownMenu.d.ts +20 -1
  137. package/dist/components/inputs/selectField/dropdownMenu.js +266 -113
  138. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  139. package/dist/components/inputs/selectField/optionNavigation.d.ts +17 -0
  140. package/dist/components/inputs/selectField/optionNavigation.js +38 -0
  141. package/dist/components/inputs/selectField/optionNavigation.js.map +1 -0
  142. package/dist/components/inputs/selectField/selectField.d.ts +31 -1
  143. package/dist/components/inputs/selectField/selectField.js +358 -218
  144. package/dist/components/inputs/selectField/selectField.js.map +1 -1
  145. package/dist/components/inputs/slider/slider.d.ts +22 -1
  146. package/dist/components/inputs/slider/slider.js +330 -261
  147. package/dist/components/inputs/slider/slider.js.map +1 -1
  148. package/dist/components/inputs/textField/textField.d.ts +7 -0
  149. package/dist/components/inputs/textField/textField.js +118 -100
  150. package/dist/components/inputs/textField/textField.js.map +1 -1
  151. package/dist/components/inputs/textField/textFieldWrapper.d.ts +15 -1
  152. package/dist/components/inputs/textField/textFieldWrapper.js +45 -34
  153. package/dist/components/inputs/textField/textFieldWrapper.js.map +1 -1
  154. package/dist/components/inputs/timePicker/timePicker.js +91 -85
  155. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  156. package/dist/components/inputs/toggle/toggle.d.ts +4 -0
  157. package/dist/components/inputs/toggle/toggle.js +80 -61
  158. package/dist/components/inputs/toggle/toggle.js.map +1 -1
  159. package/dist/components/inputs/valueSlider/valueSlider.d.ts +12 -0
  160. package/dist/components/inputs/valueSlider/valueSlider.js +23 -22
  161. package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
  162. package/dist/components/layout/appLayout/appLayout.d.ts +2 -0
  163. package/dist/components/layout/appLayout/appLayout.js +25 -24
  164. package/dist/components/layout/appLayout/appLayout.js.map +1 -1
  165. package/dist/components/layout/divider/divider.d.ts +2 -0
  166. package/dist/components/layout/divider/divider.js +23 -22
  167. package/dist/components/layout/divider/divider.js.map +1 -1
  168. package/dist/components/layout/floatingWindow/floatingWindow.d.ts +2 -0
  169. package/dist/components/layout/floatingWindow/floatingWindow.js +145 -139
  170. package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  171. package/dist/components/layout/grid/grid.d.ts +12 -1
  172. package/dist/components/layout/grid/grid.js +51 -36
  173. package/dist/components/layout/grid/grid.js.map +1 -1
  174. package/dist/components/layout/page/page.d.ts +2 -0
  175. package/dist/components/layout/page/page.js +16 -8
  176. package/dist/components/layout/page/page.js.map +1 -1
  177. package/dist/components/layout/pageHeader/pageHeader.d.ts +2 -0
  178. package/dist/components/layout/pageHeader/pageHeader.js +22 -13
  179. package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
  180. package/dist/components/layout/sectionHeader/sectionHeader.d.ts +2 -0
  181. package/dist/components/layout/sectionHeader/sectionHeader.js +37 -27
  182. package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -1
  183. package/dist/components/layout/sheet/sheet.d.ts +2 -0
  184. package/dist/components/layout/sheet/sheet.js +80 -79
  185. package/dist/components/layout/sheet/sheet.js.map +1 -1
  186. package/dist/components/layout/stack/stack.d.ts +2 -0
  187. package/dist/components/layout/stack/stack.js +29 -17
  188. package/dist/components/layout/stack/stack.js.map +1 -1
  189. package/dist/components/navigation/appBar/appBar.d.ts +2 -0
  190. package/dist/components/navigation/appBar/appBar.js +24 -23
  191. package/dist/components/navigation/appBar/appBar.js.map +1 -1
  192. package/dist/components/navigation/bottomBar/bottomBar.js +81 -77
  193. package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
  194. package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +2 -0
  195. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +29 -27
  196. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  197. package/dist/components/navigation/menu/menu.d.ts +12 -0
  198. package/dist/components/navigation/menu/menu.js.map +1 -1
  199. package/dist/components/navigation/menu/menuContext.d.ts +2 -0
  200. package/dist/components/navigation/menu/menuContext.js.map +1 -1
  201. package/dist/components/navigation/menu/menuFloating.js +42 -30
  202. package/dist/components/navigation/menu/menuFloating.js.map +1 -1
  203. package/dist/components/navigation/menu/menuItem.d.ts +4 -0
  204. package/dist/components/navigation/menu/menuItem.js +60 -48
  205. package/dist/components/navigation/menu/menuItem.js.map +1 -1
  206. package/dist/components/navigation/menu/menuList.d.ts +5 -1
  207. package/dist/components/navigation/menu/menuList.js +30 -19
  208. package/dist/components/navigation/menu/menuList.js.map +1 -1
  209. package/dist/components/navigation/menu/menuSubmenu.js +53 -40
  210. package/dist/components/navigation/menu/menuSubmenu.js.map +1 -1
  211. package/dist/components/navigation/pagination/pagination.d.ts +2 -0
  212. package/dist/components/navigation/pagination/pagination.js +51 -49
  213. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  214. package/dist/components/navigation/sidebar/sidebar.js +39 -38
  215. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  216. package/dist/components/navigation/stepper/stepper.d.ts +2 -0
  217. package/dist/components/navigation/stepper/stepper.js +37 -28
  218. package/dist/components/navigation/stepper/stepper.js.map +1 -1
  219. package/dist/components/navigation/tabs/tab/tab.js +42 -40
  220. package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
  221. package/dist/components/navigation/tabs/tabs.d.ts +6 -0
  222. package/dist/components/navigation/tabs/tabs.js +83 -86
  223. package/dist/components/navigation/tabs/tabs.js.map +1 -1
  224. package/dist/connects/rt/table/headerCellRenderer.d.ts +4 -1
  225. package/dist/connects/rt/table/headerCellRenderer.js +45 -15
  226. package/dist/connects/rt/table/headerCellRenderer.js.map +1 -1
  227. package/dist/connects/rt/table/table.d.ts +15 -1
  228. package/dist/connects/rt/table/table.js +125 -131
  229. package/dist/connects/rt/table/table.js.map +1 -1
  230. package/dist/headless/components/base/icon/icon.js +49 -37
  231. package/dist/headless/components/base/icon/icon.js.map +1 -1
  232. package/dist/headless/components/base/ripple/ripple.js +42 -27
  233. package/dist/headless/components/base/ripple/ripple.js.map +1 -1
  234. package/dist/headless/components/dataDisplay/avatar/avatar.js +51 -38
  235. package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
  236. package/dist/headless/components/dataDisplay/badge/badge.js +37 -28
  237. package/dist/headless/components/dataDisplay/badge/badge.js.map +1 -1
  238. package/dist/headless/components/dataDisplay/card/card.js +50 -23
  239. package/dist/headless/components/dataDisplay/card/card.js.map +1 -1
  240. package/dist/headless/components/dataDisplay/carousel/carousel.js +55 -55
  241. package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
  242. package/dist/headless/components/dataDisplay/chat/chatIconButton.js +30 -26
  243. package/dist/headless/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  244. package/dist/headless/components/dataDisplay/chat/chatLayout.js +56 -55
  245. package/dist/headless/components/dataDisplay/chat/chatLayout.js.map +1 -1
  246. package/dist/headless/components/dataDisplay/chip/chip.js +108 -81
  247. package/dist/headless/components/dataDisplay/chip/chip.js.map +1 -1
  248. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js +35 -31
  249. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  250. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
  251. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js +143 -98
  252. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  253. package/dist/headless/components/dataDisplay/kanban/kanban.js +45 -34
  254. package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -1
  255. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +30 -29
  256. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  257. package/dist/headless/components/dataDisplay/list/list.js +15 -14
  258. package/dist/headless/components/dataDisplay/list/list.js.map +1 -1
  259. package/dist/headless/components/dataDisplay/meter/meter.js +19 -18
  260. package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -1
  261. package/dist/headless/components/dataDisplay/personChip/personChip.js +39 -27
  262. package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -1
  263. package/dist/headless/components/dataDisplay/stat/stat.js +27 -15
  264. package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -1
  265. package/dist/headless/components/dataDisplay/table/table.js +40 -36
  266. package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
  267. package/dist/headless/components/dataDisplay/table/tableBody.js +10 -4
  268. package/dist/headless/components/dataDisplay/table/tableBody.js.map +1 -1
  269. package/dist/headless/components/dataDisplay/table/tableCell.js +20 -13
  270. package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
  271. package/dist/headless/components/dataDisplay/table/tableColumns.js +112 -0
  272. package/dist/headless/components/dataDisplay/table/tableColumns.js.map +1 -0
  273. package/dist/headless/components/dataDisplay/table/tableHead.js +9 -3
  274. package/dist/headless/components/dataDisplay/table/tableHead.js.map +1 -1
  275. package/dist/headless/components/dataDisplay/table/tableHeadCell.js +60 -65
  276. package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  277. package/dist/headless/components/dataDisplay/table/tableRow.js +28 -16
  278. package/dist/headless/components/dataDisplay/table/tableRow.js.map +1 -1
  279. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +78 -58
  280. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  281. package/dist/headless/components/dataDisplay/treeView/treeView.js +24 -23
  282. package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
  283. package/dist/headless/components/feedBack/emptyState/emptyState.js +21 -11
  284. package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -1
  285. package/dist/headless/components/feedBack/message/message.js +31 -20
  286. package/dist/headless/components/feedBack/message/message.js.map +1 -1
  287. package/dist/headless/components/feedBack/modal/modal.js +44 -44
  288. package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
  289. package/dist/headless/components/feedBack/skeleton/skeleton.js +38 -35
  290. package/dist/headless/components/feedBack/skeleton/skeleton.js.map +1 -1
  291. package/dist/headless/components/feedBack/snackbar/snackbar.js +108 -107
  292. package/dist/headless/components/feedBack/snackbar/snackbar.js.map +1 -1
  293. package/dist/headless/components/feedBack/tooltip/tooltip.js +67 -47
  294. package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
  295. package/dist/headless/components/inputs/button/button.js +62 -58
  296. package/dist/headless/components/inputs/button/button.js.map +1 -1
  297. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js +40 -36
  298. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  299. package/dist/headless/components/inputs/checkbox/checkbox.js +85 -60
  300. package/dist/headless/components/inputs/checkbox/checkbox.js.map +1 -1
  301. package/dist/headless/components/inputs/datePicker/datePicker.js +170 -164
  302. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  303. package/dist/headless/components/inputs/datePicker/datePickerDay.js +52 -44
  304. package/dist/headless/components/inputs/datePicker/datePickerDay.js.map +1 -1
  305. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js +32 -28
  306. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  307. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +160 -154
  308. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  309. package/dist/headless/components/inputs/floatingButton/floatingButton.js +32 -30
  310. package/dist/headless/components/inputs/floatingButton/floatingButton.js.map +1 -1
  311. package/dist/headless/components/inputs/radioButton/radioButton.js +77 -58
  312. package/dist/headless/components/inputs/radioButton/radioButton.js.map +1 -1
  313. package/dist/headless/components/inputs/rating/rating.js +85 -70
  314. package/dist/headless/components/inputs/rating/rating.js.map +1 -1
  315. package/dist/headless/components/inputs/selectField/dropdownMenu.js +266 -113
  316. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  317. package/dist/headless/components/inputs/selectField/optionNavigation.js +38 -0
  318. package/dist/headless/components/inputs/selectField/optionNavigation.js.map +1 -0
  319. package/dist/headless/components/inputs/selectField/selectField.js +358 -218
  320. package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
  321. package/dist/headless/components/inputs/slider/slider.js +330 -261
  322. package/dist/headless/components/inputs/slider/slider.js.map +1 -1
  323. package/dist/headless/components/inputs/textField/textField.js +118 -100
  324. package/dist/headless/components/inputs/textField/textField.js.map +1 -1
  325. package/dist/headless/components/inputs/textField/textFieldWrapper.js +45 -34
  326. package/dist/headless/components/inputs/textField/textFieldWrapper.js.map +1 -1
  327. package/dist/headless/components/inputs/timePicker/timePicker.js +91 -85
  328. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  329. package/dist/headless/components/inputs/toggle/toggle.js +79 -60
  330. package/dist/headless/components/inputs/toggle/toggle.js.map +1 -1
  331. package/dist/headless/components/inputs/valueSlider/valueSlider.js +25 -24
  332. package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -1
  333. package/dist/headless/components/layout/appLayout/appLayout.js +27 -26
  334. package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
  335. package/dist/headless/components/layout/divider/divider.js +18 -17
  336. package/dist/headless/components/layout/divider/divider.js.map +1 -1
  337. package/dist/headless/components/layout/floatingWindow/floatingWindow.js +145 -139
  338. package/dist/headless/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  339. package/dist/headless/components/layout/grid/grid.js +48 -33
  340. package/dist/headless/components/layout/grid/grid.js.map +1 -1
  341. package/dist/headless/components/layout/page/page.js +15 -7
  342. package/dist/headless/components/layout/page/page.js.map +1 -1
  343. package/dist/headless/components/layout/pageHeader/pageHeader.js +20 -11
  344. package/dist/headless/components/layout/pageHeader/pageHeader.js.map +1 -1
  345. package/dist/headless/components/layout/sectionHeader/sectionHeader.js +36 -26
  346. package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -1
  347. package/dist/headless/components/layout/sheet/sheet.js +80 -79
  348. package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
  349. package/dist/headless/components/layout/stack/stack.js +29 -17
  350. package/dist/headless/components/layout/stack/stack.js.map +1 -1
  351. package/dist/headless/components/navigation/appBar/appBar.js +15 -14
  352. package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
  353. package/dist/headless/components/navigation/bottomBar/bottomBar.js +81 -77
  354. package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
  355. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js +32 -30
  356. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  357. package/dist/headless/components/navigation/menu/menu.js.map +1 -1
  358. package/dist/headless/components/navigation/menu/menuContext.js.map +1 -1
  359. package/dist/headless/components/navigation/menu/menuFloating.js +42 -30
  360. package/dist/headless/components/navigation/menu/menuFloating.js.map +1 -1
  361. package/dist/headless/components/navigation/menu/menuItem.js +60 -48
  362. package/dist/headless/components/navigation/menu/menuItem.js.map +1 -1
  363. package/dist/headless/components/navigation/menu/menuList.js +30 -19
  364. package/dist/headless/components/navigation/menu/menuList.js.map +1 -1
  365. package/dist/headless/components/navigation/menu/menuSubmenu.js +53 -40
  366. package/dist/headless/components/navigation/menu/menuSubmenu.js.map +1 -1
  367. package/dist/headless/components/navigation/pagination/pagination.js +51 -49
  368. package/dist/headless/components/navigation/pagination/pagination.js.map +1 -1
  369. package/dist/headless/components/navigation/sidebar/sidebar.js +29 -28
  370. package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
  371. package/dist/headless/components/navigation/stepper/stepper.js +42 -33
  372. package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
  373. package/dist/headless/components/navigation/tabs/tab/tab.js +41 -39
  374. package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
  375. package/dist/headless/components/navigation/tabs/tabs.js +95 -98
  376. package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
  377. package/dist/headless/hooks/useDismissOnEscape.js +16 -0
  378. package/dist/headless/hooks/useDismissOnEscape.js.map +1 -0
  379. package/dist/headless/hooks/useFocusTrap.js +1 -0
  380. package/dist/headless/hooks/useFocusTrap.js.map +1 -1
  381. package/dist/headless/hooks/useHelperText.js +13 -0
  382. package/dist/headless/hooks/useHelperText.js.map +1 -0
  383. package/dist/headless/utils/controlProps.js +14 -0
  384. package/dist/headless/utils/controlProps.js.map +1 -0
  385. package/dist/headless/utils/overlayLayer.js +14 -7
  386. package/dist/headless/utils/overlayLayer.js.map +1 -1
  387. package/dist/headless/utils/ownClick.js +40 -0
  388. package/dist/headless/utils/ownClick.js.map +1 -0
  389. package/dist/headless/utils/readOnlyToggle.js +14 -0
  390. package/dist/headless/utils/readOnlyToggle.js.map +1 -0
  391. package/dist/hooks/useDismissOnEscape.d.ts +11 -0
  392. package/dist/hooks/useDismissOnEscape.js +16 -0
  393. package/dist/hooks/useDismissOnEscape.js.map +1 -0
  394. package/dist/hooks/useFocusTrap.d.ts +2 -0
  395. package/dist/hooks/useFocusTrap.js +1 -0
  396. package/dist/hooks/useFocusTrap.js.map +1 -1
  397. package/dist/hooks/useHelperText.d.ts +21 -0
  398. package/dist/hooks/useHelperText.js +13 -0
  399. package/dist/hooks/useHelperText.js.map +1 -0
  400. package/dist/index.cjs +2 -2
  401. package/dist/index.cjs.map +1 -1
  402. package/dist/utils/controlProps.d.ts +16 -0
  403. package/dist/utils/controlProps.js +14 -0
  404. package/dist/utils/controlProps.js.map +1 -0
  405. package/dist/utils/overlayLayer.d.ts +15 -3
  406. package/dist/utils/overlayLayer.js +14 -7
  407. package/dist/utils/overlayLayer.js.map +1 -1
  408. package/dist/utils/ownClick.d.ts +16 -0
  409. package/dist/utils/ownClick.js +40 -0
  410. package/dist/utils/ownClick.js.map +1 -0
  411. package/dist/utils/readOnlyToggle.d.ts +15 -0
  412. package/dist/utils/readOnlyToggle.js +14 -0
  413. package/dist/utils/readOnlyToggle.js.map +1 -0
  414. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"stack.js","sources":["../../../../src/components/layout/stack/stack.tsx"],"sourcesContent":["import React, { Children, Fragment, HTMLAttributes, PropsWithChildren, ReactNode, isValidElement } from \"react\";\nimport cn from \"clsx\";\n\nexport type StackSpacing = number | \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\" | \"xxxl\";\n\nexport interface StackProps extends HTMLAttributes<HTMLDivElement> {\n direction?: \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\n /** Gap between items: scale keyword, or a number = N × spacing unit. */\n spacing?: StackSpacing;\n align?: \"start\" | \"center\" | \"end\" | \"stretch\" | \"baseline\";\n justify?: \"start\" | \"center\" | \"end\" | \"space-between\" | \"space-around\" | \"space-evenly\";\n wrap?: boolean;\n /** Optional element rendered between each child. */\n divider?: ReactNode;\n className?: string;\n}\n\nconst flexAlign = (v?: string): string | undefined => (v === \"start\" || v === \"end\" ? `flex-${v}` : v);\n\nconst resolveGap = (s: StackSpacing): string =>\n typeof s === \"number\" ? `calc(var(--smui-spacing-unit, 4px) * ${s})` : s === \"none\" ? \"0\" : `var(--smui-space-${s})`;\n\nexport const Stack = React.forwardRef<HTMLDivElement, PropsWithChildren<StackProps>>(function Stack(\n { direction = \"column\", spacing = \"md\", align, justify, wrap, divider, className, style, children, ...rest },\n ref\n) {\n const items = Children.toArray(children).filter(isValidElement);\n return (\n <div\n ref={ref}\n data-testid=\"stack\"\n className={cn(\"smwb-stack\", className)}\n style={{\n display: \"flex\",\n flexDirection: direction,\n flexWrap: wrap ? \"wrap\" : undefined,\n alignItems: flexAlign(align),\n justifyContent: flexAlign(justify),\n gap: resolveGap(spacing),\n ...style,\n }}\n {...rest}\n >\n {divider\n ? items.map((child, i) => (\n <Fragment key={i}>\n {i > 0 ? <div className=\"smwb-stack__divider\">{divider}</div> : null}\n {child}\n </Fragment>\n ))\n : children}\n </div>\n );\n});\n\nexport default Stack;\n"],"names":["flexAlign","v","resolveGap","s","Stack","React","direction","spacing","align","justify","wrap","divider","className","style","children","rest","ref","items","Children","isValidElement","jsx","cn","child","i","Fragment"],"mappings":";;;;;AAmBA,MAAMA,IAAY,CAACC,MAAoCA,MAAM,WAAWA,MAAM,QAAQ,QAAQA,CAAC,KAAKA,GAE9FC,IAAa,CAACC,MAClB,OAAOA,KAAM,WAAW,wCAAwCA,CAAC,MAAMA,MAAM,SAAS,MAAM,oBAAoBA,CAAC,KAEtGC,IAAQC,EAAM,WAA0D,SACnF,EAAE,WAAAC,IAAY,UAAU,SAAAC,IAAU,MAAM,OAAAC,GAAO,SAAAC,GAAS,MAAAC,GAAM,SAAAC,GAAS,WAAAC,GAAW,OAAAC,GAAO,UAAAC,GAAU,GAAGC,EAAA,GACtGC,GACA;AACA,QAAMC,IAAQC,EAAS,QAAQJ,CAAQ,EAAE,OAAOK,CAAc;AAC9D,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAJ;AAAA,MACA,eAAY;AAAA,MACZ,WAAWK,EAAG,cAAcT,CAAS;AAAA,MACrC,OAAO;AAAA,QACL,SAAS;AAAA,QACT,eAAeN;AAAA,QACf,UAAUI,IAAO,SAAS;AAAA,QAC1B,YAAYV,EAAUQ,CAAK;AAAA,QAC3B,gBAAgBR,EAAUS,CAAO;AAAA,QACjC,KAAKP,EAAWK,CAAO;AAAA,QACvB,GAAGM;AAAA,MAAA;AAAA,MAEJ,GAAGE;AAAA,MAEH,cACGE,EAAM,IAAI,CAACK,GAAOC,wBACfC,GAAA,EACE,UAAA;AAAA,QAAAD,IAAI,IAAI,gBAAAH,EAAC,OAAA,EAAI,WAAU,uBAAuB,aAAQ,IAAS;AAAA,QAC/DE;AAAA,MAAA,EAAA,GAFYC,CAGf,CACD,IACDT;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;"}
1
+ {"version":3,"file":"stack.js","sources":["../../../../src/components/layout/stack/stack.tsx"],"sourcesContent":["import React, { Children, Fragment, HTMLAttributes, PropsWithChildren, ReactNode, isValidElement } from \"react\";\nimport cn from \"clsx\";\n\nexport type StackSpacing = number | \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\" | \"xxxl\";\n\nexport interface StackProps extends HTMLAttributes<HTMLDivElement> {\n direction?: \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\n /** Gap between items: scale keyword, or a number = N × spacing unit. */\n spacing?: StackSpacing;\n align?: \"start\" | \"center\" | \"end\" | \"stretch\" | \"baseline\";\n justify?: \"start\" | \"center\" | \"end\" | \"space-between\" | \"space-around\" | \"space-evenly\";\n wrap?: boolean;\n /** Optional element rendered between each child. */\n divider?: ReactNode;\n className?: string;\n /** Test id of the root `<div>`; `stack` unless given. */\n \"data-testid\"?: string;\n}\n\nconst flexAlign = (v?: string): string | undefined => (v === \"start\" || v === \"end\" ? `flex-${v}` : v);\n\nconst resolveGap = (s: StackSpacing): string =>\n typeof s === \"number\" ? `calc(var(--smui-spacing-unit, 4px) * ${s})` : s === \"none\" ? \"0\" : `var(--smui-space-${s})`;\n\nexport const Stack = React.forwardRef<HTMLDivElement, PropsWithChildren<StackProps>>(function Stack(\n {\n direction = \"column\",\n spacing = \"md\",\n align,\n justify,\n wrap,\n divider,\n className,\n style,\n children,\n \"data-testid\": dataTestId = \"stack\",\n ...rest\n },\n ref\n) {\n const items = Children.toArray(children).filter(isValidElement);\n return (\n <div\n ref={ref}\n data-testid={dataTestId}\n className={cn(\"smwb-stack\", className)}\n style={{\n display: \"flex\",\n flexDirection: direction,\n flexWrap: wrap ? \"wrap\" : undefined,\n alignItems: flexAlign(align),\n justifyContent: flexAlign(justify),\n gap: resolveGap(spacing),\n ...style,\n }}\n {...rest}\n >\n {divider\n ? items.map((child, i) => (\n <Fragment key={i}>\n {i > 0 ? <div className=\"smwb-stack__divider\">{divider}</div> : null}\n {child}\n </Fragment>\n ))\n : children}\n </div>\n );\n});\n\nexport default Stack;\n"],"names":["flexAlign","v","resolveGap","s","Stack","React","direction","spacing","align","justify","wrap","divider","className","style","children","dataTestId","rest","ref","items","Children","isValidElement","jsx","cn","child","i","Fragment"],"mappings":";;;;;AAqBA,MAAMA,IAAY,CAACC,MAAoCA,MAAM,WAAWA,MAAM,QAAQ,QAAQA,CAAC,KAAKA,GAE9FC,IAAa,CAACC,MAClB,OAAOA,KAAM,WAAW,wCAAwCA,CAAC,MAAMA,MAAM,SAAS,MAAM,oBAAoBA,CAAC,KAEtGC,IAAQC,EAAM,WAA0D,SACnF;AAAA,EACE,WAAAC,IAAY;AAAA,EACZ,SAAAC,IAAU;AAAA,EACV,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAeC,IAAa;AAAA,EAC5B,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAQC,EAAS,QAAQL,CAAQ,EAAE,OAAOM,CAAc;AAC9D,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAJ;AAAA,MACA,eAAaF;AAAA,MACb,WAAWO,EAAG,cAAcV,CAAS;AAAA,MACrC,OAAO;AAAA,QACL,SAAS;AAAA,QACT,eAAeN;AAAA,QACf,UAAUI,IAAO,SAAS;AAAA,QAC1B,YAAYV,EAAUQ,CAAK;AAAA,QAC3B,gBAAgBR,EAAUS,CAAO;AAAA,QACjC,KAAKP,EAAWK,CAAO;AAAA,QACvB,GAAGM;AAAA,MAAA;AAAA,MAEJ,GAAGG;AAAA,MAEH,cACGE,EAAM,IAAI,CAACK,GAAOC,wBACfC,GAAA,EACE,UAAA;AAAA,QAAAD,IAAI,IAAI,gBAAAH,EAAC,OAAA,EAAI,WAAU,uBAAuB,aAAQ,IAAS;AAAA,QAC/DE;AAAA,MAAA,EAAA,GAFYC,CAGf,CACD,IACDV;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;"}
@@ -13,6 +13,8 @@ export interface AppBarProps extends Omit<React.HTMLAttributes<HTMLElement>, "ti
13
13
  midContentAlign?: "middle" | "left" | "right";
14
14
  /** Semantic background color. */
15
15
  color?: AppBarColor;
16
+ /** Test id of the root (`<header>`, or `<footer>` at the bottom); `app-bar` unless given. */
17
+ "data-testid"?: string;
16
18
  }
17
19
  export declare const AppBar: React.ForwardRefExoticComponent<AppBarProps & React.RefAttributes<HTMLElement>>;
18
20
  export default AppBar;
@@ -1,49 +1,50 @@
1
- import { jsx as a, jsxs as e } from "react/jsx-runtime";
1
+ import { jsx as a, jsxs as m } from "react/jsx-runtime";
2
2
  import '../../../assets/styles/less/components/appBar/appBar.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
3
  /* empty css */
4
- import { forwardRef as w } from "react";
5
- import i from "clsx";
6
- const j = w(function({
7
- className: t,
8
- children: r,
4
+ import { forwardRef as h } from "react";
5
+ import t from "clsx";
6
+ const A = h(function({
7
+ className: i,
8
+ children: s,
9
9
  dense: d,
10
10
  position: b = "static",
11
- placement: s = "top",
11
+ placement: r = "top",
12
12
  leftContent: o,
13
13
  midContent: l,
14
14
  midContentAlign: c = "middle",
15
15
  rightContent: n,
16
16
  title: p,
17
- color: m = "default",
18
- ..._
19
- }, f) {
17
+ color: e = "default",
18
+ "data-testid": _ = "app-bar",
19
+ ...f
20
+ }, w) {
20
21
  return /* @__PURE__ */ a(
21
- s === "top" ? "header" : "footer",
22
+ r === "top" ? "header" : "footer",
22
23
  {
23
- ref: f,
24
- className: i(
24
+ ref: w,
25
+ className: t(
25
26
  "smwb-appbar",
26
- t,
27
+ i,
27
28
  `smwb-${b}`,
28
- `smwb-${s}`,
29
+ `smwb-${r}`,
29
30
  { "smwb-dense": d },
30
- m !== "default" && `smwb-appbar_color-${m}`
31
+ e !== "default" && `smwb-appbar_color-${e}`
31
32
  ),
32
- "data-testid": "app-bar",
33
- ..._,
34
- children: r || /* @__PURE__ */ e("div", { className: "smwb-appbar__inner", children: [
35
- /* @__PURE__ */ e("div", { className: "smwb-appbar__left", children: [
33
+ "data-testid": _,
34
+ ...f,
35
+ children: s || /* @__PURE__ */ m("div", { className: "smwb-appbar__inner", children: [
36
+ /* @__PURE__ */ m("div", { className: "smwb-appbar__left", children: [
36
37
  p && /* @__PURE__ */ a("div", { className: "smwb-appbar__left__title", children: p }),
37
38
  o
38
39
  ] }),
39
- /* @__PURE__ */ a("div", { className: i("smwb-appbar__mid", `smwb-${c}`), children: l }),
40
+ /* @__PURE__ */ a("div", { className: t("smwb-appbar__mid", `smwb-${c}`), children: l }),
40
41
  /* @__PURE__ */ a("div", { className: "smwb-appbar__right", children: n })
41
42
  ] })
42
43
  }
43
44
  );
44
45
  });
45
46
  export {
46
- j as AppBar,
47
- j as default
47
+ A as AppBar,
48
+ A as default
48
49
  };
49
50
  //# sourceMappingURL=appBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"appBar.js","sources":["../../../../src/components/navigation/appBar/appBar.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\nimport cn from \"clsx\";\n\nexport type AppBarColor = \"default\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n\nexport interface AppBarProps extends Omit<React.HTMLAttributes<HTMLElement>, \"title\"> {\n children?: React.ReactNode;\n className?: string;\n dense?: boolean;\n position?: \"relative\" | \"static\" | \"absolute\" | \"sticky\" | \"fixed\";\n placement?: \"top\" | \"bottom\";\n leftContent?: React.ReactNode;\n midContent?: React.ReactNode;\n rightContent?: React.ReactNode;\n title?: React.ReactNode | string;\n midContentAlign?: \"middle\" | \"left\" | \"right\";\n /** Semantic background color. */\n color?: AppBarColor;\n}\n\nexport const AppBar = forwardRef<HTMLElement, AppBarProps>(function AppBar(\n {\n className,\n children,\n dense,\n position = \"static\",\n placement = \"top\",\n leftContent,\n midContent,\n midContentAlign = \"middle\",\n rightContent,\n title,\n color = \"default\",\n ...rest\n },\n ref\n) {\n const MainTag = placement === \"top\" ? \"header\" : \"footer\";\n\n return (\n <MainTag\n ref={ref}\n className={cn(\n \"smwb-appbar\",\n className,\n `smwb-${position}`,\n `smwb-${placement}`,\n { \"smwb-dense\": dense },\n color !== \"default\" && `smwb-appbar_color-${color}`\n )}\n data-testid=\"app-bar\"\n {...rest}\n >\n {children ? (\n children\n ) : (\n <div className=\"smwb-appbar__inner\">\n <div className=\"smwb-appbar__left\">\n {title && <div className=\"smwb-appbar__left__title\">{title}</div>}\n {leftContent}\n </div>\n <div className={cn(\"smwb-appbar__mid\", `smwb-${midContentAlign}`)}>{midContent}</div>\n <div className=\"smwb-appbar__right\">{rightContent}</div>\n </div>\n )}\n </MainTag>\n );\n});\n\nexport default AppBar;\n"],"names":["AppBar","forwardRef","className","children","dense","position","placement","leftContent","midContent","midContentAlign","rightContent","title","color","rest","ref","jsx","cn","jsxs"],"mappings":";;;;;AAsBO,MAAMA,IAASC,EAAqC,SACzD;AAAA,EACE,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,WAAAC,IAAY;AAAA,EACZ,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,cAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,GAAGC;AACL,GACAC,GACA;AAGA,SACE,gBAAAC;AAAA,IAHcT,MAAc,QAAQ,WAAW;AAAA,IAG9C;AAAA,MACC,KAAAQ;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAd;AAAA,QACA,QAAQG,CAAQ;AAAA,QAChB,QAAQC,CAAS;AAAA,QACjB,EAAE,cAAcF,EAAA;AAAA,QAChBQ,MAAU,aAAa,qBAAqBA,CAAK;AAAA,MAAA;AAAA,MAEnD,eAAY;AAAA,MACX,GAAGC;AAAA,MAEH,UAAAV,KAGC,gBAAAc,EAAC,OAAA,EAAI,WAAU,sBACb,UAAA;AAAA,QAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,qBACZ,UAAA;AAAA,UAAAN,KAAS,gBAAAI,EAAC,OAAA,EAAI,WAAU,4BAA4B,UAAAJ,GAAM;AAAA,UAC1DJ;AAAA,QAAA,GACH;AAAA,QACA,gBAAAQ,EAAC,SAAI,WAAWC,EAAG,oBAAoB,QAAQP,CAAe,EAAE,GAAI,UAAAD,EAAA,CAAW;AAAA,QAC/E,gBAAAO,EAAC,OAAA,EAAI,WAAU,sBAAsB,UAAAL,EAAA,CAAa;AAAA,MAAA,EAAA,CACpD;AAAA,IAAA;AAAA,EAAA;AAIR,CAAC;"}
1
+ {"version":3,"file":"appBar.js","sources":["../../../../src/components/navigation/appBar/appBar.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\nimport cn from \"clsx\";\n\nexport type AppBarColor = \"default\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n\nexport interface AppBarProps extends Omit<React.HTMLAttributes<HTMLElement>, \"title\"> {\n children?: React.ReactNode;\n className?: string;\n dense?: boolean;\n position?: \"relative\" | \"static\" | \"absolute\" | \"sticky\" | \"fixed\";\n placement?: \"top\" | \"bottom\";\n leftContent?: React.ReactNode;\n midContent?: React.ReactNode;\n rightContent?: React.ReactNode;\n title?: React.ReactNode | string;\n midContentAlign?: \"middle\" | \"left\" | \"right\";\n /** Semantic background color. */\n color?: AppBarColor;\n /** Test id of the root (`<header>`, or `<footer>` at the bottom); `app-bar` unless given. */\n \"data-testid\"?: string;\n}\n\nexport const AppBar = forwardRef<HTMLElement, AppBarProps>(function AppBar(\n {\n className,\n children,\n dense,\n position = \"static\",\n placement = \"top\",\n leftContent,\n midContent,\n midContentAlign = \"middle\",\n rightContent,\n title,\n color = \"default\",\n \"data-testid\": dataTestId = \"app-bar\",\n ...rest\n },\n ref\n) {\n const MainTag = placement === \"top\" ? \"header\" : \"footer\";\n\n return (\n <MainTag\n ref={ref}\n className={cn(\n \"smwb-appbar\",\n className,\n `smwb-${position}`,\n `smwb-${placement}`,\n { \"smwb-dense\": dense },\n color !== \"default\" && `smwb-appbar_color-${color}`\n )}\n data-testid={dataTestId}\n {...rest}\n >\n {children ? (\n children\n ) : (\n <div className=\"smwb-appbar__inner\">\n <div className=\"smwb-appbar__left\">\n {title && <div className=\"smwb-appbar__left__title\">{title}</div>}\n {leftContent}\n </div>\n <div className={cn(\"smwb-appbar__mid\", `smwb-${midContentAlign}`)}>{midContent}</div>\n <div className=\"smwb-appbar__right\">{rightContent}</div>\n </div>\n )}\n </MainTag>\n );\n});\n\nexport default AppBar;\n"],"names":["AppBar","forwardRef","className","children","dense","position","placement","leftContent","midContent","midContentAlign","rightContent","title","color","dataTestId","rest","ref","jsx","cn","jsxs"],"mappings":";;;;;AAwBO,MAAMA,IAASC,EAAqC,SACzD;AAAA,EACE,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,WAAAC,IAAY;AAAA,EACZ,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,cAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,eAAeC,IAAa;AAAA,EAC5B,GAAGC;AACL,GACAC,GACA;AAGA,SACE,gBAAAC;AAAA,IAHcV,MAAc,QAAQ,WAAW;AAAA,IAG9C;AAAA,MACC,KAAAS;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAf;AAAA,QACA,QAAQG,CAAQ;AAAA,QAChB,QAAQC,CAAS;AAAA,QACjB,EAAE,cAAcF,EAAA;AAAA,QAChBQ,MAAU,aAAa,qBAAqBA,CAAK;AAAA,MAAA;AAAA,MAEnD,eAAaC;AAAA,MACZ,GAAGC;AAAA,MAEH,UAAAX,KAGC,gBAAAe,EAAC,OAAA,EAAI,WAAU,sBACb,UAAA;AAAA,QAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,qBACZ,UAAA;AAAA,UAAAP,KAAS,gBAAAK,EAAC,OAAA,EAAI,WAAU,4BAA4B,UAAAL,GAAM;AAAA,UAC1DJ;AAAA,QAAA,GACH;AAAA,QACA,gBAAAS,EAAC,SAAI,WAAWC,EAAG,oBAAoB,QAAQR,CAAe,EAAE,GAAI,UAAAD,EAAA,CAAW;AAAA,QAC/E,gBAAAQ,EAAC,OAAA,EAAI,WAAU,sBAAsB,UAAAN,EAAA,CAAa;AAAA,MAAA,EAAA,CACpD;AAAA,IAAA;AAAA,EAAA;AAIR,CAAC;"}
@@ -1,107 +1,111 @@
1
- import { jsxs as u, jsx as t } from "react/jsx-runtime";
1
+ import { jsxs as b, jsx as t } from "react/jsx-runtime";
2
2
  import '../../../assets/styles/less/components/bottomBar/bottomBar.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
3
  /* empty css */
4
- import F, { forwardRef as E, useState as O, useMemo as T } from "react";
5
- import S from "clsx";
6
- import { Icon as G } from "../../base/icon/icon.js";
7
- import { Ripple as H } from "../../base/ripple/ripple.js";
8
- import { Menu as J } from "../menu/menu.js";
9
- import { MenuItem as K } from "../menu/menuItem.js";
10
- import { MenuItemIcon as L } from "../menu/menuItemIcon.js";
11
- import { MenuItemText as Q } from "../menu/menuItemText.js";
12
- const ne = E(function({
13
- className: b,
4
+ import G, { forwardRef as S, useState as O, useMemo as A } from "react";
5
+ import j from "clsx";
6
+ import { Icon as H } from "../../base/icon/icon.js";
7
+ import { Ripple as J } from "../../base/ripple/ripple.js";
8
+ import { Menu as K } from "../menu/menu.js";
9
+ import { MenuItem as L } from "../menu/menuItem.js";
10
+ import { MenuItemIcon as Q } from "../menu/menuItemIcon.js";
11
+ import { MenuItemText as U } from "../menu/menuItemText.js";
12
+ const re = S(function({
13
+ className: v,
14
14
  menuItems: r = [],
15
15
  visibleCount: i = 4,
16
16
  activeItem: m,
17
- defaultActiveItem: v = null,
17
+ defaultActiveItem: d = null,
18
18
  onActiveItemChange: s,
19
- overflowMenuAriaLabel: d = "More navigation",
20
- ...h
21
- }, f) {
22
- const p = m !== void 0, [w, I] = O(v), n = p ? m : w, [c, R] = O(!1), [y, g] = O(null), l = Math.max(0, i), k = T(() => r.slice(0, l), [r, l]), B = T(() => r.slice(l), [r, l]), _ = B.length > 0, z = _ && n !== null && n >= l, M = (e) => {
23
- p || I(e), s == null || s(e);
24
- }, C = (e, o) => (a) => {
19
+ overflowMenuAriaLabel: h = "More navigation",
20
+ ...f
21
+ }, p) {
22
+ var x;
23
+ const u = m !== void 0, [w, I] = O(d), n = u ? m : w, [c, R] = O(!1), [g, k] = O(null), l = Math.max(0, i), z = A(() => r.slice(0, l), [r, l]), B = A(() => r.slice(l), [r, l]), _ = B.length > 0, C = _ && n !== null && n >= l, M = (e) => {
24
+ u || I(e), s == null || s(e);
25
+ }, V = (e, o) => (a) => {
25
26
  M(e), o == null || o(a);
26
- }, V = () => {
27
+ }, q = () => {
27
28
  R((e) => !e);
28
29
  }, N = () => {
29
30
  R(!1);
30
31
  };
31
- return /* @__PURE__ */ u("nav", { ref: f, className: S("smwb-bottom-bar", b), role: "navigation", ...h, children: [
32
- /* @__PURE__ */ u("div", { className: "smwb-bottom-bar__nav", role: "menubar", children: [
33
- k.map((e, o) => /* @__PURE__ */ t(
34
- A,
35
- {
36
- as: e.as,
37
- isActive: n === o,
38
- onClick: C(o, e.onClick),
39
- icon: e.icon,
40
- title: e.title,
41
- href: e.href
42
- },
43
- o
44
- )),
45
- _ && /* @__PURE__ */ t(
46
- A,
47
- {
48
- ref: g,
49
- isActive: z,
50
- onClick: V,
51
- icon: /* @__PURE__ */ t(G, { name: "menu", size: 24 }),
52
- "aria-label": d,
53
- "aria-haspopup": "menu",
54
- "aria-expanded": c
55
- }
56
- )
57
- ] }),
58
- _ && /* @__PURE__ */ t(J, { isOpen: c, onClose: N, anchorElement: y, placement: "top", dense: !0, children: B.map((e, o) => {
59
- const a = l + o;
60
- return /* @__PURE__ */ u(
61
- K,
62
- {
63
- selected: n === a,
64
- href: e.href,
65
- onClick: (q) => {
66
- var x;
67
- M(a), (x = e.onClick) == null || x.call(e, q), N();
32
+ return (
33
+ // role="navigation" is a default: the caller's own wins, and an explicit undefined keeps it.
34
+ /* @__PURE__ */ b("nav", { ref: p, className: j("smwb-bottom-bar", v), ...f, role: (x = f.role) != null ? x : "navigation", children: [
35
+ /* @__PURE__ */ b("div", { className: "smwb-bottom-bar__nav", role: "menubar", children: [
36
+ z.map((e, o) => /* @__PURE__ */ t(
37
+ E,
38
+ {
39
+ as: e.as,
40
+ isActive: n === o,
41
+ onClick: V(o, e.onClick),
42
+ icon: e.icon,
43
+ title: e.title,
44
+ href: e.href
68
45
  },
69
- children: [
70
- e.icon ? /* @__PURE__ */ t(L, { children: e.icon }) : null,
71
- /* @__PURE__ */ t(Q, { inset: !e.icon, children: e.title })
72
- ]
73
- },
74
- a
75
- );
76
- }) })
77
- ] });
78
- }), A = E(function({ isActive: b, icon: r, title: i, as: m = "div", href: v, onMouseDown: s, ...d }, h) {
79
- const f = F.useRef(null), p = (n) => {
46
+ o
47
+ )),
48
+ _ && /* @__PURE__ */ t(
49
+ E,
50
+ {
51
+ ref: k,
52
+ isActive: C,
53
+ onClick: q,
54
+ icon: /* @__PURE__ */ t(H, { name: "menu", size: 24 }),
55
+ "aria-label": h,
56
+ "aria-haspopup": "menu",
57
+ "aria-expanded": c
58
+ }
59
+ )
60
+ ] }),
61
+ _ && /* @__PURE__ */ t(K, { isOpen: c, onClose: N, anchorElement: g, placement: "top", dense: !0, children: B.map((e, o) => {
62
+ const a = l + o;
63
+ return /* @__PURE__ */ b(
64
+ L,
65
+ {
66
+ selected: n === a,
67
+ href: e.href,
68
+ onClick: (F) => {
69
+ var T;
70
+ M(a), (T = e.onClick) == null || T.call(e, F), N();
71
+ },
72
+ children: [
73
+ e.icon ? /* @__PURE__ */ t(Q, { children: e.icon }) : null,
74
+ /* @__PURE__ */ t(U, { inset: !e.icon, children: e.title })
75
+ ]
76
+ },
77
+ a
78
+ );
79
+ }) })
80
+ ] })
81
+ );
82
+ }), E = S(function({ isActive: v, icon: r, title: i, as: m = "div", href: d, onMouseDown: s, ...h }, f) {
83
+ const p = G.useRef(null), u = (n) => {
80
84
  s == null || s(n);
81
85
  }, w = (n) => {
82
86
  var c;
83
- (c = f.current) == null || c.onRipple(n);
87
+ (c = p.current) == null || c.onRipple(n);
84
88
  };
85
- return /* @__PURE__ */ u(
89
+ return /* @__PURE__ */ b(
86
90
  m,
87
91
  {
88
- ref: h,
89
- href: v,
92
+ ref: f,
93
+ href: d,
90
94
  role: "menuitem",
91
- className: S("smwb-bottom-bar__item", { "smwb-bottom-bar__item_active": b }),
92
- onMouseDown: p,
95
+ className: j("smwb-bottom-bar__item", { "smwb-bottom-bar__item_active": v }),
96
+ onMouseDown: u,
93
97
  onPointerDown: w,
94
- ...d,
98
+ ...h,
95
99
  children: [
96
100
  r && /* @__PURE__ */ t("span", { className: "smwb-bottom-bar__item-icon", children: r }),
97
101
  i ? /* @__PURE__ */ t("span", { className: "smwb-bottom-bar__item-title", children: i }) : null,
98
- /* @__PURE__ */ t(H, { actionRef: f })
102
+ /* @__PURE__ */ t(J, { actionRef: p })
99
103
  ]
100
104
  }
101
105
  );
102
106
  });
103
107
  export {
104
- ne as BottomBar,
105
- ne as default
108
+ re as BottomBar,
109
+ re as default
106
110
  };
107
111
  //# sourceMappingURL=bottomBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bottomBar.js","sources":["../../../../src/components/navigation/bottomBar/bottomBar.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, useState } from \"react\";\nimport cn from \"clsx\";\nimport Icon from \"../../base/icon/icon\";\nimport { Ripple, RippleActionsRef } from \"../../base/ripple/ripple\";\nimport { Menu, MenuItem, MenuItemIcon, MenuItemText } from \"../menu\";\nimport type { MenuItemProps as SidebarMenuItemProps } from \"../sidebar/sidebar\";\n\nexport interface BottomBarProps extends React.HTMLAttributes<HTMLElement> {\n className?: string;\n menuItems?: SidebarMenuItemProps[];\n visibleCount?: number;\n activeItem?: number | null;\n defaultActiveItem?: number | null;\n onActiveItemChange?: (index: number) => void;\n overflowMenuAriaLabel?: string;\n}\n\nexport type BottomBarMenuItemProps = SidebarMenuItemProps;\n\nexport const BottomBar = forwardRef<HTMLElement, BottomBarProps>(function BottomBar(\n {\n className,\n menuItems = [],\n visibleCount = 4,\n activeItem: activeItemProp,\n defaultActiveItem = null,\n onActiveItemChange,\n overflowMenuAriaLabel = \"More navigation\",\n ...rest\n },\n ref\n) {\n const isControlled = activeItemProp !== undefined;\n const [activeItemState, setActiveItemState] = useState<number | null>(defaultActiveItem);\n const activeItem = isControlled ? activeItemProp : activeItemState;\n\n const [overflowOpen, setOverflowOpen] = useState(false);\n const [overflowAnchor, setOverflowAnchor] = useState<HTMLElement | null>(null);\n\n const safeVisibleCount = Math.max(0, visibleCount);\n const visibleItems = useMemo(() => menuItems.slice(0, safeVisibleCount), [menuItems, safeVisibleCount]);\n const overflowItems = useMemo(() => menuItems.slice(safeVisibleCount), [menuItems, safeVisibleCount]);\n const hasOverflow = overflowItems.length > 0;\n const overflowActive = hasOverflow && activeItem !== null && activeItem >= safeVisibleCount;\n\n const setActive = (index: number) => {\n if (!isControlled) {\n setActiveItemState(index);\n }\n onActiveItemChange?.(index);\n };\n\n const activateItem = (index: number, onClick?: React.MouseEventHandler<HTMLDivElement>) => {\n return (event: React.MouseEvent<HTMLDivElement>) => {\n setActive(index);\n onClick?.(event);\n };\n };\n\n const onOverflowToggle = () => {\n setOverflowOpen((prev) => !prev);\n };\n\n const onOverflowClose = () => {\n setOverflowOpen(false);\n };\n\n return (\n <nav ref={ref} className={cn(\"smwb-bottom-bar\", className)} role=\"navigation\" {...rest}>\n <div className=\"smwb-bottom-bar__nav\" role=\"menubar\">\n {visibleItems.map((item, idx) => (\n <BarItem\n key={idx}\n as={item.as}\n isActive={activeItem === idx}\n onClick={activateItem(idx, item.onClick)}\n icon={item.icon}\n title={item.title}\n href={item.href}\n />\n ))}\n {hasOverflow && (\n <BarItem\n ref={setOverflowAnchor}\n isActive={overflowActive}\n onClick={onOverflowToggle}\n icon={<Icon name=\"menu\" size={24} />}\n aria-label={overflowMenuAriaLabel}\n aria-haspopup=\"menu\"\n aria-expanded={overflowOpen}\n />\n )}\n </div>\n {hasOverflow && (\n <Menu isOpen={overflowOpen} onClose={onOverflowClose} anchorElement={overflowAnchor} placement=\"top\" dense>\n {overflowItems.map((item, idx) => {\n const itemIndex = safeVisibleCount + idx;\n\n return (\n <MenuItem\n key={itemIndex}\n selected={activeItem === itemIndex}\n href={item.href}\n onClick={(event) => {\n setActive(itemIndex);\n item.onClick?.(event as unknown as React.MouseEvent<HTMLDivElement>);\n onOverflowClose();\n }}\n >\n {item.icon ? <MenuItemIcon>{item.icon}</MenuItemIcon> : null}\n <MenuItemText inset={!item.icon}>{item.title}</MenuItemText>\n </MenuItem>\n );\n })}\n </Menu>\n )}\n </nav>\n );\n});\n\nexport default BottomBar;\n\ninterface BarItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\"> {\n icon?: React.ReactNode;\n title?: string;\n isActive?: boolean;\n as?: React.ElementType;\n href?: string;\n}\n\nconst BarItem = forwardRef<HTMLDivElement, BarItemProps>(function BarItem(\n { isActive, icon, title, as = \"div\", href, onMouseDown: onMouseDownProp, ...rest },\n ref\n) {\n const rippleRef = React.useRef<RippleActionsRef>(null);\n\n const onMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseDownProp?.(event);\n };\n\n const onPointerDown = (event: React.PointerEvent<HTMLDivElement>) => {\n rippleRef.current?.onRipple(event);\n };\n\n const ElementType = as;\n\n return (\n <ElementType\n ref={ref}\n href={href}\n role=\"menuitem\"\n className={cn(\"smwb-bottom-bar__item\", { \"smwb-bottom-bar__item_active\": isActive })}\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n {...rest}\n >\n {icon && <span className=\"smwb-bottom-bar__item-icon\">{icon}</span>}\n {title ? <span className=\"smwb-bottom-bar__item-title\">{title}</span> : null}\n <Ripple actionRef={rippleRef} />\n </ElementType>\n );\n});\n"],"names":["BottomBar","forwardRef","className","menuItems","visibleCount","activeItemProp","defaultActiveItem","onActiveItemChange","overflowMenuAriaLabel","rest","ref","isControlled","activeItemState","setActiveItemState","useState","activeItem","overflowOpen","setOverflowOpen","overflowAnchor","setOverflowAnchor","safeVisibleCount","visibleItems","useMemo","overflowItems","hasOverflow","overflowActive","setActive","index","activateItem","onClick","event","onOverflowToggle","prev","onOverflowClose","jsxs","cn","item","idx","jsx","BarItem","Icon","Menu","itemIndex","MenuItem","_a","MenuItemIcon","MenuItemText","isActive","icon","title","as","href","onMouseDownProp","rippleRef","React","onMouseDown","onPointerDown","Ripple"],"mappings":"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"}
1
+ {"version":3,"file":"bottomBar.js","sources":["../../../../src/components/navigation/bottomBar/bottomBar.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, useState } from \"react\";\nimport cn from \"clsx\";\nimport Icon from \"../../base/icon/icon\";\nimport { Ripple, RippleActionsRef } from \"../../base/ripple/ripple\";\nimport { Menu, MenuItem, MenuItemIcon, MenuItemText } from \"../menu\";\nimport type { MenuItemProps as SidebarMenuItemProps } from \"../sidebar/sidebar\";\n\nexport interface BottomBarProps extends React.HTMLAttributes<HTMLElement> {\n className?: string;\n menuItems?: SidebarMenuItemProps[];\n visibleCount?: number;\n activeItem?: number | null;\n defaultActiveItem?: number | null;\n onActiveItemChange?: (index: number) => void;\n overflowMenuAriaLabel?: string;\n}\n\nexport type BottomBarMenuItemProps = SidebarMenuItemProps;\n\nexport const BottomBar = forwardRef<HTMLElement, BottomBarProps>(function BottomBar(\n {\n className,\n menuItems = [],\n visibleCount = 4,\n activeItem: activeItemProp,\n defaultActiveItem = null,\n onActiveItemChange,\n overflowMenuAriaLabel = \"More navigation\",\n ...rest\n },\n ref\n) {\n const isControlled = activeItemProp !== undefined;\n const [activeItemState, setActiveItemState] = useState<number | null>(defaultActiveItem);\n const activeItem = isControlled ? activeItemProp : activeItemState;\n\n const [overflowOpen, setOverflowOpen] = useState(false);\n const [overflowAnchor, setOverflowAnchor] = useState<HTMLElement | null>(null);\n\n const safeVisibleCount = Math.max(0, visibleCount);\n const visibleItems = useMemo(() => menuItems.slice(0, safeVisibleCount), [menuItems, safeVisibleCount]);\n const overflowItems = useMemo(() => menuItems.slice(safeVisibleCount), [menuItems, safeVisibleCount]);\n const hasOverflow = overflowItems.length > 0;\n const overflowActive = hasOverflow && activeItem !== null && activeItem >= safeVisibleCount;\n\n const setActive = (index: number) => {\n if (!isControlled) {\n setActiveItemState(index);\n }\n onActiveItemChange?.(index);\n };\n\n const activateItem = (index: number, onClick?: React.MouseEventHandler<HTMLDivElement>) => {\n return (event: React.MouseEvent<HTMLDivElement>) => {\n setActive(index);\n onClick?.(event);\n };\n };\n\n const onOverflowToggle = () => {\n setOverflowOpen((prev) => !prev);\n };\n\n const onOverflowClose = () => {\n setOverflowOpen(false);\n };\n\n return (\n // role=\"navigation\" is a default: the caller's own wins, and an explicit undefined keeps it.\n <nav ref={ref} className={cn(\"smwb-bottom-bar\", className)} {...rest} role={rest.role ?? \"navigation\"}>\n <div className=\"smwb-bottom-bar__nav\" role=\"menubar\">\n {visibleItems.map((item, idx) => (\n <BarItem\n key={idx}\n as={item.as}\n isActive={activeItem === idx}\n onClick={activateItem(idx, item.onClick)}\n icon={item.icon}\n title={item.title}\n href={item.href}\n />\n ))}\n {hasOverflow && (\n <BarItem\n ref={setOverflowAnchor}\n isActive={overflowActive}\n onClick={onOverflowToggle}\n icon={<Icon name=\"menu\" size={24} />}\n aria-label={overflowMenuAriaLabel}\n aria-haspopup=\"menu\"\n aria-expanded={overflowOpen}\n />\n )}\n </div>\n {hasOverflow && (\n <Menu isOpen={overflowOpen} onClose={onOverflowClose} anchorElement={overflowAnchor} placement=\"top\" dense>\n {overflowItems.map((item, idx) => {\n const itemIndex = safeVisibleCount + idx;\n\n return (\n <MenuItem\n key={itemIndex}\n selected={activeItem === itemIndex}\n href={item.href}\n onClick={(event) => {\n setActive(itemIndex);\n item.onClick?.(event as unknown as React.MouseEvent<HTMLDivElement>);\n onOverflowClose();\n }}\n >\n {item.icon ? <MenuItemIcon>{item.icon}</MenuItemIcon> : null}\n <MenuItemText inset={!item.icon}>{item.title}</MenuItemText>\n </MenuItem>\n );\n })}\n </Menu>\n )}\n </nav>\n );\n});\n\nexport default BottomBar;\n\ninterface BarItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\"> {\n icon?: React.ReactNode;\n title?: string;\n isActive?: boolean;\n as?: React.ElementType;\n href?: string;\n}\n\nconst BarItem = forwardRef<HTMLDivElement, BarItemProps>(function BarItem(\n { isActive, icon, title, as = \"div\", href, onMouseDown: onMouseDownProp, ...rest },\n ref\n) {\n const rippleRef = React.useRef<RippleActionsRef>(null);\n\n const onMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseDownProp?.(event);\n };\n\n const onPointerDown = (event: React.PointerEvent<HTMLDivElement>) => {\n rippleRef.current?.onRipple(event);\n };\n\n const ElementType = as;\n\n return (\n <ElementType\n ref={ref}\n href={href}\n role=\"menuitem\"\n className={cn(\"smwb-bottom-bar__item\", { \"smwb-bottom-bar__item_active\": isActive })}\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n {...rest}\n >\n {icon && <span className=\"smwb-bottom-bar__item-icon\">{icon}</span>}\n {title ? <span className=\"smwb-bottom-bar__item-title\">{title}</span> : null}\n <Ripple actionRef={rippleRef} />\n </ElementType>\n );\n});\n"],"names":["BottomBar","forwardRef","className","menuItems","visibleCount","activeItemProp","defaultActiveItem","onActiveItemChange","overflowMenuAriaLabel","rest","ref","isControlled","activeItemState","setActiveItemState","useState","activeItem","overflowOpen","setOverflowOpen","overflowAnchor","setOverflowAnchor","safeVisibleCount","visibleItems","useMemo","overflowItems","hasOverflow","overflowActive","setActive","index","activateItem","onClick","event","onOverflowToggle","prev","onOverflowClose","jsxs","cn","_a","item","idx","jsx","BarItem","Icon","Menu","itemIndex","MenuItem","MenuItemIcon","MenuItemText","isActive","icon","title","as","href","onMouseDownProp","rippleRef","React","onMouseDown","onPointerDown","Ripple"],"mappings":"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"}
@@ -15,6 +15,8 @@ export interface BreadcrumbsProps extends HTMLAttributes<HTMLElement> {
15
15
  onExpand?: () => void;
16
16
  /** Accessible label for the expand button. */
17
17
  expandLabel?: string;
18
+ /** Test id of the root `<nav>`; `breadcrumbs` unless given. */
19
+ "data-testid"?: string;
18
20
  }
19
21
  export declare const Breadcrumbs: import("react").ForwardRefExoticComponent<BreadcrumbsProps & {
20
22
  children?: ReactNode | undefined;
@@ -1,31 +1,33 @@
1
- import { jsx as r, jsxs as j } from "react/jsx-runtime";
1
+ import { jsx as r, jsxs as y } from "react/jsx-runtime";
2
2
  import '../../../assets/styles/less/components/breadcrumbs/breadcrumbs.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
3
  /* empty css */
4
- import { forwardRef as v, useState as y, Children as S, isValidElement as k, Fragment as B } from "react";
5
- import C from "clsx";
6
- const A = v(function({
7
- className: m,
8
- separator: b = "/",
9
- maxItems: i = 8,
4
+ import { forwardRef as S, useState as k, Children as B, isValidElement as C, Fragment as F } from "react";
5
+ import I from "clsx";
6
+ const E = S(function({
7
+ className: b,
8
+ separator: o = "/",
9
+ maxItems: u = 8,
10
10
  itemsBeforeCollapse: s = 1,
11
11
  itemsAfterCollapse: t = 1,
12
12
  expanded: l,
13
13
  onExpand: a,
14
- expandLabel: o = "Show path",
15
- children: u,
16
- ...h
17
- }, p) {
18
- const c = l !== void 0, [f, w] = y(!1), _ = c ? !!l : f, e = S.toArray(u).filter(k), g = !_ && e.length > i && s + t < e.length, N = () => {
19
- a == null || a(), c || w(!0);
20
- }, n = g ? [
14
+ expandLabel: h = "Show path",
15
+ children: f,
16
+ "data-testid": p = "breadcrumbs",
17
+ ...c
18
+ }, w) {
19
+ var m;
20
+ const d = l !== void 0, [_, g] = k(!1), N = d ? !!l : _, e = B.toArray(f).filter(C), x = !N && e.length > u && s + t < e.length, j = () => {
21
+ a == null || a(), d || g(!0);
22
+ }, n = x ? [
21
23
  ...e.slice(0, s),
22
24
  /* @__PURE__ */ r(
23
25
  "button",
24
26
  {
25
27
  type: "button",
26
28
  className: "smwb-breadcrumbs__expand",
27
- "aria-label": o,
28
- onClick: N,
29
+ "aria-label": h,
30
+ onClick: j,
29
31
  children: "…"
30
32
  },
31
33
  "smwb-breadcrumbs-expand"
@@ -35,20 +37,20 @@ const A = v(function({
35
37
  return /* @__PURE__ */ r(
36
38
  "nav",
37
39
  {
38
- ...h,
39
- ref: p,
40
- "data-testid": "breadcrumbs",
41
- "aria-label": "breadcrumb",
42
- className: C("smwb-breadcrumbs", m),
43
- children: /* @__PURE__ */ r("ol", { className: "smwb-breadcrumbs__list", children: n.map((x, d) => /* @__PURE__ */ j(B, { children: [
44
- /* @__PURE__ */ r("li", { className: "smwb-breadcrumbs__item", children: x }),
45
- d < n.length - 1 ? /* @__PURE__ */ r("li", { className: "smwb-breadcrumbs__separator", "aria-hidden": "true", children: b }) : null
46
- ] }, d)) })
40
+ ...c,
41
+ ref: w,
42
+ "data-testid": p,
43
+ "aria-label": (m = c["aria-label"]) != null ? m : "breadcrumb",
44
+ className: I("smwb-breadcrumbs", b),
45
+ children: /* @__PURE__ */ r("ol", { className: "smwb-breadcrumbs__list", children: n.map((v, i) => /* @__PURE__ */ y(F, { children: [
46
+ /* @__PURE__ */ r("li", { className: "smwb-breadcrumbs__item", children: v }),
47
+ i < n.length - 1 ? /* @__PURE__ */ r("li", { className: "smwb-breadcrumbs__separator", "aria-hidden": "true", children: o }) : null
48
+ ] }, i)) })
47
49
  }
48
50
  );
49
51
  });
50
52
  export {
51
- A as Breadcrumbs,
52
- A as default
53
+ E as Breadcrumbs,
54
+ E as default
53
55
  };
54
56
  //# sourceMappingURL=breadcrumbs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.js","sources":["../../../../src/components/navigation/breadcrumbs/breadcrumbs.tsx"],"sourcesContent":["import {\n Children,\n forwardRef,\n Fragment,\n HTMLAttributes,\n isValidElement,\n PropsWithChildren,\n ReactNode,\n useState,\n} from \"react\";\nimport cn from \"clsx\";\n\nexport interface BreadcrumbsProps extends HTMLAttributes<HTMLElement> {\n className?: string;\n /** Node placed between every crumb. */\n separator?: ReactNode;\n /** Collapse the middle of the trail when there are more than `maxItems` crumbs. */\n maxItems?: number;\n /** How many leading crumbs to keep when collapsed. */\n itemsBeforeCollapse?: number;\n /** How many trailing crumbs to keep when collapsed. */\n itemsAfterCollapse?: number;\n /** Controlled expanded state. */\n expanded?: boolean;\n /** Fired when the user activates the expand control. */\n onExpand?: () => void;\n /** Accessible label for the expand button. */\n expandLabel?: string;\n}\n\nexport const Breadcrumbs = forwardRef<HTMLElement, PropsWithChildren<BreadcrumbsProps>>(function Breadcrumbs(\n {\n className,\n separator = \"/\",\n maxItems = 8,\n itemsBeforeCollapse = 1,\n itemsAfterCollapse = 1,\n expanded: expandedProp,\n onExpand,\n expandLabel = \"Show path\",\n children,\n ...props\n },\n ref\n) {\n const isControlled = expandedProp !== undefined;\n const [internalExpanded, setInternalExpanded] = useState(false);\n const expanded = isControlled ? !!expandedProp : internalExpanded;\n const crumbs = Children.toArray(children).filter(isValidElement);\n\n const collapsed = !expanded && crumbs.length > maxItems && itemsBeforeCollapse + itemsAfterCollapse < crumbs.length;\n\n const handleExpand = () => {\n onExpand?.();\n if (!isControlled) {\n setInternalExpanded(true);\n }\n };\n\n const rendered: ReactNode[] = collapsed\n ? [\n ...crumbs.slice(0, itemsBeforeCollapse),\n <button\n key=\"smwb-breadcrumbs-expand\"\n type=\"button\"\n className=\"smwb-breadcrumbs__expand\"\n aria-label={expandLabel}\n onClick={handleExpand}\n >\n …\n </button>,\n ...crumbs.slice(crumbs.length - itemsAfterCollapse),\n ]\n : crumbs;\n\n return (\n <nav\n {...props}\n ref={ref}\n data-testid=\"breadcrumbs\"\n aria-label=\"breadcrumb\"\n className={cn(\"smwb-breadcrumbs\", className)}\n >\n <ol className=\"smwb-breadcrumbs__list\">\n {rendered.map((crumb, index) => (\n <Fragment key={index}>\n <li className=\"smwb-breadcrumbs__item\">{crumb}</li>\n {index < rendered.length - 1 ? (\n <li className=\"smwb-breadcrumbs__separator\" aria-hidden=\"true\">\n {separator}\n </li>\n ) : null}\n </Fragment>\n ))}\n </ol>\n </nav>\n );\n});\n\nexport default Breadcrumbs;\n"],"names":["Breadcrumbs","forwardRef","className","separator","maxItems","itemsBeforeCollapse","itemsAfterCollapse","expandedProp","onExpand","expandLabel","children","props","ref","isControlled","internalExpanded","setInternalExpanded","useState","expanded","crumbs","Children","isValidElement","collapsed","handleExpand","rendered","jsx","cn","crumb","index","jsxs","Fragment"],"mappings":";;;;;AAgCO,MAAMA,IAAcC,EAA6D,SACtF;AAAA,EACE,WAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC,IAAW;AAAA,EACX,qBAAAC,IAAsB;AAAA,EACtB,oBAAAC,IAAqB;AAAA,EACrB,UAAUC;AAAA,EACV,UAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAeN,MAAiB,QAChC,CAACO,GAAkBC,CAAmB,IAAIC,EAAS,EAAK,GACxDC,IAAWJ,IAAe,CAAC,CAACN,IAAeO,GAC3CI,IAASC,EAAS,QAAQT,CAAQ,EAAE,OAAOU,CAAc,GAEzDC,IAAY,CAACJ,KAAYC,EAAO,SAASd,KAAYC,IAAsBC,IAAqBY,EAAO,QAEvGI,IAAe,MAAM;AACzB,IAAAd,KAAA,QAAAA,KACKK,KACHE,EAAoB,EAAI;AAAA,EAE5B,GAEMQ,IAAwBF,IAC1B;AAAA,IACE,GAAGH,EAAO,MAAM,GAAGb,CAAmB;AAAA,IACtC,gBAAAmB;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,MAAK;AAAA,QACL,WAAU;AAAA,QACV,cAAYf;AAAA,QACZ,SAASa;AAAA,QACV,UAAA;AAAA,MAAA;AAAA,MALK;AAAA,IAAA;AAAA,IAQN,GAAGJ,EAAO,MAAMA,EAAO,SAASZ,CAAkB;AAAA,EAAA,IAEpDY;AAEJ,SACE,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGb;AAAA,MACJ,KAAAC;AAAA,MACA,eAAY;AAAA,MACZ,cAAW;AAAA,MACX,WAAWa,EAAG,oBAAoBvB,CAAS;AAAA,MAE3C,UAAA,gBAAAsB,EAAC,MAAA,EAAG,WAAU,0BACX,UAAAD,EAAS,IAAI,CAACG,GAAOC,MACpB,gBAAAC,EAACC,GAAA,EACC,UAAA;AAAA,QAAA,gBAAAL,EAAC,MAAA,EAAG,WAAU,0BAA0B,UAAAE,GAAM;AAAA,QAC7CC,IAAQJ,EAAS,SAAS,IACzB,gBAAAC,EAAC,MAAA,EAAG,WAAU,+BAA8B,eAAY,QACrD,UAAArB,EAAA,CACH,IACE;AAAA,MAAA,EAAA,GANSwB,CAOf,CACD,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
1
+ {"version":3,"file":"breadcrumbs.js","sources":["../../../../src/components/navigation/breadcrumbs/breadcrumbs.tsx"],"sourcesContent":["import {\n Children,\n forwardRef,\n Fragment,\n HTMLAttributes,\n isValidElement,\n PropsWithChildren,\n ReactNode,\n useState,\n} from \"react\";\nimport cn from \"clsx\";\n\nexport interface BreadcrumbsProps extends HTMLAttributes<HTMLElement> {\n className?: string;\n /** Node placed between every crumb. */\n separator?: ReactNode;\n /** Collapse the middle of the trail when there are more than `maxItems` crumbs. */\n maxItems?: number;\n /** How many leading crumbs to keep when collapsed. */\n itemsBeforeCollapse?: number;\n /** How many trailing crumbs to keep when collapsed. */\n itemsAfterCollapse?: number;\n /** Controlled expanded state. */\n expanded?: boolean;\n /** Fired when the user activates the expand control. */\n onExpand?: () => void;\n /** Accessible label for the expand button. */\n expandLabel?: string;\n /** Test id of the root `<nav>`; `breadcrumbs` unless given. */\n \"data-testid\"?: string;\n}\n\nexport const Breadcrumbs = forwardRef<HTMLElement, PropsWithChildren<BreadcrumbsProps>>(function Breadcrumbs(\n {\n className,\n separator = \"/\",\n maxItems = 8,\n itemsBeforeCollapse = 1,\n itemsAfterCollapse = 1,\n expanded: expandedProp,\n onExpand,\n expandLabel = \"Show path\",\n children,\n \"data-testid\": dataTestId = \"breadcrumbs\",\n ...props\n },\n ref\n) {\n const isControlled = expandedProp !== undefined;\n const [internalExpanded, setInternalExpanded] = useState(false);\n const expanded = isControlled ? !!expandedProp : internalExpanded;\n const crumbs = Children.toArray(children).filter(isValidElement);\n\n const collapsed = !expanded && crumbs.length > maxItems && itemsBeforeCollapse + itemsAfterCollapse < crumbs.length;\n\n const handleExpand = () => {\n onExpand?.();\n if (!isControlled) {\n setInternalExpanded(true);\n }\n };\n\n const rendered: ReactNode[] = collapsed\n ? [\n ...crumbs.slice(0, itemsBeforeCollapse),\n <button\n key=\"smwb-breadcrumbs-expand\"\n type=\"button\"\n className=\"smwb-breadcrumbs__expand\"\n aria-label={expandLabel}\n onClick={handleExpand}\n >\n …\n </button>,\n ...crumbs.slice(crumbs.length - itemsAfterCollapse),\n ]\n : crumbs;\n\n return (\n <nav\n {...props}\n ref={ref}\n data-testid={dataTestId}\n // A default the caller's own replaces, to name it in their language; an\n // explicit undefined keeps it.\n aria-label={props[\"aria-label\"] ?? \"breadcrumb\"}\n className={cn(\"smwb-breadcrumbs\", className)}\n >\n <ol className=\"smwb-breadcrumbs__list\">\n {rendered.map((crumb, index) => (\n <Fragment key={index}>\n <li className=\"smwb-breadcrumbs__item\">{crumb}</li>\n {index < rendered.length - 1 ? (\n <li className=\"smwb-breadcrumbs__separator\" aria-hidden=\"true\">\n {separator}\n </li>\n ) : null}\n </Fragment>\n ))}\n </ol>\n </nav>\n );\n});\n\nexport default Breadcrumbs;\n"],"names":["Breadcrumbs","forwardRef","className","separator","maxItems","itemsBeforeCollapse","itemsAfterCollapse","expandedProp","onExpand","expandLabel","children","dataTestId","props","ref","isControlled","internalExpanded","setInternalExpanded","useState","expanded","crumbs","Children","isValidElement","collapsed","handleExpand","rendered","jsx","_a","cn","crumb","index","jsxs","Fragment"],"mappings":";;;;;AAkCO,MAAMA,IAAcC,EAA6D,SACtF;AAAA,EACE,WAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC,IAAW;AAAA,EACX,qBAAAC,IAAsB;AAAA,EACtB,oBAAAC,IAAqB;AAAA,EACrB,UAAUC;AAAA,EACV,UAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,eAAeC,IAAa;AAAA,EAC5B,GAAGC;AACL,GACAC,GACA;;AACA,QAAMC,IAAeP,MAAiB,QAChC,CAACQ,GAAkBC,CAAmB,IAAIC,EAAS,EAAK,GACxDC,IAAWJ,IAAe,CAAC,CAACP,IAAeQ,GAC3CI,IAASC,EAAS,QAAQV,CAAQ,EAAE,OAAOW,CAAc,GAEzDC,IAAY,CAACJ,KAAYC,EAAO,SAASf,KAAYC,IAAsBC,IAAqBa,EAAO,QAEvGI,IAAe,MAAM;AACzB,IAAAf,KAAA,QAAAA,KACKM,KACHE,EAAoB,EAAI;AAAA,EAE5B,GAEMQ,IAAwBF,IAC1B;AAAA,IACE,GAAGH,EAAO,MAAM,GAAGd,CAAmB;AAAA,IACtC,gBAAAoB;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,MAAK;AAAA,QACL,WAAU;AAAA,QACV,cAAYhB;AAAA,QACZ,SAASc;AAAA,QACV,UAAA;AAAA,MAAA;AAAA,MALK;AAAA,IAAA;AAAA,IAQN,GAAGJ,EAAO,MAAMA,EAAO,SAASb,CAAkB;AAAA,EAAA,IAEpDa;AAEJ,SACE,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGb;AAAA,MACJ,KAAAC;AAAA,MACA,eAAaF;AAAA,MAGb,eAAYe,IAAAd,EAAM,YAAY,MAAlB,OAAAc,IAAuB;AAAA,MACnC,WAAWC,EAAG,oBAAoBzB,CAAS;AAAA,MAE3C,UAAA,gBAAAuB,EAAC,MAAA,EAAG,WAAU,0BACX,UAAAD,EAAS,IAAI,CAACI,GAAOC,MACpB,gBAAAC,EAACC,GAAA,EACC,UAAA;AAAA,QAAA,gBAAAN,EAAC,MAAA,EAAG,WAAU,0BAA0B,UAAAG,GAAM;AAAA,QAC7CC,IAAQL,EAAS,SAAS,IACzB,gBAAAC,EAAC,MAAA,EAAG,WAAU,+BAA8B,eAAY,QACrD,UAAAtB,EAAA,CACH,IACE;AAAA,MAAA,EAAA,GANS0B,CAOf,CACD,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
@@ -3,8 +3,20 @@ import { MenuFloatingProps } from "./menuFloating";
3
3
  export type MenuProps = MenuFloatingProps & React.HTMLAttributes<HTMLElement> & {
4
4
  variant?: "static" | "floating";
5
5
  dense?: boolean;
6
+ /**
7
+ * Role of the list inside the menu, `menu` by default. A component that draws
8
+ * a list of its own on the menu's surface sets `presentation`: SelectField's
9
+ * options are a `listbox` inside it.
10
+ */
11
+ listRole?: React.AriaRole;
6
12
  };
7
13
  export declare const Menu: React.ForwardRefExoticComponent<MenuFloatingProps & React.HTMLAttributes<HTMLElement> & {
8
14
  variant?: "static" | "floating";
9
15
  dense?: boolean;
16
+ /**
17
+ * Role of the list inside the menu, `menu` by default. A component that draws
18
+ * a list of its own on the menu's surface sets `presentation`: SelectField's
19
+ * options are a `listbox` inside it.
20
+ */
21
+ listRole?: React.AriaRole;
10
22
  } & React.RefAttributes<HTMLDivElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sources":["../../../../src/components/navigation/menu/menu.tsx"],"sourcesContent":["import React from \"react\";\nimport { MenuContext } from \"./menuContext\";\nimport { MenuComponent } from \"./menuComponent\";\nimport { MenuFloatingProps } from \"./menuFloating\";\n\nexport type MenuProps = MenuFloatingProps &\n React.HTMLAttributes<HTMLElement> & {\n variant?: \"static\" | \"floating\";\n dense?: boolean;\n };\n\nexport const Menu = React.forwardRef<HTMLDivElement, MenuProps>(function Menu(props, ref) {\n const { dense = false, variant = \"floating\", onClose: onCloseProp, ...rest } = props;\n\n const onClose = () => {\n onCloseProp?.();\n };\n\n return (\n <MenuContext.Provider value={{ dense, variant, onClose }}>\n <MenuComponent ref={ref} onClose={onCloseProp} {...rest} />\n </MenuContext.Provider>\n );\n});\n"],"names":["Menu","React","props","ref","dense","variant","onCloseProp","rest","onClose","MenuContext","MenuComponent"],"mappings":";;;;;;AAaO,MAAMA,IAAOC,EAAM,WAAsC,SAAcC,GAAOC,GAAK;AACxF,QAAM,EAAE,OAAAC,IAAQ,IAAO,SAAAC,IAAU,YAAY,SAASC,GAAa,GAAGC,EAAA,IAASL,GAEzEM,IAAU,MAAM;AACpB,IAAAF,KAAA,QAAAA;AAAA,EACF;AAEA,2BACGG,EAAY,UAAZ,EAAqB,OAAO,EAAE,OAAAL,GAAO,SAAAC,GAAS,SAAAG,EAAA,GAC7C,4BAACE,GAAA,EAAc,KAAAP,GAAU,SAASG,GAAc,GAAGC,GAAM,GAC3D;AAEJ,CAAC;"}
1
+ {"version":3,"file":"menu.js","sources":["../../../../src/components/navigation/menu/menu.tsx"],"sourcesContent":["import React from \"react\";\nimport { MenuContext } from \"./menuContext\";\nimport { MenuComponent } from \"./menuComponent\";\nimport { MenuFloatingProps } from \"./menuFloating\";\n\nexport type MenuProps = MenuFloatingProps &\n React.HTMLAttributes<HTMLElement> & {\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?: React.AriaRole;\n };\n\nexport const Menu = React.forwardRef<HTMLDivElement, MenuProps>(function Menu(props, ref) {\n const { dense = false, variant = \"floating\", onClose: onCloseProp, ...rest } = props;\n\n const onClose = () => {\n onCloseProp?.();\n };\n\n return (\n <MenuContext.Provider value={{ dense, variant, onClose }}>\n <MenuComponent ref={ref} onClose={onCloseProp} {...rest} />\n </MenuContext.Provider>\n );\n});\n"],"names":["Menu","React","props","ref","dense","variant","onCloseProp","rest","onClose","MenuContext","MenuComponent"],"mappings":";;;;;;AAmBO,MAAMA,IAAOC,EAAM,WAAsC,SAAcC,GAAOC,GAAK;AACxF,QAAM,EAAE,OAAAC,IAAQ,IAAO,SAAAC,IAAU,YAAY,SAASC,GAAa,GAAGC,EAAA,IAASL,GAEzEM,IAAU,MAAM;AACpB,IAAAF,KAAA,QAAAA;AAAA,EACF;AAEA,2BACGG,EAAY,UAAZ,EAAqB,OAAO,EAAE,OAAAL,GAAO,SAAAC,GAAS,SAAAG,EAAA,GAC7C,4BAACE,GAAA,EAAc,KAAAP,GAAU,SAASG,GAAc,GAAGC,GAAM,GAC3D;AAEJ,CAAC;"}
@@ -3,6 +3,8 @@ export interface MenuContextValue {
3
3
  dense: boolean;
4
4
  variant: "static" | "floating";
5
5
  onClose: () => void;
6
+ /** A submenu's own list: ArrowLeft in it closes the submenu (onClose). */
7
+ submenu?: boolean;
6
8
  }
7
9
  export declare const MenuContext: React.Context<MenuContextValue>;
8
10
  export declare function useMenuContext(): MenuContextValue;
@@ -1 +1 @@
1
- {"version":3,"file":"menuContext.js","sources":["../../../../src/components/navigation/menu/menuContext.ts"],"sourcesContent":["import React from \"react\";\n\nexport interface MenuContextValue {\n dense: boolean;\n variant: \"static\" | \"floating\";\n onClose: () => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextValue>({\n dense: false,\n variant: \"floating\",\n onClose: () => null,\n});\n\nexport function useMenuContext() {\n return React.useContext(MenuContext);\n}\n"],"names":["MenuContext","React","useMenuContext"],"mappings":";AAQO,MAAMA,IAAcC,EAAM,cAAgC;AAAA,EAC/D,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS,MAAM;AACjB,CAAC;AAEM,SAASC,IAAiB;AAC/B,SAAOD,EAAM,WAAWD,CAAW;AACrC;"}
1
+ {"version":3,"file":"menuContext.js","sources":["../../../../src/components/navigation/menu/menuContext.ts"],"sourcesContent":["import React from \"react\";\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 = React.createContext<MenuContextValue>({\n dense: false,\n variant: \"floating\",\n onClose: () => null,\n});\n\nexport function useMenuContext() {\n return React.useContext(MenuContext);\n}\n"],"names":["MenuContext","React","useMenuContext"],"mappings":";AAUO,MAAMA,IAAcC,EAAM,cAAgC;AAAA,EAC/D,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS,MAAM;AACjB,CAAC;AAEM,SAASC,IAAiB;AAC/B,SAAOD,EAAM,WAAWD,CAAW;AACrC;"}