@smwb/ui-react 2.6.3 → 2.7.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 (416) hide show
  1. package/AI_LESS_OVERRIDES.md +4 -2
  2. package/AI_THEMING.md +17 -1
  3. package/README.md +84 -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/chart/chart.entry.css +1 -0
  7. package/dist/assets/styles/less/components/descriptionList/descriptionList.entry.css +1 -0
  8. package/dist/assets/styles/less/components/emptyState/emptyState.entry.css +1 -0
  9. package/dist/assets/styles/less/components/kanban/kanban.entry.css +1 -0
  10. package/dist/assets/styles/less/components/meter/meter.entry.css +1 -0
  11. package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -0
  12. package/dist/assets/styles/less/components/progressIndicator/progressIndicator.entry.css +1 -1
  13. package/dist/assets/styles/less/components/sectionHeader/sectionHeader.entry.css +1 -0
  14. package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
  15. package/dist/assets/styles/less/components/stat/stat.entry.css +1 -0
  16. package/dist/assets/styles/less/components/stepper/stepper.entry.css +1 -1
  17. package/dist/assets/styles/less/components/table/table.entry.css +1 -1
  18. package/dist/assets/styles/less/components/tabs/tab/tab.entry.css +1 -1
  19. package/dist/assets/styles/less/components/tabs/tabs.entry.css +1 -1
  20. package/dist/assets/styles/less/components/textField/textField.entry.css +1 -1
  21. package/dist/assets/styles/less/components/timeline/timeline.entry.css +1 -0
  22. package/dist/assets/styles/less/components/tooltip/tooltip.entry.css +1 -1
  23. package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
  24. package/dist/assets/styles/less/connects/rt/table.entry.css +1 -0
  25. package/dist/assets/styles/less/tokens.entry.css +1 -0
  26. package/dist/chart.d.ts +2 -0
  27. package/dist/chart.js +8 -0
  28. package/dist/chart.js.map +1 -0
  29. package/dist/components/base/icon/icon.js +8 -7
  30. package/dist/components/base/icon/icon.js.map +1 -1
  31. package/dist/components/base/ripple/ripple.js +11 -10
  32. package/dist/components/base/ripple/ripple.js.map +1 -1
  33. package/dist/components/dataDisplay/accordion/accordion.d.ts +18 -1
  34. package/dist/components/dataDisplay/accordion/accordion.js +77 -54
  35. package/dist/components/dataDisplay/accordion/accordion.js.map +1 -1
  36. package/dist/components/dataDisplay/assetGrid/assetGrid.js +15 -14
  37. package/dist/components/dataDisplay/assetGrid/assetGrid.js.map +1 -1
  38. package/dist/components/dataDisplay/avatar/avatar.d.ts +4 -0
  39. package/dist/components/dataDisplay/avatar/avatar.js +45 -30
  40. package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
  41. package/dist/components/dataDisplay/badge/badge.js +11 -10
  42. package/dist/components/dataDisplay/badge/badge.js.map +1 -1
  43. package/dist/components/dataDisplay/card/card.js +16 -15
  44. package/dist/components/dataDisplay/card/card.js.map +1 -1
  45. package/dist/components/dataDisplay/carousel/carousel.js +23 -22
  46. package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
  47. package/dist/components/dataDisplay/chart/chart.d.ts +65 -0
  48. package/dist/components/dataDisplay/chart/chart.js +133 -0
  49. package/dist/components/dataDisplay/chart/chart.js.map +1 -0
  50. package/dist/components/dataDisplay/chart/chartTheme.d.ts +35 -0
  51. package/dist/components/dataDisplay/chart/chartTheme.js +74 -0
  52. package/dist/components/dataDisplay/chart/chartTheme.js.map +1 -0
  53. package/dist/components/dataDisplay/chart/index.d.ts +4 -0
  54. package/dist/components/dataDisplay/chat/chat.js +5 -4
  55. package/dist/components/dataDisplay/chat/chat.js.map +1 -1
  56. package/dist/components/dataDisplay/chip/chip.js +5 -4
  57. package/dist/components/dataDisplay/chip/chip.js.map +1 -1
  58. package/dist/components/dataDisplay/chipGroup/chipGroup.js +10 -9
  59. package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  60. package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +37 -0
  61. package/dist/components/dataDisplay/descriptionList/descriptionList.js +43 -0
  62. package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -0
  63. package/dist/components/dataDisplay/descriptionList/index.d.ts +2 -0
  64. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +5 -4
  65. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  66. package/dist/components/dataDisplay/imagesList/imagesList.js +11 -10
  67. package/dist/components/dataDisplay/imagesList/imagesList.js.map +1 -1
  68. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js +31 -24
  69. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js.map +1 -1
  70. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.d.ts +1 -1
  71. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js +16 -13
  72. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js.map +1 -1
  73. package/dist/components/dataDisplay/kanban/index.d.ts +2 -0
  74. package/dist/components/dataDisplay/kanban/kanban.d.ts +47 -0
  75. package/dist/components/dataDisplay/kanban/kanban.js +63 -0
  76. package/dist/components/dataDisplay/kanban/kanban.js.map +1 -0
  77. package/dist/components/dataDisplay/lazyImage/lazyImage.js +9 -8
  78. package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  79. package/dist/components/dataDisplay/list/list.js +11 -10
  80. package/dist/components/dataDisplay/list/list.js.map +1 -1
  81. package/dist/components/dataDisplay/meter/index.d.ts +2 -0
  82. package/dist/components/dataDisplay/meter/meter.d.ts +33 -0
  83. package/dist/components/dataDisplay/meter/meter.js +62 -0
  84. package/dist/components/dataDisplay/meter/meter.js.map +1 -0
  85. package/dist/components/dataDisplay/personChip/index.d.ts +2 -0
  86. package/dist/components/dataDisplay/personChip/personChip.d.ts +31 -0
  87. package/dist/components/dataDisplay/personChip/personChip.js +61 -0
  88. package/dist/components/dataDisplay/personChip/personChip.js.map +1 -0
  89. package/dist/components/dataDisplay/stat/index.d.ts +2 -0
  90. package/dist/components/dataDisplay/stat/stat.d.ts +36 -0
  91. package/dist/components/dataDisplay/stat/stat.js +48 -0
  92. package/dist/components/dataDisplay/stat/stat.js.map +1 -0
  93. package/dist/components/dataDisplay/table/table.d.ts +7 -0
  94. package/dist/components/dataDisplay/table/table.js +21 -15
  95. package/dist/components/dataDisplay/table/table.js.map +1 -1
  96. package/dist/components/dataDisplay/table/tableCell.d.ts +3 -1
  97. package/dist/components/dataDisplay/table/tableCell.js +11 -2
  98. package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
  99. package/dist/components/dataDisplay/table/tableHeadCell.d.ts +11 -1
  100. package/dist/components/dataDisplay/table/tableHeadCell.js +54 -24
  101. package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  102. package/dist/components/dataDisplay/table/tablePagination/tablePagination.js +10 -9
  103. package/dist/components/dataDisplay/table/tablePagination/tablePagination.js.map +1 -1
  104. package/dist/components/dataDisplay/thumbCard/thumbCard.js +10 -9
  105. package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  106. package/dist/components/dataDisplay/timeline/index.d.ts +2 -0
  107. package/dist/components/dataDisplay/timeline/timeline.d.ts +43 -0
  108. package/dist/components/dataDisplay/timeline/timeline.js +44 -0
  109. package/dist/components/dataDisplay/timeline/timeline.js.map +1 -0
  110. package/dist/components/dataDisplay/treeView/treeView.js +5 -4
  111. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  112. package/dist/components/dataDisplay/typography/typography.d.ts +4 -0
  113. package/dist/components/dataDisplay/typography/typography.js +41 -23
  114. package/dist/components/dataDisplay/typography/typography.js.map +1 -1
  115. package/dist/components/feedBack/confirmDialog/confirmDialog.js +14 -13
  116. package/dist/components/feedBack/confirmDialog/confirmDialog.js.map +1 -1
  117. package/dist/components/feedBack/emptyState/emptyState.d.ts +26 -0
  118. package/dist/components/feedBack/emptyState/emptyState.js +27 -0
  119. package/dist/components/feedBack/emptyState/emptyState.js.map +1 -0
  120. package/dist/components/feedBack/emptyState/index.d.ts +2 -0
  121. package/dist/components/feedBack/message/message.js +8 -7
  122. package/dist/components/feedBack/message/message.js.map +1 -1
  123. package/dist/components/feedBack/modal/modal.js +5 -4
  124. package/dist/components/feedBack/modal/modal.js.map +1 -1
  125. package/dist/components/feedBack/progressIndicator/progressIndicator.d.ts +14 -1
  126. package/dist/components/feedBack/progressIndicator/progressIndicator.js +72 -40
  127. package/dist/components/feedBack/progressIndicator/progressIndicator.js.map +1 -1
  128. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js +32 -31
  129. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -1
  130. package/dist/components/feedBack/skeleton/skeleton.js +17 -16
  131. package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
  132. package/dist/components/feedBack/snackbar/snackbar.js +6 -5
  133. package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
  134. package/dist/components/feedBack/tooltip/tooltip.js +57 -49
  135. package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
  136. package/dist/components/inputs/button/button.js +16 -15
  137. package/dist/components/inputs/button/button.js.map +1 -1
  138. package/dist/components/inputs/buttonGroups/buttonGroup.js +5 -4
  139. package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  140. package/dist/components/inputs/checkbox/checkbox.js +10 -9
  141. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  142. package/dist/components/inputs/datePicker/datePicker.js +123 -120
  143. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  144. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +121 -119
  145. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  146. package/dist/components/inputs/fileDrop/fileDrop.js +13 -12
  147. package/dist/components/inputs/fileDrop/fileDrop.js.map +1 -1
  148. package/dist/components/inputs/fileInput/fileInput.js +4 -3
  149. package/dist/components/inputs/fileInput/fileInput.js.map +1 -1
  150. package/dist/components/inputs/floatingButton/floatingButton.js +17 -16
  151. package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
  152. package/dist/components/inputs/radioButton/radioButton.js +11 -10
  153. package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
  154. package/dist/components/inputs/rating/rating.js +18 -17
  155. package/dist/components/inputs/rating/rating.js.map +1 -1
  156. package/dist/components/inputs/selectField/dropdownMenu.d.ts +1 -1
  157. package/dist/components/inputs/selectField/dropdownMenu.js +72 -69
  158. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  159. package/dist/components/inputs/selectField/selectField.d.ts +2 -0
  160. package/dist/components/inputs/selectField/selectField.js +128 -117
  161. package/dist/components/inputs/selectField/selectField.js.map +1 -1
  162. package/dist/components/inputs/slider/slider.js +4 -3
  163. package/dist/components/inputs/slider/slider.js.map +1 -1
  164. package/dist/components/inputs/textField/textField.js +16 -15
  165. package/dist/components/inputs/textField/textField.js.map +1 -1
  166. package/dist/components/inputs/textField/utils.d.ts +1 -1
  167. package/dist/components/inputs/timePicker/timePicker.js +66 -63
  168. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  169. package/dist/components/inputs/toggle/toggle.js +14 -13
  170. package/dist/components/inputs/toggle/toggle.js.map +1 -1
  171. package/dist/components/inputs/valueSlider/valueSlider.js +9 -8
  172. package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
  173. package/dist/components/layout/appLayout/appLayout.js +20 -19
  174. package/dist/components/layout/appLayout/appLayout.js.map +1 -1
  175. package/dist/components/layout/divider/divider.js +9 -8
  176. package/dist/components/layout/divider/divider.js.map +1 -1
  177. package/dist/components/layout/floatingWindow/floatingWindow.js +4 -3
  178. package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  179. package/dist/components/layout/grid/grid.js +17 -16
  180. package/dist/components/layout/grid/grid.js.map +1 -1
  181. package/dist/components/layout/page/page.js +9 -8
  182. package/dist/components/layout/page/page.js.map +1 -1
  183. package/dist/components/layout/pageHeader/pageHeader.js +10 -9
  184. package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
  185. package/dist/components/layout/screenDivider/screenDivider.js +19 -18
  186. package/dist/components/layout/screenDivider/screenDivider.js.map +1 -1
  187. package/dist/components/layout/sectionHeader/index.d.ts +2 -0
  188. package/dist/components/layout/sectionHeader/sectionHeader.d.ts +31 -0
  189. package/dist/components/layout/sectionHeader/sectionHeader.js +67 -0
  190. package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -0
  191. package/dist/components/layout/sheet/sheet.js +5 -4
  192. package/dist/components/layout/sheet/sheet.js.map +1 -1
  193. package/dist/components/layout/stack/stack.js +10 -9
  194. package/dist/components/layout/stack/stack.js.map +1 -1
  195. package/dist/components/navigation/appBar/appBar.js +18 -17
  196. package/dist/components/navigation/appBar/appBar.js.map +1 -1
  197. package/dist/components/navigation/bottomBar/bottomBar.js +5 -4
  198. package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
  199. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +5 -4
  200. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  201. package/dist/components/navigation/menu/menu.js +6 -5
  202. package/dist/components/navigation/menu/menu.js.map +1 -1
  203. package/dist/components/navigation/overflowMenu/overflowMenu.js +16 -15
  204. package/dist/components/navigation/overflowMenu/overflowMenu.js.map +1 -1
  205. package/dist/components/navigation/pagination/pagination.js +5 -4
  206. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  207. package/dist/components/navigation/sidebar/sidebar.js +13 -12
  208. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  209. package/dist/components/navigation/stepper/stepper.d.ts +10 -2
  210. package/dist/components/navigation/stepper/stepper.js +33 -30
  211. package/dist/components/navigation/stepper/stepper.js.map +1 -1
  212. package/dist/components/navigation/tabs/tab/tab.d.ts +2 -0
  213. package/dist/components/navigation/tabs/tab/tab.js +14 -13
  214. package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
  215. package/dist/components/navigation/tabs/tabs.d.ts +12 -0
  216. package/dist/components/navigation/tabs/tabs.js +138 -83
  217. package/dist/components/navigation/tabs/tabs.js.map +1 -1
  218. package/dist/connects/rt/table/draggableHeader.d.ts +1 -1
  219. package/dist/connects/rt/table/draggableHeader.js.map +1 -0
  220. package/dist/connects/rt/table/headerCellRenderer.d.ts +6 -0
  221. package/dist/connects/rt/table/headerCellRenderer.js +21 -0
  222. package/dist/connects/rt/table/headerCellRenderer.js.map +1 -0
  223. package/dist/connects/rt/table/table.d.ts +2 -0
  224. package/dist/connects/rt/table/table.js +200 -0
  225. package/dist/connects/rt/table/table.js.map +1 -0
  226. package/dist/connects/rt/table/utils.js.map +1 -0
  227. package/dist/headless/components/dataDisplay/accordion/accordion.js +76 -54
  228. package/dist/headless/components/dataDisplay/accordion/accordion.js.map +1 -1
  229. package/dist/headless/components/dataDisplay/avatar/avatar.js +45 -31
  230. package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
  231. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js +41 -0
  232. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -0
  233. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js +29 -23
  234. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js.map +1 -1
  235. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js +16 -13
  236. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js.map +1 -1
  237. package/dist/headless/components/dataDisplay/kanban/kanban.js +61 -0
  238. package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -0
  239. package/dist/headless/components/dataDisplay/meter/meter.js +60 -0
  240. package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -0
  241. package/dist/headless/components/dataDisplay/personChip/personChip.js +59 -0
  242. package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -0
  243. package/dist/headless/components/dataDisplay/stat/stat.js +46 -0
  244. package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -0
  245. package/dist/headless/components/dataDisplay/table/table.js +16 -11
  246. package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
  247. package/dist/headless/components/dataDisplay/table/tableCell.js +11 -2
  248. package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
  249. package/dist/headless/components/dataDisplay/table/tableHeadCell.js +54 -24
  250. package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  251. package/dist/headless/components/dataDisplay/timeline/timeline.js +42 -0
  252. package/dist/headless/components/dataDisplay/timeline/timeline.js.map +1 -0
  253. package/dist/headless/components/dataDisplay/typography/typography.js +39 -22
  254. package/dist/headless/components/dataDisplay/typography/typography.js.map +1 -1
  255. package/dist/headless/components/feedBack/emptyState/emptyState.js +25 -0
  256. package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -0
  257. package/dist/headless/components/feedBack/progressIndicator/progressIndicator.js +70 -39
  258. package/dist/headless/components/feedBack/progressIndicator/progressIndicator.js.map +1 -1
  259. package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js +30 -30
  260. package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -1
  261. package/dist/headless/components/feedBack/tooltip/tooltip.js +53 -46
  262. package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
  263. package/dist/headless/components/inputs/datePicker/datePicker.js +112 -110
  264. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  265. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +121 -119
  266. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  267. package/dist/headless/components/inputs/selectField/dropdownMenu.js +72 -69
  268. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  269. package/dist/headless/components/inputs/selectField/selectField.js +109 -99
  270. package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
  271. package/dist/headless/components/inputs/timePicker/timePicker.js +65 -63
  272. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  273. package/dist/headless/components/layout/sectionHeader/sectionHeader.js +65 -0
  274. package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -0
  275. package/dist/headless/components/navigation/stepper/stepper.js +31 -29
  276. package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
  277. package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
  278. package/dist/headless/components/navigation/tabs/tabs.js +129 -75
  279. package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
  280. package/dist/headless/hooks/useSafeLayoutEffect.js +4 -2
  281. package/dist/headless/hooks/useSafeLayoutEffect.js.map +1 -1
  282. package/dist/headless/icons/catalog.js +78 -1
  283. package/dist/headless/icons/catalog.js.map +1 -1
  284. package/dist/headless/icons/index.js +596 -574
  285. package/dist/headless/icons/index.js.map +1 -1
  286. package/dist/headless/icons/svg/accountTree.js +9 -0
  287. package/dist/headless/icons/svg/accountTree.js.map +1 -0
  288. package/dist/headless/icons/svg/callSplit.js +9 -0
  289. package/dist/headless/icons/svg/callSplit.js.map +1 -0
  290. package/dist/headless/icons/svg/deviceHub.js +8 -0
  291. package/dist/headless/icons/svg/deviceHub.js.map +1 -0
  292. package/dist/headless/icons/svg/editNote.js +9 -0
  293. package/dist/headless/icons/svg/editNote.js.map +1 -0
  294. package/dist/headless/icons/svg/filterList.js +9 -0
  295. package/dist/headless/icons/svg/filterList.js.map +1 -0
  296. package/dist/headless/icons/svg/forkRight.js +8 -0
  297. package/dist/headless/icons/svg/forkRight.js.map +1 -0
  298. package/dist/headless/icons/svg/groups.js +9 -0
  299. package/dist/headless/icons/svg/groups.js.map +1 -0
  300. package/dist/headless/icons/svg/hub.js +8 -0
  301. package/dist/headless/icons/svg/hub.js.map +1 -0
  302. package/dist/headless/icons/svg/index.js +598 -576
  303. package/dist/headless/icons/svg/index.js.map +1 -1
  304. package/dist/headless/icons/svg/lan.js +9 -0
  305. package/dist/headless/icons/svg/lan.js.map +1 -0
  306. package/dist/headless/icons/svg/personOff.js +9 -0
  307. package/dist/headless/icons/svg/personOff.js.map +1 -0
  308. package/dist/headless/icons/svg/schema.js +9 -0
  309. package/dist/headless/icons/svg/schema.js.map +1 -0
  310. package/dist/headless/index.js +209 -183
  311. package/dist/headless/index.js.map +1 -1
  312. package/dist/hooks/useSafeLayoutEffect.d.ts +7 -1
  313. package/dist/hooks/useSafeLayoutEffect.js +4 -2
  314. package/dist/hooks/useSafeLayoutEffect.js.map +1 -1
  315. package/dist/icons/catalog.d.ts +1 -1
  316. package/dist/icons/catalog.js +78 -1
  317. package/dist/icons/catalog.js.map +1 -1
  318. package/dist/icons/index.js +596 -574
  319. package/dist/icons/index.js.map +1 -1
  320. package/dist/icons/svg/accountTree.d.ts +4 -0
  321. package/dist/icons/svg/accountTree.js +9 -0
  322. package/dist/icons/svg/accountTree.js.map +1 -0
  323. package/dist/icons/svg/callSplit.d.ts +4 -0
  324. package/dist/icons/svg/callSplit.js +9 -0
  325. package/dist/icons/svg/callSplit.js.map +1 -0
  326. package/dist/icons/svg/deviceHub.d.ts +4 -0
  327. package/dist/icons/svg/deviceHub.js +8 -0
  328. package/dist/icons/svg/deviceHub.js.map +1 -0
  329. package/dist/icons/svg/editNote.d.ts +4 -0
  330. package/dist/icons/svg/editNote.js +9 -0
  331. package/dist/icons/svg/editNote.js.map +1 -0
  332. package/dist/icons/svg/filterList.d.ts +4 -0
  333. package/dist/icons/svg/filterList.js +9 -0
  334. package/dist/icons/svg/filterList.js.map +1 -0
  335. package/dist/icons/svg/forkRight.d.ts +4 -0
  336. package/dist/icons/svg/forkRight.js +8 -0
  337. package/dist/icons/svg/forkRight.js.map +1 -0
  338. package/dist/icons/svg/groups.d.ts +4 -0
  339. package/dist/icons/svg/groups.js +9 -0
  340. package/dist/icons/svg/groups.js.map +1 -0
  341. package/dist/icons/svg/hub.d.ts +4 -0
  342. package/dist/icons/svg/hub.js +8 -0
  343. package/dist/icons/svg/hub.js.map +1 -0
  344. package/dist/icons/svg/index.d.ts +11 -0
  345. package/dist/icons/svg/index.js +598 -576
  346. package/dist/icons/svg/index.js.map +1 -1
  347. package/dist/icons/svg/lan.d.ts +4 -0
  348. package/dist/icons/svg/lan.js +9 -0
  349. package/dist/icons/svg/lan.js.map +1 -0
  350. package/dist/icons/svg/personOff.d.ts +4 -0
  351. package/dist/icons/svg/personOff.js +9 -0
  352. package/dist/icons/svg/personOff.js.map +1 -0
  353. package/dist/icons/svg/schema.d.ts +4 -0
  354. package/dist/icons/svg/schema.js +9 -0
  355. package/dist/icons/svg/schema.js.map +1 -0
  356. package/dist/icons.cjs +1 -1
  357. package/dist/icons.cjs.map +1 -1
  358. package/dist/index.cjs +2 -2
  359. package/dist/index.cjs.map +1 -1
  360. package/dist/index.d.ts +16 -0
  361. package/dist/index.js +209 -183
  362. package/dist/index.js.map +1 -1
  363. package/package.json +18 -7
  364. package/dist/react-table/components/base/icon/icon.js +0 -60
  365. package/dist/react-table/components/base/icon/icon.js.map +0 -1
  366. package/dist/react-table/components/base/icon/iconProvider.js +0 -15
  367. package/dist/react-table/components/base/icon/iconProvider.js.map +0 -1
  368. package/dist/react-table/components/dataDisplay/table/table.js +0 -37
  369. package/dist/react-table/components/dataDisplay/table/table.js.map +0 -1
  370. package/dist/react-table/components/dataDisplay/table/tableBody.js +0 -7
  371. package/dist/react-table/components/dataDisplay/table/tableBody.js.map +0 -1
  372. package/dist/react-table/components/dataDisplay/table/tableCell.js +0 -7
  373. package/dist/react-table/components/dataDisplay/table/tableCell.js.map +0 -1
  374. package/dist/react-table/components/dataDisplay/table/tableHead.js +0 -7
  375. package/dist/react-table/components/dataDisplay/table/tableHead.js.map +0 -1
  376. package/dist/react-table/components/dataDisplay/table/tableHeadCell.js +0 -48
  377. package/dist/react-table/components/dataDisplay/table/tableHeadCell.js.map +0 -1
  378. package/dist/react-table/components/dataDisplay/table/tablePagination/tablePagination.js +0 -40
  379. package/dist/react-table/components/dataDisplay/table/tablePagination/tablePagination.js.map +0 -1
  380. package/dist/react-table/components/dataDisplay/table/tableRow.js +0 -20
  381. package/dist/react-table/components/dataDisplay/table/tableRow.js.map +0 -1
  382. package/dist/react-table/components/feedBack/message/message.js +0 -31
  383. package/dist/react-table/components/feedBack/message/message.js.map +0 -1
  384. package/dist/react-table/components/feedBack/progressIndicator/progressIndicator.js +0 -51
  385. package/dist/react-table/components/feedBack/progressIndicator/progressIndicator.js.map +0 -1
  386. package/dist/react-table/components/inputs/textField/textField.js +0 -125
  387. package/dist/react-table/components/inputs/textField/textField.js.map +0 -1
  388. package/dist/react-table/components/inputs/textField/textFieldAdornment.js +0 -25
  389. package/dist/react-table/components/inputs/textField/textFieldAdornment.js.map +0 -1
  390. package/dist/react-table/components/inputs/textField/textFieldWrapper.js +0 -50
  391. package/dist/react-table/components/inputs/textField/textFieldWrapper.js.map +0 -1
  392. package/dist/react-table/components/inputs/textField/utils.js +0 -11
  393. package/dist/react-table/components/inputs/textField/utils.js.map +0 -1
  394. package/dist/react-table/connects/rt/table/draggableHeader.js.map +0 -1
  395. package/dist/react-table/connects/rt/table/headerCellRenderer.js +0 -14
  396. package/dist/react-table/connects/rt/table/headerCellRenderer.js.map +0 -1
  397. package/dist/react-table/connects/rt/table/table.js +0 -180
  398. package/dist/react-table/connects/rt/table/table.js.map +0 -1
  399. package/dist/react-table/connects/rt/table/utils.js.map +0 -1
  400. package/dist/react-table/hooks/useForkRef.js +0 -13
  401. package/dist/react-table/hooks/useForkRef.js.map +0 -1
  402. package/dist/react-table/hooks/useSafeLayoutEffect.js +0 -6
  403. package/dist/react-table/hooks/useSafeLayoutEffect.js.map +0 -1
  404. package/dist/react-table/icons/config.js +0 -9
  405. package/dist/react-table/icons/config.js.map +0 -1
  406. package/dist/react-table/icons/registry.js +0 -12
  407. package/dist/react-table/icons/registry.js.map +0 -1
  408. package/dist/react-table/icons/store.js +0 -10
  409. package/dist/react-table/icons/store.js.map +0 -1
  410. package/dist/react-table/utils/setRef.js +0 -7
  411. package/dist/react-table/utils/setRef.js.map +0 -1
  412. package/dist/storybook/storyPlay.d.ts +0 -28
  413. /package/dist/{react-table/connects → connects}/rt/table/draggableHeader.js +0 -0
  414. /package/dist/{react-table/connects → connects}/rt/table/utils.js +0 -0
  415. /package/dist/{react-table/react-table.js → react-table.js} +0 -0
  416. /package/dist/{react-table/react-table.js.map → react-table.js.map} +0 -0
