@smwb/ui-solid 0.11.2 → 0.12.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 (731) hide show
  1. package/README.md +63 -22
  2. package/dist/assets/styles/less/components/accordion/accordion.entry.css +1 -1
  3. package/dist/assets/styles/less/components/avatar/avatar.entry.css +1 -1
  4. package/dist/assets/styles/less/components/descriptionList/descriptionList.entry.css +1 -0
  5. package/dist/assets/styles/less/components/emptyState/emptyState.entry.css +1 -0
  6. package/dist/assets/styles/less/components/kanban/kanban.entry.css +1 -0
  7. package/dist/assets/styles/less/components/meter/meter.entry.css +1 -0
  8. package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -0
  9. package/dist/assets/styles/less/components/progressIndicator/progressIndicator.entry.css +1 -1
  10. package/dist/assets/styles/less/components/sectionHeader/sectionHeader.entry.css +1 -0
  11. package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
  12. package/dist/assets/styles/less/components/stat/stat.entry.css +1 -0
  13. package/dist/assets/styles/less/components/stepper/stepper.entry.css +1 -1
  14. package/dist/assets/styles/less/components/table/table.entry.css +1 -1
  15. package/dist/assets/styles/less/components/tabs/tab/tab.entry.css +1 -1
  16. package/dist/assets/styles/less/components/tabs/tabs.entry.css +1 -1
  17. package/dist/assets/styles/less/components/textField/textField.entry.css +1 -1
  18. package/dist/assets/styles/less/components/timeline/timeline.entry.css +1 -0
  19. package/dist/assets/styles/less/components/tooltip/tooltip.entry.css +1 -1
  20. package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
  21. package/dist/assets/styles/less/tokens.entry.css +1 -0
  22. package/dist/components/base/icon/icon.js +4 -3
  23. package/dist/components/base/icon/icon.js.map +1 -1
  24. package/dist/components/base/ripple/ripple.js +4 -3
  25. package/dist/components/base/ripple/ripple.js.map +1 -1
  26. package/dist/components/dataDisplay/accordion/accordion.d.ts +18 -1
  27. package/dist/components/dataDisplay/accordion/accordion.js +91 -48
  28. package/dist/components/dataDisplay/accordion/accordion.js.map +1 -1
  29. package/dist/components/dataDisplay/assetGrid/assetGrid.js +14 -13
  30. package/dist/components/dataDisplay/assetGrid/assetGrid.js.map +1 -1
  31. package/dist/components/dataDisplay/avatar/avatar.d.ts +4 -0
  32. package/dist/components/dataDisplay/avatar/avatar.js +56 -40
  33. package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
  34. package/dist/components/dataDisplay/badge/badge.js +24 -20
  35. package/dist/components/dataDisplay/badge/badge.js.map +1 -1
  36. package/dist/components/dataDisplay/card/card.js +24 -23
  37. package/dist/components/dataDisplay/card/card.js.map +1 -1
  38. package/dist/components/dataDisplay/carousel/carousel.js +4 -3
  39. package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
  40. package/dist/components/dataDisplay/chart/chart.d.ts +65 -0
  41. package/dist/components/dataDisplay/chart/chartTheme.d.ts +35 -0
  42. package/dist/components/dataDisplay/chart/index.d.ts +4 -0
  43. package/dist/components/dataDisplay/chat/chat.js +52 -51
  44. package/dist/components/dataDisplay/chat/chat.js.map +1 -1
  45. package/dist/components/dataDisplay/chat/chatHeader.js +29 -29
  46. package/dist/components/dataDisplay/chat/chatHeader.js.map +1 -1
  47. package/dist/components/dataDisplay/chat/chatMessageBubble.js +28 -28
  48. package/dist/components/dataDisplay/chat/chatMessageBubble.js.map +1 -1
  49. package/dist/components/dataDisplay/chat/chatShell.js +54 -51
  50. package/dist/components/dataDisplay/chat/chatShell.js.map +1 -1
  51. package/dist/components/dataDisplay/chip/chip.js +79 -70
  52. package/dist/components/dataDisplay/chip/chip.js.map +1 -1
  53. package/dist/components/dataDisplay/chipGroup/chipGroup.js +9 -8
  54. package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  55. package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +32 -0
  56. package/dist/components/dataDisplay/descriptionList/descriptionList.js +60 -0
  57. package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -0
  58. package/dist/components/dataDisplay/descriptionList/index.d.ts +2 -0
  59. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +4 -3
  60. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  61. package/dist/components/dataDisplay/imagesList/imagesList.js +8 -7
  62. package/dist/components/dataDisplay/imagesList/imagesList.js.map +1 -1
  63. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js +29 -24
  64. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js.map +1 -1
  65. package/dist/components/dataDisplay/kanban/index.d.ts +2 -0
  66. package/dist/components/dataDisplay/kanban/kanban.d.ts +42 -0
  67. package/dist/components/dataDisplay/kanban/kanban.js +133 -0
  68. package/dist/components/dataDisplay/kanban/kanban.js.map +1 -0
  69. package/dist/components/dataDisplay/lazyImage/lazyImage.js +30 -29
  70. package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  71. package/dist/components/dataDisplay/list/list.js +17 -16
  72. package/dist/components/dataDisplay/list/list.js.map +1 -1
  73. package/dist/components/dataDisplay/meter/index.d.ts +2 -0
  74. package/dist/components/dataDisplay/meter/meter.d.ts +34 -0
  75. package/dist/components/dataDisplay/meter/meter.js +84 -0
  76. package/dist/components/dataDisplay/meter/meter.js.map +1 -0
  77. package/dist/components/dataDisplay/personChip/index.d.ts +2 -0
  78. package/dist/components/dataDisplay/personChip/personChip.d.ts +32 -0
  79. package/dist/components/dataDisplay/personChip/personChip.js +104 -0
  80. package/dist/components/dataDisplay/personChip/personChip.js.map +1 -0
  81. package/dist/components/dataDisplay/stat/index.d.ts +2 -0
  82. package/dist/components/dataDisplay/stat/stat.d.ts +33 -0
  83. package/dist/components/dataDisplay/stat/stat.js +101 -0
  84. package/dist/components/dataDisplay/stat/stat.js.map +1 -0
  85. package/dist/components/dataDisplay/table/table.d.ts +7 -0
  86. package/dist/components/dataDisplay/table/table.js +22 -21
  87. package/dist/components/dataDisplay/table/table.js.map +1 -1
  88. package/dist/components/dataDisplay/table/tableCell.d.ts +2 -0
  89. package/dist/components/dataDisplay/table/tableCell.js +9 -6
  90. package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
  91. package/dist/components/dataDisplay/table/tableHeadCell.d.ts +11 -1
  92. package/dist/components/dataDisplay/table/tableHeadCell.js +26 -23
  93. package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  94. package/dist/components/dataDisplay/table/tablePagination/tablePagination.js +4 -3
  95. package/dist/components/dataDisplay/table/tablePagination/tablePagination.js.map +1 -1
  96. package/dist/components/dataDisplay/thumbCard/thumbCard.js +54 -53
  97. package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  98. package/dist/components/dataDisplay/timeline/index.d.ts +2 -0
  99. package/dist/components/dataDisplay/timeline/timeline.d.ts +38 -0
  100. package/dist/components/dataDisplay/timeline/timeline.js +89 -0
  101. package/dist/components/dataDisplay/timeline/timeline.js.map +1 -0
  102. package/dist/components/dataDisplay/treeView/treeView.js +4 -3
  103. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  104. package/dist/components/dataDisplay/typography/typography.d.ts +4 -0
  105. package/dist/components/dataDisplay/typography/typography.js +36 -22
  106. package/dist/components/dataDisplay/typography/typography.js.map +1 -1
  107. package/dist/components/feedBack/confirmDialog/confirmDialog.js +9 -8
  108. package/dist/components/feedBack/confirmDialog/confirmDialog.js.map +1 -1
  109. package/dist/components/feedBack/emptyState/emptyState.d.ts +25 -0
  110. package/dist/components/feedBack/emptyState/emptyState.js +86 -0
  111. package/dist/components/feedBack/emptyState/emptyState.js.map +1 -0
  112. package/dist/components/feedBack/emptyState/index.d.ts +2 -0
  113. package/dist/components/feedBack/message/message.js +4 -3
  114. package/dist/components/feedBack/message/message.js.map +1 -1
  115. package/dist/components/feedBack/modal/modal.js +4 -3
  116. package/dist/components/feedBack/modal/modal.js.map +1 -1
  117. package/dist/components/feedBack/progressIndicator/progressIndicator.d.ts +13 -0
  118. package/dist/components/feedBack/progressIndicator/progressIndicator.js +79 -46
  119. package/dist/components/feedBack/progressIndicator/progressIndicator.js.map +1 -1
  120. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js +18 -14
  121. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -1
  122. package/dist/components/feedBack/skeleton/skeleton.js +4 -3
  123. package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
  124. package/dist/components/feedBack/snackbar/snackbar.js +18 -17
  125. package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
  126. package/dist/components/feedBack/tooltip/tooltip.js +41 -33
  127. package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
  128. package/dist/components/inputs/button/button.js +32 -30
  129. package/dist/components/inputs/button/button.js.map +1 -1
  130. package/dist/components/inputs/buttonGroups/buttonGroup.js +9 -8
  131. package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  132. package/dist/components/inputs/checkbox/checkbox.js +4 -3
  133. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  134. package/dist/components/inputs/datePicker/dataPickerInput.js +23 -23
  135. package/dist/components/inputs/datePicker/dataPickerInput.js.map +1 -1
  136. package/dist/components/inputs/datePicker/datePicker.js +84 -83
  137. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  138. package/dist/components/inputs/fileDrop/fileDrop.js +4 -3
  139. package/dist/components/inputs/fileDrop/fileDrop.js.map +1 -1
  140. package/dist/components/inputs/fileInput/fileInput.js +11 -10
  141. package/dist/components/inputs/fileInput/fileInput.js.map +1 -1
  142. package/dist/components/inputs/floatingButton/floatingButton.js +9 -8
  143. package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
  144. package/dist/components/inputs/radioButton/radioButton.js +9 -8
  145. package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
  146. package/dist/components/inputs/rating/rating.js +41 -40
  147. package/dist/components/inputs/rating/rating.js.map +1 -1
  148. package/dist/components/inputs/selectField/selectField.d.ts +2 -0
  149. package/dist/components/inputs/selectField/selectField.js +55 -51
  150. package/dist/components/inputs/selectField/selectField.js.map +1 -1
  151. package/dist/components/inputs/slider/slider.js +4 -3
  152. package/dist/components/inputs/slider/slider.js.map +1 -1
  153. package/dist/components/inputs/textField/textField.js +38 -37
  154. package/dist/components/inputs/textField/textField.js.map +1 -1
  155. package/dist/components/inputs/textField/textFieldAdornment.js +9 -9
  156. package/dist/components/inputs/textField/textFieldAdornment.js.map +1 -1
  157. package/dist/components/inputs/textField/textFieldWrapper.js +41 -41
  158. package/dist/components/inputs/textField/textFieldWrapper.js.map +1 -1
  159. package/dist/components/inputs/timePicker/timePicker.js +12 -11
  160. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  161. package/dist/components/inputs/toggle/toggle.js +4 -3
  162. package/dist/components/inputs/toggle/toggle.js.map +1 -1
  163. package/dist/components/inputs/valueSlider/valueSlider.js +26 -25
  164. package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
  165. package/dist/components/layout/appLayout/appLayout.js +39 -38
  166. package/dist/components/layout/appLayout/appLayout.js.map +1 -1
  167. package/dist/components/layout/divider/divider.js +26 -22
  168. package/dist/components/layout/divider/divider.js.map +1 -1
  169. package/dist/components/layout/floatingWindow/floatingWindow.js +74 -73
  170. package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  171. package/dist/components/layout/grid/grid.js +10 -9
  172. package/dist/components/layout/grid/grid.js.map +1 -1
  173. package/dist/components/layout/page/page.js +4 -3
  174. package/dist/components/layout/page/page.js.map +1 -1
  175. package/dist/components/layout/pageHeader/pageHeader.js +36 -35
  176. package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
  177. package/dist/components/layout/screenDivider/screenDivider.js +9 -8
  178. package/dist/components/layout/screenDivider/screenDivider.js.map +1 -1
  179. package/dist/components/layout/sectionHeader/index.d.ts +2 -0
  180. package/dist/components/layout/sectionHeader/sectionHeader.d.ts +30 -0
  181. package/dist/components/layout/sectionHeader/sectionHeader.js +100 -0
  182. package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -0
  183. package/dist/components/layout/sheet/sheet.js +4 -3
  184. package/dist/components/layout/sheet/sheet.js.map +1 -1
  185. package/dist/components/layout/stack/stack.js +31 -27
  186. package/dist/components/layout/stack/stack.js.map +1 -1
  187. package/dist/components/navigation/appBar/appBar.js +24 -23
  188. package/dist/components/navigation/appBar/appBar.js.map +1 -1
  189. package/dist/components/navigation/bottomBar/bottomBar.js +57 -56
  190. package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
  191. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +4 -3
  192. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  193. package/dist/components/navigation/menu/menu.js +10 -9
  194. package/dist/components/navigation/menu/menu.js.map +1 -1
  195. package/dist/components/navigation/overflowMenu/overflowMenu.js +4 -3
  196. package/dist/components/navigation/overflowMenu/overflowMenu.js.map +1 -1
  197. package/dist/components/navigation/pagination/pagination.js +14 -13
  198. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  199. package/dist/components/navigation/sidebar/sidebar.js +4 -3
  200. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  201. package/dist/components/navigation/stepper/stepper.d.ts +10 -2
  202. package/dist/components/navigation/stepper/stepper.js +63 -47
  203. package/dist/components/navigation/stepper/stepper.js.map +1 -1
  204. package/dist/components/navigation/tabs/tab/tab.d.ts +2 -0
  205. package/dist/components/navigation/tabs/tab/tab.js +45 -44
  206. package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
  207. package/dist/components/navigation/tabs/tabs.d.ts +12 -0
  208. package/dist/components/navigation/tabs/tabs.js +142 -86
  209. package/dist/components/navigation/tabs/tabs.js.map +1 -1
  210. package/dist/connects/rt/table/table.d.ts +2 -0
  211. package/dist/headless/components/dataDisplay/accordion/accordion.js +89 -47
  212. package/dist/headless/components/dataDisplay/accordion/accordion.js.map +1 -1
  213. package/dist/headless/components/dataDisplay/avatar/avatar.js +54 -39
  214. package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
  215. package/dist/headless/components/dataDisplay/badge/badge.js +22 -19
  216. package/dist/headless/components/dataDisplay/badge/badge.js.map +1 -1
  217. package/dist/headless/components/dataDisplay/card/card.js +22 -22
  218. package/dist/headless/components/dataDisplay/card/card.js.map +1 -1
  219. package/dist/headless/components/dataDisplay/chat/chat.js +50 -50
  220. package/dist/headless/components/dataDisplay/chat/chat.js.map +1 -1
  221. package/dist/headless/components/dataDisplay/chat/chatHeader.js +29 -29
  222. package/dist/headless/components/dataDisplay/chat/chatHeader.js.map +1 -1
  223. package/dist/headless/components/dataDisplay/chat/chatMessageBubble.js +28 -28
  224. package/dist/headless/components/dataDisplay/chat/chatMessageBubble.js.map +1 -1
  225. package/dist/headless/components/dataDisplay/chat/chatShell.js +54 -51
  226. package/dist/headless/components/dataDisplay/chat/chatShell.js.map +1 -1
  227. package/dist/headless/components/dataDisplay/chip/chip.js +77 -69
  228. package/dist/headless/components/dataDisplay/chip/chip.js.map +1 -1
  229. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js +58 -0
  230. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -0
  231. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js +28 -24
  232. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js.map +1 -1
  233. package/dist/headless/components/dataDisplay/kanban/kanban.js +131 -0
  234. package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -0
  235. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +28 -28
  236. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  237. package/dist/headless/components/dataDisplay/list/list.js +15 -15
  238. package/dist/headless/components/dataDisplay/list/list.js.map +1 -1
  239. package/dist/headless/components/dataDisplay/meter/meter.js +82 -0
  240. package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -0
  241. package/dist/headless/components/dataDisplay/personChip/personChip.js +102 -0
  242. package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -0
  243. package/dist/headless/components/dataDisplay/stat/stat.js +99 -0
  244. package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -0
  245. package/dist/headless/components/dataDisplay/table/table.js +20 -20
  246. package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
  247. package/dist/headless/components/dataDisplay/table/tableCell.js +9 -6
  248. package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
  249. package/dist/headless/components/dataDisplay/table/tableHeadCell.js +26 -23
  250. package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  251. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +53 -53
  252. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  253. package/dist/headless/components/dataDisplay/timeline/timeline.js +87 -0
  254. package/dist/headless/components/dataDisplay/timeline/timeline.js.map +1 -0
  255. package/dist/headless/components/dataDisplay/typography/typography.js +34 -21
  256. package/dist/headless/components/dataDisplay/typography/typography.js.map +1 -1
  257. package/dist/headless/components/feedBack/emptyState/emptyState.js +84 -0
  258. package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -0
  259. package/dist/headless/components/feedBack/progressIndicator/progressIndicator.js +77 -45
  260. package/dist/headless/components/feedBack/progressIndicator/progressIndicator.js.map +1 -1
  261. package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js +16 -13
  262. package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -1
  263. package/dist/headless/components/feedBack/tooltip/tooltip.js +33 -26
  264. package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
  265. package/dist/headless/components/inputs/button/button.js +33 -32
  266. package/dist/headless/components/inputs/button/button.js.map +1 -1
  267. package/dist/headless/components/inputs/datePicker/dataPickerInput.js +23 -23
  268. package/dist/headless/components/inputs/datePicker/dataPickerInput.js.map +1 -1
  269. package/dist/headless/components/inputs/datePicker/datePicker.js +79 -79
  270. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  271. package/dist/headless/components/inputs/rating/rating.js +39 -39
  272. package/dist/headless/components/inputs/rating/rating.js.map +1 -1
  273. package/dist/headless/components/inputs/selectField/selectField.js +61 -58
  274. package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
  275. package/dist/headless/components/inputs/textField/textField.js +36 -36
  276. package/dist/headless/components/inputs/textField/textField.js.map +1 -1
  277. package/dist/headless/components/inputs/textField/textFieldAdornment.js +9 -9
  278. package/dist/headless/components/inputs/textField/textFieldAdornment.js.map +1 -1
  279. package/dist/headless/components/inputs/textField/textFieldWrapper.js +41 -41
  280. package/dist/headless/components/inputs/textField/textFieldWrapper.js.map +1 -1
  281. package/dist/headless/components/inputs/valueSlider/valueSlider.js +24 -24
  282. package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -1
  283. package/dist/headless/components/layout/appLayout/appLayout.js +39 -39
  284. package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
  285. package/dist/headless/components/layout/divider/divider.js +24 -21
  286. package/dist/headless/components/layout/divider/divider.js.map +1 -1
  287. package/dist/headless/components/layout/pageHeader/pageHeader.js +34 -34
  288. package/dist/headless/components/layout/pageHeader/pageHeader.js.map +1 -1
  289. package/dist/headless/components/layout/sectionHeader/sectionHeader.js +98 -0
  290. package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -0
  291. package/dist/headless/components/layout/stack/stack.js +29 -26
  292. package/dist/headless/components/layout/stack/stack.js.map +1 -1
  293. package/dist/headless/components/navigation/appBar/appBar.js +22 -22
  294. package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
  295. package/dist/headless/components/navigation/bottomBar/bottomBar.js +51 -51
  296. package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
  297. package/dist/headless/components/navigation/stepper/stepper.js +61 -46
  298. package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
  299. package/dist/headless/components/navigation/tabs/tab/tab.js +44 -44
  300. package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
  301. package/dist/headless/components/navigation/tabs/tabs.js +140 -85
  302. package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
  303. package/dist/headless/icons/catalog.js +78 -1
  304. package/dist/headless/icons/catalog.js.map +1 -1
  305. package/dist/headless/icons/index.js +596 -574
  306. package/dist/headless/icons/index.js.map +1 -1
  307. package/dist/headless/icons/svg/accountTree.js +9 -0
  308. package/dist/headless/icons/svg/accountTree.js.map +1 -0
  309. package/dist/headless/icons/svg/callSplit.js +9 -0
  310. package/dist/headless/icons/svg/callSplit.js.map +1 -0
  311. package/dist/headless/icons/svg/deviceHub.js +8 -0
  312. package/dist/headless/icons/svg/deviceHub.js.map +1 -0
  313. package/dist/headless/icons/svg/editNote.js +9 -0
  314. package/dist/headless/icons/svg/editNote.js.map +1 -0
  315. package/dist/headless/icons/svg/filterList.js +9 -0
  316. package/dist/headless/icons/svg/filterList.js.map +1 -0
  317. package/dist/headless/icons/svg/forkRight.js +8 -0
  318. package/dist/headless/icons/svg/forkRight.js.map +1 -0
  319. package/dist/headless/icons/svg/groups.js +9 -0
  320. package/dist/headless/icons/svg/groups.js.map +1 -0
  321. package/dist/headless/icons/svg/hub.js +8 -0
  322. package/dist/headless/icons/svg/hub.js.map +1 -0
  323. package/dist/headless/icons/svg/index.js +598 -576
  324. package/dist/headless/icons/svg/index.js.map +1 -1
  325. package/dist/headless/icons/svg/lan.js +9 -0
  326. package/dist/headless/icons/svg/lan.js.map +1 -0
  327. package/dist/headless/icons/svg/personOff.js +9 -0
  328. package/dist/headless/icons/svg/personOff.js.map +1 -0
  329. package/dist/headless/icons/svg/schema.js +9 -0
  330. package/dist/headless/icons/svg/schema.js.map +1 -0
  331. package/dist/headless/index.js +281 -255
  332. package/dist/headless/index.js.map +1 -1
  333. package/dist/headless/source/components/dataDisplay/accordion/accordion.jsx +60 -18
  334. package/dist/headless/source/components/dataDisplay/accordion/accordion.jsx.map +1 -1
  335. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx +28 -3
  336. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  337. package/dist/headless/source/components/dataDisplay/badge/badge.jsx +8 -4
  338. package/dist/headless/source/components/dataDisplay/badge/badge.jsx.map +1 -1
  339. package/dist/headless/source/components/dataDisplay/card/card.jsx +4 -3
  340. package/dist/headless/source/components/dataDisplay/card/card.jsx.map +1 -1
  341. package/dist/headless/source/components/dataDisplay/chart/chart.jsx +168 -0
  342. package/dist/headless/source/components/dataDisplay/chart/chart.jsx.map +1 -0
  343. package/dist/headless/source/components/dataDisplay/chart/chartTheme.js +78 -0
  344. package/dist/headless/source/components/dataDisplay/chart/chartTheme.js.map +7 -0
  345. package/dist/headless/source/components/dataDisplay/chart/index.js +9 -0
  346. package/dist/headless/source/components/dataDisplay/chart/index.js.map +7 -0
  347. package/dist/headless/source/components/dataDisplay/chat/chat.jsx +4 -3
  348. package/dist/headless/source/components/dataDisplay/chat/chat.jsx.map +1 -1
  349. package/dist/headless/source/components/dataDisplay/chat/chatHeader.jsx +7 -5
  350. package/dist/headless/source/components/dataDisplay/chat/chatHeader.jsx.map +1 -1
  351. package/dist/headless/source/components/dataDisplay/chat/chatMessageBubble.jsx +4 -3
  352. package/dist/headless/source/components/dataDisplay/chat/chatMessageBubble.jsx.map +1 -1
  353. package/dist/headless/source/components/dataDisplay/chat/chatShell.jsx +30 -26
  354. package/dist/headless/source/components/dataDisplay/chat/chatShell.jsx.map +1 -1
  355. package/dist/headless/source/components/dataDisplay/chip/chip.jsx +11 -6
  356. package/dist/headless/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  357. package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx +42 -0
  358. package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -0
  359. package/dist/headless/source/components/dataDisplay/descriptionList/index.js +7 -0
  360. package/dist/headless/source/components/dataDisplay/descriptionList/index.js.map +7 -0
  361. package/dist/headless/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx +10 -4
  362. package/dist/headless/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx.map +1 -1
  363. package/dist/headless/source/components/dataDisplay/kanban/index.js +8 -0
  364. package/dist/headless/source/components/dataDisplay/kanban/index.js.map +7 -0
  365. package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx +99 -0
  366. package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx.map +1 -0
  367. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx +4 -3
  368. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
  369. package/dist/headless/source/components/dataDisplay/list/list.jsx +4 -3
  370. package/dist/headless/source/components/dataDisplay/list/list.jsx.map +1 -1
  371. package/dist/headless/source/components/dataDisplay/meter/index.js +8 -0
  372. package/dist/headless/source/components/dataDisplay/meter/index.js.map +7 -0
  373. package/dist/headless/source/components/dataDisplay/meter/meter.jsx +80 -0
  374. package/dist/headless/source/components/dataDisplay/meter/meter.jsx.map +1 -0
  375. package/dist/headless/source/components/dataDisplay/personChip/index.js +8 -0
  376. package/dist/headless/source/components/dataDisplay/personChip/index.js.map +7 -0
  377. package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx +71 -0
  378. package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx.map +1 -0
  379. package/dist/headless/source/components/dataDisplay/stat/index.js +7 -0
  380. package/dist/headless/source/components/dataDisplay/stat/index.js.map +7 -0
  381. package/dist/headless/source/components/dataDisplay/stat/stat.jsx +72 -0
  382. package/dist/headless/source/components/dataDisplay/stat/stat.jsx.map +1 -0
  383. package/dist/headless/source/components/dataDisplay/table/table.jsx +11 -4
  384. package/dist/headless/source/components/dataDisplay/table/table.jsx.map +1 -1
  385. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx +8 -2
  386. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
  387. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx +37 -3
  388. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
  389. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx +10 -7
  390. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
  391. package/dist/headless/source/components/dataDisplay/timeline/index.js +8 -0
  392. package/dist/headless/source/components/dataDisplay/timeline/index.js.map +7 -0
  393. package/dist/headless/source/components/dataDisplay/timeline/timeline.jsx +64 -0
  394. package/dist/headless/source/components/dataDisplay/timeline/timeline.jsx.map +1 -0
  395. package/dist/headless/source/components/dataDisplay/typography/typography.jsx +17 -3
  396. package/dist/headless/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  397. package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx +47 -0
  398. package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx.map +1 -0
  399. package/dist/headless/source/components/feedBack/emptyState/index.js +6 -0
  400. package/dist/headless/source/components/feedBack/emptyState/index.js.map +7 -0
  401. package/dist/headless/source/components/feedBack/progressIndicator/progressIndicator.jsx +52 -10
  402. package/dist/headless/source/components/feedBack/progressIndicator/progressIndicator.jsx.map +1 -1
  403. package/dist/headless/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx +3 -2
  404. package/dist/headless/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx.map +1 -1
  405. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx +4 -2
  406. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  407. package/dist/headless/source/components/inputs/button/button.jsx +7 -3
  408. package/dist/headless/source/components/inputs/button/button.jsx.map +1 -1
  409. package/dist/headless/source/components/inputs/datePicker/dataPickerInput.jsx +4 -3
  410. package/dist/headless/source/components/inputs/datePicker/dataPickerInput.jsx.map +1 -1
  411. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +4 -6
  412. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  413. package/dist/headless/source/components/inputs/rating/rating.jsx +4 -3
  414. package/dist/headless/source/components/inputs/rating/rating.jsx.map +1 -1
  415. package/dist/headless/source/components/inputs/selectField/selectField.jsx +8 -2
  416. package/dist/headless/source/components/inputs/selectField/selectField.jsx.map +1 -1
  417. package/dist/headless/source/components/inputs/textField/textField.jsx +8 -6
  418. package/dist/headless/source/components/inputs/textField/textField.jsx.map +1 -1
  419. package/dist/headless/source/components/inputs/textField/textFieldAdornment.jsx +4 -3
  420. package/dist/headless/source/components/inputs/textField/textFieldAdornment.jsx.map +1 -1
  421. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx +9 -6
  422. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
  423. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx +4 -3
  424. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
  425. package/dist/headless/source/components/layout/appLayout/appLayout.jsx +3 -2
  426. package/dist/headless/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  427. package/dist/headless/source/components/layout/divider/divider.jsx +10 -6
  428. package/dist/headless/source/components/layout/divider/divider.jsx.map +1 -1
  429. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx +14 -10
  430. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  431. package/dist/headless/source/components/layout/sectionHeader/index.js +6 -0
  432. package/dist/headless/source/components/layout/sectionHeader/index.js.map +7 -0
  433. package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx +80 -0
  434. package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -0
  435. package/dist/headless/source/components/layout/stack/stack.jsx +3 -2
  436. package/dist/headless/source/components/layout/stack/stack.jsx.map +1 -1
  437. package/dist/headless/source/components/navigation/appBar/appBar.jsx +7 -5
  438. package/dist/headless/source/components/navigation/appBar/appBar.jsx.map +1 -1
  439. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx +4 -3
  440. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  441. package/dist/headless/source/components/navigation/stepper/stepper.jsx +14 -7
  442. package/dist/headless/source/components/navigation/stepper/stepper.jsx.map +1 -1
  443. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx +7 -5
  444. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  445. package/dist/headless/source/components/navigation/tabs/tabs.jsx +84 -4
  446. package/dist/headless/source/components/navigation/tabs/tabs.jsx.map +1 -1
  447. package/dist/headless/source/connects/rt/table/table.jsx +9 -1
  448. package/dist/headless/source/connects/rt/table/table.jsx.map +1 -1
  449. package/dist/headless/source/icons/catalog.js +78 -1
  450. package/dist/headless/source/icons/catalog.js.map +2 -2
  451. package/dist/headless/source/icons/svg/accountTree.js +11 -0
  452. package/dist/headless/source/icons/svg/accountTree.js.map +7 -0
  453. package/dist/headless/source/icons/svg/callSplit.js +11 -0
  454. package/dist/headless/source/icons/svg/callSplit.js.map +7 -0
  455. package/dist/headless/source/icons/svg/deviceHub.js +10 -0
  456. package/dist/headless/source/icons/svg/deviceHub.js.map +7 -0
  457. package/dist/headless/source/icons/svg/editNote.js +11 -0
  458. package/dist/headless/source/icons/svg/editNote.js.map +7 -0
  459. package/dist/headless/source/icons/svg/filterList.js +11 -0
  460. package/dist/headless/source/icons/svg/filterList.js.map +7 -0
  461. package/dist/headless/source/icons/svg/forkRight.js +10 -0
  462. package/dist/headless/source/icons/svg/forkRight.js.map +7 -0
  463. package/dist/headless/source/icons/svg/groups.js +11 -0
  464. package/dist/headless/source/icons/svg/groups.js.map +7 -0
  465. package/dist/headless/source/icons/svg/hub.js +10 -0
  466. package/dist/headless/source/icons/svg/hub.js.map +7 -0
  467. package/dist/headless/source/icons/svg/index.js +22 -0
  468. package/dist/headless/source/icons/svg/index.js.map +2 -2
  469. package/dist/headless/source/icons/svg/lan.js +11 -0
  470. package/dist/headless/source/icons/svg/lan.js.map +7 -0
  471. package/dist/headless/source/icons/svg/personOff.js +11 -0
  472. package/dist/headless/source/icons/svg/personOff.js.map +7 -0
  473. package/dist/headless/source/icons/svg/schema.js +11 -0
  474. package/dist/headless/source/icons/svg/schema.js.map +7 -0
  475. package/dist/headless/source/index.js +33 -1
  476. package/dist/headless/source/index.js.map +2 -2
  477. package/dist/icons/catalog.d.ts +1 -1
  478. package/dist/icons/catalog.js +78 -1
  479. package/dist/icons/catalog.js.map +1 -1
  480. package/dist/icons/index.js +596 -574
  481. package/dist/icons/index.js.map +1 -1
  482. package/dist/icons/svg/accountTree.d.ts +4 -0
  483. package/dist/icons/svg/accountTree.js +9 -0
  484. package/dist/icons/svg/accountTree.js.map +1 -0
  485. package/dist/icons/svg/callSplit.d.ts +4 -0
  486. package/dist/icons/svg/callSplit.js +9 -0
  487. package/dist/icons/svg/callSplit.js.map +1 -0
  488. package/dist/icons/svg/deviceHub.d.ts +4 -0
  489. package/dist/icons/svg/deviceHub.js +8 -0
  490. package/dist/icons/svg/deviceHub.js.map +1 -0
  491. package/dist/icons/svg/editNote.d.ts +4 -0
  492. package/dist/icons/svg/editNote.js +9 -0
  493. package/dist/icons/svg/editNote.js.map +1 -0
  494. package/dist/icons/svg/filterList.d.ts +4 -0
  495. package/dist/icons/svg/filterList.js +9 -0
  496. package/dist/icons/svg/filterList.js.map +1 -0
  497. package/dist/icons/svg/forkRight.d.ts +4 -0
  498. package/dist/icons/svg/forkRight.js +8 -0
  499. package/dist/icons/svg/forkRight.js.map +1 -0
  500. package/dist/icons/svg/groups.d.ts +4 -0
  501. package/dist/icons/svg/groups.js +9 -0
  502. package/dist/icons/svg/groups.js.map +1 -0
  503. package/dist/icons/svg/hub.d.ts +4 -0
  504. package/dist/icons/svg/hub.js +8 -0
  505. package/dist/icons/svg/hub.js.map +1 -0
  506. package/dist/icons/svg/index.d.ts +11 -0
  507. package/dist/icons/svg/index.js +598 -576
  508. package/dist/icons/svg/index.js.map +1 -1
  509. package/dist/icons/svg/lan.d.ts +4 -0
  510. package/dist/icons/svg/lan.js +9 -0
  511. package/dist/icons/svg/lan.js.map +1 -0
  512. package/dist/icons/svg/personOff.d.ts +4 -0
  513. package/dist/icons/svg/personOff.js +9 -0
  514. package/dist/icons/svg/personOff.js.map +1 -0
  515. package/dist/icons/svg/schema.d.ts +4 -0
  516. package/dist/icons/svg/schema.js +9 -0
  517. package/dist/icons/svg/schema.js.map +1 -0
  518. package/dist/index.d.ts +21 -5
  519. package/dist/index.js +281 -255
  520. package/dist/index.js.map +1 -1
  521. package/dist/source/components/base/icon/icon.jsx +1 -0
  522. package/dist/source/components/base/icon/icon.jsx.map +1 -1
  523. package/dist/source/components/base/ripple/ripple.jsx +1 -0
  524. package/dist/source/components/base/ripple/ripple.jsx.map +1 -1
  525. package/dist/source/components/dataDisplay/accordion/accordion.jsx +61 -18
  526. package/dist/source/components/dataDisplay/accordion/accordion.jsx.map +1 -1
  527. package/dist/source/components/dataDisplay/assetGrid/assetGrid.jsx +1 -0
  528. package/dist/source/components/dataDisplay/assetGrid/assetGrid.jsx.map +1 -1
  529. package/dist/source/components/dataDisplay/avatar/avatar.jsx +29 -3
  530. package/dist/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  531. package/dist/source/components/dataDisplay/badge/badge.jsx +9 -4
  532. package/dist/source/components/dataDisplay/badge/badge.jsx.map +1 -1
  533. package/dist/source/components/dataDisplay/card/card.jsx +5 -3
  534. package/dist/source/components/dataDisplay/card/card.jsx.map +1 -1
  535. package/dist/source/components/dataDisplay/carousel/carousel.jsx +1 -0
  536. package/dist/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
  537. package/dist/source/components/dataDisplay/chart/chart.jsx +170 -0
  538. package/dist/source/components/dataDisplay/chart/chart.jsx.map +1 -0
  539. package/dist/source/components/dataDisplay/chart/chartTheme.js +78 -0
  540. package/dist/source/components/dataDisplay/chart/chartTheme.js.map +7 -0
  541. package/dist/source/components/dataDisplay/chart/index.js +9 -0
  542. package/dist/source/components/dataDisplay/chart/index.js.map +7 -0
  543. package/dist/source/components/dataDisplay/chat/chat.jsx +5 -3
  544. package/dist/source/components/dataDisplay/chat/chat.jsx.map +1 -1
  545. package/dist/source/components/dataDisplay/chat/chatHeader.jsx +7 -5
  546. package/dist/source/components/dataDisplay/chat/chatHeader.jsx.map +1 -1
  547. package/dist/source/components/dataDisplay/chat/chatMessageBubble.jsx +4 -3
  548. package/dist/source/components/dataDisplay/chat/chatMessageBubble.jsx.map +1 -1
  549. package/dist/source/components/dataDisplay/chat/chatShell.jsx +30 -26
  550. package/dist/source/components/dataDisplay/chat/chatShell.jsx.map +1 -1
  551. package/dist/source/components/dataDisplay/chip/chip.jsx +12 -6
  552. package/dist/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  553. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx +1 -0
  554. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
  555. package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx +44 -0
  556. package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -0
  557. package/dist/source/components/dataDisplay/descriptionList/index.js +7 -0
  558. package/dist/source/components/dataDisplay/descriptionList/index.js.map +7 -0
  559. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +1 -0
  560. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
  561. package/dist/source/components/dataDisplay/imagesList/imagesList.jsx +1 -0
  562. package/dist/source/components/dataDisplay/imagesList/imagesList.jsx.map +1 -1
  563. package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx +11 -4
  564. package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx.map +1 -1
  565. package/dist/source/components/dataDisplay/kanban/index.js +8 -0
  566. package/dist/source/components/dataDisplay/kanban/index.js.map +7 -0
  567. package/dist/source/components/dataDisplay/kanban/kanban.jsx +101 -0
  568. package/dist/source/components/dataDisplay/kanban/kanban.jsx.map +1 -0
  569. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx +5 -3
  570. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
  571. package/dist/source/components/dataDisplay/list/list.jsx +5 -3
  572. package/dist/source/components/dataDisplay/list/list.jsx.map +1 -1
  573. package/dist/source/components/dataDisplay/meter/index.js +8 -0
  574. package/dist/source/components/dataDisplay/meter/index.js.map +7 -0
  575. package/dist/source/components/dataDisplay/meter/meter.jsx +82 -0
  576. package/dist/source/components/dataDisplay/meter/meter.jsx.map +1 -0
  577. package/dist/source/components/dataDisplay/personChip/index.js +8 -0
  578. package/dist/source/components/dataDisplay/personChip/index.js.map +7 -0
  579. package/dist/source/components/dataDisplay/personChip/personChip.jsx +73 -0
  580. package/dist/source/components/dataDisplay/personChip/personChip.jsx.map +1 -0
  581. package/dist/source/components/dataDisplay/stat/index.js +7 -0
  582. package/dist/source/components/dataDisplay/stat/index.js.map +7 -0
  583. package/dist/source/components/dataDisplay/stat/stat.jsx +74 -0
  584. package/dist/source/components/dataDisplay/stat/stat.jsx.map +1 -0
  585. package/dist/source/components/dataDisplay/table/table.jsx +12 -4
  586. package/dist/source/components/dataDisplay/table/table.jsx.map +1 -1
  587. package/dist/source/components/dataDisplay/table/tableCell.jsx +8 -2
  588. package/dist/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
  589. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx +37 -3
  590. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
  591. package/dist/source/components/dataDisplay/table/tablePagination/tablePagination.jsx +1 -0
  592. package/dist/source/components/dataDisplay/table/tablePagination/tablePagination.jsx.map +1 -1
  593. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx +11 -7
  594. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
  595. package/dist/source/components/dataDisplay/timeline/index.js +8 -0
  596. package/dist/source/components/dataDisplay/timeline/index.js.map +7 -0
  597. package/dist/source/components/dataDisplay/timeline/timeline.jsx +66 -0
  598. package/dist/source/components/dataDisplay/timeline/timeline.jsx.map +1 -0
  599. package/dist/source/components/dataDisplay/treeView/treeView.jsx +1 -0
  600. package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  601. package/dist/source/components/dataDisplay/typography/typography.jsx +18 -3
  602. package/dist/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  603. package/dist/source/components/feedBack/confirmDialog/confirmDialog.jsx +1 -0
  604. package/dist/source/components/feedBack/confirmDialog/confirmDialog.jsx.map +1 -1
  605. package/dist/source/components/feedBack/emptyState/emptyState.jsx +49 -0
  606. package/dist/source/components/feedBack/emptyState/emptyState.jsx.map +1 -0
  607. package/dist/source/components/feedBack/emptyState/index.js +6 -0
  608. package/dist/source/components/feedBack/emptyState/index.js.map +7 -0
  609. package/dist/source/components/feedBack/message/message.jsx +1 -0
  610. package/dist/source/components/feedBack/message/message.jsx.map +1 -1
  611. package/dist/source/components/feedBack/modal/modal.jsx +1 -0
  612. package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
  613. package/dist/source/components/feedBack/progressIndicator/progressIndicator.jsx +53 -10
  614. package/dist/source/components/feedBack/progressIndicator/progressIndicator.jsx.map +1 -1
  615. package/dist/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx +4 -2
  616. package/dist/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx.map +1 -1
  617. package/dist/source/components/feedBack/skeleton/skeleton.jsx +1 -0
  618. package/dist/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
  619. package/dist/source/components/feedBack/snackbar/snackbar.jsx +1 -0
  620. package/dist/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
  621. package/dist/source/components/feedBack/tooltip/tooltip.jsx +5 -2
  622. package/dist/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  623. package/dist/source/components/inputs/button/button.jsx +8 -3
  624. package/dist/source/components/inputs/button/button.jsx.map +1 -1
  625. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx +1 -0
  626. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
  627. package/dist/source/components/inputs/checkbox/checkbox.jsx +1 -0
  628. package/dist/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
  629. package/dist/source/components/inputs/datePicker/dataPickerInput.jsx +4 -3
  630. package/dist/source/components/inputs/datePicker/dataPickerInput.jsx.map +1 -1
  631. package/dist/source/components/inputs/datePicker/datePicker.jsx +5 -6
  632. package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  633. package/dist/source/components/inputs/fileDrop/fileDrop.jsx +1 -0
  634. package/dist/source/components/inputs/fileDrop/fileDrop.jsx.map +1 -1
  635. package/dist/source/components/inputs/fileInput/fileInput.jsx +1 -0
  636. package/dist/source/components/inputs/fileInput/fileInput.jsx.map +1 -1
  637. package/dist/source/components/inputs/floatingButton/floatingButton.jsx +1 -0
  638. package/dist/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
  639. package/dist/source/components/inputs/radioButton/radioButton.jsx +1 -0
  640. package/dist/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
  641. package/dist/source/components/inputs/rating/rating.jsx +5 -3
  642. package/dist/source/components/inputs/rating/rating.jsx.map +1 -1
  643. package/dist/source/components/inputs/selectField/selectField.jsx +9 -2
  644. package/dist/source/components/inputs/selectField/selectField.jsx.map +1 -1
  645. package/dist/source/components/inputs/slider/slider.jsx +1 -0
  646. package/dist/source/components/inputs/slider/slider.jsx.map +1 -1
  647. package/dist/source/components/inputs/textField/textField.jsx +9 -6
  648. package/dist/source/components/inputs/textField/textField.jsx.map +1 -1
  649. package/dist/source/components/inputs/textField/textFieldAdornment.jsx +4 -3
  650. package/dist/source/components/inputs/textField/textFieldAdornment.jsx.map +1 -1
  651. package/dist/source/components/inputs/textField/textFieldWrapper.jsx +9 -6
  652. package/dist/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
  653. package/dist/source/components/inputs/timePicker/timePicker.jsx +1 -0
  654. package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  655. package/dist/source/components/inputs/toggle/toggle.jsx +1 -0
  656. package/dist/source/components/inputs/toggle/toggle.jsx.map +1 -1
  657. package/dist/source/components/inputs/valueSlider/valueSlider.jsx +5 -3
  658. package/dist/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
  659. package/dist/source/components/layout/appLayout/appLayout.jsx +4 -2
  660. package/dist/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  661. package/dist/source/components/layout/divider/divider.jsx +11 -6
  662. package/dist/source/components/layout/divider/divider.jsx.map +1 -1
  663. package/dist/source/components/layout/floatingWindow/floatingWindow.jsx +1 -0
  664. package/dist/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
  665. package/dist/source/components/layout/grid/grid.jsx +1 -0
  666. package/dist/source/components/layout/grid/grid.jsx.map +1 -1
  667. package/dist/source/components/layout/page/page.jsx +1 -0
  668. package/dist/source/components/layout/page/page.jsx.map +1 -1
  669. package/dist/source/components/layout/pageHeader/pageHeader.jsx +15 -10
  670. package/dist/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  671. package/dist/source/components/layout/screenDivider/screenDivider.jsx +1 -0
  672. package/dist/source/components/layout/screenDivider/screenDivider.jsx.map +1 -1
  673. package/dist/source/components/layout/sectionHeader/index.js +6 -0
  674. package/dist/source/components/layout/sectionHeader/index.js.map +7 -0
  675. package/dist/source/components/layout/sectionHeader/sectionHeader.jsx +82 -0
  676. package/dist/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -0
  677. package/dist/source/components/layout/sheet/sheet.jsx +1 -0
  678. package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
  679. package/dist/source/components/layout/stack/stack.jsx +4 -2
  680. package/dist/source/components/layout/stack/stack.jsx.map +1 -1
  681. package/dist/source/components/navigation/appBar/appBar.jsx +8 -5
  682. package/dist/source/components/navigation/appBar/appBar.jsx.map +1 -1
  683. package/dist/source/components/navigation/bottomBar/bottomBar.jsx +5 -3
  684. package/dist/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  685. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx +1 -0
  686. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
  687. package/dist/source/components/navigation/menu/menu.jsx +1 -0
  688. package/dist/source/components/navigation/menu/menu.jsx.map +1 -1
  689. package/dist/source/components/navigation/overflowMenu/overflowMenu.jsx +1 -0
  690. package/dist/source/components/navigation/overflowMenu/overflowMenu.jsx.map +1 -1
  691. package/dist/source/components/navigation/pagination/pagination.jsx +1 -0
  692. package/dist/source/components/navigation/pagination/pagination.jsx.map +1 -1
  693. package/dist/source/components/navigation/sidebar/sidebar.jsx +1 -0
  694. package/dist/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
  695. package/dist/source/components/navigation/stepper/stepper.jsx +15 -7
  696. package/dist/source/components/navigation/stepper/stepper.jsx.map +1 -1
  697. package/dist/source/components/navigation/tabs/tab/tab.jsx +8 -5
  698. package/dist/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  699. package/dist/source/components/navigation/tabs/tabs.jsx +85 -4
  700. package/dist/source/components/navigation/tabs/tabs.jsx.map +1 -1
  701. package/dist/source/connects/rt/table/table.jsx +9 -1
  702. package/dist/source/connects/rt/table/table.jsx.map +1 -1
  703. package/dist/source/icons/catalog.js +78 -1
  704. package/dist/source/icons/catalog.js.map +2 -2
  705. package/dist/source/icons/svg/accountTree.js +11 -0
  706. package/dist/source/icons/svg/accountTree.js.map +7 -0
  707. package/dist/source/icons/svg/callSplit.js +11 -0
  708. package/dist/source/icons/svg/callSplit.js.map +7 -0
  709. package/dist/source/icons/svg/deviceHub.js +10 -0
  710. package/dist/source/icons/svg/deviceHub.js.map +7 -0
  711. package/dist/source/icons/svg/editNote.js +11 -0
  712. package/dist/source/icons/svg/editNote.js.map +7 -0
  713. package/dist/source/icons/svg/filterList.js +11 -0
  714. package/dist/source/icons/svg/filterList.js.map +7 -0
  715. package/dist/source/icons/svg/forkRight.js +10 -0
  716. package/dist/source/icons/svg/forkRight.js.map +7 -0
  717. package/dist/source/icons/svg/groups.js +11 -0
  718. package/dist/source/icons/svg/groups.js.map +7 -0
  719. package/dist/source/icons/svg/hub.js +10 -0
  720. package/dist/source/icons/svg/hub.js.map +7 -0
  721. package/dist/source/icons/svg/index.js +22 -0
  722. package/dist/source/icons/svg/index.js.map +2 -2
  723. package/dist/source/icons/svg/lan.js +11 -0
  724. package/dist/source/icons/svg/lan.js.map +7 -0
  725. package/dist/source/icons/svg/personOff.js +11 -0
  726. package/dist/source/icons/svg/personOff.js.map +7 -0
  727. package/dist/source/icons/svg/schema.js +11 -0
  728. package/dist/source/icons/svg/schema.js.map +7 -0
  729. package/dist/source/index.js +33 -1
  730. package/dist/source/index.js.map +2 -2
  731. package/package.json +79 -8
