@smwb/ui-solid 0.11.2 → 0.12.1

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 (740) 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/primitives/createCssTransition.js +31 -28
  334. package/dist/headless/primitives/createCssTransition.js.map +1 -1
  335. package/dist/headless/source/components/dataDisplay/accordion/accordion.jsx +60 -18
  336. package/dist/headless/source/components/dataDisplay/accordion/accordion.jsx.map +1 -1
  337. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx +28 -3
  338. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  339. package/dist/headless/source/components/dataDisplay/badge/badge.jsx +8 -4
  340. package/dist/headless/source/components/dataDisplay/badge/badge.jsx.map +1 -1
  341. package/dist/headless/source/components/dataDisplay/card/card.jsx +4 -3
  342. package/dist/headless/source/components/dataDisplay/card/card.jsx.map +1 -1
  343. package/dist/headless/source/components/dataDisplay/chart/chart.jsx +168 -0
  344. package/dist/headless/source/components/dataDisplay/chart/chart.jsx.map +1 -0
  345. package/dist/headless/source/components/dataDisplay/chart/chartTheme.js +78 -0
  346. package/dist/headless/source/components/dataDisplay/chart/chartTheme.js.map +7 -0
  347. package/dist/headless/source/components/dataDisplay/chart/index.js +9 -0
  348. package/dist/headless/source/components/dataDisplay/chart/index.js.map +7 -0
  349. package/dist/headless/source/components/dataDisplay/chat/chat.jsx +4 -3
  350. package/dist/headless/source/components/dataDisplay/chat/chat.jsx.map +1 -1
  351. package/dist/headless/source/components/dataDisplay/chat/chatHeader.jsx +7 -5
  352. package/dist/headless/source/components/dataDisplay/chat/chatHeader.jsx.map +1 -1
  353. package/dist/headless/source/components/dataDisplay/chat/chatMessageBubble.jsx +4 -3
  354. package/dist/headless/source/components/dataDisplay/chat/chatMessageBubble.jsx.map +1 -1
  355. package/dist/headless/source/components/dataDisplay/chat/chatShell.jsx +30 -26
  356. package/dist/headless/source/components/dataDisplay/chat/chatShell.jsx.map +1 -1
  357. package/dist/headless/source/components/dataDisplay/chip/chip.jsx +11 -6
  358. package/dist/headless/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  359. package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx +42 -0
  360. package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -0
  361. package/dist/headless/source/components/dataDisplay/descriptionList/index.js +7 -0
  362. package/dist/headless/source/components/dataDisplay/descriptionList/index.js.map +7 -0
  363. package/dist/headless/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx +10 -4
  364. package/dist/headless/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx.map +1 -1
  365. package/dist/headless/source/components/dataDisplay/kanban/index.js +8 -0
  366. package/dist/headless/source/components/dataDisplay/kanban/index.js.map +7 -0
  367. package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx +99 -0
  368. package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx.map +1 -0
  369. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx +4 -3
  370. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
  371. package/dist/headless/source/components/dataDisplay/list/list.jsx +4 -3
  372. package/dist/headless/source/components/dataDisplay/list/list.jsx.map +1 -1
  373. package/dist/headless/source/components/dataDisplay/meter/index.js +8 -0
  374. package/dist/headless/source/components/dataDisplay/meter/index.js.map +7 -0
  375. package/dist/headless/source/components/dataDisplay/meter/meter.jsx +80 -0
  376. package/dist/headless/source/components/dataDisplay/meter/meter.jsx.map +1 -0
  377. package/dist/headless/source/components/dataDisplay/personChip/index.js +8 -0
  378. package/dist/headless/source/components/dataDisplay/personChip/index.js.map +7 -0
  379. package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx +71 -0
  380. package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx.map +1 -0
  381. package/dist/headless/source/components/dataDisplay/stat/index.js +7 -0
  382. package/dist/headless/source/components/dataDisplay/stat/index.js.map +7 -0
  383. package/dist/headless/source/components/dataDisplay/stat/stat.jsx +72 -0
  384. package/dist/headless/source/components/dataDisplay/stat/stat.jsx.map +1 -0
  385. package/dist/headless/source/components/dataDisplay/table/table.jsx +11 -4
  386. package/dist/headless/source/components/dataDisplay/table/table.jsx.map +1 -1
  387. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx +8 -2
  388. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
  389. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx +37 -3
  390. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
  391. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx +10 -7
  392. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
  393. package/dist/headless/source/components/dataDisplay/timeline/index.js +8 -0
  394. package/dist/headless/source/components/dataDisplay/timeline/index.js.map +7 -0
  395. package/dist/headless/source/components/dataDisplay/timeline/timeline.jsx +64 -0
  396. package/dist/headless/source/components/dataDisplay/timeline/timeline.jsx.map +1 -0
  397. package/dist/headless/source/components/dataDisplay/typography/typography.jsx +17 -3
  398. package/dist/headless/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  399. package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx +47 -0
  400. package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx.map +1 -0
  401. package/dist/headless/source/components/feedBack/emptyState/index.js +6 -0
  402. package/dist/headless/source/components/feedBack/emptyState/index.js.map +7 -0
  403. package/dist/headless/source/components/feedBack/progressIndicator/progressIndicator.jsx +52 -10
  404. package/dist/headless/source/components/feedBack/progressIndicator/progressIndicator.jsx.map +1 -1
  405. package/dist/headless/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx +3 -2
  406. package/dist/headless/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx.map +1 -1
  407. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx +4 -2
  408. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  409. package/dist/headless/source/components/inputs/button/button.jsx +7 -3
  410. package/dist/headless/source/components/inputs/button/button.jsx.map +1 -1
  411. package/dist/headless/source/components/inputs/datePicker/dataPickerInput.jsx +4 -3
  412. package/dist/headless/source/components/inputs/datePicker/dataPickerInput.jsx.map +1 -1
  413. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +4 -6
  414. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  415. package/dist/headless/source/components/inputs/rating/rating.jsx +4 -3
  416. package/dist/headless/source/components/inputs/rating/rating.jsx.map +1 -1
  417. package/dist/headless/source/components/inputs/selectField/selectField.jsx +8 -2
  418. package/dist/headless/source/components/inputs/selectField/selectField.jsx.map +1 -1
  419. package/dist/headless/source/components/inputs/textField/textField.jsx +8 -6
  420. package/dist/headless/source/components/inputs/textField/textField.jsx.map +1 -1
  421. package/dist/headless/source/components/inputs/textField/textFieldAdornment.jsx +4 -3
  422. package/dist/headless/source/components/inputs/textField/textFieldAdornment.jsx.map +1 -1
  423. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx +9 -6
  424. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
  425. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx +4 -3
  426. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
  427. package/dist/headless/source/components/layout/appLayout/appLayout.jsx +3 -2
  428. package/dist/headless/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  429. package/dist/headless/source/components/layout/divider/divider.jsx +10 -6
  430. package/dist/headless/source/components/layout/divider/divider.jsx.map +1 -1
  431. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx +14 -10
  432. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  433. package/dist/headless/source/components/layout/sectionHeader/index.js +6 -0
  434. package/dist/headless/source/components/layout/sectionHeader/index.js.map +7 -0
  435. package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx +80 -0
  436. package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -0
  437. package/dist/headless/source/components/layout/stack/stack.jsx +3 -2
  438. package/dist/headless/source/components/layout/stack/stack.jsx.map +1 -1
  439. package/dist/headless/source/components/navigation/appBar/appBar.jsx +7 -5
  440. package/dist/headless/source/components/navigation/appBar/appBar.jsx.map +1 -1
  441. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx +4 -3
  442. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  443. package/dist/headless/source/components/navigation/stepper/stepper.jsx +14 -7
  444. package/dist/headless/source/components/navigation/stepper/stepper.jsx.map +1 -1
  445. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx +7 -5
  446. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  447. package/dist/headless/source/components/navigation/tabs/tabs.jsx +84 -4
  448. package/dist/headless/source/components/navigation/tabs/tabs.jsx.map +1 -1
  449. package/dist/headless/source/connects/rt/table/table.jsx +9 -1
  450. package/dist/headless/source/connects/rt/table/table.jsx.map +1 -1
  451. package/dist/headless/source/icons/catalog.js +78 -1
  452. package/dist/headless/source/icons/catalog.js.map +2 -2
  453. package/dist/headless/source/icons/svg/accountTree.js +11 -0
  454. package/dist/headless/source/icons/svg/accountTree.js.map +7 -0
  455. package/dist/headless/source/icons/svg/callSplit.js +11 -0
  456. package/dist/headless/source/icons/svg/callSplit.js.map +7 -0
  457. package/dist/headless/source/icons/svg/deviceHub.js +10 -0
  458. package/dist/headless/source/icons/svg/deviceHub.js.map +7 -0
  459. package/dist/headless/source/icons/svg/editNote.js +11 -0
  460. package/dist/headless/source/icons/svg/editNote.js.map +7 -0
  461. package/dist/headless/source/icons/svg/filterList.js +11 -0
  462. package/dist/headless/source/icons/svg/filterList.js.map +7 -0
  463. package/dist/headless/source/icons/svg/forkRight.js +10 -0
  464. package/dist/headless/source/icons/svg/forkRight.js.map +7 -0
  465. package/dist/headless/source/icons/svg/groups.js +11 -0
  466. package/dist/headless/source/icons/svg/groups.js.map +7 -0
  467. package/dist/headless/source/icons/svg/hub.js +10 -0
  468. package/dist/headless/source/icons/svg/hub.js.map +7 -0
  469. package/dist/headless/source/icons/svg/index.js +22 -0
  470. package/dist/headless/source/icons/svg/index.js.map +2 -2
  471. package/dist/headless/source/icons/svg/lan.js +11 -0
  472. package/dist/headless/source/icons/svg/lan.js.map +7 -0
  473. package/dist/headless/source/icons/svg/personOff.js +11 -0
  474. package/dist/headless/source/icons/svg/personOff.js.map +7 -0
  475. package/dist/headless/source/icons/svg/schema.js +11 -0
  476. package/dist/headless/source/icons/svg/schema.js.map +7 -0
  477. package/dist/headless/source/index.js +33 -1
  478. package/dist/headless/source/index.js.map +2 -2
  479. package/dist/headless/source/primitives/createCssTransition.js +10 -1
  480. package/dist/headless/source/primitives/createCssTransition.js.map +2 -2
  481. package/dist/icons/catalog.d.ts +1 -1
  482. package/dist/icons/catalog.js +78 -1
  483. package/dist/icons/catalog.js.map +1 -1
  484. package/dist/icons/index.js +596 -574
  485. package/dist/icons/index.js.map +1 -1
  486. package/dist/icons/svg/accountTree.d.ts +4 -0
  487. package/dist/icons/svg/accountTree.js +9 -0
  488. package/dist/icons/svg/accountTree.js.map +1 -0
  489. package/dist/icons/svg/callSplit.d.ts +4 -0
  490. package/dist/icons/svg/callSplit.js +9 -0
  491. package/dist/icons/svg/callSplit.js.map +1 -0
  492. package/dist/icons/svg/deviceHub.d.ts +4 -0
  493. package/dist/icons/svg/deviceHub.js +8 -0
  494. package/dist/icons/svg/deviceHub.js.map +1 -0
  495. package/dist/icons/svg/editNote.d.ts +4 -0
  496. package/dist/icons/svg/editNote.js +9 -0
  497. package/dist/icons/svg/editNote.js.map +1 -0
  498. package/dist/icons/svg/filterList.d.ts +4 -0
  499. package/dist/icons/svg/filterList.js +9 -0
  500. package/dist/icons/svg/filterList.js.map +1 -0
  501. package/dist/icons/svg/forkRight.d.ts +4 -0
  502. package/dist/icons/svg/forkRight.js +8 -0
  503. package/dist/icons/svg/forkRight.js.map +1 -0
  504. package/dist/icons/svg/groups.d.ts +4 -0
  505. package/dist/icons/svg/groups.js +9 -0
  506. package/dist/icons/svg/groups.js.map +1 -0
  507. package/dist/icons/svg/hub.d.ts +4 -0
  508. package/dist/icons/svg/hub.js +8 -0
  509. package/dist/icons/svg/hub.js.map +1 -0
  510. package/dist/icons/svg/index.d.ts +11 -0
  511. package/dist/icons/svg/index.js +598 -576
  512. package/dist/icons/svg/index.js.map +1 -1
  513. package/dist/icons/svg/lan.d.ts +4 -0
  514. package/dist/icons/svg/lan.js +9 -0
  515. package/dist/icons/svg/lan.js.map +1 -0
  516. package/dist/icons/svg/personOff.d.ts +4 -0
  517. package/dist/icons/svg/personOff.js +9 -0
  518. package/dist/icons/svg/personOff.js.map +1 -0
  519. package/dist/icons/svg/schema.d.ts +4 -0
  520. package/dist/icons/svg/schema.js +9 -0
  521. package/dist/icons/svg/schema.js.map +1 -0
  522. package/dist/index.d.ts +21 -5
  523. package/dist/index.js +281 -255
  524. package/dist/index.js.map +1 -1
  525. package/dist/primitives/createCssTransition.d.ts +6 -0
  526. package/dist/primitives/createCssTransition.js +31 -28
  527. package/dist/primitives/createCssTransition.js.map +1 -1
  528. package/dist/source/components/base/icon/icon.jsx +1 -0
  529. package/dist/source/components/base/icon/icon.jsx.map +1 -1
  530. package/dist/source/components/base/ripple/ripple.jsx +1 -0
  531. package/dist/source/components/base/ripple/ripple.jsx.map +1 -1
  532. package/dist/source/components/dataDisplay/accordion/accordion.jsx +61 -18
  533. package/dist/source/components/dataDisplay/accordion/accordion.jsx.map +1 -1
  534. package/dist/source/components/dataDisplay/assetGrid/assetGrid.jsx +1 -0
  535. package/dist/source/components/dataDisplay/assetGrid/assetGrid.jsx.map +1 -1
  536. package/dist/source/components/dataDisplay/avatar/avatar.jsx +29 -3
  537. package/dist/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  538. package/dist/source/components/dataDisplay/badge/badge.jsx +9 -4
  539. package/dist/source/components/dataDisplay/badge/badge.jsx.map +1 -1
  540. package/dist/source/components/dataDisplay/card/card.jsx +5 -3
  541. package/dist/source/components/dataDisplay/card/card.jsx.map +1 -1
  542. package/dist/source/components/dataDisplay/carousel/carousel.jsx +1 -0
  543. package/dist/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
  544. package/dist/source/components/dataDisplay/chart/chart.jsx +170 -0
  545. package/dist/source/components/dataDisplay/chart/chart.jsx.map +1 -0
  546. package/dist/source/components/dataDisplay/chart/chartTheme.js +78 -0
  547. package/dist/source/components/dataDisplay/chart/chartTheme.js.map +7 -0
  548. package/dist/source/components/dataDisplay/chart/index.js +9 -0
  549. package/dist/source/components/dataDisplay/chart/index.js.map +7 -0
  550. package/dist/source/components/dataDisplay/chat/chat.jsx +5 -3
  551. package/dist/source/components/dataDisplay/chat/chat.jsx.map +1 -1
  552. package/dist/source/components/dataDisplay/chat/chatHeader.jsx +7 -5
  553. package/dist/source/components/dataDisplay/chat/chatHeader.jsx.map +1 -1
  554. package/dist/source/components/dataDisplay/chat/chatMessageBubble.jsx +4 -3
  555. package/dist/source/components/dataDisplay/chat/chatMessageBubble.jsx.map +1 -1
  556. package/dist/source/components/dataDisplay/chat/chatShell.jsx +30 -26
  557. package/dist/source/components/dataDisplay/chat/chatShell.jsx.map +1 -1
  558. package/dist/source/components/dataDisplay/chip/chip.jsx +12 -6
  559. package/dist/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  560. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx +1 -0
  561. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
  562. package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx +44 -0
  563. package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -0
  564. package/dist/source/components/dataDisplay/descriptionList/index.js +7 -0
  565. package/dist/source/components/dataDisplay/descriptionList/index.js.map +7 -0
  566. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +1 -0
  567. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
  568. package/dist/source/components/dataDisplay/imagesList/imagesList.jsx +1 -0
  569. package/dist/source/components/dataDisplay/imagesList/imagesList.jsx.map +1 -1
  570. package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx +11 -4
  571. package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx.map +1 -1
  572. package/dist/source/components/dataDisplay/kanban/index.js +8 -0
  573. package/dist/source/components/dataDisplay/kanban/index.js.map +7 -0
  574. package/dist/source/components/dataDisplay/kanban/kanban.jsx +101 -0
  575. package/dist/source/components/dataDisplay/kanban/kanban.jsx.map +1 -0
  576. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx +5 -3
  577. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
  578. package/dist/source/components/dataDisplay/list/list.jsx +5 -3
  579. package/dist/source/components/dataDisplay/list/list.jsx.map +1 -1
  580. package/dist/source/components/dataDisplay/meter/index.js +8 -0
  581. package/dist/source/components/dataDisplay/meter/index.js.map +7 -0
  582. package/dist/source/components/dataDisplay/meter/meter.jsx +82 -0
  583. package/dist/source/components/dataDisplay/meter/meter.jsx.map +1 -0
  584. package/dist/source/components/dataDisplay/personChip/index.js +8 -0
  585. package/dist/source/components/dataDisplay/personChip/index.js.map +7 -0
  586. package/dist/source/components/dataDisplay/personChip/personChip.jsx +73 -0
  587. package/dist/source/components/dataDisplay/personChip/personChip.jsx.map +1 -0
  588. package/dist/source/components/dataDisplay/stat/index.js +7 -0
  589. package/dist/source/components/dataDisplay/stat/index.js.map +7 -0
  590. package/dist/source/components/dataDisplay/stat/stat.jsx +74 -0
  591. package/dist/source/components/dataDisplay/stat/stat.jsx.map +1 -0
  592. package/dist/source/components/dataDisplay/table/table.jsx +12 -4
  593. package/dist/source/components/dataDisplay/table/table.jsx.map +1 -1
  594. package/dist/source/components/dataDisplay/table/tableCell.jsx +8 -2
  595. package/dist/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
  596. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx +37 -3
  597. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
  598. package/dist/source/components/dataDisplay/table/tablePagination/tablePagination.jsx +1 -0
  599. package/dist/source/components/dataDisplay/table/tablePagination/tablePagination.jsx.map +1 -1
  600. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx +11 -7
  601. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
  602. package/dist/source/components/dataDisplay/timeline/index.js +8 -0
  603. package/dist/source/components/dataDisplay/timeline/index.js.map +7 -0
  604. package/dist/source/components/dataDisplay/timeline/timeline.jsx +66 -0
  605. package/dist/source/components/dataDisplay/timeline/timeline.jsx.map +1 -0
  606. package/dist/source/components/dataDisplay/treeView/treeView.jsx +1 -0
  607. package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  608. package/dist/source/components/dataDisplay/typography/typography.jsx +18 -3
  609. package/dist/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  610. package/dist/source/components/feedBack/confirmDialog/confirmDialog.jsx +1 -0
  611. package/dist/source/components/feedBack/confirmDialog/confirmDialog.jsx.map +1 -1
  612. package/dist/source/components/feedBack/emptyState/emptyState.jsx +49 -0
  613. package/dist/source/components/feedBack/emptyState/emptyState.jsx.map +1 -0
  614. package/dist/source/components/feedBack/emptyState/index.js +6 -0
  615. package/dist/source/components/feedBack/emptyState/index.js.map +7 -0
  616. package/dist/source/components/feedBack/message/message.jsx +1 -0
  617. package/dist/source/components/feedBack/message/message.jsx.map +1 -1
  618. package/dist/source/components/feedBack/modal/modal.jsx +1 -0
  619. package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
  620. package/dist/source/components/feedBack/progressIndicator/progressIndicator.jsx +53 -10
  621. package/dist/source/components/feedBack/progressIndicator/progressIndicator.jsx.map +1 -1
  622. package/dist/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx +4 -2
  623. package/dist/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx.map +1 -1
  624. package/dist/source/components/feedBack/skeleton/skeleton.jsx +1 -0
  625. package/dist/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
  626. package/dist/source/components/feedBack/snackbar/snackbar.jsx +1 -0
  627. package/dist/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
  628. package/dist/source/components/feedBack/tooltip/tooltip.jsx +5 -2
  629. package/dist/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  630. package/dist/source/components/inputs/button/button.jsx +8 -3
  631. package/dist/source/components/inputs/button/button.jsx.map +1 -1
  632. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx +1 -0
  633. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
  634. package/dist/source/components/inputs/checkbox/checkbox.jsx +1 -0
  635. package/dist/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
  636. package/dist/source/components/inputs/datePicker/dataPickerInput.jsx +4 -3
  637. package/dist/source/components/inputs/datePicker/dataPickerInput.jsx.map +1 -1
  638. package/dist/source/components/inputs/datePicker/datePicker.jsx +5 -6
  639. package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  640. package/dist/source/components/inputs/fileDrop/fileDrop.jsx +1 -0
  641. package/dist/source/components/inputs/fileDrop/fileDrop.jsx.map +1 -1
  642. package/dist/source/components/inputs/fileInput/fileInput.jsx +1 -0
  643. package/dist/source/components/inputs/fileInput/fileInput.jsx.map +1 -1
  644. package/dist/source/components/inputs/floatingButton/floatingButton.jsx +1 -0
  645. package/dist/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
  646. package/dist/source/components/inputs/radioButton/radioButton.jsx +1 -0
  647. package/dist/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
  648. package/dist/source/components/inputs/rating/rating.jsx +5 -3
  649. package/dist/source/components/inputs/rating/rating.jsx.map +1 -1
  650. package/dist/source/components/inputs/selectField/selectField.jsx +9 -2
  651. package/dist/source/components/inputs/selectField/selectField.jsx.map +1 -1
  652. package/dist/source/components/inputs/slider/slider.jsx +1 -0
  653. package/dist/source/components/inputs/slider/slider.jsx.map +1 -1
  654. package/dist/source/components/inputs/textField/textField.jsx +9 -6
  655. package/dist/source/components/inputs/textField/textField.jsx.map +1 -1
  656. package/dist/source/components/inputs/textField/textFieldAdornment.jsx +4 -3
  657. package/dist/source/components/inputs/textField/textFieldAdornment.jsx.map +1 -1
  658. package/dist/source/components/inputs/textField/textFieldWrapper.jsx +9 -6
  659. package/dist/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
  660. package/dist/source/components/inputs/timePicker/timePicker.jsx +1 -0
  661. package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  662. package/dist/source/components/inputs/toggle/toggle.jsx +1 -0
  663. package/dist/source/components/inputs/toggle/toggle.jsx.map +1 -1
  664. package/dist/source/components/inputs/valueSlider/valueSlider.jsx +5 -3
  665. package/dist/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
  666. package/dist/source/components/layout/appLayout/appLayout.jsx +4 -2
  667. package/dist/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  668. package/dist/source/components/layout/divider/divider.jsx +11 -6
  669. package/dist/source/components/layout/divider/divider.jsx.map +1 -1
  670. package/dist/source/components/layout/floatingWindow/floatingWindow.jsx +1 -0
  671. package/dist/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
  672. package/dist/source/components/layout/grid/grid.jsx +1 -0
  673. package/dist/source/components/layout/grid/grid.jsx.map +1 -1
  674. package/dist/source/components/layout/page/page.jsx +1 -0
  675. package/dist/source/components/layout/page/page.jsx.map +1 -1
  676. package/dist/source/components/layout/pageHeader/pageHeader.jsx +15 -10
  677. package/dist/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  678. package/dist/source/components/layout/screenDivider/screenDivider.jsx +1 -0
  679. package/dist/source/components/layout/screenDivider/screenDivider.jsx.map +1 -1
  680. package/dist/source/components/layout/sectionHeader/index.js +6 -0
  681. package/dist/source/components/layout/sectionHeader/index.js.map +7 -0
  682. package/dist/source/components/layout/sectionHeader/sectionHeader.jsx +82 -0
  683. package/dist/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -0
  684. package/dist/source/components/layout/sheet/sheet.jsx +1 -0
  685. package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
  686. package/dist/source/components/layout/stack/stack.jsx +4 -2
  687. package/dist/source/components/layout/stack/stack.jsx.map +1 -1
  688. package/dist/source/components/navigation/appBar/appBar.jsx +8 -5
  689. package/dist/source/components/navigation/appBar/appBar.jsx.map +1 -1
  690. package/dist/source/components/navigation/bottomBar/bottomBar.jsx +5 -3
  691. package/dist/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  692. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx +1 -0
  693. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
  694. package/dist/source/components/navigation/menu/menu.jsx +1 -0
  695. package/dist/source/components/navigation/menu/menu.jsx.map +1 -1
  696. package/dist/source/components/navigation/overflowMenu/overflowMenu.jsx +1 -0
  697. package/dist/source/components/navigation/overflowMenu/overflowMenu.jsx.map +1 -1
  698. package/dist/source/components/navigation/pagination/pagination.jsx +1 -0
  699. package/dist/source/components/navigation/pagination/pagination.jsx.map +1 -1
  700. package/dist/source/components/navigation/sidebar/sidebar.jsx +1 -0
  701. package/dist/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
  702. package/dist/source/components/navigation/stepper/stepper.jsx +15 -7
  703. package/dist/source/components/navigation/stepper/stepper.jsx.map +1 -1
  704. package/dist/source/components/navigation/tabs/tab/tab.jsx +8 -5
  705. package/dist/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  706. package/dist/source/components/navigation/tabs/tabs.jsx +85 -4
  707. package/dist/source/components/navigation/tabs/tabs.jsx.map +1 -1
  708. package/dist/source/connects/rt/table/table.jsx +9 -1
  709. package/dist/source/connects/rt/table/table.jsx.map +1 -1
  710. package/dist/source/icons/catalog.js +78 -1
  711. package/dist/source/icons/catalog.js.map +2 -2
  712. package/dist/source/icons/svg/accountTree.js +11 -0
  713. package/dist/source/icons/svg/accountTree.js.map +7 -0
  714. package/dist/source/icons/svg/callSplit.js +11 -0
  715. package/dist/source/icons/svg/callSplit.js.map +7 -0
  716. package/dist/source/icons/svg/deviceHub.js +10 -0
  717. package/dist/source/icons/svg/deviceHub.js.map +7 -0
  718. package/dist/source/icons/svg/editNote.js +11 -0
  719. package/dist/source/icons/svg/editNote.js.map +7 -0
  720. package/dist/source/icons/svg/filterList.js +11 -0
  721. package/dist/source/icons/svg/filterList.js.map +7 -0
  722. package/dist/source/icons/svg/forkRight.js +10 -0
  723. package/dist/source/icons/svg/forkRight.js.map +7 -0
  724. package/dist/source/icons/svg/groups.js +11 -0
  725. package/dist/source/icons/svg/groups.js.map +7 -0
  726. package/dist/source/icons/svg/hub.js +10 -0
  727. package/dist/source/icons/svg/hub.js.map +7 -0
  728. package/dist/source/icons/svg/index.js +22 -0
  729. package/dist/source/icons/svg/index.js.map +2 -2
  730. package/dist/source/icons/svg/lan.js +11 -0
  731. package/dist/source/icons/svg/lan.js.map +7 -0
  732. package/dist/source/icons/svg/personOff.js +11 -0
  733. package/dist/source/icons/svg/personOff.js.map +7 -0
  734. package/dist/source/icons/svg/schema.js +11 -0
  735. package/dist/source/icons/svg/schema.js.map +7 -0
  736. package/dist/source/index.js +33 -1
  737. package/dist/source/index.js.map +2 -2
  738. package/dist/source/primitives/createCssTransition.js +10 -1
  739. package/dist/source/primitives/createCssTransition.js.map +2 -2
  740. package/package.json +79 -8
