@smwb/ui-react 2.6.2 → 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 (421) 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/chip/chip.entry.css +1 -1
  8. package/dist/assets/styles/less/components/descriptionList/descriptionList.entry.css +1 -0
  9. package/dist/assets/styles/less/components/emptyState/emptyState.entry.css +1 -0
  10. package/dist/assets/styles/less/components/kanban/kanban.entry.css +1 -0
  11. package/dist/assets/styles/less/components/meter/meter.entry.css +1 -0
  12. package/dist/assets/styles/less/components/modal/modal.entry.css +1 -1
  13. package/dist/assets/styles/less/components/overflowMenu/overflowMenu.entry.css +1 -1
  14. package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -0
  15. package/dist/assets/styles/less/components/progressIndicator/progressIndicator.entry.css +1 -1
  16. package/dist/assets/styles/less/components/sectionHeader/sectionHeader.entry.css +1 -0
  17. package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
  18. package/dist/assets/styles/less/components/stat/stat.entry.css +1 -0
  19. package/dist/assets/styles/less/components/stepper/stepper.entry.css +1 -1
  20. package/dist/assets/styles/less/components/table/table.entry.css +1 -1
  21. package/dist/assets/styles/less/components/tabs/tab/tab.entry.css +1 -1
  22. package/dist/assets/styles/less/components/tabs/tabs.entry.css +1 -1
  23. package/dist/assets/styles/less/components/textField/textField.entry.css +1 -1
  24. package/dist/assets/styles/less/components/timeline/timeline.entry.css +1 -0
  25. package/dist/assets/styles/less/components/tooltip/tooltip.entry.css +1 -1
  26. package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
  27. package/dist/assets/styles/less/connects/rt/table.entry.css +1 -0
  28. package/dist/assets/styles/less/tokens.entry.css +1 -0
  29. package/dist/chart.d.ts +2 -0
  30. package/dist/chart.js +8 -0
  31. package/dist/chart.js.map +1 -0
  32. package/dist/components/base/icon/icon.js +8 -7
  33. package/dist/components/base/icon/icon.js.map +1 -1
  34. package/dist/components/base/ripple/ripple.js +11 -10
  35. package/dist/components/base/ripple/ripple.js.map +1 -1
  36. package/dist/components/dataDisplay/accordion/accordion.d.ts +18 -1
  37. package/dist/components/dataDisplay/accordion/accordion.js +77 -54
  38. package/dist/components/dataDisplay/accordion/accordion.js.map +1 -1
  39. package/dist/components/dataDisplay/assetGrid/assetGrid.js +15 -14
  40. package/dist/components/dataDisplay/assetGrid/assetGrid.js.map +1 -1
  41. package/dist/components/dataDisplay/avatar/avatar.d.ts +4 -0
  42. package/dist/components/dataDisplay/avatar/avatar.js +45 -30
  43. package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
  44. package/dist/components/dataDisplay/badge/badge.js +11 -10
  45. package/dist/components/dataDisplay/badge/badge.js.map +1 -1
  46. package/dist/components/dataDisplay/card/card.js +16 -15
  47. package/dist/components/dataDisplay/card/card.js.map +1 -1
  48. package/dist/components/dataDisplay/carousel/carousel.js +23 -22
  49. package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
  50. package/dist/components/dataDisplay/chart/chart.d.ts +65 -0
  51. package/dist/components/dataDisplay/chart/chart.js +133 -0
  52. package/dist/components/dataDisplay/chart/chart.js.map +1 -0
  53. package/dist/components/dataDisplay/chart/chartTheme.d.ts +35 -0
  54. package/dist/components/dataDisplay/chart/chartTheme.js +74 -0
  55. package/dist/components/dataDisplay/chart/chartTheme.js.map +1 -0
  56. package/dist/components/dataDisplay/chart/index.d.ts +4 -0
  57. package/dist/components/dataDisplay/chat/chat.js +5 -4
  58. package/dist/components/dataDisplay/chat/chat.js.map +1 -1
  59. package/dist/components/dataDisplay/chip/chip.js +5 -4
  60. package/dist/components/dataDisplay/chip/chip.js.map +1 -1
  61. package/dist/components/dataDisplay/chipGroup/chipGroup.js +10 -9
  62. package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  63. package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +37 -0
  64. package/dist/components/dataDisplay/descriptionList/descriptionList.js +43 -0
  65. package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -0
  66. package/dist/components/dataDisplay/descriptionList/index.d.ts +2 -0
  67. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +5 -4
  68. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  69. package/dist/components/dataDisplay/imagesList/imagesList.js +11 -10
  70. package/dist/components/dataDisplay/imagesList/imagesList.js.map +1 -1
  71. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js +31 -24
  72. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js.map +1 -1
  73. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.d.ts +1 -1
  74. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js +16 -13
  75. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js.map +1 -1
  76. package/dist/components/dataDisplay/kanban/index.d.ts +2 -0
  77. package/dist/components/dataDisplay/kanban/kanban.d.ts +47 -0
  78. package/dist/components/dataDisplay/kanban/kanban.js +63 -0
  79. package/dist/components/dataDisplay/kanban/kanban.js.map +1 -0
  80. package/dist/components/dataDisplay/lazyImage/lazyImage.js +9 -8
  81. package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  82. package/dist/components/dataDisplay/list/list.js +11 -10
  83. package/dist/components/dataDisplay/list/list.js.map +1 -1
  84. package/dist/components/dataDisplay/meter/index.d.ts +2 -0
  85. package/dist/components/dataDisplay/meter/meter.d.ts +33 -0
  86. package/dist/components/dataDisplay/meter/meter.js +62 -0
  87. package/dist/components/dataDisplay/meter/meter.js.map +1 -0
  88. package/dist/components/dataDisplay/personChip/index.d.ts +2 -0
  89. package/dist/components/dataDisplay/personChip/personChip.d.ts +31 -0
  90. package/dist/components/dataDisplay/personChip/personChip.js +61 -0
  91. package/dist/components/dataDisplay/personChip/personChip.js.map +1 -0
  92. package/dist/components/dataDisplay/stat/index.d.ts +2 -0
  93. package/dist/components/dataDisplay/stat/stat.d.ts +36 -0
  94. package/dist/components/dataDisplay/stat/stat.js +48 -0
  95. package/dist/components/dataDisplay/stat/stat.js.map +1 -0
  96. package/dist/components/dataDisplay/table/table.d.ts +7 -0
  97. package/dist/components/dataDisplay/table/table.js +21 -15
  98. package/dist/components/dataDisplay/table/table.js.map +1 -1
  99. package/dist/components/dataDisplay/table/tableCell.d.ts +3 -1
  100. package/dist/components/dataDisplay/table/tableCell.js +11 -2
  101. package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
  102. package/dist/components/dataDisplay/table/tableHeadCell.d.ts +11 -1
  103. package/dist/components/dataDisplay/table/tableHeadCell.js +54 -24
  104. package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  105. package/dist/components/dataDisplay/table/tablePagination/tablePagination.js +10 -9
  106. package/dist/components/dataDisplay/table/tablePagination/tablePagination.js.map +1 -1
  107. package/dist/components/dataDisplay/thumbCard/thumbCard.js +10 -9
  108. package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  109. package/dist/components/dataDisplay/timeline/index.d.ts +2 -0
  110. package/dist/components/dataDisplay/timeline/timeline.d.ts +43 -0
  111. package/dist/components/dataDisplay/timeline/timeline.js +44 -0
  112. package/dist/components/dataDisplay/timeline/timeline.js.map +1 -0
  113. package/dist/components/dataDisplay/treeView/treeView.js +5 -4
  114. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  115. package/dist/components/dataDisplay/typography/typography.d.ts +4 -0
  116. package/dist/components/dataDisplay/typography/typography.js +41 -23
  117. package/dist/components/dataDisplay/typography/typography.js.map +1 -1
  118. package/dist/components/feedBack/confirmDialog/confirmDialog.js +14 -13
  119. package/dist/components/feedBack/confirmDialog/confirmDialog.js.map +1 -1
  120. package/dist/components/feedBack/emptyState/emptyState.d.ts +26 -0
  121. package/dist/components/feedBack/emptyState/emptyState.js +27 -0
  122. package/dist/components/feedBack/emptyState/emptyState.js.map +1 -0
  123. package/dist/components/feedBack/emptyState/index.d.ts +2 -0
  124. package/dist/components/feedBack/message/message.js +8 -7
  125. package/dist/components/feedBack/message/message.js.map +1 -1
  126. package/dist/components/feedBack/modal/modal.js +5 -4
  127. package/dist/components/feedBack/modal/modal.js.map +1 -1
  128. package/dist/components/feedBack/progressIndicator/progressIndicator.d.ts +14 -1
  129. package/dist/components/feedBack/progressIndicator/progressIndicator.js +72 -40
  130. package/dist/components/feedBack/progressIndicator/progressIndicator.js.map +1 -1
  131. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js +31 -29
  132. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -1
  133. package/dist/components/feedBack/skeleton/skeleton.js +17 -16
  134. package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
  135. package/dist/components/feedBack/snackbar/snackbar.js +6 -5
  136. package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
  137. package/dist/components/feedBack/tooltip/tooltip.js +57 -49
  138. package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
  139. package/dist/components/inputs/button/button.js +16 -15
  140. package/dist/components/inputs/button/button.js.map +1 -1
  141. package/dist/components/inputs/buttonGroups/buttonGroup.js +5 -4
  142. package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  143. package/dist/components/inputs/checkbox/checkbox.js +10 -9
  144. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  145. package/dist/components/inputs/datePicker/datePicker.js +123 -120
  146. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  147. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +121 -119
  148. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  149. package/dist/components/inputs/fileDrop/fileDrop.js +13 -12
  150. package/dist/components/inputs/fileDrop/fileDrop.js.map +1 -1
  151. package/dist/components/inputs/fileInput/fileInput.js +4 -3
  152. package/dist/components/inputs/fileInput/fileInput.js.map +1 -1
  153. package/dist/components/inputs/floatingButton/floatingButton.js +17 -16
  154. package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
  155. package/dist/components/inputs/radioButton/radioButton.js +11 -10
  156. package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
  157. package/dist/components/inputs/rating/rating.js +18 -17
  158. package/dist/components/inputs/rating/rating.js.map +1 -1
  159. package/dist/components/inputs/selectField/dropdownMenu.d.ts +1 -1
  160. package/dist/components/inputs/selectField/dropdownMenu.js +72 -69
  161. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  162. package/dist/components/inputs/selectField/selectField.d.ts +2 -0
  163. package/dist/components/inputs/selectField/selectField.js +128 -117
  164. package/dist/components/inputs/selectField/selectField.js.map +1 -1
  165. package/dist/components/inputs/slider/slider.js +4 -3
  166. package/dist/components/inputs/slider/slider.js.map +1 -1
  167. package/dist/components/inputs/textField/textField.js +16 -15
  168. package/dist/components/inputs/textField/textField.js.map +1 -1
  169. package/dist/components/inputs/textField/utils.d.ts +1 -1
  170. package/dist/components/inputs/timePicker/timePicker.js +66 -63
  171. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  172. package/dist/components/inputs/toggle/toggle.js +14 -13
  173. package/dist/components/inputs/toggle/toggle.js.map +1 -1
  174. package/dist/components/inputs/valueSlider/valueSlider.js +9 -8
  175. package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
  176. package/dist/components/layout/appLayout/appLayout.js +20 -19
  177. package/dist/components/layout/appLayout/appLayout.js.map +1 -1
  178. package/dist/components/layout/divider/divider.js +9 -8
  179. package/dist/components/layout/divider/divider.js.map +1 -1
  180. package/dist/components/layout/floatingWindow/floatingWindow.js +4 -3
  181. package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  182. package/dist/components/layout/grid/grid.js +17 -16
  183. package/dist/components/layout/grid/grid.js.map +1 -1
  184. package/dist/components/layout/page/page.js +9 -8
  185. package/dist/components/layout/page/page.js.map +1 -1
  186. package/dist/components/layout/pageHeader/pageHeader.js +10 -9
  187. package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
  188. package/dist/components/layout/screenDivider/screenDivider.js +19 -18
  189. package/dist/components/layout/screenDivider/screenDivider.js.map +1 -1
  190. package/dist/components/layout/sectionHeader/index.d.ts +2 -0
  191. package/dist/components/layout/sectionHeader/sectionHeader.d.ts +31 -0
  192. package/dist/components/layout/sectionHeader/sectionHeader.js +67 -0
  193. package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -0
  194. package/dist/components/layout/sheet/sheet.js +5 -4
  195. package/dist/components/layout/sheet/sheet.js.map +1 -1
  196. package/dist/components/layout/stack/stack.js +10 -9
  197. package/dist/components/layout/stack/stack.js.map +1 -1
  198. package/dist/components/navigation/appBar/appBar.js +18 -17
  199. package/dist/components/navigation/appBar/appBar.js.map +1 -1
  200. package/dist/components/navigation/bottomBar/bottomBar.js +5 -4
  201. package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
  202. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +5 -4
  203. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  204. package/dist/components/navigation/menu/menu.js +6 -5
  205. package/dist/components/navigation/menu/menu.js.map +1 -1
  206. package/dist/components/navigation/overflowMenu/overflowMenu.js +16 -15
  207. package/dist/components/navigation/overflowMenu/overflowMenu.js.map +1 -1
  208. package/dist/components/navigation/pagination/pagination.js +5 -4
  209. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  210. package/dist/components/navigation/sidebar/sidebar.js +13 -12
  211. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  212. package/dist/components/navigation/stepper/stepper.d.ts +10 -2
  213. package/dist/components/navigation/stepper/stepper.js +33 -30
  214. package/dist/components/navigation/stepper/stepper.js.map +1 -1
  215. package/dist/components/navigation/tabs/tab/tab.d.ts +2 -0
  216. package/dist/components/navigation/tabs/tab/tab.js +14 -13
  217. package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
  218. package/dist/components/navigation/tabs/tabs.d.ts +12 -0
  219. package/dist/components/navigation/tabs/tabs.js +138 -83
  220. package/dist/components/navigation/tabs/tabs.js.map +1 -1
  221. package/dist/connects/rt/table/draggableHeader.d.ts +1 -1
  222. package/dist/connects/rt/table/draggableHeader.js.map +1 -0
  223. package/dist/connects/rt/table/headerCellRenderer.d.ts +6 -0
  224. package/dist/connects/rt/table/headerCellRenderer.js +21 -0
  225. package/dist/connects/rt/table/headerCellRenderer.js.map +1 -0
  226. package/dist/connects/rt/table/table.d.ts +2 -0
  227. package/dist/connects/rt/table/table.js +200 -0
  228. package/dist/connects/rt/table/table.js.map +1 -0
  229. package/dist/connects/rt/table/utils.js.map +1 -0
  230. package/dist/headless/components/dataDisplay/accordion/accordion.js +76 -54
  231. package/dist/headless/components/dataDisplay/accordion/accordion.js.map +1 -1
  232. package/dist/headless/components/dataDisplay/avatar/avatar.js +45 -31
  233. package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
  234. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js +41 -0
  235. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -0
  236. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js +29 -23
  237. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js.map +1 -1
  238. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js +16 -13
  239. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js.map +1 -1
  240. package/dist/headless/components/dataDisplay/kanban/kanban.js +61 -0
  241. package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -0
  242. package/dist/headless/components/dataDisplay/meter/meter.js +60 -0
  243. package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -0
  244. package/dist/headless/components/dataDisplay/personChip/personChip.js +59 -0
  245. package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -0
  246. package/dist/headless/components/dataDisplay/stat/stat.js +46 -0
  247. package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -0
  248. package/dist/headless/components/dataDisplay/table/table.js +16 -11
  249. package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
  250. package/dist/headless/components/dataDisplay/table/tableCell.js +11 -2
  251. package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
  252. package/dist/headless/components/dataDisplay/table/tableHeadCell.js +54 -24
  253. package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  254. package/dist/headless/components/dataDisplay/timeline/timeline.js +42 -0
  255. package/dist/headless/components/dataDisplay/timeline/timeline.js.map +1 -0
  256. package/dist/headless/components/dataDisplay/typography/typography.js +39 -22
  257. package/dist/headless/components/dataDisplay/typography/typography.js.map +1 -1
  258. package/dist/headless/components/feedBack/confirmDialog/confirmDialog.js +9 -9
  259. package/dist/headless/components/feedBack/confirmDialog/confirmDialog.js.map +1 -1
  260. package/dist/headless/components/feedBack/emptyState/emptyState.js +25 -0
  261. package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -0
  262. package/dist/headless/components/feedBack/progressIndicator/progressIndicator.js +70 -39
  263. package/dist/headless/components/feedBack/progressIndicator/progressIndicator.js.map +1 -1
  264. package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js +27 -26
  265. package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -1
  266. package/dist/headless/components/feedBack/tooltip/tooltip.js +53 -46
  267. package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
  268. package/dist/headless/components/inputs/datePicker/datePicker.js +112 -110
  269. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  270. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +121 -119
  271. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  272. package/dist/headless/components/inputs/selectField/dropdownMenu.js +72 -69
  273. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  274. package/dist/headless/components/inputs/selectField/selectField.js +109 -99
  275. package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
  276. package/dist/headless/components/inputs/timePicker/timePicker.js +65 -63
  277. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  278. package/dist/headless/components/layout/sectionHeader/sectionHeader.js +65 -0
  279. package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -0
  280. package/dist/headless/components/navigation/stepper/stepper.js +31 -29
  281. package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
  282. package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
  283. package/dist/headless/components/navigation/tabs/tabs.js +129 -75
  284. package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
  285. package/dist/headless/hooks/useSafeLayoutEffect.js +4 -2
  286. package/dist/headless/hooks/useSafeLayoutEffect.js.map +1 -1
  287. package/dist/headless/icons/catalog.js +78 -1
  288. package/dist/headless/icons/catalog.js.map +1 -1
  289. package/dist/headless/icons/index.js +596 -574
  290. package/dist/headless/icons/index.js.map +1 -1
  291. package/dist/headless/icons/svg/accountTree.js +9 -0
  292. package/dist/headless/icons/svg/accountTree.js.map +1 -0
  293. package/dist/headless/icons/svg/callSplit.js +9 -0
  294. package/dist/headless/icons/svg/callSplit.js.map +1 -0
  295. package/dist/headless/icons/svg/deviceHub.js +8 -0
  296. package/dist/headless/icons/svg/deviceHub.js.map +1 -0
  297. package/dist/headless/icons/svg/editNote.js +9 -0
  298. package/dist/headless/icons/svg/editNote.js.map +1 -0
  299. package/dist/headless/icons/svg/filterList.js +9 -0
  300. package/dist/headless/icons/svg/filterList.js.map +1 -0
  301. package/dist/headless/icons/svg/forkRight.js +8 -0
  302. package/dist/headless/icons/svg/forkRight.js.map +1 -0
  303. package/dist/headless/icons/svg/groups.js +9 -0
  304. package/dist/headless/icons/svg/groups.js.map +1 -0
  305. package/dist/headless/icons/svg/hub.js +8 -0
  306. package/dist/headless/icons/svg/hub.js.map +1 -0
  307. package/dist/headless/icons/svg/index.js +598 -576
  308. package/dist/headless/icons/svg/index.js.map +1 -1
  309. package/dist/headless/icons/svg/lan.js +9 -0
  310. package/dist/headless/icons/svg/lan.js.map +1 -0
  311. package/dist/headless/icons/svg/personOff.js +9 -0
  312. package/dist/headless/icons/svg/personOff.js.map +1 -0
  313. package/dist/headless/icons/svg/schema.js +9 -0
  314. package/dist/headless/icons/svg/schema.js.map +1 -0
  315. package/dist/headless/index.js +209 -183
  316. package/dist/headless/index.js.map +1 -1
  317. package/dist/hooks/useSafeLayoutEffect.d.ts +7 -1
  318. package/dist/hooks/useSafeLayoutEffect.js +4 -2
  319. package/dist/hooks/useSafeLayoutEffect.js.map +1 -1
  320. package/dist/icons/catalog.d.ts +1 -1
  321. package/dist/icons/catalog.js +78 -1
  322. package/dist/icons/catalog.js.map +1 -1
  323. package/dist/icons/index.js +596 -574
  324. package/dist/icons/index.js.map +1 -1
  325. package/dist/icons/svg/accountTree.d.ts +4 -0
  326. package/dist/icons/svg/accountTree.js +9 -0
  327. package/dist/icons/svg/accountTree.js.map +1 -0
  328. package/dist/icons/svg/callSplit.d.ts +4 -0
  329. package/dist/icons/svg/callSplit.js +9 -0
  330. package/dist/icons/svg/callSplit.js.map +1 -0
  331. package/dist/icons/svg/deviceHub.d.ts +4 -0
  332. package/dist/icons/svg/deviceHub.js +8 -0
  333. package/dist/icons/svg/deviceHub.js.map +1 -0
  334. package/dist/icons/svg/editNote.d.ts +4 -0
  335. package/dist/icons/svg/editNote.js +9 -0
  336. package/dist/icons/svg/editNote.js.map +1 -0
  337. package/dist/icons/svg/filterList.d.ts +4 -0
  338. package/dist/icons/svg/filterList.js +9 -0
  339. package/dist/icons/svg/filterList.js.map +1 -0
  340. package/dist/icons/svg/forkRight.d.ts +4 -0
  341. package/dist/icons/svg/forkRight.js +8 -0
  342. package/dist/icons/svg/forkRight.js.map +1 -0
  343. package/dist/icons/svg/groups.d.ts +4 -0
  344. package/dist/icons/svg/groups.js +9 -0
  345. package/dist/icons/svg/groups.js.map +1 -0
  346. package/dist/icons/svg/hub.d.ts +4 -0
  347. package/dist/icons/svg/hub.js +8 -0
  348. package/dist/icons/svg/hub.js.map +1 -0
  349. package/dist/icons/svg/index.d.ts +11 -0
  350. package/dist/icons/svg/index.js +598 -576
  351. package/dist/icons/svg/index.js.map +1 -1
  352. package/dist/icons/svg/lan.d.ts +4 -0
  353. package/dist/icons/svg/lan.js +9 -0
  354. package/dist/icons/svg/lan.js.map +1 -0
  355. package/dist/icons/svg/personOff.d.ts +4 -0
  356. package/dist/icons/svg/personOff.js +9 -0
  357. package/dist/icons/svg/personOff.js.map +1 -0
  358. package/dist/icons/svg/schema.d.ts +4 -0
  359. package/dist/icons/svg/schema.js +9 -0
  360. package/dist/icons/svg/schema.js.map +1 -0
  361. package/dist/icons.cjs +1 -1
  362. package/dist/icons.cjs.map +1 -1
  363. package/dist/index.cjs +2 -2
  364. package/dist/index.cjs.map +1 -1
  365. package/dist/index.d.ts +16 -0
  366. package/dist/index.js +209 -183
  367. package/dist/index.js.map +1 -1
  368. package/package.json +18 -7
  369. package/dist/react-table/components/base/icon/icon.js +0 -60
  370. package/dist/react-table/components/base/icon/icon.js.map +0 -1
  371. package/dist/react-table/components/base/icon/iconProvider.js +0 -15
  372. package/dist/react-table/components/base/icon/iconProvider.js.map +0 -1
  373. package/dist/react-table/components/dataDisplay/table/table.js +0 -37
  374. package/dist/react-table/components/dataDisplay/table/table.js.map +0 -1
  375. package/dist/react-table/components/dataDisplay/table/tableBody.js +0 -7
  376. package/dist/react-table/components/dataDisplay/table/tableBody.js.map +0 -1
  377. package/dist/react-table/components/dataDisplay/table/tableCell.js +0 -7
  378. package/dist/react-table/components/dataDisplay/table/tableCell.js.map +0 -1
  379. package/dist/react-table/components/dataDisplay/table/tableHead.js +0 -7
  380. package/dist/react-table/components/dataDisplay/table/tableHead.js.map +0 -1
  381. package/dist/react-table/components/dataDisplay/table/tableHeadCell.js +0 -48
  382. package/dist/react-table/components/dataDisplay/table/tableHeadCell.js.map +0 -1
  383. package/dist/react-table/components/dataDisplay/table/tablePagination/tablePagination.js +0 -40
  384. package/dist/react-table/components/dataDisplay/table/tablePagination/tablePagination.js.map +0 -1
  385. package/dist/react-table/components/dataDisplay/table/tableRow.js +0 -20
  386. package/dist/react-table/components/dataDisplay/table/tableRow.js.map +0 -1
  387. package/dist/react-table/components/feedBack/message/message.js +0 -31
  388. package/dist/react-table/components/feedBack/message/message.js.map +0 -1
  389. package/dist/react-table/components/feedBack/progressIndicator/progressIndicator.js +0 -51
  390. package/dist/react-table/components/feedBack/progressIndicator/progressIndicator.js.map +0 -1
  391. package/dist/react-table/components/inputs/textField/textField.js +0 -125
  392. package/dist/react-table/components/inputs/textField/textField.js.map +0 -1
  393. package/dist/react-table/components/inputs/textField/textFieldAdornment.js +0 -25
  394. package/dist/react-table/components/inputs/textField/textFieldAdornment.js.map +0 -1
  395. package/dist/react-table/components/inputs/textField/textFieldWrapper.js +0 -50
  396. package/dist/react-table/components/inputs/textField/textFieldWrapper.js.map +0 -1
  397. package/dist/react-table/components/inputs/textField/utils.js +0 -11
  398. package/dist/react-table/components/inputs/textField/utils.js.map +0 -1
  399. package/dist/react-table/connects/rt/table/draggableHeader.js.map +0 -1
  400. package/dist/react-table/connects/rt/table/headerCellRenderer.js +0 -14
  401. package/dist/react-table/connects/rt/table/headerCellRenderer.js.map +0 -1
  402. package/dist/react-table/connects/rt/table/table.js +0 -180
  403. package/dist/react-table/connects/rt/table/table.js.map +0 -1
  404. package/dist/react-table/connects/rt/table/utils.js.map +0 -1
  405. package/dist/react-table/hooks/useForkRef.js +0 -13
  406. package/dist/react-table/hooks/useForkRef.js.map +0 -1
  407. package/dist/react-table/hooks/useSafeLayoutEffect.js +0 -6
  408. package/dist/react-table/hooks/useSafeLayoutEffect.js.map +0 -1
  409. package/dist/react-table/icons/config.js +0 -9
  410. package/dist/react-table/icons/config.js.map +0 -1
  411. package/dist/react-table/icons/registry.js +0 -12
  412. package/dist/react-table/icons/registry.js.map +0 -1
  413. package/dist/react-table/icons/store.js +0 -10
  414. package/dist/react-table/icons/store.js.map +0 -1
  415. package/dist/react-table/utils/setRef.js +0 -7
  416. package/dist/react-table/utils/setRef.js.map +0 -1
  417. package/dist/storybook/storyPlay.d.ts +0 -19
  418. /package/dist/{react-table/connects → connects}/rt/table/draggableHeader.js +0 -0
  419. /package/dist/{react-table/connects → connects}/rt/table/utils.js +0 -0
  420. /package/dist/{react-table/react-table.js → react-table.js} +0 -0
  421. /package/dist/{react-table/react-table.js.map → react-table.js.map} +0 -0
