@smwb/ui-solid 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (406) hide show
  1. package/dist/assets/styles/less/components/appBar/appBar.entry.css +1 -1
  2. package/dist/assets/styles/less/components/assetGrid/assetGrid.entry.css +1 -0
  3. package/dist/assets/styles/less/components/chipGroup/chipGroup.entry.css +1 -0
  4. package/dist/assets/styles/less/components/lazyImage/lazyImage.entry.css +1 -0
  5. package/dist/assets/styles/less/components/overflowMenu/overflowMenu.entry.css +1 -0
  6. package/dist/assets/styles/less/components/saveAssetDialog/saveAssetDialog.entry.css +1 -0
  7. package/dist/assets/styles/less/components/sheet/sheet.entry.css +1 -1
  8. package/dist/assets/styles/less/components/thumbCard/thumbCard.entry.css +1 -0
  9. package/dist/assets/styles/less/components/valueSlider/valueSlider.entry.css +1 -0
  10. package/dist/components/dataDisplay/assetGrid/assetGrid.d.ts +30 -0
  11. package/dist/components/dataDisplay/assetGrid/assetGrid.js +144 -0
  12. package/dist/components/dataDisplay/assetGrid/assetGrid.js.map +1 -0
  13. package/dist/components/dataDisplay/assetGrid/index.d.ts +2 -0
  14. package/dist/components/dataDisplay/chipGroup/chipGroup.d.ts +27 -0
  15. package/dist/components/dataDisplay/chipGroup/chipGroup.js +58 -0
  16. package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -0
  17. package/dist/components/dataDisplay/chipGroup/index.d.ts +2 -0
  18. package/dist/components/dataDisplay/lazyImage/index.d.ts +2 -0
  19. package/dist/components/dataDisplay/lazyImage/lazyImage.d.ts +24 -0
  20. package/dist/components/dataDisplay/lazyImage/lazyImage.js +73 -0
  21. package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -0
  22. package/dist/components/dataDisplay/thumbCard/index.d.ts +2 -0
  23. package/dist/components/dataDisplay/thumbCard/thumbCard.d.ts +31 -0
  24. package/dist/components/dataDisplay/thumbCard/thumbCard.js +114 -0
  25. package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -0
  26. package/dist/components/feedBack/saveAssetDialog/index.d.ts +2 -0
  27. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.d.ts +30 -0
  28. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js +101 -0
  29. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -0
  30. package/dist/components/inputs/valueSlider/index.d.ts +2 -0
  31. package/dist/components/inputs/valueSlider/valueSlider.d.ts +23 -0
  32. package/dist/components/inputs/valueSlider/valueSlider.js +57 -0
  33. package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -0
  34. package/dist/components/layout/appLayout/appLayout.js +43 -43
  35. package/dist/components/layout/appLayout/appLayout.js.map +1 -1
  36. package/dist/components/navigation/bottomBar/bottomBar.js +31 -30
  37. package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
  38. package/dist/components/navigation/overflowMenu/index.d.ts +2 -0
  39. package/dist/components/navigation/overflowMenu/overflowMenu.d.ts +27 -0
  40. package/dist/components/navigation/overflowMenu/overflowMenu.js +88 -0
  41. package/dist/components/navigation/overflowMenu/overflowMenu.js.map +1 -0
  42. package/dist/components/navigation/sidebar/sidebar.js +48 -47
  43. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  44. package/dist/headless/components/dataDisplay/assetGrid/assetGrid.js +143 -0
  45. package/dist/headless/components/dataDisplay/assetGrid/assetGrid.js.map +1 -0
  46. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js +57 -0
  47. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js.map +1 -0
  48. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +72 -0
  49. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -0
  50. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +113 -0
  51. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -0
  52. package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js +100 -0
  53. package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -0
  54. package/dist/headless/components/inputs/valueSlider/valueSlider.js +56 -0
  55. package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -0
  56. package/dist/headless/components/layout/appLayout/appLayout.js +43 -43
  57. package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
  58. package/dist/headless/components/navigation/bottomBar/bottomBar.js +31 -30
  59. package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
  60. package/dist/headless/components/navigation/overflowMenu/overflowMenu.js +87 -0
  61. package/dist/headless/components/navigation/overflowMenu/overflowMenu.js.map +1 -0
  62. package/dist/headless/components/navigation/sidebar/sidebar.js +48 -47
  63. package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
  64. package/dist/headless/index.js +278 -264
  65. package/dist/headless/index.js.map +1 -1
  66. package/dist/headless/source/components/base/animateHeight/animateHeight.jsx +1 -1
  67. package/dist/headless/source/components/base/icon/icon.jsx +1 -1
  68. package/dist/headless/source/components/base/ripple/ripple.jsx +1 -1
  69. package/dist/headless/source/components/clickAwayListener/clickAwayListener.jsx +1 -1
  70. package/dist/headless/source/components/dataDisplay/accordion/accordion.jsx +1 -1
  71. package/dist/headless/source/components/dataDisplay/assetGrid/assetGrid.jsx +115 -0
  72. package/dist/headless/source/components/dataDisplay/assetGrid/assetGrid.jsx.map +1 -0
  73. package/dist/headless/source/components/dataDisplay/assetGrid/index.js +5 -0
  74. package/dist/headless/source/components/dataDisplay/assetGrid/index.js.map +7 -0
  75. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx +1 -1
  76. package/dist/headless/source/components/dataDisplay/badge/badge.jsx +1 -1
  77. package/dist/headless/source/components/dataDisplay/card/card.jsx +1 -1
  78. package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx +1 -1
  79. package/dist/headless/source/components/dataDisplay/chat/chat.jsx +1 -1
  80. package/dist/headless/source/components/dataDisplay/chat/chatAttachmentImage.jsx +1 -1
  81. package/dist/headless/source/components/dataDisplay/chat/chatAttachments.jsx +1 -1
  82. package/dist/headless/source/components/dataDisplay/chat/chatComposer.jsx +1 -1
  83. package/dist/headless/source/components/dataDisplay/chat/chatHeader.jsx +1 -1
  84. package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx +1 -1
  85. package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx +1 -1
  86. package/dist/headless/source/components/dataDisplay/chat/chatMessageAvatar.jsx +1 -1
  87. package/dist/headless/source/components/dataDisplay/chat/chatMessageBubble.jsx +1 -1
  88. package/dist/headless/source/components/dataDisplay/chat/chatMessageIncoming.jsx +1 -1
  89. package/dist/headless/source/components/dataDisplay/chat/chatMessageItem.jsx +1 -1
  90. package/dist/headless/source/components/dataDisplay/chat/chatMessageOutgoing.jsx +1 -1
  91. package/dist/headless/source/components/dataDisplay/chat/chatMessageSkeleton.jsx +1 -1
  92. package/dist/headless/source/components/dataDisplay/chat/chatMessageStatus.jsx +1 -1
  93. package/dist/headless/source/components/dataDisplay/chat/chatMessageSystem.jsx +1 -1
  94. package/dist/headless/source/components/dataDisplay/chat/chatMessages.jsx +1 -1
  95. package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx +1 -1
  96. package/dist/headless/source/components/dataDisplay/chat/chatShell.jsx +1 -1
  97. package/dist/headless/source/components/dataDisplay/chip/chip.jsx +1 -1
  98. package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx +50 -0
  99. package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -0
  100. package/dist/headless/source/components/dataDisplay/chipGroup/index.js +5 -0
  101. package/dist/headless/source/components/dataDisplay/chipGroup/index.js.map +7 -0
  102. package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +1 -1
  103. package/dist/headless/source/components/dataDisplay/imagesList/imagesList.jsx +1 -1
  104. package/dist/headless/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx +1 -1
  105. package/dist/headless/source/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.jsx +1 -1
  106. package/dist/headless/source/components/dataDisplay/lazyImage/index.js +5 -0
  107. package/dist/headless/source/components/dataDisplay/lazyImage/index.js.map +7 -0
  108. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx +64 -0
  109. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -0
  110. package/dist/headless/source/components/dataDisplay/list/list.jsx +1 -1
  111. package/dist/headless/source/components/dataDisplay/list/listItem.jsx +1 -1
  112. package/dist/headless/source/components/dataDisplay/table/table.jsx +1 -1
  113. package/dist/headless/source/components/dataDisplay/table/tableBody.jsx +1 -1
  114. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx +1 -1
  115. package/dist/headless/source/components/dataDisplay/table/tableHead.jsx +1 -1
  116. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx +1 -1
  117. package/dist/headless/source/components/dataDisplay/table/tablePagination/tablePagination.jsx +1 -1
  118. package/dist/headless/source/components/dataDisplay/table/tableRow.jsx +1 -1
  119. package/dist/headless/source/components/dataDisplay/thumbCard/index.js +5 -0
  120. package/dist/headless/source/components/dataDisplay/thumbCard/index.js.map +7 -0
  121. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx +93 -0
  122. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -0
  123. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx +1 -1
  124. package/dist/headless/source/components/dataDisplay/typography/typography.jsx +1 -1
  125. package/dist/headless/source/components/feedBack/message/message.jsx +1 -1
  126. package/dist/headless/source/components/feedBack/modal/modal.jsx +1 -1
  127. package/dist/headless/source/components/feedBack/progressIndicator/progressIndicator.jsx +1 -1
  128. package/dist/headless/source/components/feedBack/saveAssetDialog/index.js +5 -0
  129. package/dist/headless/source/components/feedBack/saveAssetDialog/index.js.map +7 -0
  130. package/dist/headless/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx +65 -0
  131. package/dist/headless/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx.map +1 -0
  132. package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx +1 -1
  133. package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx +1 -1
  134. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx +1 -1
  135. package/dist/headless/source/components/inputs/button/button.jsx +1 -1
  136. package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx +1 -1
  137. package/dist/headless/source/components/inputs/checkbox/checkbox.jsx +1 -1
  138. package/dist/headless/source/components/inputs/datePicker/dataPickerDays.jsx +1 -1
  139. package/dist/headless/source/components/inputs/datePicker/dataPickerHeader.jsx +1 -1
  140. package/dist/headless/source/components/inputs/datePicker/dataPickerInput.jsx +1 -1
  141. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +1 -1
  142. package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx +1 -1
  143. package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx +1 -1
  144. package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx +1 -1
  145. package/dist/headless/source/components/inputs/datePicker/datePickerList.jsx +1 -1
  146. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx +1 -1
  147. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePickerInput.jsx +1 -1
  148. package/dist/headless/source/components/inputs/fileDrop/countPreview.jsx +1 -1
  149. package/dist/headless/source/components/inputs/fileDrop/fileDrop.jsx +1 -1
  150. package/dist/headless/source/components/inputs/fileDrop/preview.jsx +1 -1
  151. package/dist/headless/source/components/inputs/fileDrop/previewWrapper.jsx +1 -1
  152. package/dist/headless/source/components/inputs/fileInput/fileInput.jsx +1 -1
  153. package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx +1 -1
  154. package/dist/headless/source/components/inputs/radioButton/radioButton.jsx +1 -1
  155. package/dist/headless/source/components/inputs/rating/rating.jsx +1 -1
  156. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx +1 -1
  157. package/dist/headless/source/components/inputs/selectField/selectField.jsx +1 -1
  158. package/dist/headless/source/components/inputs/slider/slider.jsx +1 -1
  159. package/dist/headless/source/components/inputs/textField/textField.jsx +1 -1
  160. package/dist/headless/source/components/inputs/textField/textFieldAdornment.jsx +1 -1
  161. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx +1 -1
  162. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx +1 -1
  163. package/dist/headless/source/components/inputs/timePicker/timePickerColumns.jsx +1 -1
  164. package/dist/headless/source/components/inputs/timePicker/timePickerInput.jsx +1 -1
  165. package/dist/headless/source/components/inputs/timePicker/timePickerList.jsx +1 -1
  166. package/dist/headless/source/components/inputs/toggle/toggle.jsx +1 -1
  167. package/dist/headless/source/components/inputs/valueSlider/index.js +5 -0
  168. package/dist/headless/source/components/inputs/valueSlider/index.js.map +7 -0
  169. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx +54 -0
  170. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -0
  171. package/dist/headless/source/components/layout/appLayout/appLayout.jsx +11 -8
  172. package/dist/headless/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  173. package/dist/headless/source/components/layout/divider/divider.jsx +1 -1
  174. package/dist/headless/source/components/layout/grid/grid.jsx +1 -1
  175. package/dist/headless/source/components/layout/page/page.jsx +1 -1
  176. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx +1 -1
  177. package/dist/headless/source/components/layout/screenDivider/screenDivider.jsx +1 -1
  178. package/dist/headless/source/components/layout/sheet/sheet.jsx +1 -1
  179. package/dist/headless/source/components/layout/stack/stack.jsx +1 -1
  180. package/dist/headless/source/components/navigation/appBar/appBar.jsx +1 -1
  181. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx +5 -4
  182. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  183. package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx +1 -1
  184. package/dist/headless/source/components/navigation/menu/menu.jsx +1 -1
  185. package/dist/headless/source/components/navigation/menu/menuComponent.jsx +1 -1
  186. package/dist/headless/source/components/navigation/menu/menuDivider.jsx +1 -1
  187. package/dist/headless/source/components/navigation/menu/menuFloating.jsx +1 -1
  188. package/dist/headless/source/components/navigation/menu/menuItem.jsx +1 -1
  189. package/dist/headless/source/components/navigation/menu/menuItemIcon.jsx +1 -1
  190. package/dist/headless/source/components/navigation/menu/menuItemText.jsx +1 -1
  191. package/dist/headless/source/components/navigation/menu/menuList.jsx +1 -1
  192. package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx +1 -1
  193. package/dist/headless/source/components/navigation/overflowMenu/index.js +5 -0
  194. package/dist/headless/source/components/navigation/overflowMenu/index.js.map +7 -0
  195. package/dist/headless/source/components/navigation/overflowMenu/overflowMenu.jsx +60 -0
  196. package/dist/headless/source/components/navigation/overflowMenu/overflowMenu.jsx.map +1 -0
  197. package/dist/headless/source/components/navigation/pagination/pagination.jsx +1 -1
  198. package/dist/headless/source/components/navigation/sidebar/sidebar.jsx +5 -4
  199. package/dist/headless/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
  200. package/dist/headless/source/components/navigation/stepper/stepper.jsx +1 -1
  201. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx +1 -1
  202. package/dist/headless/source/components/navigation/tabs/tabs.jsx +1 -1
  203. package/dist/headless/source/index.js +14 -0
  204. package/dist/headless/source/index.js.map +2 -2
  205. package/dist/index.d.ts +14 -0
  206. package/dist/index.js +278 -264
  207. package/dist/index.js.map +1 -1
  208. package/dist/source/components/base/animateHeight/animateHeight.jsx +1 -1
  209. package/dist/source/components/base/icon/icon.jsx +2 -2
  210. package/dist/source/components/base/icon/icon.jsx.map +1 -1
  211. package/dist/source/components/base/ripple/ripple.jsx +2 -2
  212. package/dist/source/components/base/ripple/ripple.jsx.map +1 -1
  213. package/dist/source/components/clickAwayListener/clickAwayListener.jsx +1 -1
  214. package/dist/source/components/dataDisplay/accordion/accordion.jsx +2 -2
  215. package/dist/source/components/dataDisplay/accordion/accordion.jsx.map +1 -1
  216. package/dist/source/components/dataDisplay/assetGrid/assetGrid.jsx +116 -0
  217. package/dist/source/components/dataDisplay/assetGrid/assetGrid.jsx.map +1 -0
  218. package/dist/source/components/dataDisplay/assetGrid/index.js +5 -0
  219. package/dist/source/components/dataDisplay/assetGrid/index.js.map +7 -0
  220. package/dist/source/components/dataDisplay/avatar/avatar.jsx +2 -2
  221. package/dist/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  222. package/dist/source/components/dataDisplay/badge/badge.jsx +2 -2
  223. package/dist/source/components/dataDisplay/badge/badge.jsx.map +1 -1
  224. package/dist/source/components/dataDisplay/card/card.jsx +2 -2
  225. package/dist/source/components/dataDisplay/card/card.jsx.map +1 -1
  226. package/dist/source/components/dataDisplay/carousel/carousel.jsx +2 -2
  227. package/dist/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
  228. package/dist/source/components/dataDisplay/chat/chat.jsx +2 -2
  229. package/dist/source/components/dataDisplay/chat/chat.jsx.map +1 -1
  230. package/dist/source/components/dataDisplay/chat/chatAttachmentImage.jsx +1 -1
  231. package/dist/source/components/dataDisplay/chat/chatAttachments.jsx +1 -1
  232. package/dist/source/components/dataDisplay/chat/chatComposer.jsx +1 -1
  233. package/dist/source/components/dataDisplay/chat/chatHeader.jsx +1 -1
  234. package/dist/source/components/dataDisplay/chat/chatIconButton.jsx +1 -1
  235. package/dist/source/components/dataDisplay/chat/chatLayout.jsx +1 -1
  236. package/dist/source/components/dataDisplay/chat/chatMessageAvatar.jsx +1 -1
  237. package/dist/source/components/dataDisplay/chat/chatMessageBubble.jsx +1 -1
  238. package/dist/source/components/dataDisplay/chat/chatMessageIncoming.jsx +1 -1
  239. package/dist/source/components/dataDisplay/chat/chatMessageItem.jsx +1 -1
  240. package/dist/source/components/dataDisplay/chat/chatMessageOutgoing.jsx +1 -1
  241. package/dist/source/components/dataDisplay/chat/chatMessageSkeleton.jsx +1 -1
  242. package/dist/source/components/dataDisplay/chat/chatMessageStatus.jsx +1 -1
  243. package/dist/source/components/dataDisplay/chat/chatMessageSystem.jsx +1 -1
  244. package/dist/source/components/dataDisplay/chat/chatMessages.jsx +1 -1
  245. package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx +1 -1
  246. package/dist/source/components/dataDisplay/chat/chatShell.jsx +1 -1
  247. package/dist/source/components/dataDisplay/chip/chip.jsx +2 -2
  248. package/dist/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  249. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx +51 -0
  250. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -0
  251. package/dist/source/components/dataDisplay/chipGroup/index.js +5 -0
  252. package/dist/source/components/dataDisplay/chipGroup/index.js.map +7 -0
  253. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +2 -2
  254. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
  255. package/dist/source/components/dataDisplay/imagesList/imagesList.jsx +2 -2
  256. package/dist/source/components/dataDisplay/imagesList/imagesList.jsx.map +1 -1
  257. package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx +2 -2
  258. package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItem.jsx.map +1 -1
  259. package/dist/source/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.jsx +1 -1
  260. package/dist/source/components/dataDisplay/lazyImage/index.js +5 -0
  261. package/dist/source/components/dataDisplay/lazyImage/index.js.map +7 -0
  262. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx +65 -0
  263. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -0
  264. package/dist/source/components/dataDisplay/list/list.jsx +2 -2
  265. package/dist/source/components/dataDisplay/list/list.jsx.map +1 -1
  266. package/dist/source/components/dataDisplay/list/listItem.jsx +1 -1
  267. package/dist/source/components/dataDisplay/table/table.jsx +2 -2
  268. package/dist/source/components/dataDisplay/table/table.jsx.map +1 -1
  269. package/dist/source/components/dataDisplay/table/tableBody.jsx +1 -1
  270. package/dist/source/components/dataDisplay/table/tableCell.jsx +1 -1
  271. package/dist/source/components/dataDisplay/table/tableHead.jsx +1 -1
  272. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx +1 -1
  273. package/dist/source/components/dataDisplay/table/tablePagination/tablePagination.jsx +2 -2
  274. package/dist/source/components/dataDisplay/table/tablePagination/tablePagination.jsx.map +1 -1
  275. package/dist/source/components/dataDisplay/table/tableRow.jsx +1 -1
  276. package/dist/source/components/dataDisplay/thumbCard/index.js +5 -0
  277. package/dist/source/components/dataDisplay/thumbCard/index.js.map +7 -0
  278. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx +94 -0
  279. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -0
  280. package/dist/source/components/dataDisplay/treeView/treeView.jsx +2 -2
  281. package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  282. package/dist/source/components/dataDisplay/typography/typography.jsx +2 -2
  283. package/dist/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  284. package/dist/source/components/feedBack/message/message.jsx +2 -2
  285. package/dist/source/components/feedBack/message/message.jsx.map +1 -1
  286. package/dist/source/components/feedBack/modal/modal.jsx +2 -2
  287. package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
  288. package/dist/source/components/feedBack/progressIndicator/progressIndicator.jsx +2 -2
  289. package/dist/source/components/feedBack/progressIndicator/progressIndicator.jsx.map +1 -1
  290. package/dist/source/components/feedBack/saveAssetDialog/index.js +5 -0
  291. package/dist/source/components/feedBack/saveAssetDialog/index.js.map +7 -0
  292. package/dist/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx +66 -0
  293. package/dist/source/components/feedBack/saveAssetDialog/saveAssetDialog.jsx.map +1 -0
  294. package/dist/source/components/feedBack/skeleton/skeleton.jsx +2 -2
  295. package/dist/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
  296. package/dist/source/components/feedBack/snackbar/snackbar.jsx +2 -2
  297. package/dist/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
  298. package/dist/source/components/feedBack/tooltip/tooltip.jsx +2 -2
  299. package/dist/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  300. package/dist/source/components/inputs/button/button.jsx +2 -2
  301. package/dist/source/components/inputs/button/button.jsx.map +1 -1
  302. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx +2 -2
  303. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
  304. package/dist/source/components/inputs/checkbox/checkbox.jsx +2 -2
  305. package/dist/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
  306. package/dist/source/components/inputs/datePicker/dataPickerDays.jsx +1 -1
  307. package/dist/source/components/inputs/datePicker/dataPickerHeader.jsx +1 -1
  308. package/dist/source/components/inputs/datePicker/dataPickerInput.jsx +1 -1
  309. package/dist/source/components/inputs/datePicker/datePicker.jsx +2 -2
  310. package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  311. package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx +1 -1
  312. package/dist/source/components/inputs/datePicker/datePickerDay.jsx +1 -1
  313. package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx +1 -1
  314. package/dist/source/components/inputs/datePicker/datePickerList.jsx +1 -1
  315. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx +1 -1
  316. package/dist/source/components/inputs/dateTimePicker/dateTimePickerInput.jsx +1 -1
  317. package/dist/source/components/inputs/fileDrop/countPreview.jsx +1 -1
  318. package/dist/source/components/inputs/fileDrop/fileDrop.jsx +2 -2
  319. package/dist/source/components/inputs/fileDrop/fileDrop.jsx.map +1 -1
  320. package/dist/source/components/inputs/fileDrop/preview.jsx +1 -1
  321. package/dist/source/components/inputs/fileDrop/previewWrapper.jsx +1 -1
  322. package/dist/source/components/inputs/fileInput/fileInput.jsx +2 -2
  323. package/dist/source/components/inputs/fileInput/fileInput.jsx.map +1 -1
  324. package/dist/source/components/inputs/floatingButton/floatingButton.jsx +2 -2
  325. package/dist/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
  326. package/dist/source/components/inputs/radioButton/radioButton.jsx +2 -2
  327. package/dist/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
  328. package/dist/source/components/inputs/rating/rating.jsx +2 -2
  329. package/dist/source/components/inputs/rating/rating.jsx.map +1 -1
  330. package/dist/source/components/inputs/selectField/dropdownMenu.jsx +1 -1
  331. package/dist/source/components/inputs/selectField/selectField.jsx +2 -2
  332. package/dist/source/components/inputs/selectField/selectField.jsx.map +1 -1
  333. package/dist/source/components/inputs/slider/slider.jsx +2 -2
  334. package/dist/source/components/inputs/slider/slider.jsx.map +1 -1
  335. package/dist/source/components/inputs/textField/textField.jsx +2 -2
  336. package/dist/source/components/inputs/textField/textField.jsx.map +1 -1
  337. package/dist/source/components/inputs/textField/textFieldAdornment.jsx +1 -1
  338. package/dist/source/components/inputs/textField/textFieldWrapper.jsx +1 -1
  339. package/dist/source/components/inputs/timePicker/timePicker.jsx +2 -2
  340. package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  341. package/dist/source/components/inputs/timePicker/timePickerColumns.jsx +1 -1
  342. package/dist/source/components/inputs/timePicker/timePickerInput.jsx +1 -1
  343. package/dist/source/components/inputs/timePicker/timePickerList.jsx +1 -1
  344. package/dist/source/components/inputs/toggle/toggle.jsx +2 -2
  345. package/dist/source/components/inputs/toggle/toggle.jsx.map +1 -1
  346. package/dist/source/components/inputs/valueSlider/index.js +5 -0
  347. package/dist/source/components/inputs/valueSlider/index.js.map +7 -0
  348. package/dist/source/components/inputs/valueSlider/valueSlider.jsx +55 -0
  349. package/dist/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -0
  350. package/dist/source/components/layout/appLayout/appLayout.jsx +12 -9
  351. package/dist/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  352. package/dist/source/components/layout/divider/divider.jsx +2 -2
  353. package/dist/source/components/layout/divider/divider.jsx.map +1 -1
  354. package/dist/source/components/layout/grid/grid.jsx +2 -2
  355. package/dist/source/components/layout/grid/grid.jsx.map +1 -1
  356. package/dist/source/components/layout/page/page.jsx +2 -2
  357. package/dist/source/components/layout/page/page.jsx.map +1 -1
  358. package/dist/source/components/layout/pageHeader/pageHeader.jsx +2 -2
  359. package/dist/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  360. package/dist/source/components/layout/screenDivider/screenDivider.jsx +2 -2
  361. package/dist/source/components/layout/screenDivider/screenDivider.jsx.map +1 -1
  362. package/dist/source/components/layout/sheet/sheet.jsx +2 -2
  363. package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
  364. package/dist/source/components/layout/stack/stack.jsx +2 -2
  365. package/dist/source/components/layout/stack/stack.jsx.map +1 -1
  366. package/dist/source/components/navigation/appBar/appBar.jsx +2 -2
  367. package/dist/source/components/navigation/appBar/appBar.jsx.map +1 -1
  368. package/dist/source/components/navigation/bottomBar/bottomBar.jsx +6 -5
  369. package/dist/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  370. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx +2 -2
  371. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
  372. package/dist/source/components/navigation/menu/menu.jsx +2 -2
  373. package/dist/source/components/navigation/menu/menu.jsx.map +1 -1
  374. package/dist/source/components/navigation/menu/menuComponent.jsx +1 -1
  375. package/dist/source/components/navigation/menu/menuDivider.jsx +1 -1
  376. package/dist/source/components/navigation/menu/menuFloating.jsx +1 -1
  377. package/dist/source/components/navigation/menu/menuItem.jsx +1 -1
  378. package/dist/source/components/navigation/menu/menuItemIcon.jsx +1 -1
  379. package/dist/source/components/navigation/menu/menuItemText.jsx +1 -1
  380. package/dist/source/components/navigation/menu/menuList.jsx +1 -1
  381. package/dist/source/components/navigation/menu/menuSubmenu.jsx +1 -1
  382. package/dist/source/components/navigation/overflowMenu/index.js +5 -0
  383. package/dist/source/components/navigation/overflowMenu/index.js.map +7 -0
  384. package/dist/source/components/navigation/overflowMenu/overflowMenu.jsx +61 -0
  385. package/dist/source/components/navigation/overflowMenu/overflowMenu.jsx.map +1 -0
  386. package/dist/source/components/navigation/pagination/pagination.jsx +2 -2
  387. package/dist/source/components/navigation/pagination/pagination.jsx.map +1 -1
  388. package/dist/source/components/navigation/sidebar/sidebar.jsx +6 -5
  389. package/dist/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
  390. package/dist/source/components/navigation/stepper/stepper.jsx +2 -2
  391. package/dist/source/components/navigation/stepper/stepper.jsx.map +1 -1
  392. package/dist/source/components/navigation/tabs/tab/tab.jsx +2 -2
  393. package/dist/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  394. package/dist/source/components/navigation/tabs/tabs.jsx +2 -2
  395. package/dist/source/components/navigation/tabs/tabs.jsx.map +1 -1
  396. package/dist/source/index.js +14 -0
  397. package/dist/source/index.js.map +2 -2
  398. package/package.json +9 -5
  399. package/dist/headless/source/ssr-published.ssr-spec.jsx +0 -35
  400. package/dist/headless/source/ssr-published.ssr-spec.jsx.map +0 -1
  401. package/dist/headless/source/ssr.ssr-spec.jsx +0 -113
  402. package/dist/headless/source/ssr.ssr-spec.jsx.map +0 -1
  403. package/dist/source/ssr-published.ssr-spec.jsx +0 -35
  404. package/dist/source/ssr-published.ssr-spec.jsx.map +0 -1
  405. package/dist/source/ssr.ssr-spec.jsx +0 -113
  406. package/dist/source/ssr.ssr-spec.jsx.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valueSlider.js","sources":["../../../../../src/components/inputs/valueSlider/valueSlider.tsx"],"sourcesContent":["import { type JSX, Show, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Slider, type SliderProps, type SliderValue } from \"../slider\";\n\nexport interface ValueSliderProps extends SliderProps {\n /**\n * Read-only value readout beside the label. `true` shows the raw value; pass a\n * formatter for units/precision (e.g. `(v) => `${v}%``). Reflects `props.value`.\n */\n readout?: boolean | ((value: SliderValue | undefined) => string);\n /** Content at the end of the header row — a reset button, a favourite star, etc. */\n endAdornment?: JSX.Element;\n /** Renders a built-in reset control in the header; called on click. */\n onReset?: () => void;\n /** Accessible label for the reset control. */\n resetLabel?: string;\n}\n\nconst formatReadout = (\n readout: ValueSliderProps[\"readout\"],\n value: SliderValue | undefined,\n): string => {\n if (typeof readout === \"function\") return readout(value);\n if (Array.isArray(value)) return `${value[0]} – ${value[1]}`;\n return value == null ? \"\" : String(value);\n};\n\n/**\n * `Slider` plus the value-readout + adornment header row every app rebuilds: a\n * read-only formatted value next to the label, an optional reset \"eraser\", and an\n * `endAdornment` slot (favourite star, etc.). A drop-in preset — all `Slider`\n * props pass through; the label is rendered in the header instead of inside Slider.\n */\nexport function ValueSlider(props: ValueSliderProps): JSX.Element {\n const [local, sliderProps] = splitProps(props, [\n \"readout\",\n \"endAdornment\",\n \"onReset\",\n \"resetLabel\",\n \"label\",\n \"class\",\n ]);\n\n const hasReadout = (): boolean => local.readout !== undefined && local.readout !== false;\n const showHeader = (): boolean =>\n local.label != null || hasReadout() || local.endAdornment != null || local.onReset != null;\n\n return (\n <div class={cn(\"smwb-value-slider\", local.class)}>\n <Show when={showHeader()}>\n <div class=\"smwb-value-slider__header\">\n <Show when={local.label != null}>\n <span class=\"smwb-value-slider__label\">{local.label}</span>\n </Show>\n <span class=\"smwb-value-slider__spacer\" />\n <Show when={hasReadout()}>\n <span class=\"smwb-value-slider__readout\">{formatReadout(local.readout, sliderProps.value)}</span>\n </Show>\n {local.endAdornment}\n <Show when={local.onReset != null}>\n <button\n type=\"button\"\n class=\"smwb-value-slider__reset\"\n aria-label={local.resetLabel ?? \"Reset\"}\n disabled={sliderProps.disabled}\n onClick={() => local.onReset?.()}\n >\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M3 12a9 9 0 1 0 3-6.7M3 4v4h4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </button>\n </Show>\n </div>\n </Show>\n <Slider {...sliderProps} />\n </div>\n );\n}\n\nexport default ValueSlider;\n"],"names":["formatReadout","readout","value","Array","isArray","String","ValueSlider","props","local","sliderProps","splitProps","hasReadout","undefined","showHeader","label","endAdornment","onReset","_el$","_tmpl$5","_$insert","_$createComponent","Show","when","children","_el$2","_tmpl$4","_el$4","firstChild","_el$3","_tmpl$","_el$5","_tmpl$2","_el$6","_tmpl$3","$$click","_$effect","_p$","_v$","resetLabel","_v$2","disabled","e","_$setAttribute","t","Slider","_$className","cn","class","_$delegateEvents"],"mappings":";;;;;AAkBA,MAAMA,IAAgBA,CACpBC,GACAC,MAEI,OAAOD,KAAY,aAAmBA,EAAQC,CAAK,IACnDC,MAAMC,QAAQF,CAAK,IAAU,GAAGA,EAAM,CAAC,CAAC,MAAMA,EAAM,CAAC,CAAC,KACnDA,KAAS,OAAO,KAAKG,OAAOH,CAAK;AASnC,SAASI,EAAYC,GAAsC;AAChE,QAAM,CAACC,GAAOC,CAAW,IAAIC,EAAWH,GAAO,CAC7C,WACA,gBACA,WACA,cACA,SACA,OAAO,CACR,GAEKI,IAAaA,MAAeH,EAAMP,YAAYW,UAAaJ,EAAMP,YAAY,IAC7EY,IAAaA,MACjBL,EAAMM,SAAS,QAAQH,OAAgBH,EAAMO,gBAAgB,QAAQP,EAAMQ,WAAW;AAExF,UAAA,MAAA;AAAA,QAAAC,IAAAC,EAAAA;AAAAC,WAAAA,EAAAF,GAAAG,EAEKC,GAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAET,EAAAA;AAAAA,MAAY;AAAA,MAAA,IAAAU,WAAA;AAAA,YAAAC,IAAAC,EAAAA,GAAAC,IAAAF,EAAAG;AAAAR,eAAAA,EAAAK,GAAAJ,EAEnBC,GAAI;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEd,EAAMM,SAAS;AAAA,UAAI;AAAA,UAAA,IAAAS,WAAA;AAAA,gBAAAK,IAAAC,EAAAA;AAAAV,mBAAAA,EAAAS,GAAA,MACWpB,EAAMM,KAAK,GAAAc;AAAAA,UAAA;AAAA,QAAA,CAAA,GAAAF,CAAA,GAAAP,EAAAK,GAAAJ,EAGpDC,GAAI;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEX,EAAAA;AAAAA,UAAY;AAAA,UAAA,IAAAY,WAAA;AAAA,gBAAAO,IAAAC,EAAAA;AAAAZ,mBAAAA,EAAAW,GAAA,MACoB9B,EAAcQ,EAAMP,SAASQ,EAAYP,KAAK,CAAC,GAAA4B;AAAAA,UAAA;AAAA,QAAA,CAAA,GAAA,IAAA,GAAAX,EAAAK,GAAA,MAE1FhB,EAAMO,cAAY,IAAA,GAAAI,EAAAK,GAAAJ,EAClBC,GAAI;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEd,EAAMQ,WAAW;AAAA,UAAI;AAAA,UAAA,IAAAO,WAAA;AAAA,gBAAAS,IAAAC,EAAAA;AAAAD,mBAAAA,EAAAE,UAMpB,MAAM1B,EAAMQ,UAAAA,GAAWmB,EAAAC,CAAAA,MAAA;AAAA,kBAAAC,IAFpB7B,EAAM8B,cAAc,SAAOC,IAC7B9B,EAAY+B;AAAQH,qBAAAA,MAAAD,EAAAK,KAAAC,EAAAV,GAAA,cAAAI,EAAAK,IAAAJ,CAAA,GAAAE,MAAAH,EAAAO,MAAAX,EAAAQ,WAAAJ,EAAAO,IAAAJ,IAAAH;AAAAA,YAAA,GAAA;AAAA,cAAAK,GAAA7B;AAAAA,cAAA+B,GAAA/B;AAAAA,YAAAA,CAAA,GAAAoB;AAAAA,UAAA;AAAA,QAAA,CAAA,GAAA,IAAA,GAAAR;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAA,IAAA,GAAAL,EAAAF,GAAAG,EAUrCwB,GAAWnC,CAAW,GAAA,IAAA,GAAA0B,EAAA,MAAAU,EAAA5B,GA1Bb6B,EAAG,qBAAqBtC,EAAMuC,KAAK,CAAC,CAAA,GAAA9B;AAAAA,EAAA,GAAA;AA6BpD;AAE2B+B,EAAA,CAAA,OAAA,CAAA;"}