@@ -1,4 +1,4 @@
1
- import { Show, mergeProps, splitProps } from "solid-js";
1
+ import { Show, children, mergeProps, splitProps } from "solid-js";
2
2
  import cn from "clsx";
3
3
  import { Typography } from "../../dataDisplay/typography";
4
4
  import { mergeRefs } from "../../../primitives/mergeRefs";
@@ -13,33 +13,37 @@ function PageHeader(props) {
13
13
  "class",
14
14
  "ref"
15
15
  ]);
16
+ const title = children(() => local.title);
17
+ const subtitle = children(() => local.subtitle);
18
+ const breadcrumbs = children(() => local.breadcrumbs);
19
+ const actions = children(() => local.actions);
16
20
  return <header
17
21
  {...rest}
18
22
  ref={mergeRefs(local.ref)}
19
23
  data-testid="page-header"
20
24
  class={cn("smwb-page-header", { "smwb-page-header_divider": local.divider }, local.class)}
21
25
  >
22
- <Show when={local.breadcrumbs}>
23
- <div class="smwb-page-header__breadcrumbs">{local.breadcrumbs}</div>
26
+ <Show when={breadcrumbs()}>
27
+ <div class="smwb-page-header__breadcrumbs">{breadcrumbs()}</div>
24
28
  </Show>