@@ -0,0 +1,46 @@
1
+ import { jsxs as _, jsx as s } from "react/jsx-runtime";
2
+ import i from "react";
3
+ import w from "clsx";
4
+ import { Icon as d } from "../../base/icon/icon.js";
5
+ const S = i.forwardRef(function({ className: l, label: n, value: a, hint: r, icon: t, tone: o = "neutral", variant: e = "tile", href: m, children: c, ...b }, u) {
6
+ return /* @__PURE__ */ _(
7
+ m ? "a" : "div",
8
+ {
9
+ ...b,
10
+ ref: u,
11
+ ...m ? { href: m } : {},
12
+ "data-testid": "stat",
13
+ className: w(
14
+ "smwb-stat",
15
+ `smwb-stat_${e}`,
16
+ `smwb-stat_tone-${o}`,
17
+ { "smwb-stat_link": !!m, "smwb-stat_with-icon": !!t },
18
+ l
19
+ ),
20
+ children: [
21
+ t ? /* @__PURE__ */ s("span", { className: "smwb-stat__icon", "aria-hidden": "true", children: typeof t == "string" ? /* @__PURE__ */ s(d, { name: t, size: 20 }) : t }) : null,
22
+ /* @__PURE__ */ s("span", { className: "smwb-stat__label", children: n }),
23
+ /* @__PURE__ */ s("span", { className: "smwb-stat__value", children: a }),
24
+ r ? /* @__PURE__ */ s("span", { className: "smwb-stat__hint", children: r }) : null,
25
+ c ? /* @__PURE__ */ s("div", { className: "smwb-stat__extra", children: c }) : null
26
+ ]
27
+ }
28
+ );
29
+ }), R = i.forwardRef(function({ className: l, style: n, minItemWidth: a, children: r, ...t }, o) {
30
+ const e = typeof a == "number" ? `${a}px` : a;
31
+ return /* @__PURE__ */ s(
32
+ "div",
33
+ {
34
+ ...t,
35
+ ref: o,
36
+ className: w("smwb-stat-group", l),
37
+ style: e === void 0 ? n : { ...n, "--smwb-stat-min": e },
38
+ children: r
39
+ }
40
+ );
41
+ });
42
+ export {
43
+ S as Stat,
44
+ R as StatGroup
45
+ };
46
+ //# 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":";;;;AA4BO,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;"}
@@ -1,37 +1,42 @@
1
1
  import { jsxs as l, jsx as a } from "react/jsx-runtime";
