@smwb/ui-react 2.6.3 → 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 (640) hide show
  1. package/AI_LESS_OVERRIDES.md +4 -2
  2. package/AI_THEMING.md +17 -1
  3. package/README.md +111 -35
  4. package/dist/assets/styles/less/components/accordion/accordion.entry.css +1 -1
  5. package/dist/assets/styles/less/components/avatar/avatar.entry.css +1 -1
  6. package/dist/assets/styles/less/components/card/card.entry.css +1 -1
  7. package/dist/assets/styles/less/components/chart/chart.entry.css +1 -0
  8. package/dist/assets/styles/less/components/checkbox/checkbox.entry.css +1 -1
  9. package/dist/assets/styles/less/components/chip/chip.entry.css +1 -1
  10. package/dist/assets/styles/less/components/descriptionList/descriptionList.entry.css +1 -0
  11. package/dist/assets/styles/less/components/emptyState/emptyState.entry.css +1 -0
  12. package/dist/assets/styles/less/components/kanban/kanban.entry.css +1 -0
  13. package/dist/assets/styles/less/components/menu/menu.entry.css +1 -1
  14. package/dist/assets/styles/less/components/meter/meter.entry.css +1 -0
  15. package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -0
  16. package/dist/assets/styles/less/components/progressIndicator/progressIndicator.entry.css +1 -1
  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/sectionHeader/sectionHeader.entry.css +1 -0
  20. package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
  21. package/dist/assets/styles/less/components/stat/stat.entry.css +1 -0
  22. package/dist/assets/styles/less/components/stepper/stepper.entry.css +1 -1
  23. package/dist/assets/styles/less/components/table/table.entry.css +1 -1
  24. package/dist/assets/styles/less/components/tabs/tab/tab.entry.css +1 -1
  25. package/dist/assets/styles/less/components/tabs/tabs.entry.css +1 -1
  26. package/dist/assets/styles/less/components/textField/textField.entry.css +1 -1
  27. package/dist/assets/styles/less/components/thumbCard/thumbCard.entry.css +1 -1
  28. package/dist/assets/styles/less/components/timeline/timeline.entry.css +1 -0
  29. package/dist/assets/styles/less/components/toggle/toggle.entry.css +1 -1
  30. package/dist/assets/styles/less/components/tooltip/tooltip.entry.css +1 -1
  31. package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
  32. package/dist/assets/styles/less/connects/rt/table.entry.css +1 -0
  33. package/dist/assets/styles/less/tokens.entry.css +1 -0
  34. package/dist/chart.d.ts +2 -0
  35. package/dist/chart.js +8 -0
  36. package/dist/chart.js.map +1 -0
  37. package/dist/components/base/icon/icon.d.ts +6 -2
  38. package/dist/components/base/icon/icon.js +51 -38
  39. package/dist/components/base/icon/icon.js.map +1 -1
  40. package/dist/components/base/ripple/ripple.d.ts +3 -0
  41. package/dist/components/base/ripple/ripple.js +42 -26
  42. package/dist/components/base/ripple/ripple.js.map +1 -1
  43. package/dist/components/dataDisplay/accordion/accordion.d.ts +18 -1
  44. package/dist/components/dataDisplay/accordion/accordion.js +77 -54
  45. package/dist/components/dataDisplay/accordion/accordion.js.map +1 -1
  46. package/dist/components/dataDisplay/assetGrid/assetGrid.js +15 -14
  47. package/dist/components/dataDisplay/assetGrid/assetGrid.js.map +1 -1
  48. package/dist/components/dataDisplay/avatar/avatar.d.ts +8 -0
  49. package/dist/components/dataDisplay/avatar/avatar.js +66 -38
  50. package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
  51. package/dist/components/dataDisplay/badge/badge.js +41 -31
  52. package/dist/components/dataDisplay/badge/badge.js.map +1 -1
  53. package/dist/components/dataDisplay/card/card.d.ts +30 -2
  54. package/dist/components/dataDisplay/card/card.js +51 -23
  55. package/dist/components/dataDisplay/card/card.js.map +1 -1
  56. package/dist/components/dataDisplay/carousel/carousel.js +80 -79
  57. package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
  58. package/dist/components/dataDisplay/chart/chart.d.ts +67 -0
  59. package/dist/components/dataDisplay/chart/chart.js +146 -0
  60. package/dist/components/dataDisplay/chart/chart.js.map +1 -0
  61. package/dist/components/dataDisplay/chart/chartTheme.d.ts +35 -0
  62. package/dist/components/dataDisplay/chart/chartTheme.js +74 -0
  63. package/dist/components/dataDisplay/chart/chartTheme.js.map +1 -0
  64. package/dist/components/dataDisplay/chart/index.d.ts +4 -0
  65. package/dist/components/dataDisplay/chat/chat.js +5 -4
  66. package/dist/components/dataDisplay/chat/chat.js.map +1 -1
  67. package/dist/components/dataDisplay/chat/chatIconButton.d.ts +1 -1
  68. package/dist/components/dataDisplay/chat/chatIconButton.js +30 -26
  69. package/dist/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  70. package/dist/components/dataDisplay/chat/chatLayout.d.ts +3 -1
  71. package/dist/components/dataDisplay/chat/chatLayout.js +56 -55
  72. package/dist/components/dataDisplay/chat/chatLayout.js.map +1 -1
  73. package/dist/components/dataDisplay/chat/chatOverlayLayout.d.ts +3 -1
  74. package/dist/components/dataDisplay/chip/chip.d.ts +31 -0
  75. package/dist/components/dataDisplay/chip/chip.js +112 -84
  76. package/dist/components/dataDisplay/chip/chip.js.map +1 -1
  77. package/dist/components/dataDisplay/chipGroup/chipGroup.js +37 -32
  78. package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  79. package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +45 -0
  80. package/dist/components/dataDisplay/descriptionList/descriptionList.js +43 -0
  81. package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -0
  82. package/dist/components/dataDisplay/descriptionList/index.d.ts +2 -0
  83. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +145 -99
  84. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  85. package/dist/components/dataDisplay/imagesList/imagesList.js +11 -10
  86. package/dist/components/dataDisplay/imagesList/imagesList.js.map +1 -1
  87. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js +31 -24
  88. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js.map +1 -1
  89. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.d.ts +1 -1
  90. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js +16 -13
  91. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js.map +1 -1
  92. package/dist/components/dataDisplay/kanban/index.d.ts +2 -0
  93. package/dist/components/dataDisplay/kanban/kanban.d.ts +53 -0
  94. package/dist/components/dataDisplay/kanban/kanban.js +74 -0
  95. package/dist/components/dataDisplay/kanban/kanban.js.map +1 -0
  96. package/dist/components/dataDisplay/lazyImage/lazyImage.js +33 -31
  97. package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  98. package/dist/components/dataDisplay/list/list.d.ts +2 -0
  99. package/dist/components/dataDisplay/list/list.js +17 -15
  100. package/dist/components/dataDisplay/list/list.js.map +1 -1
  101. package/dist/components/dataDisplay/meter/index.d.ts +2 -0
  102. package/dist/components/dataDisplay/meter/meter.d.ts +35 -0
  103. package/dist/components/dataDisplay/meter/meter.js +63 -0
  104. package/dist/components/dataDisplay/meter/meter.js.map +1 -0
  105. package/dist/components/dataDisplay/personChip/index.d.ts +2 -0
  106. package/dist/components/dataDisplay/personChip/personChip.d.ts +33 -0
  107. package/dist/components/dataDisplay/personChip/personChip.js +73 -0
  108. package/dist/components/dataDisplay/personChip/personChip.js.map +1 -0
  109. package/dist/components/dataDisplay/stat/index.d.ts +2 -0
  110. package/dist/components/dataDisplay/stat/stat.d.ts +38 -0
  111. package/dist/components/dataDisplay/stat/stat.js +60 -0
  112. package/dist/components/dataDisplay/stat/stat.js.map +1 -0
  113. package/dist/components/dataDisplay/table/table.d.ts +22 -0
  114. package/dist/components/dataDisplay/table/table.js +42 -32
  115. package/dist/components/dataDisplay/table/table.js.map +1 -1
  116. package/dist/components/dataDisplay/table/tableBody.js +10 -4
  117. package/dist/components/dataDisplay/table/tableBody.js.map +1 -1
  118. package/dist/components/dataDisplay/table/tableCell.d.ts +11 -1
  119. package/dist/components/dataDisplay/table/tableCell.js +20 -4
  120. package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
  121. package/dist/components/dataDisplay/table/tableColumns.d.ts +83 -0
  122. package/dist/components/dataDisplay/table/tableColumns.js +112 -0
  123. package/dist/components/dataDisplay/table/tableColumns.js.map +1 -0
  124. package/dist/components/dataDisplay/table/tableHead.js +9 -3
  125. package/dist/components/dataDisplay/table/tableHead.js.map +1 -1
  126. package/dist/components/dataDisplay/table/tableHeadCell.d.ts +34 -3
  127. package/dist/components/dataDisplay/table/tableHeadCell.js +61 -36
  128. package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  129. package/dist/components/dataDisplay/table/tablePagination/tablePagination.js +10 -9
  130. package/dist/components/dataDisplay/table/tablePagination/tablePagination.js.map +1 -1
  131. package/dist/components/dataDisplay/table/tableRow.d.ts +3 -1
  132. package/dist/components/dataDisplay/table/tableRow.js +28 -16
  133. package/dist/components/dataDisplay/table/tableRow.js.map +1 -1
  134. package/dist/components/dataDisplay/thumbCard/thumbCard.d.ts +44 -3
  135. package/dist/components/dataDisplay/thumbCard/thumbCard.js +81 -60
  136. package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  137. package/dist/components/dataDisplay/timeline/index.d.ts +2 -0
  138. package/dist/components/dataDisplay/timeline/timeline.d.ts +43 -0
  139. package/dist/components/dataDisplay/timeline/timeline.js +44 -0
  140. package/dist/components/dataDisplay/timeline/timeline.js.map +1 -0
  141. package/dist/components/dataDisplay/treeView/treeView.d.ts +2 -0
  142. package/dist/components/dataDisplay/treeView/treeView.js +26 -24
  143. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  144. package/dist/components/dataDisplay/typography/typography.d.ts +4 -0
  145. package/dist/components/dataDisplay/typography/typography.js +41 -23
  146. package/dist/components/dataDisplay/typography/typography.js.map +1 -1
  147. package/dist/components/feedBack/confirmDialog/confirmDialog.js +14 -13
  148. package/dist/components/feedBack/confirmDialog/confirmDialog.js.map +1 -1
  149. package/dist/components/feedBack/emptyState/emptyState.d.ts +28 -0
  150. package/dist/components/feedBack/emptyState/emptyState.js +37 -0
  151. package/dist/components/feedBack/emptyState/emptyState.js.map +1 -0
  152. package/dist/components/feedBack/emptyState/index.d.ts +2 -0
  153. package/dist/components/feedBack/message/message.d.ts +2 -0
  154. package/dist/components/feedBack/message/message.js +33 -21
  155. package/dist/components/feedBack/message/message.js.map +1 -1
  156. package/dist/components/feedBack/modal/modal.js +44 -43
  157. package/dist/components/feedBack/modal/modal.js.map +1 -1
  158. package/dist/components/feedBack/progressIndicator/progressIndicator.d.ts +14 -1
  159. package/dist/components/feedBack/progressIndicator/progressIndicator.js +72 -40
  160. package/dist/components/feedBack/progressIndicator/progressIndicator.js.map +1 -1
  161. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js +32 -31
  162. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -1
  163. package/dist/components/feedBack/skeleton/skeleton.d.ts +10 -2
  164. package/dist/components/feedBack/skeleton/skeleton.js +40 -36
  165. package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
  166. package/dist/components/feedBack/snackbar/snackbar.js +110 -108
  167. package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
  168. package/dist/components/feedBack/tooltip/tooltip.d.ts +9 -1
  169. package/dist/components/feedBack/tooltip/tooltip.js +77 -49
  170. package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
  171. package/dist/components/inputs/button/button.d.ts +2 -0
  172. package/dist/components/inputs/button/button.js +67 -62
  173. package/dist/components/inputs/button/button.js.map +1 -1
  174. package/dist/components/inputs/buttonGroups/buttonGroup.d.ts +2 -0
  175. package/dist/components/inputs/buttonGroups/buttonGroup.js +42 -37
  176. package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  177. package/dist/components/inputs/checkbox/checkbox.d.ts +10 -0
  178. package/dist/components/inputs/checkbox/checkbox.js +86 -60
  179. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  180. package/dist/components/inputs/datePicker/datePicker.js +179 -170
  181. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  182. package/dist/components/inputs/datePicker/datePickerDay.d.ts +1 -1
  183. package/dist/components/inputs/datePicker/datePickerDay.js +52 -44
  184. package/dist/components/inputs/datePicker/datePickerDay.js.map +1 -1
  185. package/dist/components/inputs/datePicker/datePickerIconButton.d.ts +1 -1
  186. package/dist/components/inputs/datePicker/datePickerIconButton.js +32 -28
  187. package/dist/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  188. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +165 -157
  189. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  190. package/dist/components/inputs/fileDrop/fileDrop.js +13 -12
  191. package/dist/components/inputs/fileDrop/fileDrop.js.map +1 -1
  192. package/dist/components/inputs/fileInput/fileInput.js +4 -3
  193. package/dist/components/inputs/fileInput/fileInput.js.map +1 -1
  194. package/dist/components/inputs/floatingButton/floatingButton.js +34 -31
  195. package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
  196. package/dist/components/inputs/radioButton/radioButton.d.ts +9 -0
  197. package/dist/components/inputs/radioButton/radioButton.js +79 -59
  198. package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
  199. package/dist/components/inputs/rating/rating.d.ts +8 -0
  200. package/dist/components/inputs/rating/rating.js +87 -71
  201. package/dist/components/inputs/rating/rating.js.map +1 -1
  202. package/dist/components/inputs/selectField/dropdownMenu.d.ts +20 -1
  203. package/dist/components/inputs/selectField/dropdownMenu.js +265 -109
  204. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  205. package/dist/components/inputs/selectField/optionNavigation.d.ts +17 -0
  206. package/dist/components/inputs/selectField/optionNavigation.js +38 -0
  207. package/dist/components/inputs/selectField/optionNavigation.js.map +1 -0
  208. package/dist/components/inputs/selectField/selectField.d.ts +33 -1
  209. package/dist/components/inputs/selectField/selectField.js +365 -214
  210. package/dist/components/inputs/selectField/selectField.js.map +1 -1
  211. package/dist/components/inputs/slider/slider.d.ts +22 -1
  212. package/dist/components/inputs/slider/slider.js +332 -262
  213. package/dist/components/inputs/slider/slider.js.map +1 -1
  214. package/dist/components/inputs/textField/textField.d.ts +7 -0
  215. package/dist/components/inputs/textField/textField.js +118 -99
  216. package/dist/components/inputs/textField/textField.js.map +1 -1
  217. package/dist/components/inputs/textField/textFieldWrapper.d.ts +15 -1
  218. package/dist/components/inputs/textField/textFieldWrapper.js +45 -34
  219. package/dist/components/inputs/textField/textFieldWrapper.js.map +1 -1
  220. package/dist/components/inputs/textField/utils.d.ts +1 -1
  221. package/dist/components/inputs/timePicker/timePicker.js +94 -85
  222. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  223. package/dist/components/inputs/toggle/toggle.d.ts +4 -0
  224. package/dist/components/inputs/toggle/toggle.js +81 -61
  225. package/dist/components/inputs/toggle/toggle.js.map +1 -1
  226. package/dist/components/inputs/valueSlider/valueSlider.d.ts +12 -0
  227. package/dist/components/inputs/valueSlider/valueSlider.js +24 -22
  228. package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
  229. package/dist/components/layout/appLayout/appLayout.d.ts +2 -0
  230. package/dist/components/layout/appLayout/appLayout.js +35 -33
  231. package/dist/components/layout/appLayout/appLayout.js.map +1 -1
  232. package/dist/components/layout/divider/divider.d.ts +2 -0
  233. package/dist/components/layout/divider/divider.js +24 -22
  234. package/dist/components/layout/divider/divider.js.map +1 -1
  235. package/dist/components/layout/floatingWindow/floatingWindow.d.ts +2 -0
  236. package/dist/components/layout/floatingWindow/floatingWindow.js +147 -140
  237. package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  238. package/dist/components/layout/grid/grid.d.ts +12 -1
  239. package/dist/components/layout/grid/grid.js +50 -34
  240. package/dist/components/layout/grid/grid.js.map +1 -1
  241. package/dist/components/layout/page/page.d.ts +2 -0
  242. package/dist/components/layout/page/page.js +18 -9
  243. package/dist/components/layout/page/page.js.map +1 -1
  244. package/dist/components/layout/pageHeader/pageHeader.d.ts +2 -0
  245. package/dist/components/layout/pageHeader/pageHeader.js +22 -12
  246. package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
  247. package/dist/components/layout/screenDivider/screenDivider.js +19 -18
  248. package/dist/components/layout/screenDivider/screenDivider.js.map +1 -1
  249. package/dist/components/layout/sectionHeader/index.d.ts +2 -0
  250. package/dist/components/layout/sectionHeader/sectionHeader.d.ts +33 -0
  251. package/dist/components/layout/sectionHeader/sectionHeader.js +77 -0
  252. package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -0
  253. package/dist/components/layout/sheet/sheet.d.ts +2 -0
  254. package/dist/components/layout/sheet/sheet.js +82 -80
  255. package/dist/components/layout/sheet/sheet.js.map +1 -1
  256. package/dist/components/layout/stack/stack.d.ts +2 -0
  257. package/dist/components/layout/stack/stack.js +33 -20
  258. package/dist/components/layout/stack/stack.js.map +1 -1
  259. package/dist/components/navigation/appBar/appBar.d.ts +2 -0
  260. package/dist/components/navigation/appBar/appBar.js +20 -18
  261. package/dist/components/navigation/appBar/appBar.js.map +1 -1
  262. package/dist/components/navigation/bottomBar/bottomBar.js +83 -78
  263. package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
  264. package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +2 -0
  265. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +31 -28
  266. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  267. package/dist/components/navigation/menu/menu.d.ts +12 -0
  268. package/dist/components/navigation/menu/menu.js +6 -5
  269. package/dist/components/navigation/menu/menu.js.map +1 -1
  270. package/dist/components/navigation/menu/menuContext.d.ts +2 -0
  271. package/dist/components/navigation/menu/menuContext.js.map +1 -1
  272. package/dist/components/navigation/menu/menuFloating.js +42 -30
  273. package/dist/components/navigation/menu/menuFloating.js.map +1 -1
  274. package/dist/components/navigation/menu/menuItem.d.ts +4 -0
  275. package/dist/components/navigation/menu/menuItem.js +60 -48
  276. package/dist/components/navigation/menu/menuItem.js.map +1 -1
  277. package/dist/components/navigation/menu/menuList.d.ts +5 -1
  278. package/dist/components/navigation/menu/menuList.js +30 -19
  279. package/dist/components/navigation/menu/menuList.js.map +1 -1
  280. package/dist/components/navigation/menu/menuSubmenu.js +53 -40
  281. package/dist/components/navigation/menu/menuSubmenu.js.map +1 -1
  282. package/dist/components/navigation/overflowMenu/overflowMenu.js +16 -15
  283. package/dist/components/navigation/overflowMenu/overflowMenu.js.map +1 -1
  284. package/dist/components/navigation/pagination/pagination.d.ts +2 -0
  285. package/dist/components/navigation/pagination/pagination.js +53 -50
  286. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  287. package/dist/components/navigation/sidebar/sidebar.js +46 -44
  288. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  289. package/dist/components/navigation/stepper/stepper.d.ts +12 -2
  290. package/dist/components/navigation/stepper/stepper.js +43 -31
  291. package/dist/components/navigation/stepper/stepper.js.map +1 -1
  292. package/dist/components/navigation/tabs/tab/tab.d.ts +2 -0
  293. package/dist/components/navigation/tabs/tab/tab.js +44 -41
  294. package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
  295. package/dist/components/navigation/tabs/tabs.d.ts +18 -0
  296. package/dist/components/navigation/tabs/tabs.js +139 -87
  297. package/dist/components/navigation/tabs/tabs.js.map +1 -1
  298. package/dist/connects/rt/table/draggableHeader.d.ts +1 -1
  299. package/dist/connects/rt/table/draggableHeader.js.map +1 -0
  300. package/dist/connects/rt/table/headerCellRenderer.d.ts +9 -0
  301. package/dist/connects/rt/table/headerCellRenderer.js +51 -0
  302. package/dist/connects/rt/table/headerCellRenderer.js.map +1 -0
  303. package/dist/connects/rt/table/table.d.ts +17 -1
  304. package/dist/connects/rt/table/table.js +194 -0
  305. package/dist/connects/rt/table/table.js.map +1 -0
  306. package/dist/connects/rt/table/utils.js.map +1 -0
  307. package/dist/headless/components/base/icon/icon.js +49 -37
  308. package/dist/headless/components/base/icon/icon.js.map +1 -1
  309. package/dist/headless/components/base/ripple/ripple.js +42 -27
  310. package/dist/headless/components/base/ripple/ripple.js.map +1 -1
  311. package/dist/headless/components/dataDisplay/accordion/accordion.js +76 -54
  312. package/dist/headless/components/dataDisplay/accordion/accordion.js.map +1 -1
  313. package/dist/headless/components/dataDisplay/avatar/avatar.js +62 -35
  314. package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
  315. package/dist/headless/components/dataDisplay/badge/badge.js +37 -28
  316. package/dist/headless/components/dataDisplay/badge/badge.js.map +1 -1
  317. package/dist/headless/components/dataDisplay/card/card.js +50 -23
  318. package/dist/headless/components/dataDisplay/card/card.js.map +1 -1
  319. package/dist/headless/components/dataDisplay/carousel/carousel.js +55 -55
  320. package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
  321. package/dist/headless/components/dataDisplay/chat/chatIconButton.js +30 -26
  322. package/dist/headless/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  323. package/dist/headless/components/dataDisplay/chat/chatLayout.js +56 -55
  324. package/dist/headless/components/dataDisplay/chat/chatLayout.js.map +1 -1
  325. package/dist/headless/components/dataDisplay/chip/chip.js +108 -81
  326. package/dist/headless/components/dataDisplay/chip/chip.js.map +1 -1
  327. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js +35 -31
  328. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  329. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js +41 -0
  330. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -0
  331. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js +143 -98
  332. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  333. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js +29 -23
  334. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js.map +1 -1
  335. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js +16 -13
  336. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js.map +1 -1
  337. package/dist/headless/components/dataDisplay/kanban/kanban.js +72 -0
  338. package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -0
  339. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +30 -29
  340. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  341. package/dist/headless/components/dataDisplay/list/list.js +15 -14
  342. package/dist/headless/components/dataDisplay/list/list.js.map +1 -1
  343. package/dist/headless/components/dataDisplay/meter/meter.js +61 -0
  344. package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -0
  345. package/dist/headless/components/dataDisplay/personChip/personChip.js +71 -0
  346. package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -0
  347. package/dist/headless/components/dataDisplay/stat/stat.js +58 -0
  348. package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -0
  349. package/dist/headless/components/dataDisplay/table/table.js +40 -31
  350. package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
  351. package/dist/headless/components/dataDisplay/table/tableBody.js +10 -4
  352. package/dist/headless/components/dataDisplay/table/tableBody.js.map +1 -1
  353. package/dist/headless/components/dataDisplay/table/tableCell.js +20 -4
  354. package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
  355. package/dist/headless/components/dataDisplay/table/tableColumns.js +112 -0
  356. package/dist/headless/components/dataDisplay/table/tableColumns.js.map +1 -0
  357. package/dist/headless/components/dataDisplay/table/tableHead.js +9 -3
  358. package/dist/headless/components/dataDisplay/table/tableHead.js.map +1 -1
  359. package/dist/headless/components/dataDisplay/table/tableHeadCell.js +61 -36
  360. package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  361. package/dist/headless/components/dataDisplay/table/tableRow.js +28 -16
  362. package/dist/headless/components/dataDisplay/table/tableRow.js.map +1 -1
  363. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +78 -58
  364. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  365. package/dist/headless/components/dataDisplay/timeline/timeline.js +42 -0
  366. package/dist/headless/components/dataDisplay/timeline/timeline.js.map +1 -0
  367. package/dist/headless/components/dataDisplay/treeView/treeView.js +24 -23
  368. package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
  369. package/dist/headless/components/dataDisplay/typography/typography.js +39 -22
  370. package/dist/headless/components/dataDisplay/typography/typography.js.map +1 -1
  371. package/dist/headless/components/feedBack/emptyState/emptyState.js +35 -0
  372. package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -0
  373. package/dist/headless/components/feedBack/message/message.js +31 -20
  374. package/dist/headless/components/feedBack/message/message.js.map +1 -1
  375. package/dist/headless/components/feedBack/modal/modal.js +44 -44
  376. package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
  377. package/dist/headless/components/feedBack/progressIndicator/progressIndicator.js +70 -39
  378. package/dist/headless/components/feedBack/progressIndicator/progressIndicator.js.map +1 -1
  379. package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js +30 -30
  380. package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -1
  381. package/dist/headless/components/feedBack/skeleton/skeleton.js +38 -35
  382. package/dist/headless/components/feedBack/skeleton/skeleton.js.map +1 -1
  383. package/dist/headless/components/feedBack/snackbar/snackbar.js +108 -107
  384. package/dist/headless/components/feedBack/snackbar/snackbar.js.map +1 -1
  385. package/dist/headless/components/feedBack/tooltip/tooltip.js +75 -48
  386. package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
  387. package/dist/headless/components/inputs/button/button.js +62 -58
  388. package/dist/headless/components/inputs/button/button.js.map +1 -1
  389. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js +40 -36
  390. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  391. package/dist/headless/components/inputs/checkbox/checkbox.js +85 -60
  392. package/dist/headless/components/inputs/checkbox/checkbox.js.map +1 -1
  393. package/dist/headless/components/inputs/datePicker/datePicker.js +177 -169
  394. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  395. package/dist/headless/components/inputs/datePicker/datePickerDay.js +52 -44
  396. package/dist/headless/components/inputs/datePicker/datePickerDay.js.map +1 -1
  397. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js +32 -28
  398. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  399. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +165 -157
  400. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  401. package/dist/headless/components/inputs/floatingButton/floatingButton.js +32 -30
  402. package/dist/headless/components/inputs/floatingButton/floatingButton.js.map +1 -1
  403. package/dist/headless/components/inputs/radioButton/radioButton.js +77 -58
  404. package/dist/headless/components/inputs/radioButton/radioButton.js.map +1 -1
  405. package/dist/headless/components/inputs/rating/rating.js +85 -70
  406. package/dist/headless/components/inputs/rating/rating.js.map +1 -1
  407. package/dist/headless/components/inputs/selectField/dropdownMenu.js +265 -109
  408. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  409. package/dist/headless/components/inputs/selectField/optionNavigation.js +38 -0
  410. package/dist/headless/components/inputs/selectField/optionNavigation.js.map +1 -0
  411. package/dist/headless/components/inputs/selectField/selectField.js +360 -210
  412. package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
  413. package/dist/headless/components/inputs/slider/slider.js +330 -261
  414. package/dist/headless/components/inputs/slider/slider.js.map +1 -1
  415. package/dist/headless/components/inputs/textField/textField.js +118 -100
  416. package/dist/headless/components/inputs/textField/textField.js.map +1 -1
  417. package/dist/headless/components/inputs/textField/textFieldWrapper.js +45 -34
  418. package/dist/headless/components/inputs/textField/textFieldWrapper.js.map +1 -1
  419. package/dist/headless/components/inputs/timePicker/timePicker.js +92 -84
  420. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  421. package/dist/headless/components/inputs/toggle/toggle.js +79 -60
  422. package/dist/headless/components/inputs/toggle/toggle.js.map +1 -1
  423. package/dist/headless/components/inputs/valueSlider/valueSlider.js +25 -24
  424. package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -1
  425. package/dist/headless/components/layout/appLayout/appLayout.js +27 -26
  426. package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
  427. package/dist/headless/components/layout/divider/divider.js +18 -17
  428. package/dist/headless/components/layout/divider/divider.js.map +1 -1
  429. package/dist/headless/components/layout/floatingWindow/floatingWindow.js +145 -139
  430. package/dist/headless/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  431. package/dist/headless/components/layout/grid/grid.js +48 -33
  432. package/dist/headless/components/layout/grid/grid.js.map +1 -1
  433. package/dist/headless/components/layout/page/page.js +15 -7
  434. package/dist/headless/components/layout/page/page.js.map +1 -1
  435. package/dist/headless/components/layout/pageHeader/pageHeader.js +20 -11
  436. package/dist/headless/components/layout/pageHeader/pageHeader.js.map +1 -1
  437. package/dist/headless/components/layout/sectionHeader/sectionHeader.js +75 -0
  438. package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -0
  439. package/dist/headless/components/layout/sheet/sheet.js +80 -79
  440. package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
  441. package/dist/headless/components/layout/stack/stack.js +29 -17
  442. package/dist/headless/components/layout/stack/stack.js.map +1 -1
  443. package/dist/headless/components/navigation/appBar/appBar.js +15 -14
  444. package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
  445. package/dist/headless/components/navigation/bottomBar/bottomBar.js +81 -77
  446. package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
  447. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js +32 -30
  448. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  449. package/dist/headless/components/navigation/menu/menu.js.map +1 -1
  450. package/dist/headless/components/navigation/menu/menuContext.js.map +1 -1
  451. package/dist/headless/components/navigation/menu/menuFloating.js +42 -30
  452. package/dist/headless/components/navigation/menu/menuFloating.js.map +1 -1
  453. package/dist/headless/components/navigation/menu/menuItem.js +60 -48
  454. package/dist/headless/components/navigation/menu/menuItem.js.map +1 -1
  455. package/dist/headless/components/navigation/menu/menuList.js +30 -19
  456. package/dist/headless/components/navigation/menu/menuList.js.map +1 -1
  457. package/dist/headless/components/navigation/menu/menuSubmenu.js +53 -40
  458. package/dist/headless/components/navigation/menu/menuSubmenu.js.map +1 -1
  459. package/dist/headless/components/navigation/pagination/pagination.js +51 -49
  460. package/dist/headless/components/navigation/pagination/pagination.js.map +1 -1
  461. package/dist/headless/components/navigation/sidebar/sidebar.js +29 -28
  462. package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
  463. package/dist/headless/components/navigation/stepper/stepper.js +41 -30
  464. package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
  465. package/dist/headless/components/navigation/tabs/tab/tab.js +41 -39
  466. package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
  467. package/dist/headless/components/navigation/tabs/tabs.js +137 -86
  468. package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
  469. package/dist/headless/hooks/useDismissOnEscape.js +16 -0
  470. package/dist/headless/hooks/useDismissOnEscape.js.map +1 -0
  471. package/dist/headless/hooks/useFocusTrap.js +1 -0
  472. package/dist/headless/hooks/useFocusTrap.js.map +1 -1
  473. package/dist/headless/hooks/useHelperText.js +13 -0
  474. package/dist/headless/hooks/useHelperText.js.map +1 -0
  475. package/dist/headless/hooks/useSafeLayoutEffect.js +4 -2
  476. package/dist/headless/hooks/useSafeLayoutEffect.js.map +1 -1
  477. package/dist/headless/icons/catalog.js +78 -1
  478. package/dist/headless/icons/catalog.js.map +1 -1
  479. package/dist/headless/icons/index.js +596 -574
  480. package/dist/headless/icons/index.js.map +1 -1
  481. package/dist/headless/icons/svg/accountTree.js +9 -0
  482. package/dist/headless/icons/svg/accountTree.js.map +1 -0
  483. package/dist/headless/icons/svg/callSplit.js +9 -0
  484. package/dist/headless/icons/svg/callSplit.js.map +1 -0
  485. package/dist/headless/icons/svg/deviceHub.js +8 -0
  486. package/dist/headless/icons/svg/deviceHub.js.map +1 -0
  487. package/dist/headless/icons/svg/editNote.js +9 -0
  488. package/dist/headless/icons/svg/editNote.js.map +1 -0
  489. package/dist/headless/icons/svg/filterList.js +9 -0
  490. package/dist/headless/icons/svg/filterList.js.map +1 -0
  491. package/dist/headless/icons/svg/forkRight.js +8 -0
  492. package/dist/headless/icons/svg/forkRight.js.map +1 -0
  493. package/dist/headless/icons/svg/groups.js +9 -0
  494. package/dist/headless/icons/svg/groups.js.map +1 -0
  495. package/dist/headless/icons/svg/hub.js +8 -0
  496. package/dist/headless/icons/svg/hub.js.map +1 -0
  497. package/dist/headless/icons/svg/index.js +598 -576
  498. package/dist/headless/icons/svg/index.js.map +1 -1
  499. package/dist/headless/icons/svg/lan.js +9 -0
  500. package/dist/headless/icons/svg/lan.js.map +1 -0
  501. package/dist/headless/icons/svg/personOff.js +9 -0
  502. package/dist/headless/icons/svg/personOff.js.map +1 -0
  503. package/dist/headless/icons/svg/schema.js +9 -0
  504. package/dist/headless/icons/svg/schema.js.map +1 -0
  505. package/dist/headless/index.js +209 -183
  506. package/dist/headless/index.js.map +1 -1
  507. package/dist/headless/utils/controlProps.js +14 -0
  508. package/dist/headless/utils/controlProps.js.map +1 -0
  509. package/dist/headless/utils/overlayLayer.js +14 -7
  510. package/dist/headless/utils/overlayLayer.js.map +1 -1
  511. package/dist/headless/utils/ownClick.js +40 -0
  512. package/dist/headless/utils/ownClick.js.map +1 -0
  513. package/dist/headless/utils/readOnlyToggle.js +14 -0
  514. package/dist/headless/utils/readOnlyToggle.js.map +1 -0
  515. package/dist/hooks/useDismissOnEscape.d.ts +11 -0
  516. package/dist/hooks/useDismissOnEscape.js +16 -0
  517. package/dist/hooks/useDismissOnEscape.js.map +1 -0
  518. package/dist/hooks/useFocusTrap.d.ts +2 -0
  519. package/dist/hooks/useFocusTrap.js +1 -0
  520. package/dist/hooks/useFocusTrap.js.map +1 -1
  521. package/dist/hooks/useHelperText.d.ts +21 -0
  522. package/dist/hooks/useHelperText.js +13 -0
  523. package/dist/hooks/useHelperText.js.map +1 -0
  524. package/dist/hooks/useSafeLayoutEffect.d.ts +7 -1
  525. package/dist/hooks/useSafeLayoutEffect.js +4 -2
  526. package/dist/hooks/useSafeLayoutEffect.js.map +1 -1
  527. package/dist/icons/catalog.d.ts +1 -1
  528. package/dist/icons/catalog.js +78 -1
  529. package/dist/icons/catalog.js.map +1 -1
  530. package/dist/icons/index.js +596 -574
  531. package/dist/icons/index.js.map +1 -1
  532. package/dist/icons/svg/accountTree.d.ts +4 -0
  533. package/dist/icons/svg/accountTree.js +9 -0
  534. package/dist/icons/svg/accountTree.js.map +1 -0
  535. package/dist/icons/svg/callSplit.d.ts +4 -0
  536. package/dist/icons/svg/callSplit.js +9 -0
  537. package/dist/icons/svg/callSplit.js.map +1 -0
  538. package/dist/icons/svg/deviceHub.d.ts +4 -0
  539. package/dist/icons/svg/deviceHub.js +8 -0
  540. package/dist/icons/svg/deviceHub.js.map +1 -0
  541. package/dist/icons/svg/editNote.d.ts +4 -0
  542. package/dist/icons/svg/editNote.js +9 -0
  543. package/dist/icons/svg/editNote.js.map +1 -0
  544. package/dist/icons/svg/filterList.d.ts +4 -0
  545. package/dist/icons/svg/filterList.js +9 -0
  546. package/dist/icons/svg/filterList.js.map +1 -0
  547. package/dist/icons/svg/forkRight.d.ts +4 -0
  548. package/dist/icons/svg/forkRight.js +8 -0
  549. package/dist/icons/svg/forkRight.js.map +1 -0
  550. package/dist/icons/svg/groups.d.ts +4 -0
  551. package/dist/icons/svg/groups.js +9 -0
  552. package/dist/icons/svg/groups.js.map +1 -0
  553. package/dist/icons/svg/hub.d.ts +4 -0
  554. package/dist/icons/svg/hub.js +8 -0
  555. package/dist/icons/svg/hub.js.map +1 -0
  556. package/dist/icons/svg/index.d.ts +11 -0
  557. package/dist/icons/svg/index.js +598 -576
  558. package/dist/icons/svg/index.js.map +1 -1
  559. package/dist/icons/svg/lan.d.ts +4 -0
  560. package/dist/icons/svg/lan.js +9 -0
  561. package/dist/icons/svg/lan.js.map +1 -0
  562. package/dist/icons/svg/personOff.d.ts +4 -0
  563. package/dist/icons/svg/personOff.js +9 -0
  564. package/dist/icons/svg/personOff.js.map +1 -0
  565. package/dist/icons/svg/schema.d.ts +4 -0
  566. package/dist/icons/svg/schema.js +9 -0
  567. package/dist/icons/svg/schema.js.map +1 -0
  568. package/dist/icons.cjs +1 -1
  569. package/dist/icons.cjs.map +1 -1
  570. package/dist/index.cjs +2 -2
  571. package/dist/index.cjs.map +1 -1
  572. package/dist/index.d.ts +16 -0
  573. package/dist/index.js +209 -183
  574. package/dist/index.js.map +1 -1
  575. package/dist/utils/controlProps.d.ts +16 -0
  576. package/dist/utils/controlProps.js +14 -0
  577. package/dist/utils/controlProps.js.map +1 -0
  578. package/dist/utils/overlayLayer.d.ts +15 -3
  579. package/dist/utils/overlayLayer.js +14 -7
  580. package/dist/utils/overlayLayer.js.map +1 -1
  581. package/dist/utils/ownClick.d.ts +16 -0
  582. package/dist/utils/ownClick.js +40 -0
  583. package/dist/utils/ownClick.js.map +1 -0
  584. package/dist/utils/readOnlyToggle.d.ts +15 -0
  585. package/dist/utils/readOnlyToggle.js +14 -0
  586. package/dist/utils/readOnlyToggle.js.map +1 -0
  587. package/package.json +18 -7
  588. package/dist/react-table/components/base/icon/icon.js +0 -60
  589. package/dist/react-table/components/base/icon/icon.js.map +0 -1
  590. package/dist/react-table/components/base/icon/iconProvider.js +0 -15
  591. package/dist/react-table/components/base/icon/iconProvider.js.map +0 -1
  592. package/dist/react-table/components/dataDisplay/table/table.js +0 -37
  593. package/dist/react-table/components/dataDisplay/table/table.js.map +0 -1
  594. package/dist/react-table/components/dataDisplay/table/tableBody.js +0 -7
  595. package/dist/react-table/components/dataDisplay/table/tableBody.js.map +0 -1
  596. package/dist/react-table/components/dataDisplay/table/tableCell.js +0 -7
  597. package/dist/react-table/components/dataDisplay/table/tableCell.js.map +0 -1
  598. package/dist/react-table/components/dataDisplay/table/tableHead.js +0 -7
  599. package/dist/react-table/components/dataDisplay/table/tableHead.js.map +0 -1
  600. package/dist/react-table/components/dataDisplay/table/tableHeadCell.js +0 -48
  601. package/dist/react-table/components/dataDisplay/table/tableHeadCell.js.map +0 -1
  602. package/dist/react-table/components/dataDisplay/table/tablePagination/tablePagination.js +0 -40
  603. package/dist/react-table/components/dataDisplay/table/tablePagination/tablePagination.js.map +0 -1
  604. package/dist/react-table/components/dataDisplay/table/tableRow.js +0 -20
  605. package/dist/react-table/components/dataDisplay/table/tableRow.js.map +0 -1
  606. package/dist/react-table/components/feedBack/message/message.js +0 -31
  607. package/dist/react-table/components/feedBack/message/message.js.map +0 -1
  608. package/dist/react-table/components/feedBack/progressIndicator/progressIndicator.js +0 -51
  609. package/dist/react-table/components/feedBack/progressIndicator/progressIndicator.js.map +0 -1
  610. package/dist/react-table/components/inputs/textField/textField.js +0 -125
  611. package/dist/react-table/components/inputs/textField/textField.js.map +0 -1
  612. package/dist/react-table/components/inputs/textField/textFieldAdornment.js +0 -25
  613. package/dist/react-table/components/inputs/textField/textFieldAdornment.js.map +0 -1
  614. package/dist/react-table/components/inputs/textField/textFieldWrapper.js +0 -50
  615. package/dist/react-table/components/inputs/textField/textFieldWrapper.js.map +0 -1
  616. package/dist/react-table/components/inputs/textField/utils.js +0 -11
  617. package/dist/react-table/components/inputs/textField/utils.js.map +0 -1
  618. package/dist/react-table/connects/rt/table/draggableHeader.js.map +0 -1
  619. package/dist/react-table/connects/rt/table/headerCellRenderer.js +0 -14
  620. package/dist/react-table/connects/rt/table/headerCellRenderer.js.map +0 -1
  621. package/dist/react-table/connects/rt/table/table.js +0 -180
  622. package/dist/react-table/connects/rt/table/table.js.map +0 -1
  623. package/dist/react-table/connects/rt/table/utils.js.map +0 -1
  624. package/dist/react-table/hooks/useForkRef.js +0 -13
  625. package/dist/react-table/hooks/useForkRef.js.map +0 -1
  626. package/dist/react-table/hooks/useSafeLayoutEffect.js +0 -6
  627. package/dist/react-table/hooks/useSafeLayoutEffect.js.map +0 -1
  628. package/dist/react-table/icons/config.js +0 -9
  629. package/dist/react-table/icons/config.js.map +0 -1
  630. package/dist/react-table/icons/registry.js +0 -12
  631. package/dist/react-table/icons/registry.js.map +0 -1
  632. package/dist/react-table/icons/store.js +0 -10
  633. package/dist/react-table/icons/store.js.map +0 -1
  634. package/dist/react-table/utils/setRef.js +0 -7
  635. package/dist/react-table/utils/setRef.js.map +0 -1
  636. package/dist/storybook/storyPlay.d.ts +0 -28
  637. /package/dist/{react-table/connects → connects}/rt/table/draggableHeader.js +0 -0
  638. /package/dist/{react-table/connects → connects}/rt/table/utils.js +0 -0
  639. /package/dist/{react-table/react-table.js → react-table.js} +0 -0
  640. /package/dist/{react-table/react-table.js.map → react-table.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.js","sources":["../../../../src/components/layout/sheet/sheet.tsx"],"sourcesContent":["import React, { CSSProperties, forwardRef, PropsWithChildren, useCallback, useEffect, useRef, useState } from \"react\";\nimport cn from \"clsx\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { createPortal } from \"react-dom\";\nimport Button from \"../../inputs/button/button\";\nimport Icon from \"../../base/icon/icon\";\nimport { ClickAwayListener } from \"../../clickAwayListener\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { isTopOverlayLayer } from \"../../../utils/overlayLayer\";\n\nexport interface SheetProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n placement?: \"top\" | \"bottom\" | \"right\" | \"left\";\n isOpen: boolean;\n onClose?: () => void;\n variant?: \"default\" | \"modal\";\n withSizeToggle?: boolean;\n /** Hide built-in header actions; onClose still handles Esc and backdrop. */\n hideHeaderActions?: boolean;\n reverseHeaderActions?: boolean;\n size?: string;\n disableOutsideClick?: boolean;\n /** Close the sheet when Escape is pressed. */\n closeOnEsc?: boolean;\n /**\n * Allow the user to resize the sheet by dragging a grab handle with\n * touch or mouse (mobile bottom-sheet style). Off by default.\n */\n resizable?: boolean;\n /** Minimum size in px while resizing (default 80). */\n minSize?: number;\n /** Maximum size in px while resizing (default: viewport dimension). */\n maxSize?: number;\n /** Step in px for keyboard resizing (default 24). */\n resizeStep?: number;\n /** Accessible label for the resize handle. */\n resizeHandleAriaLabel?: string;\n /** Called with the new size in px while/after resizing. */\n onResize?: (size: number) => void;\n \"aria-label\"?: string;\n}\n\ntype Mode = \"small\" | \"expanded\" | null;\n\nexport const Sheet = forwardRef<HTMLDivElement, PropsWithChildren<SheetProps>>(function Sheet(\n {\n isOpen,\n onClose,\n variant = \"default\",\n children,\n placement = \"bottom\",\n disableOutsideClick,\n closeOnEsc = true,\n ...props\n },\n ref\n) {\n const [mode, setMode] = useState<Mode>(null);\n const nodeRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!isOpen || !closeOnEsc || !onClose) {\n return;\n }\n const onKeyDown = (event: KeyboardEvent) => {\n // Only the topmost overlay layer reacts to Escape.\n if (event.key === \"Escape\" && isTopOverlayLayer(nodeRef.current)) {\n onClose();\n }\n };\n document.addEventListener(\"keydown\", onKeyDown);\n\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [isOpen, closeOnEsc, onClose]);\n\n const handleSizeButton = () => {\n if (mode === \"expanded\") {\n setMode(\"small\");\n } else if (!mode) {\n setMode(\"expanded\");\n } else {\n setMode(null);\n }\n };\n\n const handleClose = () => {\n onClose?.();\n setMode(null);\n };\n\n return createPortal(\n <CSSTransition\n in={isOpen}\n timeout={70}\n mountOnEnter\n unmountOnExit\n classNames={{ enterDone: \"smwb-entered\" }}\n appear\n nodeRef={nodeRef}\n >\n {variant === \"default\" ? (\n <div\n className={cn(disableOutsideClick ? \"smwb-sheet__overlay\" : \"smwb-sheet__default\")}\n ref={nodeRef}\n data-smwb-overlay-layer=\"\"\n >\n <SheetBlock\n ref={ref}\n onClose={onClose}\n handleSizeButton={handleSizeButton}\n handleClose={handleClose}\n isOpen={isOpen}\n mode={mode}\n placement={placement}\n variant={variant}\n {...props}\n >\n {children}\n </SheetBlock>\n </div>\n ) : (\n <div\n className={cn(\"smwb-sheet__overlay\", \"smwb-dark\", `smwb-${placement}`, `smwb-sheet_${variant}`)}\n ref={nodeRef}\n data-smwb-overlay-layer=\"\"\n >\n <ClickAwayListener onClickAway={() => !disableOutsideClick && handleClose()}>\n <SheetBlock\n ref={ref}\n onClose={onClose}\n handleSizeButton={handleSizeButton}\n handleClose={handleClose}\n isOpen={isOpen}\n mode={mode}\n placement={placement}\n variant={variant}\n {...props}\n >\n {children}\n </SheetBlock>\n </ClickAwayListener>\n </div>\n )}\n </CSSTransition>,\n document.body\n );\n});\n\nexport default Sheet;\n\ninterface SheetBlockProps extends SheetProps {\n mode: Mode;\n handleSizeButton: () => void;\n handleClose: () => void;\n}\n\n/** Sheets anchored to a horizontal edge resize on the Y axis, vertical edges on X. */\nconst isVerticalAxis = (placement: SheetProps[\"placement\"]) => placement === \"bottom\" || placement === \"top\";\n\nconst SheetBlock = React.forwardRef(function SheetBlock(props: SheetBlockProps, ref: React.Ref<HTMLDivElement>) {\n const {\n isOpen,\n placement,\n className,\n mode,\n\n size = \"60%\",\n variant,\n onClose,\n withSizeToggle = true,\n hideHeaderActions = false,\n reverseHeaderActions = false,\n resizable = false,\n minSize = 80,\n maxSize,\n resizeStep = 24,\n resizeHandleAriaLabel = \"Resize sheet\",\n onResize,\n style,\n handleClose,\n handleSizeButton,\n children,\n ...rest\n } = props;\n const showActions = !hideHeaderActions && (!!onClose || withSizeToggle);\n const headerActionNodes: React.ReactNode[] = [];\n if (withSizeToggle) {\n headerActionNodes.push(\n <Button variant={\"outlined\"} size=\"small\" onClick={handleSizeButton} key=\"size\">\n <Icon name=\"open_in_full\" />\n </Button>\n );\n }\n if (onClose) {\n headerActionNodes.push(\n <Button variant={\"outlined\"} size=\"small\" onClick={handleClose} key=\"close\">\n <Icon name=\"close\" />\n </Button>\n );\n }\n if (reverseHeaderActions) {\n headerActionNodes.reverse();\n }\n const nodeRef = useRef<HTMLDivElement>(null);\n const rootRef = useRef<HTMLDivElement>(null);\n const forkRef = useForkRef(ref, nodeRef, rootRef);\n\n // Drag-to-resize state. `dragSize` (px) wins over the CSS size when set\n // (inline style beats the .smwb-expanded/.smwb-small rules).\n const [dragSize, setDragSize] = useState<number | null>(null);\n const vertical = isVerticalAxis(placement);\n\n const clamp = useCallback(\n (px: number) => {\n const viewport = vertical ? window.innerHeight : window.innerWidth;\n const max = maxSize ?? viewport;\n return Math.max(minSize, Math.min(max, px));\n },\n [vertical, maxSize, minSize]\n );\n\n const currentSizePx = useCallback(() => {\n const rect = rootRef.current?.getBoundingClientRect();\n if (!rect) {\n return minSize;\n }\n return vertical ? rect.height : rect.width;\n }, [vertical, minSize]);\n\n const applySize = useCallback(\n (px: number) => {\n const next = clamp(px);\n setDragSize(next);\n onResize?.(next);\n },\n [clamp, onResize]\n );\n\n const dragRef = useRef<{ start: number; size: number } | null>(null);\n\n const onPointerDown = useCallback(\n (event: React.PointerEvent<HTMLDivElement>) => {\n event.preventDefault();\n dragRef.current = {\n start: vertical ? event.clientY : event.clientX,\n size: currentSizePx(),\n };\n try {\n event.currentTarget.setPointerCapture?.(event.pointerId);\n } catch {\n /* pointer capture is best-effort (unsupported in some envs) */\n }\n },\n [vertical, currentSizePx]\n );\n\n const onPointerMove = useCallback(\n (event: React.PointerEvent<HTMLDivElement>) => {\n const drag = dragRef.current;\n if (!drag) {\n return;\n }\n const pos = vertical ? event.clientY : event.clientX;\n const delta = pos - drag.start;\n // Sign so dragging *away* from the anchored edge grows the sheet.\n const grow = placement === \"bottom\" || placement === \"right\" ? -delta : delta;\n applySize(drag.size + grow);\n },\n [vertical, placement, applySize]\n );\n\n const endDrag = useCallback((event: React.PointerEvent<HTMLDivElement>) => {\n dragRef.current = null;\n if (event.currentTarget.hasPointerCapture?.(event.pointerId)) {\n event.currentTarget.releasePointerCapture?.(event.pointerId);\n }\n }, []);\n\n const onHandleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n const base = dragSize ?? currentSizePx();\n const max = maxSize ?? (vertical ? window.innerHeight : window.innerWidth);\n // Key that should make the sheet *bigger*, per anchored edge.\n const incKey =\n placement === \"bottom\"\n ? \"ArrowUp\"\n : placement === \"top\"\n ? \"ArrowDown\"\n : placement === \"left\"\n ? \"ArrowRight\"\n : \"ArrowLeft\";\n const decKey =\n placement === \"bottom\"\n ? \"ArrowDown\"\n : placement === \"top\"\n ? \"ArrowUp\"\n : placement === \"left\"\n ? \"ArrowLeft\"\n : \"ArrowRight\";\n if (event.key === incKey) {\n event.preventDefault();\n applySize(base + resizeStep);\n } else if (event.key === decKey) {\n event.preventDefault();\n applySize(base - resizeStep);\n } else if (event.key === \"Home\") {\n event.preventDefault();\n applySize(minSize);\n } else if (event.key === \"End\") {\n event.preventDefault();\n applySize(max);\n }\n },\n [dragSize, currentSizePx, vertical, placement, applySize, resizeStep, minSize, maxSize]\n );\n\n React.useEffect(() => {\n if (!isOpen) {\n setDragSize(null);\n return;\n }\n\n rootRef.current?.focus();\n }, [isOpen]);\n\n // While a drag size is applied, suppress the sheet's 0.2s size\n // transition so the panel tracks the pointer in real time instead\n // of lagging 200ms behind every move.\n const sizeStyle: CSSProperties =\n resizable && dragSize !== null\n ? { ...(vertical ? { height: dragSize } : { width: dragSize }), transition: \"none\" }\n : {};\n\n return (\n <CSSTransition in={isOpen} timeout={120} appear classNames={{ enterDone: \"smwb-sheet_entered\" }} nodeRef={nodeRef}>\n <div\n ref={forkRef}\n data-testid=\"sheet\"\n tabIndex={-1}\n role=\"dialog\"\n aria-modal={variant === \"modal\" || undefined}\n {...rest}\n className={cn(\"smwb-sheet\", className, `smwb-sheet_${variant}`, `smwb-${placement}`, {\n \"smwb-expanded\": mode === \"expanded\",\n \"smwb-small\": mode === \"small\",\n \"smwb-sheet_resizable\": resizable,\n })}\n style={{ \"--sizeProp\": size, ...sizeStyle, ...style } as CSSProperties}\n >\n {resizable && (\n <div\n className=\"smwb-sheet__drag-handle\"\n data-testid=\"sheet-drag-handle\"\n role=\"separator\"\n tabIndex={0}\n aria-orientation={vertical ? \"horizontal\" : \"vertical\"}\n aria-label={resizeHandleAriaLabel}\n aria-valuemin={minSize}\n aria-valuemax={Math.round(maxSize ?? (vertical ? window.innerHeight : window.innerWidth))}\n aria-valuenow={Math.round(dragSize ?? currentSizePx())}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={endDrag}\n onPointerCancel={endDrag}\n onKeyDown={onHandleKeyDown}\n >\n <span className=\"smwb-sheet__drag-handle-bar\" />\n </div>\n )}\n {showActions && <div className=\"smwb-sheet__header\">{headerActionNodes}</div>}\n {isOpen && mode !== \"small\" && <div className=\"smwb-sheet__inner\">{children}</div>}\n </div>\n </CSSTransition>\n );\n});\n"],"names":["Sheet","forwardRef","isOpen","onClose","variant","children","placement","disableOutsideClick","closeOnEsc","props","ref","mode","setMode","useState","nodeRef","useRef","useEffect","onKeyDown","event","isTopOverlayLayer","handleSizeButton","handleClose","createPortal","jsx","CSSTransition","cn","SheetBlock","ClickAwayListener","isVerticalAxis","React","className","size","withSizeToggle","hideHeaderActions","reverseHeaderActions","resizable","minSize","maxSize","resizeStep","resizeHandleAriaLabel","onResize","style","rest","showActions","headerActionNodes","Button","Icon","rootRef","forkRef","useForkRef","dragSize","setDragSize","vertical","clamp","useCallback","px","viewport","max","currentSizePx","rect","_a","applySize","next","dragRef","onPointerDown","_b","onPointerMove","drag","delta","grow","endDrag","_d","_c","onHandleKeyDown","base","incKey","decKey","sizeStyle","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"sheet.js","sources":["../../../../src/components/layout/sheet/sheet.tsx"],"sourcesContent":["import React, { CSSProperties, forwardRef, PropsWithChildren, useCallback, useEffect, useRef, useState } from \"react\";\nimport cn from \"clsx\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { createPortal } from \"react-dom\";\nimport Button from \"../../inputs/button/button\";\nimport Icon from \"../../base/icon/icon\";\nimport { ClickAwayListener } from \"../../clickAwayListener\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { isTopOverlayLayer } from \"../../../utils/overlayLayer\";\n\nexport interface SheetProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n placement?: \"top\" | \"bottom\" | \"right\" | \"left\";\n isOpen: boolean;\n onClose?: () => void;\n variant?: \"default\" | \"modal\";\n withSizeToggle?: boolean;\n /** Hide built-in header actions; onClose still handles Esc and backdrop. */\n hideHeaderActions?: boolean;\n reverseHeaderActions?: boolean;\n size?: string;\n disableOutsideClick?: boolean;\n /** Close the sheet when Escape is pressed. */\n closeOnEsc?: boolean;\n /**\n * Allow the user to resize the sheet by dragging a grab handle with\n * touch or mouse (mobile bottom-sheet style). Off by default.\n */\n resizable?: boolean;\n /** Minimum size in px while resizing (default 80). */\n minSize?: number;\n /** Maximum size in px while resizing (default: viewport dimension). */\n maxSize?: number;\n /** Step in px for keyboard resizing (default 24). */\n resizeStep?: number;\n /** Accessible label for the resize handle. */\n resizeHandleAriaLabel?: string;\n /** Called with the new size in px while/after resizing. */\n onResize?: (size: number) => void;\n \"aria-label\"?: string;\n /** Test id of the sheet panel (the dialog); `sheet` unless given. */\n \"data-testid\"?: string;\n}\n\ntype Mode = \"small\" | \"expanded\" | null;\n\nexport const Sheet = forwardRef<HTMLDivElement, PropsWithChildren<SheetProps>>(function Sheet(\n {\n isOpen,\n onClose,\n variant = \"default\",\n children,\n placement = \"bottom\",\n disableOutsideClick,\n closeOnEsc = true,\n ...props\n },\n ref\n) {\n const [mode, setMode] = useState<Mode>(null);\n const nodeRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!isOpen || !closeOnEsc || !onClose) {\n return;\n }\n const onKeyDown = (event: KeyboardEvent) => {\n // Only the topmost overlay layer reacts to Escape, and not to one handled inside\n // it, e.g. by a menu closing on it.\n if (event.key === \"Escape\" && !event.defaultPrevented && isTopOverlayLayer(nodeRef.current)) {\n onClose();\n }\n };\n document.addEventListener(\"keydown\", onKeyDown);\n\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [isOpen, closeOnEsc, onClose]);\n\n const handleSizeButton = () => {\n if (mode === \"expanded\") {\n setMode(\"small\");\n } else if (!mode) {\n setMode(\"expanded\");\n } else {\n setMode(null);\n }\n };\n\n const handleClose = () => {\n onClose?.();\n setMode(null);\n };\n\n return createPortal(\n <CSSTransition\n in={isOpen}\n timeout={70}\n mountOnEnter\n unmountOnExit\n classNames={{ enterDone: \"smwb-entered\" }}\n appear\n nodeRef={nodeRef}\n >\n {variant === \"default\" ? (\n <div\n className={cn(disableOutsideClick ? \"smwb-sheet__overlay\" : \"smwb-sheet__default\")}\n ref={nodeRef}\n data-smwb-overlay-layer=\"\"\n >\n <SheetBlock\n ref={ref}\n onClose={onClose}\n handleSizeButton={handleSizeButton}\n handleClose={handleClose}\n isOpen={isOpen}\n mode={mode}\n placement={placement}\n variant={variant}\n {...props}\n >\n {children}\n </SheetBlock>\n </div>\n ) : (\n <div\n className={cn(\"smwb-sheet__overlay\", \"smwb-dark\", `smwb-${placement}`, `smwb-sheet_${variant}`)}\n ref={nodeRef}\n data-smwb-overlay-layer=\"\"\n >\n <ClickAwayListener onClickAway={() => !disableOutsideClick && handleClose()}>\n <SheetBlock\n ref={ref}\n onClose={onClose}\n handleSizeButton={handleSizeButton}\n handleClose={handleClose}\n isOpen={isOpen}\n mode={mode}\n placement={placement}\n variant={variant}\n {...props}\n >\n {children}\n </SheetBlock>\n </ClickAwayListener>\n </div>\n )}\n </CSSTransition>,\n document.body\n );\n});\n\nexport default Sheet;\n\ninterface SheetBlockProps extends SheetProps {\n mode: Mode;\n handleSizeButton: () => void;\n handleClose: () => void;\n}\n\n/** Sheets anchored to a horizontal edge resize on the Y axis, vertical edges on X. */\nconst isVerticalAxis = (placement: SheetProps[\"placement\"]) => placement === \"bottom\" || placement === \"top\";\n\nconst SheetBlock = React.forwardRef(function SheetBlock(props: SheetBlockProps, ref: React.Ref<HTMLDivElement>) {\n const {\n isOpen,\n placement,\n className,\n mode,\n\n size = \"60%\",\n variant,\n onClose,\n withSizeToggle = true,\n hideHeaderActions = false,\n reverseHeaderActions = false,\n resizable = false,\n minSize = 80,\n maxSize,\n resizeStep = 24,\n resizeHandleAriaLabel = \"Resize sheet\",\n onResize,\n style,\n handleClose,\n handleSizeButton,\n children,\n \"data-testid\": dataTestId = \"sheet\",\n ...rest\n } = props;\n const showActions = !hideHeaderActions && (!!onClose || withSizeToggle);\n const headerActionNodes: React.ReactNode[] = [];\n if (withSizeToggle) {\n headerActionNodes.push(\n <Button variant={\"outlined\"} size=\"small\" onClick={handleSizeButton} key=\"size\">\n <Icon name=\"open_in_full\" />\n </Button>\n );\n }\n if (onClose) {\n headerActionNodes.push(\n <Button variant={\"outlined\"} size=\"small\" onClick={handleClose} key=\"close\">\n <Icon name=\"close\" />\n </Button>\n );\n }\n if (reverseHeaderActions) {\n headerActionNodes.reverse();\n }\n const nodeRef = useRef<HTMLDivElement>(null);\n const rootRef = useRef<HTMLDivElement>(null);\n const forkRef = useForkRef(ref, nodeRef, rootRef);\n\n // Drag-to-resize state. `dragSize` (px) wins over the CSS size when set\n // (inline style beats the .smwb-expanded/.smwb-small rules).\n const [dragSize, setDragSize] = useState<number | null>(null);\n const vertical = isVerticalAxis(placement);\n\n const clamp = useCallback(\n (px: number) => {\n const viewport = vertical ? window.innerHeight : window.innerWidth;\n const max = maxSize ?? viewport;\n return Math.max(minSize, Math.min(max, px));\n },\n [vertical, maxSize, minSize]\n );\n\n const currentSizePx = useCallback(() => {\n const rect = rootRef.current?.getBoundingClientRect();\n if (!rect) {\n return minSize;\n }\n return vertical ? rect.height : rect.width;\n }, [vertical, minSize]);\n\n const applySize = useCallback(\n (px: number) => {\n const next = clamp(px);\n setDragSize(next);\n onResize?.(next);\n },\n [clamp, onResize]\n );\n\n const dragRef = useRef<{ start: number; size: number } | null>(null);\n\n const onPointerDown = useCallback(\n (event: React.PointerEvent<HTMLDivElement>) => {\n event.preventDefault();\n dragRef.current = {\n start: vertical ? event.clientY : event.clientX,\n size: currentSizePx(),\n };\n try {\n event.currentTarget.setPointerCapture?.(event.pointerId);\n } catch {\n /* pointer capture is best-effort (unsupported in some envs) */\n }\n },\n [vertical, currentSizePx]\n );\n\n const onPointerMove = useCallback(\n (event: React.PointerEvent<HTMLDivElement>) => {\n const drag = dragRef.current;\n if (!drag) {\n return;\n }\n const pos = vertical ? event.clientY : event.clientX;\n const delta = pos - drag.start;\n // Sign so dragging *away* from the anchored edge grows the sheet.\n const grow = placement === \"bottom\" || placement === \"right\" ? -delta : delta;\n applySize(drag.size + grow);\n },\n [vertical, placement, applySize]\n );\n\n const endDrag = useCallback((event: React.PointerEvent<HTMLDivElement>) => {\n dragRef.current = null;\n if (event.currentTarget.hasPointerCapture?.(event.pointerId)) {\n event.currentTarget.releasePointerCapture?.(event.pointerId);\n }\n }, []);\n\n const onHandleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n const base = dragSize ?? currentSizePx();\n const max = maxSize ?? (vertical ? window.innerHeight : window.innerWidth);\n // Key that should make the sheet *bigger*, per anchored edge.\n const incKey =\n placement === \"bottom\"\n ? \"ArrowUp\"\n : placement === \"top\"\n ? \"ArrowDown\"\n : placement === \"left\"\n ? \"ArrowRight\"\n : \"ArrowLeft\";\n const decKey =\n placement === \"bottom\"\n ? \"ArrowDown\"\n : placement === \"top\"\n ? \"ArrowUp\"\n : placement === \"left\"\n ? \"ArrowLeft\"\n : \"ArrowRight\";\n if (event.key === incKey) {\n event.preventDefault();\n applySize(base + resizeStep);\n } else if (event.key === decKey) {\n event.preventDefault();\n applySize(base - resizeStep);\n } else if (event.key === \"Home\") {\n event.preventDefault();\n applySize(minSize);\n } else if (event.key === \"End\") {\n event.preventDefault();\n applySize(max);\n }\n },\n [dragSize, currentSizePx, vertical, placement, applySize, resizeStep, minSize, maxSize]\n );\n\n React.useEffect(() => {\n if (!isOpen) {\n setDragSize(null);\n return;\n }\n\n rootRef.current?.focus();\n }, [isOpen]);\n\n // While a drag size is applied, suppress the sheet's 0.2s size\n // transition so the panel tracks the pointer in real time instead\n // of lagging 200ms behind every move.\n const sizeStyle: CSSProperties =\n resizable && dragSize !== null\n ? { ...(vertical ? { height: dragSize } : { width: dragSize }), transition: \"none\" }\n : {};\n\n return (\n <CSSTransition in={isOpen} timeout={120} appear classNames={{ enterDone: \"smwb-sheet_entered\" }} nodeRef={nodeRef}>\n <div\n ref={forkRef}\n data-testid={dataTestId}\n {...rest}\n // A sheet is a dialog, focused as a whole when it opens: its role and\n // tabIndex win over the caller's, and so does aria-modal on a modal\n // sheet. On another, the caller's aria-modal stays.\n tabIndex={-1}\n role=\"dialog\"\n aria-modal={variant === \"modal\" || rest[\"aria-modal\"]}\n className={cn(\"smwb-sheet\", className, `smwb-sheet_${variant}`, `smwb-${placement}`, {\n \"smwb-expanded\": mode === \"expanded\",\n \"smwb-small\": mode === \"small\",\n \"smwb-sheet_resizable\": resizable,\n })}\n style={{ \"--sizeProp\": size, ...sizeStyle, ...style } as CSSProperties}\n >\n {resizable && (\n <div\n className=\"smwb-sheet__drag-handle\"\n data-testid=\"sheet-drag-handle\"\n role=\"separator\"\n tabIndex={0}\n aria-orientation={vertical ? \"horizontal\" : \"vertical\"}\n aria-label={resizeHandleAriaLabel}\n aria-valuemin={minSize}\n aria-valuemax={Math.round(maxSize ?? (vertical ? window.innerHeight : window.innerWidth))}\n aria-valuenow={Math.round(dragSize ?? currentSizePx())}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={endDrag}\n onPointerCancel={endDrag}\n onKeyDown={onHandleKeyDown}\n >\n <span className=\"smwb-sheet__drag-handle-bar\" />\n </div>\n )}\n {showActions && <div className=\"smwb-sheet__header\">{headerActionNodes}</div>}\n {isOpen && mode !== \"small\" && <div className=\"smwb-sheet__inner\">{children}</div>}\n </div>\n </CSSTransition>\n );\n});\n"],"names":["Sheet","forwardRef","isOpen","onClose","variant","children","placement","disableOutsideClick","closeOnEsc","props","ref","mode","setMode","useState","nodeRef","useRef","useEffect","onKeyDown","event","isTopOverlayLayer","handleSizeButton","handleClose","createPortal","jsx","CSSTransition","cn","SheetBlock","ClickAwayListener","isVerticalAxis","React","className","size","withSizeToggle","hideHeaderActions","reverseHeaderActions","resizable","minSize","maxSize","resizeStep","resizeHandleAriaLabel","onResize","style","dataTestId","rest","showActions","headerActionNodes","Button","Icon","rootRef","forkRef","useForkRef","dragSize","setDragSize","vertical","clamp","useCallback","px","viewport","max","currentSizePx","rect","_a","applySize","next","dragRef","onPointerDown","_b","onPointerMove","drag","delta","grow","endDrag","_d","_c","onHandleKeyDown","base","incKey","decKey","sizeStyle","jsxs"],"mappings":"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"}