25
29
  <div class="smwb-page-header__row">
26
30
  <div class="smwb-page-header__titles">
27
31
  <Show
28
- when={typeof local.title === "string"}
29
- fallback={<div class="smwb-page-header__title">{local.title}</div>}
32
+ when={typeof title() === "string"}
33
+ fallback={<div class="smwb-page-header__title">{title()}</div>}
30
34
  >
31
35
  <Typography variant="h4" component="h1" class="smwb-page-header__title">
32
- {local.title}
36
+ {title()}
33
37
  </Typography>
34
38
  </Show>
35
- <Show when={local.subtitle}>
39
+ <Show when={subtitle()}>
36
40
  <Typography variant="body2" color="textSecondary" class="smwb-page-header__subtitle">
37
- {local.subtitle}
41
+ {subtitle()}
38
42
  </Typography>
39
43
  </Show>
40
44
  </div>
41
- <Show when={local.actions}>
42
- <div class="smwb-page-header__actions">{local.actions}</div>
45
+ <Show when={actions()}>
46
+ <div class="smwb-page-header__actions">{actions()}</div>
43
47
  </Show>
44
48
  </div>
45
49
  </header>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/layout/pageHeader/pageHeader.tsx"],"sourcesContent":["import { type JSX, Show, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Typography } from \"../../dataDisplay/typography\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface PageHeaderProps extends Omit<JSX.HTMLAttributes<HTMLElement>, \"title\"> {\n title: JSX.Element | string;\n subtitle?: JSX.Element | string;\n /** Slot above the title (e.g. <Breadcrumbs />). */\n breadcrumbs?: JSX.Element;\n /** Slot on the trailing side (e.g. action buttons). */\n actions?: JSX.Element;\n /** Render a divider below the header. */\n divider?: boolean;\n ref?: Ref<HTMLElement>;\n}\n\nexport function PageHeader(props: PageHeaderProps): JSX.Element {\n const merged = mergeProps({ divider: false }, props);\n const [local, rest] = splitProps(merged, [\n \"title\",\n \"subtitle\",\n \"breadcrumbs\",\n \"actions\",\n \"divider\",\n \"class\",\n \"ref\",\n ]);\n\n return (\n <header\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"page-header\"\n class={cn(\"smwb-page-header\", { \"smwb-page-header_divider\": local.divider }, local.class)}\n >\n <Show when={local.breadcrumbs}>\n <div class=\"smwb-page-header__breadcrumbs\">{local.breadcrumbs}</div>\n </Show>\n <div class=\"smwb-page-header__row\">\n <div class=\"smwb-page-header__titles\">\n <Show\n when={typeof local.title === \"string\"}\n fallback={<div class=\"smwb-page-header__title\">{local.title}</div>}\n >\n <Typography variant=\"h4\" component=\"h1\" class=\"smwb-page-header__title\">\n {local.title}\n </Typography>\n </Show>\n <Show when={local.subtitle}>\n <Typography variant=\"body2\" color=\"textSecondary\" class=\"smwb-page-header__subtitle\">\n {local.subtitle}\n </Typography>\n </Show>\n </div>\n <Show when={local.actions}>\n <div class=\"smwb-page-header__actions\">{local.actions}</div>\n </Show>\n </div>\n </header>\n );\n}\n\nexport default PageHeader;\n"],"mappings":"AAAA,SAAmB,MAAM,YAAY,kBAAkB;AACvD,OAAO,QAAQ;AACf,SAAS,kBAAkB;AAC3B,SAAS,iBAA2B;AAc7B,SAAS,WAAW,OAAqC;AAC9D,QAAM,SAAS,WAAW,EAAE,SAAS,MAAM,GAAG,KAAK;AACnD,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,SACE,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,YAAY;AAAA,IACZ,OAAO,GAAG,oBAAoB,EAAE,4BAA4B,MAAM,QAAQ,GAAG,MAAM,KAAK;AAAA,GACzF;AAAA,MACC,CAAC,KAAK,MAAM,MAAM,aAAa;AAAA,QAC7B,CAAC,IAAI,MAAM,iCAAiC,MAAM,YAAY,EAA7D,IAAmE;AAAA,MACtE,EAFC,KAEM;AAAA,MACP,CAAC,IAAI,MAAM,wBAAwB;AAAA,QACjC,CAAC,IAAI,MAAM,2BAA2B;AAAA,UACpC,CAAC;AAAA,IACC,MAAM,OAAO,MAAM,UAAU;AAAA,IAC7B,UAAU,CAAC,IAAI,MAAM,2BAA2B,MAAM,MAAM,EAAjD;AAAA,GACZ;AAAA,YACC,CAAC,WAAW,QAAQ,KAAK,UAAU,KAAK,MAAM,0BAA0B;AAAA,eACrE,MAAM,MAAM;AAAA,YACf,EAFC,WAEY;AAAA,UACf,EAPC,KAOM;AAAA,UACP,CAAC,KAAK,MAAM,MAAM,UAAU;AAAA,YAC1B,CAAC,WAAW,QAAQ,QAAQ,MAAM,gBAAgB,MAAM,6BAA6B;AAAA,eAClF,MAAM,SAAS;AAAA,YAClB,EAFC,WAEY;AAAA,UACf,EAJC,KAIM;AAAA,QACT,EAdC,IAcK;AAAA,QACN,CAAC,KAAK,MAAM,MAAM,SAAS;AAAA,UACzB,CAAC,IAAI,MAAM,6BAA6B,MAAM,QAAQ,EAArD,IAA2D;AAAA,QAC9D,EAFC,KAEM;AAAA,MACT,EAnBC,IAmBK;AAAA,IACR,EA7BC;AA+BL;AAEA,IAAO,qBAAQ;","names":[],"file":"pageHeader.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/layout/pageHeader/pageHeader.tsx"],"sourcesContent":["import { type JSX, Show, children, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Typography } from \"../../dataDisplay/typography\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface PageHeaderProps extends Omit<JSX.HTMLAttributes<HTMLElement>, \"title\"> {\n title: JSX.Element | string;\n subtitle?: JSX.Element | string;\n /** Slot above the title (e.g. <Breadcrumbs />). */\n breadcrumbs?: JSX.Element;\n /** Slot on the trailing side (e.g. action buttons). */\n actions?: JSX.Element;\n /** Render a divider below the header. */\n divider?: boolean;\n ref?: Ref<HTMLElement>;\n}\n\nexport function PageHeader(props: PageHeaderProps): JSX.Element {\n const merged = mergeProps({ divider: false }, props);\n const [local, rest] = splitProps(merged, [\n \"title\",\n \"subtitle\",\n \"breadcrumbs\",\n \"actions\",\n \"divider\",\n \"class\",\n \"ref\",\n ]);\n\n // Read each slot once: markup passed as a prop is created anew on every read,\n // and during hydration a copy the server never rendered has no DOM node.\n const title = children(() => local.title);\n const subtitle = children(() => local.subtitle);\n const breadcrumbs = children(() => local.breadcrumbs);\n const actions = children(() => local.actions);\n\n return (\n <header\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"page-header\"\n class={cn(\"smwb-page-header\", { \"smwb-page-header_divider\": local.divider }, local.class)}\n >\n <Show when={breadcrumbs()}>\n <div class=\"smwb-page-header__breadcrumbs\">{breadcrumbs()}</div>\n </Show>\n <div class=\"smwb-page-header__row\">\n <div class=\"smwb-page-header__titles\">\n <Show\n when={typeof title() === \"string\"}\n fallback={<div class=\"smwb-page-header__title\">{title()}</div>}\n >\n <Typography variant=\"h4\" component=\"h1\" class=\"smwb-page-header__title\">\n {title()}\n </Typography>\n </Show>\n <Show when={subtitle()}>\n <Typography variant=\"body2\" color=\"textSecondary\" class=\"smwb-page-header__subtitle\">\n {subtitle()}\n </Typography>\n </Show>\n </div>\n <Show when={actions()}>\n <div class=\"smwb-page-header__actions\">{actions()}</div>\n </Show>\n </div>\n </header>\n );\n}\n\nexport default PageHeader;\n"],"mappings":"AAAA,SAAmB,MAAM,UAAU,YAAY,kBAAkB;AACjE,OAAO,QAAQ;AACf,SAAS,kBAAkB;AAC3B,SAAS,iBAA2B;AAc7B,SAAS,WAAW,OAAqC;AAC9D,QAAM,SAAS,WAAW,EAAE,SAAS,MAAM,GAAG,KAAK;AACnD,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAID,QAAM,QAAQ,SAAS,MAAM,MAAM,KAAK;AACxC,QAAM,WAAW,SAAS,MAAM,MAAM,QAAQ;AAC9C,QAAM,cAAc,SAAS,MAAM,MAAM,WAAW;AACpD,QAAM,UAAU,SAAS,MAAM,MAAM,OAAO;AAE5C,SACE,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,YAAY;AAAA,IACZ,OAAO,GAAG,oBAAoB,EAAE,4BAA4B,MAAM,QAAQ,GAAG,MAAM,KAAK;AAAA,GACzF;AAAA,MACC,CAAC,KAAK,MAAM,YAAY,GAAG;AAAA,QACzB,CAAC,IAAI,MAAM,iCAAiC,YAAY,EAAE,EAAzD,IAA+D;AAAA,MAClE,EAFC,KAEM;AAAA,MACP,CAAC,IAAI,MAAM,wBAAwB;AAAA,QACjC,CAAC,IAAI,MAAM,2BAA2B;AAAA,UACpC,CAAC;AAAA,IACC,MAAM,OAAO,MAAM,MAAM;AAAA,IACzB,UAAU,CAAC,IAAI,MAAM,2BAA2B,MAAM,EAAE,EAA7C;AAAA,GACZ;AAAA,YACC,CAAC,WAAW,QAAQ,KAAK,UAAU,KAAK,MAAM,0BAA0B;AAAA,eACrE,MAAM,EAAE;AAAA,YACX,EAFC,WAEY;AAAA,UACf,EAPC,KAOM;AAAA,UACP,CAAC,KAAK,MAAM,SAAS,GAAG;AAAA,YACtB,CAAC,WAAW,QAAQ,QAAQ,MAAM,gBAAgB,MAAM,6BAA6B;AAAA,eAClF,SAAS,EAAE;AAAA,YACd,EAFC,WAEY;AAAA,UACf,EAJC,KAIM;AAAA,QACT,EAdC,IAcK;AAAA,QACN,CAAC,KAAK,MAAM,QAAQ,GAAG;AAAA,UACrB,CAAC,IAAI,MAAM,6BAA6B,QAAQ,EAAE,EAAjD,IAAuD;AAAA,QAC1D,EAFC,KAEM;AAAA,MACT,EAnBC,IAmBK;AAAA,IACR,EA7BC;AA+BL;AAEA,IAAO,qBAAQ;","names":[],"file":"pageHeader.jsx"}