2
2
  import { forwardRef as n } from "react";
3
3
  import r from "clsx";
4
- import _ from "./tablePagination/tablePagination.js";
5
- const u = n(
6
- ({ className: m, dense: b, hovered: o, children: t, paginationSettings: e, isLoading: c, stickyHeader: i, caption: s, ...w }, d) => /* @__PURE__ */ l(
4
+ import p from "./tablePagination/tablePagination.js";
5
+ const v = n(
6
+ ({ className: b, dense: t, hovered: o, children: w, paginationSettings: e, isLoading: c, stickyHeader: i, caption: s, stackBelow: m, ..._ }, d) => /* @__PURE__ */ l(
7
7
  "div",
8
8
  {
9
9
  ref: d,
10
- className: r("smwb-table__wrapper", m, {
11
- "smwb-table__wrapper_loading": c
12
- }),
13
- ...w,
10
+ className: r(
11
+ "smwb-table__wrapper",
12
+ b,
13
+ {
14
+ "smwb-table__wrapper_loading": c
15
+ },
16
+ m && `smwb-table__wrapper_stack-${m}`
17
+ ),
18
+ ..._,
14
19
  children: [
15
20
  /* @__PURE__ */ a("div", { className: r("smwb-table__container", { "smwb-withPagination": !!e }), children: /* @__PURE__ */ l(
16
21
  "table",
17
22
  {
18
23
  className: r("smwb-table", {
19
- "smwb-dense": b,
24
+ "smwb-dense": t,
20
25
  "smwb-hovered": o,
21
26
  "smwb-table_sticky-header": i
22
27
  }),
23
28
  children: [
24
29
  s != null && /* @__PURE__ */ a("caption", { className: "smwb-table__caption", children: s }),
25
- t
30
+ w
26
31
  ]
27
32
  }
28
33
  ) }),
29
- !!e && /* @__PURE__ */ a(_, { ...e })
34
+ !!e && /* @__PURE__ */ a(p, { ...e })
30
35
  ]
31
36
  }
32
37
  )
33
38
  );
34
39
  export {
35
- u as default
40
+ v as default
36
41
  };
37
42
  //# 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":";;;;AAgBA,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":";;;;AAuBA,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;"}
@@ -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;"}
@@ -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;"}
@@ -0,0 +1,42 @@
1
+ import { jsx as e, jsxs as a } from "react/jsx-runtime";
2
+ import r from "react";
3
+ import c from "clsx";
4
+ import { Icon as w } from "../../base/icon/icon.js";
5
+ const h = r.forwardRef(function({ className: s, dense: n, stickyLabels: m, children: l, ...i }, t) {
6
+ return /* @__PURE__ */ e(
7
+ "ol",
8
+ {
9
+ ...i,
10
+ ref: t,
11
+ className: c(
12
+ "smwb-timeline",
13
+ { "smwb-timeline_dense": n, "smwb-timeline_sticky-labels": m },
14
+ s
15
+ ),
16
+ children: l
17
+ }
18
+ );
19
+ }), v = r.forwardRef(
20
+ function({ className: s, label: n, children: m, ...l }, i) {
21
+ return /* @__PURE__ */ a("li", { ...l, ref: i, className: c("smwb-timeline__group", s), children: [
22
+ /* @__PURE__ */ e("div", { className: "smwb-timeline__label", children: n }),
23
+ /* @__PURE__ */ e("ol", { className: "smwb-timeline__items", children: m })
24
+ ] });
25
+ }
26
+ ), T = r.forwardRef(function({ className: s, title: n, meta: m, time: l, icon: i, tone: t = "neutral", children: o, ...d }, b) {
27
+ return /* @__PURE__ */ a("li", { ...d, ref: b, className: c("smwb-timeline__item", `smwb-timeline__item_tone-${t}`, s), children: [
28
+ /* @__PURE__ */ e("span", { className: "smwb-timeline__mark", "aria-hidden": "true", children: i ? typeof i == "string" ? /* @__PURE__ */ e(w, { name: i, size: 16 }) : i : /* @__PURE__ */ e("span", { className: "smwb-timeline__dot" }) }),
29
+ /* @__PURE__ */ a("div", { className: "smwb-timeline__body", children: [
30
+ /* @__PURE__ */ e("div", { className: "smwb-timeline__title", children: n }),
31
+ m ? /* @__PURE__ */ e("div", { className: "smwb-timeline__meta", children: m }) : null,
32
+ o ? /* @__PURE__ */ e("div", { className: "smwb-timeline__content", children: o }) : null
33
+ ] }),
34
+ l ? /* @__PURE__ */ e("div", { className: "smwb-timeline__time", children: l }) : null
35
+ ] });
36
+ });
37
+ export {
38
+ h as Timeline,
39
+ v as TimelineGroup,
40
+ T as TimelineItem
41
+ };
42
+ //# sourceMappingURL=timeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline.js","sources":["../../../../../src/components/dataDisplay/timeline/timeline.tsx"],"sourcesContent":["import React, { HTMLAttributes, LiHTMLAttributes, OlHTMLAttributes, PropsWithChildren, ReactNode } from \"react\";\nimport cn from \"clsx\";\nimport Icon from \"../../base/icon/icon\";\n\nexport type TimelineTone = \"neutral\" | \"info\" | \"success\" | \"warning\" | \"error\";\n\nexport interface TimelineProps extends OlHTMLAttributes<HTMLOListElement> {\n className?: string;\n /** Tighter rows, for side panels. */\n dense?: boolean;\n /** Keep a group's label in view while its events scroll past (in a scrolling container). */\n stickyLabels?: boolean;\n}\n\nexport interface TimelineGroupProps extends Omit<LiHTMLAttributes<HTMLLIElement>, \"title\"> {\n className?: string;\n /** What groups the events — a day, a week, a stage. */\n label: ReactNode;\n}\n\nexport interface TimelineItemProps extends Omit<HTMLAttributes<HTMLLIElement>, \"title\"> {\n className?: string;\n /** The event itself: a line of text, usually a link. */\n title: ReactNode;\n /** A second line: who, what kind, where. */\n meta?: ReactNode;\n /** When: a time or a date, at the end of the row. */\n time?: ReactNode;\n /** The event's mark on the line: a Material Symbols name or an element. A dot without it. */\n icon?: string | ReactNode;\n /** Colour of the mark. */\n tone?: TimelineTone;\n}\n\n/**\n * Events on a line, newest or oldest first as given: TimelineItem children,\n * optionally grouped by TimelineGroup (a day, a week).\n */\nexport const Timeline = React.forwardRef<HTMLOListElement, PropsWithChildren<TimelineProps>>(function Timeline(\n { className, dense, stickyLabels, children, ...rest },\n ref\n) {\n return (\n <ol\n {...rest}\n ref={ref}\n className={cn(\n \"smwb-timeline\",\n { \"smwb-timeline_dense\": dense, \"smwb-timeline_sticky-labels\": stickyLabels },\n className\n )}\n >\n {children}\n </ol>\n );\n});\n\n/** A labelled run of events: the label, then its TimelineItem children on the line. */\nexport const TimelineGroup = React.forwardRef<HTMLLIElement, PropsWithChildren<TimelineGroupProps>>(\n function TimelineGroup({ className, label, children, ...rest }, ref) {\n return (\n <li {...rest} ref={ref} className={cn(\"smwb-timeline__group\", className)}>\n <div className=\"smwb-timeline__label\">{label}</div>\n <ol className=\"smwb-timeline__items\">{children}</ol>\n </li>\n );\n }\n);\n\n/** One event: its mark on the line, the title and meta lines, the time; children below. */\nexport const TimelineItem = React.forwardRef<HTMLLIElement, PropsWithChildren<TimelineItemProps>>(function TimelineItem(\n { className, title, meta, time, icon, tone = \"neutral\", children, ...rest },\n ref\n) {\n return (\n <li {...rest} ref={ref} className={cn(\"smwb-timeline__item\", `smwb-timeline__item_tone-${tone}`, className)}>\n <span className=\"smwb-timeline__mark\" aria-hidden=\"true\">\n {icon ? (\n typeof icon === \"string\" ? (\n <Icon name={icon} size={16} />\n ) : (\n icon\n )\n ) : (\n <span className=\"smwb-timeline__dot\" />\n )}\n </span>\n <div className=\"smwb-timeline__body\">\n <div className=\"smwb-timeline__title\">{title}</div>\n {meta ? <div className=\"smwb-timeline__meta\">{meta}</div> : null}\n {children ? <div className=\"smwb-timeline__content\">{children}</div> : null}\n </div>\n {time ? <div className=\"smwb-timeline__time\">{time}</div> : null}\n </li>\n );\n});\n\nexport default Timeline;\n"],"names":["Timeline","React","className","dense","stickyLabels","children","rest","ref","jsx","cn","TimelineGroup","label","jsxs","TimelineItem","title","meta","time","icon","tone","Icon"],"mappings":";;;;AAsCO,MAAMA,IAAWC,EAAM,WAA+D,SAC3F,EAAE,WAAAC,GAAW,OAAAC,GAAO,cAAAC,GAAc,UAAAC,GAAU,GAAGC,EAAA,GAC/CC,GACA;AACA,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,KAAAC;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACA,EAAE,uBAAuBN,GAAO,+BAA+BC,EAAA;AAAA,QAC/DF;AAAA,MAAA;AAAA,MAGD,UAAAG;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC,GAGYK,IAAgBT,EAAM;AAAA,EACjC,SAAuB,EAAE,WAAAC,GAAW,OAAAS,GAAO,UAAAN,GAAU,GAAGC,EAAA,GAAQC,GAAK;AACnE,WACE,gBAAAK,EAAC,QAAI,GAAGN,GAAM,KAAAC,GAAU,WAAWE,EAAG,wBAAwBP,CAAS,GACrE,UAAA;AAAA,MAAA,gBAAAM,EAAC,OAAA,EAAI,WAAU,wBAAwB,UAAAG,GAAM;AAAA,MAC7C,gBAAAH,EAAC,MAAA,EAAG,WAAU,wBAAwB,UAAAH,EAAA,CAAS;AAAA,IAAA,GACjD;AAAA,EAEJ;AACF,GAGaQ,IAAeZ,EAAM,WAAgE,SAChG,EAAE,WAAAC,GAAW,OAAAY,GAAO,MAAAC,GAAM,MAAAC,GAAM,MAAAC,GAAM,MAAAC,IAAO,WAAW,UAAAb,GAAU,GAAGC,EAAA,GACrEC,GACA;AACA,SACE,gBAAAK,EAAC,MAAA,EAAI,GAAGN,GAAM,KAAAC,GAAU,WAAWE,EAAG,uBAAuB,4BAA4BS,CAAI,IAAIhB,CAAS,GACxG,UAAA;AAAA,IAAA,gBAAAM,EAAC,QAAA,EAAK,WAAU,uBAAsB,eAAY,QAC/C,UAAAS,IACC,OAAOA,KAAS,WACd,gBAAAT,EAACW,KAAK,MAAMF,GAAM,MAAM,GAAA,CAAI,IAE5BA,IAGF,gBAAAT,EAAC,QAAA,EAAK,WAAU,qBAAA,CAAqB,EAAA,CAEzC;AAAA,IACA,gBAAAI,EAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,MAAA,gBAAAJ,EAAC,OAAA,EAAI,WAAU,wBAAwB,UAAAM,GAAM;AAAA,MAC5CC,IAAO,gBAAAP,EAAC,OAAA,EAAI,WAAU,uBAAuB,aAAK,IAAS;AAAA,MAC3DH,IAAW,gBAAAG,EAAC,OAAA,EAAI,WAAU,0BAA0B,UAAAH,GAAS,IAAS;AAAA,IAAA,GACzE;AAAA,IACCW,IAAO,gBAAAR,EAAC,OAAA,EAAI,WAAU,uBAAuB,aAAK,IAAS;AAAA,EAAA,GAC9D;AAEJ,CAAC;"}
@@ -1,44 +1,61 @@
1
- import { jsx as e } from "react/jsx-runtime";
2
- import m from "react";
3
- import f from "clsx";
4
- const u = {
1
+ import { jsx as d } from "react/jsx-runtime";
2
+ import f from "react";
3
+ import l from "clsx";
4
+ const n = {
5
5
  h1: "h1",
6
6
  h2: "h2",
7
7
  h3: "h3",
8
8
  h4: "h4",
9
9
  h5: "h5",
10
10
  h6: "h6",
11
- subtitle1: "h6",
12
- subtitle2: "h6",
11
+ // A subtitle is not a heading: as h6 it would break the page's outline.
12
+ subtitle1: "p",
13
+ subtitle2: "p",
13
14
  body1: "p",
14
15
  body2: "p",
15
16
  caption: "span",
16
17
  overline: "span",
17
18
  button: "span"
18
- }, _ = m.forwardRef(function({ variant: t = "body1", color: p = "inherit", align: r, gutterBottom: a, noWrap: o, component: h, className: y, children: s, ...b }, g) {
19
- const i = h != null ? h : u[t];
20
- return /* @__PURE__ */ e(
21
- i,
19
+ }, x = f.forwardRef(function({
20
+ variant: a = "body1",
21
+ color: r = "inherit",
22
+ align: h,
23
+ gutterBottom: s,
24
+ noWrap: b,
25
+ lines: p,
26
+ tabularNums: m,
27
+ component: t,
28
+ className: g,
29
+ style: y,
30
+ children: i,
31
+ ...w
32
+ }, e) {
33
+ const u = t != null ? t : n[a], o = p !== void 0 && p > 0;
34
+ return /* @__PURE__ */ d(
35
+ u,
22
36
  {
23
- ref: g,
24
- className: f(
37
+ ref: e,
38
+ className: l(
25
39
  "smwb-typography",
26
- `smwb-typography_${t}`,
27
- p !== "inherit" && `smwb-typography_color-${p}`,
28
- r && `smwb-typography_align-${r}`,
40
+ `smwb-typography_${a}`,
41
+ r !== "inherit" && `smwb-typography_color-${r}`,
42
+ h && `smwb-typography_align-${h}`,
29
43
  {
30
- "smwb-typography_gutter": a,
31
- "smwb-typography_nowrap": o
44
+ "smwb-typography_gutter": s,
45
+ "smwb-typography_nowrap": b,
46
+ "smwb-typography_clamp": o,
47
+ "smwb-typography_tabular-nums": m
32
48
  },
33
- y
49
+ g
34
50
  ),
35
- ...b,
36
- children: s
51
+ style: o ? { ...y, "--smwb-typography-lines": p } : y,
52
+ ...w,
53
+ children: i
37
54
  }
38
55
  );
39
56
  });
40
57
  export {
41
- _ as Typography,
42
- _ as default
58
+ x as Typography,
59
+ x as default
43
60
  };
44
61
  //# sourceMappingURL=typography.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typography.js","sources":["../../../../../src/components/dataDisplay/typography/typography.tsx"],"sourcesContent":["import React, { HTMLAttributes, PropsWithChildren } from \"react\";\nimport cn from \"clsx\";\n\nexport type TypographyVariant =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"subtitle1\"\n | \"subtitle2\"\n | \"body1\"\n | \"body2\"\n | \"caption\"\n | \"overline\"\n | \"button\";\n\nexport type TypographyColor =\n | \"inherit\"\n | \"primary\"\n | \"secondary\"\n | \"error\"\n | \"success\"\n | \"warning\"\n | \"info\"\n | \"textPrimary\"\n | \"textSecondary\"\n | \"disabled\";\n\nconst defaultTag: Record<TypographyVariant, keyof JSX.IntrinsicElements> = {\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n h5: \"h5\",\n h6: \"h6\",\n subtitle1: \"h6\",\n subtitle2: \"h6\",\n body1: \"p\",\n body2: \"p\",\n caption: \"span\",\n overline: \"span\",\n button: \"span\",\n};\n\nexport interface TypographyProps extends HTMLAttributes<HTMLElement> {\n variant?: TypographyVariant;\n color?: TypographyColor;\n align?: \"left\" | \"center\" | \"right\" | \"justify\";\n /** Add a bottom margin (block rhythm). */\n gutterBottom?: boolean;\n /** Truncate with an ellipsis on a single line. */\n noWrap?: boolean;\n /** Render as a different element/component. */\n component?: keyof JSX.IntrinsicElements;\n className?: string;\n}\n\nexport const Typography = React.forwardRef<HTMLElement, PropsWithChildren<TypographyProps>>(function Typography(\n { variant = \"body1\", color = \"inherit\", align, gutterBottom, noWrap, component, className, children, ...rest },\n ref\n) {\n const Tag = (component ?? defaultTag[variant]) as \"p\";\n return (\n <Tag\n ref={ref as React.Ref<HTMLParagraphElement>}\n className={cn(\n \"smwb-typography\",\n `smwb-typography_${variant}`,\n color !== \"inherit\" && `smwb-typography_color-${color}`,\n align && `smwb-typography_align-${align}`,\n {\n \"smwb-typography_gutter\": gutterBottom,\n \"smwb-typography_nowrap\": noWrap,\n },\n className\n )}\n {...rest}\n >\n {children}\n </Tag>\n );\n});\n\nexport default Typography;\n"],"names":["defaultTag","Typography","React","variant","color","align","gutterBottom","noWrap","component","className","children","rest","ref","Tag","jsx","cn"],"mappings":";;;AA8BA,MAAMA,IAAqE;AAAA,EACzE,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,WAAW;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AAAA,EACP,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AACV,GAeaC,IAAaC,EAAM,WAA4D,SAC1F,EAAE,SAAAC,IAAU,SAAS,OAAAC,IAAQ,WAAW,OAAAC,GAAO,cAAAC,GAAc,QAAAC,GAAQ,WAAAC,GAAW,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GACxGC,GACA;AACA,QAAMC,IAAOL,KAAA,OAAAA,IAAaR,EAAWG,CAAO;AAC5C,SACE,gBAAAW;AAAA,IAACD;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWG;AAAA,QACT;AAAA,QACA,mBAAmBZ,CAAO;AAAA,QAC1BC,MAAU,aAAa,yBAAyBA,CAAK;AAAA,QACrDC,KAAS,yBAAyBA,CAAK;AAAA,QACvC;AAAA,UACE,0BAA0BC;AAAA,UAC1B,0BAA0BC;AAAA,QAAA;AAAA,QAE5BE;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
1
+ {"version":3,"file":"typography.js","sources":["../../../../../src/components/dataDisplay/typography/typography.tsx"],"sourcesContent":["import React, { CSSProperties, HTMLAttributes, PropsWithChildren } from \"react\";\nimport cn from \"clsx\";\n\nexport type TypographyVariant =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"subtitle1\"\n | \"subtitle2\"\n | \"body1\"\n | \"body2\"\n | \"caption\"\n | \"overline\"\n | \"button\";\n\nexport type TypographyColor =\n | \"inherit\"\n | \"primary\"\n | \"secondary\"\n | \"error\"\n | \"success\"\n | \"warning\"\n | \"info\"\n | \"textPrimary\"\n | \"textSecondary\"\n | \"disabled\";\n\nconst defaultTag: Record<TypographyVariant, keyof JSX.IntrinsicElements> = {\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n h5: \"h5\",\n h6: \"h6\",\n // A subtitle is not a heading: as h6 it would break the page's outline.\n subtitle1: \"p\",\n subtitle2: \"p\",\n body1: \"p\",\n body2: \"p\",\n caption: \"span\",\n overline: \"span\",\n button: \"span\",\n};\n\nexport interface TypographyProps extends HTMLAttributes<HTMLElement> {\n variant?: TypographyVariant;\n color?: TypographyColor;\n align?: \"left\" | \"center\" | \"right\" | \"justify\";\n /** Add a bottom margin (block rhythm). */\n gutterBottom?: boolean;\n /** Truncate with an ellipsis on a single line. */\n noWrap?: boolean;\n /** Truncate with an ellipsis after this many lines. */\n lines?: number;\n /** Digits of equal width (`tabular-nums`), so figures line up in KPIs and tables. */\n tabularNums?: boolean;\n /** Render as a different element/component. */\n component?: keyof JSX.IntrinsicElements;\n className?: string;\n}\n\nexport const Typography = React.forwardRef<HTMLElement, PropsWithChildren<TypographyProps>>(function Typography(\n {\n variant = \"body1\",\n color = \"inherit\",\n align,\n gutterBottom,\n noWrap,\n lines,\n tabularNums,\n component,\n className,\n style,\n children,\n ...rest\n },\n ref\n) {\n const Tag = (component ?? defaultTag[variant]) as \"p\";\n const clamped = lines !== undefined && lines > 0;\n return (\n <Tag\n ref={ref as React.Ref<HTMLParagraphElement>}\n className={cn(\n \"smwb-typography\",\n `smwb-typography_${variant}`,\n color !== \"inherit\" && `smwb-typography_color-${color}`,\n align && `smwb-typography_align-${align}`,\n {\n \"smwb-typography_gutter\": gutterBottom,\n \"smwb-typography_nowrap\": noWrap,\n \"smwb-typography_clamp\": clamped,\n \"smwb-typography_tabular-nums\": tabularNums,\n },\n className\n )}\n style={clamped ? ({ ...style, \"--smwb-typography-lines\": lines } as CSSProperties) : style}\n {...rest}\n >\n {children}\n </Tag>\n );\n});\n\nexport default Typography;\n"],"names":["defaultTag","Typography","React","variant","color","align","gutterBottom","noWrap","lines","tabularNums","component","className","style","children","rest","ref","Tag","clamped","jsx","cn"],"mappings":";;;AA8BA,MAAMA,IAAqE;AAAA,EACzE,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA;AAAA,EAEJ,WAAW;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AAAA,EACP,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AACV,GAmBaC,IAAaC,EAAM,WAA4D,SAC1F;AAAA,EACE,SAAAC,IAAU;AAAA,EACV,OAAAC,IAAQ;AAAA,EACR,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,QAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAON,KAAA,OAAAA,IAAaV,EAAWG,CAAO,GACtCc,IAAUT,MAAU,UAAaA,IAAQ;AAC/C,SACE,gBAAAU;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWI;AAAA,QACT;AAAA,QACA,mBAAmBhB,CAAO;AAAA,QAC1BC,MAAU,aAAa,yBAAyBA,CAAK;AAAA,QACrDC,KAAS,yBAAyBA,CAAK;AAAA,QACvC;AAAA,UACE,0BAA0BC;AAAA,UAC1B,0BAA0BC;AAAA,UAC1B,yBAAyBU;AAAA,UACzB,gCAAgCR;AAAA,QAAA;AAAA,QAElCE;AAAA,MAAA;AAAA,MAEF,OAAOM,IAAW,EAAE,GAAGL,GAAO,2BAA2BJ,MAA4BI;AAAA,MACpF,GAAGE;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
@@ -1,17 +1,17 @@
1
- import { jsxs as a, jsx as o } from "react/jsx-runtime";
1
+ import { jsxs as l, jsx as o } from "react/jsx-runtime";
2
2
  import { useId as p } from "react";
3
3
  import j from "clsx";
4
4
  import { Modal as r } from "../modal/modal.js";
5
5
  import { Typography as b } from "../../dataDisplay/typography/typography.js";
6
6
  import { Button as f } from "../../inputs/button/button.js";
7
7
  function N(u) {
8
- const { open: y, title: t, subject: n, message: i, confirmLabel: C, cancelLabel: l, danger: h, busy: e, onConfirm: g, onCancel: s, className: x } = u, c = p(), d = p(), m = [n ? c : "", i ? d : ""].filter(Boolean).join(" ");
9
- return /* @__PURE__ */ a(
8
+ const { open: y, title: t, subject: n, message: i, confirmLabel: C, cancelLabel: a, danger: h, busy: e, onConfirm: g, onCancel: c, className: x } = u, s = p(), d = p(), m = [n ? s : "", i ? d : ""].filter(Boolean).join(" ");
9
+ return /* @__PURE__ */ l(
10
10
  r,
11
11
  {
12
12
  open: y,
13
- onClose: s,
14
- size: "small",
13
+ onClose: c,
14
+ size: "medium",
15
15
  role: "alertdialog",
16
16
  backdrop: "dark",
17
17
  closeOnEsc: !e,
@@ -20,12 +20,12 @@ function N(u) {
20
20
  ...m ? { "aria-describedby": m } : {},
21
21
  children: [
22
22
  /* @__PURE__ */ o(r.Header, { children: t }),
23
- /* @__PURE__ */ o(r.Content, { children: /* @__PURE__ */ a("div", { className: j("smwb-confirm-dialog__body", x), children: [
24
- n ? /* @__PURE__ */ o(b, { id: c, variant: "body2", color: "textPrimary", component: "span", children: n }) : null,
23
+ /* @__PURE__ */ o(r.Content, { children: /* @__PURE__ */ l("div", { className: j("smwb-confirm-dialog__body", x), children: [
24
+ n ? /* @__PURE__ */ o(b, { id: s, variant: "body2", color: "textPrimary", component: "span", children: n }) : null,
25
25
  i ? /* @__PURE__ */ o(b, { id: d, variant: "caption", color: "textSecondary", component: "span", children: i }) : null
26
26
  ] }) }),
27
- /* @__PURE__ */ a(r.Footer, { children: [
28
- /* @__PURE__ */ o(f, { variant: "text", size: "small", disabled: !!e, onClick: s, label: l != null ? l : "Cancel" }),
27
+ /* @__PURE__ */ l(r.Footer, { children: [
28
+ /* @__PURE__ */ o(f, { variant: "text", size: "small", disabled: !!e, onClick: c, label: a != null ? a : "Cancel" }),
29
29
  /* @__PURE__ */ o(
30
30
  f,
31
31
  {
@@ -1 +1 @@
1
- {"version":3,"file":"confirmDialog.js","sources":["../../../../../src/components/feedBack/confirmDialog/confirmDialog.tsx"],"sourcesContent":["import React, { useId } from \"react\";\nimport cn from \"clsx\";\nimport { Modal } from \"../modal\";\nimport { Button } from \"../../inputs/button\";\nimport { Typography } from \"../../dataDisplay/typography\";\n\nexport interface ConfirmDialogProps {\n open: boolean;\n title: string;\n /** The subject of the action, shown emphasised on its own line (e.g. the asset name). */\n subject?: string;\n /** A secondary explanatory line (e.g. \"can't be undone\"). */\n message?: string;\n confirmLabel: string;\n cancelLabel?: string;\n /** Style the confirm button as destructive (red). */\n danger?: boolean;\n /** Disable the actions + gate Esc/outside-click while a confirm is in flight. */\n busy?: boolean;\n onConfirm: () => void;\n onCancel: () => void;\n className?: string;\n}\n\n/**\n * An alert/confirm dialog built on {@link Modal}: a title, an optional emphasised subject + secondary\n * message, and Cancel / Confirm actions. `role=\"alertdialog\"` with the subject + message wired to\n * `aria-describedby` so a screen reader announces the consequence, not just the title. While `busy`,\n * Escape + outside-click are gated and the buttons disabled. Pure presentation — the caller owns the\n * open state and the confirm/cancel handlers (and supplies localised labels).\n */\nexport function ConfirmDialog(props: ConfirmDialogProps): React.ReactElement {\n const { open, title, subject, message, confirmLabel, cancelLabel, danger, busy, onConfirm, onCancel, className } =\n props;\n\n const subjectId = useId();\n const messageId = useId();\n // Only describe when there IS something to describe — an empty aria-describedby would point a\n // screen reader at nothing.\n const describedBy = [subject ? subjectId : \"\", message ? messageId : \"\"].filter(Boolean).join(\" \");\n\n return (\n <Modal\n open={open}\n onClose={onCancel}\n size=\"small\"\n role=\"alertdialog\"\n backdrop=\"dark\"\n closeOnEsc={!busy}\n closeOnOutsideClick={!busy}\n aria-label={title}\n {...(describedBy ? { \"aria-describedby\": describedBy } : {})}\n >\n <Modal.Header>{title}</Modal.Header>\n <Modal.Content>\n <div className={cn(\"smwb-confirm-dialog__body\", className)}>\n {subject ? (\n <Typography id={subjectId} variant=\"body2\" color=\"textPrimary\" component=\"span\">\n {subject}\n </Typography>\n ) : null}\n {message ? (\n <Typography id={messageId} variant=\"caption\" color=\"textSecondary\" component=\"span\">\n {message}\n </Typography>\n ) : null}\n </div>\n </Modal.Content>\n <Modal.Footer>\n <Button variant=\"text\" size=\"small\" disabled={!!busy} onClick={onCancel} label={cancelLabel ?? \"Cancel\"} />\n <Button\n variant=\"contained\"\n size=\"small\"\n color={danger ? \"error\" : \"primary\"}\n disabled={!!busy}\n onClick={onConfirm}\n label={confirmLabel}\n />\n </Modal.Footer>\n </Modal>\n );\n}\n\nexport default ConfirmDialog;\n"],"names":["ConfirmDialog","props","open","title","subject","message","confirmLabel","cancelLabel","danger","busy","onConfirm","onCancel","className","subjectId","useId","messageId","describedBy","jsxs","Modal","jsx","cn","Typography","Button"],"mappings":";;;;;;AA+BO,SAASA,EAAcC,GAA+C;AAC3E,QAAM,EAAE,MAAAC,GAAM,OAAAC,GAAO,SAAAC,GAAS,SAAAC,GAAS,cAAAC,GAAc,aAAAC,GAAa,QAAAC,GAAQ,MAAAC,GAAM,WAAAC,GAAW,UAAAC,GAAU,WAAAC,EAAA,IACnGX,GAEIY,IAAYC,EAAA,GACZC,IAAYD,EAAA,GAGZE,IAAc,CAACZ,IAAUS,IAAY,IAAIR,IAAUU,IAAY,EAAE,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAEjG,SACE,gBAAAE;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAAhB;AAAA,MACA,SAASS;AAAA,MACT,MAAK;AAAA,MACL,MAAK;AAAA,MACL,UAAS;AAAA,MACT,YAAY,CAACF;AAAA,MACb,qBAAqB,CAACA;AAAA,MACtB,cAAYN;AAAA,MACX,GAAIa,IAAc,EAAE,oBAAoBA,EAAA,IAAgB,CAAA;AAAA,MAEzD,UAAA;AAAA,QAAA,gBAAAG,EAACD,EAAM,QAAN,EAAc,UAAAf,EAAA,CAAM;AAAA,QACrB,gBAAAgB,EAACD,EAAM,SAAN,EACC,UAAA,gBAAAD,EAAC,SAAI,WAAWG,EAAG,6BAA6BR,CAAS,GACtD,UAAA;AAAA,UAAAR,IACC,gBAAAe,EAACE,GAAA,EAAW,IAAIR,GAAW,SAAQ,SAAQ,OAAM,eAAc,WAAU,QACtE,UAAAT,EAAA,CACH,IACE;AAAA,UACHC,IACC,gBAAAc,EAACE,GAAA,EAAW,IAAIN,GAAW,SAAQ,WAAU,OAAM,iBAAgB,WAAU,QAC1E,UAAAV,EAAA,CACH,IACE;AAAA,QAAA,EAAA,CACN,EAAA,CACF;AAAA,QACA,gBAAAY,EAACC,EAAM,QAAN,EACC,UAAA;AAAA,UAAA,gBAAAC,EAACG,GAAA,EAAO,SAAQ,QAAO,MAAK,SAAQ,UAAU,CAAC,CAACb,GAAM,SAASE,GAAU,OAAOJ,KAAA,OAAAA,IAAe,UAAU;AAAA,UACzG,gBAAAY;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,OAAOd,IAAS,UAAU;AAAA,cAC1B,UAAU,CAAC,CAACC;AAAA,cACZ,SAASC;AAAA,cACT,OAAOJ;AAAA,YAAA;AAAA,UAAA;AAAA,QACT,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"confirmDialog.js","sources":["../../../../../src/components/feedBack/confirmDialog/confirmDialog.tsx"],"sourcesContent":["import React, { useId } from \"react\";\nimport cn from \"clsx\";\nimport { Modal } from \"../modal\";\nimport { Button } from \"../../inputs/button\";\nimport { Typography } from \"../../dataDisplay/typography\";\n\nexport interface ConfirmDialogProps {\n open: boolean;\n title: string;\n /** The subject of the action, shown emphasised on its own line (e.g. the asset name). */\n subject?: string;\n /** A secondary explanatory line (e.g. \"can't be undone\"). */\n message?: string;\n confirmLabel: string;\n cancelLabel?: string;\n /** Style the confirm button as destructive (red). */\n danger?: boolean;\n /** Disable the actions + gate Esc/outside-click while a confirm is in flight. */\n busy?: boolean;\n onConfirm: () => void;\n onCancel: () => void;\n className?: string;\n}\n\n/**\n * An alert/confirm dialog built on {@link Modal}: a title, an optional emphasised subject + secondary\n * message, and Cancel / Confirm actions. `role=\"alertdialog\"` with the subject + message wired to\n * `aria-describedby` so a screen reader announces the consequence, not just the title. While `busy`,\n * Escape + outside-click are gated and the buttons disabled. Pure presentation — the caller owns the\n * open state and the confirm/cancel handlers (and supplies localised labels).\n */\nexport function ConfirmDialog(props: ConfirmDialogProps): React.ReactElement {\n const { open, title, subject, message, confirmLabel, cancelLabel, danger, busy, onConfirm, onCancel, className } =\n props;\n\n const subjectId = useId();\n const messageId = useId();\n // Only describe when there IS something to describe — an empty aria-describedby would point a\n // screen reader at nothing.\n const describedBy = [subject ? subjectId : \"\", message ? messageId : \"\"].filter(Boolean).join(\" \");\n\n return (\n <Modal\n open={open}\n onClose={onCancel}\n size=\"medium\"\n role=\"alertdialog\"\n backdrop=\"dark\"\n closeOnEsc={!busy}\n closeOnOutsideClick={!busy}\n aria-label={title}\n {...(describedBy ? { \"aria-describedby\": describedBy } : {})}\n >\n <Modal.Header>{title}</Modal.Header>\n <Modal.Content>\n <div className={cn(\"smwb-confirm-dialog__body\", className)}>\n {subject ? (\n <Typography id={subjectId} variant=\"body2\" color=\"textPrimary\" component=\"span\">\n {subject}\n </Typography>\n ) : null}\n {message ? (\n <Typography id={messageId} variant=\"caption\" color=\"textSecondary\" component=\"span\">\n {message}\n </Typography>\n ) : null}\n </div>\n </Modal.Content>\n <Modal.Footer>\n <Button variant=\"text\" size=\"small\" disabled={!!busy} onClick={onCancel} label={cancelLabel ?? \"Cancel\"} />\n <Button\n variant=\"contained\"\n size=\"small\"\n color={danger ? \"error\" : \"primary\"}\n disabled={!!busy}\n onClick={onConfirm}\n label={confirmLabel}\n />\n </Modal.Footer>\n </Modal>\n );\n}\n\nexport default ConfirmDialog;\n"],"names":["ConfirmDialog","props","open","title","subject","message","confirmLabel","cancelLabel","danger","busy","onConfirm","onCancel","className","subjectId","useId","messageId","describedBy","jsxs","Modal","jsx","cn","Typography","Button"],"mappings":";;;;;;AA+BO,SAASA,EAAcC,GAA+C;AAC3E,QAAM,EAAE,MAAAC,GAAM,OAAAC,GAAO,SAAAC,GAAS,SAAAC,GAAS,cAAAC,GAAc,aAAAC,GAAa,QAAAC,GAAQ,MAAAC,GAAM,WAAAC,GAAW,UAAAC,GAAU,WAAAC,EAAA,IACnGX,GAEIY,IAAYC,EAAA,GACZC,IAAYD,EAAA,GAGZE,IAAc,CAACZ,IAAUS,IAAY,IAAIR,IAAUU,IAAY,EAAE,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAEjG,SACE,gBAAAE;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAAhB;AAAA,MACA,SAASS;AAAA,MACT,MAAK;AAAA,MACL,MAAK;AAAA,MACL,UAAS;AAAA,MACT,YAAY,CAACF;AAAA,MACb,qBAAqB,CAACA;AAAA,MACtB,cAAYN;AAAA,MACX,GAAIa,IAAc,EAAE,oBAAoBA,EAAA,IAAgB,CAAA;AAAA,MAEzD,UAAA;AAAA,QAAA,gBAAAG,EAACD,EAAM,QAAN,EAAc,UAAAf,EAAA,CAAM;AAAA,QACrB,gBAAAgB,EAACD,EAAM,SAAN,EACC,UAAA,gBAAAD,EAAC,SAAI,WAAWG,EAAG,6BAA6BR,CAAS,GACtD,UAAA;AAAA,UAAAR,IACC,gBAAAe,EAACE,GAAA,EAAW,IAAIR,GAAW,SAAQ,SAAQ,OAAM,eAAc,WAAU,QACtE,UAAAT,EAAA,CACH,IACE;AAAA,UACHC,IACC,gBAAAc,EAACE,GAAA,EAAW,IAAIN,GAAW,SAAQ,WAAU,OAAM,iBAAgB,WAAU,QAC1E,UAAAV,EAAA,CACH,IACE;AAAA,QAAA,EAAA,CACN,EAAA,CACF;AAAA,QACA,gBAAAY,EAACC,EAAM,QAAN,EACC,UAAA;AAAA,UAAA,gBAAAC,EAACG,GAAA,EAAO,SAAQ,QAAO,MAAK,SAAQ,UAAU,CAAC,CAACb,GAAM,SAASE,GAAU,OAAOJ,KAAA,OAAAA,IAAe,UAAU;AAAA,UACzG,gBAAAY;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,OAAOd,IAAS,UAAU;AAAA,cAC1B,UAAU,CAAC,CAACC;AAAA,cACZ,SAASC;AAAA,cACT,OAAOJ;AAAA,YAAA;AAAA,UAAA;AAAA,QACT,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,25 @@
1
+ import { jsxs as c, jsx as s } from "react/jsx-runtime";
2
+ import y from "react";
3
+ import _ from "clsx";
4
+ import { Icon as b } from "../../base/icon/icon.js";
5
+ const f = { block: { medium: 32, small: 24 }, inline: { medium: 18, small: 16 } }, m = (t) => t != null && t !== !1 && t !== "" && !(Array.isArray(t) && t.length === 0), x = y.forwardRef(function({ className: p, title: a, icon: e, actions: r, variant: i = "block", size: l = "medium", children: n, ...o }, d) {
6
+ return /* @__PURE__ */ c(
7
+ "div",
8
+ {
9
+ "data-testid": "empty-state",
10
+ ...o,
11
+ ref: d,
12
+ className: _("smwb-empty-state", `smwb-empty-state_${i}`, `smwb-empty-state_${l}`, p),
13
+ children: [
14
+ m(e) ? /* @__PURE__ */ s("span", { className: "smwb-empty-state__icon", "aria-hidden": "true", children: typeof e == "string" ? /* @__PURE__ */ s(b, { name: e, size: f[i][l] }) : e }) : null,
15
+ m(a) ? /* @__PURE__ */ s("div", { className: "smwb-empty-state__title", children: a }) : null,
16
+ m(n) ? /* @__PURE__ */ s("div", { className: "smwb-empty-state__description", children: n }) : null,
17
+ m(r) ? /* @__PURE__ */ s("div", { className: "smwb-empty-state__actions", children: r }) : null
18
+ ]
19
+ }
20
+ );
21
+ });
22
+ export {
23
+ x as EmptyState
24
+ };
25
+ //# sourceMappingURL=emptyState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emptyState.js","sources":["../../../../../src/components/feedBack/emptyState/emptyState.tsx"],"sourcesContent":["import React, { HTMLAttributes, PropsWithChildren, ReactNode } from \"react\";\nimport cn from \"clsx\";\nimport Icon from \"../../base/icon/icon\";\n\nexport interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, \"title\"> {\n className?: string;\n /** What is empty, e.g. \"No works yet\". */\n title?: ReactNode;\n /** An icon name, or an icon element. Decorative: the title and the message say it all. */\n icon?: ReactNode | string;\n /** What the reader can do about it: buttons or links. */\n actions?: ReactNode;\n /**\n * `block` (default): centred, for an empty page, panel or card.\n * `inline`: a muted line of text, for a list, a table or a column that came\n * out empty; an action follows the last word.\n */\n variant?: \"block\" | \"inline\";\n /** `small`: tighter, for a narrow column or a card. */\n size?: \"small\" | \"medium\";\n}\n\nconst ICON_SIZE = { block: { medium: 32, small: 24 }, inline: { medium: 18, small: 16 } } as const;\n\nconst present = (value: ReactNode): boolean =>\n value !== undefined &&\n value !== null &&\n value !== false &&\n value !== \"\" &&\n !(Array.isArray(value) && value.length === 0);\n\n/**\n * What a list, a table or a panel shows when it has nothing: an icon, a title,\n * the message (the children) and actions.\n */\nexport const EmptyState = React.forwardRef<HTMLDivElement, PropsWithChildren<EmptyStateProps>>(function EmptyState(\n { className, title, icon, actions, variant = \"block\", size = \"medium\", children, ...rest },\n ref\n) {\n return (\n <div\n data-testid=\"empty-state\"\n {...rest}\n ref={ref}\n className={cn(\"smwb-empty-state\", `smwb-empty-state_${variant}`, `smwb-empty-state_${size}`, className)}\n >\n {present(icon) ? (\n <span className=\"smwb-empty-state__icon\" aria-hidden=\"true\">\n {typeof icon === \"string\" ? <Icon name={icon} size={ICON_SIZE[variant][size]} /> : icon}\n </span>\n ) : null}\n {present(title) ? <div className=\"smwb-empty-state__title\">{title}</div> : null}\n {present(children) ? <div className=\"smwb-empty-state__description\">{children}</div> : null}\n {present(actions) ? <div className=\"smwb-empty-state__actions\">{actions}</div> : null}\n </div>\n );\n});\n\nexport default EmptyState;\n"],"names":["ICON_SIZE","present","value","EmptyState","React","className","title","icon","actions","variant","size","children","rest","ref","jsxs","cn","jsx","Icon"],"mappings":";;;;AAsBA,MAAMA,IAAY,EAAE,OAAO,EAAE,QAAQ,IAAI,OAAO,MAAM,QAAQ,EAAE,QAAQ,IAAI,OAAO,KAAG,GAEhFC,IAAU,CAACC,MAEfA,KAAU,QACVA,MAAU,MACVA,MAAU,MACV,EAAE,MAAM,QAAQA,CAAK,KAAKA,EAAM,WAAW,IAMhCC,IAAaC,EAAM,WAA+D,SAC7F,EAAE,WAAAC,GAAW,OAAAC,GAAO,MAAAC,GAAM,SAAAC,GAAS,SAAAC,IAAU,SAAS,MAAAC,IAAO,UAAU,UAAAC,GAAU,GAAGC,EAAA,GACpFC,GACA;AACA,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAY;AAAA,MACX,GAAGF;AAAA,MACJ,KAAAC;AAAA,MACA,WAAWE,EAAG,oBAAoB,oBAAoBN,CAAO,IAAI,oBAAoBC,CAAI,IAAIL,CAAS;AAAA,MAErG,UAAA;AAAA,QAAAJ,EAAQM,CAAI,IACX,gBAAAS,EAAC,QAAA,EAAK,WAAU,0BAAyB,eAAY,QAClD,UAAA,OAAOT,KAAS,6BAAYU,GAAA,EAAK,MAAMV,GAAM,MAAMP,EAAUS,CAAO,EAAEC,CAAI,EAAA,CAAG,IAAKH,EAAA,CACrF,IACE;AAAA,QACHN,EAAQK,CAAK,IAAI,gBAAAU,EAAC,SAAI,WAAU,2BAA2B,aAAM,IAAS;AAAA,QAC1Ef,EAAQU,CAAQ,IAAI,gBAAAK,EAAC,SAAI,WAAU,iCAAiC,UAAAL,GAAS,IAAS;AAAA,QACtFV,EAAQO,CAAO,IAAI,gBAAAQ,EAAC,SAAI,WAAU,6BAA6B,aAAQ,IAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGvF,CAAC;"}