@@ -0,0 +1,33 @@
1
+ import React, { HTMLAttributes, ReactNode } from "react";
2
+ export type MeterColor = "neutral" | "primary" | "info" | "success" | "warning" | "error";
3
+ /** From this share of `max` (0–1) on, the meter takes `color`. */
4
+ export interface MeterThreshold {
5
+ from: number;
6
+ color: MeterColor;
7
+ }
8
+ /** Info while under way, success when complete. */
9
+ export declare const DEFAULT_METER_THRESHOLDS: readonly MeterThreshold[];
10
+ export interface MeterProps extends Omit<HTMLAttributes<HTMLDivElement>, "role"> {
11
+ className?: string;
12
+ /** How many are done (X of Y). */
13
+ value: number;
14
+ /** How many there are in all (X of Y). */
15
+ max: number;
16
+ /** What is measured — the accessible name, e.g. "Requirements accepted". */
17
+ label: string;
18
+ /** Visible text instead of "X of Y": markup, or a function of (value, max). */
19
+ text?: ReactNode | ((value: number, max: number) => ReactNode);
20
+ /** The word between the figures in the default text and in aria-valuetext. */
21
+ ofLabel?: string;
22
+ /** Colour by share of `max`: the last threshold the share reaches wins. */
23
+ thresholds?: readonly MeterThreshold[];
24
+ /** A fixed colour, instead of the thresholds. */
25
+ color?: MeterColor;
26
+ /** The bar only; the text stays available to assistive technology. */
27
+ hideText?: boolean;
28
+ }
29
+ /** The colour for a share of the whole: the last threshold (by `from`) the share reaches. */
30
+ export declare function meterColor(share: number, thresholds: readonly MeterThreshold[]): MeterColor;
31
+ /** A share of a whole, "X of Y": a bar and the figures beside it, coloured by thresholds. */
32
+ export declare const Meter: React.ForwardRefExoticComponent<MeterProps & React.RefAttributes<HTMLDivElement>>;
33
+ export default Meter;
@@ -0,0 +1,62 @@
1
+ import { jsxs as n, jsx as m, Fragment as u } from "react/jsx-runtime";
2
+ import '../../../assets/styles/less/components/meter/meter.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
4
+ import w from "react";
5
+ import b from "clsx";
6
+ const N = [
7
+ { from: 0, color: "info" },
8
+ { from: 1, color: "success" }
9
+ ];
10
+ function M(i, o) {
11
+ let e = "neutral", r = -1 / 0;
12
+ for (const t of o)
13
+ i >= t.from && t.from >= r && (e = t.color, r = t.from);
14
+ return e;
15
+ }
16
+ const j = w.forwardRef(function({
17
+ className: o,
18
+ value: e,
19
+ max: r,
20
+ label: t,
21
+ text: a,
22
+ ofLabel: l = "of",
23
+ thresholds: d = N,
24
+ color: s,
25
+ hideText: c,
26
+ ..._
27
+ }, h) {
28
+ const f = r > 0 ? Math.min(1, Math.max(0, e / r)) : 0, p = s != null ? s : M(f, d);
29
+ return /* @__PURE__ */ n(
30
+ "div",
31
+ {
32
+ ..._,
33
+ ref: h,
34
+ role: "meter",
35
+ "aria-label": t,
36
+ "aria-valuenow": e,
37
+ "aria-valuemin": 0,
38
+ "aria-valuemax": r,
39
+ "aria-valuetext": `${e} ${l} ${r}`,
40
+ "data-testid": "meter",
41
+ className: b("smwb-meter", `smwb-meter_color-${p}`, { "smwb-meter_bar-only": c }, o),
42
+ children: [
43
+ /* @__PURE__ */ m("span", { className: "smwb-meter__track", "aria-hidden": "true", children: /* @__PURE__ */ m("span", { className: "smwb-meter__fill", style: { width: `${f * 100}%` } }) }),
44
+ c ? null : /* @__PURE__ */ m("span", { className: "smwb-meter__text", "aria-hidden": "true", children: a === void 0 ? /* @__PURE__ */ n(u, { children: [
45
+ /* @__PURE__ */ m("b", { className: "smwb-meter__value", children: e }),
46
+ /* @__PURE__ */ n("span", { className: "smwb-meter__of", children: [
47
+ " ",
48
+ l,
49
+ " ",
50
+ r
51
+ ] })
52
+ ] }) : typeof a == "function" ? a(e, r) : a })
53
+ ]
54
+ }
55
+ );
56
+ });
57
+ export {
58
+ N as DEFAULT_METER_THRESHOLDS,
59
+ j as Meter,
60
+ M as meterColor
61
+ };
62
+ //# sourceMappingURL=meter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meter.js","sources":["../../../../src/components/dataDisplay/meter/meter.tsx"],"sourcesContent":["import React, { HTMLAttributes, ReactNode } from \"react\";\nimport cn from \"clsx\";\n\nexport type MeterColor = \"neutral\" | \"primary\" | \"info\" | \"success\" | \"warning\" | \"error\";\n\n/** From this share of `max` (0–1) on, the meter takes `color`. */\nexport interface MeterThreshold {\n from: number;\n color: MeterColor;\n}\n\n/** Info while under way, success when complete. */\nexport const DEFAULT_METER_THRESHOLDS: readonly MeterThreshold[] = [\n { from: 0, color: \"info\" },\n { from: 1, color: \"success\" },\n];\n\nexport interface MeterProps extends Omit<HTMLAttributes<HTMLDivElement>, \"role\"> {\n className?: string;\n /** How many are done (X of Y). */\n value: number;\n /** How many there are in all (X of Y). */\n max: number;\n /** What is measured — the accessible name, e.g. \"Requirements accepted\". */\n label: string;\n /** Visible text instead of \"X of Y\": markup, or a function of (value, max). */\n text?: ReactNode | ((value: number, max: number) => ReactNode);\n /** The word between the figures in the default text and in aria-valuetext. */\n ofLabel?: string;\n /** Colour by share of `max`: the last threshold the share reaches wins. */\n thresholds?: readonly MeterThreshold[];\n /** A fixed colour, instead of the thresholds. */\n color?: MeterColor;\n /** The bar only; the text stays available to assistive technology. */\n hideText?: boolean;\n}\n\n/** The colour for a share of the whole: the last threshold (by `from`) the share reaches. */\nexport function meterColor(share: number, thresholds: readonly MeterThreshold[]): MeterColor {\n let color: MeterColor = \"neutral\";\n let from = -Infinity;\n for (const threshold of thresholds) {\n if (share >= threshold.from && threshold.from >= from) {\n color = threshold.color;\n from = threshold.from;\n }\n }\n return color;\n}\n\n/** A share of a whole, \"X of Y\": a bar and the figures beside it, coloured by thresholds. */\nexport const Meter = React.forwardRef<HTMLDivElement, MeterProps>(function Meter(\n {\n className,\n value,\n max,\n label,\n text,\n ofLabel = \"of\",\n thresholds = DEFAULT_METER_THRESHOLDS,\n color,\n hideText,\n ...rest\n },\n ref\n) {\n const share = max > 0 ? Math.min(1, Math.max(0, value / max)) : 0;\n const tone = color ?? meterColor(share, thresholds);\n return (\n <div\n {...rest}\n ref={ref}\n role=\"meter\"\n aria-label={label}\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuetext={`${value} ${ofLabel} ${max}`}\n data-testid=\"meter\"\n className={cn(\"smwb-meter\", `smwb-meter_color-${tone}`, { \"smwb-meter_bar-only\": hideText }, className)}\n >\n <span className=\"smwb-meter__track\" aria-hidden=\"true\">\n <span className=\"smwb-meter__fill\" style={{ width: `${share * 100}%` }} />\n </span>\n {hideText ? null : (\n <span className=\"smwb-meter__text\" aria-hidden=\"true\">\n {text === undefined ? (\n <>\n <b className=\"smwb-meter__value\">{value}</b>\n <span className=\"smwb-meter__of\">\n {\" \"}\n {ofLabel} {max}\n </span>\n </>\n ) : typeof text === \"function\" ? (\n text(value, max)\n ) : (\n text\n )}\n </span>\n )}\n </div>\n );\n});\n\nexport default Meter;\n"],"names":["DEFAULT_METER_THRESHOLDS","meterColor","share","thresholds","color","from","threshold","Meter","React","className","value","max","label","text","ofLabel","hideText","rest","ref","tone","jsxs","cn","jsx","Fragment"],"mappings":";;;;;AAcO,MAAMA,IAAsD;AAAA,EACjE,EAAE,MAAM,GAAG,OAAO,OAAA;AAAA,EAClB,EAAE,MAAM,GAAG,OAAO,UAAA;AACpB;AAuBO,SAASC,EAAWC,GAAeC,GAAmD;AAC3F,MAAIC,IAAoB,WACpBC,IAAO;AACX,aAAWC,KAAaH;AACtB,IAAID,KAASI,EAAU,QAAQA,EAAU,QAAQD,MAC/CD,IAAQE,EAAU,OAClBD,IAAOC,EAAU;AAGrB,SAAOF;AACT;AAGO,MAAMG,IAAQC,EAAM,WAAuC,SAChE;AAAA,EACE,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,KAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,YAAAX,IAAaH;AAAA,EACb,OAAAI;AAAA,EACA,UAAAW;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMf,IAAQS,IAAM,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGD,IAAQC,CAAG,CAAC,IAAI,GAC1DO,IAAOd,KAAA,OAAAA,IAASH,EAAWC,GAAOC,CAAU;AAClD,SACE,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGH;AAAA,MACJ,KAAAC;AAAA,MACA,MAAK;AAAA,MACL,cAAYL;AAAA,MACZ,iBAAeF;AAAA,MACf,iBAAe;AAAA,MACf,iBAAeC;AAAA,MACf,kBAAgB,GAAGD,CAAK,IAAII,CAAO,IAAIH,CAAG;AAAA,MAC1C,eAAY;AAAA,MACZ,WAAWS,EAAG,cAAc,oBAAoBF,CAAI,IAAI,EAAE,uBAAuBH,EAAA,GAAYN,CAAS;AAAA,MAEtG,UAAA;AAAA,QAAA,gBAAAY,EAAC,UAAK,WAAU,qBAAoB,eAAY,QAC9C,4BAAC,QAAA,EAAK,WAAU,oBAAmB,OAAO,EAAE,OAAO,GAAGnB,IAAQ,GAAG,OAAO,GAC1E;AAAA,QACCa,IAAW,OACV,gBAAAM,EAAC,QAAA,EAAK,WAAU,oBAAmB,eAAY,QAC5C,UAAAR,MAAS,SACR,gBAAAM,EAAAG,GAAA,EACE,UAAA;AAAA,UAAA,gBAAAD,EAAC,KAAA,EAAE,WAAU,qBAAqB,UAAAX,GAAM;AAAA,UACxC,gBAAAS,EAAC,QAAA,EAAK,WAAU,kBACb,UAAA;AAAA,YAAA;AAAA,YACAL;AAAA,YAAQ;AAAA,YAAEH;AAAA,UAAA,EAAA,CACb;AAAA,QAAA,GACF,IACE,OAAOE,KAAS,aAClBA,EAAKH,GAAOC,CAAG,IAEfE,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR,CAAC;"}
@@ -0,0 +1,2 @@
1
+ export { PersonChip, initialsOf, avatarColor, default } from "./personChip";
2
+ export type { PersonChipProps } from "./personChip";
@@ -0,0 +1,31 @@
1
+ import React, { HTMLAttributes, ReactNode } from "react";
2
+ import { type AvatarSize } from "../avatar";
3
+ /** Up to two initials from a name: "Anna Petrova" → "AP", "anna" → "A". */
4
+ export declare function initialsOf(name: string): string;
5
+ /**
6
+ * A steady background colour for a person's avatar, derived from a seed (an id
7
+ * or the name): the same person always gets the same colour, on the server too.
8
+ */
9
+ export declare function avatarColor(seed: string): string;
10
+ export interface PersonChipProps extends Omit<HTMLAttributes<HTMLElement>, "title"> {
11
+ className?: string;
12
+ /** The person's name: shown beside the avatar, and the source of its initials. */
13
+ name: string;
14
+ /** Avatar image; initials on a colour without it or when it fails. */
15
+ src?: string;
16
+ /** Link to the person's card. */
17
+ href?: string;
18
+ /** The avatar only; the name becomes its tooltip and accessible name. */
19
+ compact?: boolean;
20
+ /** Avatar size: a preset or pixels. 24px by default. */
21
+ size?: AvatarSize | number;
22
+ /** Seed for the avatar colour (an id); the name by default. */
23
+ colorSeed?: string;
24
+ /** A fixed avatar colour instead of the derived one. */
25
+ color?: string;
26
+ /** A second line under the name: a role, a date. */
27
+ meta?: ReactNode;
28
+ }
29
+ /** A person: avatar and name, a link to their card when `href` is set. */
30
+ export declare const PersonChip: React.ForwardRefExoticComponent<PersonChipProps & React.RefAttributes<HTMLElement>>;
31
+ export default PersonChip;
@@ -0,0 +1,61 @@
1
+ import { jsxs as m, jsx as e } from "react/jsx-runtime";
2
+ import '../../../assets/styles/less/components/personChip/personChip.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
4
+ import d from "react";
5
+ import _ from "clsx";
6
+ import { Avatar as u } from "../avatar/avatar.js";
7
+ function b(a) {
8
+ const i = a.trim().split(/\s+/).filter(Boolean), s = (r) => {
9
+ var n;
10
+ return r && (n = Array.from(r)[0]) != null ? n : "";
11
+ };
12
+ return (s(i[0]) + (i.length > 1 ? s(i[i.length - 1]) : "")).toUpperCase();
13
+ }
14
+ function w(a) {
15
+ var s;
16
+ let i = 0;
17
+ for (const r of a) i = i * 31 + ((s = r.codePointAt(0)) != null ? s : 0) >>> 0;
18
+ return `hsl(${i % 360} 42% 42%)`;
19
+ }
20
+ const j = d.forwardRef(function({ className: i, name: s, src: r, href: n, compact: t, size: h = 24, colorSeed: p, color: o, meta: l, ...c }, f) {
21
+ return /* @__PURE__ */ m(
22
+ n ? "a" : "span",
23
+ {
24
+ ...c,
25
+ ref: f,
26
+ ...n ? { href: n } : {},
27
+ title: t ? s : void 0,
28
+ role: t && !n ? "img" : void 0,
29
+ "aria-label": t ? s : void 0,
30
+ "data-testid": "person-chip",
31
+ className: _(
32
+ "smwb-person-chip",
33
+ { "smwb-person-chip_link": !!n, "smwb-person-chip_compact": t },
34
+ i
35
+ ),
36
+ children: [
37
+ /* @__PURE__ */ e(
38
+ u,
39
+ {
40
+ className: "smwb-person-chip__avatar",
41
+ size: h,
42
+ src: r,
43
+ color: o != null ? o : w(p != null ? p : s),
44
+ "aria-hidden": "true",
45
+ children: b(s)
46
+ }
47
+ ),
48
+ t ? null : /* @__PURE__ */ m("span", { className: "smwb-person-chip__text", children: [
49
+ /* @__PURE__ */ e("span", { className: "smwb-person-chip__name", children: s }),
50
+ l ? /* @__PURE__ */ e("span", { className: "smwb-person-chip__meta", children: l }) : null
51
+ ] })
52
+ ]
53
+ }
54
+ );
55
+ });
56
+ export {
57
+ j as PersonChip,
58
+ w as avatarColor,
59
+ b as initialsOf
60
+ };
61
+ //# sourceMappingURL=personChip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personChip.js","sources":["../../../../src/components/dataDisplay/personChip/personChip.tsx"],"sourcesContent":["import React, { HTMLAttributes, ReactNode } from \"react\";\nimport cn from \"clsx\";\nimport { Avatar, type AvatarSize } from \"../avatar\";\n\n/** Up to two initials from a name: \"Anna Petrova\" → \"AP\", \"anna\" → \"A\". */\nexport function initialsOf(name: string): string {\n const words = name.trim().split(/\\s+/).filter(Boolean);\n const first = (word: string | undefined): string => (word ? (Array.from(word)[0] ?? \"\") : \"\");\n return (first(words[0]) + (words.length > 1 ? first(words[words.length - 1]) : \"\")).toUpperCase();\n}\n\n/**\n * A steady background colour for a person's avatar, derived from a seed (an id\n * or the name): the same person always gets the same colour, on the server too.\n */\nexport function avatarColor(seed: string): string {\n let hash = 0;\n for (const char of seed) hash = (hash * 31 + (char.codePointAt(0) ?? 0)) >>> 0;\n return `hsl(${hash % 360} 42% 42%)`;\n}\n\nexport interface PersonChipProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n className?: string;\n /** The person's name: shown beside the avatar, and the source of its initials. */\n name: string;\n /** Avatar image; initials on a colour without it or when it fails. */\n src?: string;\n /** Link to the person's card. */\n href?: string;\n /** The avatar only; the name becomes its tooltip and accessible name. */\n compact?: boolean;\n /** Avatar size: a preset or pixels. 24px by default. */\n size?: AvatarSize | number;\n /** Seed for the avatar colour (an id); the name by default. */\n colorSeed?: string;\n /** A fixed avatar colour instead of the derived one. */\n color?: string;\n /** A second line under the name: a role, a date. */\n meta?: ReactNode;\n}\n\n/** A person: avatar and name, a link to their card when `href` is set. */\nexport const PersonChip = React.forwardRef<HTMLElement, PersonChipProps>(function PersonChip(\n { className, name, src, href, compact, size = 24, colorSeed, color, meta, ...rest },\n ref\n) {\n const Tag = (href ? \"a\" : \"span\") as \"span\";\n return (\n <Tag\n {...rest}\n ref={ref}\n {...(href ? { href } : {})}\n title={compact ? name : undefined}\n role={compact && !href ? \"img\" : undefined}\n aria-label={compact ? name : undefined}\n data-testid=\"person-chip\"\n className={cn(\n \"smwb-person-chip\",\n { \"smwb-person-chip_link\": !!href, \"smwb-person-chip_compact\": compact },\n className\n )}\n >\n <Avatar\n className=\"smwb-person-chip__avatar\"\n size={size}\n src={src}\n color={color ?? avatarColor(colorSeed ?? name)}\n aria-hidden=\"true\"\n >\n {initialsOf(name)}\n </Avatar>\n {compact ? null : (\n <span className=\"smwb-person-chip__text\">\n <span className=\"smwb-person-chip__name\">{name}</span>\n {meta ? <span className=\"smwb-person-chip__meta\">{meta}</span> : null}\n </span>\n )}\n </Tag>\n );\n});\n\nexport default PersonChip;\n"],"names":["initialsOf","name","words","first","word","_a","avatarColor","seed","hash","char","PersonChip","React","className","src","href","compact","size","colorSeed","color","meta","rest","ref","jsxs","cn","jsx","Avatar"],"mappings":";;;;;;AAOO,SAASA,EAAWC,GAAsB;AAC/C,QAAMC,IAAQD,EAAK,KAAA,EAAO,MAAM,KAAK,EAAE,OAAO,OAAO,GAC/CE,IAAQ,CAACC,MAAA;;AAAsC,WAAAA,MAAQC,IAAA,MAAM,KAAKD,CAAI,EAAE,CAAC,MAAlB,OAAAC,IAA6B;AAAA;AAC1F,UAAQF,EAAMD,EAAM,CAAC,CAAC,KAAKA,EAAM,SAAS,IAAIC,EAAMD,EAAMA,EAAM,SAAS,CAAC,CAAC,IAAI,KAAK,YAAA;AACtF;AAMO,SAASI,EAAYC,GAAsB;;AAChD,MAAIC,IAAO;AACX,aAAWC,KAAQF,EAAM,CAAAC,IAAQA,IAAO,OAAMH,IAAAI,EAAK,YAAY,CAAC,MAAlB,OAAAJ,IAAuB,OAAQ;AAC7E,SAAO,OAAOG,IAAO,GAAG;AAC1B;AAuBO,MAAME,IAAaC,EAAM,WAAyC,SACvE,EAAE,WAAAC,GAAW,MAAAX,GAAM,KAAAY,GAAK,MAAAC,GAAM,SAAAC,GAAS,MAAAC,IAAO,IAAI,WAAAC,GAAW,OAAAC,GAAO,MAAAC,GAAM,GAAGC,EAAA,GAC7EC,GACA;AAEA,SACE,gBAAAC;AAAA,IAFWR,IAAO,MAAM;AAAA,IAEvB;AAAA,MACE,GAAGM;AAAA,MACJ,KAAAC;AAAA,MACC,GAAIP,IAAO,EAAE,MAAAA,EAAA,IAAS,CAAA;AAAA,MACvB,OAAOC,IAAUd,IAAO;AAAA,MACxB,MAAMc,KAAW,CAACD,IAAO,QAAQ;AAAA,MACjC,cAAYC,IAAUd,IAAO;AAAA,MAC7B,eAAY;AAAA,MACZ,WAAWsB;AAAA,QACT;AAAA,QACA,EAAE,yBAAyB,CAAC,CAACT,GAAM,4BAA4BC,EAAA;AAAA,QAC/DH;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAA,gBAAAY;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,MAAAT;AAAA,YACA,KAAAH;AAAA,YACA,OAAOK,KAAA,OAAAA,IAASZ,EAAYW,KAAA,OAAAA,IAAahB,CAAI;AAAA,YAC7C,eAAY;AAAA,YAEX,YAAWA,CAAI;AAAA,UAAA;AAAA,QAAA;AAAA,QAEjBc,IAAU,OACT,gBAAAO,EAAC,QAAA,EAAK,WAAU,0BACd,UAAA;AAAA,UAAA,gBAAAE,EAAC,QAAA,EAAK,WAAU,0BAA0B,UAAAvB,GAAK;AAAA,UAC9CkB,IAAO,gBAAAK,EAAC,QAAA,EAAK,WAAU,0BAA0B,aAAK,IAAU;AAAA,QAAA,EAAA,CACnE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR,CAAC;"}
@@ -0,0 +1,2 @@
1
+ export { Stat, StatGroup, default } from "./stat";
2
+ export type { StatProps, StatGroupProps, StatTone } from "./stat";
@@ -0,0 +1,36 @@
1
+ import React, { HTMLAttributes, ReactNode } from "react";
2
+ export type StatTone = "neutral" | "info" | "success" | "warning" | "error";
3
+ export interface StatProps extends Omit<HTMLAttributes<HTMLElement>, "title"> {
4
+ className?: string;
5
+ /** What the figure counts. */
6
+ label: ReactNode;
7
+ /** The figure — a number, or a short value such as "3 / 14". */
8
+ value: ReactNode;
9
+ /** A line under the value: a comparison, a period, a caveat. */
10
+ hint?: ReactNode;
11
+ /** An icon beside the figure: a Material Symbols name or an element. */
12
+ icon?: string | ReactNode;
13
+ /** Colour of the accent (a tile's edge, the icon). `warning` and `error` colour the figure too. */
14
+ tone?: StatTone;
15
+ /** `tile`: a bordered card with an accent edge, for KPIs. `plain`: text only, for rows of small figures. */
16
+ variant?: "tile" | "plain";
17
+ /** Make the whole stat a link to what the figure is made of. */
18
+ href?: string;
19
+ }
20
+ /**
21
+ * A figure with its label: a KPI tile on a dashboard, or a small stat in a row.
22
+ * Children go under it — a meter, a sparkline, a note.
23
+ */
24
+ export declare const Stat: React.ForwardRefExoticComponent<StatProps & {
25
+ children?: ReactNode | undefined;
26
+ } & React.RefAttributes<HTMLElement>>;
27
+ export interface StatGroupProps extends HTMLAttributes<HTMLDivElement> {
28
+ className?: string;
29
+ /** Narrowest a stat may get before the row wraps; a CSS length or px. 9rem by default. */
30
+ minItemWidth?: number | string;
31
+ }
32
+ /** A responsive row of stats: as many columns as fit, each at least `minItemWidth` wide. */
33
+ export declare const StatGroup: React.ForwardRefExoticComponent<StatGroupProps & {
34
+ children?: ReactNode | undefined;
35
+ } & React.RefAttributes<HTMLDivElement>>;
36
+ export default Stat;
@@ -0,0 +1,48 @@
1
+ import { jsxs as _, jsx as s } from "react/jsx-runtime";
2
+ import '../../../assets/styles/less/components/stat/stat.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
4
+ import c from "react";
5
+ import p from "clsx";
6
+ import { Icon as d } from "../../base/icon/icon.js";
7
+ const $ = c.forwardRef(function({ className: o, label: r, value: a, hint: m, icon: t, tone: l = "neutral", variant: n = "tile", href: e, children: i, ...b }, u) {
8
+ return /* @__PURE__ */ _(
9
+ e ? "a" : "div",
10
+ {
11
+ ...b,
12
+ ref: u,
13
+ ...e ? { href: e } : {},
14
+ "data-testid": "stat",
15
+ className: p(
16
+ "smwb-stat",
17
+ `smwb-stat_${n}`,
18
+ `smwb-stat_tone-${l}`,
19
+ { "smwb-stat_link": !!e, "smwb-stat_with-icon": !!t },
20
+ o
21
+ ),
22
+ children: [
23
+ t ? /* @__PURE__ */ s("span", { className: "smwb-stat__icon", "aria-hidden": "true", children: typeof t == "string" ? /* @__PURE__ */ s(d, { name: t, size: 20 }) : t }) : null,
24
+ /* @__PURE__ */ s("span", { className: "smwb-stat__label", children: r }),
25
+ /* @__PURE__ */ s("span", { className: "smwb-stat__value", children: a }),
26
+ m ? /* @__PURE__ */ s("span", { className: "smwb-stat__hint", children: m }) : null,
27
+ i ? /* @__PURE__ */ s("div", { className: "smwb-stat__extra", children: i }) : null
28
+ ]
29
+ }
30
+ );
31
+ }), h = c.forwardRef(function({ className: o, style: r, minItemWidth: a, children: m, ...t }, l) {
32
+ const n = typeof a == "number" ? `${a}px` : a;
33
+ return /* @__PURE__ */ s(
34
+ "div",
35
+ {
36
+ ...t,
37
+ ref: l,
38
+ className: p("smwb-stat-group", o),
39
+ style: n === void 0 ? r : { ...r, "--smwb-stat-min": n },
40
+ children: m
41
+ }
42
+ );
43
+ });
44
+ export {
45
+ $ as Stat,
46
+ h as StatGroup
47
+ };
48
+ //# sourceMappingURL=stat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stat.js","sources":["../../../../src/components/dataDisplay/stat/stat.tsx"],"sourcesContent":["import React, { CSSProperties, HTMLAttributes, PropsWithChildren, ReactNode } from \"react\";\nimport cn from \"clsx\";\nimport Icon from \"../../base/icon/icon\";\n\nexport type StatTone = \"neutral\" | \"info\" | \"success\" | \"warning\" | \"error\";\n\nexport interface StatProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n className?: string;\n /** What the figure counts. */\n label: ReactNode;\n /** The figure — a number, or a short value such as \"3 / 14\". */\n value: ReactNode;\n /** A line under the value: a comparison, a period, a caveat. */\n hint?: ReactNode;\n /** An icon beside the figure: a Material Symbols name or an element. */\n icon?: string | ReactNode;\n /** Colour of the accent (a tile's edge, the icon). `warning` and `error` colour the figure too. */\n tone?: StatTone;\n /** `tile`: a bordered card with an accent edge, for KPIs. `plain`: text only, for rows of small figures. */\n variant?: \"tile\" | \"plain\";\n /** Make the whole stat a link to what the figure is made of. */\n href?: string;\n}\n\n/**\n * A figure with its label: a KPI tile on a dashboard, or a small stat in a row.\n * Children go under it — a meter, a sparkline, a note.\n */\nexport const Stat = React.forwardRef<HTMLElement, PropsWithChildren<StatProps>>(function Stat(\n { className, label, value, hint, icon, tone = \"neutral\", variant = \"tile\", href, children, ...rest },\n ref\n) {\n const Tag = (href ? \"a\" : \"div\") as \"div\";\n return (\n <Tag\n {...rest}\n ref={ref as React.Ref<HTMLDivElement>}\n {...(href ? { href } : {})}\n data-testid=\"stat\"\n className={cn(\n \"smwb-stat\",\n `smwb-stat_${variant}`,\n `smwb-stat_tone-${tone}`,\n { \"smwb-stat_link\": !!href, \"smwb-stat_with-icon\": !!icon },\n className\n )}\n >\n {icon ? (\n <span className=\"smwb-stat__icon\" aria-hidden=\"true\">\n {typeof icon === \"string\" ? <Icon name={icon} size={20} /> : icon}\n </span>\n ) : null}\n <span className=\"smwb-stat__label\">{label}</span>\n <span className=\"smwb-stat__value\">{value}</span>\n {hint ? <span className=\"smwb-stat__hint\">{hint}</span> : null}\n {children ? <div className=\"smwb-stat__extra\">{children}</div> : null}\n </Tag>\n );\n});\n\nexport interface StatGroupProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n /** Narrowest a stat may get before the row wraps; a CSS length or px. 9rem by default. */\n minItemWidth?: number | string;\n}\n\n/** A responsive row of stats: as many columns as fit, each at least `minItemWidth` wide. */\nexport const StatGroup = React.forwardRef<HTMLDivElement, PropsWithChildren<StatGroupProps>>(function StatGroup(\n { className, style, minItemWidth, children, ...rest },\n ref\n) {\n const width = typeof minItemWidth === \"number\" ? `${minItemWidth}px` : minItemWidth;\n return (\n <div\n {...rest}\n ref={ref}\n className={cn(\"smwb-stat-group\", className)}\n style={width === undefined ? style : ({ ...style, \"--smwb-stat-min\": width } as CSSProperties)}\n >\n {children}\n </div>\n );\n});\n\nexport default Stat;\n"],"names":["Stat","React","className","label","value","hint","icon","tone","variant","href","children","rest","ref","jsxs","cn","jsx","Icon","StatGroup","style","minItemWidth","width"],"mappings":";;;;;;AA8BO,MAAMA,IAAOC,EAAM,WAAsD,SAC9E,EAAE,WAAAC,GAAW,OAAAC,GAAO,OAAAC,GAAO,MAAAC,GAAM,MAAAC,GAAM,MAAAC,IAAO,WAAW,SAAAC,IAAU,QAAQ,MAAAC,GAAM,UAAAC,GAAU,GAAGC,EAAA,GAC9FC,GACA;AAEA,SACE,gBAAAC;AAAA,IAFWJ,IAAO,MAAM;AAAA,IAEvB;AAAA,MACE,GAAGE;AAAA,MACJ,KAAAC;AAAA,MACC,GAAIH,IAAO,EAAE,MAAAA,EAAA,IAAS,CAAA;AAAA,MACvB,eAAY;AAAA,MACZ,WAAWK;AAAA,QACT;AAAA,QACA,aAAaN,CAAO;AAAA,QACpB,kBAAkBD,CAAI;AAAA,QACtB,EAAE,kBAAkB,CAAC,CAACE,GAAM,uBAAuB,CAAC,CAACH,EAAA;AAAA,QACrDJ;AAAA,MAAA;AAAA,MAGD,UAAA;AAAA,QAAAI,sBACE,QAAA,EAAK,WAAU,mBAAkB,eAAY,QAC3C,UAAA,OAAOA,KAAS,WAAW,gBAAAS,EAACC,KAAK,MAAMV,GAAM,MAAM,IAAI,IAAKA,GAC/D,IACE;AAAA,QACJ,gBAAAS,EAAC,QAAA,EAAK,WAAU,oBAAoB,UAAAZ,GAAM;AAAA,QAC1C,gBAAAY,EAAC,QAAA,EAAK,WAAU,oBAAoB,UAAAX,GAAM;AAAA,QACzCC,IAAO,gBAAAU,EAAC,QAAA,EAAK,WAAU,mBAAmB,aAAK,IAAU;AAAA,QACzDL,IAAW,gBAAAK,EAAC,OAAA,EAAI,WAAU,oBAAoB,UAAAL,GAAS,IAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGvE,CAAC,GASYO,IAAYhB,EAAM,WAA8D,SAC3F,EAAE,WAAAC,GAAW,OAAAgB,GAAO,cAAAC,GAAc,UAAAT,GAAU,GAAGC,EAAA,GAC/CC,GACA;AACA,QAAMQ,IAAQ,OAAOD,KAAiB,WAAW,GAAGA,CAAY,OAAOA;AACvE,SACE,gBAAAJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGJ;AAAA,MACJ,KAAAC;AAAA,MACA,WAAWE,EAAG,mBAAmBZ,CAAS;AAAA,MAC1C,OAAOkB,MAAU,SAAYF,IAAS,EAAE,GAAGA,GAAO,mBAAmBE,EAAA;AAAA,MAEpE,UAAAV;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
@@ -9,6 +9,13 @@ export interface TableProps extends HTMLAttributes<HTMLDivElement> {
9
9
  stickyHeader?: boolean;
10
10
  /** Optional accessible caption rendered for screen readers. */
11
11
  caption?: ReactNode;
12
+ /**
13
+ * Show each row as a card — cells one under another, each with its column's
14
+ * label — while the table's container is narrower than this breakpoint:
15
+ * `sm` (420px), `md` (768px) or `lg` (1024px). A container query: the space
16
+ * the table has decides, not the window. Labels come from `TableCell label`.
17
+ */
18
+ stackBelow?: "sm" | "md" | "lg";
12
19
  paginationSettings?: TablePaginationProps;
13
20
  }