@@ -0,0 +1,6 @@
1
+ import { SectionHeader, default as default2 } from "./sectionHeader";
2
+ export {
3
+ SectionHeader,
4
+ default2 as default
5
+ };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/layout/sectionHeader/index.ts"],
4
+ "sourcesContent": ["export { SectionHeader, default } from \"./sectionHeader\";\nexport type { SectionHeaderProps } from \"./sectionHeader\";\n"],
5
+ "mappings": "AAAA,SAAS,eAAe,WAAAA,gBAAe;",
6
+ "names": ["default"]
7
+ }
@@ -0,0 +1,80 @@
1
+ import { Show, children, createSignal, 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 { Tooltip } from "../../feedBack/tooltip";
6
+ import { mergeRefs } from "../../../primitives/mergeRefs";
7
+ function HelpHint(props) {
8
+ const [open, setOpen] = createSignal(false);
9
+ return <Tooltip
10
+ class="smwb-section-header__tooltip"
11
+ message={props.text}
12
+ trigger="manual"
13
+ open={open()}
14
+ placement="top"
15
+ offset={{ offsetY: 6 }}
16
+ >
17
+ <span
18
+ class="smwb-section-header__help"
19
+ role="img"
20
+ aria-label={props.label ?? props.text}
21
+ tabindex="0"
22
+ onPointerEnter={() => setOpen(true)}
23
+ onPointerLeave={() => setOpen(false)}
24
+ onFocus={() => setOpen(true)}
25
+ onBlur={() => setOpen(false)}
26
+ onKeyDown={(event) => {
27
+ if (event.key === "Escape") setOpen(false);
28
+ }}
29
+ >
30
+ <Icon name="help" size={16} />
31
+ </span>
32
+ </Tooltip>;
33
+ }
34
+ function SectionHeader(props) {
35
+ const merged = mergeProps({ level: 2 }, props);
36
+ const [local, rest] = splitProps(merged, [
37
+ "class",
38
+ "title",
39
+ "level",
40
+ "count",
41
+ "help",
42
+ "helpLabel",
43
+ "titleId",
44
+ "subtitle",
45
+ "children",
46
+ "ref"
47
+ ]);
48
+ const subtitle = children(() => local.subtitle);
49
+ const actions = children(() => local.children);
50
+ return <header
51
+ data-testid="section-header"
52
+ {...rest}
53
+ ref={mergeRefs(local.ref)}
54
+ class={cn("smwb-section-header", `smwb-section-header_level-${local.level}`, local.class)}
55
+ >
56
+ <div class="smwb-section-header__titles">
57
+ <div class="smwb-section-header__title-line">
58
+ <Dynamic component={`h${local.level}`} id={local.titleId} class="smwb-section-header__title">
59
+ {local.title}
60
+ </Dynamic>
61
+ <Show when={local.count !== void 0 && local.count !== null}>
62
+ <span class="smwb-section-header__count">{local.count}</span>
63
+ </Show>
64
+ <Show when={local.help}>{(text) => <HelpHint text={text()} label={local.helpLabel} />}</Show>
65
+ </div>
66
+ <Show when={subtitle()}>
67
+ <div class="smwb-section-header__subtitle">{subtitle()}</div>
68
+ </Show>
69
+ </div>
70
+ <Show when={actions()}>
71
+ <div class="smwb-section-header__actions">{actions()}</div>
72
+ </Show>
73
+ </header>;
74
+ }
75
+ var sectionHeader_default = SectionHeader;
76
+ export {
77
+ SectionHeader,
78
+ sectionHeader_default as default
79
+ };
80
+ //# sourceMappingURL=sectionHeader.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/components/layout/sectionHeader/sectionHeader.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, children, createSignal, mergeProps, splitProps } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { Tooltip } from \"../../feedBack/tooltip\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface SectionHeaderProps extends Omit<JSX.HTMLAttributes<HTMLElement>, \"title\"> {\n /** The section's name. */\n title: JSX.Element;\n /** Heading level of the title: 2 by default. */\n level?: 2 | 3 | 4 | 5 | 6;\n /** How many items the section holds, beside the title. Nothing is shown for null. */\n count?: number | string | null;\n /**\n * How to read the section, behind a \"?\" icon: shown on hover and on keyboard\n * focus, and the icon's accessible name. Text only — the tooltip renders in\n * the browser.\n */\n help?: string;\n /** The \"?\" icon's accessible name, e.g. \"Explanation: …\"; the help text by default. */\n helpLabel?: string;\n /** Id of the heading, for anchors and aria-labelledby. */\n titleId?: string;\n /** A line under the title. */\n subtitle?: JSX.Element;\n ref?: Ref<HTMLElement>;\n}\n\n/** The \"?\" icon with its tooltip, open on hover and on keyboard focus. */\nfunction HelpHint(props: { text: string; label?: string | undefined }): JSX.Element {\n const [open, setOpen] = createSignal(false);\n return (\n <Tooltip\n class=\"smwb-section-header__tooltip\"\n message={props.text}\n trigger=\"manual\"\n open={open()}\n placement=\"top\"\n offset={{ offsetY: 6 }}\n >\n <span\n class=\"smwb-section-header__help\"\n role=\"img\"\n aria-label={props.label ?? props.text}\n tabindex=\"0\"\n onPointerEnter={() => setOpen(true)}\n onPointerLeave={() => setOpen(false)}\n onFocus={() => setOpen(true)}\n onBlur={() => setOpen(false)}\n onKeyDown={(event) => {\n if (event.key === \"Escape\") setOpen(false);\n }}\n >\n <Icon name=\"help\" size={16} />\n </span>\n </Tooltip>\n );\n}\n\n/**\n * A section's heading row: the title with a count and a help hint, a subtitle\n * under them, and the section's actions (the children) at the end. On a narrow\n * screen the actions wrap under the title.\n */\nexport function SectionHeader(props: ParentProps<SectionHeaderProps>): JSX.Element {\n const merged = mergeProps({ level: 2 as const }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"title\",\n \"level\",\n \"count\",\n \"help\",\n \"helpLabel\",\n \"titleId\",\n \"subtitle\",\n \"children\",\n \"ref\",\n ]);\n\n // Read the slots 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 subtitle = children(() => local.subtitle);\n const actions = children(() => local.children);\n\n return (\n <header\n data-testid=\"section-header\"\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-section-header\", `smwb-section-header_level-${local.level}`, local.class)}\n >\n <div class=\"smwb-section-header__titles\">\n <div class=\"smwb-section-header__title-line\">\n <Dynamic component={`h${local.level}`} id={local.titleId} class=\"smwb-section-header__title\">\n {local.title}\n </Dynamic>\n <Show when={local.count !== undefined && local.count !== null}>\n <span class=\"smwb-section-header__count\">{local.count}</span>\n </Show>\n <Show when={local.help}>{(text) => <HelpHint text={text()} label={local.helpLabel} />}</Show>\n </div>\n <Show when={subtitle()}>\n <div class=\"smwb-section-header__subtitle\">{subtitle()}</div>\n </Show>\n </div>\n <Show when={actions()}>\n <div class=\"smwb-section-header__actions\">{actions()}</div>\n </Show>\n </header>\n );\n}\n\nexport default SectionHeader;\n"],"mappings":"AAAA,SAAqC,MAAM,UAAU,cAAc,YAAY,kBAAkB;AACjG,SAAS,eAAe;AACxB,OAAO,QAAQ;AACf,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,iBAA2B;AAyBpC,SAAS,SAAS,OAAkE;AAClF,QAAM,CAAC,MAAM,OAAO,IAAI,aAAa,KAAK;AAC1C,SACE,CAAC;AAAA,IACC,MAAM;AAAA,IACN,SAAS,MAAM;AAAA,IACf,QAAQ;AAAA,IACR,MAAM,KAAK;AAAA,IACX,UAAU;AAAA,IACV,QAAQ,EAAE,SAAS,EAAE;AAAA,GACtB;AAAA,MACC,CAAC;AAAA,IACC,MAAM;AAAA,IACN,KAAK;AAAA,IACL,YAAY,MAAM,SAAS,MAAM;AAAA,IACjC,SAAS;AAAA,IACT,gBAAgB,MAAM,QAAQ,IAAI;AAAA,IAClC,gBAAgB,MAAM,QAAQ,KAAK;AAAA,IACnC,SAAS,MAAM,QAAQ,IAAI;AAAA,IAC3B,QAAQ,MAAM,QAAQ,KAAK;AAAA,IAC3B,WAAW,CAAC,UAAU;AACpB,UAAI,MAAM,QAAQ,SAAU,SAAQ,KAAK;AAAA,IAC3C;AAAA,GACD;AAAA,QACC,CAAC,KAAK,KAAK,OAAO,MAAM,IAAI,EAAE;AAAA,MAChC,EAdC,KAcM;AAAA,IACT,EAvBC;AAyBL;AAOO,SAAS,cAAc,OAAqD;AACjF,QAAM,SAAS,WAAW,EAAE,OAAO,EAAW,GAAG,KAAK;AACtD,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,WAAW,SAAS,MAAM,MAAM,QAAQ;AAC9C,QAAM,UAAU,SAAS,MAAM,MAAM,QAAQ;AAE7C,SACE,CAAC;AAAA,IACC,YAAY;AAAA,QACR;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,OAAO,GAAG,uBAAuB,6BAA6B,MAAM,KAAK,IAAI,MAAM,KAAK;AAAA,GACzF;AAAA,MACC,CAAC,IAAI,MAAM,8BAA8B;AAAA,QACvC,CAAC,IAAI,MAAM,kCAAkC;AAAA,UAC3C,CAAC,QAAQ,WAAW,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,SAAS,MAAM,6BAA6B;AAAA,aAC1F,MAAM,MAAM;AAAA,UACf,EAFC,QAES;AAAA,UACV,CAAC,KAAK,MAAM,MAAM,UAAU,UAAa,MAAM,UAAU,MAAM;AAAA,YAC7D,CAAC,KAAK,MAAM,8BAA8B,MAAM,MAAM,EAArD,KAA4D;AAAA,UAC/D,EAFC,KAEM;AAAA,UACP,CAAC,KAAK,MAAM,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,MAAM,KAAK,GAAG,OAAO,MAAM,WAAW,GAAG,EAArF,KAA4F;AAAA,QAC/F,EARC,IAQK;AAAA,QACN,CAAC,KAAK,MAAM,SAAS,GAAG;AAAA,UACtB,CAAC,IAAI,MAAM,iCAAiC,SAAS,EAAE,EAAtD,IAA4D;AAAA,QAC/D,EAFC,KAEM;AAAA,MACT,EAbC,IAaK;AAAA,MACN,CAAC,KAAK,MAAM,QAAQ,GAAG;AAAA,QACrB,CAAC,IAAI,MAAM,gCAAgC,QAAQ,EAAE,EAApD,IAA0D;AAAA,MAC7D,EAFC,KAEM;AAAA,IACT,EAvBC;AAyBL;AAEA,IAAO,wBAAQ;","names":[],"file":"sectionHeader.jsx"}
@@ -18,6 +18,7 @@ function Stack(props) {
18
18
  "ref"
19
19
  ]);
20
20
  const resolved = resolveChildren(() => local.children);
21
+ const firstDivider = resolveChildren(() => resolved.toArray().length > 1 ? local.divider : void 0);
21
22
  return <div
22
23
  {...rest}
23
24
  ref={mergeRefs(local.ref)}
@@ -33,11 +34,11 @@ function Stack(props) {
33
34
  ...typeof local.style === "object" && local.style ? local.style : {}
34
35
  }}
35
36
  >
36
- <Show when={local.divider} fallback={local.children}>
37
+ <Show when={firstDivider()} fallback={resolved()}>
37
38
  <For each={resolved.toArray()}>