@@ -1,4 +1,4 @@
1
- import { Show, createEffect, createSignal, mergeProps, splitProps } from "solid-js";
1
+ import { Show, children, createEffect, createSignal, mergeProps, onCleanup, splitProps } from "solid-js";
2
2
  import cn from "clsx";
3
3
  import { ImagesListItemModal } from "./imagesListItemModal";
4
4
  import { useImagesListContext } from "../imagesListContext";
@@ -14,10 +14,16 @@ function ImagesListItem(props) {
14
14
  "itemBarPlacement",
15
15
  "alt"
16
16
  ]);
17
+ const itemBar = children(() => local.itemBarContent);
17
18
  const ctx = useImagesListContext();
18
19
  const [isOpen, setIsOpen] = createSignal(false);
19
20
  createEffect(() => {
20
- document.body.style.overflow = isOpen() ? "hidden" : "auto";
21
+ if (!isOpen()) return;
22
+ const previous = document.body.style.overflow;
23
+ document.body.style.overflow = "hidden";
24
+ onCleanup(() => {
25
+ document.body.style.overflow = previous;
26
+ });
21
27
  });
22
28
  const style = () => ({
23
29
  height: ctx.rowsHeight ? `${ctx.rowsHeight * local.rows}px` : "",
@@ -35,11 +41,11 @@ function ImagesListItem(props) {
35
41
  <div class="smwb-gallery-item__img-wrapper">
36
42
  <img src={local.src} alt={local.alt || "image"} class={cn("smwb-gallery-item__img", { "smwb-rounded": local.rounded })} />
37
43
  </div>
38
- <Show when={local.itemBarContent}>
44
+ <Show when={itemBar()}>
39
45
  <div
40
46
  class={cn("smwb-gallery-item__bar", local.class, `smwb-${local.itemBarPlacement}`, { "smwb-rounded": local.rounded })}
41
47
  >
42
- {local.itemBarContent}
48
+ {itemBar()}
43
49
  </div>
44
50
  </Show>
45
51
  </div>
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/dataDisplay/imagesList/imagesListItem/imagesListItem.tsx"],"sourcesContent":["import { type JSX, Show, createEffect, createSignal, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { ImagesListItemModal } from \"./imagesListItemModal\";\nimport { useImagesListContext } from \"../imagesListContext\";\n\nexport interface ImagesListItemProps {\n class?: string;\n src: string;\n rowsHeight?: number;\n cols: number;\n rows: number;\n rounded?: boolean;\n itemBarPlacement?: \"top\" | \"bottom\" | \"under\";\n itemBarContent?: JSX.Element;\n alt?: string;\n}\n\nexport function ImagesListItem(props: ImagesListItemProps): JSX.Element {\n const merged = mergeProps({ cols: 1, rows: 1, itemBarPlacement: \"bottom\" as const, alt: \"image\" }, props);\n const [local] = splitProps(merged, [\n \"class\",\n \"src\",\n \"rounded\",\n \"itemBarContent\",\n \"cols\",\n \"rows\",\n \"itemBarPlacement\",\n \"alt\",\n ]);\n\n const ctx = useImagesListContext();\n const [isOpen, setIsOpen] = createSignal(false);\n\n createEffect(() => {\n document.body.style.overflow = isOpen() ? \"hidden\" : \"auto\";\n });\n\n const style = (): JSX.CSSProperties => ({\n height: ctx.rowsHeight ? `${ctx.rowsHeight * local.rows}px` : \"\",\n \"grid-row-end\": `span ${local.rows}`,\n \"grid-column-end\": `span ${local.cols}`,\n });\n\n return (\n <>\n <li\n data-testid=\"images-list-item\"\n class={cn(\"smwb-gallery__list__item\", local.class, \"smwb-gallery-item\", `smwb-${ctx.variant}`)}\n onClick={() => setIsOpen(true)}\n style={style()}\n >\n <div class=\"smwb-gallery-item__inner\">\n <div class=\"smwb-gallery-item__img-wrapper\">\n <img src={local.src} alt={local.alt || \"image\"} class={cn(\"smwb-gallery-item__img\", { \"smwb-rounded\": local.rounded })} />\n </div>\n <Show when={local.itemBarContent}>\n <div\n class={cn(\"smwb-gallery-item__bar\", local.class, `smwb-${local.itemBarPlacement}`, { \"smwb-rounded\": local.rounded })}\n >\n {local.itemBarContent}\n </div>\n </Show>\n </div>\n </li>\n <ImagesListItemModal src={local.src} onClose={() => setIsOpen(false)} isOpen={isOpen()} />\n </>\n );\n}\n\nexport default ImagesListItem;\n"],"mappings":"AAAA,SAAmB,MAAM,cAAc,cAAc,YAAY,kBAAkB;AACnF,OAAO,QAAQ;AACf,SAAS,2BAA2B;AACpC,SAAS,4BAA4B;AAc9B,SAAS,eAAe,OAAyC;AACtE,QAAM,SAAS,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,kBAAkB,UAAmB,KAAK,QAAQ,GAAG,KAAK;AACxG,QAAM,CAAC,KAAK,IAAI,WAAW,QAAQ;AAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,MAAM,qBAAqB;AACjC,QAAM,CAAC,QAAQ,SAAS,IAAI,aAAa,KAAK;AAE9C,eAAa,MAAM;AACjB,aAAS,KAAK,MAAM,WAAW,OAAO,IAAI,WAAW;AAAA,EACvD,CAAC;AAED,QAAM,QAAQ,OAA0B;AAAA,IACtC,QAAQ,IAAI,aAAa,GAAG,IAAI,aAAa,MAAM,IAAI,OAAO;AAAA,IAC9D,gBAAgB,QAAQ,MAAM,IAAI;AAAA,IAClC,mBAAmB,QAAQ,MAAM,IAAI;AAAA,EACvC;AAEA,SACE,EAAE;AAAA,MACA,CAAC;AAAA,IACC,YAAY;AAAA,IACZ,OAAO,GAAG,4BAA4B,MAAM,OAAO,qBAAqB,QAAQ,IAAI,OAAO,EAAE;AAAA,IAC7F,SAAS,MAAM,UAAU,IAAI;AAAA,IAC7B,OAAO,MAAM;AAAA,GACd;AAAA,QACC,CAAC,IAAI,MAAM,2BAA2B;AAAA,UACpC,CAAC,IAAI,MAAM,iCAAiC;AAAA,YAC1C,CAAC,IAAI,KAAK,MAAM,KAAK,KAAK,MAAM,OAAO,SAAS,OAAO,GAAG,0BAA0B,EAAE,gBAAgB,MAAM,QAAQ,CAAC,GAAG,EAAE;AAAA,UAC5H,EAFC,IAEK;AAAA,UACN,CAAC,KAAK,MAAM,MAAM,gBAAgB;AAAA,YAChC,CAAC;AAAA,IACC,OAAO,GAAG,0BAA0B,MAAM,OAAO,QAAQ,MAAM,gBAAgB,IAAI,EAAE,gBAAgB,MAAM,QAAQ,CAAC;AAAA,GACrH;AAAA,eACE,MAAM,eAAe;AAAA,YACxB,EAJC,IAIK;AAAA,UACR,EANC,KAMM;AAAA,QACT,EAXC,IAWK;AAAA,MACR,EAlBC,GAkBI;AAAA,MACL,CAAC,oBAAoB,KAAK,MAAM,KAAK,SAAS,MAAM,UAAU,KAAK,GAAG,QAAQ,OAAO,GAAG,EAAE;AAAA,IAC5F;AAEJ;AAEA,IAAO,yBAAQ;","names":[],"file":"imagesListItem.jsx"}
1
+ {"version":3,"sources":["../../../../../../../src/components/dataDisplay/imagesList/imagesListItem/imagesListItem.tsx"],"sourcesContent":["import { type JSX, Show, children, createEffect, createSignal, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { ImagesListItemModal } from \"./imagesListItemModal\";\nimport { useImagesListContext } from \"../imagesListContext\";\n\nexport interface ImagesListItemProps {\n class?: string;\n src: string;\n rowsHeight?: number;\n cols: number;\n rows: number;\n rounded?: boolean;\n itemBarPlacement?: \"top\" | \"bottom\" | \"under\";\n itemBarContent?: JSX.Element;\n alt?: string;\n}\n\nexport function ImagesListItem(props: ImagesListItemProps): JSX.Element {\n const merged = mergeProps({ cols: 1, rows: 1, itemBarPlacement: \"bottom\" as const, alt: \"image\" }, props);\n const [local] = splitProps(merged, [\n \"class\",\n \"src\",\n \"rounded\",\n \"itemBarContent\",\n \"cols\",\n \"rows\",\n \"itemBarPlacement\",\n \"alt\",\n ]);\n // Read once: markup passed as a prop is created anew on every read, and\n // during hydration a copy the server never rendered has no DOM node.\n const itemBar = children(() => local.itemBarContent);\n\n const ctx = useImagesListContext();\n const [isOpen, setIsOpen] = createSignal(false);\n\n // Lock the page's scroll while the viewer is open, and give it back as it was.\n // (Every item used to set it to \"auto\" when it mounted, undoing another lock.)\n createEffect(() => {\n if (!isOpen()) return;\n const previous = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n onCleanup(() => {\n document.body.style.overflow = previous;\n });\n });\n\n const style = (): JSX.CSSProperties => ({\n height: ctx.rowsHeight ? `${ctx.rowsHeight * local.rows}px` : \"\",\n \"grid-row-end\": `span ${local.rows}`,\n \"grid-column-end\": `span ${local.cols}`,\n });\n\n return (\n <>\n <li\n data-testid=\"images-list-item\"\n class={cn(\"smwb-gallery__list__item\", local.class, \"smwb-gallery-item\", `smwb-${ctx.variant}`)}\n onClick={() => setIsOpen(true)}\n style={style()}\n >\n <div class=\"smwb-gallery-item__inner\">\n <div class=\"smwb-gallery-item__img-wrapper\">\n <img src={local.src} alt={local.alt || \"image\"} class={cn(\"smwb-gallery-item__img\", { \"smwb-rounded\": local.rounded })} />\n </div>\n <Show when={itemBar()}>\n <div\n class={cn(\"smwb-gallery-item__bar\", local.class, `smwb-${local.itemBarPlacement}`, { \"smwb-rounded\": local.rounded })}\n >\n {itemBar()}\n </div>\n </Show>\n </div>\n </li>\n <ImagesListItemModal src={local.src} onClose={() => setIsOpen(false)} isOpen={isOpen()} />\n </>\n );\n}\n\nexport default ImagesListItem;\n"],"mappings":"AAAA,SAAmB,MAAM,UAAU,cAAc,cAAc,YAAY,WAAW,kBAAkB;AACxG,OAAO,QAAQ;AACf,SAAS,2BAA2B;AACpC,SAAS,4BAA4B;AAc9B,SAAS,eAAe,OAAyC;AACtE,QAAM,SAAS,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,kBAAkB,UAAmB,KAAK,QAAQ,GAAG,KAAK;AACxG,QAAM,CAAC,KAAK,IAAI,WAAW,QAAQ;AAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAGD,QAAM,UAAU,SAAS,MAAM,MAAM,cAAc;AAEnD,QAAM,MAAM,qBAAqB;AACjC,QAAM,CAAC,QAAQ,SAAS,IAAI,aAAa,KAAK;AAI9C,eAAa,MAAM;AACjB,QAAI,CAAC,OAAO,EAAG;AACf,UAAM,WAAW,SAAS,KAAK,MAAM;AACrC,aAAS,KAAK,MAAM,WAAW;AAC/B,cAAU,MAAM;AACd,eAAS,KAAK,MAAM,WAAW;AAAA,IACjC,CAAC;AAAA,EACH,CAAC;AAED,QAAM,QAAQ,OAA0B;AAAA,IACtC,QAAQ,IAAI,aAAa,GAAG,IAAI,aAAa,MAAM,IAAI,OAAO;AAAA,IAC9D,gBAAgB,QAAQ,MAAM,IAAI;AAAA,IAClC,mBAAmB,QAAQ,MAAM,IAAI;AAAA,EACvC;AAEA,SACE,EAAE;AAAA,MACA,CAAC;AAAA,IACC,YAAY;AAAA,IACZ,OAAO,GAAG,4BAA4B,MAAM,OAAO,qBAAqB,QAAQ,IAAI,OAAO,EAAE;AAAA,IAC7F,SAAS,MAAM,UAAU,IAAI;AAAA,IAC7B,OAAO,MAAM;AAAA,GACd;AAAA,QACC,CAAC,IAAI,MAAM,2BAA2B;AAAA,UACpC,CAAC,IAAI,MAAM,iCAAiC;AAAA,YAC1C,CAAC,IAAI,KAAK,MAAM,KAAK,KAAK,MAAM,OAAO,SAAS,OAAO,GAAG,0BAA0B,EAAE,gBAAgB,MAAM,QAAQ,CAAC,GAAG,EAAE;AAAA,UAC5H,EAFC,IAEK;AAAA,UACN,CAAC,KAAK,MAAM,QAAQ,GAAG;AAAA,YACrB,CAAC;AAAA,IACC,OAAO,GAAG,0BAA0B,MAAM,OAAO,QAAQ,MAAM,gBAAgB,IAAI,EAAE,gBAAgB,MAAM,QAAQ,CAAC;AAAA,GACrH;AAAA,eACE,QAAQ,EAAE;AAAA,YACb,EAJC,IAIK;AAAA,UACR,EANC,KAMM;AAAA,QACT,EAXC,IAWK;AAAA,MACR,EAlBC,GAkBI;AAAA,MACL,CAAC,oBAAoB,KAAK,MAAM,KAAK,SAAS,MAAM,UAAU,KAAK,GAAG,QAAQ,OAAO,GAAG,EAAE;AAAA,IAC5F;AAEJ;AAEA,IAAO,yBAAQ;","names":[],"file":"imagesListItem.jsx"}
@@ -0,0 +1,8 @@
1
+ import { Kanban, KanbanColumn, KanbanCard, default as default2 } from "./kanban";
2
+ export {
3
+ Kanban,
4
+ KanbanCard,
5
+ KanbanColumn,
6
+ default2 as default
7
+ };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/dataDisplay/kanban/index.ts"],
4
+ "sourcesContent": ["export { Kanban, KanbanColumn, KanbanCard, default } from \"./kanban\";\nexport type { KanbanProps, KanbanColumnProps, KanbanCardProps } from \"./kanban\";\n"],
5
+ "mappings": "AAAA,SAAS,QAAQ,cAAc,YAAY,WAAAA,gBAAe;",
6
+ "names": ["default"]
7
+ }
@@ -0,0 +1,99 @@
1
+ import { Show, children, createUniqueId, mergeProps, splitProps } from "solid-js";
2
+ import cn from "clsx";
3
+ import { mergeRefs } from "../../../primitives/mergeRefs";
4
+ const styleObject = (style) => typeof style === "object" && style ? style : {};
5
+ const cssLength = (value) => typeof value === "number" ? `${value}px` : value;
6
+ const present = (value) => value !== void 0 && value !== null && value !== false && value !== true && value !== "";
7
+ function Kanban(props) {
8
+ const [local, rest] = splitProps(props, ["class", "style", "columnWidth", "children", "ref"]);
9
+ return <div
10
+ data-testid="kanban"
11
+ {...rest}
12
+ ref={mergeRefs(local.ref)}
13
+ class={cn("smwb-kanban", local.class)}
14
+ style={{ ...styleObject(local.style), "--smwb-kanban-column-width": cssLength(local.columnWidth) }}
15
+ >
16
+ {local.children}
17
+ </div>;
18
+ }
19
+ function KanbanColumn(props) {
20
+ const [local, rest] = splitProps(props, [
21
+ "class",
22
+ "style",
23
+ "title",
24
+ "count",
25
+ "accent",
26
+ "empty",
27
+ "footer",
28
+ "children",
29
+ "ref"
30
+ ]);
31
+ const titleId = `${createUniqueId()}-title`;
32
+ const cards = children(() => local.children);
33
+ const empty = children(() => local.empty);
34
+ const footer = children(() => local.footer);
35
+ const hasCards = () => cards.toArray().some(present);
36
+ return <div
37
+ data-testid="kanban-column"
38
+ role="group"
39
+ aria-labelledby={titleId}
40
+ {...rest}
41
+ ref={mergeRefs(local.ref)}
42
+ class={cn("smwb-kanban__column", local.class)}
43
+ style={{ ...styleObject(local.style), "--smwb-kanban-accent": local.accent }}
44
+ >
45
+ <div class="smwb-kanban__column-header">
46
+ <div class="smwb-kanban__column-title" id={titleId}>
47
+ {local.title}
48
+ </div>
49
+ <Show when={local.count !== void 0 && local.count !== null}>
50
+ <span class="smwb-kanban__count">{local.count}</span>
51
+ </Show>
52
+ </div>
53
+ <Show
54
+ when={hasCards()}
55
+ fallback={<Show when={present(empty())}>
56
+ <div class="smwb-kanban__empty">{empty()}</div>
57
+ </Show>}
58
+ >
59
+ <ul class="smwb-kanban__cards" role="list">
60
+ {cards()}
61
+ </ul>
62
+ </Show>
63
+ <Show when={present(footer())}>
64
+ <div class="smwb-kanban__column-footer">{footer()}</div>
65
+ </Show>
66
+ </div>;
67
+ }
68
+ function KanbanCard(props) {
69
+ const merged = mergeProps({ titleLines: 3 }, props);
70
+ const [local, rest] = splitProps(merged, ["class", "style", "title", "href", "titleLines", "children", "ref"]);
71
+ const title = children(() => local.title);
72
+ const body = children(() => local.children);
73
+ return <li
74
+ data-testid="kanban-card"
75
+ {...rest}
76
+ ref={mergeRefs(local.ref)}
77
+ class={cn("smwb-kanban__card", { "smwb-kanban__card_link": Boolean(local.href) }, local.class)}
78
+ style={{ ...styleObject(local.style), "--smwb-kanban-title-lines": String(local.titleLines) }}
79
+ >
80
+ <Show when={present(title())}>
81
+ <Show when={local.href} fallback={<div class="smwb-kanban__card-title">{title()}</div>}>
82
+ {(href) => <a class="smwb-kanban__card-title" href={href()}>
83
+ {title()}
84
+ </a>}
85
+ </Show>
86
+ </Show>
87
+ <Show when={present(body())}>
88
+ <div class="smwb-kanban__card-body">{body()}</div>
89
+ </Show>
90
+ </li>;
91
+ }
92
+ var kanban_default = Kanban;
93
+ export {
94
+ Kanban,
95
+ KanbanCard,
96
+ KanbanColumn,
97
+ kanban_default as default
98
+ };
99
+ //# sourceMappingURL=kanban.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/components/dataDisplay/kanban/kanban.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, children, createUniqueId, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface KanbanProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /**\n * The narrowest a column gets before the board scrolls sideways: a number of\n * pixels or any CSS length. 15.5rem by default.\n */\n columnWidth?: number | string;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport interface KanbanColumnProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"title\"> {\n /** The column's name: text or a badge. It names the column for assistive technology. */\n title: JSX.Element;\n /** How many cards the column holds (it may show fewer), beside the title. Nothing is shown for null. */\n count?: number | string | null;\n /** The column's colour, a stripe along its top: any CSS colour. */\n accent?: string;\n /** Shown in place of the cards when there are none, e.g. \"Empty\". */\n empty?: JSX.Element;\n /** Under the cards, e.g. a link to the rest as a list. */\n footer?: JSX.Element;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport interface KanbanCardProps extends Omit<JSX.HTMLAttributes<HTMLLIElement>, \"title\"> {\n /** The card's title, clamped to `titleLines` lines. */\n title?: JSX.Element;\n /** Makes the title a link, and the whole card open it. */\n href?: string;\n /** Lines the title is clamped to: 3 by default. */\n titleLines?: number;\n ref?: Ref<HTMLLIElement>;\n}\n\ntype Style = JSX.CSSProperties | string | undefined;\n\nconst styleObject = (style: Style): JSX.CSSProperties => (typeof style === \"object\" && style ? style : {});\n\nconst cssLength = (value: number | string | undefined): string | undefined =>\n typeof value === \"number\" ? `${value}px` : value;\n\nconst present = (value: unknown): boolean =>\n value !== undefined && value !== null && value !== false && value !== true && value !== \"\";\n\n/** A board: KanbanColumn children side by side, scrolling sideways when they do not fit. */\nexport function Kanban(props: ParentProps<KanbanProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\"class\", \"style\", \"columnWidth\", \"children\", \"ref\"]);\n return (\n <div\n data-testid=\"kanban\"\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-kanban\", local.class)}\n style={{ ...styleObject(local.style), \"--smwb-kanban-column-width\": cssLength(local.columnWidth) }}\n >\n {local.children}\n </div>\n );\n}\n\n/** A column of the board: its title and count, then its KanbanCard children, or `empty` when it has none. */\nexport function KanbanColumn(props: ParentProps<KanbanColumnProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"class\",\n \"style\",\n \"title\",\n \"count\",\n \"accent\",\n \"empty\",\n \"footer\",\n \"children\",\n \"ref\",\n ]);\n const titleId = `${createUniqueId()}-title`;\n\n // Read each slot once: markup passed as a prop is created anew on every read,\n // and during hydration the copy made for a <Show> test has no server DOM node.\n const cards = children(() => local.children);\n const empty = children(() => local.empty);\n const footer = children(() => local.footer);\n const hasCards = (): boolean => cards.toArray().some(present);\n\n return (\n <div\n data-testid=\"kanban-column\"\n role=\"group\"\n aria-labelledby={titleId}\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-kanban__column\", local.class)}\n style={{ ...styleObject(local.style), \"--smwb-kanban-accent\": local.accent }}\n >\n <div class=\"smwb-kanban__column-header\">\n <div class=\"smwb-kanban__column-title\" id={titleId}>\n {local.title}\n </div>\n <Show when={local.count !== undefined && local.count !== null}>\n <span class=\"smwb-kanban__count\">{local.count}</span>\n </Show>\n </div>\n <Show\n when={hasCards()}\n fallback={\n <Show when={present(empty())}>\n <div class=\"smwb-kanban__empty\">{empty()}</div>\n </Show>\n }\n >\n <ul class=\"smwb-kanban__cards\" role=\"list\">\n {cards()}\n </ul>\n </Show>\n <Show when={present(footer())}>\n <div class=\"smwb-kanban__column-footer\">{footer()}</div>\n </Show>\n </div>\n );\n}\n\n/**\n * A card on the board: its title (a link with `href`, and then the whole card\n * opens it) and the children under it.\n */\nexport function KanbanCard(props: ParentProps<KanbanCardProps>): JSX.Element {\n const merged = mergeProps({ titleLines: 3 }, props);\n const [local, rest] = splitProps(merged, [\"class\", \"style\", \"title\", \"href\", \"titleLines\", \"children\", \"ref\"]);\n\n const title = children(() => local.title);\n const body = children(() => local.children);\n\n return (\n <li\n data-testid=\"kanban-card\"\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-kanban__card\", { \"smwb-kanban__card_link\": Boolean(local.href) }, local.class)}\n style={{ ...styleObject(local.style), \"--smwb-kanban-title-lines\": String(local.titleLines) }}\n >\n <Show when={present(title())}>\n <Show when={local.href} fallback={<div class=\"smwb-kanban__card-title\">{title()}</div>}>\n {(href) => (\n <a class=\"smwb-kanban__card-title\" href={href()}>\n {title()}\n </a>\n )}\n </Show>\n </Show>\n <Show when={present(body())}>\n <div class=\"smwb-kanban__card-body\">{body()}</div>\n </Show>\n </li>\n );\n}\n\nexport default Kanban;\n"],"mappings":"AAAA,SAAqC,MAAM,UAAU,gBAAgB,YAAY,kBAAkB;AACnG,OAAO,QAAQ;AACf,SAAS,iBAA2B;AAqCpC,MAAM,cAAc,CAAC,UAAqC,OAAO,UAAU,YAAY,QAAQ,QAAQ,CAAC;AAExG,MAAM,YAAY,CAAC,UACjB,OAAO,UAAU,WAAW,GAAG,KAAK,OAAO;AAE7C,MAAM,UAAU,CAAC,UACf,UAAU,UAAa,UAAU,QAAQ,UAAU,SAAS,UAAU,QAAQ,UAAU;AAGnF,SAAS,OAAO,OAA8C;AACnE,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,SAAS,SAAS,eAAe,YAAY,KAAK,CAAC;AAC5F,SACE,CAAC;AAAA,IACC,YAAY;AAAA,QACR;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,OAAO,GAAG,eAAe,MAAM,KAAK;AAAA,IACpC,OAAO,EAAE,GAAG,YAAY,MAAM,KAAK,GAAG,8BAA8B,UAAU,MAAM,WAAW,EAAE;AAAA,GAClG;AAAA,OACE,MAAM,SAAS;AAAA,IAClB,EARC;AAUL;AAGO,SAAS,aAAa,OAAoD;AAC/E,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,UAAU,GAAG,eAAe,CAAC;AAInC,QAAM,QAAQ,SAAS,MAAM,MAAM,QAAQ;AAC3C,QAAM,QAAQ,SAAS,MAAM,MAAM,KAAK;AACxC,QAAM,SAAS,SAAS,MAAM,MAAM,MAAM;AAC1C,QAAM,WAAW,MAAe,MAAM,QAAQ,EAAE,KAAK,OAAO;AAE5D,SACE,CAAC;AAAA,IACC,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,iBAAiB;AAAA,QACb;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,OAAO,GAAG,uBAAuB,MAAM,KAAK;AAAA,IAC5C,OAAO,EAAE,GAAG,YAAY,MAAM,KAAK,GAAG,wBAAwB,MAAM,OAAO;AAAA,GAC5E;AAAA,MACC,CAAC,IAAI,MAAM,6BAA6B;AAAA,QACtC,CAAC,IAAI,MAAM,4BAA4B,IAAI,SAAS;AAAA,WACjD,MAAM,MAAM;AAAA,QACf,EAFC,IAEK;AAAA,QACN,CAAC,KAAK,MAAM,MAAM,UAAU,UAAa,MAAM,UAAU,MAAM;AAAA,UAC7D,CAAC,KAAK,MAAM,sBAAsB,MAAM,MAAM,EAA7C,KAAoD;AAAA,QACvD,EAFC,KAEM;AAAA,MACT,EAPC,IAOK;AAAA,MACN,CAAC;AAAA,IACC,MAAM,SAAS;AAAA,IACf,UACE,CAAC,KAAK,MAAM,QAAQ,MAAM,CAAC,GAAG;AAAA,YAC5B,CAAC,IAAI,MAAM,sBAAsB,MAAM,EAAE,EAAxC,IAA8C;AAAA,UACjD,EAFC;AAAA,GAIJ;AAAA,QACC,CAAC,GAAG,MAAM,qBAAqB,KAAK,OAAO;AAAA,WACxC,MAAM,EAAE;AAAA,QACX,EAFC,GAEI;AAAA,MACP,EAXC,KAWM;AAAA,MACP,CAAC,KAAK,MAAM,QAAQ,OAAO,CAAC,GAAG;AAAA,QAC7B,CAAC,IAAI,MAAM,8BAA8B,OAAO,EAAE,EAAjD,IAAuD;AAAA,MAC1D,EAFC,KAEM;AAAA,IACT,EAhCC;AAkCL;AAMO,SAAS,WAAW,OAAkD;AAC3E,QAAM,SAAS,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK;AAClD,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ,CAAC,SAAS,SAAS,SAAS,QAAQ,cAAc,YAAY,KAAK,CAAC;AAE7G,QAAM,QAAQ,SAAS,MAAM,MAAM,KAAK;AACxC,QAAM,OAAO,SAAS,MAAM,MAAM,QAAQ;AAE1C,SACE,CAAC;AAAA,IACC,YAAY;AAAA,QACR;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,OAAO,GAAG,qBAAqB,EAAE,0BAA0B,QAAQ,MAAM,IAAI,EAAE,GAAG,MAAM,KAAK;AAAA,IAC7F,OAAO,EAAE,GAAG,YAAY,MAAM,KAAK,GAAG,6BAA6B,OAAO,MAAM,UAAU,EAAE;AAAA,GAC7F;AAAA,MACC,CAAC,KAAK,MAAM,QAAQ,MAAM,CAAC,GAAG;AAAA,QAC5B,CAAC,KAAK,MAAM,MAAM,MAAM,UAAU,CAAC,IAAI,MAAM,2BAA2B,MAAM,EAAE,EAA7C,MAAqD;AAAA,WACrF,CAAC,SACA,CAAC,EAAE,MAAM,0BAA0B,MAAM,KAAK,GAAG;AAAA,eAC9C,MAAM,EAAE;AAAA,YACX,EAFC,GAGD;AAAA,QACJ,EANC,KAMM;AAAA,MACT,EARC,KAQM;AAAA,MACP,CAAC,KAAK,MAAM,QAAQ,KAAK,CAAC,GAAG;AAAA,QAC3B,CAAC,IAAI,MAAM,0BAA0B,KAAK,EAAE,EAA3C,IAAiD;AAAA,MACpD,EAFC,KAEM;AAAA,IACT,EAnBC;AAqBL;AAEA,IAAO,iBAAQ;","names":[],"file":"kanban.jsx"}
@@ -1,4 +1,4 @@
1
- import { Show, createSignal, mergeProps, onCleanup, onMount, splitProps } from "solid-js";
1
+ import { Show, children, createSignal, mergeProps, onCleanup, onMount, splitProps } from "solid-js";
2
2
  import cn from "clsx";
3
3
  import { mergeRefs } from "../../../primitives/mergeRefs";
4
4
  function LazyImage(props) {
@@ -37,10 +37,11 @@ function LazyImage(props) {
37
37
  };
38
38
  const showFallback = () => failed() || !local.src;
39
39
  const resolvedSrc = () => visible() ? local.src : void 0;
40
+ const fallback = children(() => showFallback() ? local.fallback : void 0);
40
41
  const style = () => local.aspectRatio != null ? { "aspect-ratio": String(local.aspectRatio) } : void 0;
41
42
  return <span class={cn("smwb-lazy-image", local.class, { "smwb-lazy-image--empty": showFallback() })} style={style()}>
42
- <Show when={showFallback() && local.fallback}>
43
- <span class="smwb-lazy-image__fallback">{local.fallback}</span>
43
+ <Show when={fallback()}>
44
+ <span class="smwb-lazy-image__fallback">{fallback()}</span>
44
45
  </Show>
45
46
  <Show when={!showFallback()}>
46
47
  <img
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/dataDisplay/lazyImage/lazyImage.tsx"],"sourcesContent":["import { type JSX, Show, createSignal, mergeProps, onCleanup, onMount, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface LazyImageProps extends Omit<JSX.ImgHTMLAttributes<HTMLImageElement>, \"onError\"> {\n /** Image URL. When absent (or after a load error) the `fallback` is shown. */\n src?: string | undefined;\n alt?: string | undefined;\n /** Rendered in place of the image when it is missing or fails to load. */\n fallback?: JSX.Element | undefined;\n /** Defer loading until the image scrolls into view (IntersectionObserver). Default true. */\n lazy?: boolean;\n /** CSS `aspect-ratio` for the wrapper (e.g. `1`, `\"4 / 3\"`) to reserve space before load. */\n aspectRatio?: string | number;\n /** Fires on a load error (after the fallback is swapped in). */\n onError?: (event: Event) => void;\n ref?: Ref<HTMLImageElement>;\n}\n\n/**\n * An `<img>` with a built-in `onError` fallback and optional in-viewport lazy\n * loading — the `<img decoding=async onError=…>` + `<Show>` dance hand-rolled in\n * every gallery, in one primitive. SSR-safe: renders the image markup on the\n * server; the IntersectionObserver only runs after mount on the client.\n */\nexport function LazyImage(props: LazyImageProps): JSX.Element {\n const merged = mergeProps({ lazy: true }, props);\n const [local, rest] = splitProps(merged, [\n \"src\",\n \"alt\",\n \"fallback\",\n \"lazy\",\n \"aspectRatio\",\n \"class\",\n \"onError\",\n \"ref\",\n ]);\n\n const [failed, setFailed] = createSignal(false);\n // When lazy, hold the real src back until the element scrolls into view.\n const [visible, setVisible] = createSignal(!merged.lazy);\n let imgEl: HTMLImageElement | undefined;\n\n onMount(() => {\n if (!local.lazy || visible() || !imgEl) return;\n if (typeof IntersectionObserver === \"undefined\") {\n setVisible(true);\n return;\n }\n const io = new IntersectionObserver((entries) => {\n if (entries.some((entry) => entry.isIntersecting)) {\n setVisible(true);\n io.disconnect();\n }\n });\n io.observe(imgEl);\n onCleanup(() => io.disconnect());\n });\n\n const onError = (event: Event): void => {\n setFailed(true);\n local.onError?.(event);\n };\n\n const showFallback = (): boolean => failed() || !local.src;\n const resolvedSrc = (): string | undefined => (visible() ? local.src : undefined);\n const style = (): JSX.CSSProperties | undefined =>\n local.aspectRatio != null ? { \"aspect-ratio\": String(local.aspectRatio) } : undefined;\n\n return (\n <span class={cn(\"smwb-lazy-image\", local.class, { \"smwb-lazy-image--empty\": showFallback() })} style={style()}>\n <Show when={showFallback() && local.fallback}>\n <span class=\"smwb-lazy-image__fallback\">{local.fallback}</span>\n </Show>\n <Show when={!showFallback()}>\n <img\n {...rest}\n ref={mergeRefs(local.ref, (el) => (imgEl = el as HTMLImageElement))}\n class=\"smwb-lazy-image__img\"\n src={resolvedSrc()}\n alt={local.alt ?? \"\"}\n loading={local.lazy ? \"lazy\" : undefined}\n decoding=\"async\"\n onError={onError}\n />\n </Show>\n </span>\n );\n}\n\nexport default LazyImage;\n"],"mappings":"AAAA,SAAmB,MAAM,cAAc,YAAY,WAAW,SAAS,kBAAkB;AACzF,OAAO,QAAQ;AACf,SAAS,iBAA2B;AAuB7B,SAAS,UAAU,OAAoC;AAC5D,QAAM,SAAS,WAAW,EAAE,MAAM,KAAK,GAAG,KAAK;AAC/C,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,CAAC,QAAQ,SAAS,IAAI,aAAa,KAAK;AAE9C,QAAM,CAAC,SAAS,UAAU,IAAI,aAAa,CAAC,OAAO,IAAI;AACvD,MAAI;AAEJ,UAAQ,MAAM;AACZ,QAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,CAAC,MAAO;AACxC,QAAI,OAAO,yBAAyB,aAAa;AAC/C,iBAAW,IAAI;AACf;AAAA,IACF;AACA,UAAM,KAAK,IAAI,qBAAqB,CAAC,YAAY;AAC/C,UAAI,QAAQ,KAAK,CAAC,UAAU,MAAM,cAAc,GAAG;AACjD,mBAAW,IAAI;AACf,WAAG,WAAW;AAAA,MAChB;AAAA,IACF,CAAC;AACD,OAAG,QAAQ,KAAK;AAChB,cAAU,MAAM,GAAG,WAAW,CAAC;AAAA,EACjC,CAAC;AAED,QAAM,UAAU,CAAC,UAAuB;AACtC,cAAU,IAAI;AACd,UAAM,UAAU,KAAK;AAAA,EACvB;AAEA,QAAM,eAAe,MAAe,OAAO,KAAK,CAAC,MAAM;AACvD,QAAM,cAAc,MAA2B,QAAQ,IAAI,MAAM,MAAM;AACvE,QAAM,QAAQ,MACZ,MAAM,eAAe,OAAO,EAAE,gBAAgB,OAAO,MAAM,WAAW,EAAE,IAAI;AAE9E,SACE,CAAC,KAAK,OAAO,GAAG,mBAAmB,MAAM,OAAO,EAAE,0BAA0B,aAAa,EAAE,CAAC,GAAG,OAAO,MAAM,GAAG;AAAA,MAC7G,CAAC,KAAK,MAAM,aAAa,KAAK,MAAM,UAAU;AAAA,QAC5C,CAAC,KAAK,MAAM,6BAA6B,MAAM,SAAS,EAAvD,KAA8D;AAAA,MACjE,EAFC,KAEM;AAAA,MACP,CAAC,KAAK,MAAM,CAAC,aAAa,GAAG;AAAA,QAC3B,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,KAAK,CAAC,OAAQ,QAAQ,EAAuB;AAAA,IAClE,MAAM;AAAA,IACN,KAAK,YAAY;AAAA,IACjB,KAAK,MAAM,OAAO;AAAA,IAClB,SAAS,MAAM,OAAO,SAAS;AAAA,IAC/B,SAAS;AAAA,IACT,SAAS;AAAA,EACX,EAAE;AAAA,MACJ,EAXC,KAWM;AAAA,IACT,EAhBC;AAkBL;AAEA,IAAO,oBAAQ;","names":[],"file":"lazyImage.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/dataDisplay/lazyImage/lazyImage.tsx"],"sourcesContent":["import { type JSX, Show, children, createSignal, mergeProps, onCleanup, onMount, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface LazyImageProps extends Omit<JSX.ImgHTMLAttributes<HTMLImageElement>, \"onError\"> {\n /** Image URL. When absent (or after a load error) the `fallback` is shown. */\n src?: string | undefined;\n alt?: string | undefined;\n /** Rendered in place of the image when it is missing or fails to load. */\n fallback?: JSX.Element | undefined;\n /** Defer loading until the image scrolls into view (IntersectionObserver). Default true. */\n lazy?: boolean;\n /** CSS `aspect-ratio` for the wrapper (e.g. `1`, `\"4 / 3\"`) to reserve space before load. */\n aspectRatio?: string | number;\n /** Fires on a load error (after the fallback is swapped in). */\n onError?: (event: Event) => void;\n ref?: Ref<HTMLImageElement>;\n}\n\n/**\n * An `<img>` with a built-in `onError` fallback and optional in-viewport lazy\n * loading — the `<img decoding=async onError=…>` + `<Show>` dance hand-rolled in\n * every gallery, in one primitive. SSR-safe: renders the image markup on the\n * server; the IntersectionObserver only runs after mount on the client.\n */\nexport function LazyImage(props: LazyImageProps): JSX.Element {\n const merged = mergeProps({ lazy: true }, props);\n const [local, rest] = splitProps(merged, [\n \"src\",\n \"alt\",\n \"fallback\",\n \"lazy\",\n \"aspectRatio\",\n \"class\",\n \"onError\",\n \"ref\",\n ]);\n\n const [failed, setFailed] = createSignal(false);\n // When lazy, hold the real src back until the element scrolls into view.\n const [visible, setVisible] = createSignal(!merged.lazy);\n let imgEl: HTMLImageElement | undefined;\n\n onMount(() => {\n if (!local.lazy || visible() || !imgEl) return;\n if (typeof IntersectionObserver === \"undefined\") {\n setVisible(true);\n return;\n }\n const io = new IntersectionObserver((entries) => {\n if (entries.some((entry) => entry.isIntersecting)) {\n setVisible(true);\n io.disconnect();\n }\n });\n io.observe(imgEl);\n onCleanup(() => io.disconnect());\n });\n\n const onError = (event: Event): void => {\n setFailed(true);\n local.onError?.(event);\n };\n\n const showFallback = (): boolean => failed() || !local.src;\n const resolvedSrc = (): string | undefined => (visible() ? local.src : undefined);\n // Read the fallback once, and only while it is drawn: markup passed as a prop\n // is created anew on every read, and during hydration a copy the server never\n // rendered has no DOM node.\n const fallback = children(() => (showFallback() ? local.fallback : undefined));\n const style = (): JSX.CSSProperties | undefined =>\n local.aspectRatio != null ? { \"aspect-ratio\": String(local.aspectRatio) } : undefined;\n\n return (\n <span class={cn(\"smwb-lazy-image\", local.class, { \"smwb-lazy-image--empty\": showFallback() })} style={style()}>\n <Show when={fallback()}>\n <span class=\"smwb-lazy-image__fallback\">{fallback()}</span>\n </Show>\n <Show when={!showFallback()}>\n <img\n {...rest}\n ref={mergeRefs(local.ref, (el) => (imgEl = el as HTMLImageElement))}\n class=\"smwb-lazy-image__img\"\n src={resolvedSrc()}\n alt={local.alt ?? \"\"}\n loading={local.lazy ? \"lazy\" : undefined}\n decoding=\"async\"\n onError={onError}\n />\n </Show>\n </span>\n );\n}\n\nexport default LazyImage;\n"],"mappings":"AAAA,SAAmB,MAAM,UAAU,cAAc,YAAY,WAAW,SAAS,kBAAkB;AACnG,OAAO,QAAQ;AACf,SAAS,iBAA2B;AAuB7B,SAAS,UAAU,OAAoC;AAC5D,QAAM,SAAS,WAAW,EAAE,MAAM,KAAK,GAAG,KAAK;AAC/C,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,CAAC,QAAQ,SAAS,IAAI,aAAa,KAAK;AAE9C,QAAM,CAAC,SAAS,UAAU,IAAI,aAAa,CAAC,OAAO,IAAI;AACvD,MAAI;AAEJ,UAAQ,MAAM;AACZ,QAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,CAAC,MAAO;AACxC,QAAI,OAAO,yBAAyB,aAAa;AAC/C,iBAAW,IAAI;AACf;AAAA,IACF;AACA,UAAM,KAAK,IAAI,qBAAqB,CAAC,YAAY;AAC/C,UAAI,QAAQ,KAAK,CAAC,UAAU,MAAM,cAAc,GAAG;AACjD,mBAAW,IAAI;AACf,WAAG,WAAW;AAAA,MAChB;AAAA,IACF,CAAC;AACD,OAAG,QAAQ,KAAK;AAChB,cAAU,MAAM,GAAG,WAAW,CAAC;AAAA,EACjC,CAAC;AAED,QAAM,UAAU,CAAC,UAAuB;AACtC,cAAU,IAAI;AACd,UAAM,UAAU,KAAK;AAAA,EACvB;AAEA,QAAM,eAAe,MAAe,OAAO,KAAK,CAAC,MAAM;AACvD,QAAM,cAAc,MAA2B,QAAQ,IAAI,MAAM,MAAM;AAIvE,QAAM,WAAW,SAAS,MAAO,aAAa,IAAI,MAAM,WAAW,MAAU;AAC7E,QAAM,QAAQ,MACZ,MAAM,eAAe,OAAO,EAAE,gBAAgB,OAAO,MAAM,WAAW,EAAE,IAAI;AAE9E,SACE,CAAC,KAAK,OAAO,GAAG,mBAAmB,MAAM,OAAO,EAAE,0BAA0B,aAAa,EAAE,CAAC,GAAG,OAAO,MAAM,GAAG;AAAA,MAC7G,CAAC,KAAK,MAAM,SAAS,GAAG;AAAA,QACtB,CAAC,KAAK,MAAM,6BAA6B,SAAS,EAAE,EAAnD,KAA0D;AAAA,MAC7D,EAFC,KAEM;AAAA,MACP,CAAC,KAAK,MAAM,CAAC,aAAa,GAAG;AAAA,QAC3B,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,KAAK,CAAC,OAAQ,QAAQ,EAAuB;AAAA,IAClE,MAAM;AAAA,IACN,KAAK,YAAY;AAAA,IACjB,KAAK,MAAM,OAAO;AAAA,IAClB,SAAS,MAAM,OAAO,SAAS;AAAA,IAC/B,SAAS;AAAA,IACT,SAAS;AAAA,EACX,EAAE;AAAA,MACJ,EAXC,KAWM;AAAA,IACT,EAhBC;AAkBL;AAEA,IAAO,oBAAQ;","names":[],"file":"lazyImage.jsx"}
@@ -1,8 +1,9 @@
1
- import { Show, splitProps } from "solid-js";
1
+ import { Show, children, splitProps } from "solid-js";
2
2
  import cn from "clsx";
