@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":"accordion.js","sources":["../../../../src/components/dataDisplay/accordion/accordion.tsx"],"sourcesContent":["import React, { forwardRef, ReactNode, useState } from \"react\";\nimport cn from \"clsx\";\nimport AnimateHeight from \"../../base/animateHeight/animateHeight\";\nimport Icon from \"../../base/icon/icon\";\nimport { useId } from \"../../../hooks/useId\";\n\nexport interface AccordionProps {\n className?: string;\n title?: string;\n isOpenByDefault?: boolean;\n /** Controlled open state. When set, the component is controlled. */\n open?: boolean;\n /** Disable toggling. */\n disabled?: boolean;\n /** Custom expand icon (replaces the default chevron). */\n icon?: ReactNode;\n id?: string;\n children?: React.ReactNode;\n startAdornment?: (isOpen: boolean) => React.ReactNode;\n noIcon?: boolean;\n onToggleClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n /** Fired with the next open state on toggle. */\n onChange?: (open: boolean) => void;\n}\n\nexport const Accordion = forwardRef<HTMLDivElement, AccordionProps>(function Accordion(\n {\n className,\n title,\n isOpenByDefault = false,\n open,\n disabled,\n icon,\n id: idProp,\n children,\n startAdornment,\n noIcon,\n onToggleClick,\n onChange,\n },\n ref\n) {\n const isControlled = open !== undefined;\n const [internalOpen, setInternalOpen] = useState<boolean>(isOpenByDefault);\n const isOpen = isControlled ? !!open : internalOpen;\n const baseId = useId(idProp);\n const contentId = `${baseId}-content`;\n const headerId = `${baseId}-header`;\n\n const arrowIconClasses = cn(\"smwb-accordion__arrow-icon\", { \"smwb-accordion__arrow-icon_opened\": isOpen });\n\n const toggle = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n if (disabled) {\n return;\n }\n const next = !isOpen;\n if (!isControlled) {\n setInternalOpen(next);\n }\n onChange?.(next);\n onToggleClick?.(e);\n };\n\n return (\n <div ref={ref} className={cn(\"smwb-accordion\", { \"smwb-disabled\": disabled }, className)} data-testid=\"accordion\">\n <button\n id={headerId}\n className=\"smwb-accordion__header\"\n onClick={toggle}\n type=\"button\"\n disabled={disabled}\n aria-expanded={isOpen}\n aria-controls={children ? contentId : undefined}\n >\n {startAdornment?.(isOpen)}\n <span className=\"smwb-accordion__title\">{title}</span>\n {!noIcon && (icon ?? <Icon className={arrowIconClasses} name=\"expand_more\" size={24} />)}\n </button>\n\n {children && (\n <div id={contentId} role=\"region\" aria-labelledby={headerId}>\n <AnimateHeight\n height={isOpen ? \"auto\" : 0}\n animateOpacity={true}\n duration={300}\n className=\"smwb-accordion__content\"\n >\n {children}\n </AnimateHeight>\n </div>\n )}\n </div>\n );\n});\n\nexport default Accordion;\n"],"names":["Accordion","forwardRef","className","title","isOpenByDefault","open","disabled","icon","idProp","children","startAdornment","noIcon","onToggleClick","onChange","ref","isControlled","internalOpen","setInternalOpen","useState","isOpen","baseId","useId","contentId","headerId","arrowIconClasses","cn","toggle","e","next","jsxs","jsx","Icon","AnimateHeight"],"mappings":";;;;;;;AA0BO,MAAMA,IAAYC,EAA2C,SAClE;AAAA,EACE,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,IAAIC;AAAA,EACJ,UAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,QAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AACF,GACAC,GACA;AACA,QAAMC,IAAeV,MAAS,QACxB,CAACW,GAAcC,CAAe,IAAIC,EAAkBd,CAAe,GACnEe,IAASJ,IAAe,CAAC,CAACV,IAAOW,GACjCI,IAASC,EAAMb,CAAM,GACrBc,IAAY,GAAGF,CAAM,YACrBG,IAAW,GAAGH,CAAM,WAEpBI,IAAmBC,EAAG,8BAA8B,EAAE,qCAAqCN,GAAQ,GAEnGO,IAAS,CAACC,MAAuD;AACrE,QAAIrB;AACF;AAEF,UAAMsB,IAAO,CAACT;AACd,IAAKJ,KACHE,EAAgBW,CAAI,GAEtBf,KAAA,QAAAA,EAAWe,IACXhB,KAAA,QAAAA,EAAgBe;AAAA,EAClB;AAEA,SACE,gBAAAE,EAAC,OAAA,EAAI,KAAAf,GAAU,WAAWW,EAAG,kBAAkB,EAAE,iBAAiBnB,EAAA,GAAYJ,CAAS,GAAG,eAAY,aACpG,UAAA;AAAA,IAAA,gBAAA2B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAIN;AAAA,QACJ,WAAU;AAAA,QACV,SAASG;AAAA,QACT,MAAK;AAAA,QACL,UAAApB;AAAA,QACA,iBAAea;AAAA,QACf,iBAAeV,IAAWa,IAAY;AAAA,QAErC,UAAA;AAAA,UAAAZ,KAAA,gBAAAA,EAAiBS;AAAA,UAClB,gBAAAW,EAAC,QAAA,EAAK,WAAU,yBAAyB,UAAA3B,GAAM;AAAA,UAC9C,CAACQ,MAAWJ,KAAA,OAAAA,IAAQ,gBAAAuB,EAACC,GAAA,EAAK,WAAWP,GAAkB,MAAK,eAAc,MAAM,GAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGtFf,uBACE,OAAA,EAAI,IAAIa,GAAW,MAAK,UAAS,mBAAiBC,GACjD,UAAA,gBAAAO;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,QAAQb,IAAS,SAAS;AAAA,QAC1B,gBAAgB;AAAA,QAChB,UAAU;AAAA,QACV,WAAU;AAAA,QAET,UAAAV;AAAA,MAAA;AAAA,IAAA,EACH,CACF;AAAA,EAAA,GAEJ;AAEJ,CAAC;"}
1
+ {"version":3,"file":"accordion.js","sources":["../../../../src/components/dataDisplay/accordion/accordion.tsx"],"sourcesContent":["import React, { forwardRef, ReactNode, useState } from \"react\";\nimport cn from \"clsx\";\nimport AnimateHeight, { type Height } from \"../../base/animateHeight/animateHeight\";\nimport Icon from \"../../base/icon/icon\";\nimport { useId } from \"../../../hooks/useId\";\n\n/**\n * `filled` — the header is an app-bar strip on a raised panel (the original look).\n * `outlined` — a bordered card with a flat header: for feeds of records.\n * `plain` — no frame, a divider under each panel: for FAQ-style lists.\n * The flat variants stretch to the container and wrap long titles.\n */\nexport type AccordionVariant = \"filled\" | \"outlined\" | \"plain\";\n\nexport interface AccordionProps {\n className?: string;\n /** Header text or markup (a date, an author, a badge…). */\n title?: ReactNode;\n /** Secondary line under the title. */\n subtitle?: ReactNode;\n variant?: AccordionVariant;\n isOpenByDefault?: boolean;\n /** Controlled open state. When set, the component is controlled. */\n open?: boolean;\n /** Disable toggling. */\n disabled?: boolean;\n /** Custom expand icon (replaces the default chevron). */\n icon?: ReactNode;\n id?: string;\n children?: React.ReactNode;\n startAdornment?: (isOpen: boolean) => React.ReactNode;\n /** Rendered after the title, before the expand icon. */\n endAdornment?: (isOpen: boolean) => React.ReactNode;\n noIcon?: boolean;\n /** Create the content on first open instead of up front. */\n lazy?: boolean;\n /** Remove the content once the panel has collapsed (created again on open). */\n unmountOnExit?: boolean;\n onToggleClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n /** Fired with the next open state on toggle. */\n onChange?: (open: boolean) => void;\n}\n\nexport const Accordion = forwardRef<HTMLDivElement, AccordionProps>(function Accordion(\n {\n className,\n title,\n subtitle,\n variant = \"filled\",\n isOpenByDefault = false,\n open,\n disabled,\n icon,\n id: idProp,\n children,\n startAdornment,\n endAdornment,\n noIcon,\n lazy,\n unmountOnExit,\n onToggleClick,\n onChange,\n },\n ref\n) {\n const isControlled = open !== undefined;\n const [internalOpen, setInternalOpen] = useState<boolean>(isOpenByDefault);\n const isOpen = isControlled ? !!open : internalOpen;\n const baseId = useId(idProp);\n const contentId = `${baseId}-content`;\n const headerId = `${baseId}-header`;\n\n // Deferred content (lazy / unmountOnExit) exists only once the panel has been\n // opened; unmountOnExit drops it again when the collapse animation ends.\n const deferred = Boolean(lazy || unmountOnExit);\n const [present, setPresent] = useState<boolean>(isOpen);\n if (isOpen && !present) {\n setPresent(true);\n }\n const onCollapsed = (height: Height) => {\n if (height === 0 && unmountOnExit && !isOpen) {\n setPresent(false);\n }\n };\n // A deferred panel keeps its region (it has nothing to test yet); otherwise\n // the region is there when there is content.\n const hasContent = deferred ? children !== undefined : Boolean(children);\n\n const arrowIconClasses = cn(\"smwb-accordion__arrow-icon\", { \"smwb-accordion__arrow-icon_opened\": isOpen });\n\n const toggle = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n if (disabled) {\n return;\n }\n const next = !isOpen;\n if (!isControlled) {\n setInternalOpen(next);\n }\n onChange?.(next);\n onToggleClick?.(e);\n };\n\n return (\n <div\n ref={ref}\n className={cn(\"smwb-accordion\", `smwb-accordion_${variant}`, { \"smwb-disabled\": disabled }, className)}\n data-testid=\"accordion\"\n >\n <button\n id={headerId}\n className=\"smwb-accordion__header\"\n onClick={toggle}\n type=\"button\"\n disabled={disabled}\n aria-expanded={isOpen}\n aria-controls={hasContent ? contentId : undefined}\n >\n {startAdornment?.(isOpen)}\n <span className=\"smwb-accordion__heading\">\n <span className=\"smwb-accordion__title\">{title}</span>\n {subtitle ? <span className=\"smwb-accordion__subtitle\">{subtitle}</span> : null}\n </span>\n {endAdornment ? <span className=\"smwb-accordion__end\">{endAdornment(isOpen)}</span> : null}\n {!noIcon && (icon ?? <Icon className={arrowIconClasses} name=\"expand_more\" size={24} />)}\n </button>\n\n {hasContent && (\n <div id={contentId} role=\"region\" aria-labelledby={headerId}>\n <AnimateHeight\n height={isOpen ? \"auto\" : 0}\n animateOpacity={true}\n duration={300}\n className=\"smwb-accordion__content\"\n onHeightAnimationEnd={onCollapsed}\n >\n {!deferred || present ? children : null}\n </AnimateHeight>\n </div>\n )}\n </div>\n );\n});\n\nexport default Accordion;\n"],"names":["Accordion","forwardRef","className","title","subtitle","variant","isOpenByDefault","open","disabled","icon","idProp","children","startAdornment","endAdornment","noIcon","lazy","unmountOnExit","onToggleClick","onChange","ref","isControlled","internalOpen","setInternalOpen","useState","isOpen","baseId","useId","contentId","headerId","deferred","present","setPresent","onCollapsed","height","hasContent","arrowIconClasses","cn","toggle","e","next","jsxs","jsx","Icon","AnimateHeight"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import '../../../assets/styles/less/components/assetGrid/assetGrid.entry.css';/* empty css */
2
+ import '../../../assets/styles/less/components/assetGrid/assetGrid.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
3
4
  import _, { useRef as H, useState as h, useEffect as I, useMemo as O } from "react";
4
5
  import T from "clsx";
5
6
  import { useVirtualList as W } from "../../../hooks/useVirtualList.js";
6
- function L({
7
+ function V({
7
8
  items: l,
8
9
  renderItem: f,
9
10
  minColumn: d = 160,
@@ -16,7 +17,7 @@ function L({
16
17
  className: N,
17
18
  style: R
18
19
  }) {
19
- const g = H(null), [c, A] = h(0), [M, S] = h(0), [z, $] = h(!1);
20
+ const g = H(null), [m, A] = h(0), [M, S] = h(0), [z, $] = h(!1);
20
21
  I(() => {
21
22
  const s = g.current;
22
23
  if (!s || typeof ResizeObserver == "undefined") return;
@@ -26,14 +27,14 @@ function L({
26
27
  return t.observe(s), () => t.disconnect();
27
28
  }, []);
28
29
  const o = O(
29
- () => c <= 0 ? 1 : Math.max(1, Math.floor((c + r) / (d + r))),
30
- [c, r, d]
30
+ () => m <= 0 ? 1 : Math.max(1, Math.floor((m + r) / (d + r))),
31
+ [m, r, d]
31
32
  ), C = Math.ceil(l.length / o), i = W({
32
33
  itemCount: C,
33
34
  itemHeight: a + r,
34
35
  viewportHeight: M || 1,
35
36
  overscan: v
36
- }), u = {
37
+ }), p = {
37
38
  display: "grid",
38
39
  gridTemplateColumns: `repeat(auto-fill, minmax(${d}px, 1fr))`,
39
40
  gap: r,
@@ -46,23 +47,23 @@ function L({
46
47
  marginBottom: r
47
48
  };
48
49
  let n;
49
- return b ? n = /* @__PURE__ */ e("div", { className: "smwb-asset-grid__plain", style: u, children: Array.from({ length: w }).map((s, t) => /* @__PURE__ */ e("div", { className: "smwb-asset-grid__skeleton", style: { height: a } }, t)) }) : l.length === 0 ? n = /* @__PURE__ */ e("div", { className: "smwb-asset-grid__empty", children: x }) : z ? n = /* @__PURE__ */ e("div", { className: "smwb-asset-grid__sizer", style: { height: i.totalHeight, position: "relative" }, children: /* @__PURE__ */ e(
50
+ return b ? n = /* @__PURE__ */ e("div", { className: "smwb-asset-grid__plain", style: p, children: Array.from({ length: w }).map((s, t) => /* @__PURE__ */ e("div", { className: "smwb-asset-grid__skeleton", style: { height: a } }, t)) }) : l.length === 0 ? n = /* @__PURE__ */ e("div", { className: "smwb-asset-grid__empty", children: x }) : z ? n = /* @__PURE__ */ e("div", { className: "smwb-asset-grid__sizer", style: { height: i.totalHeight, position: "relative" }, children: /* @__PURE__ */ e(
50
51
  "div",
51
52
  {
52
53
  className: "smwb-asset-grid__band",
53
54
  style: { position: "absolute", top: 0, left: 0, right: 0, transform: `translateY(${i.offsetY}px)` },
54
55
  children: Array.from({ length: Math.max(0, i.endIndex - i.startIndex) }).map((s, t) => {
55
- const p = i.startIndex + t;
56
+ const u = i.startIndex + t;
56
57
  return /* @__PURE__ */ e("div", { className: "smwb-asset-grid__row", style: F, children: Array.from({ length: o }).map((Y, y) => {
57
- const m = p * o + y;
58
- return m < l.length ? /* @__PURE__ */ e(_.Fragment, { children: f(l[m], m) }, y) : null;
59
- }) }, p);
58
+ const c = u * o + y;
59
+ return c < l.length ? /* @__PURE__ */ e(_.Fragment, { children: f(l[c], c) }, y) : null;
60
+ }) }, u);
60
61
  })
61
62
  }
62
- ) }) : n = /* @__PURE__ */ e("div", { className: "smwb-asset-grid__plain", style: u, children: l.map((s, t) => /* @__PURE__ */ e(_.Fragment, { children: f(s, t) }, t)) }), /* @__PURE__ */ e("div", { ref: g, className: T("smwb-asset-grid", N), style: R, onScroll: i.onScroll, children: n });
63
+ ) }) : n = /* @__PURE__ */ e("div", { className: "smwb-asset-grid__plain", style: p, children: l.map((s, t) => /* @__PURE__ */ e(_.Fragment, { children: f(s, t) }, t)) }), /* @__PURE__ */ e("div", { ref: g, className: T("smwb-asset-grid", N), style: R, onScroll: i.onScroll, children: n });
63
64
  }
64
65
  export {
65
- L as AssetGrid,
66
- L as default
66
+ V as AssetGrid,
67
+ V as default
67
68
  };
68
69
  //# sourceMappingURL=assetGrid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assetGrid.js","sources":["../../../../src/components/dataDisplay/assetGrid/assetGrid.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport cn from \"clsx\";\nimport { useVirtualList } from \"../../../hooks/useVirtualList\";\n\nexport interface AssetGridProps<T> {\n items: T[];\n /** Render one cell. `index` is the absolute index into `items`. */\n renderItem: (item: T, index: number) => React.ReactNode;\n /** Minimum column width (px); drives the column count from the measured width. Default 160. */\n minColumn?: number;\n /** Fixed cell height (px). */\n rowHeight: number;\n /** Gap (px) between cells on both axes. Default 8. */\n gap?: number;\n /** Extra rows rendered above/below the viewport. Default 2. */\n overscan?: number;\n loading?: boolean;\n /** Skeleton tile count while loading. Default 12. */\n loadingCount?: number;\n emptyLabel?: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n}\n\n/**\n * A virtualized, data-shape-agnostic asset grid: measures its own width to pick a\n * column count, windows rows via `useVirtualList`, and renders only the visible\n * cells through a `renderItem` slot — with loading skeletons + an empty state. The\n * windowing math every catalog app reimplements, upstreamed. SSR-safe: before it\n * can measure (server + first paint) it renders a plain auto-fill grid of all\n * items, then virtualizes after mount.\n */\nexport function AssetGrid<T>({\n items,\n renderItem,\n minColumn = 160,\n rowHeight,\n gap = 8,\n overscan = 2,\n loading,\n loadingCount = 12,\n emptyLabel,\n className,\n style,\n}: AssetGridProps<T>): React.ReactElement {\n const viewportRef = useRef<HTMLDivElement | null>(null);\n const [width, setWidth] = useState(0);\n const [height, setHeight] = useState(0);\n const [ready, setReady] = useState(false);\n\n useEffect(() => {\n const el = viewportRef.current;\n if (!el || typeof ResizeObserver === \"undefined\") return;\n const ro = new ResizeObserver(() => {\n setWidth(el.clientWidth);\n setHeight(el.clientHeight);\n setReady(true);\n });\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n const cols = useMemo(\n () => (width <= 0 ? 1 : Math.max(1, Math.floor((width + gap) / (minColumn + gap)))),\n [width, gap, minColumn]\n );\n const rowCount = Math.ceil(items.length / cols);\n const vl = useVirtualList({\n itemCount: rowCount,\n itemHeight: rowHeight + gap,\n viewportHeight: height || 1,\n overscan,\n });\n\n const plainStyle: React.CSSProperties = {\n display: \"grid\",\n gridTemplateColumns: `repeat(auto-fill, minmax(${minColumn}px, 1fr))`,\n gap,\n gridAutoRows: rowHeight,\n };\n const rowStyle: React.CSSProperties = {\n display: \"grid\",\n gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`,\n gap,\n height: rowHeight,\n marginBottom: gap,\n };\n\n let body: React.ReactNode;\n if (loading) {\n body = (\n <div className=\"smwb-asset-grid__plain\" style={plainStyle}>\n {Array.from({ length: loadingCount }).map((_, i) => (\n <div key={i} className=\"smwb-asset-grid__skeleton\" style={{ height: rowHeight }} />\n ))}\n </div>\n );\n } else if (items.length === 0) {\n body = <div className=\"smwb-asset-grid__empty\">{emptyLabel}</div>;\n } else if (!ready) {\n body = (\n <div className=\"smwb-asset-grid__plain\" style={plainStyle}>\n {items.map((item, index) => (\n <React.Fragment key={index}>{renderItem(item, index)}</React.Fragment>\n ))}\n </div>\n );\n } else {\n body = (\n <div className=\"smwb-asset-grid__sizer\" style={{ height: vl.totalHeight, position: \"relative\" }}>\n <div\n className=\"smwb-asset-grid__band\"\n style={{ position: \"absolute\", top: 0, left: 0, right: 0, transform: `translateY(${vl.offsetY}px)` }}\n >\n {Array.from({ length: Math.max(0, vl.endIndex - vl.startIndex) }).map((_, r) => {\n const row = vl.startIndex + r;\n return (\n <div key={row} className=\"smwb-asset-grid__row\" style={rowStyle}>\n {Array.from({ length: cols }).map((_, c) => {\n const index = row * cols + c;\n return index < items.length ? (\n <React.Fragment key={c}>{renderItem(items[index], index)}</React.Fragment>\n ) : null;\n })}\n </div>\n );\n })}\n </div>\n </div>\n );\n }\n\n return (\n <div ref={viewportRef} className={cn(\"smwb-asset-grid\", className)} style={style} onScroll={vl.onScroll}>\n {body}\n </div>\n );\n}\n\nexport default AssetGrid;\n"],"names":["AssetGrid","items","renderItem","minColumn","rowHeight","gap","overscan","loading","loadingCount","emptyLabel","className","style","viewportRef","useRef","width","setWidth","useState","height","setHeight","ready","setReady","useEffect","el","ro","cols","useMemo","rowCount","vl","useVirtualList","plainStyle","rowStyle","body","jsx","_","i","r","row","c","index","React","item","cn"],"mappings":"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"}
1
+ {"version":3,"file":"assetGrid.js","sources":["../../../../src/components/dataDisplay/assetGrid/assetGrid.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport cn from \"clsx\";\nimport { useVirtualList } from \"../../../hooks/useVirtualList\";\n\nexport interface AssetGridProps<T> {\n items: T[];\n /** Render one cell. `index` is the absolute index into `items`. */\n renderItem: (item: T, index: number) => React.ReactNode;\n /** Minimum column width (px); drives the column count from the measured width. Default 160. */\n minColumn?: number;\n /** Fixed cell height (px). */\n rowHeight: number;\n /** Gap (px) between cells on both axes. Default 8. */\n gap?: number;\n /** Extra rows rendered above/below the viewport. Default 2. */\n overscan?: number;\n loading?: boolean;\n /** Skeleton tile count while loading. Default 12. */\n loadingCount?: number;\n emptyLabel?: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n}\n\n/**\n * A virtualized, data-shape-agnostic asset grid: measures its own width to pick a\n * column count, windows rows via `useVirtualList`, and renders only the visible\n * cells through a `renderItem` slot — with loading skeletons + an empty state. The\n * windowing math every catalog app reimplements, upstreamed. SSR-safe: before it\n * can measure (server + first paint) it renders a plain auto-fill grid of all\n * items, then virtualizes after mount.\n */\nexport function AssetGrid<T>({\n items,\n renderItem,\n minColumn = 160,\n rowHeight,\n gap = 8,\n overscan = 2,\n loading,\n loadingCount = 12,\n emptyLabel,\n className,\n style,\n}: AssetGridProps<T>): React.ReactElement {\n const viewportRef = useRef<HTMLDivElement | null>(null);\n const [width, setWidth] = useState(0);\n const [height, setHeight] = useState(0);\n const [ready, setReady] = useState(false);\n\n useEffect(() => {\n const el = viewportRef.current;\n if (!el || typeof ResizeObserver === \"undefined\") return;\n const ro = new ResizeObserver(() => {\n setWidth(el.clientWidth);\n setHeight(el.clientHeight);\n setReady(true);\n });\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n const cols = useMemo(\n () => (width <= 0 ? 1 : Math.max(1, Math.floor((width + gap) / (minColumn + gap)))),\n [width, gap, minColumn]\n );\n const rowCount = Math.ceil(items.length / cols);\n const vl = useVirtualList({\n itemCount: rowCount,\n itemHeight: rowHeight + gap,\n viewportHeight: height || 1,\n overscan,\n });\n\n const plainStyle: React.CSSProperties = {\n display: \"grid\",\n gridTemplateColumns: `repeat(auto-fill, minmax(${minColumn}px, 1fr))`,\n gap,\n gridAutoRows: rowHeight,\n };\n const rowStyle: React.CSSProperties = {\n display: \"grid\",\n gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`,\n gap,\n height: rowHeight,\n marginBottom: gap,\n };\n\n let body: React.ReactNode;\n if (loading) {\n body = (\n <div className=\"smwb-asset-grid__plain\" style={plainStyle}>\n {Array.from({ length: loadingCount }).map((_, i) => (\n <div key={i} className=\"smwb-asset-grid__skeleton\" style={{ height: rowHeight }} />\n ))}\n </div>\n );\n } else if (items.length === 0) {\n body = <div className=\"smwb-asset-grid__empty\">{emptyLabel}</div>;\n } else if (!ready) {\n body = (\n <div className=\"smwb-asset-grid__plain\" style={plainStyle}>\n {items.map((item, index) => (\n <React.Fragment key={index}>{renderItem(item, index)}</React.Fragment>\n ))}\n </div>\n );\n } else {\n body = (\n <div className=\"smwb-asset-grid__sizer\" style={{ height: vl.totalHeight, position: \"relative\" }}>\n <div\n className=\"smwb-asset-grid__band\"\n style={{ position: \"absolute\", top: 0, left: 0, right: 0, transform: `translateY(${vl.offsetY}px)` }}\n >\n {Array.from({ length: Math.max(0, vl.endIndex - vl.startIndex) }).map((_, r) => {\n const row = vl.startIndex + r;\n return (\n <div key={row} className=\"smwb-asset-grid__row\" style={rowStyle}>\n {Array.from({ length: cols }).map((_, c) => {\n const index = row * cols + c;\n return index < items.length ? (\n <React.Fragment key={c}>{renderItem(items[index], index)}</React.Fragment>\n ) : null;\n })}\n </div>\n );\n })}\n </div>\n </div>\n );\n }\n\n return (\n <div ref={viewportRef} className={cn(\"smwb-asset-grid\", className)} style={style} onScroll={vl.onScroll}>\n {body}\n </div>\n );\n}\n\nexport default AssetGrid;\n"],"names":["AssetGrid","items","renderItem","minColumn","rowHeight","gap","overscan","loading","loadingCount","emptyLabel","className","style","viewportRef","useRef","width","setWidth","useState","height","setHeight","ready","setReady","useEffect","el","ro","cols","useMemo","rowCount","vl","useVirtualList","plainStyle","rowStyle","body","jsx","_","i","r","row","c","index","React","item","cn"],"mappings":"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"}
@@ -12,6 +12,8 @@ export interface AvatarProps extends HTMLAttributes<HTMLDivElement> {
12
12
  color?: string;
13
13
  /** Extra attributes forwarded to the underlying <img> (srcSet, loading…). */
14
14
  imgProps?: ImgHTMLAttributes<HTMLImageElement>;
15
+ /** Test id of the root `<div>`; `avatar` unless given. */
16
+ "data-testid"?: string;
15
17
  }
16
18
  export declare const Avatar: import("react").ForwardRefExoticComponent<AvatarProps & {
17
19
  children?: ReactNode | undefined;
@@ -24,6 +26,12 @@ export interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {
24
26
  total?: number;
25
27
  /** Click handler for the "+N" surplus chip. */
26
28
  onSurplusClick?: () => void;
29
+ /** Accessible name of the "+N" surplus chip. */
30
+ surplusAriaLabel?: (count: number) => string;
31
+ /** Size of the "+N" surplus chip: match the avatars in the group. */
32
+ size?: AvatarSize | number;
33
+ /** Test id of the root `<div>`; `avatar-group` unless given. */
34
+ "data-testid"?: string;
27
35
  }
28
36
  export declare const AvatarGroup: import("react").ForwardRefExoticComponent<AvatarGroupProps & {
29
37
  children?: ReactNode | undefined;
@@ -1,49 +1,77 @@
1
- import { jsx as c, jsxs as C } from "react/jsx-runtime";
2
- import '../../../assets/styles/less/components/avatar/avatar.entry.css';/* empty css */
3
- import { forwardRef as _, useState as E, Children as S, isValidElement as $ } from "react";
4
- import f from "clsx";
5
- const w = (o) => typeof o == "string", j = _(function({ className: i, src: r, alt: e, size: t = "medium", variant: u = "circular", color: n, style: d, imgProps: a, children: m, ...v }, s) {
6
- const [l, N] = E(!1), b = !!r && !l, x = f(
1
+ import { jsx as d, jsxs as $ } from "react/jsx-runtime";
2
+ import '../../../assets/styles/less/components/avatar/avatar.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
4
+ import { forwardRef as x, useState as E, Children as S, isValidElement as j } from "react";
5
+ import w from "clsx";
6
+ const N = (o) => typeof o == "string", k = x(function({
7
+ className: u,
8
+ src: l,
9
+ alt: e,
10
+ size: t = "medium",
11
+ variant: i = "circular",
12
+ color: s,
13
+ style: v,
14
+ imgProps: a,
15
+ children: m,
16
+ "data-testid": f = "avatar",
17
+ ...r
18
+ }, b) {
19
+ const [h, c] = E(!1), n = !!l && !h, y = w(
7
20
  "smwb-avatar",
8
- `smwb-avatar_${u}`,
9
- w(t) ? `smwb-avatar_${t}` : null,
10
- i
11
- ), y = {
12
- ...d,
13
- ...w(t) ? {} : { width: t, height: t, fontSize: t / 2.5 },
14
- ...n && !b ? { backgroundColor: n } : {}
21
+ `smwb-avatar_${i}`,
22
+ N(t) ? `smwb-avatar_${t}` : null,
23
+ u
24
+ ), A = {
25
+ ...v,
26
+ ...N(t) ? {} : { width: t, height: t, fontSize: t / 2.5 },
27
+ ...s && !n ? { backgroundColor: s } : {}
15
28
  };
16
- return /* @__PURE__ */ c("div", { ref: s, ...v, "data-testid": "avatar", className: x, style: y, children: b ? /* @__PURE__ */ c(
29
+ return /* @__PURE__ */ d("div", { ref: b, ...r, "data-testid": f, className: y, style: A, children: n ? /* @__PURE__ */ d(
17
30
  "img",
18
31
  {
19
32
  ...a,
20
- className: f("smwb-avatar__img", a == null ? void 0 : a.className),
21
- src: r,
22
- alt: e,
23
- onError: (A) => {
24
- var h;
25
- N(!0), (h = a == null ? void 0 : a.onError) == null || h.call(a, A);
33
+ className: w("smwb-avatar__img", a == null ? void 0 : a.className),
34
+ src: l,
35
+ alt: e != null ? e : a == null ? void 0 : a.alt,
36
+ onError: (C) => {
37
+ var _;
38
+ c(!0), (_ = a == null ? void 0 : a.onError) == null || _.call(a, C);
26
39
  }
27
40
  }
28
- ) : /* @__PURE__ */ c("span", { className: "smwb-avatar__fallback", role: "img", "aria-label": e, children: m }) });
29
- }), M = _(function({ className: i, max: r = 5, total: e, onSurplusClick: t, children: u, ...n }, d) {
30
- const a = S.toArray(u).filter($), m = e != null ? e : a.length, v = Math.max(r, 1), s = a.slice(0, v), l = m - s.length;
31
- return /* @__PURE__ */ C("div", { ref: d, ...n, "data-testid": "avatar-group", className: f("smwb-avatar-group", i), children: [
32
- l > 0 ? /* @__PURE__ */ c(
33
- j,
34
- {
35
- className: "smwb-avatar-group__surplus",
36
- onClick: t,
37
- style: t ? { cursor: "pointer" } : void 0,
38
- children: `+${l}`
39
- }
40
- ) : null,
41
- s
42
- ] });
41
+ ) : /* @__PURE__ */ d("span", { className: "smwb-avatar__fallback", role: "img", "aria-label": e, children: m }) });
42
+ }), R = x(function({
43
+ className: u,
44
+ max: l = 5,
45
+ total: e,
46
+ onSurplusClick: t,
47
+ surplusAriaLabel: i = (r) => `${r} more`,
48
+ size: s,
49
+ children: v,
50
+ "data-testid": a = "avatar-group",
51
+ ...m
52
+ }, f) {
53
+ const r = S.toArray(v).filter(j), b = e != null ? e : r.length, h = Math.max(l, 1), c = r.slice(0, h), n = b - c.length;
54
+ return (
55
+ // In order, the first avatar first; the "+N" chip ends the row.
56
+ /* @__PURE__ */ $("div", { ref: f, ...m, "data-testid": a, className: w("smwb-avatar-group", u), children: [
57
+ c,
58
+ n > 0 ? /* @__PURE__ */ d(
59
+ k,
60
+ {
61
+ className: "smwb-avatar-group__surplus",
62
+ size: s,
63
+ alt: i(n),
64
+ onClick: t,
65
+ style: t ? { cursor: "pointer" } : void 0,
66
+ children: `+${n}`
67
+ }
68
+ ) : null
69
+ ] })
70
+ );
43
71
  });
44
72
  export {
45
- j as Avatar,
46
- M as AvatarGroup,
47
- j as default
73
+ k as Avatar,
74
+ R as AvatarGroup,
75
+ k as default
48
76
  };
49
77
  //# sourceMappingURL=avatar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.js","sources":["../../../../src/components/dataDisplay/avatar/avatar.tsx"],"sourcesContent":["import {\n Children,\n CSSProperties,\n forwardRef,\n HTMLAttributes,\n ImgHTMLAttributes,\n isValidElement,\n PropsWithChildren,\n ReactNode,\n useState,\n} from \"react\";\nimport cn from \"clsx\";\n\nexport type AvatarSize = \"small\" | \"medium\" | \"large\";\n\nexport interface AvatarProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n /** Image source. Falls back to children (initials / icon) on error or when absent. */\n src?: string;\n alt?: string;\n /** Preset size or an explicit pixel value. */\n size?: AvatarSize | number;\n variant?: \"circular\" | \"rounded\" | \"square\";\n /** Background color for the fallback (initials / icon). */\n color?: string;\n /** Extra attributes forwarded to the underlying <img> (srcSet, loading…). */\n imgProps?: ImgHTMLAttributes<HTMLImageElement>;\n}\n\nconst isPresetSize = (size: AvatarSize | number): size is AvatarSize => typeof size === \"string\";\n\nexport const Avatar = forwardRef<HTMLDivElement, PropsWithChildren<AvatarProps>>(function Avatar(\n { className, src, alt, size = \"medium\", variant = \"circular\", color, style, imgProps, children, ...props },\n ref\n) {\n const [imgFailed, setImgFailed] = useState(false);\n const showImage = Boolean(src) && !imgFailed;\n\n const avatarClassName = cn(\n \"smwb-avatar\",\n `smwb-avatar_${variant}`,\n isPresetSize(size) ? `smwb-avatar_${size}` : null,\n className\n );\n\n const inlineStyle: CSSProperties = {\n ...style,\n ...(isPresetSize(size) ? {} : { width: size, height: size, fontSize: size / 2.5 }),\n ...(color && !showImage ? { backgroundColor: color } : {}),\n };\n\n return (\n <div ref={ref} {...props} data-testid=\"avatar\" className={avatarClassName} style={inlineStyle}>\n {showImage ? (\n <img\n {...imgProps}\n className={cn(\"smwb-avatar__img\", imgProps?.className)}\n src={src}\n alt={alt}\n onError={(e) => {\n setImgFailed(true);\n imgProps?.onError?.(e);\n }}\n />\n ) : (\n <span className=\"smwb-avatar__fallback\" role=\"img\" aria-label={alt}>\n {children}\n </span>\n )}\n </div>\n );\n});\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n /** Maximum avatars to show before collapsing the rest into a \"+N\" surplus. */\n max?: number;\n /** Override the total count used for the surplus label (defaults to children count). */\n total?: number;\n /** Click handler for the \"+N\" surplus chip. */\n onSurplusClick?: () => void;\n}\n\nexport const AvatarGroup = forwardRef<HTMLDivElement, PropsWithChildren<AvatarGroupProps>>(function AvatarGroup(\n { className, max = 5, total, onSurplusClick, children, ...props },\n ref\n) {\n const items = Children.toArray(children).filter(isValidElement);\n const totalCount = total ?? items.length;\n const clampedMax = Math.max(max, 1);\n const visible: ReactNode[] = items.slice(0, clampedMax);\n const surplus = totalCount - visible.length;\n\n return (\n <div ref={ref} {...props} data-testid=\"avatar-group\" className={cn(\"smwb-avatar-group\", className)}>\n {surplus > 0 ? (\n <Avatar\n className=\"smwb-avatar-group__surplus\"\n onClick={onSurplusClick}\n style={onSurplusClick ? { cursor: \"pointer\" } : undefined}\n >\n {`+${surplus}`}\n </Avatar>\n ) : null}\n {visible}\n </div>\n );\n});\n\nexport default Avatar;\n"],"names":["isPresetSize","size","Avatar","forwardRef","className","src","alt","variant","color","style","imgProps","children","props","ref","imgFailed","setImgFailed","useState","showImage","avatarClassName","cn","inlineStyle","jsx","e","_a","AvatarGroup","max","total","onSurplusClick","items","Children","isValidElement","totalCount","clampedMax","visible","surplus","jsxs"],"mappings":";;;;AA8BA,MAAMA,IAAe,CAACC,MAAkD,OAAOA,KAAS,UAE3EC,IAASC,EAA2D,SAC/E,EAAE,WAAAC,GAAW,KAAAC,GAAK,KAAAC,GAAK,MAAAL,IAAO,UAAU,SAAAM,IAAU,YAAY,OAAAC,GAAO,OAAAC,GAAO,UAAAC,GAAU,UAAAC,GAAU,GAAGC,EAAA,GACnGC,GACA;AACA,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1CC,IAAY,EAAQZ,KAAQ,CAACS,GAE7BI,IAAkBC;AAAA,IACtB;AAAA,IACA,eAAeZ,CAAO;AAAA,IACtBP,EAAaC,CAAI,IAAI,eAAeA,CAAI,KAAK;AAAA,IAC7CG;AAAA,EAAA,GAGIgB,IAA6B;AAAA,IACjC,GAAGX;AAAA,IACH,GAAIT,EAAaC,CAAI,IAAI,CAAA,IAAK,EAAE,OAAOA,GAAM,QAAQA,GAAM,UAAUA,IAAO,IAAA;AAAA,IAC5E,GAAIO,KAAS,CAACS,IAAY,EAAE,iBAAiBT,EAAA,IAAU,CAAA;AAAA,EAAC;AAG1D,SACE,gBAAAa,EAAC,OAAA,EAAI,KAAAR,GAAW,GAAGD,GAAO,eAAY,UAAS,WAAWM,GAAiB,OAAOE,GAC/E,UAAAH,IACC,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGX;AAAA,MACJ,WAAWS,EAAG,oBAAoBT,KAAA,gBAAAA,EAAU,SAAS;AAAA,MACrD,KAAAL;AAAA,MACA,KAAAC;AAAA,MACA,SAAS,CAACgB,MAAM;;AACd,QAAAP,EAAa,EAAI,IACjBQ,IAAAb,KAAA,gBAAAA,EAAU,YAAV,QAAAa,EAAA,KAAAb,GAAoBY;AAAA,MACtB;AAAA,IAAA;AAAA,EAAA,IAGF,gBAAAD,EAAC,QAAA,EAAK,WAAU,yBAAwB,MAAK,OAAM,cAAYf,GAC5D,UAAAK,EAAA,CACH,EAAA,CAEJ;AAEJ,CAAC,GAYYa,IAAcrB,EAAgE,SACzF,EAAE,WAAAC,GAAW,KAAAqB,IAAM,GAAG,OAAAC,GAAO,gBAAAC,GAAgB,UAAAhB,GAAU,GAAGC,EAAA,GAC1DC,GACA;AACA,QAAMe,IAAQC,EAAS,QAAQlB,CAAQ,EAAE,OAAOmB,CAAc,GACxDC,IAAaL,KAAA,OAAAA,IAASE,EAAM,QAC5BI,IAAa,KAAK,IAAIP,GAAK,CAAC,GAC5BQ,IAAuBL,EAAM,MAAM,GAAGI,CAAU,GAChDE,IAAUH,IAAaE,EAAQ;AAErC,SACE,gBAAAE,EAAC,OAAA,EAAI,KAAAtB,GAAW,GAAGD,GAAO,eAAY,gBAAe,WAAWO,EAAG,qBAAqBf,CAAS,GAC9F,UAAA;AAAA,IAAA8B,IAAU,IACT,gBAAAb;AAAA,MAACnB;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,SAASyB;AAAA,QACT,OAAOA,IAAiB,EAAE,QAAQ,cAAc;AAAA,QAE/C,cAAIO,CAAO;AAAA,MAAA;AAAA,IAAA,IAEZ;AAAA,IACHD;AAAA,EAAA,GACH;AAEJ,CAAC;"}
1
+ {"version":3,"file":"avatar.js","sources":["../../../../src/components/dataDisplay/avatar/avatar.tsx"],"sourcesContent":["import {\n Children,\n CSSProperties,\n forwardRef,\n HTMLAttributes,\n ImgHTMLAttributes,\n isValidElement,\n PropsWithChildren,\n ReactNode,\n useState,\n} from \"react\";\nimport cn from \"clsx\";\n\nexport type AvatarSize = \"small\" | \"medium\" | \"large\";\n\nexport interface AvatarProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n /** Image source. Falls back to children (initials / icon) on error or when absent. */\n src?: string;\n alt?: string;\n /** Preset size or an explicit pixel value. */\n size?: AvatarSize | number;\n variant?: \"circular\" | \"rounded\" | \"square\";\n /** Background color for the fallback (initials / icon). */\n color?: string;\n /** Extra attributes forwarded to the underlying <img> (srcSet, loading…). */\n imgProps?: ImgHTMLAttributes<HTMLImageElement>;\n /** Test id of the root `<div>`; `avatar` unless given. */\n \"data-testid\"?: string;\n}\n\nconst isPresetSize = (size: AvatarSize | number): size is AvatarSize => typeof size === \"string\";\n\nexport const Avatar = forwardRef<HTMLDivElement, PropsWithChildren<AvatarProps>>(function Avatar(\n {\n className,\n src,\n alt,\n size = \"medium\",\n variant = \"circular\",\n color,\n style,\n imgProps,\n children,\n \"data-testid\": dataTestId = \"avatar\",\n ...props\n },\n ref\n) {\n const [imgFailed, setImgFailed] = useState(false);\n const showImage = Boolean(src) && !imgFailed;\n\n const avatarClassName = cn(\n \"smwb-avatar\",\n `smwb-avatar_${variant}`,\n isPresetSize(size) ? `smwb-avatar_${size}` : null,\n className\n );\n\n const inlineStyle: CSSProperties = {\n ...style,\n ...(isPresetSize(size) ? {} : { width: size, height: size, fontSize: size / 2.5 }),\n ...(color && !showImage ? { backgroundColor: color } : {}),\n };\n\n return (\n <div ref={ref} {...props} data-testid={dataTestId} className={avatarClassName} style={inlineStyle}>\n {showImage ? (\n <img\n {...imgProps}\n className={cn(\"smwb-avatar__img\", imgProps?.className)}\n src={src}\n // Avatar's own alt wins; without it, the one in imgProps stays.\n alt={alt ?? imgProps?.alt}\n onError={(e) => {\n setImgFailed(true);\n imgProps?.onError?.(e);\n }}\n />\n ) : (\n <span className=\"smwb-avatar__fallback\" role=\"img\" aria-label={alt}>\n {children}\n </span>\n )}\n </div>\n );\n});\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n /** Maximum avatars to show before collapsing the rest into a \"+N\" surplus. */\n max?: number;\n /** Override the total count used for the surplus label (defaults to children count). */\n total?: number;\n /** Click handler for the \"+N\" surplus chip. */\n onSurplusClick?: () => void;\n /** Accessible name of the \"+N\" surplus chip. */\n surplusAriaLabel?: (count: number) => string;\n /** Size of the \"+N\" surplus chip: match the avatars in the group. */\n size?: AvatarSize | number;\n /** Test id of the root `<div>`; `avatar-group` unless given. */\n \"data-testid\"?: string;\n}\n\nexport const AvatarGroup = forwardRef<HTMLDivElement, PropsWithChildren<AvatarGroupProps>>(function AvatarGroup(\n {\n className,\n max = 5,\n total,\n onSurplusClick,\n surplusAriaLabel = (count: number) => `${count} more`,\n size,\n children,\n \"data-testid\": dataTestId = \"avatar-group\",\n ...props\n },\n ref\n) {\n const items = Children.toArray(children).filter(isValidElement);\n const totalCount = total ?? items.length;\n const clampedMax = Math.max(max, 1);\n const visible: ReactNode[] = items.slice(0, clampedMax);\n const surplus = totalCount - visible.length;\n\n return (\n // In order, the first avatar first; the \"+N\" chip ends the row.\n <div ref={ref} {...props} data-testid={dataTestId} className={cn(\"smwb-avatar-group\", className)}>\n {visible}\n {surplus > 0 ? (\n <Avatar\n className=\"smwb-avatar-group__surplus\"\n size={size}\n alt={surplusAriaLabel(surplus)}\n onClick={onSurplusClick}\n style={onSurplusClick ? { cursor: \"pointer\" } : undefined}\n >\n {`+${surplus}`}\n </Avatar>\n ) : null}\n </div>\n );\n});\n\nexport default Avatar;\n"],"names":["isPresetSize","size","Avatar","forwardRef","className","src","alt","variant","color","style","imgProps","children","dataTestId","props","ref","imgFailed","setImgFailed","useState","showImage","avatarClassName","cn","inlineStyle","jsx","e","_a","AvatarGroup","max","total","onSurplusClick","surplusAriaLabel","count","items","Children","isValidElement","totalCount","clampedMax","visible","surplus","jsxs"],"mappings":";;;;;AAiCA,MAAMA,IAAe,CAACC,MAAkD,OAAOA,KAAS,UAE3EC,IAASC,EAA2D,SAC/E;AAAA,EACE,WAAAC;AAAA,EACA,KAAAC;AAAA,EACA,KAAAC;AAAA,EACA,MAAAL,IAAO;AAAA,EACP,SAAAM,IAAU;AAAA,EACV,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAeC,IAAa;AAAA,EAC5B,GAAGC;AACL,GACAC,GACA;AACA,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1CC,IAAY,EAAQb,KAAQ,CAACU,GAE7BI,IAAkBC;AAAA,IACtB;AAAA,IACA,eAAeb,CAAO;AAAA,IACtBP,EAAaC,CAAI,IAAI,eAAeA,CAAI,KAAK;AAAA,IAC7CG;AAAA,EAAA,GAGIiB,IAA6B;AAAA,IACjC,GAAGZ;AAAA,IACH,GAAIT,EAAaC,CAAI,IAAI,CAAA,IAAK,EAAE,OAAOA,GAAM,QAAQA,GAAM,UAAUA,IAAO,IAAA;AAAA,IAC5E,GAAIO,KAAS,CAACU,IAAY,EAAE,iBAAiBV,EAAA,IAAU,CAAA;AAAA,EAAC;AAG1D,SACE,gBAAAc,EAAC,OAAA,EAAI,KAAAR,GAAW,GAAGD,GAAO,eAAaD,GAAY,WAAWO,GAAiB,OAAOE,GACnF,UAAAH,IACC,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGZ;AAAA,MACJ,WAAWU,EAAG,oBAAoBV,KAAA,gBAAAA,EAAU,SAAS;AAAA,MACrD,KAAAL;AAAA,MAEA,KAAKC,KAAA,OAAAA,IAAOI,KAAA,gBAAAA,EAAU;AAAA,MACtB,SAAS,CAACa,MAAM;;AACd,QAAAP,EAAa,EAAI,IACjBQ,IAAAd,KAAA,gBAAAA,EAAU,YAAV,QAAAc,EAAA,KAAAd,GAAoBa;AAAA,MACtB;AAAA,IAAA;AAAA,EAAA,IAGF,gBAAAD,EAAC,QAAA,EAAK,WAAU,yBAAwB,MAAK,OAAM,cAAYhB,GAC5D,UAAAK,EAAA,CACH,EAAA,CAEJ;AAEJ,CAAC,GAkBYc,IAActB,EAAgE,SACzF;AAAA,EACE,WAAAC;AAAA,EACA,KAAAsB,IAAM;AAAA,EACN,OAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,kBAAAC,IAAmB,CAACC,MAAkB,GAAGA,CAAK;AAAA,EAC9C,MAAA7B;AAAA,EACA,UAAAU;AAAA,EACA,eAAeC,IAAa;AAAA,EAC5B,GAAGC;AACL,GACAC,GACA;AACA,QAAMiB,IAAQC,EAAS,QAAQrB,CAAQ,EAAE,OAAOsB,CAAc,GACxDC,IAAaP,KAAA,OAAAA,IAASI,EAAM,QAC5BI,IAAa,KAAK,IAAIT,GAAK,CAAC,GAC5BU,IAAuBL,EAAM,MAAM,GAAGI,CAAU,GAChDE,IAAUH,IAAaE,EAAQ;AAErC;AAAA;AAAA,IAEE,gBAAAE,EAAC,OAAA,EAAI,KAAAxB,GAAW,GAAGD,GAAO,eAAaD,GAAY,WAAWQ,EAAG,qBAAqBhB,CAAS,GAC5F,UAAA;AAAA,MAAAgC;AAAA,MACAC,IAAU,IACT,gBAAAf;AAAA,QAACpB;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAAD;AAAA,UACA,KAAK4B,EAAiBQ,CAAO;AAAA,UAC7B,SAAST;AAAA,UACT,OAAOA,IAAiB,EAAE,QAAQ,cAAc;AAAA,UAE/C,cAAIS,CAAO;AAAA,QAAA;AAAA,MAAA,IAEZ;AAAA,IAAA,EAAA,CACN;AAAA;AAEJ,CAAC;"}
@@ -1,39 +1,49 @@
1
- import { jsxs as u, jsx as $ } from "react/jsx-runtime";
2
- import '../../../assets/styles/less/components/badge/badge.entry.css';/* empty css */
3
- import { forwardRef as g } from "react";
4
- import n from "clsx";
5
- const x = g(function({
6
- className: o,
7
- color: i = "primary",
1
+ import { jsxs as $, jsx as n } from "react/jsx-runtime";
2
+ import '../../../assets/styles/less/components/badge/badge.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
4
+ import { forwardRef as b } from "react";
5
+ import h from "clsx";
6
+ const R = b(function({
7
+ className: e,
8
+ color: c = "primary",
8
9
  badgeContent: s,
9
- variant: r = "outside",
10
- vertical: a = "top",
11
- horizontal: l = "right",
12
- max: e,
13
- showZero: p = !1,
14
- badgeAriaLabel: b,
15
- children: c,
16
- ...f
17
- }, _) {
18
- const w = s === 0 || s === "0", d = (s == null || w && !p) === !0;
19
- let m = s;
20
- typeof s == "number" && e !== void 0 && s > e && (m = `${e}+`);
21
- const t = n(
10
+ variant: m = "outside",
11
+ vertical: p = "top",
12
+ horizontal: f = "right",
13
+ max: o,
14
+ showZero: _ = !1,
15
+ badgeAriaLabel: r,
16
+ children: a,
17
+ ...d
18
+ }, w) {
19
+ const t = s === 0 || s === "0", i = (s == null || t && !_) === !0;
20
+ let l = s;
21
+ typeof s == "number" && o !== void 0 && s > o && (l = `${o}+`);
22
+ const u = h(
22
23
  "smwb-badge",
23
- `smwb-badge_${i}`,
24
- `smwb-badge_${r}`,
25
- `smwb-badge_${r}_${a}`,
26
- `smwb-badge_${r}_${a}_${l}`,
27
- o,
28
- { "smwb-badge_no-content": d }
24
+ `smwb-badge_${c}`,
25
+ `smwb-badge_${m}`,
26
+ `smwb-badge_${m}_${p}`,
27
+ `smwb-badge_${m}_${p}_${f}`,
28
+ e,
29
+ { "smwb-badge_no-content": i }
29
30
  );
30
- return /* @__PURE__ */ u("span", { className: "smwb-badge__wrapper", "data-testid": "badge", children: [
31
- c,
32
- /* @__PURE__ */ $("span", { ref: _, className: t, "aria-label": b, ...f, children: d ? null : m })
31
+ return /* @__PURE__ */ $("span", { className: "smwb-badge__wrapper", "data-testid": "badge", children: [
32
+ a,
33
+ /* @__PURE__ */ n(
34
+ "span",
35
+ {
36
+ ...d,
37
+ ref: w,
38
+ className: u,
39
+ "aria-label": r != null ? r : d["aria-label"],
40
+ children: i ? null : l
41
+ }
42
+ )
33
43
  ] });
34
44
  });
35
45
  export {
36
- x as Badge,
37
- x as default
46
+ R as Badge,
47
+ R as default
38
48
  };
39
49
  //# sourceMappingURL=badge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"badge.js","sources":["../../../../src/components/dataDisplay/badge/badge.tsx"],"sourcesContent":["import React, { forwardRef, HTMLAttributes, PropsWithChildren } from \"react\";\nimport cn from \"clsx\";\n\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n className?: string;\n badgeContent?: React.ReactNode;\n color?: \"primary\" | \"success\" | \"danger\";\n variant?: \"inside\" | \"outside\";\n vertical?: \"top\" | \"bottom\";\n horizontal?: \"right\" | \"left\";\n /** Cap numeric content, rendering `{max}+` when exceeded. */\n max?: number;\n /** Render the badge even when content is 0. */\n showZero?: boolean;\n /** Accessible label for the badge value. */\n badgeAriaLabel?: string;\n}\n\nexport const Badge = forwardRef<HTMLSpanElement, PropsWithChildren<BadgeProps>>(function Badge(\n {\n className,\n color = \"primary\",\n badgeContent,\n variant = \"outside\",\n vertical = \"top\",\n horizontal = \"right\",\n max,\n showZero = false,\n badgeAriaLabel,\n children,\n ...rest\n },\n ref\n) {\n const isZero = badgeContent === 0 || badgeContent === \"0\";\n const hidden = (badgeContent === undefined || badgeContent === null || (isZero && !showZero)) === true;\n\n let display: React.ReactNode = badgeContent;\n if (typeof badgeContent === \"number\" && max !== undefined && badgeContent > max) {\n display = `${max}+`;\n }\n\n const badgeClassname = cn(\n \"smwb-badge\",\n `smwb-badge_${color}`,\n `smwb-badge_${variant}`,\n `smwb-badge_${variant}_${vertical}`,\n `smwb-badge_${variant}_${vertical}_${horizontal}`,\n className,\n { \"smwb-badge_no-content\": hidden }\n );\n\n return (\n <span className=\"smwb-badge__wrapper\" data-testid=\"badge\">\n {children}\n <span ref={ref} className={badgeClassname} aria-label={badgeAriaLabel} {...rest}>\n {hidden ? null : display}\n </span>\n </span>\n );\n});\n\nexport default Badge;\n"],"names":["Badge","forwardRef","className","color","badgeContent","variant","vertical","horizontal","max","showZero","badgeAriaLabel","children","rest","ref","isZero","hidden","display","badgeClassname","cn","jsxs","jsx"],"mappings":";;;;AAmBO,MAAMA,IAAQC,EAA2D,SAC9E;AAAA,EACE,WAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,cAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,UAAAC,IAAW;AAAA,EACX,YAAAC,IAAa;AAAA,EACb,KAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAASV,MAAiB,KAAKA,MAAiB,KAChDW,KAAwCX,KAAiB,QAASU,KAAU,CAACL,OAAe;AAElG,MAAIO,IAA2BZ;AAC/B,EAAI,OAAOA,KAAiB,YAAYI,MAAQ,UAAaJ,IAAeI,MAC1EQ,IAAU,GAAGR,CAAG;AAGlB,QAAMS,IAAiBC;AAAA,IACrB;AAAA,IACA,cAAcf,CAAK;AAAA,IACnB,cAAcE,CAAO;AAAA,IACrB,cAAcA,CAAO,IAAIC,CAAQ;AAAA,IACjC,cAAcD,CAAO,IAAIC,CAAQ,IAAIC,CAAU;AAAA,IAC/CL;AAAA,IACA,EAAE,yBAAyBa,EAAA;AAAA,EAAO;AAGpC,SACE,gBAAAI,EAAC,QAAA,EAAK,WAAU,uBAAsB,eAAY,SAC/C,UAAA;AAAA,IAAAR;AAAA,IACD,gBAAAS,EAAC,QAAA,EAAK,KAAAP,GAAU,WAAWI,GAAgB,cAAYP,GAAiB,GAAGE,GACxE,UAAAG,IAAS,OAAOC,EAAA,CACnB;AAAA,EAAA,GACF;AAEJ,CAAC;"}
1
+ {"version":3,"file":"badge.js","sources":["../../../../src/components/dataDisplay/badge/badge.tsx"],"sourcesContent":["import React, { forwardRef, HTMLAttributes, PropsWithChildren } from \"react\";\nimport cn from \"clsx\";\n\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n className?: string;\n badgeContent?: React.ReactNode;\n color?: \"primary\" | \"success\" | \"danger\";\n variant?: \"inside\" | \"outside\";\n vertical?: \"top\" | \"bottom\";\n horizontal?: \"right\" | \"left\";\n /** Cap numeric content, rendering `{max}+` when exceeded. */\n max?: number;\n /** Render the badge even when content is 0. */\n showZero?: boolean;\n /** Accessible label for the badge value. */\n badgeAriaLabel?: string;\n}\n\nexport const Badge = forwardRef<HTMLSpanElement, PropsWithChildren<BadgeProps>>(function Badge(\n {\n className,\n color = \"primary\",\n badgeContent,\n variant = \"outside\",\n vertical = \"top\",\n horizontal = \"right\",\n max,\n showZero = false,\n badgeAriaLabel,\n children,\n ...rest\n },\n ref\n) {\n const isZero = badgeContent === 0 || badgeContent === \"0\";\n const hidden = (badgeContent === undefined || badgeContent === null || (isZero && !showZero)) === true;\n\n let display: React.ReactNode = badgeContent;\n if (typeof badgeContent === \"number\" && max !== undefined && badgeContent > max) {\n display = `${max}+`;\n }\n\n const badgeClassname = cn(\n \"smwb-badge\",\n `smwb-badge_${color}`,\n `smwb-badge_${variant}`,\n `smwb-badge_${variant}_${vertical}`,\n `smwb-badge_${variant}_${vertical}_${horizontal}`,\n className,\n { \"smwb-badge_no-content\": hidden }\n );\n\n return (\n <span className=\"smwb-badge__wrapper\" data-testid=\"badge\">\n {children}\n <span\n {...rest}\n ref={ref}\n className={badgeClassname}\n // `badgeAriaLabel` wins over the caller's aria-label; without it, the caller's stays.\n aria-label={badgeAriaLabel ?? rest[\"aria-label\"]}\n >\n {hidden ? null : display}\n </span>\n </span>\n );\n});\n\nexport default Badge;\n"],"names":["Badge","forwardRef","className","color","badgeContent","variant","vertical","horizontal","max","showZero","badgeAriaLabel","children","rest","ref","isZero","hidden","display","badgeClassname","cn","jsxs","jsx"],"mappings":";;;;;AAoBO,MAAMA,IAAQC,EAA2D,SAC9E;AAAA,EACE,WAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,cAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,UAAAC,IAAW;AAAA,EACX,YAAAC,IAAa;AAAA,EACb,KAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAASV,MAAiB,KAAKA,MAAiB,KAChDW,KAAwCX,KAAiB,QAASU,KAAU,CAACL,OAAe;AAElG,MAAIO,IAA2BZ;AAC/B,EAAI,OAAOA,KAAiB,YAAYI,MAAQ,UAAaJ,IAAeI,MAC1EQ,IAAU,GAAGR,CAAG;AAGlB,QAAMS,IAAiBC;AAAA,IACrB;AAAA,IACA,cAAcf,CAAK;AAAA,IACnB,cAAcE,CAAO;AAAA,IACrB,cAAcA,CAAO,IAAIC,CAAQ;AAAA,IACjC,cAAcD,CAAO,IAAIC,CAAQ,IAAIC,CAAU;AAAA,IAC/CL;AAAA,IACA,EAAE,yBAAyBa,EAAA;AAAA,EAAO;AAGpC,SACE,gBAAAI,EAAC,QAAA,EAAK,WAAU,uBAAsB,eAAY,SAC/C,UAAA;AAAA,IAAAR;AAAA,IACD,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAGR;AAAA,QACJ,KAAAC;AAAA,QACA,WAAWI;AAAA,QAEX,cAAYP,KAAA,OAAAA,IAAkBE,EAAK,YAAY;AAAA,QAE9C,cAAS,OAAOI;AAAA,MAAA;AAAA,IAAA;AAAA,EACnB,GACF;AAEJ,CAAC;"}
@@ -1,13 +1,41 @@
1
1
  import React, { HTMLAttributes, ReactNode } from "react";
2
2
  export interface CardProps extends HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * Class name(s) for the root `<div>`, the card's box. `style`, `id`, `data-*`, `aria-hidden`, `ref` and event
5
+ * handlers go to the root too. With `onClick`, `role`, `tabIndex`, `onFocus`, `onBlur` and the other `aria-*`
6
+ * attributes go to the card's button, `.smwb-card__content` (the title and the children), which is also the element
7
+ * to focus. Without `onClick` the card is not a control, and they stay on the root, which holds the footer too.
8
+ */
3
9
  className?: string;
4
10
  variant?: "filled" | "elevated" | "outlined";
11
+ /**
12
+ * Disables the card: it says `aria-disabled`, and neither clicks nor keys run `onClick`. With `onClick` the card is
13
+ * still a button, out of the tab order.
14
+ */
5
15
  disabled?: boolean;
16
+ /**
17
+ * A heading drawn at the top of the card, not the `title` attribute. With `onClick` it is part of the card's button,
18
+ * and the button's name starts with it.
19
+ */
6
20
  title?: string;
7
- /** Footer slot rendered after the content. */
21
+ /**
22
+ * Footer slot rendered after the content. With `onClick` it sits beside the card's button, not inside it, so
23
+ * controls here keep their own names, clicks and keys; see `onClick`.
24
+ */
8
25
  footer?: ReactNode;
9
- /** Makes the card interactive (role=button, keyboard, focus ring). */
26
+ /**
27
+ * Makes the card interactive: its content (the title and the children) becomes a button, named by that content, with
28
+ * a focus ring around the whole card. The footer is not part of that button but its sibling, so the card's controls
29
+ * go there: a control in the children would sit inside the button, and its name would join the card's.
30
+ *
31
+ * Runs when the card is activated: a click on it, or Enter / Space while its button has focus. A click on a control
32
+ * (button, link, input, anything focusable), in the footer or the children, or in a portal opened from the card does
33
+ * not run it, and neither do Enter / Space pressed on such a control. Content that is not a control keeps its click
34
+ * from activating the card by calling `preventDefault()` on it.
35
+ */
10
36
  onClick?: React.MouseEventHandler<HTMLDivElement>;
37
+ /** Test id of the root `<div>`; `card` unless given. */
38
+ "data-testid"?: string;
11
39
  }
12
40
  export declare const Card: React.ForwardRefExoticComponent<CardProps & {
13
41
  children?: ReactNode | undefined;
@@ -1,36 +1,64 @@
1
- import { jsxs as _, jsx as c } from "react/jsx-runtime";
2
- import '../../../assets/styles/less/components/card/card.entry.css';/* empty css */
3
- import l from "react";
4
- import p from "clsx";
5
- const j = l.forwardRef(function({ className: m, variant: v = "elevated", children: f, disabled: t, title: s, footer: i, onClick: r, onKeyDown: e, ...o }, b) {
6
- const a = !!r && !t, n = (d) => {
7
- e == null || e(d), a && (d.key === "Enter" || d.key === " ") && (d.preventDefault(), r == null || r(d));
1
+ import { jsxs as n, jsx as v } from "react/jsx-runtime";
2
+ import '../../../assets/styles/less/components/card/card.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
4
+ import N, { useRef as R } from "react";
5
+ import j from "clsx";
6
+ import { isOwnClick as I } from "../../../utils/ownClick.js";
7
+ import { splitControlProps as g } from "../../../utils/controlProps.js";
8
+ const B = N.forwardRef(function({
9
+ className: b,
10
+ variant: p = "elevated",
11
+ children: l,
12
+ disabled: a,
13
+ title: m,
14
+ footer: c,
15
+ onClick: r,
16
+ onKeyDown: e,
17
+ "data-testid": u = "card",
18
+ ..._
19
+ }, h) {
20
+ var f;
21
+ const d = !!r && !a, [s, o] = g(_, !!r), i = R(null), w = (t) => {
22
+ e == null || e(t), !(!d || t.target !== i.current) && (t.key === "Enter" || t.key === " ") && (t.preventDefault(), r == null || r(t));
23
+ }, x = (t) => {
24
+ I(t, i.current) && (r == null || r(t));
8
25
  };
9
- return /* @__PURE__ */ _(
26
+ return /* @__PURE__ */ n(
10
27
  "div",
11
28
  {
12
- ref: b,
13
- "data-testid": "card",
14
- className: p("smwb-card", `smwb-card_${v}`, m, {
15
- card_disabled: t,
16
- "smwb-card_interactive": a
29
+ ref: h,
30
+ "data-testid": u,
31
+ className: j("smwb-card", `smwb-card_${p}`, b, {
32
+ card_disabled: a,
33
+ "smwb-card_interactive": d
17
34
  }),
18
- role: a ? "button" : void 0,
19
- tabIndex: a ? 0 : void 0,
20
- "aria-disabled": t || void 0,
21
- onClick: a ? r : void 0,
22
- onKeyDown: n,
23
35
  ...o,
36
+ "aria-disabled": r ? void 0 : a || o["aria-disabled"],
37
+ onClick: d ? x : void 0,
38
+ onKeyDown: w,
24
39
  children: [
25
- s && /* @__PURE__ */ c("div", { className: "smwb-card__title", children: s }),
26
- f,
27
- i && /* @__PURE__ */ c("div", { className: "smwb-card__footer", children: i })
40
+ /* @__PURE__ */ n(
41
+ "div",
42
+ {
43
+ ...s,
44
+ ref: i,
45
+ className: "smwb-card__content",
46
+ role: r ? "button" : void 0,
47
+ tabIndex: (f = s.tabIndex) != null ? f : d ? 0 : void 0,
48
+ "aria-disabled": r ? a || s["aria-disabled"] : void 0,
49
+ children: [
50
+ m && /* @__PURE__ */ v("div", { className: "smwb-card__title", children: m }),
51
+ l
52
+ ]
53
+ }
54
+ ),
55
+ c && /* @__PURE__ */ v("div", { className: "smwb-card__footer", children: c })
28
56
  ]
29
57
  }
30
58
  );
31
59
  });
32
60
  export {
33
- j as Card,
34
- j as default
61
+ B as Card,
62
+ B as default
35
63
  };
36
64
  //# sourceMappingURL=card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","sources":["../../../../src/components/dataDisplay/card/card.tsx"],"sourcesContent":["import React, { HTMLAttributes, PropsWithChildren, ReactNode } from \"react\";\nimport cn from \"clsx\";\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n variant?: \"filled\" | \"elevated\" | \"outlined\";\n disabled?: boolean;\n title?: string;\n /** Footer slot rendered after the content. */\n footer?: ReactNode;\n /** Makes the card interactive (role=button, keyboard, focus ring). */\n onClick?: React.MouseEventHandler<HTMLDivElement>;\n}\n\nexport const Card = React.forwardRef<HTMLDivElement, PropsWithChildren<CardProps>>(function Card(\n { className, variant = \"elevated\", children, disabled, title, footer, onClick, onKeyDown, ...rest },\n ref\n) {\n const interactive = !!onClick && !disabled;\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e);\n if (interactive && (e.key === \"Enter\" || e.key === \" \")) {\n e.preventDefault();\n onClick?.(e as unknown as React.MouseEvent<HTMLDivElement>);\n }\n };\n\n return (\n <div\n ref={ref}\n data-testid=\"card\"\n className={cn(\"smwb-card\", `smwb-card_${variant}`, className, {\n card_disabled: disabled,\n \"smwb-card_interactive\": interactive,\n })}\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive ? 0 : undefined}\n aria-disabled={disabled || undefined}\n onClick={interactive ? onClick : undefined}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {title && <div className=\"smwb-card__title\">{title}</div>}\n {children}\n {footer && <div className=\"smwb-card__footer\">{footer}</div>}\n </div>\n );\n});\n\nexport default Card;\n"],"names":["Card","React","className","variant","children","disabled","title","footer","onClick","onKeyDown","rest","ref","interactive","handleKeyDown","e","jsxs","cn","jsx"],"mappings":";;;;AAeO,MAAMA,IAAOC,EAAM,WAAyD,SACjF,EAAE,WAAAC,GAAW,SAAAC,IAAU,YAAY,UAAAC,GAAU,UAAAC,GAAU,OAAAC,GAAO,QAAAC,GAAQ,SAAAC,GAAS,WAAAC,GAAW,GAAGC,EAAA,GAC7FC,GACA;AACA,QAAMC,IAAc,CAAC,CAACJ,KAAW,CAACH,GAE5BQ,IAAgB,CAACC,MAA2C;AAChE,IAAAL,KAAA,QAAAA,EAAYK,IACRF,MAAgBE,EAAE,QAAQ,WAAWA,EAAE,QAAQ,SACjDA,EAAE,eAAA,GACFN,KAAA,QAAAA,EAAUM;AAAA,EAEd;AAEA,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAJ;AAAA,MACA,eAAY;AAAA,MACZ,WAAWK,EAAG,aAAa,aAAab,CAAO,IAAID,GAAW;AAAA,QAC5D,eAAeG;AAAA,QACf,yBAAyBO;AAAA,MAAA,CAC1B;AAAA,MACD,MAAMA,IAAc,WAAW;AAAA,MAC/B,UAAUA,IAAc,IAAI;AAAA,MAC5B,iBAAeP,KAAY;AAAA,MAC3B,SAASO,IAAcJ,IAAU;AAAA,MACjC,WAAWK;AAAA,MACV,GAAGH;AAAA,MAEH,UAAA;AAAA,QAAAJ,KAAS,gBAAAW,EAAC,OAAA,EAAI,WAAU,oBAAoB,UAAAX,GAAM;AAAA,QAClDF;AAAA,QACAG,KAAU,gBAAAU,EAAC,OAAA,EAAI,WAAU,qBAAqB,UAAAV,EAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG5D,CAAC;"}
1
+ {"version":3,"file":"card.js","sources":["../../../../src/components/dataDisplay/card/card.tsx"],"sourcesContent":["import React, { HTMLAttributes, PropsWithChildren, ReactNode, useRef } from \"react\";\nimport cn from \"clsx\";\nimport { isOwnClick } from \"../../../utils/ownClick\";\nimport { splitControlProps } from \"../../../utils/controlProps\";\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Class name(s) for the root `<div>`, the card's box. `style`, `id`, `data-*`, `aria-hidden`, `ref` and event\n * handlers go to the root too. With `onClick`, `role`, `tabIndex`, `onFocus`, `onBlur` and the other `aria-*`\n * attributes go to the card's button, `.smwb-card__content` (the title and the children), which is also the element\n * to focus. Without `onClick` the card is not a control, and they stay on the root, which holds the footer too.\n */\n className?: string;\n variant?: \"filled\" | \"elevated\" | \"outlined\";\n /**\n * Disables the card: it says `aria-disabled`, and neither clicks nor keys run `onClick`. With `onClick` the card is\n * still a button, out of the tab order.\n */\n disabled?: boolean;\n /**\n * A heading drawn at the top of the card, not the `title` attribute. With `onClick` it is part of the card's button,\n * and the button's name starts with it.\n */\n title?: string;\n /**\n * Footer slot rendered after the content. With `onClick` it sits beside the card's button, not inside it, so\n * controls here keep their own names, clicks and keys; see `onClick`.\n */\n footer?: ReactNode;\n /**\n * Makes the card interactive: its content (the title and the children) becomes a button, named by that content, with\n * a focus ring around the whole card. The footer is not part of that button but its sibling, so the card's controls\n * go there: a control in the children would sit inside the button, and its name would join the card's.\n *\n * Runs when the card is activated: a click on it, or Enter / Space while its button has focus. A click on a control\n * (button, link, input, anything focusable), in the footer or the children, or in a portal opened from the card does\n * not run it, and neither do Enter / Space pressed on such a control. Content that is not a control keeps its click\n * from activating the card by calling `preventDefault()` on it.\n */\n onClick?: React.MouseEventHandler<HTMLDivElement>;\n /** Test id of the root `<div>`; `card` unless given. */\n \"data-testid\"?: string;\n}\n\nexport const Card = React.forwardRef<HTMLDivElement, PropsWithChildren<CardProps>>(function Card(\n {\n className,\n variant = \"elevated\",\n children,\n disabled,\n title,\n footer,\n onClick,\n onKeyDown,\n \"data-testid\": dataTestId = \"card\",\n ...rest\n },\n ref\n) {\n const interactive = !!onClick && !disabled;\n // With onClick the card's content is its button, and what the card is to the\n // keyboard and to assistive tech goes there. Without it the card is not a\n // control: the caller's role and ARIA attributes stay on the root, around\n // the footer too.\n const [control, box] = splitControlProps(rest, !!onClick);\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n // Keys pressed in the footer or on a control inside bubble up here too; only\n // the keys of the card's button activate it. The caller's onKeyDown still\n // sees them all.\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e);\n if (!interactive || e.target !== contentRef.current) return;\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick?.(e as unknown as React.MouseEvent<HTMLDivElement>);\n }\n };\n\n // A click on the card's button, or on what is not a control beside it (the\n // footer's text, the padding), activates the card: not one on a control, nor\n // one in a portal rendered inside (React delivers it here, though it landed\n // outside), nor one whose default a handler inside has prevented.\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (isOwnClick(e, contentRef.current)) onClick?.(e);\n };\n\n return (\n <div\n ref={ref}\n data-testid={dataTestId}\n className={cn(\"smwb-card\", `smwb-card_${variant}`, className, {\n card_disabled: disabled,\n \"smwb-card_interactive\": interactive,\n })}\n {...box}\n // A disabled card says so where the caller's ARIA attributes are: on its\n // button with onClick, on the root without.\n aria-disabled={onClick ? undefined : disabled || box[\"aria-disabled\"]}\n onClick={interactive ? handleClick : undefined}\n onKeyDown={handleKeyDown}\n >\n <div\n {...control}\n ref={contentRef}\n className=\"smwb-card__content\"\n // With onClick the content is the card's button, and a disabled card\n // says so: these win over the caller's, and where the card sets none,\n // the caller's stay. Its tabIndex is a default: the caller's wins, e.g.\n // for roving focus.\n role={onClick ? \"button\" : undefined}\n tabIndex={control.tabIndex ?? (interactive ? 0 : undefined)}\n aria-disabled={onClick ? disabled || control[\"aria-disabled\"] : undefined}\n >\n {title && <div className=\"smwb-card__title\">{title}</div>}\n {children}\n </div>\n {/* Beside the button, not in it: controls here keep their names and input. */}\n {footer && <div className=\"smwb-card__footer\">{footer}</div>}\n </div>\n );\n});\n\nexport default Card;\n"],"names":["Card","React","className","variant","children","disabled","title","footer","onClick","onKeyDown","dataTestId","rest","ref","interactive","control","box","splitControlProps","contentRef","useRef","handleKeyDown","e","handleClick","isOwnClick","jsxs","cn","_a","jsx"],"mappings":";;;;;;;AA8CO,MAAMA,IAAOC,EAAM,WAAyD,SACjF;AAAA,EACE,WAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAeC,IAAa;AAAA,EAC5B,GAAGC;AACL,GACAC,GACA;;AACA,QAAMC,IAAc,CAAC,CAACL,KAAW,CAACH,GAK5B,CAACS,GAASC,CAAG,IAAIC,EAAkBL,GAAM,CAAC,CAACH,CAAO,GAClDS,IAAaC,EAA8B,IAAI,GAK/CC,IAAgB,CAACC,MAA2C;AAEhE,IADAX,KAAA,QAAAA,EAAYW,IACR,GAACP,KAAeO,EAAE,WAAWH,EAAW,aACxCG,EAAE,QAAQ,WAAWA,EAAE,QAAQ,SACjCA,EAAE,eAAA,GACFZ,KAAA,QAAAA,EAAUY;AAAA,EAEd,GAMMC,IAAc,CAACD,MAAwC;AAC3D,IAAIE,EAAWF,GAAGH,EAAW,OAAO,qBAAaG;AAAA,EACnD;AAEA,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAX;AAAA,MACA,eAAaF;AAAA,MACb,WAAWc,EAAG,aAAa,aAAarB,CAAO,IAAID,GAAW;AAAA,QAC5D,eAAeG;AAAA,QACf,yBAAyBQ;AAAA,MAAA,CAC1B;AAAA,MACA,GAAGE;AAAA,MAGJ,iBAAeP,IAAU,SAAYH,KAAYU,EAAI,eAAe;AAAA,MACpE,SAASF,IAAcQ,IAAc;AAAA,MACrC,WAAWF;AAAA,MAEX,UAAA;AAAA,QAAA,gBAAAI;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAGT;AAAA,YACJ,KAAKG;AAAA,YACL,WAAU;AAAA,YAKV,MAAMT,IAAU,WAAW;AAAA,YAC3B,WAAUiB,IAAAX,EAAQ,aAAR,OAAAW,IAAqBZ,IAAc,IAAI;AAAA,YACjD,iBAAeL,IAAUH,KAAYS,EAAQ,eAAe,IAAI;AAAA,YAE/D,UAAA;AAAA,cAAAR,KAAS,gBAAAoB,EAAC,OAAA,EAAI,WAAU,oBAAoB,UAAApB,GAAM;AAAA,cAClDF;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGFG,KAAU,gBAAAmB,EAAC,OAAA,EAAI,WAAU,qBAAqB,UAAAnB,EAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG5D,CAAC;"}