38
39
  {(child, index) => <>
39
40
  <Show when={index() > 0}>
40
- <div class="smwb-stack__divider">{local.divider}</div>
41
+ <div class="smwb-stack__divider">{index() === 1 ? firstDivider() : local.divider}</div>
41
42
  </Show>
42
43
  {child}
43
44
  </>}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/layout/stack/stack.tsx"],"sourcesContent":["import { type JSX, type ParentProps, For, Show, children as resolveChildren, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport type StackSpacing = number | \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\" | \"xxxl\";\n\nexport interface StackProps extends JSX.HTMLAttributes<HTMLDivElement> {\n direction?: \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\n /** Gap between items: scale keyword, or a number = N × spacing unit. */\n spacing?: StackSpacing;\n align?: \"start\" | \"center\" | \"end\" | \"stretch\" | \"baseline\";\n justify?: \"start\" | \"center\" | \"end\" | \"space-between\" | \"space-around\" | \"space-evenly\";\n wrap?: boolean;\n /** Optional element rendered between each child. */\n divider?: JSX.Element;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst flexAlign = (v?: string): string | undefined => (v === \"start\" || v === \"end\" ? `flex-${v}` : v);\n\nconst resolveGap = (s: StackSpacing): string =>\n typeof s === \"number\" ? `calc(var(--smui-spacing-unit, 4px) * ${s})` : s === \"none\" ? \"0\" : `var(--smui-space-${s})`;\n\nexport function Stack(props: ParentProps<StackProps>): JSX.Element {\n const merged = mergeProps({ direction: \"column\" as const, spacing: \"md\" as StackSpacing }, props);\n const [local, rest] = splitProps(merged, [\n \"direction\",\n \"spacing\",\n \"align\",\n \"justify\",\n \"wrap\",\n \"divider\",\n \"class\",\n \"style\",\n \"children\",\n \"ref\",\n ]);\n\n const resolved = resolveChildren(() => local.children);\n\n return (\n <div\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"stack\"\n class={cn(\"smwb-stack\", local.class)}\n style={{\n display: \"flex\",\n \"flex-direction\": local.direction,\n \"flex-wrap\": local.wrap ? \"wrap\" : undefined,\n \"align-items\": flexAlign(local.align),\n \"justify-content\": flexAlign(local.justify),\n gap: resolveGap(local.spacing),\n ...(typeof local.style === \"object\" && local.style ? local.style : {}),\n }}\n >\n <Show when={local.divider} fallback={local.children}>\n <For each={resolved.toArray()}>\n {(child, index) => (\n <>\n <Show when={index() > 0}>\n <div class=\"smwb-stack__divider\">{local.divider}</div>\n </Show>\n {child}\n </>\n )}\n </For>\n </Show>\n </div>\n );\n}\n\nexport default Stack;\n"],"mappings":"AAAA,SAAqC,KAAK,MAAM,YAAY,iBAAiB,YAAY,kBAAkB;AAC3G,OAAO,QAAQ;AACf,SAAS,iBAA2B;AAgBpC,MAAM,YAAY,CAAC,MAAoC,MAAM,WAAW,MAAM,QAAQ,QAAQ,CAAC,KAAK;AAEpG,MAAM,aAAa,CAAC,MAClB,OAAO,MAAM,WAAW,wCAAwC,CAAC,MAAM,MAAM,SAAS,MAAM,oBAAoB,CAAC;AAE5G,SAAS,MAAM,OAA6C;AACjE,QAAM,SAAS,WAAW,EAAE,WAAW,UAAmB,SAAS,KAAqB,GAAG,KAAK;AAChG,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,WAAW,gBAAgB,MAAM,MAAM,QAAQ;AAErD,SACE,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,YAAY;AAAA,IACZ,OAAO,GAAG,cAAc,MAAM,KAAK;AAAA,IACnC,OAAO;AAAA,MACL,SAAS;AAAA,MACT,kBAAkB,MAAM;AAAA,MACxB,aAAa,MAAM,OAAO,SAAS;AAAA,MACnC,eAAe,UAAU,MAAM,KAAK;AAAA,MACpC,mBAAmB,UAAU,MAAM,OAAO;AAAA,MAC1C,KAAK,WAAW,MAAM,OAAO;AAAA,MAC7B,GAAI,OAAO,MAAM,UAAU,YAAY,MAAM,QAAQ,MAAM,QAAQ,CAAC;AAAA,IACtE;AAAA,GACD;AAAA,MACC,CAAC,KAAK,MAAM,MAAM,SAAS,UAAU,MAAM,UAAU;AAAA,QACnD,CAAC,IAAI,MAAM,SAAS,QAAQ,GAAG;AAAA,WAC5B,CAAC,OAAO,UACP,EAAE;AAAA,cACA,CAAC,KAAK,MAAM,MAAM,IAAI,GAAG;AAAA,gBACvB,CAAC,IAAI,MAAM,uBAAuB,MAAM,QAAQ,EAA/C,IAAqD;AAAA,cACxD,EAFC,KAEM;AAAA,eACN,MAAM;AAAA,YACT,IACA;AAAA,QACJ,EATC,IASK;AAAA,MACR,EAXC,KAWM;AAAA,IACT,EA3BC;AA6BL;AAEA,IAAO,gBAAQ;","names":[],"file":"stack.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/layout/stack/stack.tsx"],"sourcesContent":["import { type JSX, type ParentProps, For, Show, children as resolveChildren, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport type StackSpacing = number | \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\" | \"xxxl\";\n\nexport interface StackProps extends JSX.HTMLAttributes<HTMLDivElement> {\n direction?: \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\n /** Gap between items: scale keyword, or a number = N × spacing unit. */\n spacing?: StackSpacing;\n align?: \"start\" | \"center\" | \"end\" | \"stretch\" | \"baseline\";\n justify?: \"start\" | \"center\" | \"end\" | \"space-between\" | \"space-around\" | \"space-evenly\";\n wrap?: boolean;\n /** Optional element rendered between each child. */\n divider?: JSX.Element;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst flexAlign = (v?: string): string | undefined => (v === \"start\" || v === \"end\" ? `flex-${v}` : v);\n\nconst resolveGap = (s: StackSpacing): string =>\n typeof s === \"number\" ? `calc(var(--smui-spacing-unit, 4px) * ${s})` : s === \"none\" ? \"0\" : `var(--smui-space-${s})`;\n\nexport function Stack(props: ParentProps<StackProps>): JSX.Element {\n const merged = mergeProps({ direction: \"column\" as const, spacing: \"md\" as StackSpacing }, props);\n const [local, rest] = splitProps(merged, [\n \"direction\",\n \"spacing\",\n \"align\",\n \"justify\",\n \"wrap\",\n \"divider\",\n \"class\",\n \"style\",\n \"children\",\n \"ref\",\n ]);\n\n const resolved = resolveChildren(() => local.children);\n // The divider is read where it is drawn: the first gap takes this copy, and\n // each further gap reads its own. Without gaps (a single child) it is not\n // read at all — markup read and not drawn has no server node to hydrate.\n const firstDivider = resolveChildren(() => (resolved.toArray().length > 1 ? local.divider : undefined));\n\n return (\n <div\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"stack\"\n class={cn(\"smwb-stack\", local.class)}\n style={{\n display: \"flex\",\n \"flex-direction\": local.direction,\n \"flex-wrap\": local.wrap ? \"wrap\" : undefined,\n \"align-items\": flexAlign(local.align),\n \"justify-content\": flexAlign(local.justify),\n gap: resolveGap(local.spacing),\n ...(typeof local.style === \"object\" && local.style ? local.style : {}),\n }}\n >\n <Show when={firstDivider()} fallback={resolved()}>\n <For each={resolved.toArray()}>\n {(child, index) => (\n <>\n <Show when={index() > 0}>\n <div class=\"smwb-stack__divider\">{index() === 1 ? firstDivider() : local.divider}</div>\n </Show>\n {child}\n </>\n )}\n </For>\n </Show>\n </div>\n );\n}\n\nexport default Stack;\n"],"mappings":"AAAA,SAAqC,KAAK,MAAM,YAAY,iBAAiB,YAAY,kBAAkB;AAC3G,OAAO,QAAQ;AACf,SAAS,iBAA2B;AAgBpC,MAAM,YAAY,CAAC,MAAoC,MAAM,WAAW,MAAM,QAAQ,QAAQ,CAAC,KAAK;AAEpG,MAAM,aAAa,CAAC,MAClB,OAAO,MAAM,WAAW,wCAAwC,CAAC,MAAM,MAAM,SAAS,MAAM,oBAAoB,CAAC;AAE5G,SAAS,MAAM,OAA6C;AACjE,QAAM,SAAS,WAAW,EAAE,WAAW,UAAmB,SAAS,KAAqB,GAAG,KAAK;AAChG,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,WAAW,gBAAgB,MAAM,MAAM,QAAQ;AAIrD,QAAM,eAAe,gBAAgB,MAAO,SAAS,QAAQ,EAAE,SAAS,IAAI,MAAM,UAAU,MAAU;AAEtG,SACE,CAAC;AAAA,QACK;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,YAAY;AAAA,IACZ,OAAO,GAAG,cAAc,MAAM,KAAK;AAAA,IACnC,OAAO;AAAA,MACL,SAAS;AAAA,MACT,kBAAkB,MAAM;AAAA,MACxB,aAAa,MAAM,OAAO,SAAS;AAAA,MACnC,eAAe,UAAU,MAAM,KAAK;AAAA,MACpC,mBAAmB,UAAU,MAAM,OAAO;AAAA,MAC1C,KAAK,WAAW,MAAM,OAAO;AAAA,MAC7B,GAAI,OAAO,MAAM,UAAU,YAAY,MAAM,QAAQ,MAAM,QAAQ,CAAC;AAAA,IACtE;AAAA,GACD;AAAA,MACC,CAAC,KAAK,MAAM,aAAa,GAAG,UAAU,SAAS,GAAG;AAAA,QAChD,CAAC,IAAI,MAAM,SAAS,QAAQ,GAAG;AAAA,WAC5B,CAAC,OAAO,UACP,EAAE;AAAA,cACA,CAAC,KAAK,MAAM,MAAM,IAAI,GAAG;AAAA,gBACvB,CAAC,IAAI,MAAM,uBAAuB,MAAM,MAAM,IAAI,aAAa,IAAI,MAAM,QAAQ,EAAhF,IAAsF;AAAA,cACzF,EAFC,KAEM;AAAA,eACN,MAAM;AAAA,YACT,IACA;AAAA,QACJ,EATC,IASK;AAAA,MACR,EAXC,KAWM;AAAA,IACT,EA3BC;AA6BL;AAEA,IAAO,gBAAQ;","names":[],"file":"stack.jsx"}
@@ -1,4 +1,4 @@
1
- import { Show, mergeProps, splitProps } from "solid-js";
1
+ import { Show, children, mergeProps, splitProps } from "solid-js";
2
2
  import { Dynamic } from "solid-js/web";
3
3
  import cn from "clsx";
4
4
  import { mergeRefs } from "../../../primitives/mergeRefs";
@@ -26,6 +26,8 @@ function AppBar(props) {
26
26
  "color",
27
27
  "ref"
28
28
  ]);
29
+ const content = children(() => local.children);
30
+ const title = children(() => content() ? void 0 : local.title);
29
31
  return <Dynamic
30
32
  component={local.placement === "top" ? "header" : "footer"}
31
33
  {...rest}
@@ -41,11 +43,11 @@ function AppBar(props) {
41
43
  )}
42
44
  >
43
45
  <Show
44
- when={local.children}
46
+ when={content()}
45
47
  fallback={<div class="smwb-appbar__inner">
46
48
  <div class="smwb-appbar__left">
47
- <Show when={local.title}>
48
- <div class="smwb-appbar__left__title">{local.title}</div>
49
+ <Show when={title()}>
50
+ <div class="smwb-appbar__left__title">{title()}</div>
49
51
  </Show>
50
52
  {local.leftContent}
51
53
  </div>
@@ -53,7 +55,7 @@ function AppBar(props) {
53
55
  <div class="smwb-appbar__right">{local.rightContent}</div>
54
56
  </div>}
55
57
  >
56
- {local.children}
58
+ {content()}
57
59
  </Show>
58
60
  </Dynamic>;
59
61
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/navigation/appBar/appBar.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, mergeProps, splitProps } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport type AppBarColor = \"default\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n\nexport interface AppBarProps extends Omit<JSX.HTMLAttributes<HTMLElement>, \"title\"> {\n dense?: boolean;\n position?: \"relative\" | \"static\" | \"absolute\" | \"sticky\" | \"fixed\";\n placement?: \"top\" | \"bottom\";\n leftContent?: JSX.Element;\n midContent?: JSX.Element;\n rightContent?: JSX.Element;\n title?: JSX.Element | string;\n midContentAlign?: \"middle\" | \"left\" | \"right\";\n /** Semantic background color. */\n color?: AppBarColor;\n ref?: Ref<HTMLElement>;\n}\n\nexport function AppBar(props: ParentProps<AppBarProps>): JSX.Element {\n const merged = mergeProps(\n {\n position: \"static\" as const,\n placement: \"top\" as const,\n midContentAlign: \"middle\" as const,\n color: \"default\" as AppBarColor,\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"children\",\n \"dense\",\n \"position\",\n \"placement\",\n \"leftContent\",\n \"midContent\",\n \"midContentAlign\",\n \"rightContent\",\n \"title\",\n \"color\",\n \"ref\",\n ]);\n\n return (\n <Dynamic\n component={local.placement === \"top\" ? \"header\" : \"footer\"}\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"app-bar\"\n class={cn(\n \"smwb-appbar\",\n local.class,\n `smwb-${local.position}`,\n `smwb-${local.placement}`,\n { \"smwb-dense\": local.dense },\n local.color !== \"default\" && `smwb-appbar_color-${local.color}`\n )}\n >\n <Show\n when={local.children}\n fallback={\n <div class=\"smwb-appbar__inner\">\n <div class=\"smwb-appbar__left\">\n <Show when={local.title}>\n <div class=\"smwb-appbar__left__title\">{local.title}</div>\n </Show>\n {local.leftContent}\n </div>\n <div class={cn(\"smwb-appbar__mid\", `smwb-${local.midContentAlign}`)}>{local.midContent}</div>\n <div class=\"smwb-appbar__right\">{local.rightContent}</div>\n </div>\n }\n >\n {local.children}\n </Show>\n </Dynamic>\n );\n}\n\nexport default AppBar;\n"],"mappings":"AAAA,SAAqC,MAAM,YAAY,kBAAkB;AACzE,SAAS,eAAe;AACxB,OAAO,QAAQ;AACf,SAAS,iBAA2B;AAkB7B,SAAS,OAAO,OAA8C;AACnE,QAAM,SAAS;AAAA,IACb;AAAA,MACE,UAAU;AAAA,MACV,WAAW;AAAA,MACX,iBAAiB;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,IACA;AAAA,EACF;AACA,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,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,SACE,CAAC;AAAA,IACC,WAAW,MAAM,cAAc,QAAQ,WAAW;AAAA,QAC9C;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,YAAY;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA,MAAM;AAAA,MACN,QAAQ,MAAM,QAAQ;AAAA,MACtB,QAAQ,MAAM,SAAS;AAAA,MACvB,EAAE,cAAc,MAAM,MAAM;AAAA,MAC5B,MAAM,UAAU,aAAa,qBAAqB,MAAM,KAAK;AAAA,IAC/D;AAAA,GACD;AAAA,MACC,CAAC;AAAA,IACC,MAAM,MAAM;AAAA,IACZ,UACE,CAAC,IAAI,MAAM,qBAAqB;AAAA,YAC9B,CAAC,IAAI,MAAM,oBAAoB;AAAA,cAC7B,CAAC,KAAK,MAAM,MAAM,OAAO;AAAA,gBACvB,CAAC,IAAI,MAAM,4BAA4B,MAAM,MAAM,EAAlD,IAAwD;AAAA,cAC3D,EAFC,KAEM;AAAA,eACN,MAAM,YAAY;AAAA,YACrB,EALC,IAKK;AAAA,YACN,CAAC,IAAI,OAAO,GAAG,oBAAoB,QAAQ,MAAM,eAAe,EAAE,IAAI,MAAM,WAAW,EAAtF,IAA4F;AAAA,YAC7F,CAAC,IAAI,MAAM,sBAAsB,MAAM,aAAa,EAAnD,IAAyD;AAAA,UAC5D,EATC;AAAA,GAWJ;AAAA,SACE,MAAM,SAAS;AAAA,MAClB,EAhBC,KAgBM;AAAA,IACT,EA/BC;AAiCL;AAEA,IAAO,iBAAQ;","names":[],"file":"appBar.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/navigation/appBar/appBar.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 { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport type AppBarColor = \"default\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n\nexport interface AppBarProps extends Omit<JSX.HTMLAttributes<HTMLElement>, \"title\"> {\n dense?: boolean;\n position?: \"relative\" | \"static\" | \"absolute\" | \"sticky\" | \"fixed\";\n placement?: \"top\" | \"bottom\";\n leftContent?: JSX.Element;\n midContent?: JSX.Element;\n rightContent?: JSX.Element;\n title?: JSX.Element | string;\n midContentAlign?: \"middle\" | \"left\" | \"right\";\n /** Semantic background color. */\n color?: AppBarColor;\n ref?: Ref<HTMLElement>;\n}\n\nexport function AppBar(props: ParentProps<AppBarProps>): JSX.Element {\n const merged = mergeProps(\n {\n position: \"static\" as const,\n placement: \"top\" as const,\n midContentAlign: \"middle\" as const,\n color: \"default\" as AppBarColor,\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"children\",\n \"dense\",\n \"position\",\n \"placement\",\n \"leftContent\",\n \"midContent\",\n \"midContentAlign\",\n \"rightContent\",\n \"title\",\n \"color\",\n \"ref\",\n ]);\n\n // Read each slot once: markup passed as a prop is created anew on every read,\n // and during hydration a copy the server never rendered has no DOM node.\n const content = children(() => local.children);\n // The title is drawn only without children, so it is read only then.\n const title = children(() => (content() ? undefined : local.title));\n\n return (\n <Dynamic\n component={local.placement === \"top\" ? \"header\" : \"footer\"}\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"app-bar\"\n class={cn(\n \"smwb-appbar\",\n local.class,\n `smwb-${local.position}`,\n `smwb-${local.placement}`,\n { \"smwb-dense\": local.dense },\n local.color !== \"default\" && `smwb-appbar_color-${local.color}`\n )}\n >\n <Show\n when={content()}\n fallback={\n <div class=\"smwb-appbar__inner\">\n <div class=\"smwb-appbar__left\">\n <Show when={title()}>\n <div class=\"smwb-appbar__left__title\">{title()}</div>\n </Show>\n {local.leftContent}\n </div>\n <div class={cn(\"smwb-appbar__mid\", `smwb-${local.midContentAlign}`)}>{local.midContent}</div>\n <div class=\"smwb-appbar__right\">{local.rightContent}</div>\n </div>\n }\n >\n {content()}\n </Show>\n </Dynamic>\n );\n}\n\nexport default AppBar;\n"],"mappings":"AAAA,SAAqC,MAAM,UAAU,YAAY,kBAAkB;AACnF,SAAS,eAAe;AACxB,OAAO,QAAQ;AACf,SAAS,iBAA2B;AAkB7B,SAAS,OAAO,OAA8C;AACnE,QAAM,SAAS;AAAA,IACb;AAAA,MACE,UAAU;AAAA,MACV,WAAW;AAAA,MACX,iBAAiB;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,IACA;AAAA,EACF;AACA,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,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAID,QAAM,UAAU,SAAS,MAAM,MAAM,QAAQ;AAE7C,QAAM,QAAQ,SAAS,MAAO,QAAQ,IAAI,SAAY,MAAM,KAAM;AAElE,SACE,CAAC;AAAA,IACC,WAAW,MAAM,cAAc,QAAQ,WAAW;AAAA,QAC9C;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,YAAY;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA,MAAM;AAAA,MACN,QAAQ,MAAM,QAAQ;AAAA,MACtB,QAAQ,MAAM,SAAS;AAAA,MACvB,EAAE,cAAc,MAAM,MAAM;AAAA,MAC5B,MAAM,UAAU,aAAa,qBAAqB,MAAM,KAAK;AAAA,IAC/D;AAAA,GACD;AAAA,MACC,CAAC;AAAA,IACC,MAAM,QAAQ;AAAA,IACd,UACE,CAAC,IAAI,MAAM,qBAAqB;AAAA,YAC9B,CAAC,IAAI,MAAM,oBAAoB;AAAA,cAC7B,CAAC,KAAK,MAAM,MAAM,GAAG;AAAA,gBACnB,CAAC,IAAI,MAAM,4BAA4B,MAAM,EAAE,EAA9C,IAAoD;AAAA,cACvD,EAFC,KAEM;AAAA,eACN,MAAM,YAAY;AAAA,YACrB,EALC,IAKK;AAAA,YACN,CAAC,IAAI,OAAO,GAAG,oBAAoB,QAAQ,MAAM,eAAe,EAAE,IAAI,MAAM,WAAW,EAAtF,IAA4F;AAAA,YAC7F,CAAC,IAAI,MAAM,sBAAsB,MAAM,aAAa,EAAnD,IAAyD;AAAA,UAC5D,EATC;AAAA,GAWJ;AAAA,SACE,QAAQ,EAAE;AAAA,MACb,EAhBC,KAgBM;AAAA,IACT,EA/BC;AAiCL;AAEA,IAAO,iBAAQ;","names":[],"file":"appBar.jsx"}
@@ -1,4 +1,4 @@
1
- import { For, Show, children, createSignal, mergeProps, splitProps } from "solid-js";
1
+ import { For, Show, children, createMemo, createSignal, mergeProps, splitProps } from "solid-js";
2
2
  import { Dynamic } from "solid-js/web";