3
3
  import { mergeRefs } from "../../../primitives/mergeRefs";
4
4
  function List(props) {
5
5
  const [local, rest] = splitProps(props, ["class", "dense", "subheader", "children", "ref"]);
6
+ const subheader = children(() => local.subheader);
6
7
  return <ul
7
8
  {...rest}
8
9
  ref={mergeRefs(local.ref)}
@@ -10,8 +11,8 @@ function List(props) {
10
11
  role="list"
11
12
  class={cn("smwb-list", { "smwb-list_dense": local.dense }, local.class)}
12
13
  >
13
- <Show when={local.subheader}>
14
- <li class="smwb-list__subheader">{local.subheader}</li>
14
+ <Show when={subheader()}>
15
+ <li class="smwb-list__subheader">{subheader()}</li>
15
16
  </Show>
16
17
  {local.children}
17
18
  </ul>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/dataDisplay/list/list.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface ListProps extends JSX.HTMLAttributes<HTMLUListElement> {\n /** Compact vertical rhythm. */\n dense?: boolean;\n /** Section subheader rendered before the items. */\n subheader?: JSX.Element;\n ref?: Ref<HTMLUListElement>;\n}\n\nexport function List(props: ParentProps<ListProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\"class\", \"dense\", \"subheader\", \"children\", \"ref\"]);\n return (\n <ul\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"list\"\n role=\"list\"\n class={cn(\"smwb-list\", { \"smwb-list_dense\": local.dense }, local.class)}\n >\n <Show when={local.subheader}>\n <li class=\"smwb-list__subheader\">{local.subheader}</li>\n </Show>\n {local.children}\n </ul>\n );\n}\n\nexport default List;\n"],"mappings":"AAAA,SAAqC,MAAM,kBAAkB;AAC7D,OAAO,QAAQ;AACf,SAAS,iBAA2B;AAU7B,SAAS,KAAK,OAA4C;AAC/D,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,SAAS,SAAS,aAAa,YAAY,KAAK,CAAC;AAC1F,SACE,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,OAAO,GAAG,aAAa,EAAE,mBAAmB,MAAM,MAAM,GAAG,MAAM,KAAK;AAAA,GACvE;AAAA,MACC,CAAC,KAAK,MAAM,MAAM,WAAW;AAAA,QAC3B,CAAC,GAAG,MAAM,wBAAwB,MAAM,UAAU,EAAjD,GAAsD;AAAA,MACzD,EAFC,KAEM;AAAA,OACN,MAAM,SAAS;AAAA,IAClB,EAXC;AAaL;AAEA,IAAO,eAAQ;","names":[],"file":"list.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/dataDisplay/list/list.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, children, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface ListProps extends JSX.HTMLAttributes<HTMLUListElement> {\n /** Compact vertical rhythm. */\n dense?: boolean;\n /** Section subheader rendered before the items. */\n subheader?: JSX.Element;\n ref?: Ref<HTMLUListElement>;\n}\n\nexport function List(props: ParentProps<ListProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\"class\", \"dense\", \"subheader\", \"children\", \"ref\"]);\n // Read the subheader once: markup passed as a prop is created anew on every\n // read, and during hydration a copy the server never rendered has no DOM node.\n const subheader = children(() => local.subheader);\n return (\n <ul\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"list\"\n role=\"list\"\n class={cn(\"smwb-list\", { \"smwb-list_dense\": local.dense }, local.class)}\n >\n <Show when={subheader()}>\n <li class=\"smwb-list__subheader\">{subheader()}</li>\n </Show>\n {local.children}\n </ul>\n );\n}\n\nexport default List;\n"],"mappings":"AAAA,SAAqC,MAAM,UAAU,kBAAkB;AACvE,OAAO,QAAQ;AACf,SAAS,iBAA2B;AAU7B,SAAS,KAAK,OAA4C;AAC/D,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,SAAS,SAAS,aAAa,YAAY,KAAK,CAAC;AAG1F,QAAM,YAAY,SAAS,MAAM,MAAM,SAAS;AAChD,SACE,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,OAAO,GAAG,aAAa,EAAE,mBAAmB,MAAM,MAAM,GAAG,MAAM,KAAK;AAAA,GACvE;AAAA,MACC,CAAC,KAAK,MAAM,UAAU,GAAG;AAAA,QACvB,CAAC,GAAG,MAAM,wBAAwB,UAAU,EAAE,EAA7C,GAAkD;AAAA,MACrD,EAFC,KAEM;AAAA,OACN,MAAM,SAAS;AAAA,IAClB,EAXC;AAaL;AAEA,IAAO,eAAQ;","names":[],"file":"list.jsx"}