14
21
  declare const Table: import("react").ForwardRefExoticComponent<TableProps & {
@@ -1,38 +1,44 @@
1
- import { jsxs as s, jsx as a } from "react/jsx-runtime";
2
- import '../../../assets/styles/less/components/table/table.entry.css';/* empty css */
3
- import { forwardRef as n } from "react";
1
+ import { jsxs as l, jsx as a } from "react/jsx-runtime";
2
+ import '../../../assets/styles/less/components/table/table.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
4
+ import { forwardRef as p } from "react";
4
5
  import r from "clsx";
5
- import _ from "./tablePagination/tablePagination.js";
6
- const v = n(
7
- ({ className: l, dense: b, hovered: o, children: t, paginationSettings: e, isLoading: i, stickyHeader: c, caption: m, ...w }, d) => /* @__PURE__ */ s(
6
+ import n from "./tablePagination/tablePagination.js";
7
+ const j = p(
8
+ ({ className: b, dense: t, hovered: o, children: i, paginationSettings: e, isLoading: w, stickyHeader: c, caption: m, stackBelow: s, ..._ }, d) => /* @__PURE__ */ l(
8
9
  "div",
9
10
  {
10
11
  ref: d,
11
- className: r("smwb-table__wrapper", l, {
12
- "smwb-table__wrapper_loading": i
13
- }),
14
- ...w,
12
+ className: r(
13
+ "smwb-table__wrapper",
14
+ b,
15
+ {
16
+ "smwb-table__wrapper_loading": w
17
+ },
18
+ s && `smwb-table__wrapper_stack-${s}`
19
+ ),
20
+ ..._,
15
21
  children: [
16
- /* @__PURE__ */ a("div", { className: r("smwb-table__container", { "smwb-withPagination": !!e }), children: /* @__PURE__ */ s(
22
+ /* @__PURE__ */ a("div", { className: r("smwb-table__container", { "smwb-withPagination": !!e }), children: /* @__PURE__ */ l(
17
23
  "table",
18
24
  {
19
25
  className: r("smwb-table", {
20
- "smwb-dense": b,
26
+ "smwb-dense": t,
21
27
  "smwb-hovered": o,
22
28
  "smwb-table_sticky-header": c
23
29
  }),
24
30
  children: [
25
31
  m != null && /* @__PURE__ */ a("caption", { className: "smwb-table__caption", children: m }),
26
- t
32
+ i
27
33
  ]
28
34
  }
29
35
  ) }),
30
- !!e && /* @__PURE__ */ a(_, { ...e })
36
+ !!e && /* @__PURE__ */ a(n, { ...e })
31
37
  ]
32
38
  }
33
39
  )
34
40
  );
35
41
  export {
36
- v as default
42
+ j as default
37
43
  };
38
44
  //# sourceMappingURL=table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../../src/components/dataDisplay/table/table.tsx"],"sourcesContent":["import { HTMLAttributes, PropsWithChildren, ReactNode, forwardRef } from \"react\";\nimport cn from \"clsx\";\nimport { TablePagination, TablePaginationProps } from \"./index\";\n\nexport interface TableProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n dense?: boolean;\n isLoading?: boolean;\n hovered?: boolean;\n /** Pins the table header while the body scrolls. */\n stickyHeader?: boolean;\n /** Optional accessible caption rendered for screen readers. */\n caption?: ReactNode;\n paginationSettings?: TablePaginationProps;\n}\n\nconst Table = forwardRef<HTMLDivElement, PropsWithChildren<TableProps>>(\n ({ className, dense, hovered, children, paginationSettings, isLoading, stickyHeader, caption, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"smwb-table__wrapper\", className, {\n [\"smwb-table__wrapper_loading\"]: isLoading,\n })}\n {...props}\n >\n <div className={cn(\"smwb-table__container\", { \"smwb-withPagination\": !!paginationSettings })}>\n <table\n className={cn(\"smwb-table\", {\n \"smwb-dense\": dense,\n [\"smwb-hovered\"]: hovered,\n \"smwb-table_sticky-header\": stickyHeader,\n })}\n >\n {caption != null && <caption className=\"smwb-table__caption\">{caption}</caption>}\n {children}\n </table>\n </div>\n {!!paginationSettings && <TablePagination {...paginationSettings} />}\n </div>\n );\n }\n);\n\nexport default Table;\n"],"names":["Table","forwardRef","className","dense","hovered","children","paginationSettings","isLoading","stickyHeader","caption","props","ref","jsxs","cn","jsx","TablePagination"],"mappings":";;;;;AAiBA,MAAMA,IAAQC;AAAA,EACZ,CAAC,EAAE,WAAAC,GAAW,OAAAC,GAAO,SAAAC,GAAS,UAAAC,GAAU,oBAAAC,GAAoB,WAAAC,GAAW,cAAAC,GAAc,SAAAC,GAAS,GAAGC,EAAA,GAASC,MAEtG,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE,EAAG,uBAAuBX,GAAW;AAAA,QAC7C,+BAAgCK;AAAA,MAAA,CAClC;AAAA,MACA,GAAGG;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAI,EAAC,OAAA,EAAI,WAAWD,EAAG,yBAAyB,EAAE,uBAAuB,CAAC,CAACP,GAAoB,GACzF,UAAA,gBAAAM;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWC,EAAG,cAAc;AAAA,cAC1B,cAAcV;AAAA,cACb,gBAAiBC;AAAA,cAClB,4BAA4BI;AAAA,YAAA,CAC7B;AAAA,YAEA,UAAA;AAAA,cAAAC,KAAW,QAAQ,gBAAAK,EAAC,WAAA,EAAQ,WAAU,uBAAuB,UAAAL,GAAQ;AAAA,cACrEJ;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,GAEL;AAAA,QACC,CAAC,CAACC,KAAsB,gBAAAQ,EAACC,GAAA,EAAiB,GAAGT,EAAA,CAAoB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAI1E;"}
1
+ {"version":3,"file":"table.js","sources":["../../../../src/components/dataDisplay/table/table.tsx"],"sourcesContent":["import { HTMLAttributes, PropsWithChildren, ReactNode, forwardRef } from \"react\";\nimport cn from \"clsx\";\nimport { TablePagination, TablePaginationProps } from \"./index\";\n\nexport interface TableProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n dense?: boolean;\n isLoading?: boolean;\n hovered?: boolean;\n /** Pins the table header while the body scrolls. */\n stickyHeader?: boolean;\n /** Optional accessible caption rendered for screen readers. */\n caption?: ReactNode;\n /**\n * Show each row as a card — cells one under another, each with its column's\n * label — while the table's container is narrower than this breakpoint:\n * `sm` (420px), `md` (768px) or `lg` (1024px). A container query: the space\n * the table has decides, not the window. Labels come from `TableCell label`.\n */\n stackBelow?: \"sm\" | \"md\" | \"lg\";\n paginationSettings?: TablePaginationProps;\n}\n\nconst Table = forwardRef<HTMLDivElement, PropsWithChildren<TableProps>>(\n (\n { className, dense, hovered, children, paginationSettings, isLoading, stickyHeader, caption, stackBelow, ...props },\n ref\n ) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"smwb-table__wrapper\",\n className,\n {\n [\"smwb-table__wrapper_loading\"]: isLoading,\n },\n stackBelow && `smwb-table__wrapper_stack-${stackBelow}`\n )}\n {...props}\n >\n <div className={cn(\"smwb-table__container\", { \"smwb-withPagination\": !!paginationSettings })}>\n <table\n className={cn(\"smwb-table\", {\n \"smwb-dense\": dense,\n [\"smwb-hovered\"]: hovered,\n \"smwb-table_sticky-header\": stickyHeader,\n })}\n >\n {caption != null && <caption className=\"smwb-table__caption\">{caption}</caption>}\n {children}\n </table>\n </div>\n {!!paginationSettings && <TablePagination {...paginationSettings} />}\n </div>\n );\n }\n);\n\nexport default Table;\n"],"names":["Table","forwardRef","className","dense","hovered","children","paginationSettings","isLoading","stickyHeader","caption","stackBelow","props","ref","jsxs","cn","jsx","TablePagination"],"mappings":";;;;;;AAyBA,MAAMA,IAAQC;AAAA,EACZ,CACE,EAAE,WAAAC,GAAW,OAAAC,GAAO,SAAAC,GAAS,UAAAC,GAAU,oBAAAC,GAAoB,WAAAC,GAAW,cAAAC,GAAc,SAAAC,GAAS,YAAAC,GAAY,GAAGC,EAAA,GAC5GC,MAGE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAZ;AAAA,QACA;AAAA,UACG,+BAAgCK;AAAA,QAAA;AAAA,QAEnCG,KAAc,6BAA6BA,CAAU;AAAA,MAAA;AAAA,MAEtD,GAAGC;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAI,EAAC,OAAA,EAAI,WAAWD,EAAG,yBAAyB,EAAE,uBAAuB,CAAC,CAACR,GAAoB,GACzF,UAAA,gBAAAO;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWC,EAAG,cAAc;AAAA,cAC1B,cAAcX;AAAA,cACb,gBAAiBC;AAAA,cAClB,4BAA4BI;AAAA,YAAA,CAC7B;AAAA,YAEA,UAAA;AAAA,cAAAC,KAAW,QAAQ,gBAAAM,EAAC,WAAA,EAAQ,WAAU,uBAAuB,UAAAN,GAAQ;AAAA,cACrEJ;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,GAEL;AAAA,QACC,CAAC,CAACC,KAAsB,gBAAAS,EAACC,GAAA,EAAiB,GAAGV,EAAA,CAAoB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAI1E;"}
@@ -2,6 +2,8 @@ import { PropsWithChildren, TdHTMLAttributes } from "react";
2
2
  export interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {
3
3
  className?: string;
4
4
  cellAlign?: "left" | "right" | "center";
5
+ /** The column's name, shown next to the value when the table stacks rows as cards (`Table stackBelow`). */
6
+ label?: string;
5
7
  }
6
- declare const TableCell: ({ children, cellAlign, className, ...props }: PropsWithChildren<TableCellProps>) => import("react/jsx-runtime").JSX.Element;
8
+ declare const TableCell: ({ children, cellAlign, className, label, ...props }: PropsWithChildren<TableCellProps>) => import("react/jsx-runtime").JSX.Element;
7
9
  export default TableCell;
@@ -1,7 +1,16 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
2
  import m from "clsx";
3
- const f = ({ children: l, cellAlign: e = "left", className: t, ...a }) => /* @__PURE__ */ r("td", { ...a, className: m("smwb-table__cell", t), align: e || "left", children: l });
3
+ const c = ({ children: t, cellAlign: e = "left", className: a, label: l, ...o }) => /* @__PURE__ */ r(
4
+ "td",
5
+ {
6
+ ...o,
7
+ className: m("smwb-table__cell", a),
8
+ align: e || "left",
9
+ ...l !== void 0 && { "data-label": l },
10
+ children: t
11
+ }
12
+ );
4
13
  export {
5
- f as default
14
+ c as default
6
15
  };
7
16
  //# sourceMappingURL=tableCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tableCell.js","sources":["../../../../src/components/dataDisplay/table/tableCell.tsx"],"sourcesContent":["import React, { PropsWithChildren, TdHTMLAttributes } from \"react\";\nimport cn from \"clsx\";\n\nexport interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {\n className?: string;\n cellAlign?: \"left\" | \"right\" | \"center\";\n}\n\nconst TableCell = ({ children, cellAlign = \"left\", className, ...props }: PropsWithChildren<TableCellProps>) => {\n return (\n <td {...props} className={cn(\"smwb-table__cell\", className)} align={cellAlign || \"left\"}>\n {children}\n </td>\n );\n};\n\nexport default TableCell;\n"],"names":["TableCell","children","cellAlign","className","props","jsx","cn"],"mappings":";;AAQA,MAAMA,IAAY,CAAC,EAAE,UAAAC,GAAU,WAAAC,IAAY,QAAQ,WAAAC,GAAW,GAAGC,QAE7D,gBAAAC,EAAC,MAAA,EAAI,GAAGD,GAAO,WAAWE,EAAG,oBAAoBH,CAAS,GAAG,OAAOD,KAAa,QAC9E,UAAAD,EAAA,CACH;"}
1
+ {"version":3,"file":"tableCell.js","sources":["../../../../src/components/dataDisplay/table/tableCell.tsx"],"sourcesContent":["import React, { PropsWithChildren, TdHTMLAttributes } from \"react\";\nimport cn from \"clsx\";\n\nexport interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {\n className?: string;\n cellAlign?: \"left\" | \"right\" | \"center\";\n /** The column's name, shown next to the value when the table stacks rows as cards (`Table stackBelow`). */\n label?: string;\n}\n\nconst TableCell = ({ children, cellAlign = \"left\", className, label, ...props }: PropsWithChildren<TableCellProps>) => {\n return (\n <td\n {...props}\n className={cn(\"smwb-table__cell\", className)}\n align={cellAlign || \"left\"}\n // Only a given label sets data-label: without one, a caller's own\n // data-label (the way to label cells by hand) must survive, as in Solid.\n {...(label !== undefined && { \"data-label\": label })}\n >\n {children}\n </td>\n );\n};\n\nexport default TableCell;\n"],"names":["TableCell","children","cellAlign","className","label","props","jsx","cn"],"mappings":";;AAUA,MAAMA,IAAY,CAAC,EAAE,UAAAC,GAAU,WAAAC,IAAY,QAAQ,WAAAC,GAAW,OAAAC,GAAO,GAAGC,QAEpE,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACE,GAAGD;AAAA,IACJ,WAAWE,EAAG,oBAAoBJ,CAAS;AAAA,IAC3C,OAAOD,KAAa;AAAA,IAGnB,GAAIE,MAAU,UAAa,EAAE,cAAcA,EAAA;AAAA,IAE3C,UAAAH;AAAA,EAAA;AAAA;"}
@@ -7,7 +7,17 @@ export interface TableHeadCellProps extends ThHTMLAttributes<HTMLTableCellElemen
7
7
  isSortedByDesc?: boolean;
8
8
  /** @deprecated use `sortDirection="asc"`. */
9
9
  isSortedByAsc?: boolean;
10
- /** Enables the interactive sort affordance with keyboard/aria support. */
10
+ /**
11
+ * Enables the interactive sort affordance with keyboard/aria support.
12
+ *
13
+ * The children sit inside the sort control, and controls among them keep
14
+ * their own input: Enter and Space sort only while the sort control itself
15
+ * has focus, and a click sorts unless it lands in a nested control (input,
16
+ * button, link, label, anything focusable) or in a portal. Content that is not
17
+ * a control, such as click-to-edit text, keeps its click from sorting by
18
+ * calling `preventDefault()` on it. A nested control's name, or its value,
19
+ * becomes part of the sort control's accessible name.
20
+ */
11
21
  sortable?: boolean;
12
22
  /** Current sort direction for this column. */
13
23
  sortDirection?: SortDirection;
@@ -1,41 +1,71 @@
1
- import { jsx as o, jsxs as h } from "react/jsx-runtime";
2
- import p from "clsx";
3
- import { Icon as x } from "../../base/icon/icon.js";
4
- const y = ({
5
- children: i,
1
+ import { jsx as d, jsxs as p } from "react/jsx-runtime";
2
+ import _ from "clsx";
3
+ import { Icon as w } from "../../base/icon/icon.js";
4
+ const g = [
5
+ "a[href]",
6
+ "button",
7
+ "input",
8
+ "select",
9
+ "textarea",
10
+ "label",
11
+ "summary",
12
+ "[tabindex]",
13
+ "[contenteditable]:not([contenteditable='false'])",
14
+ ...[
15
+ "button",
16
+ "link",
17
+ "checkbox",
18
+ "radio",
19
+ "switch",
20
+ "textbox",
21
+ "searchbox",
22
+ "combobox",
23
+ "spinbutton",
24
+ "slider",
25
+ "menuitem",
26
+ "menuitemcheckbox",
27
+ "menuitemradio",
28
+ "option",
29
+ "tab"
30
+ ].map((c) => `[role='${c}']`)
31
+ ].join(","), T = ({
32
+ children: c,
6
33
  className: l,
7
- cellAlign: a = "left",
34
+ cellAlign: s = "left",
8
35
  isSortedByAsc: m,
9
- isSortedByDesc: t,
36
+ isSortedByDesc: r,
10
37
  sortable: e,
11
- sortDirection: d,
12
- onSort: s,
13
- ..._
38
+ sortDirection: i,
39
+ onSort: t,
40
+ ...u
14
41
  }) => {
15
- const n = d !== void 0 ? d : m ? "asc" : t ? "desc" : !1, r = e ? n === "asc" ? "ascending" : n === "desc" ? "descending" : "none" : void 0, f = n === "asc" ? "expand_more" : n === "desc" ? "expand_less" : "unfold_more", w = (c) => {
16
- e && s && (c.key === "Enter" || c.key === " ") && (c.preventDefault(), s());
42
+ const a = i !== void 0 ? i : m ? "asc" : r ? "desc" : !1, b = e ? a === "asc" ? "ascending" : a === "desc" ? "descending" : "none" : void 0, f = a === "asc" ? "expand_more" : a === "desc" ? "expand_less" : "unfold_more", h = (n) => {
43
+ n.target === n.currentTarget && e && t && (n.key === "Enter" || n.key === " ") && (n.preventDefault(), t());
44
+ }, x = (n) => {
45
+ var o;
46
+ n.defaultPrevented || ((o = n.target) == null ? void 0 : o.closest(g)) === n.currentTarget && (t == null || t());
17
47
  };
18
- return /* @__PURE__ */ o(
48
+ return /* @__PURE__ */ d(
19
49
  "th",
20
50
  {
21
- ..._,
22
- "aria-sort": r,
23
- className: p("smwb-table__cell", "smwb-head-cell", l, {
24
- [`smwb-align_${a}`]: !!a,
51
+ ...u,
52
+ "aria-sort": b,
53
+ className: _("smwb-table__cell", "smwb-head-cell", l, {
54
+ [`smwb-align_${s}`]: !!s,
25
55
  "smwb-head-cell_sortable": e,
26
- "smwb-head-cell_sorted": !!e && n !== !1
56
+ "smwb-head-cell_sorted": !!e && a !== !1
27
57
  }),
28
- children: /* @__PURE__ */ h(
58
+ children: /* @__PURE__ */ p(
29
59
  "span",
30
60
  {
31
61
  className: "smwb-head-cell__content",
32
- onClick: e ? s : void 0,
33
- onKeyDown: e ? w : void 0,
62
+ onClick: e ? x : void 0,
63
+ onKeyDown: e ? h : void 0,
34
64
  role: e ? "button" : void 0,
35
65
  tabIndex: e ? 0 : void 0,
36
66
  children: [
37
- i,
38
- e && /* @__PURE__ */ o(x, { className: "smwb-head-cell__icon", name: f, size: 18, weight: 800 })
67
+ c,
68
+ e && /* @__PURE__ */ d(w, { className: "smwb-head-cell__icon", name: f, size: 18, weight: 800 })
39
69
  ]
40
70
  }
41
71
  )
@@ -43,6 +73,6 @@ const y = ({
43
73
  );
44
74
  };
45
75
  export {
46
- y as default
76
+ T as default
47
77
  };
48
78
  //# sourceMappingURL=tableHeadCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tableHeadCell.js","sources":["../../../../src/components/dataDisplay/table/tableHeadCell.tsx"],"sourcesContent":["import React, { PropsWithChildren, ThHTMLAttributes } from \"react\";\nimport cn from \"clsx\";\nimport Icon from \"../../base/icon/icon\";\n\nexport type SortDirection = \"asc\" | \"desc\" | false;\n\nexport interface TableHeadCellProps extends ThHTMLAttributes<HTMLTableCellElement> {\n className?: string;\n cellAlign?: \"left\" | \"right\" | \"center\";\n /** @deprecated use `sortDirection=\"desc\"`. */\n isSortedByDesc?: boolean;\n /** @deprecated use `sortDirection=\"asc\"`. */\n isSortedByAsc?: boolean;\n /** Enables the interactive sort affordance with keyboard/aria support. */\n sortable?: boolean;\n /** Current sort direction for this column. */\n sortDirection?: SortDirection;\n /** Invoked when the user activates the sort control. */\n onSort?: () => void;\n}\n\nconst TableHeadCell = ({\n children,\n className,\n cellAlign = \"left\",\n isSortedByAsc,\n isSortedByDesc,\n sortable,\n sortDirection,\n onSort,\n ...props\n}: PropsWithChildren<TableHeadCellProps>) => {\n const direction: SortDirection =\n sortDirection !== undefined ? sortDirection : isSortedByAsc ? \"asc\" : isSortedByDesc ? \"desc\" : false;\n\n const ariaSort = sortable\n ? direction === \"asc\"\n ? \"ascending\"\n : direction === \"desc\"\n ? \"descending\"\n : \"none\"\n : undefined;\n\n /**\n * A sortable column always shows a marker: the current direction once sorted,\n * and `unfold_more` before that — otherwise nothing tells the reader the column\n * can be sorted at all. A cell that is not sortable shows nothing; it used to\n * render an `<Icon name=\"\">`, which reserved a gap and warned about a missing\n * icon under `source: \"smwb\"`.\n */\n const iconName = direction === \"asc\" ? \"expand_more\" : direction === \"desc\" ? \"expand_less\" : \"unfold_more\";\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLSpanElement>) => {\n if (sortable && onSort && (event.key === \"Enter\" || event.key === \" \")) {\n event.preventDefault();\n onSort();\n }\n };\n\n return (\n <th\n {...props}\n aria-sort={ariaSort}\n className={cn(\"smwb-table__cell\", \"smwb-head-cell\", className, {\n [`smwb-align_${cellAlign}`]: !!cellAlign,\n \"smwb-head-cell_sortable\": sortable,\n \"smwb-head-cell_sorted\": !!sortable && direction !== false,\n })}\n >\n <span\n className=\"smwb-head-cell__content\"\n onClick={sortable ? onSort : undefined}\n onKeyDown={sortable ? onKeyDown : undefined}\n role={sortable ? \"button\" : undefined}\n tabIndex={sortable ? 0 : undefined}\n >\n {children}\n {sortable && <Icon className=\"smwb-head-cell__icon\" name={iconName} size={18} weight={800} />}\n </span>\n </th>\n );\n};\n\nexport default TableHeadCell;\n"],"names":["TableHeadCell","children","className","cellAlign","isSortedByAsc","isSortedByDesc","sortable","sortDirection","onSort","props","direction","ariaSort","iconName","onKeyDown","event","jsx","cn","jsxs","Icon"],"mappings":";;;AAqBA,MAAMA,IAAgB,CAAC;AAAA,EACrB,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,eAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,GAAGC;AACL,MAA6C;AAC3C,QAAMC,IACJH,MAAkB,SAAYA,IAAgBH,IAAgB,QAAQC,IAAiB,SAAS,IAE5FM,IAAWL,IACbI,MAAc,QACZ,cACAA,MAAc,SACZ,eACA,SACJ,QASEE,IAAWF,MAAc,QAAQ,gBAAgBA,MAAc,SAAS,gBAAgB,eAExFG,IAAY,CAACC,MAAgD;AACjE,IAAIR,KAAYE,MAAWM,EAAM,QAAQ,WAAWA,EAAM,QAAQ,SAChEA,EAAM,eAAA,GACNN,EAAA;AAAA,EAEJ;AAEA,SACE,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGN;AAAA,MACJ,aAAWE;AAAA,MACX,WAAWK,EAAG,oBAAoB,kBAAkBd,GAAW;AAAA,QAC7D,CAAC,cAAcC,CAAS,EAAE,GAAG,CAAC,CAACA;AAAA,QAC/B,2BAA2BG;AAAA,QAC3B,yBAAyB,CAAC,CAACA,KAAYI,MAAc;AAAA,MAAA,CACtD;AAAA,MAED,UAAA,gBAAAO;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,SAASX,IAAWE,IAAS;AAAA,UAC7B,WAAWF,IAAWO,IAAY;AAAA,UAClC,MAAMP,IAAW,WAAW;AAAA,UAC5B,UAAUA,IAAW,IAAI;AAAA,UAExB,UAAA;AAAA,YAAAL;AAAA,YACAK,KAAY,gBAAAS,EAACG,GAAA,EAAK,WAAU,wBAAuB,MAAMN,GAAU,MAAM,IAAI,QAAQ,IAAA,CAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAC7F;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"tableHeadCell.js","sources":["../../../../src/components/dataDisplay/table/tableHeadCell.tsx"],"sourcesContent":["import React, { PropsWithChildren, ThHTMLAttributes } from \"react\";\nimport cn from \"clsx\";\nimport Icon from \"../../base/icon/icon\";\n\nexport type SortDirection = \"asc\" | \"desc\" | false;\n\nexport interface TableHeadCellProps extends ThHTMLAttributes<HTMLTableCellElement> {\n className?: string;\n cellAlign?: \"left\" | \"right\" | \"center\";\n /** @deprecated use `sortDirection=\"desc\"`. */\n isSortedByDesc?: boolean;\n /** @deprecated use `sortDirection=\"asc\"`. */\n isSortedByAsc?: boolean;\n /**\n * Enables the interactive sort affordance with keyboard/aria support.\n *\n * The children sit inside the sort control, and controls among them keep\n * their own input: Enter and Space sort only while the sort control itself\n * has focus, and a click sorts unless it lands in a nested control (input,\n * button, link, label, anything focusable) or in a portal. Content that is not\n * a control, such as click-to-edit text, keeps its click from sorting by\n * calling `preventDefault()` on it. A nested control's name, or its value,\n * becomes part of the sort control's accessible name.\n */\n sortable?: boolean;\n /** Current sort direction for this column. */\n sortDirection?: SortDirection;\n /** Invoked when the user activates the sort control. */\n onSort?: () => void;\n}\n\n/**\n * Whatever takes a click of its own inside the sort control. The control\n * matches too (`role=\"button\"`), so it is the nearest match for a click on the\n * header's text or marker, and only then does the click sort.\n */\nconst INTERACTIVE = [\n \"a[href]\",\n \"button\",\n \"input\",\n \"select\",\n \"textarea\",\n \"label\",\n \"summary\",\n \"[tabindex]\",\n \"[contenteditable]:not([contenteditable='false'])\",\n ...[\n \"button\",\n \"link\",\n \"checkbox\",\n \"radio\",\n \"switch\",\n \"textbox\",\n \"searchbox\",\n \"combobox\",\n \"spinbutton\",\n \"slider\",\n \"menuitem\",\n \"menuitemcheckbox\",\n \"menuitemradio\",\n \"option\",\n \"tab\",\n ].map((role) => `[role='${role}']`),\n].join(\",\");\n\nconst TableHeadCell = ({\n children,\n className,\n cellAlign = \"left\",\n isSortedByAsc,\n isSortedByDesc,\n sortable,\n sortDirection,\n onSort,\n ...props\n}: PropsWithChildren<TableHeadCellProps>) => {\n const direction: SortDirection =\n sortDirection !== undefined ? sortDirection : isSortedByAsc ? \"asc\" : isSortedByDesc ? \"desc\" : false;\n\n const ariaSort = sortable\n ? direction === \"asc\"\n ? \"ascending\"\n : direction === \"desc\"\n ? \"descending\"\n : \"none\"\n : undefined;\n\n /**\n * A sortable column always shows a marker: the current direction once sorted,\n * and `unfold_more` before that — otherwise nothing tells the reader the column\n * can be sorted at all. A cell that is not sortable shows nothing; it used to\n * render an `<Icon name=\"\">`, which reserved a gap and warned about a missing\n * icon under `source: \"smwb\"`.\n */\n const iconName = direction === \"asc\" ? \"expand_more\" : direction === \"desc\" ? \"expand_less\" : \"unfold_more\";\n\n // Keys typed into an input or pressed on a button inside bubble up here too;\n // only the control's own keys sort.\n const onKeyDown = (event: React.KeyboardEvent<HTMLSpanElement>) => {\n if (event.target !== event.currentTarget) return;\n if (sortable && onSort && (event.key === \"Enter\" || event.key === \" \")) {\n event.preventDefault();\n onSort();\n }\n };\n\n // A click sorts only when the control is the nearest thing that takes it. A\n // click in a portal rendered inside fails that too: React delivers it here,\n // though it landed outside the control.\n const onClick = (event: React.MouseEvent<HTMLSpanElement>) => {\n if (event.defaultPrevented) return;\n if ((event.target as Element | null)?.closest(INTERACTIVE) !== event.currentTarget) return;\n onSort?.();\n };\n\n return (\n <th\n {...props}\n aria-sort={ariaSort}\n className={cn(\"smwb-table__cell\", \"smwb-head-cell\", className, {\n [`smwb-align_${cellAlign}`]: !!cellAlign,\n \"smwb-head-cell_sortable\": sortable,\n \"smwb-head-cell_sorted\": !!sortable && direction !== false,\n })}\n >\n <span\n className=\"smwb-head-cell__content\"\n onClick={sortable ? onClick : undefined}\n onKeyDown={sortable ? onKeyDown : undefined}\n role={sortable ? \"button\" : undefined}\n tabIndex={sortable ? 0 : undefined}\n >\n {children}\n {sortable && <Icon className=\"smwb-head-cell__icon\" name={iconName} size={18} weight={800} />}\n </span>\n </th>\n );\n};\n\nexport default TableHeadCell;\n"],"names":["INTERACTIVE","role","TableHeadCell","children","className","cellAlign","isSortedByAsc","isSortedByDesc","sortable","sortDirection","onSort","props","direction","ariaSort","iconName","onKeyDown","event","onClick","_a","jsx","cn","jsxs","Icon"],"mappings":";;;AAoCA,MAAMA,IAAc;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,IAAI,CAACC,MAAS,UAAUA,CAAI,IAAI;AACpC,EAAE,KAAK,GAAG,GAEJC,IAAgB,CAAC;AAAA,EACrB,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,eAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,GAAGC;AACL,MAA6C;AAC3C,QAAMC,IACJH,MAAkB,SAAYA,IAAgBH,IAAgB,QAAQC,IAAiB,SAAS,IAE5FM,IAAWL,IACbI,MAAc,QACZ,cACAA,MAAc,SACZ,eACA,SACJ,QASEE,IAAWF,MAAc,QAAQ,gBAAgBA,MAAc,SAAS,gBAAgB,eAIxFG,IAAY,CAACC,MAAgD;AACjE,IAAIA,EAAM,WAAWA,EAAM,iBACvBR,KAAYE,MAAWM,EAAM,QAAQ,WAAWA,EAAM,QAAQ,SAChEA,EAAM,eAAA,GACNN,EAAA;AAAA,EAEJ,GAKMO,IAAU,CAACD,MAA6C;;AAC5D,IAAIA,EAAM,sBACLE,IAAAF,EAAM,WAAN,gBAAAE,EAAiC,QAAQlB,QAAiBgB,EAAM,kBACrEN,KAAA,QAAAA;AAAA,EACF;AAEA,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGR;AAAA,MACJ,aAAWE;AAAA,MACX,WAAWO,EAAG,oBAAoB,kBAAkBhB,GAAW;AAAA,QAC7D,CAAC,cAAcC,CAAS,EAAE,GAAG,CAAC,CAACA;AAAA,QAC/B,2BAA2BG;AAAA,QAC3B,yBAAyB,CAAC,CAACA,KAAYI,MAAc;AAAA,MAAA,CACtD;AAAA,MAED,UAAA,gBAAAS;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,SAASb,IAAWS,IAAU;AAAA,UAC9B,WAAWT,IAAWO,IAAY;AAAA,UAClC,MAAMP,IAAW,WAAW;AAAA,UAC5B,UAAUA,IAAW,IAAI;AAAA,UAExB,UAAA;AAAA,YAAAL;AAAA,YACAK,KAAY,gBAAAW,EAACG,GAAA,EAAK,WAAU,wBAAuB,MAAMR,GAAU,MAAM,IAAI,QAAQ,IAAA,CAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAC7F;AAAA,EAAA;AAGN;"}