3
3
  import cn from "clsx";
4
4
  import { Icon } from "../../base/icon";
@@ -61,9 +61,10 @@ function BottomBar(props) {
61
61
  });
62
62
  const [overflowOpen, setOverflowOpen] = createSignal(false);
63
63
  const [overflowAnchor, setOverflowAnchor] = createSignal(null);
64
+ const menuItems = createMemo(() => local.menuItems);
64
65
  const safeVisibleCount = () => Math.max(0, local.visibleCount);
65
- const visibleItems = () => local.menuItems.slice(0, safeVisibleCount());
66
- const overflowItems = () => local.menuItems.slice(safeVisibleCount());
66
+ const visibleItems = () => menuItems().slice(0, safeVisibleCount());
67
+ const overflowItems = () => menuItems().slice(safeVisibleCount());
67
68
  const hasOverflow = () => overflowItems().length > 0;
68
69
  const overflowActive = () => hasOverflow() && activeItem() !== null && activeItem() >= safeVisibleCount();
69
70
  return <nav {...rest} ref={mergeRefs(local.ref)} class={cn("smwb-bottom-bar", local.class)} role="navigation">
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/navigation/bottomBar/bottomBar.tsx"],"sourcesContent":["import { type JSX, For, Show, children, createSignal, mergeProps, splitProps } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport { Menu, MenuItem, MenuItemIcon, MenuItemText } from \"../menu\";\nimport { createControllableState } from \"../../../primitives/createControllableState\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../primitives/callHandler\";\nimport type { SidebarMenuItemProps } from \"../sidebar/sidebar\";\n\nexport type BottomBarMenuItemProps = SidebarMenuItemProps;\n\nexport interface BottomBarProps extends JSX.HTMLAttributes<HTMLElement> {\n menuItems?: SidebarMenuItemProps[];\n visibleCount?: number;\n activeItem?: number | null;\n defaultActiveItem?: number | null;\n onActiveItemChange?: (index: number) => void;\n overflowMenuAriaLabel?: string;\n ref?: Ref<HTMLElement>;\n}\n\ninterface BarItemProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"title\"> {\n icon?: JSX.Element;\n title?: string;\n isActive?: boolean;\n as?: string | undefined;\n href?: string | undefined;\n ref?: Ref<HTMLDivElement>;\n}\n\nfunction BarItem(props: BarItemProps): JSX.Element {\n const [local, rest] = splitProps(props, [\"isActive\", \"icon\", \"title\", \"as\", \"href\", \"ref\"]);\n let rippleActions: RippleActionsRef | undefined;\n // Resolve the icon in this item's context so a pre-created element passed via\n // menuItems hydrates (see the same fix in Sidebar/AppLayout).\n const icon = children(() => local.icon);\n const onPointerDown = (event: PointerEvent): void => {\n rippleActions?.onRipple(event);\n };\n return (\n <Dynamic\n component={local.as ?? \"div\"}\n ref={mergeRefs(local.ref)}\n href={local.href}\n role=\"menuitem\"\n class={cn(\"smwb-bottom-bar__item\", { \"smwb-bottom-bar__item_active\": local.isActive })}\n onPointerDown={onPointerDown}\n {...rest}\n >\n <Show when={icon()}>\n <span class=\"smwb-bottom-bar__item-icon\">{icon()}</span>\n </Show>\n <Show when={local.title}>\n <span class=\"smwb-bottom-bar__item-title\">{local.title}</span>\n </Show>\n <Ripple actionRef={(actions) => (rippleActions = actions)} />\n </Dynamic>\n );\n}\n\nexport function BottomBar(props: BottomBarProps): JSX.Element {\n const merged = mergeProps(\n {\n menuItems: [] as SidebarMenuItemProps[],\n visibleCount: 4,\n defaultActiveItem: null as number | null,\n overflowMenuAriaLabel: \"More navigation\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"menuItems\",\n \"visibleCount\",\n \"activeItem\",\n \"defaultActiveItem\",\n \"onActiveItemChange\",\n \"overflowMenuAriaLabel\",\n \"ref\",\n ]);\n\n const [activeItem, setActiveItem] = createControllableState<number | null>({\n value: () => local.activeItem,\n defaultValue: local.defaultActiveItem,\n onChange: (next) => {\n if (next !== null) local.onActiveItemChange?.(next);\n },\n });\n const [overflowOpen, setOverflowOpen] = createSignal(false);\n const [overflowAnchor, setOverflowAnchor] = createSignal<HTMLElement | null>(null);\n\n const safeVisibleCount = (): number => Math.max(0, local.visibleCount);\n const visibleItems = (): SidebarMenuItemProps[] => local.menuItems.slice(0, safeVisibleCount());\n const overflowItems = (): SidebarMenuItemProps[] => local.menuItems.slice(safeVisibleCount());\n const hasOverflow = (): boolean => overflowItems().length > 0;\n const overflowActive = (): boolean =>\n hasOverflow() && activeItem() !== null && (activeItem() as number) >= safeVisibleCount();\n\n return (\n <nav {...rest} ref={mergeRefs(local.ref)} class={cn(\"smwb-bottom-bar\", local.class)} role=\"navigation\">\n <div class=\"smwb-bottom-bar__nav\" role=\"menubar\">\n <For each={visibleItems()}>\n {(item, idx) => (\n <BarItem\n as={item.as}\n isActive={activeItem() === idx()}\n onClick={(event) => {\n setActiveItem(idx());\n callHandler(item.onClick, event);\n }}\n icon={item.icon}\n title={item.title}\n href={item.href}\n />\n )}\n </For>\n <Show when={hasOverflow()}>\n <BarItem\n ref={(el) => setOverflowAnchor(el as HTMLElement)}\n isActive={overflowActive()}\n onClick={() => setOverflowOpen((prev) => !prev)}\n icon={<Icon name=\"menu\" size={24} />}\n aria-label={local.overflowMenuAriaLabel}\n aria-haspopup=\"menu\"\n aria-expanded={overflowOpen()}\n />\n </Show>\n </div>\n <Show when={hasOverflow()}>\n <Menu\n isOpen={overflowOpen()}\n onClose={() => setOverflowOpen(false)}\n anchorElement={overflowAnchor()}\n placement=\"top\"\n dense\n >\n <For each={overflowItems()}>\n {(item, idx) => {\n const itemIndex = (): number => safeVisibleCount() + idx();\n return (\n <MenuItem\n selected={activeItem() === itemIndex()}\n href={item.href}\n onClick={(event) => {\n setActiveItem(itemIndex());\n callHandler(\n item.onClick,\n event as unknown as MouseEvent & { currentTarget: HTMLDivElement; target: Element }\n );\n setOverflowOpen(false);\n }}\n >\n <Show when={item.icon}>\n <MenuItemIcon>{item.icon}</MenuItemIcon>\n </Show>\n <MenuItemText inset={!item.icon}>{item.title}</MenuItemText>\n </MenuItem>\n );\n }}\n </For>\n </Menu>\n </Show>\n </nav>\n );\n}\n\nexport default BottomBar;\n"],"mappings":"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","names":[],"file":"bottomBar.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/navigation/bottomBar/bottomBar.tsx"],"sourcesContent":["import { type JSX, For, Show, children, createMemo, createSignal, mergeProps, splitProps } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { Ripple, type RippleActionsRef } from \"../../base/ripple\";\nimport { Menu, MenuItem, MenuItemIcon, MenuItemText } from \"../menu\";\nimport { createControllableState } from \"../../../primitives/createControllableState\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../primitives/callHandler\";\nimport type { SidebarMenuItemProps } from \"../sidebar/sidebar\";\n\nexport type BottomBarMenuItemProps = SidebarMenuItemProps;\n\nexport interface BottomBarProps extends JSX.HTMLAttributes<HTMLElement> {\n menuItems?: SidebarMenuItemProps[];\n visibleCount?: number;\n activeItem?: number | null;\n defaultActiveItem?: number | null;\n onActiveItemChange?: (index: number) => void;\n overflowMenuAriaLabel?: string;\n ref?: Ref<HTMLElement>;\n}\n\ninterface BarItemProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"title\"> {\n icon?: JSX.Element;\n title?: string;\n isActive?: boolean;\n as?: string | undefined;\n href?: string | undefined;\n ref?: Ref<HTMLDivElement>;\n}\n\nfunction BarItem(props: BarItemProps): JSX.Element {\n const [local, rest] = splitProps(props, [\"isActive\", \"icon\", \"title\", \"as\", \"href\", \"ref\"]);\n let rippleActions: RippleActionsRef | undefined;\n // Resolve the icon in this item's context so a pre-created element passed via\n // menuItems hydrates (see the same fix in Sidebar/AppLayout).\n const icon = children(() => local.icon);\n const onPointerDown = (event: PointerEvent): void => {\n rippleActions?.onRipple(event);\n };\n return (\n <Dynamic\n component={local.as ?? \"div\"}\n ref={mergeRefs(local.ref)}\n href={local.href}\n role=\"menuitem\"\n class={cn(\"smwb-bottom-bar__item\", { \"smwb-bottom-bar__item_active\": local.isActive })}\n onPointerDown={onPointerDown}\n {...rest}\n >\n <Show when={icon()}>\n <span class=\"smwb-bottom-bar__item-icon\">{icon()}</span>\n </Show>\n <Show when={local.title}>\n <span class=\"smwb-bottom-bar__item-title\">{local.title}</span>\n </Show>\n <Ripple actionRef={(actions) => (rippleActions = actions)} />\n </Dynamic>\n );\n}\n\nexport function BottomBar(props: BottomBarProps): JSX.Element {\n const merged = mergeProps(\n {\n menuItems: [] as SidebarMenuItemProps[],\n visibleCount: 4,\n defaultActiveItem: null as number | null,\n overflowMenuAriaLabel: \"More navigation\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"menuItems\",\n \"visibleCount\",\n \"activeItem\",\n \"defaultActiveItem\",\n \"onActiveItemChange\",\n \"overflowMenuAriaLabel\",\n \"ref\",\n ]);\n\n const [activeItem, setActiveItem] = createControllableState<number | null>({\n value: () => local.activeItem,\n defaultValue: local.defaultActiveItem,\n onChange: (next) => {\n if (next !== null) local.onActiveItemChange?.(next);\n },\n });\n const [overflowOpen, setOverflowOpen] = createSignal(false);\n const [overflowAnchor, setOverflowAnchor] = createSignal<HTMLElement | null>(null);\n\n // Read menuItems once. An inline array literal is re-evaluated on every read,\n // re-creating the icons in it; during hydration an icon created by a read that\n // renders nothing (e.g. the overflow check) has no server DOM node to adopt.\n const menuItems = createMemo(() => local.menuItems);\n const safeVisibleCount = (): number => Math.max(0, local.visibleCount);\n const visibleItems = (): SidebarMenuItemProps[] => menuItems().slice(0, safeVisibleCount());\n const overflowItems = (): SidebarMenuItemProps[] => menuItems().slice(safeVisibleCount());\n const hasOverflow = (): boolean => overflowItems().length > 0;\n const overflowActive = (): boolean =>\n hasOverflow() && activeItem() !== null && (activeItem() as number) >= safeVisibleCount();\n\n return (\n <nav {...rest} ref={mergeRefs(local.ref)} class={cn(\"smwb-bottom-bar\", local.class)} role=\"navigation\">\n <div class=\"smwb-bottom-bar__nav\" role=\"menubar\">\n <For each={visibleItems()}>\n {(item, idx) => (\n <BarItem\n as={item.as}\n isActive={activeItem() === idx()}\n onClick={(event) => {\n setActiveItem(idx());\n callHandler(item.onClick, event);\n }}\n icon={item.icon}\n title={item.title}\n href={item.href}\n />\n )}\n </For>\n <Show when={hasOverflow()}>\n <BarItem\n ref={(el) => setOverflowAnchor(el as HTMLElement)}\n isActive={overflowActive()}\n onClick={() => setOverflowOpen((prev) => !prev)}\n icon={<Icon name=\"menu\" size={24} />}\n aria-label={local.overflowMenuAriaLabel}\n aria-haspopup=\"menu\"\n aria-expanded={overflowOpen()}\n />\n </Show>\n </div>\n <Show when={hasOverflow()}>\n <Menu\n isOpen={overflowOpen()}\n onClose={() => setOverflowOpen(false)}\n anchorElement={overflowAnchor()}\n placement=\"top\"\n dense\n >\n <For each={overflowItems()}>\n {(item, idx) => {\n const itemIndex = (): number => safeVisibleCount() + idx();\n return (\n <MenuItem\n selected={activeItem() === itemIndex()}\n href={item.href}\n onClick={(event) => {\n setActiveItem(itemIndex());\n callHandler(\n item.onClick,\n event as unknown as MouseEvent & { currentTarget: HTMLDivElement; target: Element }\n );\n setOverflowOpen(false);\n }}\n >\n <Show when={item.icon}>\n <MenuItemIcon>{item.icon}</MenuItemIcon>\n </Show>\n <MenuItemText inset={!item.icon}>{item.title}</MenuItemText>\n </MenuItem>\n );\n }}\n </For>\n </Menu>\n </Show>\n </nav>\n );\n}\n\nexport default BottomBar;\n"],"mappings":"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","names":[],"file":"bottomBar.jsx"}
@@ -1,7 +1,8 @@
1
- import { For, Show, mergeProps, splitProps } from "solid-js";
1
+ import { For, Show, createMemo, mergeProps, splitProps } from "solid-js";
2
2
  import cn from "clsx";