@@ -0,0 +1,8 @@
1
+ import { Meter, meterColor, DEFAULT_METER_THRESHOLDS, default as default2 } from "./meter";
2
+ export {
3
+ DEFAULT_METER_THRESHOLDS,
4
+ Meter,
5
+ default2 as default,
6
+ meterColor
7
+ };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/dataDisplay/meter/index.ts"],
4
+ "sourcesContent": ["export { Meter, meterColor, DEFAULT_METER_THRESHOLDS, default } from \"./meter\";\nexport type { MeterProps, MeterColor, MeterThreshold } from \"./meter\";\n"],
5
+ "mappings": "AAAA,SAAS,OAAO,YAAY,0BAA0B,WAAAA,gBAAe;",
6
+ "names": ["default"]
7
+ }
@@ -0,0 +1,80 @@
1
+ import { Show, children, mergeProps, splitProps } from "solid-js";
2
+ import cn from "clsx";
3
+ import { mergeRefs } from "../../../primitives/mergeRefs";
4
+ const DEFAULT_METER_THRESHOLDS = [
5
+ { from: 0, color: "info" },
6
+ { from: 1, color: "success" }
7
+ ];
8
+ function meterColor(share, thresholds) {
9
+ let color = "neutral";
10
+ let from = -Infinity;
11
+ for (const threshold of thresholds) {
12
+ if (share >= threshold.from && threshold.from >= from) {
13
+ color = threshold.color;
14
+ from = threshold.from;
15
+ }
16
+ }
17
+ return color;
18
+ }
19
+ function Meter(props) {
20
+ const merged = mergeProps({ ofLabel: "of", thresholds: DEFAULT_METER_THRESHOLDS }, props);
21
+ const [local, rest] = splitProps(merged, [
22
+ "class",
23
+ "value",
24
+ "max",
25
+ "label",
26
+ "text",
27
+ "ofLabel",
28
+ "thresholds",
29
+ "color",
30
+ "hideText",
31
+ "ref"
32
+ ]);
33
+ const share = () => local.max > 0 ? Math.min(1, Math.max(0, local.value / local.max)) : 0;
34
+ const color = () => local.color ?? meterColor(share(), local.thresholds);
35
+ const custom = children(() => local.text);
36
+ const text = () => {
37
+ const resolved = custom();
38
+ return typeof resolved === "function" ? resolved(local.value, local.max) : resolved;
39
+ };
40
+ return <div
41
+ {...rest}
42
+ ref={mergeRefs(local.ref)}
43
+ role="meter"
44
+ aria-label={local.label}
45
+ aria-valuenow={local.value}
46
+ aria-valuemin={0}
47
+ aria-valuemax={local.max}
48
+ aria-valuetext={`${local.value} ${local.ofLabel} ${local.max}`}
49
+ data-testid="meter"
50
+ class={cn("smwb-meter", `smwb-meter_color-${color()}`, { "smwb-meter_bar-only": local.hideText }, local.class)}
51
+ >
52
+ <span class="smwb-meter__track" aria-hidden="true">
53
+ <span class="smwb-meter__fill" style={{ width: `${share() * 100}%` }} />
54
+ </span>
55
+ <Show when={!local.hideText}>
56
+ <span class="smwb-meter__text" aria-hidden="true">
57
+ <Show
58
+ when={custom() !== void 0}
59
+ fallback={<>
60
+ <b class="smwb-meter__value">{local.value}</b>
61
+ <span class="smwb-meter__of">
62
+ {" "}
63
+ {local.ofLabel} {local.max}
64
+ </span>
65
+ </>}
66
+ >
67
+ {text()}
68
+ </Show>
69
+ </span>
70
+ </Show>
71
+ </div>;
72
+ }
73
+ var meter_default = Meter;
74
+ export {
75
+ DEFAULT_METER_THRESHOLDS,
76
+ Meter,
77
+ meter_default as default,
78
+ meterColor
79
+ };
80
+ //# sourceMappingURL=meter.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/components/dataDisplay/meter/meter.tsx"],"sourcesContent":["import { type JSX, Show, children, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport type MeterColor = \"neutral\" | \"primary\" | \"info\" | \"success\" | \"warning\" | \"error\";\n\n/** From this share of `max` (0–1) on, the meter takes `color`. */\nexport interface MeterThreshold {\n from: number;\n color: MeterColor;\n}\n\n/** Info while under way, success when complete. */\nexport const DEFAULT_METER_THRESHOLDS: readonly MeterThreshold[] = [\n { from: 0, color: \"info\" },\n { from: 1, color: \"success\" },\n];\n\nexport interface MeterProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"role\"> {\n /** How many are done (X of Y). */\n value: number;\n /** How many there are in all (X of Y). */\n max: number;\n /** What is measured — the accessible name, e.g. \"Requirements accepted\". */\n label: string;\n /** Visible text instead of \"X of Y\": markup, or a function of (value, max). */\n text?: JSX.Element | ((value: number, max: number) => JSX.Element);\n /** The word between the figures in the default text and in aria-valuetext. */\n ofLabel?: string;\n /** Colour by share of `max`: the last threshold the share reaches wins. */\n thresholds?: readonly MeterThreshold[];\n /** A fixed colour, instead of the thresholds. */\n color?: MeterColor;\n /** The bar only; the text stays available to assistive technology. */\n hideText?: boolean;\n ref?: Ref<HTMLDivElement>;\n}\n\n/** The colour for a share of the whole: the last threshold (by `from`) the share reaches. */\nexport function meterColor(share: number, thresholds: readonly MeterThreshold[]): MeterColor {\n let color: MeterColor = \"neutral\";\n let from = -Infinity;\n for (const threshold of thresholds) {\n if (share >= threshold.from && threshold.from >= from) {\n color = threshold.color;\n from = threshold.from;\n }\n }\n return color;\n}\n\n/** A share of a whole, \"X of Y\": a bar and the figures beside it, coloured by thresholds. */\nexport function Meter(props: MeterProps): JSX.Element {\n const merged = mergeProps({ ofLabel: \"of\", thresholds: DEFAULT_METER_THRESHOLDS }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"value\",\n \"max\",\n \"label\",\n \"text\",\n \"ofLabel\",\n \"thresholds\",\n \"color\",\n \"hideText\",\n \"ref\",\n ]);\n\n const share = (): number => (local.max > 0 ? Math.min(1, Math.max(0, local.value / local.max)) : 0);\n const color = (): MeterColor => local.color ?? meterColor(share(), local.thresholds);\n // Read the text once: markup passed as a prop is created anew on every read,\n // and during hydration a copy made only to test it has no server DOM node. A\n // function of (value, max) is kept as it is and called where the text renders.\n const custom = children(() => local.text as JSX.Element);\n const text = (): JSX.Element => {\n const resolved = custom() as JSX.Element | ((value: number, max: number) => JSX.Element);\n return typeof resolved === \"function\" ? resolved(local.value, local.max) : resolved;\n };\n\n return (\n <div\n {...rest}\n ref={mergeRefs(local.ref)}\n role=\"meter\"\n aria-label={local.label}\n aria-valuenow={local.value}\n aria-valuemin={0}\n aria-valuemax={local.max}\n aria-valuetext={`${local.value} ${local.ofLabel} ${local.max}`}\n data-testid=\"meter\"\n class={cn(\"smwb-meter\", `smwb-meter_color-${color()}`, { \"smwb-meter_bar-only\": local.hideText }, local.class)}\n >\n <span class=\"smwb-meter__track\" aria-hidden=\"true\">\n <span class=\"smwb-meter__fill\" style={{ width: `${share() * 100}%` }} />\n </span>\n <Show when={!local.hideText}>\n <span class=\"smwb-meter__text\" aria-hidden=\"true\">\n <Show\n when={custom() !== undefined}\n fallback={\n <>\n <b class=\"smwb-meter__value\">{local.value}</b>\n <span class=\"smwb-meter__of\">\n {\" \"}\n {local.ofLabel} {local.max}\n </span>\n </>\n }\n >\n {text()}\n </Show>\n </span>\n </Show>\n </div>\n );\n}\n\nexport default Meter;\n"],"mappings":"AAAA,SAAmB,MAAM,UAAU,YAAY,kBAAkB;AACjE,OAAO,QAAQ;AACf,SAAS,iBAA2B;AAW7B,MAAM,2BAAsD;AAAA,EACjE,EAAE,MAAM,GAAG,OAAO,OAAO;AAAA,EACzB,EAAE,MAAM,GAAG,OAAO,UAAU;AAC9B;AAuBO,SAAS,WAAW,OAAe,YAAmD;AAC3F,MAAI,QAAoB;AACxB,MAAI,OAAO;AACX,aAAW,aAAa,YAAY;AAClC,QAAI,SAAS,UAAU,QAAQ,UAAU,QAAQ,MAAM;AACrD,cAAQ,UAAU;AAClB,aAAO,UAAU;AAAA,IACnB;AAAA,EACF;AACA,SAAO;AACT;AAGO,SAAS,MAAM,OAAgC;AACpD,QAAM,SAAS,WAAW,EAAE,SAAS,MAAM,YAAY,yBAAyB,GAAG,KAAK;AACxF,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,QAAQ,MAAe,MAAM,MAAM,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,MAAM,QAAQ,MAAM,GAAG,CAAC,IAAI;AACjG,QAAM,QAAQ,MAAkB,MAAM,SAAS,WAAW,MAAM,GAAG,MAAM,UAAU;AAInF,QAAM,SAAS,SAAS,MAAM,MAAM,IAAmB;AACvD,QAAM,OAAO,MAAmB;AAC9B,UAAM,WAAW,OAAO;AACxB,WAAO,OAAO,aAAa,aAAa,SAAS,MAAM,OAAO,MAAM,GAAG,IAAI;AAAA,EAC7E;AAEA,SACE,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,KAAK;AAAA,IACL,YAAY,MAAM;AAAA,IAClB,eAAe,MAAM;AAAA,IACrB,eAAe;AAAA,IACf,eAAe,MAAM;AAAA,IACrB,gBAAgB,GAAG,MAAM,KAAK,IAAI,MAAM,OAAO,IAAI,MAAM,GAAG;AAAA,IAC5D,YAAY;AAAA,IACZ,OAAO,GAAG,cAAc,oBAAoB,MAAM,CAAC,IAAI,EAAE,uBAAuB,MAAM,SAAS,GAAG,MAAM,KAAK;AAAA,GAC9G;AAAA,MACC,CAAC,KAAK,MAAM,oBAAoB,YAAY,OAAO;AAAA,QACjD,CAAC,KAAK,MAAM,mBAAmB,OAAO,EAAE,OAAO,GAAG,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE;AAAA,MAC1E,EAFC,KAEM;AAAA,MACP,CAAC,KAAK,MAAM,CAAC,MAAM,UAAU;AAAA,QAC3B,CAAC,KAAK,MAAM,mBAAmB,YAAY,OAAO;AAAA,UAChD,CAAC;AAAA,IACC,MAAM,OAAO,MAAM;AAAA,IACnB,UACE,EAAE;AAAA,gBACA,CAAC,EAAE,MAAM,qBAAqB,MAAM,MAAM,EAAzC,EAA6C;AAAA,gBAC9C,CAAC,KAAK,MAAM,iBAAiB;AAAA,mBAC1B,IAAI;AAAA,mBACJ,MAAM,QAAQ,EAAE,MAAM,IAAI;AAAA,gBAC7B,EAHC,KAGM;AAAA,cACT;AAAA,GAEH;AAAA,aACE,KAAK,EAAE;AAAA,UACV,EAbC,KAaM;AAAA,QACT,EAfC,KAeM;AAAA,MACT,EAjBC,KAiBM;AAAA,IACT,EAjCC;AAmCL;AAEA,IAAO,gBAAQ;","names":[],"file":"meter.jsx"}
@@ -0,0 +1,8 @@
1
+ import { PersonChip, initialsOf, avatarColor, default as default2 } from "./personChip";
2
+ export {
3
+ PersonChip,
4
+ avatarColor,
5
+ default2 as default,
6
+ initialsOf
7
+ };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/dataDisplay/personChip/index.ts"],
4
+ "sourcesContent": ["export { PersonChip, initialsOf, avatarColor, default } from \"./personChip\";\nexport type { PersonChipProps } from \"./personChip\";\n"],
5
+ "mappings": "AAAA,SAAS,YAAY,YAAY,aAAa,WAAAA,gBAAe;",
6
+ "names": ["default"]
7
+ }
@@ -0,0 +1,71 @@
1
+ import { Show, children, mergeProps, splitProps } from "solid-js";
2
+ import { Dynamic } from "solid-js/web";
3
+ import cn from "clsx";
4
+ import { Avatar } from "../avatar";
5
+ import { mergeRefs } from "../../../primitives/mergeRefs";
6
+ function initialsOf(name) {
7
+ const words = name.trim().split(/\s+/).filter(Boolean);
8
+ const first = (word) => word ? Array.from(word)[0] ?? "" : "";
9
+ return (first(words[0]) + (words.length > 1 ? first(words[words.length - 1]) : "")).toUpperCase();
10
+ }
11
+ function avatarColor(seed) {
12
+ let hash = 0;
13
+ for (const char of seed) hash = hash * 31 + (char.codePointAt(0) ?? 0) >>> 0;
14
+ return `hsl(${hash % 360} 42% 42%)`;
15
+ }
16
+ function PersonText(props) {
17
+ const meta = children(() => props.meta);
18
+ return <span class="smwb-person-chip__text">
19
+ <span class="smwb-person-chip__name">{props.name}</span>
20
+ <Show when={meta()}>
21
+ <span class="smwb-person-chip__meta">{meta()}</span>
22
+ </Show>
23
+ </span>;
24
+ }
25
+ function PersonChip(props) {
26
+ const merged = mergeProps({ size: 24 }, props);
27
+ const [local, rest] = splitProps(merged, [
28
+ "class",
29
+ "name",
30
+ "src",
31
+ "href",
32
+ "compact",
33
+ "size",
34
+ "colorSeed",
35
+ "color",
36
+ "meta",
37
+ "ref"
38
+ ]);
39
+ return <Dynamic
40
+ component={local.href ? "a" : "span"}
41
+ {...rest}
42
+ ref={mergeRefs(local.ref)}
43
+ href={local.href}
44
+ title={local.compact ? local.name : void 0}
45
+ role={local.compact && !local.href ? "img" : void 0}
46
+ aria-label={local.compact ? local.name : void 0}
47
+ data-testid="person-chip"
48
+ class={cn("smwb-person-chip", { "smwb-person-chip_link": !!local.href, "smwb-person-chip_compact": local.compact }, local.class)}
49
+ >
50
+ <Avatar
51
+ class="smwb-person-chip__avatar"
52
+ size={local.size}
53
+ src={local.src}
54
+ color={local.color ?? avatarColor(local.colorSeed ?? local.name)}
55
+ aria-hidden="true"
56
+ >
57
+ {initialsOf(local.name)}
58
+ </Avatar>
59
+ <Show when={!local.compact}>
60
+ <PersonText name={local.name} meta={local.meta} />
61
+ </Show>
62
+ </Dynamic>;
63
+ }
64
+ var personChip_default = PersonChip;
65
+ export {
66
+ PersonChip,
67
+ avatarColor,
68
+ personChip_default as default,
69
+ initialsOf
70
+ };
71
+ //# sourceMappingURL=personChip.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/components/dataDisplay/personChip/personChip.tsx"],"sourcesContent":["import { type JSX, Show, children, mergeProps, splitProps } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { Avatar, type AvatarSize } from \"../avatar\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\n/** Up to two initials from a name: \"Anna Petrova\" → \"AP\", \"anna\" → \"A\". */\nexport function initialsOf(name: string): string {\n const words = name.trim().split(/\\s+/).filter(Boolean);\n const first = (word: string | undefined): string => (word ? (Array.from(word)[0] ?? \"\") : \"\");\n return (first(words[0]) + (words.length > 1 ? first(words[words.length - 1]) : \"\")).toUpperCase();\n}\n\n/**\n * A steady background colour for a person's avatar, derived from a seed (an id\n * or the name): the same person always gets the same colour, on the server too.\n */\nexport function avatarColor(seed: string): string {\n let hash = 0;\n for (const char of seed) hash = (hash * 31 + (char.codePointAt(0) ?? 0)) >>> 0;\n return `hsl(${hash % 360} 42% 42%)`;\n}\n\nexport interface PersonChipProps extends Omit<JSX.HTMLAttributes<HTMLElement>, \"title\"> {\n /** The person's name: shown beside the avatar, and the source of its initials. */\n name: string;\n /** Avatar image; initials on a colour without it or when it fails. */\n src?: string;\n /** Link to the person's card. */\n href?: string;\n /** The avatar only; the name becomes its tooltip and accessible name. */\n compact?: boolean;\n /** Avatar size: a preset or pixels. 24px by default. */\n size?: AvatarSize | number;\n /** Seed for the avatar colour (an id); the name by default. */\n colorSeed?: string;\n /** A fixed avatar colour instead of the derived one. */\n color?: string;\n /** A second line under the name: a role, a date. */\n meta?: JSX.Element;\n ref?: Ref<HTMLElement>;\n}\n\n/** The name and the meta line. Meta is read here, where it renders: markup\n * created and not rendered (a compact chip) would have no server node. */\nfunction PersonText(props: { name: string; meta: JSX.Element }): JSX.Element {\n const meta = children(() => props.meta);\n return (\n <span class=\"smwb-person-chip__text\">\n <span class=\"smwb-person-chip__name\">{props.name}</span>\n <Show when={meta()}>\n <span class=\"smwb-person-chip__meta\">{meta()}</span>\n </Show>\n </span>\n );\n}\n\n/** A person: avatar and name, a link to their card when `href` is set. */\nexport function PersonChip(props: PersonChipProps): JSX.Element {\n const merged = mergeProps({ size: 24 as AvatarSize | number }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"name\",\n \"src\",\n \"href\",\n \"compact\",\n \"size\",\n \"colorSeed\",\n \"color\",\n \"meta\",\n \"ref\",\n ]);\n\n return (\n <Dynamic\n component={local.href ? \"a\" : \"span\"}\n {...rest}\n ref={mergeRefs(local.ref)}\n href={local.href}\n title={local.compact ? local.name : undefined}\n role={local.compact && !local.href ? \"img\" : undefined}\n aria-label={local.compact ? local.name : undefined}\n data-testid=\"person-chip\"\n class={cn(\"smwb-person-chip\", { \"smwb-person-chip_link\": !!local.href, \"smwb-person-chip_compact\": local.compact }, local.class)}\n >\n <Avatar\n class=\"smwb-person-chip__avatar\"\n size={local.size}\n src={local.src}\n color={local.color ?? avatarColor(local.colorSeed ?? local.name)}\n aria-hidden=\"true\"\n >\n {initialsOf(local.name)}\n </Avatar>\n <Show when={!local.compact}>\n <PersonText name={local.name} meta={local.meta} />\n </Show>\n </Dynamic>\n );\n}\n\nexport default PersonChip;\n"],"mappings":"AAAA,SAAmB,MAAM,UAAU,YAAY,kBAAkB;AACjE,SAAS,eAAe;AACxB,OAAO,QAAQ;AACf,SAAS,cAA+B;AACxC,SAAS,iBAA2B;AAG7B,SAAS,WAAW,MAAsB;AAC/C,QAAM,QAAQ,KAAK,KAAK,EAAE,MAAM,KAAK,EAAE,OAAO,OAAO;AACrD,QAAM,QAAQ,CAAC,SAAsC,OAAQ,MAAM,KAAK,IAAI,EAAE,CAAC,KAAK,KAAM;AAC1F,UAAQ,MAAM,MAAM,CAAC,CAAC,KAAK,MAAM,SAAS,IAAI,MAAM,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,KAAK,YAAY;AAClG;AAMO,SAAS,YAAY,MAAsB;AAChD,MAAI,OAAO;AACX,aAAW,QAAQ,KAAM,QAAQ,OAAO,MAAM,KAAK,YAAY,CAAC,KAAK,OAAQ;AAC7E,SAAO,OAAO,OAAO,GAAG;AAC1B;AAwBA,SAAS,WAAW,OAAyD;AAC3E,QAAM,OAAO,SAAS,MAAM,MAAM,IAAI;AACtC,SACE,CAAC,KAAK,MAAM,yBAAyB;AAAA,MACnC,CAAC,KAAK,MAAM,0BAA0B,MAAM,KAAK,EAAhD,KAAuD;AAAA,MACxD,CAAC,KAAK,MAAM,KAAK,GAAG;AAAA,QAClB,CAAC,KAAK,MAAM,0BAA0B,KAAK,EAAE,EAA5C,KAAmD;AAAA,MACtD,EAFC,KAEM;AAAA,IACT,EALC;AAOL;AAGO,SAAS,WAAW,OAAqC;AAC9D,QAAM,SAAS,WAAW,EAAE,MAAM,GAA0B,GAAG,KAAK;AACpE,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,SACE,CAAC;AAAA,IACC,WAAW,MAAM,OAAO,MAAM;AAAA,QAC1B;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,MAAM,MAAM;AAAA,IACZ,OAAO,MAAM,UAAU,MAAM,OAAO;AAAA,IACpC,MAAM,MAAM,WAAW,CAAC,MAAM,OAAO,QAAQ;AAAA,IAC7C,YAAY,MAAM,UAAU,MAAM,OAAO;AAAA,IACzC,YAAY;AAAA,IACZ,OAAO,GAAG,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,MAAM,MAAM,4BAA4B,MAAM,QAAQ,GAAG,MAAM,KAAK;AAAA,GAChI;AAAA,MACC,CAAC;AAAA,IACC,MAAM;AAAA,IACN,MAAM,MAAM;AAAA,IACZ,KAAK,MAAM;AAAA,IACX,OAAO,MAAM,SAAS,YAAY,MAAM,aAAa,MAAM,IAAI;AAAA,IAC/D,YAAY;AAAA,GACb;AAAA,SACE,WAAW,MAAM,IAAI,EAAE;AAAA,MAC1B,EARC,OAQQ;AAAA,MACT,CAAC,KAAK,MAAM,CAAC,MAAM,SAAS;AAAA,QAC1B,CAAC,WAAW,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE;AAAA,MACpD,EAFC,KAEM;AAAA,IACT,EAvBC;AAyBL;AAEA,IAAO,qBAAQ;","names":[],"file":"personChip.jsx"}
@@ -0,0 +1,7 @@
1
+ import { Stat, StatGroup, default as default2 } from "./stat";
2
+ export {
3
+ Stat,
4
+ StatGroup,
5
+ default2 as default
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/dataDisplay/stat/index.ts"],
4
+ "sourcesContent": ["export { Stat, StatGroup, default } from \"./stat\";\nexport type { StatProps, StatGroupProps, StatTone } from \"./stat\";\n"],
5
+ "mappings": "AAAA,SAAS,MAAM,WAAW,WAAAA,gBAAe;",
6
+ "names": ["default"]
7
+ }
@@ -0,0 +1,72 @@
1
+ import { Show, children, mergeProps, splitProps } from "solid-js";
2
+ import { Dynamic } from "solid-js/web";
3
+ import cn from "clsx";
4
+ import { Icon } from "../../base/icon";
5
+ import { mergeRefs } from "../../../primitives/mergeRefs";
6
+ function Stat(props) {
7
+ const merged = mergeProps({ tone: "neutral", variant: "tile" }, props);
8
+ const [local, rest] = splitProps(merged, [
9
+ "class",
10
+ "label",
11
+ "value",
12
+ "hint",
13
+ "icon",
14
+ "tone",
15
+ "variant",
16
+ "href",
17
+ "children",
18
+ "ref"
19
+ ]);
20
+ const label = children(() => local.label);
21
+ const value = children(() => local.value);
22
+ const hint = children(() => local.hint);
23
+ const icon = children(() => local.icon);
24
+ const extra = children(() => local.children);
25
+ return <Dynamic
26
+ component={local.href ? "a" : "div"}
27
+ {...rest}
28
+ ref={mergeRefs(local.ref)}
29
+ href={local.href}
30
+ data-testid="stat"
31
+ class={cn(
32
+ "smwb-stat",
33
+ `smwb-stat_${local.variant}`,
34
+ `smwb-stat_tone-${local.tone}`,
35
+ { "smwb-stat_link": !!local.href, "smwb-stat_with-icon": !!icon() },
36
+ local.class
37
+ )}
38
+ >
39
+ <Show when={icon()}>
40
+ {(resolved) => <span class="smwb-stat__icon" aria-hidden="true">
41
+ {typeof resolved() === "string" ? <Icon name={resolved()} size={20} /> : resolved()}
42
+ </span>}
43
+ </Show>
44
+ <span class="smwb-stat__label">{label()}</span>
45
+ <span class="smwb-stat__value">{value()}</span>
46
+ <Show when={hint()}>
47
+ <span class="smwb-stat__hint">{hint()}</span>
48
+ </Show>
49
+ <Show when={extra()}>
50
+ <div class="smwb-stat__extra">{extra()}</div>
51
+ </Show>
52
+ </Dynamic>;
53
+ }
54
+ function StatGroup(props) {
55
+ const [local, rest] = splitProps(props, ["class", "style", "minItemWidth", "children", "ref"]);
56
+ const style = () => {
57
+ if (local.minItemWidth === void 0) return local.style;
58
+ const width = typeof local.minItemWidth === "number" ? `${local.minItemWidth}px` : local.minItemWidth;
59
+ if (typeof local.style === "string") return `${local.style};--smwb-stat-min:${width}`;
60
+ return { ...local.style, "--smwb-stat-min": width };
61
+ };
62
+ return <div {...rest} ref={mergeRefs(local.ref)} class={cn("smwb-stat-group", local.class)} style={style()}>
63
+ {local.children}
64
+ </div>;
65
+ }
66
+ var stat_default = Stat;
67
+ export {
68
+ Stat,
69
+ StatGroup,
70
+ stat_default as default
71
+ };
72
+ //# sourceMappingURL=stat.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/components/dataDisplay/stat/stat.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, children, mergeProps, splitProps } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport type StatTone = \"neutral\" | \"info\" | \"success\" | \"warning\" | \"error\";\n\nexport interface StatProps extends JSX.HTMLAttributes<HTMLElement> {\n /** What the figure counts. */\n label: JSX.Element;\n /** The figure — a number, or a short value such as \"3 / 14\". */\n value: JSX.Element;\n /** A line under the value: a comparison, a period, a caveat. */\n hint?: JSX.Element;\n /** An icon beside the figure: a Material Symbols name or an element. */\n icon?: string | JSX.Element;\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 ref?: Ref<HTMLElement>;\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 function Stat(props: ParentProps<StatProps>): JSX.Element {\n const merged = mergeProps({ tone: \"neutral\" as StatTone, variant: \"tile\" as const }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"label\",\n \"value\",\n \"hint\",\n \"icon\",\n \"tone\",\n \"variant\",\n \"href\",\n \"children\",\n \"ref\",\n ]);\n\n // Read each slot once: markup passed as a prop is created anew on every read,\n // and during hydration the copy made for a <Show> test has no server DOM node.\n const label = children(() => local.label);\n const value = children(() => local.value);\n const hint = children(() => local.hint);\n const icon = children(() => local.icon);\n const extra = children(() => local.children);\n\n return (\n <Dynamic\n component={local.href ? \"a\" : \"div\"}\n {...rest}\n ref={mergeRefs(local.ref)}\n href={local.href}\n data-testid=\"stat\"\n class={cn(\n \"smwb-stat\",\n `smwb-stat_${local.variant}`,\n `smwb-stat_tone-${local.tone}`,\n { \"smwb-stat_link\": !!local.href, \"smwb-stat_with-icon\": !!icon() },\n local.class\n )}\n >\n <Show when={icon()}>\n {(resolved) => (\n <span class=\"smwb-stat__icon\" aria-hidden=\"true\">\n {typeof resolved() === \"string\" ? <Icon name={resolved() as string} size={20} /> : resolved()}\n </span>\n )}\n </Show>\n <span class=\"smwb-stat__label\">{label()}</span>\n <span class=\"smwb-stat__value\">{value()}</span>\n <Show when={hint()}>\n <span class=\"smwb-stat__hint\">{hint()}</span>\n </Show>\n <Show when={extra()}>\n <div class=\"smwb-stat__extra\">{extra()}</div>\n </Show>\n </Dynamic>\n );\n}\n\nexport interface StatGroupProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /** Narrowest a stat may get before the row wraps; a CSS length or px. 9rem by default. */\n minItemWidth?: number | string;\n ref?: Ref<HTMLDivElement>;\n}\n\n/** A responsive row of stats: as many columns as fit, each at least `minItemWidth` wide. */\nexport function StatGroup(props: ParentProps<StatGroupProps>): JSX.Element {\n const [local, rest] = splitProps(props, [\"class\", \"style\", \"minItemWidth\", \"children\", \"ref\"]);\n const style = (): JSX.CSSProperties | string | undefined => {\n if (local.minItemWidth === undefined) return local.style;\n const width = typeof local.minItemWidth === \"number\" ? `${local.minItemWidth}px` : local.minItemWidth;\n if (typeof local.style === \"string\") return `${local.style};--smwb-stat-min:${width}`;\n return { ...local.style, \"--smwb-stat-min\": width };\n };\n return (\n <div {...rest} ref={mergeRefs(local.ref)} class={cn(\"smwb-stat-group\", local.class)} style={style()}>\n {local.children}\n </div>\n );\n}\n\nexport default Stat;\n"],"mappings":"AAAA,SAAqC,MAAM,UAAU,YAAY,kBAAkB;AACnF,SAAS,eAAe;AACxB,OAAO,QAAQ;AACf,SAAS,YAAY;AACrB,SAAS,iBAA2B;AA0B7B,SAAS,KAAK,OAA4C;AAC/D,QAAM,SAAS,WAAW,EAAE,MAAM,WAAuB,SAAS,OAAgB,GAAG,KAAK;AAC1F,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAID,QAAM,QAAQ,SAAS,MAAM,MAAM,KAAK;AACxC,QAAM,QAAQ,SAAS,MAAM,MAAM,KAAK;AACxC,QAAM,OAAO,SAAS,MAAM,MAAM,IAAI;AACtC,QAAM,OAAO,SAAS,MAAM,MAAM,IAAI;AACtC,QAAM,QAAQ,SAAS,MAAM,MAAM,QAAQ;AAE3C,SACE,CAAC;AAAA,IACC,WAAW,MAAM,OAAO,MAAM;AAAA,QAC1B;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,MAAM,MAAM;AAAA,IACZ,YAAY;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA,aAAa,MAAM,OAAO;AAAA,MAC1B,kBAAkB,MAAM,IAAI;AAAA,MAC5B,EAAE,kBAAkB,CAAC,CAAC,MAAM,MAAM,uBAAuB,CAAC,CAAC,KAAK,EAAE;AAAA,MAClE,MAAM;AAAA,IACR;AAAA,GACD;AAAA,MACC,CAAC,KAAK,MAAM,KAAK,GAAG;AAAA,SACjB,CAAC,aACA,CAAC,KAAK,MAAM,kBAAkB,YAAY,OAAO;AAAA,aAC9C,OAAO,SAAS,MAAM,WAAW,CAAC,KAAK,MAAM,SAAS,GAAa,MAAM,IAAI,KAAK,SAAS,EAAE;AAAA,UAChG,EAFC,MAGD;AAAA,MACJ,EANC,KAMM;AAAA,MACP,CAAC,KAAK,MAAM,oBAAoB,MAAM,EAAE,EAAvC,KAA8C;AAAA,MAC/C,CAAC,KAAK,MAAM,oBAAoB,MAAM,EAAE,EAAvC,KAA8C;AAAA,MAC/C,CAAC,KAAK,MAAM,KAAK,GAAG;AAAA,QAClB,CAAC,KAAK,MAAM,mBAAmB,KAAK,EAAE,EAArC,KAA4C;AAAA,MAC/C,EAFC,KAEM;AAAA,MACP,CAAC,KAAK,MAAM,MAAM,GAAG;AAAA,QACnB,CAAC,IAAI,MAAM,oBAAoB,MAAM,EAAE,EAAtC,IAA4C;AAAA,MAC/C,EAFC,KAEM;AAAA,IACT,EA7BC;AA+BL;AASO,SAAS,UAAU,OAAiD;AACzE,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,SAAS,SAAS,gBAAgB,YAAY,KAAK,CAAC;AAC7F,QAAM,QAAQ,MAA8C;AAC1D,QAAI,MAAM,iBAAiB,OAAW,QAAO,MAAM;AACnD,UAAM,QAAQ,OAAO,MAAM,iBAAiB,WAAW,GAAG,MAAM,YAAY,OAAO,MAAM;AACzF,QAAI,OAAO,MAAM,UAAU,SAAU,QAAO,GAAG,MAAM,KAAK,oBAAoB,KAAK;AACnF,WAAO,EAAE,GAAG,MAAM,OAAO,mBAAmB,MAAM;AAAA,EACpD;AACA,SACE,CAAC,QAAQ,MAAM,KAAK,UAAU,MAAM,GAAG,GAAG,OAAO,GAAG,mBAAmB,MAAM,KAAK,GAAG,OAAO,MAAM,GAAG;AAAA,OAClG,MAAM,SAAS;AAAA,IAClB,EAFC;AAIL;AAEA,IAAO,eAAQ;","names":[],"file":"stat.jsx"}