@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,143 @@
1
+ import { addEventListener as P, use as E, insert as g, createComponent as o, effect as m, style as h, setStyleProperty as w, className as O, template as c } from "solid-js/web";
2
+ import { mergeProps as W, splitProps as Y, createSignal as f, onMount as F, createMemo as _, Show as p, For as v, onCleanup as G } from "solid-js";
3
+ import N from "clsx";
4
+ import { createVirtualList as V } from "../../../primitives/createVirtualList.js";
5
+ var j = /* @__PURE__ */ c("<div class=smwb-asset-grid__sizer style=position:relative><div class=smwb-asset-grid__band style=position:absolute;top:0;left:0;right:0>"), q = /* @__PURE__ */ c("<div>"), b = /* @__PURE__ */ c("<div class=smwb-asset-grid__plain>"), B = /* @__PURE__ */ c("<div class=smwb-asset-grid__skeleton>"), D = /* @__PURE__ */ c("<div class=smwb-asset-grid__empty>"), J = /* @__PURE__ */ c("<div class=smwb-asset-grid__row>");
6
+ function Z(y) {
7
+ const x = W({
8
+ minColumn: 160,
9
+ gap: 8,
10
+ overscan: 2,
11
+ loadingCount: 12
12
+ }, y), [t] = Y(x, ["items", "renderItem", "minColumn", "rowHeight", "gap", "overscan", "loading", "loadingCount", "emptyLabel", "class", "style"]);
13
+ let l;
14
+ const [C, H] = f(0), [S, I] = f(0), [M, k] = f(!1);
15
+ F(() => {
16
+ if (!l || typeof ResizeObserver > "u") return;
17
+ const r = new ResizeObserver(() => {
18
+ l && (H(l.clientWidth), I(l.clientHeight), k(!0));
19
+ });
20
+ r.observe(l), G(() => r.disconnect());
21
+ });
22
+ const u = _(() => {
23
+ const r = C();
24
+ return r <= 0 ? 1 : Math.max(1, Math.floor((r + t.gap) / (t.minColumn + t.gap)));
25
+ }), L = _(() => Math.ceil(t.items.length / u())), d = V({
26
+ itemCount: L,
27
+ itemHeight: () => t.rowHeight + t.gap,
28
+ viewportHeight: () => S() || 1,
29
+ overscan: t.overscan
30
+ }), R = _(() => {
31
+ const r = [];
32
+ for (let e = d.startIndex(); e < d.endIndex(); e++) r.push(e);
33
+ return r;
34
+ }), z = () => ({
35
+ display: "grid",
36
+ "grid-template-columns": `repeat(${u()}, minmax(0, 1fr))`,
37
+ gap: `${t.gap}px`,
38
+ height: `${t.rowHeight}px`,
39
+ "margin-bottom": `${t.gap}px`
40
+ }), $ = () => ({
41
+ display: "grid",
42
+ "grid-template-columns": `repeat(auto-fill, minmax(${t.minColumn}px, 1fr))`,
43
+ gap: `${t.gap}px`,
44
+ "grid-auto-rows": `${t.rowHeight}px`
45
+ });
46
+ return (() => {
47
+ var r = q();
48
+ return P(r, "scroll", d.onScroll), E((e) => l = e, r), g(r, o(p, {
49
+ get when() {
50
+ return !t.loading;
51
+ },
52
+ get fallback() {
53
+ return (() => {
54
+ var e = b();
55
+ return g(e, o(v, {
56
+ get each() {
57
+ return Array.from({
58
+ length: t.loadingCount
59
+ });
60
+ },
61
+ children: () => (() => {
62
+ var n = B();
63
+ return m((s) => w(n, "height", `${t.rowHeight}px`)), n;
64
+ })()
65
+ })), m((n) => h(e, $(), n)), e;
66
+ })();
67
+ },
68
+ get children() {
69
+ return o(p, {
70
+ get when() {
71
+ return t.items.length > 0;
72
+ },
73
+ get fallback() {
74
+ return (() => {
75
+ var e = D();
76
+ return g(e, () => t.emptyLabel), e;
77
+ })();
78
+ },
79
+ get children() {
80
+ return o(p, {
81
+ get when() {
82
+ return M();
83
+ },
84
+ get fallback() {
85
+ return (() => {
86
+ var e = b();
87
+ return g(e, o(v, {
88
+ get each() {
89
+ return t.items;
90
+ },
91
+ children: (n, s) => t.renderItem(n, s())
92
+ })), m((n) => h(e, $(), n)), e;
93
+ })();
94
+ },
95
+ get children() {
96
+ var e = j(), n = e.firstChild;
97
+ return g(n, o(v, {
98
+ get each() {
99
+ return R();
100
+ },
101
+ children: (s) => (() => {
102
+ var a = J();
103
+ return g(a, o(v, {
104
+ get each() {
105
+ return Array.from({
106
+ length: u()
107
+ }, (i, A) => s * u() + A);
108
+ },
109
+ children: (i) => o(p, {
110
+ get when() {
111
+ return i < t.items.length;
112
+ },
113
+ get children() {
114
+ return t.renderItem(t.items[i], i);
115
+ }
116
+ })
117
+ })), m((i) => h(a, z(), i)), a;
118
+ })()
119
+ })), m((s) => {
120
+ var a = `${d.totalHeight()}px`, i = `translateY(${d.offsetY()}px)`;
121
+ return a !== s.e && w(e, "height", s.e = a), i !== s.t && w(n, "transform", s.t = i), s;
122
+ }, {
123
+ e: void 0,
124
+ t: void 0
125
+ }), e;
126
+ }
127
+ });
128
+ }
129
+ });
130
+ }
131
+ })), m((e) => {
132
+ var n = N("smwb-asset-grid", t.class), s = t.style;
133
+ return n !== e.e && O(r, e.e = n), e.t = h(r, s, e.t), e;
134
+ }, {
135
+ e: void 0,
136
+ t: void 0
137
+ }), r;
138
+ })();
139
+ }
140
+ export {
141
+ Z as AssetGrid
142
+ };
143
+ //# sourceMappingURL=assetGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetGrid.js","sources":["../../../../../src/components/dataDisplay/assetGrid/assetGrid.tsx"],"sourcesContent":["import { type JSX, For, Show, createMemo, createSignal, mergeProps, onCleanup, onMount, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { createVirtualList } from \"../../../primitives/createVirtualList\";\n\nexport interface AssetGridProps<T> {\n items: T[];\n /** Render one cell. `index` is the absolute index into `items`. */\n renderItem: (item: T, index: number) => JSX.Element;\n /** Minimum column width (px); drives the column count from the measured width. Default 160. */\n minColumn?: number;\n /** Fixed cell height (px). */\n rowHeight: number;\n /** Gap (px) between cells on both axes. Default 8. */\n gap?: number;\n /** Extra rows rendered above/below the viewport. Default 2. */\n overscan?: number;\n loading?: boolean;\n /** Skeleton tile count while loading. Default 12. */\n loadingCount?: number;\n emptyLabel?: JSX.Element;\n class?: string;\n style?: JSX.CSSProperties | string;\n}\n\n/**\n * A virtualized, data-shape-agnostic asset grid: measures its own width to pick a\n * column count, windows rows via `createVirtualList`, and renders only the visible\n * cells through a `renderItem` slot — with loading skeletons + an empty state. The\n * windowing math every catalog app reimplements, upstreamed. SSR-safe: before it\n * can measure (server + first paint) it renders a plain auto-fill grid of all\n * items, then virtualizes after mount.\n */\nexport function AssetGrid<T>(props: AssetGridProps<T>): JSX.Element {\n const merged = mergeProps({ minColumn: 160, gap: 8, overscan: 2, loadingCount: 12 }, props);\n const [local] = splitProps(merged, [\n \"items\",\n \"renderItem\",\n \"minColumn\",\n \"rowHeight\",\n \"gap\",\n \"overscan\",\n \"loading\",\n \"loadingCount\",\n \"emptyLabel\",\n \"class\",\n \"style\",\n ]);\n\n let viewportEl: HTMLDivElement | undefined;\n const [width, setWidth] = createSignal(0);\n const [height, setHeight] = createSignal(0);\n const [ready, setReady] = createSignal(false);\n\n onMount(() => {\n if (!viewportEl || typeof ResizeObserver === \"undefined\") return;\n const ro = new ResizeObserver(() => {\n if (!viewportEl) return;\n setWidth(viewportEl.clientWidth);\n setHeight(viewportEl.clientHeight);\n setReady(true);\n });\n ro.observe(viewportEl);\n onCleanup(() => ro.disconnect());\n });\n\n const cols = createMemo(() => {\n const w = width();\n if (w <= 0) return 1;\n return Math.max(1, Math.floor((w + local.gap) / (local.minColumn + local.gap)));\n });\n const rowCount = createMemo(() => Math.ceil(local.items.length / cols()));\n const rowStride = (): number => local.rowHeight + local.gap;\n\n const vl = createVirtualList({\n itemCount: rowCount,\n itemHeight: rowStride,\n viewportHeight: () => height() || 1,\n overscan: local.overscan,\n });\n\n const visibleRows = createMemo(() => {\n const out: number[] = [];\n for (let row = vl.startIndex(); row < vl.endIndex(); row++) out.push(row);\n return out;\n });\n\n const rowStyle = (): JSX.CSSProperties => ({\n display: \"grid\",\n \"grid-template-columns\": `repeat(${cols()}, minmax(0, 1fr))`,\n gap: `${local.gap}px`,\n height: `${local.rowHeight}px`,\n \"margin-bottom\": `${local.gap}px`,\n });\n\n const plainStyle = (): JSX.CSSProperties => ({\n display: \"grid\",\n \"grid-template-columns\": `repeat(auto-fill, minmax(${local.minColumn}px, 1fr))`,\n gap: `${local.gap}px`,\n \"grid-auto-rows\": `${local.rowHeight}px`,\n });\n\n return (\n <div\n ref={(el) => (viewportEl = el)}\n class={cn(\"smwb-asset-grid\", local.class)}\n style={local.style}\n onScroll={vl.onScroll}\n >\n <Show\n when={!local.loading}\n fallback={\n <div class=\"smwb-asset-grid__plain\" style={plainStyle()}>\n <For each={Array.from({ length: local.loadingCount })}>\n {() => <div class=\"smwb-asset-grid__skeleton\" style={{ height: `${local.rowHeight}px` }} />}\n </For>\n </div>\n }\n >\n <Show\n when={local.items.length > 0}\n fallback={<div class=\"smwb-asset-grid__empty\">{local.emptyLabel}</div>}\n >\n <Show\n when={ready()}\n fallback={\n <div class=\"smwb-asset-grid__plain\" style={plainStyle()}>\n <For each={local.items}>{(item, index) => local.renderItem(item, index())}</For>\n </div>\n }\n >\n <div class=\"smwb-asset-grid__sizer\" style={{ height: `${vl.totalHeight()}px`, position: \"relative\" }}>\n <div\n class=\"smwb-asset-grid__band\"\n style={{ position: \"absolute\", top: \"0\", left: \"0\", right: \"0\", transform: `translateY(${vl.offsetY()}px)` }}\n >\n <For each={visibleRows()}>\n {(row) => (\n <div class=\"smwb-asset-grid__row\" style={rowStyle()}>\n <For each={Array.from({ length: cols() }, (_, c) => row * cols() + c)}>\n {(index) => (\n <Show when={index < local.items.length}>\n {local.renderItem(local.items[index] as T, index)}\n </Show>\n )}\n </For>\n </div>\n )}\n </For>\n </div>\n </div>\n </Show>\n </Show>\n </Show>\n </div>\n );\n}\n\nexport default AssetGrid;\n"],"names":["AssetGrid","props","merged","mergeProps","minColumn","gap","overscan","loadingCount","local","splitProps","viewportEl","width","setWidth","createSignal","height","setHeight","ready","setReady","onMount","ResizeObserver","ro","clientWidth","clientHeight","observe","onCleanup","disconnect","cols","createMemo","w","Math","max","floor","rowCount","ceil","items","length","vl","createVirtualList","itemCount","itemHeight","rowStride","rowHeight","viewportHeight","visibleRows","out","row","startIndex","endIndex","push","rowStyle","display","plainStyle","_el$","_tmpl$2","_$addEventListener","onScroll","_$use","el","_$insert","_$createComponent","Show","when","loading","fallback","_el$4","_tmpl$3","For","each","Array","from","children","_el$5","_tmpl$4","_$effect","_$p","_$setStyleProperty","_$style","_el$6","_tmpl$5","emptyLabel","_el$7","item","index","renderItem","_el$2","_tmpl$","_el$3","firstChild","_el$8","_tmpl$6","_","c","_p$","_v$","totalHeight","_v$2","offsetY","e","t","undefined","_v$3","cn","class","_v$4","style","_$className"],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { spread as g, mergeProps as n, insert as p, createComponent as o, template as f } from "solid-js/web";
2
+ import { mergeProps as v, splitProps as h, For as b } from "solid-js";
3
+ import C from "clsx";
4
+ import { Chip as z } from "../chip/chip.js";
5
+ var P = /* @__PURE__ */ f("<div>");
6
+ function _(i) {
7
+ const a = v({
8
+ size: "medium",
9
+ color: "primary"
10
+ }, i), [e, c] = h(a, ["options", "value", "multiple", "onChange", "size", "color", "disabled", "class"]), l = () => e.value == null ? [] : Array.isArray(e.value) ? e.value : [e.value], s = (t) => l().includes(t), u = (t) => {
11
+ if (e.multiple) {
12
+ const r = l(), m = r.includes(t) ? r.filter((d) => d !== t) : [...r, t];
13
+ e.onChange?.(m);
14
+ } else
15
+ e.onChange?.(t);
16
+ };
17
+ return (() => {
18
+ var t = P();
19
+ return g(t, n(c, {
20
+ role: "group",
21
+ get class() {
22
+ return C("smwb-chip-group", e.class);
23
+ }
24
+ }), !1, !0), p(t, o(b, {
25
+ get each() {
26
+ return e.options;
27
+ },
28
+ children: (r) => o(z, n({
29
+ get label() {
30
+ return r.label;
31
+ },
32
+ get size() {
33
+ return e.size;
34
+ },
35
+ get color() {
36
+ return e.color;
37
+ },
38
+ get selected() {
39
+ return s(r.value);
40
+ },
41
+ get variant() {
42
+ return s(r.value) ? "filled" : "outlined";
43
+ },
44
+ get disabled() {
45
+ return !!(e.disabled || r.disabled);
46
+ },
47
+ onClick: () => u(r.value)
48
+ }, () => r.icon ? {
49
+ icon: r.icon
50
+ } : {}))
51
+ })), t;
52
+ })();
53
+ }
54
+ export {
55
+ _ as ChipGroup
56
+ };
57
+ //# sourceMappingURL=chipGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chipGroup.js","sources":["../../../../../src/components/dataDisplay/chipGroup/chipGroup.tsx"],"sourcesContent":["import { type JSX, For, mergeProps, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Chip, type ChipColor } from \"../chip\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n icon?: JSX.Element;\n disabled?: boolean;\n}\n\nexport interface ChipGroupProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n options: ChipGroupOption[];\n /** Selected value (single) or values (when `multiple`). */\n value?: string | string[];\n /** Allow more than one selected chip (value becomes a string[]). */\n multiple?: boolean;\n onChange?: (value: string | string[]) => void;\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n disabled?: boolean;\n}\n\n/**\n * A multi/single-select toggle group built on `Chip` — the \"chip as a toggle\"\n * loop (selected → filled, else outlined; `role=group`) that apps re-hand-roll\n * for filters / segmented controls. Pass an `options` array and a controlled\n * `value`; `onChange` returns the next value (string, or string[] when multiple).\n */\nexport function ChipGroup(props: ChipGroupProps): JSX.Element {\n const merged = mergeProps({ size: \"medium\" as const, color: \"primary\" as ChipColor }, props);\n const [local, rest] = splitProps(merged, [\n \"options\",\n \"value\",\n \"multiple\",\n \"onChange\",\n \"size\",\n \"color\",\n \"disabled\",\n \"class\",\n ]);\n\n const selectedValues = (): string[] => {\n if (local.value == null) return [];\n return Array.isArray(local.value) ? local.value : [local.value];\n };\n const isSelected = (value: string): boolean => selectedValues().includes(value);\n\n const toggle = (value: string): void => {\n if (local.multiple) {\n const current = selectedValues();\n const next = current.includes(value) ? current.filter((v) => v !== value) : [...current, value];\n local.onChange?.(next);\n } else {\n local.onChange?.(value);\n }\n };\n\n return (\n <div {...rest} role=\"group\" class={cn(\"smwb-chip-group\", local.class)}>\n <For each={local.options}>\n {(option) => (\n <Chip\n label={option.label}\n size={local.size}\n color={local.color}\n selected={isSelected(option.value)}\n variant={isSelected(option.value) ? \"filled\" : \"outlined\"}\n disabled={!!(local.disabled || option.disabled)}\n onClick={() => toggle(option.value)}\n {...(option.icon ? { icon: option.icon } : {})}\n />\n )}\n </For>\n </div>\n );\n}\n\nexport default ChipGroup;\n"],"names":["ChipGroup","props","merged","mergeProps","size","color","local","rest","splitProps","selectedValues","value","Array","isArray","isSelected","includes","toggle","multiple","current","next","filter","v","onChange","_el$","_tmpl$","_$spread","_$mergeProps","cn","class","_$insert","_$createComponent","For","each","options","children","option","Chip","label","selected","variant","disabled","onClick","icon"],"mappings":";;;;;AA6BO,SAASA,EAAUC,GAAoC;AAC5D,QAAMC,IAASC,EAAW;AAAA,IAAEC,MAAM;AAAA,IAAmBC,OAAO;AAAA,EAAA,GAA0BJ,CAAK,GACrF,CAACK,GAAOC,CAAI,IAAIC,EAAWN,GAAQ,CACvC,WACA,SACA,YACA,YACA,QACA,SACA,YACA,OAAO,CACR,GAEKO,IAAiBA,MACjBH,EAAMI,SAAS,OAAa,CAAA,IACzBC,MAAMC,QAAQN,EAAMI,KAAK,IAAIJ,EAAMI,QAAQ,CAACJ,EAAMI,KAAK,GAE1DG,IAAaA,CAACH,MAA2BD,EAAAA,EAAiBK,SAASJ,CAAK,GAExEK,IAASA,CAACL,MAAwB;AACtC,QAAIJ,EAAMU,UAAU;AAClB,YAAMC,IAAUR,EAAAA,GACVS,IAAOD,EAAQH,SAASJ,CAAK,IAAIO,EAAQE,OAAQC,CAAAA,MAAMA,MAAMV,CAAK,IAAI,CAAC,GAAGO,GAASP,CAAK;AAC9FJ,MAAAA,EAAMe,WAAWH,CAAI;AAAA,IACvB;AACEZ,MAAAA,EAAMe,WAAWX,CAAK;AAAA,EAE1B;AAEA,UAAA,MAAA;AAAA,QAAAY,IAAAC,EAAAA;AAAAC,WAAAA,EAAAF,GAAAG,EACWlB,GAAI;AAAA,MAAA,MAAO;AAAA,MAAO,IAAA,QAAA;AAAA,eAAQmB,EAAG,mBAAmBpB,EAAMqB,KAAK;AAAA,MAAC;AAAA,IAAA,CAAA,GAAA,IAAA,EAAA,GAAAC,EAAAN,GAAAO,EAClEC,GAAG;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEzB,EAAM0B;AAAAA,MAAO;AAAA,MAAAC,UACpBC,CAAAA,MAAML,EACLM,GAAIV,EAAA;AAAA,QAAA,IACHW,QAAK;AAAA,iBAAEF,EAAOE;AAAAA,QAAK;AAAA,QAAA,IACnBhC,OAAI;AAAA,iBAAEE,EAAMF;AAAAA,QAAI;AAAA,QAAA,IAChBC,QAAK;AAAA,iBAAEC,EAAMD;AAAAA,QAAK;AAAA,QAAA,IAClBgC,WAAQ;AAAA,iBAAExB,EAAWqB,EAAOxB,KAAK;AAAA,QAAC;AAAA,QAAA,IAClC4B,UAAO;AAAA,iBAAEzB,EAAWqB,EAAOxB,KAAK,IAAI,WAAW;AAAA,QAAU;AAAA,QAAA,IACzD6B,WAAQ;AAAA,iBAAE,CAAC,EAAEjC,EAAMiC,YAAYL,EAAOK;AAAAA,QAAS;AAAA,QAC/CC,SAASA,MAAMzB,EAAOmB,EAAOxB,KAAK;AAAA,MAAA,GAAC,MAC9BwB,EAAOO,OAAO;AAAA,QAAEA,MAAMP,EAAOO;AAAAA,MAAAA,IAAS,EAAE,CAAA;AAAA,IAAA,CAEhD,CAAA,GAAAnB;AAAAA,EAAA,GAAA;AAIT;"}
@@ -0,0 +1,72 @@
1
+ import { insert as o, createComponent as u, memo as $, use as h, spread as k, mergeProps as E, effect as I, className as P, style as R, template as i } from "solid-js/web";
2
+ import { mergeProps as S, splitProps as C, createSignal as g, onMount as F, Show as p, onCleanup as O } from "solid-js";
3
+ import x from "clsx";
4
+ import { mergeRefs as L } from "../../../primitives/mergeRefs.js";
5
+ var M = /* @__PURE__ */ i("<span class=smwb-lazy-image__fallback>"), N = /* @__PURE__ */ i("<img>", !0, !1, !1), V = /* @__PURE__ */ i("<span>");
6
+ function D(d) {
7
+ const c = S({
8
+ lazy: !0
9
+ }, d), [r, v] = C(c, ["src", "alt", "fallback", "lazy", "aspectRatio", "class", "onError", "ref"]), [y, b] = g(!1), [m, f] = g(!c.lazy);
10
+ let s;
11
+ F(() => {
12
+ if (!r.lazy || m() || !s) return;
13
+ if (typeof IntersectionObserver > "u") {
14
+ f(!0);
15
+ return;
16
+ }
17
+ const t = new IntersectionObserver((e) => {
18
+ e.some((a) => a.isIntersecting) && (f(!0), t.disconnect());
19
+ });
20
+ t.observe(s), O(() => t.disconnect());
21
+ });
22
+ const z = (t) => {
23
+ b(!0), r.onError?.(t);
24
+ }, n = () => y() || !r.src, w = () => m() ? r.src : void 0, _ = () => r.aspectRatio != null ? {
25
+ "aspect-ratio": String(r.aspectRatio)
26
+ } : void 0;
27
+ return (() => {
28
+ var t = V();
29
+ return o(t, u(p, {
30
+ get when() {
31
+ return $(() => !!n())() && r.fallback;
32
+ },
33
+ get children() {
34
+ var e = M();
35
+ return o(e, () => r.fallback), e;
36
+ }
37
+ }), null), o(t, u(p, {
38
+ get when() {
39
+ return !n();
40
+ },
41
+ get children() {
42
+ var e = N(), a = L(r.ref, (l) => s = l);
43
+ return typeof a == "function" && h(a, e), k(e, E(v, {
44
+ class: "smwb-lazy-image__img",
45
+ get src() {
46
+ return w();
47
+ },
48
+ get alt() {
49
+ return r.alt ?? "";
50
+ },
51
+ get loading() {
52
+ return r.lazy ? "lazy" : void 0;
53
+ },
54
+ decoding: "async",
55
+ onError: z
56
+ }), !1, !1), e;
57
+ }
58
+ }), null), I((e) => {
59
+ var a = x("smwb-lazy-image", r.class, {
60
+ "smwb-lazy-image--empty": n()
61
+ }), l = _();
62
+ return a !== e.e && P(t, e.e = a), e.t = R(t, l, e.t), e;
63
+ }, {
64
+ e: void 0,
65
+ t: void 0
66
+ }), t;
67
+ })();
68
+ }
69
+ export {
70
+ D as LazyImage
71
+ };
72
+ //# sourceMappingURL=lazyImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazyImage.js","sources":["../../../../../src/components/dataDisplay/lazyImage/lazyImage.tsx"],"sourcesContent":["import { type JSX, Show, createSignal, mergeProps, onCleanup, onMount, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface LazyImageProps extends Omit<JSX.ImgHTMLAttributes<HTMLImageElement>, \"onError\"> {\n /** Image URL. When absent (or after a load error) the `fallback` is shown. */\n src?: string | undefined;\n alt?: string | undefined;\n /** Rendered in place of the image when it is missing or fails to load. */\n fallback?: JSX.Element | undefined;\n /** Defer loading until the image scrolls into view (IntersectionObserver). Default true. */\n lazy?: boolean;\n /** CSS `aspect-ratio` for the wrapper (e.g. `1`, `\"4 / 3\"`) to reserve space before load. */\n aspectRatio?: string | number;\n /** Fires on a load error (after the fallback is swapped in). */\n onError?: (event: Event) => void;\n ref?: Ref<HTMLImageElement>;\n}\n\n/**\n * An `<img>` with a built-in `onError` fallback and optional in-viewport lazy\n * loading — the `<img decoding=async onError=…>` + `<Show>` dance hand-rolled in\n * every gallery, in one primitive. SSR-safe: renders the image markup on the\n * server; the IntersectionObserver only runs after mount on the client.\n */\nexport function LazyImage(props: LazyImageProps): JSX.Element {\n const merged = mergeProps({ lazy: true }, props);\n const [local, rest] = splitProps(merged, [\n \"src\",\n \"alt\",\n \"fallback\",\n \"lazy\",\n \"aspectRatio\",\n \"class\",\n \"onError\",\n \"ref\",\n ]);\n\n const [failed, setFailed] = createSignal(false);\n // When lazy, hold the real src back until the element scrolls into view.\n const [visible, setVisible] = createSignal(!merged.lazy);\n let imgEl: HTMLImageElement | undefined;\n\n onMount(() => {\n if (!local.lazy || visible() || !imgEl) return;\n if (typeof IntersectionObserver === \"undefined\") {\n setVisible(true);\n return;\n }\n const io = new IntersectionObserver((entries) => {\n if (entries.some((entry) => entry.isIntersecting)) {\n setVisible(true);\n io.disconnect();\n }\n });\n io.observe(imgEl);\n onCleanup(() => io.disconnect());\n });\n\n const onError = (event: Event): void => {\n setFailed(true);\n local.onError?.(event);\n };\n\n const showFallback = (): boolean => failed() || !local.src;\n const resolvedSrc = (): string | undefined => (visible() ? local.src : undefined);\n const style = (): JSX.CSSProperties | undefined =>\n local.aspectRatio != null ? { \"aspect-ratio\": String(local.aspectRatio) } : undefined;\n\n return (\n <span class={cn(\"smwb-lazy-image\", local.class, { \"smwb-lazy-image--empty\": showFallback() })} style={style()}>\n <Show when={showFallback() && local.fallback}>\n <span class=\"smwb-lazy-image__fallback\">{local.fallback}</span>\n </Show>\n <Show when={!showFallback()}>\n <img\n {...rest}\n ref={mergeRefs(local.ref, (el) => (imgEl = el as HTMLImageElement))}\n class=\"smwb-lazy-image__img\"\n src={resolvedSrc()}\n alt={local.alt ?? \"\"}\n loading={local.lazy ? \"lazy\" : undefined}\n decoding=\"async\"\n onError={onError}\n />\n </Show>\n </span>\n );\n}\n\nexport default LazyImage;\n"],"names":["LazyImage","props","merged","mergeProps","lazy","local","rest","splitProps","failed","setFailed","createSignal","visible","setVisible","imgEl","onMount","IntersectionObserver","io","entries","some","entry","isIntersecting","disconnect","observe","onCleanup","onError","event","showFallback","src","resolvedSrc","undefined","style","aspectRatio","String","_el$","_tmpl$3","_$insert","_$createComponent","Show","when","_$memo","fallback","children","_el$2","_tmpl$","_el$3","_tmpl$2","_ref$","mergeRefs","ref","el","_$use","_$spread","_$mergeProps","alt","loading","_$effect","_p$","_v$","cn","class","_v$2","e","_$className","t","_$style"],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ import { use as h, spread as D, mergeProps as E, memo as g, insert as l, createComponent as n, Portal as z, effect as f, setAttribute as C, style as T, isServer as L, template as a } from "solid-js/web";
2
+ import { mergeProps as x, splitProps as F, createSignal as K, onCleanup as M, Show as c } from "solid-js";
3
+ import O from "clsx";
4
+ import { createFloating as R } from "../../../primitives/createFloating.js";
5
+ import { mergeRefs as A } from "../../../primitives/mergeRefs.js";
6
+ import { LazyImage as I } from "../lazyImage/lazyImage.js";
7
+ var j = /* @__PURE__ */ a('<div class="smwb-thumb-card__slot smwb-thumb-card__slot--start">'), q = /* @__PURE__ */ a('<div class="smwb-thumb-card__slot smwb-thumb-card__slot--end">'), B = /* @__PURE__ */ a("<div class=smwb-thumb-card__caption>"), G = /* @__PURE__ */ a("<div class=smwb-thumb-card__preview>"), H = /* @__PURE__ */ a("<div><div class=smwb-thumb-card__media>"), J = /* @__PURE__ */ a("<img alt>");
8
+ function Y(_) {
9
+ const w = x({
10
+ lazy: !0,
11
+ hoverDelay: 350
12
+ }, _), [e, y] = F(w, ["src", "caption", "selected", "onSelect", "fallback", "hoverPreview", "topStart", "topEnd", "lazy", "disabled", "hoverDelay", "class", "ref"]), m = R({
13
+ placement: () => "right"
14
+ }), [$, v] = K(!1);
15
+ let i;
16
+ const d = () => {
17
+ i && (clearTimeout(i), i = void 0);
18
+ }, S = () => {
19
+ e.hoverPreview == null || e.disabled || (d(), i = setTimeout(() => v(!0), e.hoverDelay));
20
+ }, P = () => {
21
+ d(), v(!1);
22
+ };
23
+ M(d);
24
+ const o = () => !!e.onSelect && !e.disabled, k = (r) => {
25
+ o() && (r.key === "Enter" || r.key === " ") && (r.preventDefault(), e.onSelect?.());
26
+ };
27
+ return (() => {
28
+ var r = H(), u = r.firstChild, p = A(e.ref, (t) => m.setReference(t));
29
+ return typeof p == "function" && h(p, r), D(r, E(y, {
30
+ get class() {
31
+ return O("smwb-thumb-card", e.class, {
32
+ "smwb-thumb-card--selected": e.selected,
33
+ "smwb-thumb-card--disabled": e.disabled,
34
+ "smwb-thumb-card--interactive": o()
35
+ });
36
+ },
37
+ get role() {
38
+ return o() ? "button" : void 0;
39
+ },
40
+ get tabindex() {
41
+ return o() ? 0 : void 0;
42
+ },
43
+ get "aria-pressed"() {
44
+ return g(() => !!e.onSelect)() ? e.selected ?? !1 : void 0;
45
+ },
46
+ get "aria-disabled"() {
47
+ return e.disabled || void 0;
48
+ },
49
+ get onClick() {
50
+ return o() ? () => e.onSelect?.() : void 0;
51
+ },
52
+ onKeyDown: k,
53
+ onMouseEnter: S,
54
+ onMouseLeave: P
55
+ }), !1, !0), l(u, n(I, {
56
+ get src() {
57
+ return e.src;
58
+ },
59
+ get lazy() {
60
+ return e.lazy;
61
+ },
62
+ get fallback() {
63
+ return e.fallback;
64
+ }
65
+ }), null), l(u, n(c, {
66
+ get when() {
67
+ return e.topStart;
68
+ },
69
+ get children() {
70
+ var t = j();
71
+ return l(t, () => e.topStart), t;
72
+ }
73
+ }), null), l(u, n(c, {
74
+ get when() {
75
+ return e.topEnd;
76
+ },
77
+ get children() {
78
+ var t = q();
79
+ return l(t, () => e.topEnd), t;
80
+ }
81
+ }), null), l(r, n(c, {
82
+ get when() {
83
+ return e.caption;
84
+ },
85
+ get children() {
86
+ var t = B();
87
+ return l(t, () => e.caption), t;
88
+ }
89
+ }), null), l(r, n(c, {
90
+ get when() {
91
+ return $() && !L;
92
+ },
93
+ get children() {
94
+ return n(z, {
95
+ get children() {
96
+ var t = G();
97
+ return h((s) => m.setFloating(s), t), l(t, (() => {
98
+ var s = g(() => typeof e.hoverPreview == "string");
99
+ return () => s() ? (() => {
100
+ var b = J();
101
+ return f(() => C(b, "src", e.hoverPreview)), b;
102
+ })() : e.hoverPreview;
103
+ })()), f((s) => T(t, m.floatingStyles(), s)), t;
104
+ }
105
+ });
106
+ }
107
+ }), null), r;
108
+ })();
109
+ }
110
+ export {
111
+ Y as ThumbCard
112
+ };
113
+ //# sourceMappingURL=thumbCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thumbCard.js","sources":["../../../../../src/components/dataDisplay/thumbCard/thumbCard.tsx"],"sourcesContent":["import { type JSX, Show, createSignal, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { Portal, isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { createFloating } from \"../../../primitives/createFloating\";\nimport { LazyImage } from \"../lazyImage\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface ThumbCardProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onSelect\"> {\n /** Thumbnail URL; falls back to `fallback` when missing / failed. */\n src?: string;\n caption?: JSX.Element;\n selected?: boolean;\n /** Makes the card a selectable button (keyboard + `aria-pressed`). */\n onSelect?: () => void;\n /** Shown in place of the image when `src` is missing / fails. */\n fallback?: JSX.Element;\n /** A larger preview shown in a floating popup after a hover delay. */\n hoverPreview?: JSX.Element | string;\n /** Top-left overlay slot (e.g. a favourite star). */\n topStart?: JSX.Element;\n /** Top-right overlay slot (e.g. a kebab menu). */\n topEnd?: JSX.Element;\n lazy?: boolean;\n disabled?: boolean;\n /** Delay (ms) before the hover preview appears. Default 350. */\n hoverDelay?: number;\n ref?: Ref<HTMLDivElement>;\n}\n\n/**\n * A selectable gallery card: image with an `onError` fallback + optional lazy\n * load, keyboard/`aria-pressed` selection, corner action slots, and a delayed\n * floating hover-preview. The generic gallery-card behaviour every app rebuilds\n * on top of the primitives. SSR-safe — the hover preview is client-only.\n */\nexport function ThumbCard(props: ThumbCardProps): JSX.Element {\n const merged = mergeProps({ lazy: true, hoverDelay: 350 }, props);\n const [local, rest] = splitProps(merged, [\n \"src\",\n \"caption\",\n \"selected\",\n \"onSelect\",\n \"fallback\",\n \"hoverPreview\",\n \"topStart\",\n \"topEnd\",\n \"lazy\",\n \"disabled\",\n \"hoverDelay\",\n \"class\",\n \"ref\",\n ]);\n\n const floating = createFloating({ placement: () => \"right\" });\n const [previewOpen, setPreviewOpen] = createSignal(false);\n let hoverTimer: ReturnType<typeof setTimeout> | undefined;\n\n const clearTimer = (): void => {\n if (hoverTimer) {\n clearTimeout(hoverTimer);\n hoverTimer = undefined;\n }\n };\n const onEnter = (): void => {\n if (local.hoverPreview == null || local.disabled) return;\n clearTimer();\n hoverTimer = setTimeout(() => setPreviewOpen(true), local.hoverDelay);\n };\n const onLeave = (): void => {\n clearTimer();\n setPreviewOpen(false);\n };\n onCleanup(clearTimer);\n\n const interactive = (): boolean => !!local.onSelect && !local.disabled;\n const onKeyDown: JSX.EventHandler<HTMLDivElement, KeyboardEvent> = (event) => {\n if (interactive() && (event.key === \"Enter\" || event.key === \" \")) {\n event.preventDefault();\n local.onSelect?.();\n }\n };\n\n return (\n <div\n {...rest}\n ref={mergeRefs(local.ref, (el) => floating.setReference(el))}\n class={cn(\"smwb-thumb-card\", local.class, {\n \"smwb-thumb-card--selected\": local.selected,\n \"smwb-thumb-card--disabled\": local.disabled,\n \"smwb-thumb-card--interactive\": interactive(),\n })}\n role={interactive() ? \"button\" : undefined}\n tabindex={interactive() ? 0 : undefined}\n aria-pressed={local.onSelect ? (local.selected ?? false) : undefined}\n aria-disabled={local.disabled || undefined}\n onClick={interactive() ? () => local.onSelect?.() : undefined}\n onKeyDown={onKeyDown}\n onMouseEnter={onEnter}\n onMouseLeave={onLeave}\n >\n <div class=\"smwb-thumb-card__media\">\n <LazyImage src={local.src} lazy={local.lazy} fallback={local.fallback} />\n <Show when={local.topStart}>\n <div class=\"smwb-thumb-card__slot smwb-thumb-card__slot--start\">{local.topStart}</div>\n </Show>\n <Show when={local.topEnd}>\n <div class=\"smwb-thumb-card__slot smwb-thumb-card__slot--end\">{local.topEnd}</div>\n </Show>\n </div>\n <Show when={local.caption}>\n <div class=\"smwb-thumb-card__caption\">{local.caption}</div>\n </Show>\n <Show when={previewOpen() && !isServer}>\n <Portal>\n <div class=\"smwb-thumb-card__preview\" ref={(el) => floating.setFloating(el)} style={floating.floatingStyles()}>\n {typeof local.hoverPreview === \"string\" ? (\n <img src={local.hoverPreview} alt=\"\" />\n ) : (\n (local.hoverPreview as JSX.Element)\n )}\n </div>\n </Portal>\n </Show>\n </div>\n );\n}\n\nexport default ThumbCard;\n"],"names":["ThumbCard","props","merged","mergeProps","lazy","hoverDelay","local","rest","splitProps","floating","createFloating","placement","previewOpen","setPreviewOpen","createSignal","hoverTimer","clearTimer","clearTimeout","undefined","onEnter","hoverPreview","disabled","setTimeout","onLeave","onCleanup","interactive","onSelect","onKeyDown","event","key","preventDefault","_el$","_tmpl$5","_el$2","firstChild","_ref$","mergeRefs","ref","el","setReference","_$use","_$spread","_$mergeProps","cn","class","selected","role","tabindex","_$memo","onClick","_$insert","_$createComponent","LazyImage","src","fallback","Show","when","topStart","children","_el$3","_tmpl$","topEnd","_el$4","_tmpl$2","caption","_el$5","_tmpl$3","isServer","Portal","_el$6","_tmpl$4","setFloating","_c$","_el$7","_tmpl$6","_$effect","_$setAttribute","_$p","_$style","floatingStyles"],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { createComponent as r, insert as l, effect as s, setAttribute as g, className as p, template as u } from "solid-js/web";
2
+ import { splitProps as b, Show as o } from "solid-js";
3
+ import v from "clsx";
4
+ import { Modal as a } from "../modal/modal.js";
5
+ import { TextField as C } from "../../inputs/textField/textField.js";
6
+ import { Button as i } from "../../inputs/button/button.js";
7
+ var h = /* @__PURE__ */ u("<div class=smwb-save-asset-dialog__preview><img alt>"), f = /* @__PURE__ */ u("<div>");
8
+ function $(c) {
9
+ const [e] = b(c, ["open", "title", "nameLabel", "name", "onNameChange", "previewSrc", "onCapture", "captureLabel", "busy", "confirmLabel", "cancelLabel", "onConfirm", "onClose", "children", "class"]), m = () => e.onNameChange !== void 0 || e.name !== void 0;
10
+ return r(a, {
11
+ get open() {
12
+ return e.open;
13
+ },
14
+ get onClose() {
15
+ return e.onClose;
16
+ },
17
+ size: "small",
18
+ get children() {
19
+ return [r(a.Header, {
20
+ get children() {
21
+ return e.title ?? "Save";
22
+ }
23
+ }), r(a.Content, {
24
+ get children() {
25
+ var t = f();
26
+ return l(t, r(o, {
27
+ get when() {
28
+ return m();
29
+ },
30
+ get children() {
31
+ return r(C, {
32
+ get label() {
33
+ return e.nameLabel ?? "Name";
34
+ },
35
+ get value() {
36
+ return e.name ?? "";
37
+ },
38
+ get disabled() {
39
+ return !!e.busy;
40
+ },
41
+ onChange: (n) => e.onNameChange?.(n.currentTarget.value)
42
+ });
43
+ }
44
+ }), null), l(t, r(o, {
45
+ get when() {
46
+ return e.previewSrc;
47
+ },
48
+ get children() {
49
+ var n = h(), d = n.firstChild;
50
+ return s(() => g(d, "src", e.previewSrc)), n;
51
+ }
52
+ }), null), l(t, r(o, {
53
+ get when() {
54
+ return e.onCapture;
55
+ },
56
+ get children() {
57
+ return r(i, {
58
+ variant: "outlined",
59
+ size: "small",
60
+ get disabled() {
61
+ return !!e.busy;
62
+ },
63
+ onClick: () => e.onCapture?.(),
64
+ get label() {
65
+ return e.captureLabel ?? "Capture preview";
66
+ }
67
+ });
68
+ }
69
+ }), null), l(t, () => e.children, null), s(() => p(t, v("smwb-save-asset-dialog__body", e.class))), t;
70
+ }
71
+ }), r(a.Footer, {
72
+ get children() {
73
+ return [r(i, {
74
+ variant: "text",
75
+ get disabled() {
76
+ return !!e.busy;
77
+ },
78
+ onClick: () => e.onClose(),
79
+ get label() {
80
+ return e.cancelLabel ?? "Cancel";
81
+ }
82
+ }), r(i, {
83
+ variant: "contained",
84
+ get disabled() {
85
+ return !!e.busy;
86
+ },
87
+ onClick: () => e.onConfirm(),
88
+ get label() {
89
+ return e.confirmLabel ?? "Save";
90
+ }
91
+ })];
92
+ }
93
+ })];
94
+ }
95
+ });
96
+ }
97
+ export {
98
+ $ as SaveAssetDialog
99
+ };
100
+ //# sourceMappingURL=saveAssetDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveAssetDialog.js","sources":["../../../../../src/components/feedBack/saveAssetDialog/saveAssetDialog.tsx"],"sourcesContent":["import { type JSX, Show, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { Modal } from \"../modal\";\nimport { Button } from \"../../inputs/button\";\nimport { TextField } from \"../../inputs/textField\";\n\nexport interface SaveAssetDialogProps {\n open: boolean;\n title?: string;\n /** Label for the name field. Omit `onNameChange` AND `name` to hide the field. */\n nameLabel?: string;\n name?: string;\n onNameChange?: (name: string) => void;\n /** Preview image URL (e.g. a freshly captured thumbnail). */\n previewSrc?: string;\n /** Shows a Capture button when provided. */\n onCapture?: () => void;\n captureLabel?: string;\n /** Disables the actions + name field while a save/capture is in flight. */\n busy?: boolean;\n confirmLabel?: string;\n cancelLabel?: string;\n onConfirm: () => void;\n onClose: () => void;\n /** Extra content between the name field/preview and the actions. */\n children?: JSX.Element;\n class?: string;\n}\n\n/**\n * A \"name it / preview a thumbnail / confirm-cancel\" dialog on `Modal` — the\n * save/capture flow apps hand-build for every asset. Pairs with srv-solid's\n * asset store: `onConfirm` uploads the captured `previewSrc`.\n */\nexport function SaveAssetDialog(props: SaveAssetDialogProps): JSX.Element {\n const [local] = splitProps(props, [\n \"open\",\n \"title\",\n \"nameLabel\",\n \"name\",\n \"onNameChange\",\n \"previewSrc\",\n \"onCapture\",\n \"captureLabel\",\n \"busy\",\n \"confirmLabel\",\n \"cancelLabel\",\n \"onConfirm\",\n \"onClose\",\n \"children\",\n \"class\",\n ]);\n\n const showNameField = (): boolean => local.onNameChange !== undefined || local.name !== undefined;\n\n return (\n <Modal open={local.open} onClose={local.onClose} size=\"small\">\n <Modal.Header>{local.title ?? \"Save\"}</Modal.Header>\n <Modal.Content>\n <div class={cn(\"smwb-save-asset-dialog__body\", local.class)}>\n <Show when={showNameField()}>\n <TextField\n label={local.nameLabel ?? \"Name\"}\n value={local.name ?? \"\"}\n disabled={!!local.busy}\n onChange={(event) => local.onNameChange?.((event.currentTarget as HTMLInputElement).value)}\n />\n </Show>\n <Show when={local.previewSrc}>\n <div class=\"smwb-save-asset-dialog__preview\">\n <img src={local.previewSrc} alt=\"\" />\n </div>\n </Show>\n <Show when={local.onCapture}>\n <Button\n variant=\"outlined\"\n size=\"small\"\n disabled={!!local.busy}\n onClick={() => local.onCapture?.()}\n label={local.captureLabel ?? \"Capture preview\"}\n />\n </Show>\n {local.children}\n </div>\n </Modal.Content>\n <Modal.Footer>\n <Button variant=\"text\" disabled={!!local.busy} onClick={() => local.onClose()} label={local.cancelLabel ?? \"Cancel\"} />\n <Button variant=\"contained\" disabled={!!local.busy} onClick={() => local.onConfirm()} label={local.confirmLabel ?? \"Save\"} />\n </Modal.Footer>\n </Modal>\n );\n}\n\nexport default SaveAssetDialog;\n"],"names":["SaveAssetDialog","props","local","splitProps","showNameField","onNameChange","undefined","name","_$createComponent","Modal","open","onClose","size","children","Header","title","Content","_el$","_tmpl$2","_$insert","Show","when","TextField","label","nameLabel","value","disabled","busy","onChange","event","currentTarget","previewSrc","_el$2","_tmpl$","_el$3","firstChild","_$effect","_$setAttribute","onCapture","Button","variant","onClick","captureLabel","_$className","cn","class","Footer","cancelLabel","onConfirm","confirmLabel"],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { insert as t, createComponent as s, effect as v, setAttribute as _, className as f, template as a, delegateEvents as w } from "solid-js/web";
2
+ import { splitProps as $, Show as d } from "solid-js";
3
+ import g from "clsx";
4
+ import { Slider as R } from "../slider/slider.js";
5
+ var k = /* @__PURE__ */ a("<span class=smwb-value-slider__label>"), A = /* @__PURE__ */ a("<span class=smwb-value-slider__readout>"), y = /* @__PURE__ */ a('<button type=button class=smwb-value-slider__reset><svg viewBox="0 0 24 24"width=16 height=16 aria-hidden=true fill=none stroke=currentColor stroke-width=2><path d="M3 12a9 9 0 1 0 3-6.7M3 4v4h4"stroke-linecap=round stroke-linejoin=round>'), S = /* @__PURE__ */ a("<div class=smwb-value-slider__header><span class=smwb-value-slider__spacer>"), C = /* @__PURE__ */ a("<div>");
6
+ const x = (o, e) => typeof o == "function" ? o(e) : Array.isArray(e) ? `${e[0]} – ${e[1]}` : e == null ? "" : String(e);
7
+ function B(o) {
8
+ const [e, u] = $(o, ["readout", "endAdornment", "onReset", "resetLabel", "label", "class"]), c = () => e.readout !== void 0 && e.readout !== !1, b = () => e.label != null || c() || e.endAdornment != null || e.onReset != null;
9
+ return (() => {
10
+ var i = C();
11
+ return t(i, s(d, {
12
+ get when() {
13
+ return b();
14
+ },
15
+ get children() {
16
+ var l = S(), p = l.firstChild;
17
+ return t(l, s(d, {
18
+ get when() {
19
+ return e.label != null;
20
+ },
21
+ get children() {
22
+ var r = k();
23
+ return t(r, () => e.label), r;
24
+ }
25
+ }), p), t(l, s(d, {
26
+ get when() {
27
+ return c();
28
+ },
29
+ get children() {
30
+ var r = A();
31
+ return t(r, () => x(e.readout, u.value)), r;
32
+ }
33
+ }), null), t(l, () => e.endAdornment, null), t(l, s(d, {
34
+ get when() {
35
+ return e.onReset != null;
36
+ },
37
+ get children() {
38
+ var r = y();
39
+ return r.$$click = () => e.onReset?.(), v((n) => {
40
+ var m = e.resetLabel ?? "Reset", h = u.disabled;
41
+ return m !== n.e && _(r, "aria-label", n.e = m), h !== n.t && (r.disabled = n.t = h), n;
42
+ }, {
43
+ e: void 0,
44
+ t: void 0
45
+ }), r;
46
+ }
47
+ }), null), l;
48
+ }
49
+ }), null), t(i, s(R, u), null), v(() => f(i, g("smwb-value-slider", e.class))), i;
50
+ })();
51
+ }
52
+ w(["click"]);
53
+ export {
54
+ B as ValueSlider
55
+ };
56
+ //# sourceMappingURL=valueSlider.js.map