3
3
  import { Icon } from "../../base/icon";
4
4
  import { mergeRefs } from "../../../primitives/mergeRefs";
5
+ const AUTO_MAX_STEPS = 12;
5
6
  function Stepper(props) {
6
7
  const merged = mergeProps({ orientation: "horizontal", alternativeLabel: false }, props);
7
8
  const [local, rest] = splitProps(merged, [
@@ -13,22 +14,25 @@ function Stepper(props) {
13
14
  "onStepClick",
14
15
  "ref"
15
16
  ]);
16
- return <div
17
+ const steps = createMemo(() => local.steps);
18
+ const auto = () => local.orientation === "auto";
19
+ const stepper = () => <div
17
20
  {...rest}
18
21
  ref={mergeRefs(local.ref)}
19
22
  data-testid="stepper"
23
+ data-steps={auto() ? String(Math.min(steps().length, AUTO_MAX_STEPS)) : void 0}
20
24
  class={cn(
21
25
  "smwb-stepper",
22
- `smwb-stepper_${local.orientation}`,
23
- { "smwb-stepper_alt-label": local.alternativeLabel && local.orientation === "horizontal" },
26
+ auto() ? "smwb-stepper_horizontal smwb-stepper_auto" : `smwb-stepper_${local.orientation}`,
27
+ { "smwb-stepper_alt-label": local.alternativeLabel && local.orientation !== "vertical" },
24
28
  local.class
25
29
  )}
26
30
  >
27
- <For each={local.steps}>
31
+ <For each={steps()}>
28
32
  {(step, index) => {
29
33
  const completed = () => index() < local.activeStep;
30
34
  const active = () => index() === local.activeStep;
31
- const isLast = () => index() === local.steps.length - 1;
35
+ const isLast = () => index() === steps().length - 1;
32
36
  const clickable = () => Boolean(local.onStepClick) && !step.disabled;
33
37
  return <>
34
38
  <div
@@ -61,7 +65,7 @@ function Stepper(props) {
61
65
  <Show when={step.optional}>
62
66
  <span class="smwb-stepper__optional">{step.optional}</span>
63
67
  </Show>
64
- <Show when={step.description && local.orientation === "vertical"}>
68
+ <Show when={step.description}>
65
69
  <span class="smwb-stepper__description">{step.description}</span>
66
70
  </Show>
67
71
  </div>
@@ -73,6 +77,9 @@ function Stepper(props) {
73
77
  }}
74
78
  </For>
75
79
  </div>;
80
+ return <Show when={auto()} fallback={stepper()}>
81
+ <div class="smwb-stepper-auto">{stepper()}</div>
82
+ </Show>;
76
83
  }
77
84
  var stepper_default = Stepper;
78
85
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/navigation/stepper/stepper.tsx"],"sourcesContent":["import { type JSX, For, Show, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface StepItem {\n label: JSX.Element;\n description?: JSX.Element;\n optional?: JSX.Element;\n /** Marks the step as errored. */\n error?: boolean;\n /** Disables interaction with the step. */\n disabled?: boolean;\n /** Custom icon overriding the default number/check. */\n icon?: JSX.Element;\n}\n\nexport interface StepperProps extends JSX.HTMLAttributes<HTMLDivElement> {\n steps: StepItem[];\n /** Index of the active (current) step. */\n activeStep: number;\n orientation?: \"horizontal\" | \"vertical\";\n /** Place the label under the icon (horizontal only). */\n alternativeLabel?: boolean;\n /** Makes steps clickable; receives the clicked step index. */\n onStepClick?: (index: number) => void;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport function Stepper(props: StepperProps): JSX.Element {\n const merged = mergeProps({ orientation: \"horizontal\" as const, alternativeLabel: false }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"steps\",\n \"activeStep\",\n \"orientation\",\n \"alternativeLabel\",\n \"onStepClick\",\n \"ref\",\n ]);\n\n return (\n <div\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"stepper\"\n class={cn(\n \"smwb-stepper\",\n `smwb-stepper_${local.orientation}`,\n { \"smwb-stepper_alt-label\": local.alternativeLabel && local.orientation === \"horizontal\" },\n local.class\n )}\n >\n <For each={local.steps}>\n {(step, index) => {\n const completed = (): boolean => index() < local.activeStep;\n const active = (): boolean => index() === local.activeStep;\n const isLast = (): boolean => index() === local.steps.length - 1;\n const clickable = (): boolean => Boolean(local.onStepClick) && !step.disabled;\n\n return (\n <>\n <div\n class={cn(\"smwb-stepper__step\", {\n \"smwb-stepper__step_active\": active(),\n \"smwb-stepper__step_completed\": completed(),\n \"smwb-stepper__step_error\": step.error,\n \"smwb-stepper__step_disabled\": step.disabled,\n \"smwb-stepper__step_clickable\": clickable(),\n })}\n aria-current={active() ? \"step\" : undefined}\n aria-disabled={step.disabled || undefined}\n role={clickable() ? \"button\" : undefined}\n tabindex={clickable() ? 0 : undefined}\n onClick={clickable() ? () => local.onStepClick?.(index()) : undefined}\n onKeyDown={\n clickable()\n ? (event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n local.onStepClick?.(index());\n }\n }\n : undefined\n }\n >\n <div class=\"smwb-stepper__icon\" aria-hidden=\"true\">\n <Show when={step.icon} fallback={completed() ? <Icon name=\"check\" size={16} /> : <span>{index() + 1}</span>}>\n {step.icon}\n </Show>\n </div>\n <div class=\"smwb-stepper__text\">\n <span class=\"smwb-stepper__label\">{step.label}</span>\n <Show when={step.optional}>\n <span class=\"smwb-stepper__optional\">{step.optional}</span>\n </Show>\n <Show when={step.description && local.orientation === \"vertical\"}>\n <span class=\"smwb-stepper__description\">{step.description}</span>\n </Show>\n </div>\n </div>\n <Show when={!isLast()}>\n <div class=\"smwb-stepper__connector\" aria-hidden=\"true\" />\n </Show>\n </>\n );\n }}\n </For>\n </div>\n );\n}\n\nexport default Stepper;\n"],"mappings":"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","names":[],"file":"stepper.jsx"}
1
+ {"version":3,"sources":["../../../../../../src/components/navigation/stepper/stepper.tsx"],"sourcesContent":["import { type JSX, For, Show, createMemo, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface StepItem {\n label: JSX.Element;\n /** Longer text under the label, in every orientation. */\n description?: JSX.Element;\n optional?: JSX.Element;\n /** Marks the step as errored. */\n error?: boolean;\n /** Disables interaction with the step. */\n disabled?: boolean;\n /** Custom icon overriding the default number/check. */\n icon?: JSX.Element;\n}\n\n/**\n * `auto` lays the steps out in a row while the stepper's container is wide\n * enough for them — about 8rem per step, a theme variable — and in a column when\n * it is not. It is a CSS container query, so the server renders the same markup\n * and nothing changes on hydration.\n */\nexport type StepperOrientation = \"horizontal\" | \"vertical\" | \"auto\";\n\nexport interface StepperProps extends JSX.HTMLAttributes<HTMLDivElement> {\n steps: StepItem[];\n /** Index of the active (current) step. */\n activeStep: number;\n orientation?: StepperOrientation;\n /** Place the label under the icon (in a row: horizontal, or auto while wide). */\n alternativeLabel?: boolean;\n /** Makes steps clickable; receives the clicked step index. */\n onStepClick?: (index: number) => void;\n ref?: Ref<HTMLDivElement>;\n}\n\n/** Step counts with their own `auto` breakpoint; longer steppers use the last one. */\nconst AUTO_MAX_STEPS = 12;\n\nexport function Stepper(props: StepperProps): JSX.Element {\n const merged = mergeProps({ orientation: \"horizontal\" as StepperOrientation, alternativeLabel: false }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"steps\",\n \"activeStep\",\n \"orientation\",\n \"alternativeLabel\",\n \"onStepClick\",\n \"ref\",\n ]);\n\n // Read the steps once. An inline array is re-evaluated on every read, creating\n // the markup in it (icons, labels, descriptions) again; during hydration a copy\n // that is not the rendered one has no server DOM node to adopt.\n const steps = createMemo(() => local.steps);\n const auto = (): boolean => local.orientation === \"auto\";\n\n const stepper = (): JSX.Element => (\n <div\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"stepper\"\n data-steps={auto() ? String(Math.min(steps().length, AUTO_MAX_STEPS)) : undefined}\n class={cn(\n \"smwb-stepper\",\n auto() ? \"smwb-stepper_horizontal smwb-stepper_auto\" : `smwb-stepper_${local.orientation}`,\n { \"smwb-stepper_alt-label\": local.alternativeLabel && local.orientation !== \"vertical\" },\n local.class\n )}\n >\n <For each={steps()}>\n {(step, index) => {\n const completed = (): boolean => index() < local.activeStep;\n const active = (): boolean => index() === local.activeStep;\n const isLast = (): boolean => index() === steps().length - 1;\n const clickable = (): boolean => Boolean(local.onStepClick) && !step.disabled;\n\n return (\n <>\n <div\n class={cn(\"smwb-stepper__step\", {\n \"smwb-stepper__step_active\": active(),\n \"smwb-stepper__step_completed\": completed(),\n \"smwb-stepper__step_error\": step.error,\n \"smwb-stepper__step_disabled\": step.disabled,\n \"smwb-stepper__step_clickable\": clickable(),\n })}\n aria-current={active() ? \"step\" : undefined}\n aria-disabled={step.disabled || undefined}\n role={clickable() ? \"button\" : undefined}\n tabindex={clickable() ? 0 : undefined}\n onClick={clickable() ? () => local.onStepClick?.(index()) : undefined}\n onKeyDown={\n clickable()\n ? (event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n local.onStepClick?.(index());\n }\n }\n : undefined\n }\n >\n <div class=\"smwb-stepper__icon\" aria-hidden=\"true\">\n <Show when={step.icon} fallback={completed() ? <Icon name=\"check\" size={16} /> : <span>{index() + 1}</span>}>\n {step.icon}\n </Show>\n </div>\n <div class=\"smwb-stepper__text\">\n <span class=\"smwb-stepper__label\">{step.label}</span>\n <Show when={step.optional}>\n <span class=\"smwb-stepper__optional\">{step.optional}</span>\n </Show>\n <Show when={step.description}>\n <span class=\"smwb-stepper__description\">{step.description}</span>\n </Show>\n </div>\n </div>\n <Show when={!isLast()}>\n <div class=\"smwb-stepper__connector\" aria-hidden=\"true\" />\n </Show>\n </>\n );\n }}\n </For>\n </div>\n );\n\n // `auto` needs a query container around the stepper: its own flex direction is\n // what the container query switches.\n return (\n <Show when={auto()} fallback={stepper()}>\n <div class=\"smwb-stepper-auto\">{stepper()}</div>\n </Show>\n );\n}\n\nexport default Stepper;\n"],"mappings":"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","names":[],"file":"stepper.jsx"}
@@ -1,4 +1,4 @@
1
- import { Show, mergeProps, splitProps } from "solid-js";
1
+ import { Show, children, mergeProps, splitProps } from "solid-js";
2
2
  import { Dynamic } from "solid-js/web";
3
3
  import cn from "clsx";
4
4
  import { Ripple } from "../../../base/ripple";
@@ -21,6 +21,8 @@ function Tab(props) {
21
21
  "onClick",
22
22
  "ref"
23
23
  ]);
24
+ const icon = children(() => local.icon);
25
+ const label = children(() => local.label);
24
26
  let rippleActions;
25
27
  const active = () => ctx ? ctx.value() === index : local.isActive;
26
28
  const onClick = (event) => {
@@ -57,11 +59,11 @@ function Tab(props) {
57
59
  if (ctx?.indicatorContent) ctx.setContentRef(index, el);
58
60
  })}
59
61
  >
60
- <Show when={local.icon}>
61
- <span class="smwb-tab__icon">{local.icon}</span>
62
+ <Show when={icon()}>
63
+ <span class="smwb-tab__icon">{icon()}</span>
62
64
  </Show>
63
- <Show when={local.label}>
64
- <span class="smwb-tab__text-label">{local.label}</span>
65
+ <Show when={label()}>
66
+ <span class="smwb-tab__text-label">{label()}</span>
65
67
  </Show>
66
68
  </span>
67
69
  <Ripple actionRef={(actions) => rippleActions = actions} classes={{ child: "tab__ripple-child" }} />
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/navigation/tabs/tab/tab.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, mergeProps, splitProps } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { Ripple, type RippleActionsRef } from \"../../../base/ripple\";\nimport { useTabsContext } from \"../tabsContext\";\nimport { mergeRefs, type Ref } from \"../../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../../primitives/callHandler\";\n\nexport interface TabProps extends JSX.HTMLAttributes<HTMLButtonElement | HTMLAnchorElement> {\n label?: JSX.Element;\n isActive?: boolean;\n contentRef?: Ref<HTMLSpanElement>;\n icon?: JSX.Element;\n stacked?: boolean;\n tag?: string;\n disabled?: boolean;\n ref?: Ref<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nexport function Tab(props: ParentProps<TabProps>): JSX.Element {\n const ctx = useTabsContext();\n const index = ctx ? ctx.registerTab() : -1;\n const merged = mergeProps({ isActive: false, stacked: false }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"label\",\n \"isActive\",\n \"contentRef\",\n \"icon\",\n \"stacked\",\n \"tag\",\n \"disabled\",\n \"onClick\",\n \"ref\",\n ]);\n\n let rippleActions: RippleActionsRef | undefined;\n\n const active = (): boolean => (ctx ? ctx.value() === index : local.isActive);\n\n const onClick: JSX.EventHandler<HTMLButtonElement | HTMLAnchorElement, MouseEvent> = (event) => {\n if (ctx) {\n ctx.onChange(event, index);\n } else {\n callHandler(local.onClick, event);\n }\n };\n\n const onPointerDown = (event: PointerEvent): void => {\n rippleActions?.onRipple(event);\n };\n\n const tag = (): string => local.tag ?? \"button\";\n\n return (\n <Dynamic\n component={tag()}\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-tab\", local.class, {\n \"smwb-tab--active\": active(),\n \"smwb-tab--stacked\": local.stacked,\n \"smwb-tab--disabled\": local.disabled,\n })}\n onClick={onClick}\n onPointerDown={onPointerDown}\n role=\"tab\"\n aria-selected={active()}\n aria-disabled={local.disabled || undefined}\n tabindex={active() ? 0 : -1}\n disabled={tag() === \"button\" ? local.disabled : undefined}\n >\n <span\n class=\"smwb-tab__content\"\n ref={mergeRefs(local.contentRef, (el) => {\n if (ctx?.indicatorContent) ctx.setContentRef(index, el as HTMLSpanElement);\n })}\n >\n <Show when={local.icon}>\n <span class=\"smwb-tab__icon\">{local.icon}</span>\n </Show>\n <Show when={local.label}>\n <span class=\"smwb-tab__text-label\">{local.label}</span>\n </Show>\n </span>\n <Ripple actionRef={(actions) => (rippleActions = actions)} classes={{ child: \"tab__ripple-child\" }} />\n </Dynamic>\n );\n}\n\nexport default Tab;\n"],"mappings":"AAAA,SAAqC,MAAM,YAAY,kBAAkB;AACzE,SAAS,eAAe;AACxB,OAAO,QAAQ;AACf,SAAS,cAAqC;AAC9C,SAAS,sBAAsB;AAC/B,SAAS,iBAA2B;AACpC,SAAS,mBAAmB;AAarB,SAAS,IAAI,OAA2C;AAC7D,QAAM,MAAM,eAAe;AAC3B,QAAM,QAAQ,MAAM,IAAI,YAAY,IAAI;AACxC,QAAM,SAAS,WAAW,EAAE,UAAU,OAAO,SAAS,MAAM,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,MAAI;AAEJ,QAAM,SAAS,MAAgB,MAAM,IAAI,MAAM,MAAM,QAAQ,MAAM;AAEnE,QAAM,UAA+E,CAAC,UAAU;AAC9F,QAAI,KAAK;AACP,UAAI,SAAS,OAAO,KAAK;AAAA,IAC3B,OAAO;AACL,kBAAY,MAAM,SAAS,KAAK;AAAA,IAClC;AAAA,EACF;AAEA,QAAM,gBAAgB,CAAC,UAA8B;AACnD,mBAAe,SAAS,KAAK;AAAA,EAC/B;AAEA,QAAM,MAAM,MAAc,MAAM,OAAO;AAEvC,SACE,CAAC;AAAA,IACC,WAAW,IAAI;AAAA,QACX;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,OAAO,GAAG,YAAY,MAAM,OAAO;AAAA,MACjC,oBAAoB,OAAO;AAAA,MAC3B,qBAAqB,MAAM;AAAA,MAC3B,sBAAsB,MAAM;AAAA,IAC9B,CAAC;AAAA,IACD,SAAS;AAAA,IACT,eAAe;AAAA,IACf,KAAK;AAAA,IACL,eAAe,OAAO;AAAA,IACtB,eAAe,MAAM,YAAY;AAAA,IACjC,UAAU,OAAO,IAAI,IAAI;AAAA,IACzB,UAAU,IAAI,MAAM,WAAW,MAAM,WAAW;AAAA,GACjD;AAAA,MACC,CAAC;AAAA,IACC,MAAM;AAAA,IACN,KAAK,UAAU,MAAM,YAAY,CAAC,OAAO;AACvC,UAAI,KAAK,iBAAkB,KAAI,cAAc,OAAO,EAAqB;AAAA,IAC3E,CAAC;AAAA,GACF;AAAA,QACC,CAAC,KAAK,MAAM,MAAM,MAAM;AAAA,UACtB,CAAC,KAAK,MAAM,kBAAkB,MAAM,KAAK,EAAxC,KAA+C;AAAA,QAClD,EAFC,KAEM;AAAA,QACP,CAAC,KAAK,MAAM,MAAM,OAAO;AAAA,UACvB,CAAC,KAAK,MAAM,wBAAwB,MAAM,MAAM,EAA/C,KAAsD;AAAA,QACzD,EAFC,KAEM;AAAA,MACT,EAZC,KAYM;AAAA,MACP,CAAC,OAAO,WAAW,CAAC,YAAa,gBAAgB,SAAU,SAAS,EAAE,OAAO,oBAAoB,GAAG,EAAE;AAAA,IACxG,EA/BC;AAiCL;AAEA,IAAO,cAAQ;","names":[],"file":"tab.jsx"}
1
+ {"version":3,"sources":["../../../../../../../src/components/navigation/tabs/tab/tab.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 { Ripple, type RippleActionsRef } from \"../../../base/ripple\";\nimport { useTabsContext } from \"../tabsContext\";\nimport { mergeRefs, type Ref } from \"../../../../primitives/mergeRefs\";\nimport { callHandler } from \"../../../../primitives/callHandler\";\n\nexport interface TabProps extends JSX.HTMLAttributes<HTMLButtonElement | HTMLAnchorElement> {\n label?: JSX.Element;\n isActive?: boolean;\n contentRef?: Ref<HTMLSpanElement>;\n icon?: JSX.Element;\n stacked?: boolean;\n tag?: string;\n /** With `tag=\"a\"`: where the link goes, so the tab stays a real link. */\n href?: string;\n disabled?: boolean;\n ref?: Ref<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nexport function Tab(props: ParentProps<TabProps>): JSX.Element {\n const ctx = useTabsContext();\n const index = ctx ? ctx.registerTab() : -1;\n const merged = mergeProps({ isActive: false, stacked: false }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"label\",\n \"isActive\",\n \"contentRef\",\n \"icon\",\n \"stacked\",\n \"tag\",\n \"disabled\",\n \"onClick\",\n \"ref\",\n ]);\n\n // Read the icon and the label once: markup passed as a prop is created anew on\n // every read, and during hydration the copy made for the <Show> test has no\n // server DOM node to adopt (\"Unable to find DOM nodes for hydration key\").\n const icon = children(() => local.icon);\n const label = children(() => local.label);\n\n let rippleActions: RippleActionsRef | undefined;\n\n const active = (): boolean => (ctx ? ctx.value() === index : local.isActive);\n\n const onClick: JSX.EventHandler<HTMLButtonElement | HTMLAnchorElement, MouseEvent> = (event) => {\n if (ctx) {\n ctx.onChange(event, index);\n } else {\n callHandler(local.onClick, event);\n }\n };\n\n const onPointerDown = (event: PointerEvent): void => {\n rippleActions?.onRipple(event);\n };\n\n const tag = (): string => local.tag ?? \"button\";\n\n return (\n <Dynamic\n component={tag()}\n {...rest}\n ref={mergeRefs(local.ref)}\n class={cn(\"smwb-tab\", local.class, {\n \"smwb-tab--active\": active(),\n \"smwb-tab--stacked\": local.stacked,\n \"smwb-tab--disabled\": local.disabled,\n })}\n onClick={onClick}\n onPointerDown={onPointerDown}\n role=\"tab\"\n aria-selected={active()}\n aria-disabled={local.disabled || undefined}\n tabindex={active() ? 0 : -1}\n disabled={tag() === \"button\" ? local.disabled : undefined}\n >\n <span\n class=\"smwb-tab__content\"\n ref={mergeRefs(local.contentRef, (el) => {\n if (ctx?.indicatorContent) ctx.setContentRef(index, el as HTMLSpanElement);\n })}\n >\n <Show when={icon()}>\n <span class=\"smwb-tab__icon\">{icon()}</span>\n </Show>\n <Show when={label()}>\n <span class=\"smwb-tab__text-label\">{label()}</span>\n </Show>\n </span>\n <Ripple actionRef={(actions) => (rippleActions = actions)} classes={{ child: \"tab__ripple-child\" }} />\n </Dynamic>\n );\n}\n\nexport default Tab;\n"],"mappings":"AAAA,SAAqC,MAAM,UAAU,YAAY,kBAAkB;AACnF,SAAS,eAAe;AACxB,OAAO,QAAQ;AACf,SAAS,cAAqC;AAC9C,SAAS,sBAAsB;AAC/B,SAAS,iBAA2B;AACpC,SAAS,mBAAmB;AAerB,SAAS,IAAI,OAA2C;AAC7D,QAAM,MAAM,eAAe;AAC3B,QAAM,QAAQ,MAAM,IAAI,YAAY,IAAI;AACxC,QAAM,SAAS,WAAW,EAAE,UAAU,OAAO,SAAS,MAAM,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;AAKD,QAAM,OAAO,SAAS,MAAM,MAAM,IAAI;AACtC,QAAM,QAAQ,SAAS,MAAM,MAAM,KAAK;AAExC,MAAI;AAEJ,QAAM,SAAS,MAAgB,MAAM,IAAI,MAAM,MAAM,QAAQ,MAAM;AAEnE,QAAM,UAA+E,CAAC,UAAU;AAC9F,QAAI,KAAK;AACP,UAAI,SAAS,OAAO,KAAK;AAAA,IAC3B,OAAO;AACL,kBAAY,MAAM,SAAS,KAAK;AAAA,IAClC;AAAA,EACF;AAEA,QAAM,gBAAgB,CAAC,UAA8B;AACnD,mBAAe,SAAS,KAAK;AAAA,EAC/B;AAEA,QAAM,MAAM,MAAc,MAAM,OAAO;AAEvC,SACE,CAAC;AAAA,IACC,WAAW,IAAI;AAAA,QACX;AAAA,IACJ,KAAK,UAAU,MAAM,GAAG;AAAA,IACxB,OAAO,GAAG,YAAY,MAAM,OAAO;AAAA,MACjC,oBAAoB,OAAO;AAAA,MAC3B,qBAAqB,MAAM;AAAA,MAC3B,sBAAsB,MAAM;AAAA,IAC9B,CAAC;AAAA,IACD,SAAS;AAAA,IACT,eAAe;AAAA,IACf,KAAK;AAAA,IACL,eAAe,OAAO;AAAA,IACtB,eAAe,MAAM,YAAY;AAAA,IACjC,UAAU,OAAO,IAAI,IAAI;AAAA,IACzB,UAAU,IAAI,MAAM,WAAW,MAAM,WAAW;AAAA,GACjD;AAAA,MACC,CAAC;AAAA,IACC,MAAM;AAAA,IACN,KAAK,UAAU,MAAM,YAAY,CAAC,OAAO;AACvC,UAAI,KAAK,iBAAkB,KAAI,cAAc,OAAO,EAAqB;AAAA,IAC3E,CAAC;AAAA,GACF;AAAA,QACC,CAAC,KAAK,MAAM,KAAK,GAAG;AAAA,UAClB,CAAC,KAAK,MAAM,kBAAkB,KAAK,EAAE,EAApC,KAA2C;AAAA,QAC9C,EAFC,KAEM;AAAA,QACP,CAAC,KAAK,MAAM,MAAM,GAAG;AAAA,UACnB,CAAC,KAAK,MAAM,wBAAwB,MAAM,EAAE,EAA3C,KAAkD;AAAA,QACrD,EAFC,KAEM;AAAA,MACT,EAZC,KAYM;AAAA,MACP,CAAC,OAAO,WAAW,CAAC,YAAa,gBAAgB,SAAU,SAAS,EAAE,OAAO,oBAAoB,GAAG,EAAE;AAAA,IACxG,EA/BC;AAiCL;AAEA,IAAO,cAAQ;","names":[],"file":"tab.jsx"}