@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":"chipGroup.js","sources":["../../../../src/components/dataDisplay/chipGroup/chipGroup.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"clsx\";\nimport { Chip, type ChipColor } from \"../chip\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n icon?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface ChipGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n options: ChipGroupOption[];\n /** Selected value (single) or values (when `multiple`). */\n value?: string | string[];\n /** Allow more than one selected chip (value becomes a string[]). */\n multiple?: boolean;\n onChange?: (value: string | string[]) => void;\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n disabled?: boolean;\n}\n\n/**\n * A multi/single-select toggle group built on `Chip` — the \"chip as a toggle\"\n * loop (selected → filled, else outlined; `role=group`) apps re-hand-roll for\n * filters / segmented controls. Pass an `options` array and a controlled\n * `value`; `onChange` returns the next value (string, or string[] when multiple).\n */\nexport function ChipGroup({\n options,\n value,\n multiple,\n onChange,\n size = \"medium\",\n color = \"primary\",\n disabled,\n className,\n ...rest\n}: ChipGroupProps): React.ReactElement {\n const selectedValues = (): string[] => {\n if (value == null) return [];\n return Array.isArray(value) ? value : [value];\n };\n const isSelected = (option: string): boolean => selectedValues().includes(option);\n\n const toggle = (option: string): void => {\n if (multiple) {\n const current = selectedValues();\n const next = current.includes(option) ? current.filter((v) => v !== option) : [...current, option];\n onChange?.(next);\n } else {\n onChange?.(option);\n }\n };\n\n return (\n <div {...rest} role=\"group\" className={cn(\"smwb-chip-group\", className)}>\n {options.map((option) => (\n <Chip\n key={option.value}\n label={option.label}\n icon={option.icon}\n size={size}\n color={color}\n selected={isSelected(option.value)}\n variant={isSelected(option.value) ? \"filled\" : \"outlined\"}\n disabled={!!(disabled || option.disabled)}\n onClick={() => toggle(option.value)}\n />\n ))}\n </div>\n );\n}\n\nexport default ChipGroup;\n"],"names":["ChipGroup","options","value","multiple","onChange","size","color","disabled","className","rest","selectedValues","isSelected","option","toggle","current","next","v","jsx","cn","Chip"],"mappings":";;;;AA8BO,SAASA,EAAU;AAAA,EACxB,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,GAAuC;AACrC,QAAMC,IAAiB,MACjBR,KAAS,OAAa,CAAA,IACnB,MAAM,QAAQA,CAAK,IAAIA,IAAQ,CAACA,CAAK,GAExCS,IAAa,CAACC,MAA4BF,EAAA,EAAiB,SAASE,CAAM,GAE1EC,IAAS,CAACD,MAAyB;AACvC,QAAIT,GAAU;AACZ,YAAMW,IAAUJ,EAAA,GACVK,IAAOD,EAAQ,SAASF,CAAM,IAAIE,EAAQ,OAAO,CAACE,MAAMA,MAAMJ,CAAM,IAAI,CAAC,GAAGE,GAASF,CAAM;AACjG,MAAAR,KAAA,QAAAA,EAAWW;AAAA,IACb;AACE,MAAAX,KAAA,QAAAA,EAAWQ;AAAA,EAEf;AAEA,SACE,gBAAAK,EAAC,OAAA,EAAK,GAAGR,GAAM,MAAK,SAAQ,WAAWS,EAAG,mBAAmBV,CAAS,GACnE,UAAAP,EAAQ,IAAI,CAACW,MACZ,gBAAAK;AAAA,IAACE;AAAA,IAAA;AAAA,MAEC,OAAOP,EAAO;AAAA,MACd,MAAMA,EAAO;AAAA,MACb,MAAAP;AAAA,MACA,OAAAC;AAAA,MACA,UAAUK,EAAWC,EAAO,KAAK;AAAA,MACjC,SAASD,EAAWC,EAAO,KAAK,IAAI,WAAW;AAAA,MAC/C,UAAU,CAAC,EAAEL,KAAYK,EAAO;AAAA,MAChC,SAAS,MAAMC,EAAOD,EAAO,KAAK;AAAA,IAAA;AAAA,IAR7BA,EAAO;AAAA,EAAA,CAUf,GACH;AAEJ;"}
1
+ {"version":3,"file":"chipGroup.js","sources":["../../../../src/components/dataDisplay/chipGroup/chipGroup.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"clsx\";\nimport { Chip, type ChipColor } from \"../chip\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n icon?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface ChipGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n options: ChipGroupOption[];\n /** Selected value (single) or values (when `multiple`). */\n value?: string | string[];\n /** Allow more than one selected chip (value becomes a string[]). */\n multiple?: boolean;\n onChange?: (value: string | string[]) => void;\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n disabled?: boolean;\n}\n\n/**\n * A multi/single-select toggle group built on `Chip` — the \"chip as a toggle\"\n * loop (selected → filled, else outlined; `role=group`) apps re-hand-roll for\n * filters / segmented controls. Pass an `options` array and a controlled\n * `value`; `onChange` returns the next value (string, or string[] when multiple).\n */\nexport function ChipGroup({\n options,\n value,\n multiple,\n onChange,\n size = \"medium\",\n color = \"primary\",\n disabled,\n className,\n ...rest\n}: ChipGroupProps): React.ReactElement {\n const selectedValues = (): string[] => {\n if (value == null) return [];\n return Array.isArray(value) ? value : [value];\n };\n const isSelected = (option: string): boolean => selectedValues().includes(option);\n\n const toggle = (option: string): void => {\n if (multiple) {\n const current = selectedValues();\n const next = current.includes(option) ? current.filter((v) => v !== option) : [...current, option];\n onChange?.(next);\n } else {\n onChange?.(option);\n }\n };\n\n return (\n // role=\"group\" is a default: the caller's own wins, and an explicit undefined keeps it.\n <div {...rest} role={rest.role ?? \"group\"} className={cn(\"smwb-chip-group\", className)}>\n {options.map((option) => (\n <Chip\n key={option.value}\n label={option.label}\n icon={option.icon}\n size={size}\n color={color}\n selected={isSelected(option.value)}\n variant={isSelected(option.value) ? \"filled\" : \"outlined\"}\n disabled={!!(disabled || option.disabled)}\n onClick={() => toggle(option.value)}\n />\n ))}\n </div>\n );\n}\n\nexport default ChipGroup;\n"],"names":["ChipGroup","options","value","multiple","onChange","size","color","disabled","className","rest","selectedValues","isSelected","option","toggle","current","next","v","_a","cn","jsx","Chip"],"mappings":";;;;;AA+BO,SAASA,EAAU;AAAA,EACxB,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,GAAuC;;AACrC,QAAMC,IAAiB,MACjBR,KAAS,OAAa,CAAA,IACnB,MAAM,QAAQA,CAAK,IAAIA,IAAQ,CAACA,CAAK,GAExCS,IAAa,CAACC,MAA4BF,EAAA,EAAiB,SAASE,CAAM,GAE1EC,IAAS,CAACD,MAAyB;AACvC,QAAIT,GAAU;AACZ,YAAMW,IAAUJ,EAAA,GACVK,IAAOD,EAAQ,SAASF,CAAM,IAAIE,EAAQ,OAAO,CAACE,MAAMA,MAAMJ,CAAM,IAAI,CAAC,GAAGE,GAASF,CAAM;AACjG,MAAAR,KAAA,QAAAA,EAAWW;AAAA,IACb;AACE,MAAAX,KAAA,QAAAA,EAAWQ;AAAA,EAEf;AAEA;AAAA;AAAA,sBAEG,OAAA,EAAK,GAAGH,GAAM,OAAMQ,IAAAR,EAAK,SAAL,OAAAQ,IAAa,SAAS,WAAWC,EAAG,mBAAmBV,CAAS,GAClF,UAAAP,EAAQ,IAAI,CAACW,MACZ,gBAAAO;AAAA,MAACC;AAAA,MAAA;AAAA,QAEC,OAAOR,EAAO;AAAA,QACd,MAAMA,EAAO;AAAA,QACb,MAAAP;AAAA,QACA,OAAAC;AAAA,QACA,UAAUK,EAAWC,EAAO,KAAK;AAAA,QACjC,SAASD,EAAWC,EAAO,KAAK,IAAI,WAAW;AAAA,QAC/C,UAAU,CAAC,EAAEL,KAAYK,EAAO;AAAA,QAChC,SAAS,MAAMC,EAAOD,EAAO,KAAK;AAAA,MAAA;AAAA,MAR7BA,EAAO;AAAA,IAAA,CAUf,EAAA,CACH;AAAA;AAEJ;"}
@@ -0,0 +1,45 @@
1
+ import React, { HTMLAttributes, ReactNode } from "react";
2
+ export interface DescriptionListEntry {
3
+ term: ReactNode;
4
+ description: ReactNode;
5
+ /** React key; the index is used without it. */
6
+ key?: React.Key;
7
+ }
8
+ /**
9
+ * `auto`: the term beside its description while the list is at least 420px
10
+ * wide, above it when narrower (a container query on the list itself). `row`
11
+ * and `stacked` fix one layout.
12
+ */
13
+ export type DescriptionListLayout = "auto" | "row" | "stacked";
14
+ export interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {
15
+ className?: string;
16
+ /** The pairs as data; `DescriptionItem` children work too, and come after them. */
17
+ items?: DescriptionListEntry[];
18
+ /**
19
+ * "auto" (default): each term beside its value while the list is at least
20
+ * 420px wide, above it when narrower — the list's own width decides. So its
21
+ * content does not widen it: where the parent takes its width from its
22
+ * content (a flex item that does not grow, a popover, a table cell) the list
23
+ * has no width; give it one there, or use "row" / "stacked", which fix one
24
+ * layout and take their width from their content.
25
+ */
26
+ layout?: DescriptionListLayout;
27
+ /** Width of the term column in the row layout: px or any CSS track size. 30% of the list, at least 6rem, by default. */
28
+ termWidth?: number | string;
29
+ /** Tighter spacing, for side panels. */
30
+ dense?: boolean;
31
+ }
32
+ export interface DescriptionItemProps extends HTMLAttributes<HTMLDivElement> {
33
+ className?: string;
34
+ /** The field's name. */
35
+ term: ReactNode;
36
+ }
37
+ /** One pair: the term and, as children, its description. */
38
+ export declare const DescriptionItem: React.ForwardRefExoticComponent<DescriptionItemProps & {
39
+ children?: ReactNode | undefined;
40
+ } & React.RefAttributes<HTMLDivElement>>;
41
+ /** Field–value pairs (a `<dl>`): side by side, stacking on a narrow container. */
42
+ export declare const DescriptionList: React.ForwardRefExoticComponent<DescriptionListProps & {
43
+ children?: ReactNode | undefined;
44
+ } & React.RefAttributes<HTMLDListElement>>;
45
+ export default DescriptionList;
@@ -0,0 +1,43 @@
1
+ import { jsxs as p, jsx as n } from "react/jsx-runtime";
2
+ import '../../../assets/styles/less/components/descriptionList/descriptionList.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
4
+ import m from "react";
5
+ import l from "clsx";
6
+ const x = m.forwardRef(
7
+ function({ className: t, term: r, children: i, ...e }, s) {
8
+ return /* @__PURE__ */ p("div", { ...e, ref: s, className: l("smwb-description-list__item", t), children: [
9
+ /* @__PURE__ */ n("dt", { className: "smwb-description-list__term", children: r }),
10
+ /* @__PURE__ */ n("dd", { className: "smwb-description-list__details", children: i })
11
+ ] });
12
+ }
13
+ ), v = m.forwardRef(
14
+ function({ className: t, style: r, items: i, layout: e = "auto", termWidth: s, dense: f, children: w, ...b }, _) {
15
+ const c = typeof s == "number" ? `${s}px` : s;
16
+ return /* @__PURE__ */ p(
17
+ "dl",
18
+ {
19
+ ...b,
20
+ ref: _,
21
+ className: l(
22
+ "smwb-description-list",
23
+ `smwb-description-list_${e}`,
24
+ { "smwb-description-list_dense": f },
25
+ t
26
+ ),
27
+ style: c === void 0 ? r : { ...r, "--smwb-description-term": c },
28
+ children: [
29
+ i == null ? void 0 : i.map((o, u) => {
30
+ var d;
31
+ return /* @__PURE__ */ n(x, { term: o.term, children: o.description }, (d = o.key) != null ? d : u);
32
+ }),
33
+ w
34
+ ]
35
+ }
36
+ );
37
+ }
38
+ );
39
+ export {
40
+ x as DescriptionItem,
41
+ v as DescriptionList
42
+ };
43
+ //# sourceMappingURL=descriptionList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptionList.js","sources":["../../../../src/components/dataDisplay/descriptionList/descriptionList.tsx"],"sourcesContent":["import React, { CSSProperties, HTMLAttributes, PropsWithChildren, ReactNode } from \"react\";\nimport cn from \"clsx\";\n\nexport interface DescriptionListEntry {\n term: ReactNode;\n description: ReactNode;\n /** React key; the index is used without it. */\n key?: React.Key;\n}\n\n/**\n * `auto`: the term beside its description while the list is at least 420px\n * wide, above it when narrower (a container query on the list itself). `row`\n * and `stacked` fix one layout.\n */\nexport type DescriptionListLayout = \"auto\" | \"row\" | \"stacked\";\n\nexport interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {\n className?: string;\n /** The pairs as data; `DescriptionItem` children work too, and come after them. */\n items?: DescriptionListEntry[];\n /**\n * \"auto\" (default): each term beside its value while the list is at least\n * 420px wide, above it when narrower — the list's own width decides. So its\n * content does not widen it: where the parent takes its width from its\n * content (a flex item that does not grow, a popover, a table cell) the list\n * has no width; give it one there, or use \"row\" / \"stacked\", which fix one\n * layout and take their width from their content.\n */\n layout?: DescriptionListLayout;\n /** Width of the term column in the row layout: px or any CSS track size. 30% of the list, at least 6rem, by default. */\n termWidth?: number | string;\n /** Tighter spacing, for side panels. */\n dense?: boolean;\n}\n\nexport interface DescriptionItemProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n /** The field's name. */\n term: ReactNode;\n}\n\n/** One pair: the term and, as children, its description. */\nexport const DescriptionItem = React.forwardRef<HTMLDivElement, PropsWithChildren<DescriptionItemProps>>(\n function DescriptionItem({ className, term, children, ...rest }, ref) {\n return (\n <div {...rest} ref={ref} className={cn(\"smwb-description-list__item\", className)}>\n <dt className=\"smwb-description-list__term\">{term}</dt>\n <dd className=\"smwb-description-list__details\">{children}</dd>\n </div>\n );\n }\n);\n\n/** Field–value pairs (a `<dl>`): side by side, stacking on a narrow container. */\nexport const DescriptionList = React.forwardRef<HTMLDListElement, PropsWithChildren<DescriptionListProps>>(\n function DescriptionList({ className, style, items, layout = \"auto\", termWidth, dense, children, ...rest }, ref) {\n const width = typeof termWidth === \"number\" ? `${termWidth}px` : termWidth;\n return (\n <dl\n {...rest}\n ref={ref}\n className={cn(\n \"smwb-description-list\",\n `smwb-description-list_${layout}`,\n { \"smwb-description-list_dense\": dense },\n className\n )}\n style={width === undefined ? style : ({ ...style, \"--smwb-description-term\": width } as CSSProperties)}\n >\n {items?.map((item, index) => (\n <DescriptionItem key={item.key ?? index} term={item.term}>\n {item.description}\n </DescriptionItem>\n ))}\n {children}\n </dl>\n );\n }\n);\n\nexport default DescriptionList;\n"],"names":["DescriptionItem","React","className","term","children","rest","ref","jsxs","cn","jsx","DescriptionList","style","items","layout","termWidth","dense","width","item","index","_a"],"mappings":";;;;;AA6CO,MAAMA,IAAkBC,EAAM;AAAA,EACnC,SAAyB,EAAE,WAAAC,GAAW,MAAAC,GAAM,UAAAC,GAAU,GAAGC,EAAA,GAAQC,GAAK;AACpE,WACE,gBAAAC,EAAC,SAAK,GAAGF,GAAM,KAAAC,GAAU,WAAWE,EAAG,+BAA+BN,CAAS,GAC7E,UAAA;AAAA,MAAA,gBAAAO,EAAC,MAAA,EAAG,WAAU,+BAA+B,UAAAN,GAAK;AAAA,MAClD,gBAAAM,EAAC,MAAA,EAAG,WAAU,kCAAkC,UAAAL,EAAA,CAAS;AAAA,IAAA,GAC3D;AAAA,EAEJ;AACF,GAGaM,IAAkBT,EAAM;AAAA,EACnC,SAAyB,EAAE,WAAAC,GAAW,OAAAS,GAAO,OAAAC,GAAO,QAAAC,IAAS,QAAQ,WAAAC,GAAW,OAAAC,GAAO,UAAAX,GAAU,GAAGC,EAAA,GAAQC,GAAK;AAC/G,UAAMU,IAAQ,OAAOF,KAAc,WAAW,GAAGA,CAAS,OAAOA;AACjE,WACE,gBAAAP;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAGF;AAAA,QACJ,KAAAC;AAAA,QACA,WAAWE;AAAA,UACT;AAAA,UACA,yBAAyBK,CAAM;AAAA,UAC/B,EAAE,+BAA+BE,EAAA;AAAA,UACjCb;AAAA,QAAA;AAAA,QAEF,OAAOc,MAAU,SAAYL,IAAS,EAAE,GAAGA,GAAO,2BAA2BK,EAAA;AAAA,QAE5E,UAAA;AAAA,UAAAJ,KAAA,gBAAAA,EAAO,IAAI,CAACK,GAAMC,MAAA;;qCAChBlB,GAAA,EAAwC,MAAMiB,EAAK,MACjD,UAAAA,EAAK,YAAA,IADcE,IAAAF,EAAK,QAAL,OAAAE,IAAYD,CAElC;AAAA;AAAA,UAEDd;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;"}
@@ -0,0 +1,2 @@
1
+ export { DescriptionList, DescriptionItem, default } from "./descriptionList";
2
+ export type { DescriptionListProps, DescriptionItemProps, DescriptionListEntry, DescriptionListLayout, } from "./descriptionList";
@@ -1,174 +1,220 @@
1
- import { jsxs as t, jsx as n, Fragment as C } from "react/jsx-runtime";
2
- import '../../../assets/styles/less/components/expansionPanel/expansionPanel.entry.css';/* empty css */
3
- import { forwardRef as T, useState as I, useEffect as R } from "react";
4
- import K from "clsx";
5
- import { createPortal as U } from "react-dom";
6
- import { Button as p } from "../../inputs/button/button.js";
7
- import { Icon as u } from "../../base/icon/icon.js";
8
- import { useControllableState as V } from "../../../hooks/useControllableState.js";
9
- import { useSafeLayoutEffect as q } from "../../../hooks/useSafeLayoutEffect.js";
10
- const G = {
1
+ import { jsxs as d, jsx as t, Fragment as V } from "react/jsx-runtime";
2
+ import '../../../assets/styles/less/components/expansionPanel/expansionPanel.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
4
+ import { forwardRef as ae, useState as ie, useRef as f, useEffect as F } from "react";
5
+ import ce from "clsx";
6
+ import { createPortal as ue } from "react-dom";
7
+ import { Button as w } from "../../inputs/button/button.js";
8
+ import { Icon as C } from "../../base/icon/icon.js";
9
+ import { useControllableState as de } from "../../../hooks/useControllableState.js";
10
+ import { FOCUSABLE as J } from "../../../hooks/useFocusTrap.js";
11
+ import { useForkRef as fe } from "../../../hooks/useForkRef.js";
12
+ import { useSafeLayoutEffect as E } from "../../../hooks/useSafeLayoutEffect.js";
13
+ import { hasOverlayLayerAbove as j } from "../../../utils/overlayLayer.js";
14
+ const me = {
11
15
  expandRow: "Expand to full row",
12
16
  collapseRow: "Collapse to grid",
13
17
  expandFullscreen: "Expand to fullscreen",
14
18
  closeFullscreen: "Close fullscreen",
15
19
  placeholder: "Panel is open in fullscreen",
16
20
  placeholderClose: "Close"
17
- }, N = (o, i) => typeof o == "function" ? o(i) : o, H = (o, i) => typeof o == "function" ? o(i) : o, ne = T(function({
18
- className: i,
19
- header: m,
20
- mode: g,
21
- defaultMode: k = "tile",
22
- onModeChange: E,
23
- disableExpand: f = !1,
24
- noControls: z = !1,
25
- renderControls: w,
26
- closeOnOutsideClick: L = !0,
27
- closeOnEsc: x = !0,
28
- labels: P,
29
- children: b
30
- }, S) {
31
- const [B, s] = V({
32
- value: g,
33
- defaultValue: k,
34
- onChange: E
35
- }), l = { ...G, ...P }, [_, D] = I();
36
- q(() => {
37
- D(document.body);
21
+ }, q = (l, o) => typeof l == "function" ? l(o) : l, pe = (l, o) => typeof l == "function" ? l(o) : l, G = (l) => {
22
+ for (const o of l)
23
+ if (!(!(o instanceof HTMLElement) || !o.isConnected) && (o.focus(), o.getRootNode().activeElement === o))
24
+ return;
25
+ }, H = (l) => Array.from(l.querySelectorAll(J)).filter(
26
+ // Older browsers (and jsdom) lack checkVisibility: count every match there.
27
+ (o) => typeof o.checkVisibility != "function" || o.checkVisibility({ visibilityProperty: !0 })
28
+ ), ke = ae(function({
29
+ className: o,
30
+ header: N,
31
+ mode: Q,
32
+ defaultMode: W = "tile",
33
+ onModeChange: X,
34
+ disableExpand: g = !1,
35
+ noControls: Y = !1,
36
+ renderControls: k,
37
+ closeOnOutsideClick: Z = !0,
38
+ closeOnEsc: L = !0,
39
+ labels: $,
40
+ children: P
41
+ }, ee) {
42
+ const [ne, c] = de({
43
+ value: Q,
44
+ defaultValue: W,
45
+ onChange: X
46
+ }), s = { ...me, ...$ }, [v, oe] = ie(), p = f(null), D = f(null), te = fe(ee, D), S = f(null), A = f(null), K = f(null), x = f(null), z = f(!1);
47
+ E(() => {
48
+ oe(document.body);
38
49
  }, []);
39
- const r = f ? "tile" : B, a = r === "row", c = r === "fullscreen", v = () => s((e) => e === "row" ? "tile" : "row"), h = () => s("fullscreen"), y = () => s("tile"), j = (e) => ({
40
- mode: r,
50
+ const m = g ? "tile" : ne, u = m === "row", a = m === "fullscreen", B = () => c((e) => e === "row" ? "tile" : "row"), T = () => c("fullscreen"), I = () => c("tile"), le = (e) => ({
51
+ mode: m,
41
52
  isFullscreen: e,
42
- isFullRow: e ? !1 : a,
43
- setMode: s,
44
- toggleRow: v,
45
- openFullscreen: h,
46
- closeFullscreen: y,
47
- labels: l
48
- }), A = (e) => e ? /* @__PURE__ */ n(
49
- p,
53
+ isFullRow: e ? !1 : u,
54
+ setMode: c,
55
+ toggleRow: B,
56
+ openFullscreen: T,
57
+ closeFullscreen: I,
58
+ labels: s
59
+ }), se = (e) => e ? /* @__PURE__ */ t(
60
+ w,
50
61
  {
62
+ ref: A,
51
63
  type: "button",
52
64
  variant: "outlined",
53
65
  size: "small",
54
- "aria-label": l.closeFullscreen,
55
- title: l.closeFullscreen,
56
- onClick: y,
66
+ "aria-label": s.closeFullscreen,
67
+ title: s.closeFullscreen,
68
+ onClick: I,
57
69
  "data-testid": "expansion-panel-close",
58
- icon: /* @__PURE__ */ n(u, { name: "close", size: 18 })
70
+ icon: /* @__PURE__ */ t(C, { name: "close", size: 18 })
59
71
  }
60
- ) : /* @__PURE__ */ t(C, { children: [
61
- /* @__PURE__ */ n(
62
- p,
72
+ ) : /* @__PURE__ */ d(V, { children: [
73
+ /* @__PURE__ */ t(
74
+ w,
63
75
  {
64
76
  type: "button",
65
77
  variant: "outlined",
66
78
  size: "small",
67
- "aria-pressed": a,
68
- "aria-label": a ? l.collapseRow : l.expandRow,
69
- title: a ? l.collapseRow : l.expandRow,
70
- onClick: v,
79
+ "aria-pressed": u,
80
+ "aria-label": u ? s.collapseRow : s.expandRow,
81
+ title: u ? s.collapseRow : s.expandRow,
82
+ onClick: B,
71
83
  "data-testid": "expansion-panel-row",
72
- icon: /* @__PURE__ */ n(u, { name: a ? "grid_view" : "table_rows", size: 18 })
84
+ icon: /* @__PURE__ */ t(C, { name: u ? "grid_view" : "table_rows", size: 18 })
73
85
  }
74
86
  ),
75
- /* @__PURE__ */ n(
76
- p,
87
+ /* @__PURE__ */ t(
88
+ w,
77
89
  {
90
+ ref: S,
78
91
  type: "button",
79
92
  variant: "outlined",
80
93
  size: "small",
81
- "aria-label": l.expandFullscreen,
82
- title: l.expandFullscreen,
83
- onClick: h,
94
+ "aria-label": s.expandFullscreen,
95
+ title: s.expandFullscreen,
96
+ onClick: T,
84
97
  "data-testid": "expansion-panel-fullscreen",
85
- icon: /* @__PURE__ */ n(u, { name: "open_in_full", size: 18 })
98
+ icon: /* @__PURE__ */ t(C, { name: "open_in_full", size: 18 })
86
99
  }
87
100
  )
88
- ] }), F = (e) => {
89
- if (f || z)
101
+ ] }), M = (e) => {
102
+ if (g || Y)
90
103
  return null;
91
- const d = w ? H(w, j(e)) : A(e);
92
- return d ? /* @__PURE__ */ n("div", { className: "smwb-expansion-panel__controls", children: d }) : null;
104
+ const n = k ? pe(k, le(e)) : se(e);
105
+ return n ? /* @__PURE__ */ t("div", { className: "smwb-expansion-panel__controls", children: n }) : null;
93
106
  };
94
- R(() => {
95
- if (!c)
107
+ F(() => {
108
+ if (!a)
96
109
  return;
97
110
  const e = document.body.style.overflow;
98
111
  return document.body.style.overflow = "hidden", () => {
99
112
  document.body.style.overflow = e;
100
113
  };
101
- }, [c]), R(() => {
102
- if (!c || !x)
114
+ }, [a]), F(() => {
115
+ if (!a || !L)
116
+ return;
117
+ const e = (n) => {
118
+ n.key === "Escape" && !n.defaultPrevented && !j(p.current) && (n.preventDefault(), c("tile"));
119
+ };
120
+ return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
121
+ }, [a, L, c]), E(() => {
122
+ var n, r;
123
+ const e = document.activeElement;
124
+ a ? (K.current = e === document.body ? null : e, x.current = null) : z.current && (!e || e === document.body) && G([
125
+ x.current,
126
+ K.current,
127
+ S.current,
128
+ ...Array.from((r = (n = D.current) == null ? void 0 : n.querySelectorAll(J)) != null ? r : [])
129
+ ]), z.current = a;
130
+ }, [a]);
131
+ const y = a && v !== void 0;
132
+ E(() => {
133
+ const e = p.current, n = document.activeElement;
134
+ !y || !e || n && n !== document.body || G([A.current, ...H(e), e]);
135
+ }, [y]), F(() => {
136
+ if (!y)
103
137
  return;
104
- const e = (d) => {
105
- d.key === "Escape" && s("tile");
138
+ const e = (n) => {
139
+ var O, U;
140
+ const r = p.current;
141
+ if (n.key !== "Tab" || n.defaultPrevented || n.altKey || n.ctrlKey || n.metaKey || !r)
142
+ return;
143
+ const h = H(r), _ = (O = h[0]) != null ? O : r, R = (U = h[h.length - 1]) != null ? U : r, i = document.activeElement;
144
+ let b;
145
+ i && i !== document.body && r.contains(i) ? (n.shiftKey ? i === _ || i === r : i === R) && (b = n.shiftKey ? R : _) : !j(r) && (!i || i === document.body || r.compareDocumentPosition(i) & Node.DOCUMENT_POSITION_PRECEDING) && (b = n.shiftKey ? R : _), b && (n.preventDefault(), b.focus());
106
146
  };
107
147
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
108
- }, [c, x, s]);
109
- const M = /* @__PURE__ */ t(
148
+ }, [y]);
149
+ const re = /* @__PURE__ */ d(
110
150
  "div",
111
151
  {
112
- ref: S,
113
- className: K("smwb-expansion-panel", { "smwb-expansion-panel_row": a }, i),
152
+ ref: te,
153
+ className: ce("smwb-expansion-panel", { "smwb-expansion-panel_row": u }, o),
114
154
  "data-testid": "expansion-panel",
115
155
  children: [
116
- /* @__PURE__ */ t("div", { className: "smwb-expansion-panel__head", children: [
117
- /* @__PURE__ */ n("div", { className: "smwb-expansion-panel__header", children: m }),
118
- F(!1)
156
+ /* @__PURE__ */ d("div", { className: "smwb-expansion-panel__head", children: [
157
+ /* @__PURE__ */ t("div", { className: "smwb-expansion-panel__header", children: N }),
158
+ M(!1)
119
159
  ] }),
120
- /* @__PURE__ */ n("div", { className: "smwb-expansion-panel__body", children: N(b, {
121
- mode: r,
160
+ /* @__PURE__ */ t("div", { className: "smwb-expansion-panel__body", children: q(P, {
161
+ mode: m,
122
162
  isFullscreen: !1,
123
- isFullRow: a
163
+ isFullRow: u
124
164
  }) })
125
165
  ]
126
166
  }
127
167
  );
128
- return !c || !_ ? M : /* @__PURE__ */ t(C, { children: [
129
- /* @__PURE__ */ t("div", { className: "smwb-expansion-panel__placeholder", "data-testid": "expansion-panel-placeholder", children: [
130
- /* @__PURE__ */ n("span", { children: l.placeholder }),
131
- /* @__PURE__ */ n(
132
- p,
168
+ return !a || !v ? re : /* @__PURE__ */ d(V, { children: [
169
+ /* @__PURE__ */ d("div", { className: "smwb-expansion-panel__placeholder", "data-testid": "expansion-panel-placeholder", children: [
170
+ /* @__PURE__ */ t("span", { children: s.placeholder }),
171
+ /* @__PURE__ */ t(
172
+ w,
133
173
  {
134
174
  type: "button",
135
175
  variant: "outlined",
136
176
  size: "small",
137
- label: l.placeholderClose,
138
- onClick: () => s("tile")
177
+ label: s.placeholderClose,
178
+ onClick: () => c("tile")
139
179
  }
140
180
  )
141
181
  ] }),
142
- U(
143
- /* @__PURE__ */ n(
182
+ ue(
183
+ /* @__PURE__ */ t(
144
184
  "div",
145
185
  {
186
+ ref: p,
146
187
  className: "smwb-expansion-panel__overlay smwb-dark",
188
+ "data-smwb-overlay-layer": "",
147
189
  role: "dialog",
148
190
  "aria-modal": "true",
191
+ tabIndex: -1,
149
192
  "data-testid": "expansion-panel-overlay",
150
- onClick: L ? (e) => {
151
- e.target === e.currentTarget && s("tile");
193
+ onFocus: (e) => {
194
+ x.current = e.target;
195
+ },
196
+ onClick: Z ? (e) => {
197
+ e.target === e.currentTarget && c("tile");
152
198
  } : void 0,
153
- children: /* @__PURE__ */ t("div", { className: "smwb-expansion-panel__dialog", children: [
154
- /* @__PURE__ */ t("div", { className: "smwb-expansion-panel__head", children: [
155
- /* @__PURE__ */ n("div", { className: "smwb-expansion-panel__header", children: m }),
156
- F(!0)
199
+ children: /* @__PURE__ */ d("div", { className: "smwb-expansion-panel__dialog", children: [
200
+ /* @__PURE__ */ d("div", { className: "smwb-expansion-panel__head", children: [
201
+ /* @__PURE__ */ t("div", { className: "smwb-expansion-panel__header", children: N }),
202
+ M(!0)
157
203
  ] }),
158
- /* @__PURE__ */ n("div", { className: "smwb-expansion-panel__body smwb-expansion-panel__body_fullscreen", children: N(b, {
159
- mode: r,
204
+ /* @__PURE__ */ t("div", { className: "smwb-expansion-panel__body smwb-expansion-panel__body_fullscreen", children: q(P, {
205
+ mode: m,
160
206
  isFullscreen: !0,
161
207
  isFullRow: !1
162
208
  }) })
163
209
  ] })
164
210
  }
165
211
  ),
166
- _
212
+ v
167
213
  )
168
214
  ] });
169
215
  });
170
216
  export {
171
- ne as ExpansionPanel,
172
- ne as default
217
+ ke as ExpansionPanel,
218
+ ke as default
173
219
  };
174
220
  //# sourceMappingURL=expansionPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"expansionPanel.js","sources":["../../../../src/components/dataDisplay/expansionPanel/expansionPanel.tsx"],"sourcesContent":["import React, { forwardRef, ReactNode, useEffect, useState } from \"react\";\nimport cn from \"clsx\";\nimport { createPortal } from \"react-dom\";\nimport Button from \"../../inputs/button/button\";\nimport Icon from \"../../base/icon/icon\";\nimport { useControllableState } from \"../../../hooks/useControllableState\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\n\nexport type ExpansionMode = \"tile\" | \"row\" | \"fullscreen\";\n\nexport interface ExpansionPanelLabels {\n /** Tooltip/aria for the control that expands a tile to a full grid row. */\n expandRow?: string;\n /** Tooltip/aria for the control that collapses a full row back to a tile. */\n collapseRow?: string;\n /** Tooltip/aria for the control that opens the panel fullscreen. */\n expandFullscreen?: string;\n /** Tooltip/aria for the control that closes fullscreen. */\n closeFullscreen?: string;\n /** Text shown in the original slot while the panel is fullscreen. */\n placeholder?: string;\n /** Label of the button in the placeholder that closes fullscreen. */\n placeholderClose?: string;\n}\n\nexport interface ExpansionPanelRenderContext {\n mode: ExpansionMode;\n isFullscreen: boolean;\n isFullRow: boolean;\n}\n\nexport interface ExpansionPanelControlsContext extends ExpansionPanelRenderContext {\n setMode: (next: ExpansionMode | ((current: ExpansionMode) => ExpansionMode)) => void;\n toggleRow: () => void;\n openFullscreen: () => void;\n closeFullscreen: () => void;\n labels: Required<ExpansionPanelLabels>;\n}\n\ntype ExpansionPanelChildren = ReactNode | ((ctx: ExpansionPanelRenderContext) => ReactNode);\ntype ExpansionPanelControls = ReactNode | ((ctx: ExpansionPanelControlsContext) => ReactNode);\n\nexport interface ExpansionPanelProps {\n className?: string;\n /** Content of the panel header (left side of the control bar). */\n header?: ReactNode;\n /** Controlled layout mode. */\n mode?: ExpansionMode;\n /** Initial mode for the uncontrolled component. */\n defaultMode?: ExpansionMode;\n /** Fired with the next mode whenever it changes. */\n onModeChange?: (mode: ExpansionMode) => void;\n /** Render the panel as a plain card without row/fullscreen controls. */\n disableExpand?: boolean;\n /** Hide the built-in control bar (consumer drives `mode` itself). */\n noControls?: boolean;\n /** Replace the built-in row/fullscreen controls with a custom node or render prop. */\n renderControls?: ExpansionPanelControls;\n /** Close fullscreen when the backdrop is clicked. Default: true. */\n closeOnOutsideClick?: boolean;\n /** Close fullscreen when Escape is pressed. Default: true. */\n closeOnEsc?: boolean;\n /** Accessible labels / tooltips for the built-in controls. */\n labels?: ExpansionPanelLabels;\n children?: ExpansionPanelChildren;\n}\n\nconst DEFAULT_LABELS: Required<ExpansionPanelLabels> = {\n expandRow: \"Expand to full row\",\n collapseRow: \"Collapse to grid\",\n expandFullscreen: \"Expand to fullscreen\",\n closeFullscreen: \"Close fullscreen\",\n placeholder: \"Panel is open in fullscreen\",\n placeholderClose: \"Close\",\n};\n\nconst resolveChildren = (children: ExpansionPanelChildren, ctx: ExpansionPanelRenderContext): ReactNode =>\n typeof children === \"function\" ? children(ctx) : children;\n\nconst resolveControls = (controls: ExpansionPanelControls, ctx: ExpansionPanelControlsContext): ReactNode =>\n typeof controls === \"function\" ? controls(ctx) : controls;\n\nexport const ExpansionPanel = forwardRef<HTMLDivElement, ExpansionPanelProps>(function ExpansionPanel(\n {\n className,\n header,\n mode: modeProp,\n defaultMode = \"tile\",\n onModeChange,\n disableExpand = false,\n noControls = false,\n renderControls,\n closeOnOutsideClick = true,\n closeOnEsc = true,\n labels,\n children,\n },\n ref\n) {\n const [mode, setMode] = useControllableState<ExpansionMode>({\n value: modeProp,\n defaultValue: defaultMode,\n onChange: onModeChange,\n });\n\n const l = { ...DEFAULT_LABELS, ...labels };\n const [domRoot, setDomRoot] = useState<HTMLElement>();\n\n useSafeLayoutEffect(() => {\n setDomRoot(document.body);\n }, []);\n\n // `disableExpand` renders a plain card regardless of the requested mode,\n // without mutating state — works in both controlled and uncontrolled use.\n const effectiveMode: ExpansionMode = disableExpand ? \"tile\" : mode;\n const isFullRow = effectiveMode === \"row\";\n const isFullscreen = effectiveMode === \"fullscreen\";\n\n const toggleRow = () => setMode((current) => (current === \"row\" ? \"tile\" : \"row\"));\n const openFullscreen = () => setMode(\"fullscreen\");\n const closeFullscreen = () => setMode(\"tile\");\n\n const controlsContext = (overlay: boolean): ExpansionPanelControlsContext => ({\n mode: effectiveMode,\n isFullscreen: overlay,\n isFullRow: overlay ? false : isFullRow,\n setMode,\n toggleRow,\n openFullscreen,\n closeFullscreen,\n labels: l,\n });\n\n const defaultControls = (overlay: boolean) => {\n if (overlay) {\n return (\n <Button\n type=\"button\"\n variant=\"outlined\"\n size=\"small\"\n aria-label={l.closeFullscreen}\n title={l.closeFullscreen}\n onClick={closeFullscreen}\n data-testid=\"expansion-panel-close\"\n icon={<Icon name=\"close\" size={18} />}\n />\n );\n }\n\n return (\n <>\n <Button\n type=\"button\"\n variant=\"outlined\"\n size=\"small\"\n aria-pressed={isFullRow}\n aria-label={isFullRow ? l.collapseRow : l.expandRow}\n title={isFullRow ? l.collapseRow : l.expandRow}\n onClick={toggleRow}\n data-testid=\"expansion-panel-row\"\n icon={<Icon name={isFullRow ? \"grid_view\" : \"table_rows\"} size={18} />}\n />\n <Button\n type=\"button\"\n variant=\"outlined\"\n size=\"small\"\n aria-label={l.expandFullscreen}\n title={l.expandFullscreen}\n onClick={openFullscreen}\n data-testid=\"expansion-panel-fullscreen\"\n icon={<Icon name=\"open_in_full\" size={18} />}\n />\n </>\n );\n };\n\n const renderControlBar = (overlay: boolean) => {\n if (disableExpand || noControls) {\n return null;\n }\n\n const content = renderControls\n ? resolveControls(renderControls, controlsContext(overlay))\n : defaultControls(overlay);\n\n if (!content) {\n return null;\n }\n\n return <div className=\"smwb-expansion-panel__controls\">{content}</div>;\n };\n\n useEffect(() => {\n if (!isFullscreen) {\n return;\n }\n const prev = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = prev;\n };\n }, [isFullscreen]);\n\n useEffect(() => {\n if (!isFullscreen || !closeOnEsc) {\n return;\n }\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setMode(\"tile\");\n }\n };\n document.addEventListener(\"keydown\", onKeyDown);\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [isFullscreen, closeOnEsc, setMode]);\n\n const card = (\n <div\n ref={ref}\n className={cn(\"smwb-expansion-panel\", { \"smwb-expansion-panel_row\": isFullRow }, className)}\n data-testid=\"expansion-panel\"\n >\n <div className=\"smwb-expansion-panel__head\">\n <div className=\"smwb-expansion-panel__header\">{header}</div>\n {renderControlBar(false)}\n </div>\n <div className=\"smwb-expansion-panel__body\">\n {resolveChildren(children, {\n mode: effectiveMode,\n isFullscreen: false,\n isFullRow,\n })}\n </div>\n </div>\n );\n\n if (!isFullscreen || !domRoot) {\n return card;\n }\n\n return (\n <>\n <div className=\"smwb-expansion-panel__placeholder\" data-testid=\"expansion-panel-placeholder\">\n <span>{l.placeholder}</span>\n <Button\n type=\"button\"\n variant=\"outlined\"\n size=\"small\"\n label={l.placeholderClose}\n onClick={() => setMode(\"tile\")}\n />\n </div>\n {createPortal(\n <div\n className=\"smwb-expansion-panel__overlay smwb-dark\"\n role=\"dialog\"\n aria-modal=\"true\"\n data-testid=\"expansion-panel-overlay\"\n onClick={\n closeOnOutsideClick\n ? (e) => {\n if (e.target === e.currentTarget) {\n setMode(\"tile\");\n }\n }\n : undefined\n }\n >\n <div className=\"smwb-expansion-panel__dialog\">\n <div className=\"smwb-expansion-panel__head\">\n <div className=\"smwb-expansion-panel__header\">{header}</div>\n {renderControlBar(true)}\n </div>\n <div className=\"smwb-expansion-panel__body smwb-expansion-panel__body_fullscreen\">\n {resolveChildren(children, {\n mode: effectiveMode,\n isFullscreen: true,\n isFullRow: false,\n })}\n </div>\n </div>\n </div>,\n domRoot\n )}\n </>\n );\n});\n\nexport default ExpansionPanel;\n"],"names":["DEFAULT_LABELS","resolveChildren","children","ctx","resolveControls","controls","ExpansionPanel","forwardRef","className","header","modeProp","defaultMode","onModeChange","disableExpand","noControls","renderControls","closeOnOutsideClick","closeOnEsc","labels","ref","mode","setMode","useControllableState","domRoot","setDomRoot","useState","useSafeLayoutEffect","effectiveMode","isFullRow","isFullscreen","toggleRow","current","openFullscreen","closeFullscreen","controlsContext","overlay","defaultControls","jsx","Button","Icon","jsxs","Fragment","renderControlBar","content","useEffect","prev","onKeyDown","event","card","cn","createPortal"],"mappings":"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"}
1
+ {"version":3,"file":"expansionPanel.js","sources":["../../../../src/components/dataDisplay/expansionPanel/expansionPanel.tsx"],"sourcesContent":["import React, { forwardRef, ReactNode, useEffect, useRef, useState } from \"react\";\nimport cn from \"clsx\";\nimport { createPortal } from \"react-dom\";\nimport Button from \"../../inputs/button/button\";\nimport Icon from \"../../base/icon/icon\";\nimport { useControllableState } from \"../../../hooks/useControllableState\";\nimport { FOCUSABLE } from \"../../../hooks/useFocusTrap\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\nimport { hasOverlayLayerAbove } from \"../../../utils/overlayLayer\";\n\nexport type ExpansionMode = \"tile\" | \"row\" | \"fullscreen\";\n\nexport interface ExpansionPanelLabels {\n /** Tooltip/aria for the control that expands a tile to a full grid row. */\n expandRow?: string;\n /** Tooltip/aria for the control that collapses a full row back to a tile. */\n collapseRow?: string;\n /** Tooltip/aria for the control that opens the panel fullscreen. */\n expandFullscreen?: string;\n /** Tooltip/aria for the control that closes fullscreen. */\n closeFullscreen?: string;\n /** Text shown in the original slot while the panel is fullscreen. */\n placeholder?: string;\n /** Label of the button in the placeholder that closes fullscreen. */\n placeholderClose?: string;\n}\n\nexport interface ExpansionPanelRenderContext {\n mode: ExpansionMode;\n isFullscreen: boolean;\n isFullRow: boolean;\n}\n\nexport interface ExpansionPanelControlsContext extends ExpansionPanelRenderContext {\n setMode: (next: ExpansionMode | ((current: ExpansionMode) => ExpansionMode)) => void;\n toggleRow: () => void;\n openFullscreen: () => void;\n closeFullscreen: () => void;\n labels: Required<ExpansionPanelLabels>;\n}\n\ntype ExpansionPanelChildren = ReactNode | ((ctx: ExpansionPanelRenderContext) => ReactNode);\ntype ExpansionPanelControls = ReactNode | ((ctx: ExpansionPanelControlsContext) => ReactNode);\n\nexport interface ExpansionPanelProps {\n className?: string;\n /** Content of the panel header (left side of the control bar). */\n header?: ReactNode;\n /** Controlled layout mode. */\n mode?: ExpansionMode;\n /** Initial mode for the uncontrolled component. */\n defaultMode?: ExpansionMode;\n /** Fired with the next mode whenever it changes. */\n onModeChange?: (mode: ExpansionMode) => void;\n /** Render the panel as a plain card without row/fullscreen controls. */\n disableExpand?: boolean;\n /** Hide the built-in control bar (consumer drives `mode` itself). */\n noControls?: boolean;\n /** Replace the built-in row/fullscreen controls with a custom node or render prop. */\n renderControls?: ExpansionPanelControls;\n /** Close fullscreen when the backdrop is clicked. Default: true. */\n closeOnOutsideClick?: boolean;\n /** Close fullscreen when Escape is pressed. Default: true. */\n closeOnEsc?: boolean;\n /** Accessible labels / tooltips for the built-in controls. */\n labels?: ExpansionPanelLabels;\n children?: ExpansionPanelChildren;\n}\n\nconst DEFAULT_LABELS: Required<ExpansionPanelLabels> = {\n expandRow: \"Expand to full row\",\n collapseRow: \"Collapse to grid\",\n expandFullscreen: \"Expand to fullscreen\",\n closeFullscreen: \"Close fullscreen\",\n placeholder: \"Panel is open in fullscreen\",\n placeholderClose: \"Close\",\n};\n\nconst resolveChildren = (children: ExpansionPanelChildren, ctx: ExpansionPanelRenderContext): ReactNode =>\n typeof children === \"function\" ? children(ctx) : children;\n\nconst resolveControls = (controls: ExpansionPanelControls, ctx: ExpansionPanelControlsContext): ReactNode =>\n typeof controls === \"function\" ? controls(ctx) : controls;\n\n/** Focuses the first of `targets` that is in the document and takes focus. */\nconst focusFirst = (targets: Array<Element | null>): void => {\n for (const target of targets) {\n if (!(target instanceof HTMLElement) || !target.isConnected) continue;\n target.focus();\n if ((target.getRootNode() as Document | ShadowRoot).activeElement === target) return;\n }\n};\n\n/** The elements in `container` that Tab can reach, in document order. */\nconst tabbables = (container: HTMLElement): HTMLElement[] =>\n Array.from(container.querySelectorAll<HTMLElement>(FOCUSABLE)).filter(\n // Older browsers (and jsdom) lack checkVisibility: count every match there.\n (el) => typeof el.checkVisibility !== \"function\" || el.checkVisibility({ visibilityProperty: true })\n );\n\nexport const ExpansionPanel = forwardRef<HTMLDivElement, ExpansionPanelProps>(function ExpansionPanel(\n {\n className,\n header,\n mode: modeProp,\n defaultMode = \"tile\",\n onModeChange,\n disableExpand = false,\n noControls = false,\n renderControls,\n closeOnOutsideClick = true,\n closeOnEsc = true,\n labels,\n children,\n },\n ref\n) {\n const [mode, setMode] = useControllableState<ExpansionMode>({\n value: modeProp,\n defaultValue: defaultMode,\n onChange: onModeChange,\n });\n\n const l = { ...DEFAULT_LABELS, ...labels };\n const [domRoot, setDomRoot] = useState<HTMLElement>();\n const overlayRef = useRef<HTMLDivElement>(null);\n const cardRef = useRef<HTMLDivElement>(null);\n const cardRefs = useForkRef(ref, cardRef);\n const fullscreenButtonRef = useRef<HTMLButtonElement | HTMLAnchorElement>(null);\n const closeButtonRef = useRef<HTMLButtonElement | HTMLAnchorElement>(null);\n // Where focus goes back to when fullscreen ends; see the effect that sets them.\n const openerRef = useRef<Element | null>(null);\n const lastFocusedRef = useRef<Element | null>(null);\n const wasFullscreenRef = useRef(false);\n\n useSafeLayoutEffect(() => {\n setDomRoot(document.body);\n }, []);\n\n // `disableExpand` renders a plain card regardless of the requested mode,\n // without mutating state — works in both controlled and uncontrolled use.\n const effectiveMode: ExpansionMode = disableExpand ? \"tile\" : mode;\n const isFullRow = effectiveMode === \"row\";\n const isFullscreen = effectiveMode === \"fullscreen\";\n\n const toggleRow = () => setMode((current) => (current === \"row\" ? \"tile\" : \"row\"));\n const openFullscreen = () => setMode(\"fullscreen\");\n const closeFullscreen = () => setMode(\"tile\");\n\n const controlsContext = (overlay: boolean): ExpansionPanelControlsContext => ({\n mode: effectiveMode,\n isFullscreen: overlay,\n isFullRow: overlay ? false : isFullRow,\n setMode,\n toggleRow,\n openFullscreen,\n closeFullscreen,\n labels: l,\n });\n\n const defaultControls = (overlay: boolean) => {\n if (overlay) {\n return (\n <Button\n ref={closeButtonRef}\n type=\"button\"\n variant=\"outlined\"\n size=\"small\"\n aria-label={l.closeFullscreen}\n title={l.closeFullscreen}\n onClick={closeFullscreen}\n data-testid=\"expansion-panel-close\"\n icon={<Icon name=\"close\" size={18} />}\n />\n );\n }\n\n return (\n <>\n <Button\n type=\"button\"\n variant=\"outlined\"\n size=\"small\"\n aria-pressed={isFullRow}\n aria-label={isFullRow ? l.collapseRow : l.expandRow}\n title={isFullRow ? l.collapseRow : l.expandRow}\n onClick={toggleRow}\n data-testid=\"expansion-panel-row\"\n icon={<Icon name={isFullRow ? \"grid_view\" : \"table_rows\"} size={18} />}\n />\n <Button\n ref={fullscreenButtonRef}\n type=\"button\"\n variant=\"outlined\"\n size=\"small\"\n aria-label={l.expandFullscreen}\n title={l.expandFullscreen}\n onClick={openFullscreen}\n data-testid=\"expansion-panel-fullscreen\"\n icon={<Icon name=\"open_in_full\" size={18} />}\n />\n </>\n );\n };\n\n const renderControlBar = (overlay: boolean) => {\n if (disableExpand || noControls) {\n return null;\n }\n\n const content = renderControls\n ? resolveControls(renderControls, controlsContext(overlay))\n : defaultControls(overlay);\n\n if (!content) {\n return null;\n }\n\n return <div className=\"smwb-expansion-panel__controls\">{content}</div>;\n };\n\n useEffect(() => {\n if (!isFullscreen) {\n return;\n }\n const prev = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = prev;\n };\n }, [isFullscreen]);\n\n useEffect(() => {\n if (!isFullscreen || !closeOnEsc) {\n return;\n }\n const onKeyDown = (event: KeyboardEvent) => {\n // An open layer above the overlay takes the Escape first: a select menu opened\n // from the panel, even one rendered inside it (`menuContainer`). An Escape handled\n // inside the panel, e.g. by a menu closing on it, keeps fullscreen too.\n if (event.key === \"Escape\" && !event.defaultPrevented && !hasOverlayLayerAbove(overlayRef.current)) {\n // Handled: a FloatingWindow, Modal or Sheet around the panel skips it. Focus goes\n // back into the tile, and their listener may come later in this dispatch.\n event.preventDefault();\n setMode(\"tile\");\n }\n };\n document.addEventListener(\"keydown\", onKeyDown);\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [isFullscreen, closeOnEsc, setMode]);\n\n // The overlay and the card replace each other, so focus in the one that goes falls to\n // <body>: focus in the overlay when fullscreen ends, on the tile's button when it\n // begins. A FloatingWindow around the panel then misses the next Escape, as it takes\n // Escape only while focus is inside it. So when fullscreen ends with focus on <body>,\n // focus goes to the element focused last in the overlay if it survived into the tile,\n // else to what had focus when fullscreen began, else to the tile's fullscreen button,\n // else to the tile's first focusable element. Focus anywhere else is left alone.\n useSafeLayoutEffect(() => {\n const active = document.activeElement;\n if (isFullscreen) {\n openerRef.current = active === document.body ? null : active;\n lastFocusedRef.current = null;\n } else if (wasFullscreenRef.current && (!active || active === document.body)) {\n focusFirst([\n lastFocusedRef.current,\n openerRef.current,\n fullscreenButtonRef.current,\n ...Array.from(cardRef.current?.querySelectorAll(FOCUSABLE) ?? []),\n ]);\n }\n wasFullscreenRef.current = isFullscreen;\n }, [isFullscreen]);\n\n // Entering fullscreen removes the tile, so focus in it falls to <body>, behind an\n // `aria-modal` overlay: Tab goes to the page under it and a screen reader is left on\n // nothing. So when the overlay appears with focus on <body>, focus moves into it: to\n // its close button, else to its first focusable element, else to the overlay itself.\n // Focus elsewhere is left alone: on a control outside the panel that set a controlled\n // `mode`, or on an element in the overlay that focused itself.\n const overlayShown = isFullscreen && domRoot !== undefined;\n useSafeLayoutEffect(() => {\n const overlay = overlayRef.current;\n const active = document.activeElement;\n if (!overlayShown || !overlay || (active && active !== document.body)) return;\n focusFirst([closeButtonRef.current, ...tabbables(overlay), overlay]);\n }, [overlayShown]);\n\n // Tab stays in the overlay: it wraps at either end, and focus on <body> or on the page\n // under the overlay comes back into it. Tab works as usual in what was opened from the\n // panel: a layer above the overlay, or anything portaled after it (a menu, a picker\n // panel). A Tab handled already is left alone too.\n useEffect(() => {\n if (!overlayShown) {\n return;\n }\n const onKeyDown = (event: KeyboardEvent) => {\n const overlay = overlayRef.current;\n if (event.key !== \"Tab\" || event.defaultPrevented || event.altKey || event.ctrlKey || event.metaKey || !overlay) {\n return;\n }\n const items = tabbables(overlay);\n const first = items[0] ?? overlay;\n const last = items[items.length - 1] ?? overlay;\n const active = document.activeElement;\n let target: HTMLElement | undefined;\n if (active && active !== document.body && overlay.contains(active)) {\n if (event.shiftKey ? active === first || active === overlay : active === last) {\n target = event.shiftKey ? last : first;\n }\n } else if (\n !hasOverlayLayerAbove(overlay) &&\n (!active ||\n active === document.body ||\n overlay.compareDocumentPosition(active) & Node.DOCUMENT_POSITION_PRECEDING)\n ) {\n target = event.shiftKey ? last : first;\n }\n if (target) {\n event.preventDefault();\n target.focus();\n }\n };\n document.addEventListener(\"keydown\", onKeyDown);\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [overlayShown]);\n\n const card = (\n <div\n ref={cardRefs}\n className={cn(\"smwb-expansion-panel\", { \"smwb-expansion-panel_row\": isFullRow }, className)}\n data-testid=\"expansion-panel\"\n >\n <div className=\"smwb-expansion-panel__head\">\n <div className=\"smwb-expansion-panel__header\">{header}</div>\n {renderControlBar(false)}\n </div>\n <div className=\"smwb-expansion-panel__body\">\n {resolveChildren(children, {\n mode: effectiveMode,\n isFullscreen: false,\n isFullRow,\n })}\n </div>\n </div>\n );\n\n if (!isFullscreen || !domRoot) {\n return card;\n }\n\n return (\n <>\n <div className=\"smwb-expansion-panel__placeholder\" data-testid=\"expansion-panel-placeholder\">\n <span>{l.placeholder}</span>\n <Button\n type=\"button\"\n variant=\"outlined\"\n size=\"small\"\n label={l.placeholderClose}\n onClick={() => setMode(\"tile\")}\n />\n </div>\n {createPortal(\n <div\n ref={overlayRef}\n className=\"smwb-expansion-panel__overlay smwb-dark\"\n data-smwb-overlay-layer=\"\"\n role=\"dialog\"\n aria-modal=\"true\"\n tabIndex={-1}\n data-testid=\"expansion-panel-overlay\"\n onFocus={(e) => {\n lastFocusedRef.current = e.target;\n }}\n onClick={\n closeOnOutsideClick\n ? (e) => {\n if (e.target === e.currentTarget) {\n setMode(\"tile\");\n }\n }\n : undefined\n }\n >\n <div className=\"smwb-expansion-panel__dialog\">\n <div className=\"smwb-expansion-panel__head\">\n <div className=\"smwb-expansion-panel__header\">{header}</div>\n {renderControlBar(true)}\n </div>\n <div className=\"smwb-expansion-panel__body smwb-expansion-panel__body_fullscreen\">\n {resolveChildren(children, {\n mode: effectiveMode,\n isFullscreen: true,\n isFullRow: false,\n })}\n </div>\n </div>\n </div>,\n domRoot\n )}\n </>\n );\n});\n\nexport default ExpansionPanel;\n"],"names":["DEFAULT_LABELS","resolveChildren","children","ctx","resolveControls","controls","focusFirst","targets","target","tabbables","container","FOCUSABLE","el","ExpansionPanel","forwardRef","className","header","modeProp","defaultMode","onModeChange","disableExpand","noControls","renderControls","closeOnOutsideClick","closeOnEsc","labels","ref","mode","setMode","useControllableState","l","domRoot","setDomRoot","useState","overlayRef","useRef","cardRef","cardRefs","useForkRef","fullscreenButtonRef","closeButtonRef","openerRef","lastFocusedRef","wasFullscreenRef","useSafeLayoutEffect","effectiveMode","isFullRow","isFullscreen","toggleRow","current","openFullscreen","closeFullscreen","controlsContext","overlay","defaultControls","jsx","Button","Icon","jsxs","Fragment","renderControlBar","content","useEffect","prev","onKeyDown","event","hasOverlayLayerAbove","active","_b","_a","overlayShown","items","first","last","card","cn","createPortal"],"mappings":"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"}
@@ -1,21 +1,22 @@
1
- import { jsx as a } from "react/jsx-runtime";
2
- import '../../../assets/styles/less/components/imagesList/imagesList.entry.css';/* empty css */
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import '../../../assets/styles/less/components/imagesList/imagesList.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
3
4
  import { forwardRef as f } from "react";
4
- import s from "clsx";
5
- import { ImagesListContext as n } from "./imagesListContext.js";
6
- const y = f(function({ className: t, children: r, gap: l = 4, cols: i = 3, rowsHeight: m = 0, variant: e = "default", "aria-label": o, id: c }, d) {
7
- return /* @__PURE__ */ a(n.Provider, { value: { rowsHeight: m, variant: e }, children: /* @__PURE__ */ a("div", { className: s("smwb-gallery", t), "data-testid": "images-list", ref: d, id: c, children: /* @__PURE__ */ a(
5
+ import e from "clsx";
6
+ import { ImagesListContext as p } from "./imagesListContext.js";
7
+ const I = f(function({ className: r, children: s, gap: l = 4, cols: i = 3, rowsHeight: m = 0, variant: a = "default", "aria-label": o, id: c }, d) {
8
+ return /* @__PURE__ */ t(p.Provider, { value: { rowsHeight: m, variant: a }, children: /* @__PURE__ */ t("div", { className: e("smwb-gallery", r), "data-testid": "images-list", ref: d, id: c, children: /* @__PURE__ */ t(
8
9
  "ul",
9
10
  {
10
11
  "aria-label": o,
11
- className: s("smwb-gallery__list", `smwb-${e}`),
12
+ className: e("smwb-gallery__list", `smwb-${a}`),
12
13
  style: { "--cols-count": i, "--gap": `${l}px` },
13
- children: r
14
+ children: s
14
15
  }
15
16
  ) }) });
16
17
  });
17
18
  export {
18
- y as ImagesList,
19
- y as default
19
+ I as ImagesList,
20
+ I as default
20
21
  };
21
22
  //# sourceMappingURL=imagesList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"imagesList.js","sources":["../../../../src/components/dataDisplay/imagesList/imagesList.tsx"],"sourcesContent":["import React, { CSSProperties, forwardRef, PropsWithChildren } from \"react\";\nimport cn from \"clsx\";\nimport { ImagesListContext } from \"./imagesListContext\";\n\nexport interface ImagesListProps {\n className?: string;\n rowsHeight?: number;\n cols: number;\n variant?: \"woven\" | \"masonry\" | \"default\";\n gap?: number;\n /** Accessible label for the image list. */\n \"aria-label\"?: string;\n id?: string;\n}\n\nexport const ImagesList = forwardRef<HTMLDivElement, PropsWithChildren<ImagesListProps>>(function ImagesList(\n { className, children, gap = 4, cols = 3, rowsHeight = 0, variant = \"default\", \"aria-label\": ariaLabel, id },\n ref\n) {\n return (\n <ImagesListContext.Provider value={{ rowsHeight, variant }}>\n <div className={cn(\"smwb-gallery\", className)} data-testid=\"images-list\" ref={ref} id={id}>\n <ul\n aria-label={ariaLabel}\n className={cn(\"smwb-gallery__list\", `smwb-${variant}`)}\n style={{ \"--cols-count\": cols, \"--gap\": `${gap}px` } as CSSProperties}\n >\n {children}\n </ul>\n </div>\n </ImagesListContext.Provider>\n );\n});\n\nexport default ImagesList;\n"],"names":["ImagesList","forwardRef","className","children","gap","cols","rowsHeight","variant","ariaLabel","id","ref","ImagesListContext","cn","jsx"],"mappings":";;;;;AAgBO,MAAMA,IAAaC,EAA+D,SACvF,EAAE,WAAAC,GAAW,UAAAC,GAAU,KAAAC,IAAM,GAAG,MAAAC,IAAO,GAAG,YAAAC,IAAa,GAAG,SAAAC,IAAU,WAAW,cAAcC,GAAW,IAAAC,EAAA,GACxGC,GACA;AACA,2BACGC,EAAkB,UAAlB,EAA2B,OAAO,EAAE,YAAAL,GAAY,SAAAC,EAAA,GAC/C,4BAAC,OAAA,EAAI,WAAWK,EAAG,gBAAgBV,CAAS,GAAG,eAAY,eAAc,KAAAQ,GAAU,IAAAD,GACjF,UAAA,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,cAAYL;AAAA,MACZ,WAAWI,EAAG,sBAAsB,QAAQL,CAAO,EAAE;AAAA,MACrD,OAAO,EAAE,gBAAgBF,GAAM,SAAS,GAAGD,CAAG,KAAA;AAAA,MAE7C,UAAAD;AAAA,IAAA;AAAA,EAAA,GAEL,EAAA,CACF;AAEJ,CAAC;"}
1
+ {"version":3,"file":"imagesList.js","sources":["../../../../src/components/dataDisplay/imagesList/imagesList.tsx"],"sourcesContent":["import React, { CSSProperties, forwardRef, PropsWithChildren } from \"react\";\nimport cn from \"clsx\";\nimport { ImagesListContext } from \"./imagesListContext\";\n\nexport interface ImagesListProps {\n className?: string;\n rowsHeight?: number;\n cols: number;\n variant?: \"woven\" | \"masonry\" | \"default\";\n gap?: number;\n /** Accessible label for the image list. */\n \"aria-label\"?: string;\n id?: string;\n}\n\nexport const ImagesList = forwardRef<HTMLDivElement, PropsWithChildren<ImagesListProps>>(function ImagesList(\n { className, children, gap = 4, cols = 3, rowsHeight = 0, variant = \"default\", \"aria-label\": ariaLabel, id },\n ref\n) {\n return (\n <ImagesListContext.Provider value={{ rowsHeight, variant }}>\n <div className={cn(\"smwb-gallery\", className)} data-testid=\"images-list\" ref={ref} id={id}>\n <ul\n aria-label={ariaLabel}\n className={cn(\"smwb-gallery__list\", `smwb-${variant}`)}\n style={{ \"--cols-count\": cols, \"--gap\": `${gap}px` } as CSSProperties}\n >\n {children}\n </ul>\n </div>\n </ImagesListContext.Provider>\n );\n});\n\nexport default ImagesList;\n"],"names":["ImagesList","forwardRef","className","children","gap","cols","rowsHeight","variant","ariaLabel","id","ref","ImagesListContext","cn","jsx"],"mappings":";;;;;;AAiBO,MAAMA,IAAaC,EAA+D,SACvF,EAAE,WAAAC,GAAW,UAAAC,GAAU,KAAAC,IAAM,GAAG,MAAAC,IAAO,GAAG,YAAAC,IAAa,GAAG,SAAAC,IAAU,WAAW,cAAcC,GAAW,IAAAC,EAAA,GACxGC,GACA;AACA,2BACGC,EAAkB,UAAlB,EAA2B,OAAO,EAAE,YAAAL,GAAY,SAAAC,EAAA,GAC/C,4BAAC,OAAA,EAAI,WAAWK,EAAG,gBAAgBV,CAAS,GAAG,eAAY,eAAc,KAAAQ,GAAU,IAAAD,GACjF,UAAA,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,cAAYL;AAAA,MACZ,WAAWI,EAAG,sBAAsB,QAAQL,CAAO,EAAE;AAAA,MACrD,OAAO,EAAE,gBAAgBF,GAAM,SAAS,GAAGD,CAAG,KAAA;AAAA,MAE7C,UAAAD;AAAA,IAAA;AAAA,EAAA,GAEL,EAAA,CACF;AAEJ,CAAC;"}