@@ -10,6 +10,8 @@ export interface StackProps extends HTMLAttributes<HTMLDivElement> {
10
10
  /** Optional element rendered between each child. */
11
11
  divider?: ReactNode;
12
12
  className?: string;
13
+ /** Test id of the root `<div>`; `stack` unless given. */
14
+ "data-testid"?: string;
13
15
  }
14
16
  export declare const Stack: React.ForwardRefExoticComponent<StackProps & {
15
17
  children?: ReactNode | undefined;
@@ -1,34 +1,47 @@
1
- import { jsx as s, jsxs as k } from "react/jsx-runtime";
2
- import '../../../assets/styles/less/components/stack/stack.entry.css';/* empty css */
3
- import y, { Children as w, isValidElement as b, Fragment as h } from "react";
4
- import j from "clsx";
5
- const n = (t) => t === "start" || t === "end" ? `flex-${t}` : t, v = (t) => typeof t == "number" ? `calc(var(--smui-spacing-unit, 4px) * ${t})` : t === "none" ? "0" : `var(--smui-space-${t})`, R = y.forwardRef(function({ direction: i = "column", spacing: l = "md", align: c, justify: o, wrap: m, divider: e, className: f, style: p, children: a, ...d }, u) {
6
- const x = w.toArray(a).filter(b);
1
+ import { jsx as s, jsxs as y } from "react/jsx-runtime";
2
+ import '../../../assets/styles/less/components/stack/stack.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
4
+ import w, { Children as b, isValidElement as h, Fragment as j } from "react";
5
+ import v from "clsx";
6
+ const i = (t) => t === "start" || t === "end" ? `flex-${t}` : t, $ = (t) => typeof t == "number" ? `calc(var(--smui-spacing-unit, 4px) * ${t})` : t === "none" ? "0" : `var(--smui-space-${t})`, _ = w.forwardRef(function({
7
+ direction: n = "column",
8
+ spacing: l = "md",
9
+ align: o,
10
+ justify: c,
11
+ wrap: m,
12
+ divider: a,
13
+ className: d,
14
+ style: p,
15
+ children: e,
16
+ "data-testid": f = "stack",
17
+ ...u
18
+ }, x) {
19
+ const g = b.toArray(e).filter(h);
7
20
  return /* @__PURE__ */ s(
8
21
  "div",
9
22
  {
10
- ref: u,
11
- "data-testid": "stack",
12
- className: j("smwb-stack", f),
23
+ ref: x,
24
+ "data-testid": f,
25
+ className: v("smwb-stack", d),
13
26
  style: {
14
27
  display: "flex",
15
- flexDirection: i,
28
+ flexDirection: n,
16
29
  flexWrap: m ? "wrap" : void 0,
17
- alignItems: n(c),
18
- justifyContent: n(o),
19
- gap: v(l),
30
+ alignItems: i(o),
31
+ justifyContent: i(c),
32
+ gap: $(l),
20
33
  ...p
21
34
  },
22
- ...d,
23
- children: e ? x.map((g, r) => /* @__PURE__ */ k(h, { children: [
24
- r > 0 ? /* @__PURE__ */ s("div", { className: "smwb-stack__divider", children: e }) : null,
25
- g
26
- ] }, r)) : a
35
+ ...u,
36
+ children: a ? g.map((k, r) => /* @__PURE__ */ y(j, { children: [
37
+ r > 0 ? /* @__PURE__ */ s("div", { className: "smwb-stack__divider", children: a }) : null,
38
+ k
39
+ ] }, r)) : e
27
40
  }
28
41
  );
29
42
  });
30
43
  export {
31
- R as Stack,
32
- R as default
44
+ _ as Stack,
45
+ _ as default
33
46
  };
34
47
  //# sourceMappingURL=stack.js.map
@@ -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":";;;;AAkBA,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,48 +1,50 @@
1
1
  import { jsx as a, jsxs as m } from "react/jsx-runtime";
2
- import '../../../assets/styles/less/components/appBar/appBar.entry.css';/* empty css */
3
- import { forwardRef as w } from "react";
4
- import i from "clsx";
5
- const x = w(function({
6
- className: t,
2
+ import '../../../assets/styles/less/components/appBar/appBar.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
4
+ import { forwardRef as h } from "react";
5
+ import t from "clsx";
6
+ const A = h(function({
7
+ className: i,
7
8
  children: s,
8
9
  dense: d,
9
10
  position: b = "static",
10
11
  placement: r = "top",
11
- leftContent: l,
12
- midContent: o,
12
+ leftContent: o,
13
+ midContent: l,
13
14
  midContentAlign: c = "middle",
14
15
  rightContent: n,
15
16
  title: p,
16
17
  color: e = "default",
17
- ..._
18
- }, f) {
18
+ "data-testid": _ = "app-bar",
19
+ ...f
20
+ }, w) {
19
21
  return /* @__PURE__ */ a(
20
22
  r === "top" ? "header" : "footer",
21
23
  {
22
- ref: f,
23
- className: i(
24
+ ref: w,
25
+ className: t(
24
26
  "smwb-appbar",
25
- t,
27
+ i,
26
28
  `smwb-${b}`,
27
29
  `smwb-${r}`,
28
30
  { "smwb-dense": d },
29
31
  e !== "default" && `smwb-appbar_color-${e}`
30
32
  ),
31
- "data-testid": "app-bar",
32
- ..._,
33
+ "data-testid": _,
34
+ ...f,
33
35
  children: s || /* @__PURE__ */ m("div", { className: "smwb-appbar__inner", children: [
34
36
  /* @__PURE__ */ m("div", { className: "smwb-appbar__left", children: [
35
37
  p && /* @__PURE__ */ a("div", { className: "smwb-appbar__left__title", children: p }),
36
- l
38
+ o
37
39
  ] }),
38
- /* @__PURE__ */ a("div", { className: i("smwb-appbar__mid", `smwb-${c}`), children: o }),
40
+ /* @__PURE__ */ a("div", { className: t("smwb-appbar__mid", `smwb-${c}`), children: l }),
39
41
  /* @__PURE__ */ a("div", { className: "smwb-appbar__right", children: n })
40
42
  ] })
41
43
  }
42
44
  );
43
45
  });
44
46
  export {
45
- x as AppBar,
46
- x as default
47
+ A as AppBar,
48
+ A as default
47
49
  };
48
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":";;;;AAqBO,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,106 +1,111 @@
1
- import { jsxs as u, jsx as t } from "react/jsx-runtime";
2
- import '../../../assets/styles/less/components/bottomBar/bottomBar.entry.css';/* empty css */
3
- import F, { forwardRef as E, useState as O, useMemo as T } from "react";
4
- import S from "clsx";
5
- import { Icon as G } from "../../base/icon/icon.js";
6
- import { Ripple as H } from "../../base/ripple/ripple.js";
7
- import { Menu as J } from "../menu/menu.js";
8
- import { MenuItem as K } from "../menu/menuItem.js";
9
- import { MenuItemIcon as L } from "../menu/menuItemIcon.js";
10
- import { MenuItemText as Q } from "../menu/menuItemText.js";
11
- const te = E(function({
12
- className: b,
1
+ import { jsxs as b, jsx as t } from "react/jsx-runtime";
2
+ import '../../../assets/styles/less/components/bottomBar/bottomBar.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
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,
13
14
  menuItems: r = [],
14
15
  visibleCount: i = 4,
15
16
  activeItem: m,
16
- defaultActiveItem: v = null,
17
+ defaultActiveItem: d = null,
17
18
  onActiveItemChange: s,
18
- overflowMenuAriaLabel: d = "More navigation",
19
- ...h
20
- }, f) {
21
- 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) => {
22
- p || I(e), s == null || s(e);
23
- }, 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) => {
24
26
  M(e), o == null || o(a);
25
- }, V = () => {
27
+ }, q = () => {
26
28
  R((e) => !e);
27
29
  }, N = () => {
28
30
  R(!1);
29
31
  };
30
- return /* @__PURE__ */ u("nav", { ref: f, className: S("smwb-bottom-bar", b), role: "navigation", ...h, children: [
31
- /* @__PURE__ */ u("div", { className: "smwb-bottom-bar__nav", role: "menubar", children: [
32
- k.map((e, o) => /* @__PURE__ */ t(
33
- A,
34
- {
35
- as: e.as,
36
- isActive: n === o,
37
- onClick: C(o, e.onClick),
38
- icon: e.icon,
39
- title: e.title,
40
- href: e.href
41
- },
42
- o
43
- )),
44
- _ && /* @__PURE__ */ t(
45
- A,
46
- {
47
- ref: g,
48
- isActive: z,
49
- onClick: V,
50
- icon: /* @__PURE__ */ t(G, { name: "menu", size: 24 }),
51
- "aria-label": d,
52
- "aria-haspopup": "menu",
53
- "aria-expanded": c
54
- }
55
- )
56
- ] }),
57
- _ && /* @__PURE__ */ t(J, { isOpen: c, onClose: N, anchorElement: y, placement: "top", dense: !0, children: B.map((e, o) => {
58
- const a = l + o;
59
- return /* @__PURE__ */ u(
60
- K,
61
- {
62
- selected: n === a,
63
- href: e.href,
64
- onClick: (q) => {
65
- var x;
66
- 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
67
45
  },
68
- children: [
69
- e.icon ? /* @__PURE__ */ t(L, { children: e.icon }) : null,
70
- /* @__PURE__ */ t(Q, { inset: !e.icon, children: e.title })
71
- ]
72
- },
73
- a
74
- );
75
- }) })
76
- ] });
77
- }), A = E(function({ isActive: b, icon: r, title: i, as: m = "div", href: v, onMouseDown: s, ...d }, h) {
78
- 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) => {
79
84
  s == null || s(n);
80
85
  }, w = (n) => {
81
86
  var c;
82
- (c = f.current) == null || c.onRipple(n);
87
+ (c = p.current) == null || c.onRipple(n);
83
88
  };
84
- return /* @__PURE__ */ u(
89
+ return /* @__PURE__ */ b(
85
90
  m,
86
91
  {
87
- ref: h,
88
- href: v,
92
+ ref: f,
93
+ href: d,
89
94
  role: "menuitem",
90
- className: S("smwb-bottom-bar__item", { "smwb-bottom-bar__item_active": b }),
91
- onMouseDown: p,
95
+ className: j("smwb-bottom-bar__item", { "smwb-bottom-bar__item_active": v }),
96
+ onMouseDown: u,
92
97
  onPointerDown: w,
93
- ...d,
98
+ ...h,
94
99
  children: [
95
100
  r && /* @__PURE__ */ t("span", { className: "smwb-bottom-bar__item-icon", children: r }),
96
101
  i ? /* @__PURE__ */ t("span", { className: "smwb-bottom-bar__item-title", children: i }) : null,
97
- /* @__PURE__ */ t(H, { actionRef: f })
102
+ /* @__PURE__ */ t(J, { actionRef: p })
98
103
  ]
99
104
  }
100
105
  );
101
106
  });
102
107
  export {
103
- te as BottomBar,
104
- te as default
108
+ re as BottomBar,
109
+ re as default
105
110
  };
106
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;