@@ -1,76 +1,76 @@
1
- import { use as k, spread as S, mergeProps as T, insert as a, createComponent as s, setAttribute as c, effect as W, template as o, delegateEvents as A } from "solid-js/web";
2
- import { mergeProps as L, splitProps as P, Show as n } from "solid-js";
3
- import x from "clsx";
4
- import { createControllableState as H } from "../../../primitives/createControllableState.js";
5
- import { createId as I } from "../../../primitives/createId.js";
6
- import { mergeRefs as j } from "../../../primitives/mergeRefs.js";
7
- import { Icon as z } from "../../base/icon/icon.js";
8
- var E = /* @__PURE__ */ o("<div class=smwb-app-layout__header>"), R = /* @__PURE__ */ o("<div class=smwb-app-layout__collapse>"), V = /* @__PURE__ */ o("<aside class=smwb-app-layout__sidebar>"), q = /* @__PURE__ */ o("<div class=smwb-app-layout__footer>"), B = /* @__PURE__ */ o("<div><div class=smwb-app-layout__body><div class=smwb-app-layout__content>"), D = /* @__PURE__ */ o("<button type=button class=smwb-app-layout__collapse-btn>");
9
- const y = (d) => typeof d == "number" ? `${d}px` : d;
10
- function Q(d) {
11
- const v = L({
1
+ import { use as A, spread as L, mergeProps as P, insert as t, createComponent as s, setAttribute as c, effect as x, template as o, delegateEvents as H } from "solid-js/web";
2
+ import { mergeProps as I, splitProps as j, children as m, Show as p } from "solid-js";
3
+ import z from "clsx";
4
+ import { createControllableState as E } from "../../../primitives/createControllableState.js";
5
+ import { createId as R } from "../../../primitives/createId.js";
6
+ import { mergeRefs as V } from "../../../primitives/mergeRefs.js";
7
+ import { Icon as q } from "../../base/icon/icon.js";
8
+ var B = /* @__PURE__ */ o("<div class=smwb-app-layout__header>"), D = /* @__PURE__ */ o("<div class=smwb-app-layout__collapse>"), F = /* @__PURE__ */ o("<aside class=smwb-app-layout__sidebar>"), G = /* @__PURE__ */ o("<div class=smwb-app-layout__footer>"), J = /* @__PURE__ */ o("<div><div class=smwb-app-layout__body><div class=smwb-app-layout__content>"), K = /* @__PURE__ */ o("<button type=button class=smwb-app-layout__collapse-btn>");
9
+ const $ = (d) => typeof d == "number" ? `${d}px` : d;
10
+ function Z(d) {
11
+ const S = I({
12
12
  sidebarWidth: 260,
13
13
  defaultSidebarCollapsed: !1,
14
14
  collapsible: !1,
15
15
  collapseToggleAriaLabel: "Toggle navigation",
16
16
  sidebarCollapsedWidth: 72,
17
17
  stickyHeader: !0
18
- }, d), [e, C] = P(v, ["header", "sidebar", "footer", "sidebarWidth", "sidebarCollapsed", "defaultSidebarCollapsed", "onSidebarCollapsedChange", "collapsible", "collapseToggle", "collapseToggleAriaLabel", "sidebarCollapsedWidth", "stickyHeader", "class", "style", "children", "ref"]), [i, w] = H({
18
+ }, d), [e, k] = j(S, ["header", "sidebar", "footer", "sidebarWidth", "sidebarCollapsed", "defaultSidebarCollapsed", "onSidebarCollapsedChange", "collapsible", "collapseToggle", "collapseToggleAriaLabel", "sidebarCollapsedWidth", "stickyHeader", "class", "style", "children", "ref"]), [i, T] = E({
19
19
  value: () => e.sidebarCollapsed,
20
20
  defaultValue: e.defaultSidebarCollapsed,
21
- onChange: (t) => e.onSidebarCollapsedChange?.(t)
22
- }), m = I(), $ = () => ({
23
- "--smui-app-sidebar-w": i() ? y(e.sidebarCollapsedWidth) : y(e.sidebarWidth),
21
+ onChange: (a) => e.onSidebarCollapsedChange?.(a)
22
+ }), g = R(), f = m(() => e.header), h = m(() => e.sidebar), _ = m(() => e.footer), W = () => ({
23
+ "--smui-app-sidebar-w": i() ? $(e.sidebarCollapsedWidth) : $(e.sidebarWidth),
24
24
  ...typeof e.style == "object" && e.style ? e.style : {}
25
25
  });
26
26
  return (() => {
27
- var t = B(), u = t.firstChild, b = u.firstChild, g = j(e.ref);
28
- return typeof g == "function" && k(g, t), S(t, T(C, {
27
+ var a = J(), u = a.firstChild, b = u.firstChild, y = V(e.ref);
28
+ return typeof y == "function" && A(y, a), L(a, P(k, {
29
29
  "data-testid": "app-layout",
30
30
  get class() {
31
- return x("smwb-app-layout", {
31
+ return z("smwb-app-layout", {
32
32
  "smwb-app-layout_sticky-header": e.stickyHeader,
33
33
  "smwb-app-layout_collapsed": i()
34
34
  }, e.class);
35
35
  },
36
36
  get style() {
37
- return $();
37
+ return W();
38
38
  }
39
- }), !1, !0), a(t, s(n, {
39
+ }), !1, !0), t(a, s(p, {
40
40
  get when() {
41
- return e.header;
41
+ return f();
42
42
  },
43
43
  get children() {
44
- var l = E();
45
- return a(l, () => e.header), l;
44
+ var l = B();
45
+ return t(l, f), l;
46
46
  }
47
- }), u), a(u, s(n, {
47
+ }), u), t(u, s(p, {
48
48
  get when() {
49
- return e.sidebar;
49
+ return h();
50
50
  },
51
51
  get children() {
52
- var l = V();
53
- return c(l, "id", m), a(l, s(n, {
52
+ var l = F();
53
+ return c(l, "id", g), t(l, s(p, {
54
54
  get when() {
55
55
  return e.collapsible;
56
56
  },
57
57
  get children() {
58
- var f = R();
59
- return a(f, s(n, {
58
+ var v = D();
59
+ return t(v, s(p, {
60
60
  get when() {
61
61
  return e.collapseToggle;
62
62
  },
63
63
  get fallback() {
64
64
  return (() => {
65
- var r = D();
66
- return r.$$click = () => w(!i()), c(r, "aria-controls", m), a(r, s(z, {
65
+ var r = K();
66
+ return r.$$click = () => T(!i()), c(r, "aria-controls", g), t(r, s(q, {
67
67
  get name() {
68
68
  return i() ? "chevron_right" : "chevron_left";
69
69
  },
70
70
  size: 20
71
- })), W((p) => {
72
- var h = e.collapseToggleAriaLabel, _ = !i();
73
- return h !== p.e && c(r, "aria-label", p.e = h), _ !== p.t && c(r, "aria-expanded", p.t = _), p;
71
+ })), x((n) => {
72
+ var C = e.collapseToggleAriaLabel, w = !i();
73
+ return C !== n.e && c(r, "aria-label", n.e = C), w !== n.t && c(r, "aria-expanded", n.t = w), n;
74
74
  }, {
75
75
  e: void 0,
76
76
  t: void 0
@@ -80,23 +80,23 @@ function Q(d) {
80
80
  get children() {
81
81
  return e.collapseToggle;
82
82
  }
83
- })), f;
83
+ })), v;
84
84
  }
85
- }), null), a(l, () => e.sidebar, null), l;
85
+ }), null), t(l, h, null), l;
86
86
  }
87
- }), b), a(b, () => e.children, null), a(b, s(n, {
87
+ }), b), t(b, () => e.children, null), t(b, s(p, {
88
88
  get when() {
89
- return e.footer;
89
+ return _();
90
90
  },
91
91
  get children() {
92
- var l = q();
93
- return a(l, () => e.footer), l;
92
+ var l = G();
93
+ return t(l, _), l;
94
94
  }
95
- }), null), t;
95
+ }), null), a;
96
96
  })();
97
97
  }
98
- A(["click"]);
98
+ H(["click"]);
99
99
  export {
100
- Q as AppLayout
100
+ Z as AppLayout
101
101
  };
102
102
  //# sourceMappingURL=appLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"appLayout.js","sources":["../../../../../src/components/layout/appLayout/appLayout.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { createControllableState } from \"../../../primitives/createControllableState\";\nimport { createId } from \"../../../primitives/createId\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface AppLayoutProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /** Top bar slot (e.g. <AppBar />). Spans full width. */\n header?: JSX.Element;\n /** Side navigation slot (e.g. <Sidebar />). */\n sidebar?: JSX.Element;\n /** Footer slot, below the content. */\n footer?: JSX.Element;\n /** Sidebar width (px or any CSS length). */\n sidebarWidth?: number | string;\n /** Controlled collapsed state of the sidebar rail. */\n sidebarCollapsed?: boolean;\n /** Initial collapsed state (uncontrolled). */\n defaultSidebarCollapsed?: boolean;\n /** Called whenever the collapsed state changes. */\n onSidebarCollapsedChange?: (collapsed: boolean) => void;\n /** Renders a built-in toggle button to collapse/expand the sidebar. */\n collapsible?: boolean;\n /** Custom toggle node replacing the default icon button. */\n collapseToggle?: JSX.Element;\n /** Accessible label for the default toggle button. */\n collapseToggleAriaLabel?: string;\n /** Sidebar collapsed width. */\n sidebarCollapsedWidth?: number | string;\n /** Keep the header pinned while content scrolls. */\n stickyHeader?: boolean;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst len = (v: number | string): string => (typeof v === \"number\" ? `${v}px` : v);\n\nexport function AppLayout(props: ParentProps<AppLayoutProps>): JSX.Element {\n const merged = mergeProps(\n {\n sidebarWidth: 260 as number | string,\n defaultSidebarCollapsed: false,\n collapsible: false,\n collapseToggleAriaLabel: \"Toggle navigation\",\n sidebarCollapsedWidth: 72 as number | string,\n stickyHeader: true,\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"header\",\n \"sidebar\",\n \"footer\",\n \"sidebarWidth\",\n \"sidebarCollapsed\",\n \"defaultSidebarCollapsed\",\n \"onSidebarCollapsedChange\",\n \"collapsible\",\n \"collapseToggle\",\n \"collapseToggleAriaLabel\",\n \"sidebarCollapsedWidth\",\n \"stickyHeader\",\n \"class\",\n \"style\",\n \"children\",\n \"ref\",\n ]);\n\n const [collapsed, setCollapsed] = createControllableState<boolean>({\n value: () => local.sidebarCollapsed,\n defaultValue: local.defaultSidebarCollapsed,\n onChange: (next) => local.onSidebarCollapsedChange?.(next),\n });\n\n const sidebarId = createId();\n\n const style = (): JSX.CSSProperties => ({\n \"--smui-app-sidebar-w\": collapsed() ? len(local.sidebarCollapsedWidth) : len(local.sidebarWidth),\n ...(typeof local.style === \"object\" && local.style ? local.style : {}),\n });\n\n return (\n <div\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"app-layout\"\n class={cn(\n \"smwb-app-layout\",\n { \"smwb-app-layout_sticky-header\": local.stickyHeader, \"smwb-app-layout_collapsed\": collapsed() },\n local.class\n )}\n style={style()}\n >\n <Show when={local.header}>\n <div class=\"smwb-app-layout__header\">{local.header}</div>\n </Show>\n <div class=\"smwb-app-layout__body\">\n <Show when={local.sidebar}>\n <aside id={sidebarId} class=\"smwb-app-layout__sidebar\">\n <Show when={local.collapsible}>\n <div class=\"smwb-app-layout__collapse\">\n <Show\n when={local.collapseToggle}\n fallback={\n <button\n type=\"button\"\n class=\"smwb-app-layout__collapse-btn\"\n aria-label={local.collapseToggleAriaLabel}\n aria-expanded={!collapsed()}\n aria-controls={sidebarId}\n onClick={() => setCollapsed(!collapsed())}\n >\n <Icon name={collapsed() ? \"chevron_right\" : \"chevron_left\"} size={20} />\n </button>\n }\n >\n {local.collapseToggle}\n </Show>\n </div>\n </Show>\n {local.sidebar}\n </aside>\n </Show>\n <div class=\"smwb-app-layout__content\">\n {local.children}\n <Show when={local.footer}>\n <div class=\"smwb-app-layout__footer\">{local.footer}</div>\n </Show>\n </div>\n </div>\n </div>\n );\n}\n\nexport default AppLayout;\n"],"names":["len","v","AppLayout","props","merged","mergeProps","sidebarWidth","defaultSidebarCollapsed","collapsible","collapseToggleAriaLabel","sidebarCollapsedWidth","stickyHeader","local","rest","splitProps","collapsed","setCollapsed","createControllableState","value","sidebarCollapsed","defaultValue","onChange","next","onSidebarCollapsedChange","sidebarId","createId","style","_el$","_tmpl$5","_el$3","firstChild","_el$6","_ref$","mergeRefs","ref","_$use","_$spread","_$mergeProps","cn","class","_$insert","_$createComponent","Show","when","header","children","_el$2","_tmpl$","sidebar","_el$4","_tmpl$3","_$setAttribute","_el$5","_tmpl$2","collapseToggle","fallback","_el$8","_tmpl$6","$$click","Icon","name","size","_$effect","_p$","_v$","_v$2","e","t","undefined","footer","_el$7","_tmpl$4","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"appLayout.js","sources":["../../../../../src/components/layout/appLayout/appLayout.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, children, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { createControllableState } from \"../../../primitives/createControllableState\";\nimport { createId } from \"../../../primitives/createId\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface AppLayoutProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /** Top bar slot (e.g. <AppBar />). Spans full width. */\n header?: JSX.Element;\n /** Side navigation slot (e.g. <Sidebar />). */\n sidebar?: JSX.Element;\n /** Footer slot, below the content. */\n footer?: JSX.Element;\n /** Sidebar width (px or any CSS length). */\n sidebarWidth?: number | string;\n /** Controlled collapsed state of the sidebar rail. */\n sidebarCollapsed?: boolean;\n /** Initial collapsed state (uncontrolled). */\n defaultSidebarCollapsed?: boolean;\n /** Called whenever the collapsed state changes. */\n onSidebarCollapsedChange?: (collapsed: boolean) => void;\n /** Renders a built-in toggle button to collapse/expand the sidebar. */\n collapsible?: boolean;\n /** Custom toggle node replacing the default icon button. */\n collapseToggle?: JSX.Element;\n /** Accessible label for the default toggle button. */\n collapseToggleAriaLabel?: string;\n /** Sidebar collapsed width. */\n sidebarCollapsedWidth?: number | string;\n /** Keep the header pinned while content scrolls. */\n stickyHeader?: boolean;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst len = (v: number | string): string => (typeof v === \"number\" ? `${v}px` : v);\n\nexport function AppLayout(props: ParentProps<AppLayoutProps>): JSX.Element {\n const merged = mergeProps(\n {\n sidebarWidth: 260 as number | string,\n defaultSidebarCollapsed: false,\n collapsible: false,\n collapseToggleAriaLabel: \"Toggle navigation\",\n sidebarCollapsedWidth: 72 as number | string,\n stickyHeader: true,\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"header\",\n \"sidebar\",\n \"footer\",\n \"sidebarWidth\",\n \"sidebarCollapsed\",\n \"defaultSidebarCollapsed\",\n \"onSidebarCollapsedChange\",\n \"collapsible\",\n \"collapseToggle\",\n \"collapseToggleAriaLabel\",\n \"sidebarCollapsedWidth\",\n \"stickyHeader\",\n \"class\",\n \"style\",\n \"children\",\n \"ref\",\n ]);\n\n const [collapsed, setCollapsed] = createControllableState<boolean>({\n value: () => local.sidebarCollapsed,\n defaultValue: local.defaultSidebarCollapsed,\n onChange: (next) => local.onSidebarCollapsedChange?.(next),\n });\n\n const sidebarId = createId();\n\n // Resolve slot props through `children()` so each is created once, in THIS\n // component's reactive context. A pre-created element passed straight into a\n // <Show> gets its hydration key at the caller's position but renders at the\n // Show's, so the hydration walk can't find it (\"Unable to find DOM nodes for\n // key\"). Resolving here keeps the key sequence aligned on server and client.\n const headerSlot = children(() => local.header);\n const sidebarSlot = children(() => local.sidebar);\n const footerSlot = children(() => local.footer);\n\n const style = (): JSX.CSSProperties => ({\n \"--smui-app-sidebar-w\": collapsed() ? len(local.sidebarCollapsedWidth) : len(local.sidebarWidth),\n ...(typeof local.style === \"object\" && local.style ? local.style : {}),\n });\n\n return (\n <div\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"app-layout\"\n class={cn(\n \"smwb-app-layout\",\n { \"smwb-app-layout_sticky-header\": local.stickyHeader, \"smwb-app-layout_collapsed\": collapsed() },\n local.class\n )}\n style={style()}\n >\n <Show when={headerSlot()}>\n <div class=\"smwb-app-layout__header\">{headerSlot()}</div>\n </Show>\n <div class=\"smwb-app-layout__body\">\n <Show when={sidebarSlot()}>\n <aside id={sidebarId} class=\"smwb-app-layout__sidebar\">\n <Show when={local.collapsible}>\n <div class=\"smwb-app-layout__collapse\">\n <Show\n when={local.collapseToggle}\n fallback={\n <button\n type=\"button\"\n class=\"smwb-app-layout__collapse-btn\"\n aria-label={local.collapseToggleAriaLabel}\n aria-expanded={!collapsed()}\n aria-controls={sidebarId}\n onClick={() => setCollapsed(!collapsed())}\n >\n <Icon name={collapsed() ? \"chevron_right\" : \"chevron_left\"} size={20} />\n </button>\n }\n >\n {local.collapseToggle}\n </Show>\n </div>\n </Show>\n {sidebarSlot()}\n </aside>\n </Show>\n <div class=\"smwb-app-layout__content\">\n {local.children}\n <Show when={footerSlot()}>\n <div class=\"smwb-app-layout__footer\">{footerSlot()}</div>\n </Show>\n </div>\n </div>\n </div>\n );\n}\n\nexport default AppLayout;\n"],"names":["len","v","AppLayout","props","merged","mergeProps","sidebarWidth","defaultSidebarCollapsed","collapsible","collapseToggleAriaLabel","sidebarCollapsedWidth","stickyHeader","local","rest","splitProps","collapsed","setCollapsed","createControllableState","value","sidebarCollapsed","defaultValue","onChange","next","onSidebarCollapsedChange","sidebarId","createId","headerSlot","children","header","sidebarSlot","sidebar","footerSlot","footer","style","_el$","_tmpl$5","_el$3","firstChild","_el$6","_ref$","mergeRefs","ref","_$use","_$spread","_$mergeProps","cn","class","_$insert","_$createComponent","Show","when","_el$2","_tmpl$","_el$4","_tmpl$3","_$setAttribute","_el$5","_tmpl$2","collapseToggle","fallback","_el$8","_tmpl$6","$$click","Icon","name","size","_$effect","_p$","_v$","_v$2","e","t","undefined","_el$7","_tmpl$4","_$delegateEvents"],"mappings":"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"}
@@ -1,19 +1,20 @@
1
1
  import { use as L, spread as S, mergeProps as M, insert as c, createComponent as t, template as b, Dynamic as V } from "solid-js/web";
2
- import { mergeProps as z, splitProps as O, createSignal as _, For as A, Show as s } from "solid-js";
2
+ import { mergeProps as z, splitProps as O, createSignal as _, For as A, Show as s, children as E } from "solid-js";
3
3
  import P from "clsx";
4
- import { createControllableState as E } from "../../../primitives/createControllableState.js";
4
+ import { createControllableState as F } from "../../../primitives/createControllableState.js";
5
5
  import { mergeRefs as k } from "../../../primitives/mergeRefs.js";
6
6
  import { callHandler as C } from "../../../primitives/callHandler.js";
7
- import { Icon as F } from "../../base/icon/icon.js";
8
- import { Menu as H } from "../menu/menu.js";
9
- import { MenuItem as T } from "../menu/menuItem.js";
10
- import { MenuItemIcon as j } from "../menu/menuItemIcon.js";
11
- import { MenuItemText as q } from "../menu/menuItemText.js";
12
- import { Ripple as G } from "../../base/ripple/ripple.js";
13
- var J = /* @__PURE__ */ b("<span class=smwb-bottom-bar__item-icon>"), K = /* @__PURE__ */ b("<span class=smwb-bottom-bar__item-title>"), N = /* @__PURE__ */ b("<nav><div class=smwb-bottom-bar__nav role=menubar>");
7
+ import { Icon as H } from "../../base/icon/icon.js";
8
+ import { Menu as T } from "../menu/menu.js";
9
+ import { MenuItem as j } from "../menu/menuItem.js";
10
+ import { MenuItemIcon as q } from "../menu/menuItemIcon.js";
11
+ import { MenuItemText as G } from "../menu/menuItemText.js";
12
+ import { Ripple as J } from "../../base/ripple/ripple.js";
13
+ var K = /* @__PURE__ */ b("<span class=smwb-bottom-bar__item-icon>"), N = /* @__PURE__ */ b("<span class=smwb-bottom-bar__item-title>"), Q = /* @__PURE__ */ b("<nav><div class=smwb-bottom-bar__nav role=menubar>");
14
14
  function $(p) {
15
15
  const [o, n] = O(p, ["isActive", "icon", "title", "as", "href", "ref"]);
16
16
  let u;
17
+ const i = E(() => o.icon);
17
18
  return t(V, M({
18
19
  get component() {
19
20
  return o.as ?? "div";
@@ -38,41 +39,41 @@ function $(p) {
38
39
  get children() {
39
40
  return [t(s, {
40
41
  get when() {
41
- return o.icon;
42
+ return i();
42
43
  },
43
44
  get children() {
44
- var r = J();
45
- return c(r, () => o.icon), r;
45
+ var r = K();
46
+ return c(r, i), r;
46
47
  }
47
48
  }), t(s, {
48
49
  get when() {
49
50
  return o.title;
50
51
  },
51
52
  get children() {
52
- var r = K();
53
+ var r = N();
53
54
  return c(r, () => o.title), r;
54
55
  }
55
- }), t(G, {
56
+ }), t(J, {
56
57
  actionRef: (r) => u = r
57
58
  })];
58
59
  }
59
60
  }));
60
61
  }
61
- function ie(p) {
62
+ function ae(p) {
62
63
  const o = z({
63
64
  menuItems: [],
64
65
  visibleCount: 4,
65
66
  defaultActiveItem: null,
66
67
  overflowMenuAriaLabel: "More navigation"
67
- }, p), [n, u] = O(o, ["class", "menuItems", "visibleCount", "activeItem", "defaultActiveItem", "onActiveItemChange", "overflowMenuAriaLabel", "ref"]), [i, r] = E({
68
+ }, p), [n, u] = O(o, ["class", "menuItems", "visibleCount", "activeItem", "defaultActiveItem", "onActiveItemChange", "overflowMenuAriaLabel", "ref"]), [i, v] = F({
68
69
  value: () => n.activeItem,
69
70
  defaultValue: n.defaultActiveItem,
70
71
  onChange: (l) => {
71
72
  l !== null && n.onActiveItemChange?.(l);
72
73
  }
73
- }), [a, v] = _(!1), [R, x] = _(null), m = () => Math.max(0, n.visibleCount), y = () => n.menuItems.slice(0, m()), d = () => n.menuItems.slice(m()), h = () => d().length > 0, B = () => h() && i() !== null && i() >= m();
74
+ }), [r, a] = _(!1), [R, x] = _(null), m = () => Math.max(0, n.visibleCount), y = () => n.menuItems.slice(0, m()), d = () => n.menuItems.slice(m()), h = () => d().length > 0, B = () => h() && i() !== null && i() >= m();
74
75
  return (() => {
75
- var l = N(), w = l.firstChild, I = k(n.ref);
76
+ var l = Q(), w = l.firstChild, I = k(n.ref);
76
77
  return typeof I == "function" && L(I, l), S(l, M(u, {
77
78
  get class() {
78
79
  return P("smwb-bottom-bar", n.class);
@@ -90,7 +91,7 @@ function ie(p) {
90
91
  return i() === f();
91
92
  },
92
93
  onClick: (g) => {
93
- r(f()), C(e.onClick, g);
94
+ v(f()), C(e.onClick, g);
94
95
  },
95
96
  get icon() {
96
97
  return e.icon;
@@ -112,9 +113,9 @@ function ie(p) {
112
113
  get isActive() {
113
114
  return B();
114
115
  },
115
- onClick: () => v((e) => !e),
116
+ onClick: () => a((e) => !e),
116
117
  get icon() {
117
- return t(F, {
118
+ return t(H, {
118
119
  name: "menu",
119
120
  size: 24
120
121
  });
@@ -124,7 +125,7 @@ function ie(p) {
124
125
  },
125
126
  "aria-haspopup": "menu",
126
127
  get "aria-expanded"() {
127
- return a();
128
+ return r();
128
129
  }
129
130
  });
130
131
  }
@@ -133,11 +134,11 @@ function ie(p) {
133
134
  return h();
134
135
  },
135
136
  get children() {
136
- return t(H, {
137
+ return t(T, {
137
138
  get isOpen() {
138
- return a();
139
+ return r();
139
140
  },
140
- onClose: () => v(!1),
141
+ onClose: () => a(!1),
141
142
  get anchorElement() {
142
143
  return R();
143
144
  },
@@ -150,7 +151,7 @@ function ie(p) {
150
151
  },
151
152
  children: (e, f) => {
152
153
  const g = () => m() + f();
153
- return t(T, {
154
+ return t(j, {
154
155
  get selected() {
155
156
  return i() === g();
156
157
  },
@@ -158,7 +159,7 @@ function ie(p) {
158
159
  return e.href;
159
160
  },
160
161
  onClick: (D) => {
161
- r(g()), C(e.onClick, D), v(!1);
162
+ v(g()), C(e.onClick, D), a(!1);
162
163
  },
163
164
  get children() {
164
165
  return [t(s, {
@@ -166,13 +167,13 @@ function ie(p) {
166
167
  return e.icon;
167
168
  },
168
169
  get children() {
169
- return t(j, {
170
+ return t(q, {
170
171
  get children() {
171
172
  return e.icon;
172
173
  }
173
174
  });
174
175
  }
175
- }), t(q, {
176
+ }), t(G, {
176
177
  get inset() {
177
178
  return !e.icon;
178
179
  },
@@ -191,6 +192,6 @@ function ie(p) {
191
192
  })();
192
193
  }
193
194
  export {
194
- ie as BottomBar
195
+ ae as BottomBar
195
196
  };
196
197
  //# sourceMappingURL=bottomBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bottomBar.js","sources":["../../../../../src/components/navigation/bottomBar/bottomBar.tsx"],"sourcesContent":["import { type JSX, For, Show, 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 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={local.icon}>\n <span class=\"smwb-bottom-bar__item-icon\">{local.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"],"names":["BarItem","props","local","rest","splitProps","rippleActions","_$createComponent","Dynamic","_$mergeProps","component","as","ref","r$","_ref$","mergeRefs","href","role","cn","isActive","onPointerDown","event","onRipple","children","Show","when","icon","_el$","_tmpl$","_$insert","title","_el$2","_tmpl$2","Ripple","actionRef","actions","BottomBar","merged","mergeProps","menuItems","visibleCount","defaultActiveItem","overflowMenuAriaLabel","activeItem","setActiveItem","createControllableState","value","defaultValue","onChange","next","onActiveItemChange","overflowOpen","setOverflowOpen","createSignal","overflowAnchor","setOverflowAnchor","safeVisibleCount","Math","max","visibleItems","slice","overflowItems","hasOverflow","length","overflowActive","_el$3","_tmpl$3","_el$4","firstChild","_ref$2","_$use","_$spread","class","For","each","item","idx","onClick","callHandler","el","prev","Icon","name","size","Menu","isOpen","onClose","anchorElement","placement","dense","itemIndex","MenuItem","selected","MenuItemIcon","MenuItemText","inset"],"mappings":";;;;;;;;;;;;;AAgCA,SAASA,EAAQC,GAAkC;AACjD,QAAM,CAACC,GAAOC,CAAI,IAAIC,EAAWH,GAAO,CAAC,YAAY,QAAQ,SAAS,MAAM,QAAQ,KAAK,CAAC;AAC1F,MAAII;AAIJ,SAAAC,EACGC,GAAOC,EAAA;AAAA,IAAA,IACNC,YAAS;AAAA,aAAEP,EAAMQ,MAAM;AAAA,IAAK;AAAA,IAAAC,IAAAC,GAAA;AAAA,UAAAC,IACvBC,EAAUZ,EAAMS,GAAG;AAAC,aAAAE,KAAA,cAAAA,EAAAD,CAAA;AAAA,IAAA;AAAA,IAAA,IACzBG,OAAI;AAAA,aAAEb,EAAMa;AAAAA,IAAI;AAAA,IAChBC,MAAI;AAAA,IAAA,IAAA,QAAA;AAAA,aACGC,EAAG,yBAAyB;AAAA,QAAE,gCAAgCf,EAAMgB;AAAAA,MAAAA,CAAU;AAAA,IAAC;AAAA,IACtFC,eAVkBA,CAACC,MAA8B;AACnDf,MAAAA,GAAegB,SAASD,CAAK;AAAA,IAC/B;AAAA,EAQID,GACIhB,GAAI;AAAA,IAAA,IAAAmB,WAAA;AAAA,aAAA,CAAAhB,EAEPiB,GAAI;AAAA,QAAA,IAACC,OAAI;AAAA,iBAAEtB,EAAMuB;AAAAA,QAAI;AAAA,QAAA,IAAAH,WAAA;AAAA,cAAAI,IAAAC,EAAAA;AAAAC,iBAAAA,EAAAF,GAAA,MACsBxB,EAAMuB,IAAI,GAAAC;AAAAA,QAAA;AAAA,MAAA,CAAA,GAAApB,EAErDiB,GAAI;AAAA,QAAA,IAACC,OAAI;AAAA,iBAAEtB,EAAM2B;AAAAA,QAAK;AAAA,QAAA,IAAAP,WAAA;AAAA,cAAAQ,IAAAC,EAAAA;AAAAH,iBAAAA,EAAAE,GAAA,MACsB5B,EAAM2B,KAAK,GAAAC;AAAAA,QAAA;AAAA,MAAA,CAAA,GAAAxB,EAEvD0B,GAAM;AAAA,QAACC,WAAYC,OAAa7B,IAAgB6B;AAAAA,MAAAA,CAAQ,CAAA;AAAA,IAAA;AAAA,EAAA,CAAA,CAAA;AAG/D;AAEO,SAASC,GAAUlC,GAAoC;AAC5D,QAAMmC,IAASC,EACb;AAAA,IACEC,WAAW,CAAA;AAAA,IACXC,cAAc;AAAA,IACdC,mBAAmB;AAAA,IACnBC,uBAAuB;AAAA,EAAA,GAEzBxC,CACF,GACM,CAACC,GAAOC,CAAI,IAAIC,EAAWgC,GAAQ,CACvC,SACA,aACA,gBACA,cACA,qBACA,sBACA,yBACA,KAAK,CACN,GAEK,CAACM,GAAYC,CAAa,IAAIC,EAAuC;AAAA,IACzEC,OAAOA,MAAM3C,EAAMwC;AAAAA,IACnBI,cAAc5C,EAAMsC;AAAAA,IACpBO,UAAWC,CAAAA,MAAS;AAClB,MAAIA,MAAS,QAAM9C,EAAM+C,qBAAqBD,CAAI;AAAA,IACpD;AAAA,EAAA,CACD,GACK,CAACE,GAAcC,CAAe,IAAIC,EAAa,EAAK,GACpD,CAACC,GAAgBC,CAAiB,IAAIF,EAAiC,IAAI,GAE3EG,IAAmBA,MAAcC,KAAKC,IAAI,GAAGvD,EAAMqC,YAAY,GAC/DmB,IAAeA,MAA8BxD,EAAMoC,UAAUqB,MAAM,GAAGJ,GAAkB,GACxFK,IAAgBA,MAA8B1D,EAAMoC,UAAUqB,MAAMJ,GAAkB,GACtFM,IAAcA,MAAeD,EAAAA,EAAgBE,SAAS,GACtDC,IAAiBA,MACrBF,OAAiBnB,QAAiB,QAASA,EAAAA,KAA2Ba,EAAAA;AAExE,UAAA,MAAA;AAAA,QAAAS,IAAAC,EAAAA,GAAAC,IAAAF,EAAAG,YAAAC,IACsBtD,EAAUZ,EAAMS,GAAG;AAAC,kBAAAyD,KAAA,cAAAC,EAAAD,GAAAJ,CAAA,GAAAM,EAAAN,GAAAxD,EAA/BL,GAAI;AAAA,MAAA,IAAA,QAAA;AAAA,eAAoCc,EAAG,mBAAmBf,EAAMqE,KAAK;AAAA,MAAC;AAAA,MAAA,MAAO;AAAA,IAAA,CAAY,GAAA,IAAA,EAAA,GAAA3C,EAAAsC,GAAA5D,EAEjGkE,GAAG;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEf,EAAAA;AAAAA,MAAc;AAAA,MAAApC,UACtBA,CAACoD,GAAMC,MAAGrE,EACRN,GAAO;AAAA,QAAA,IACNU,KAAE;AAAA,iBAAEgE,EAAKhE;AAAAA,QAAE;AAAA,QAAA,IACXQ,WAAQ;AAAA,iBAAEwB,EAAAA,MAAiBiC,EAAAA;AAAAA,QAAK;AAAA,QAChCC,SAAUxD,CAAAA,MAAU;AAClBuB,UAAAA,EAAcgC,GAAK,GACnBE,EAAYH,EAAKE,SAASxD,CAAK;AAAA,QACjC;AAAA,QAAC,IACDK,OAAI;AAAA,iBAAEiD,EAAKjD;AAAAA,QAAI;AAAA,QAAA,IACfI,QAAK;AAAA,iBAAE6C,EAAK7C;AAAAA,QAAK;AAAA,QAAA,IACjBd,OAAI;AAAA,iBAAE2D,EAAK3D;AAAAA,QAAI;AAAA,MAAA,CAAA;AAAA,IAAA,CAElB,GAAA,IAAA,GAAAa,EAAAsC,GAAA5D,EAEFiB,GAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEqC,EAAAA;AAAAA,MAAa;AAAA,MAAA,IAAAvC,WAAA;AAAA,eAAAhB,EACtBN,GAAO;AAAA,UAAAW,KACAmE,CAAAA,MAAOxB,EAAkBwB,CAAiB;AAAA,UAAC,IACjD5D,WAAQ;AAAA,mBAAE6C,EAAAA;AAAAA,UAAgB;AAAA,UAC1Ba,SAASA,MAAMzB,EAAiB4B,CAAAA,MAAS,CAACA,CAAI;AAAA,UAAC,IAC/CtD,OAAI;AAAA,mBAAAnB,EAAG0E,GAAI;AAAA,cAACC,MAAI;AAAA,cAAQC,MAAM;AAAA,YAAA,CAAE;AAAA,UAAA;AAAA,UAAA,IAAA,eAAA;AAAA,mBACpBhF,EAAMuC;AAAAA,UAAqB;AAAA,UAAA,iBAAA;AAAA,UAAA,IAAA,kBAAA;AAAA,mBAExBS,EAAAA;AAAAA,UAAc;AAAA,QAAA,CAAA;AAAA,MAAA;AAAA,IAAA,CAAA,GAAA,IAAA,GAAAtB,EAAAoC,GAAA1D,EAIlCiB,GAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEqC,EAAAA;AAAAA,MAAa;AAAA,MAAA,IAAAvC,WAAA;AAAA,eAAAhB,EACtB6E,GAAI;AAAA,UAAA,IACHC,SAAM;AAAA,mBAAElC,EAAAA;AAAAA,UAAc;AAAA,UACtBmC,SAASA,MAAMlC,EAAgB,EAAK;AAAA,UAAC,IACrCmC,gBAAa;AAAA,mBAAEjC,EAAAA;AAAAA,UAAgB;AAAA,UAC/BkC,WAAS;AAAA,UACTC,OAAK;AAAA,UAAA,IAAAlE,WAAA;AAAA,mBAAAhB,EAEJkE,GAAG;AAAA,cAAA,IAACC,OAAI;AAAA,uBAAEb,EAAAA;AAAAA,cAAe;AAAA,cAAAtC,UACvBA,CAACoD,GAAMC,MAAQ;AACd,sBAAMc,IAAYA,MAAclC,EAAAA,IAAqBoB,EAAAA;AACrD,uBAAArE,EACGoF,GAAQ;AAAA,kBAAA,IACPC,WAAQ;AAAA,2BAAEjD,EAAAA,MAAiB+C,EAAAA;AAAAA,kBAAW;AAAA,kBAAA,IACtC1E,OAAI;AAAA,2BAAE2D,EAAK3D;AAAAA,kBAAI;AAAA,kBACf6D,SAAUxD,CAAAA,MAAU;AAClBuB,oBAAAA,EAAc8C,GAAW,GACzBZ,EACEH,EAAKE,SACLxD,CACF,GACA+B,EAAgB,EAAK;AAAA,kBACvB;AAAA,kBAAC,IAAA7B,WAAA;AAAA,2BAAA,CAAAhB,EAEAiB,GAAI;AAAA,sBAAA,IAACC,OAAI;AAAA,+BAAEkD,EAAKjD;AAAAA,sBAAI;AAAA,sBAAA,IAAAH,WAAA;AAAA,+BAAAhB,EAClBsF,GAAY;AAAA,0BAAA,IAAAtE,WAAA;AAAA,mCAAEoD,EAAKjD;AAAAA,0BAAI;AAAA,wBAAA,CAAA;AAAA,sBAAA;AAAA,oBAAA,CAAA,GAAAnB,EAEzBuF,GAAY;AAAA,sBAAA,IAACC,QAAK;AAAA,+BAAE,CAACpB,EAAKjD;AAAAA,sBAAI;AAAA,sBAAA,IAAAH,WAAA;AAAA,+BAAGoD,EAAK7C;AAAAA,sBAAK;AAAA,oBAAA,CAAA,CAAA;AAAA,kBAAA;AAAA,gBAAA,CAAA;AAAA,cAGlD;AAAA,YAAA,CAAC;AAAA,UAAA;AAAA,QAAA,CAAA;AAAA,MAAA;AAAA,IAAA,CAAA,GAAA,IAAA,GAAAmC;AAAAA,EAAA,GAAA;AAMb;"}
1
+ {"version":3,"file":"bottomBar.js","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"],"names":["BarItem","props","local","rest","splitProps","rippleActions","icon","children","_$createComponent","Dynamic","_$mergeProps","component","as","ref","r$","_ref$","mergeRefs","href","role","cn","isActive","onPointerDown","event","onRipple","Show","when","_el$","_tmpl$","_$insert","title","_el$2","_tmpl$2","Ripple","actionRef","actions","BottomBar","merged","mergeProps","menuItems","visibleCount","defaultActiveItem","overflowMenuAriaLabel","activeItem","setActiveItem","createControllableState","value","defaultValue","onChange","next","onActiveItemChange","overflowOpen","setOverflowOpen","createSignal","overflowAnchor","setOverflowAnchor","safeVisibleCount","Math","max","visibleItems","slice","overflowItems","hasOverflow","length","overflowActive","_el$3","_tmpl$3","_el$4","firstChild","_ref$2","_$use","_$spread","class","For","each","item","idx","onClick","callHandler","el","prev","Icon","name","size","Menu","isOpen","onClose","anchorElement","placement","dense","itemIndex","MenuItem","selected","MenuItemIcon","MenuItemText","inset"],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { insert as a, createComponent as t, mergeProps as b, memo as s, effect as h, className as v, template as w } from "solid-js/web";
2
+ import { mergeProps as C, splitProps as _, createSignal as c, For as M, Show as P } from "solid-js";
3
+ import i from "clsx";
4
+ import { Button as k } from "../../inputs/button/button.js";
5
+ import { Menu as I } from "../menu/menu.js";
6
+ import { MenuItem as O } from "../menu/menuItem.js";
7
+ import { Icon as S } from "../../base/icon/icon.js";
8
+ var $ = /* @__PURE__ */ w("<span>");
9
+ function N(m) {
10
+ const p = C({
11
+ icon: "more_vert"
12
+ }, m), [r] = _(p, ["items", "icon", "placement", "aria-label", "disabled", "class"]), [u, g] = c(null), [d, o] = c(!1), l = () => {
13
+ o(!1);
14
+ }, f = (n) => {
15
+ n.disabled || (n.onSelect?.(), l());
16
+ };
17
+ return (() => {
18
+ var n = $();
19
+ return a(n, t(k, {
20
+ ref: (e) => {
21
+ g(e);
22
+ },
23
+ variant: "text",
24
+ size: "small",
25
+ get icon() {
26
+ return r.icon;
27
+ },
28
+ get "aria-label"() {
29
+ return r["aria-label"] ?? "More actions";
30
+ },
31
+ "aria-haspopup": "menu",
32
+ get disabled() {
33
+ return !!r.disabled;
34
+ },
35
+ onClick: () => {
36
+ o((e) => !e);
37
+ }
38
+ }), null), a(n, t(I, b({
39
+ get isOpen() {
40
+ return d();
41
+ },
42
+ onClose: l,
43
+ get anchorElement() {
44
+ return u();
45
+ }
46
+ }, () => r.placement ? {
47
+ placement: r.placement
48
+ } : {}, {
49
+ get children() {
50
+ return t(M, {
51
+ get each() {
52
+ return r.items;
53
+ },
54
+ children: (e) => t(O, {
55
+ get class() {
56
+ return i({
57
+ "smwb-overflow-menu__item--danger": e.danger
58
+ });
59
+ },
60
+ get disabled() {
61
+ return e.disabled;
62
+ },
63
+ onClick: () => f(e),
64
+ get children() {
65
+ return [t(P, {
66
+ get when() {
67
+ return e.icon;
68
+ },
69
+ get children() {
70
+ return s(() => typeof e.icon == "string")() ? t(S, {
71
+ get name() {
72
+ return e.icon;
73
+ }
74
+ }) : e.icon;
75
+ }
76
+ }), s(() => e.label)];
77
+ }
78
+ })
79
+ });
80
+ }
81
+ })), null), h(() => v(n, i("smwb-overflow-menu", r.class))), n;
82
+ })();
83
+ }
84
+ export {
85
+ N as OverflowMenu
86
+ };
87
+ //# sourceMappingURL=overflowMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overflowMenu.js","sources":["../../../../../src/components/navigation/overflowMenu/overflowMenu.tsx"],"sourcesContent":["import { type JSX, For, Show, createSignal, mergeProps, splitProps } from \"solid-js\";\nimport type { Placement } from \"@floating-ui/dom\";\nimport cn from \"clsx\";\nimport { Button } from \"../../inputs/button\";\nimport { Icon } from \"../../base/icon\";\nimport { Menu, MenuItem } from \"../menu\";\n\nexport interface OverflowMenuItem {\n id: string;\n label: string;\n icon?: JSX.Element | string;\n danger?: boolean;\n disabled?: boolean;\n onSelect?: () => void;\n}\n\nexport interface OverflowMenuProps {\n items: OverflowMenuItem[];\n /** Trigger icon name (default `more_vert`). */\n icon?: string;\n placement?: Placement;\n \"aria-label\"?: string;\n disabled?: boolean;\n class?: string;\n}\n\n/**\n * A one-shot kebab / overflow menu: a trigger icon button wired to a floating\n * `Menu` over an `items` array, with open/close state baked in. The card 3-dot\n * menu every app hand-builds (button + absolutely-positioned surface + open\n * state) collapses to passing an items list.\n */\nexport function OverflowMenu(props: OverflowMenuProps): JSX.Element {\n const merged = mergeProps({ icon: \"more_vert\" }, props);\n const [local] = splitProps(merged, [\"items\", \"icon\", \"placement\", \"aria-label\", \"disabled\", \"class\"]);\n\n const [anchor, setAnchor] = createSignal<HTMLElement | null>(null);\n const [open, setOpen] = createSignal(false);\n const close = (): void => {\n setOpen(false);\n };\n\n const onItemClick = (item: OverflowMenuItem): void => {\n if (item.disabled) return;\n item.onSelect?.();\n close();\n };\n\n return (\n <span class={cn(\"smwb-overflow-menu\", local.class)}>\n <Button\n ref={(el) => {\n setAnchor(el as HTMLElement);\n }}\n variant=\"text\"\n size=\"small\"\n icon={local.icon}\n aria-label={local[\"aria-label\"] ?? \"More actions\"}\n aria-haspopup=\"menu\"\n disabled={!!local.disabled}\n onClick={() => {\n setOpen((value) => !value);\n }}\n />\n <Menu\n isOpen={open()}\n onClose={close}\n anchorElement={anchor()}\n {...(local.placement ? { placement: local.placement } : {})}\n >\n <For each={local.items}>\n {(item) => (\n <MenuItem\n class={cn({ \"smwb-overflow-menu__item--danger\": item.danger })}\n disabled={item.disabled}\n onClick={() => onItemClick(item)}\n >\n <Show when={item.icon}>\n {typeof item.icon === \"string\" ? <Icon name={item.icon} /> : (item.icon as JSX.Element)}\n </Show>\n {item.label}\n </MenuItem>\n )}\n </For>\n </Menu>\n </span>\n );\n}\n\nexport default OverflowMenu;\n"],"names":["OverflowMenu","props","merged","mergeProps","icon","local","splitProps","anchor","setAnchor","createSignal","open","setOpen","close","onItemClick","item","disabled","onSelect","_el$","_tmpl$","_$insert","_$createComponent","Button","ref","el","variant","size","onClick","value","Menu","_$mergeProps","isOpen","onClose","anchorElement","placement","children","For","each","items","MenuItem","cn","danger","Show","when","_$memo","Icon","name","label","_$effect","_$className","class"],"mappings":";;;;;;;;AAgCO,SAASA,EAAaC,GAAuC;AAClE,QAAMC,IAASC,EAAW;AAAA,IAAEC,MAAM;AAAA,EAAA,GAAeH,CAAK,GAChD,CAACI,CAAK,IAAIC,EAAWJ,GAAQ,CAAC,SAAS,QAAQ,aAAa,cAAc,YAAY,OAAO,CAAC,GAE9F,CAACK,GAAQC,CAAS,IAAIC,EAAiC,IAAI,GAC3D,CAACC,GAAMC,CAAO,IAAIF,EAAa,EAAK,GACpCG,IAAQA,MAAY;AACxBD,IAAAA,EAAQ,EAAK;AAAA,EACf,GAEME,IAAcA,CAACC,MAAiC;AACpD,IAAIA,EAAKC,aACTD,EAAKE,WAAAA,GACLJ,EAAAA;AAAAA,EACF;AAEA,UAAA,MAAA;AAAA,QAAAK,IAAAC,EAAAA;AAAAC,WAAAA,EAAAF,GAAAG,EAEKC,GAAM;AAAA,MAAAC,KACCC,CAAAA,MAAO;AACXf,QAAAA,EAAUe,CAAiB;AAAA,MAC7B;AAAA,MACAC,SAAO;AAAA,MACPC,MAAI;AAAA,MAAA,IACJrB,OAAI;AAAA,eAAEC,EAAMD;AAAAA,MAAI;AAAA,MAAA,IAAA,eAAA;AAAA,eACJC,EAAM,YAAY,KAAK;AAAA,MAAc;AAAA,MAAA,iBAAA;AAAA,MAAA,IAEjDU,WAAQ;AAAA,eAAE,CAAC,CAACV,EAAMU;AAAAA,MAAQ;AAAA,MAC1BW,SAASA,MAAM;AACbf,QAAAA,EAASgB,CAAAA,MAAU,CAACA,CAAK;AAAA,MAC3B;AAAA,IAAA,CAAC,GAAA,IAAA,GAAAR,EAAAF,GAAAG,EAEFQ,GAAIC,EAAA;AAAA,MAAA,IACHC,SAAM;AAAA,eAAEpB,EAAAA;AAAAA,MAAM;AAAA,MACdqB,SAASnB;AAAAA,MAAK,IACdoB,gBAAa;AAAA,eAAEzB,EAAAA;AAAAA,MAAQ;AAAA,IAAA,GAAA,MAClBF,EAAM4B,YAAY;AAAA,MAAEA,WAAW5B,EAAM4B;AAAAA,IAAAA,IAAc,IAAE;AAAA,MAAA,IAAAC,WAAA;AAAA,eAAAd,EAEzDe,GAAG;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAE/B,EAAMgC;AAAAA,UAAK;AAAA,UAAAH,UAClBpB,CAAAA,MAAIM,EACHkB,GAAQ;AAAA,YAAA,IAAA,QAAA;AAAA,qBACAC,EAAG;AAAA,gBAAE,oCAAoCzB,EAAK0B;AAAAA,cAAAA,CAAQ;AAAA,YAAC;AAAA,YAAA,IAC9DzB,WAAQ;AAAA,qBAAED,EAAKC;AAAAA,YAAQ;AAAA,YACvBW,SAASA,MAAMb,EAAYC,CAAI;AAAA,YAAC,IAAAoB,WAAA;AAAA,qBAAA,CAAAd,EAE/BqB,GAAI;AAAA,gBAAA,IAACC,OAAI;AAAA,yBAAE5B,EAAKV;AAAAA,gBAAI;AAAA,gBAAA,IAAA8B,WAAA;AAAA,yBAClBS,EAAA,MAAA,OAAO7B,EAAKV,QAAS,QAAQ,EAAA,IAAAgB,EAAIwB,GAAI;AAAA,oBAAA,IAACC,OAAI;AAAA,6BAAE/B,EAAKV;AAAAA,oBAAI;AAAA,kBAAA,CAAA,IAAQU,EAAKV;AAAAA,gBAAoB;AAAA,cAAA,CAAA,GAAAuC,EAAA,MAExF7B,EAAKgC,KAAK,CAAA;AAAA,YAAA;AAAA,UAAA,CAAA;AAAA,QAAA,CAEd;AAAA,MAAA;AAAA,IAAA,CAAA,CAAA,GAAA,IAAA,GAAAC,EAAA,MAAAC,EAAA/B,GAjCMsB,EAAG,sBAAsBlC,EAAM4C,KAAK,CAAC,CAAA,GAAAhC;AAAAA,EAAA,GAAA;AAsCtD;"}