@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
@@ -1 +1 @@
1
- .smwb-appbar{padding:0 16px;display:flex;align-items:center;inset:0 0 auto;min-width:100%;background-color:var(--smui-appBarBg);color:var(--smui-appBarContentColor);font-size:1rem;height:65px}.smwb-appbar.smwb-bottom{bottom:0;top:auto}.smwb-appbar.smwb-relative{position:relative}.smwb-appbar.smwb-static{position:static}.smwb-appbar.smwb-sticky{position:sticky}.smwb-appbar.smwb-fixed{position:fixed}.smwb-appbar.smwb-absolute{position:absolute}.smwb-appbar.smwb-dense{padding:12px;height:48px}.smwb-appbar__inner{display:flex;align-items:center;width:100%;justify-content:space-between;flex-wrap:nowrap}.smwb-appbar__left{display:flex;align-items:center;gap:10px;white-space:nowrap}.smwb-appbar__right{white-space:nowrap}.smwb-appbar__mid{width:100%;display:flex;flex:1 1 auto;flex-direction:column;flex-wrap:nowrap}.smwb-appbar__mid.smwb-middle{align-items:center}.smwb-appbar__mid.smwb-right{align-items:flex-end}.smwb-appbar__mid.smwb-left{align-items:flex-start}.smwb-appbar_color-primary{background-color:var(--smui-primaryColor);color:var(--smui-onPrimaryColor)}.smwb-appbar_color-secondary{background-color:var(--smui-secondaryColor);color:var(--smui-onSecondaryColor)}.smwb-appbar_color-error{background-color:var(--smui-errorColor);color:var(--smui-onErrorColor)}.smwb-appbar_color-success{background-color:var(--smui-successColor);color:var(--smui-onSuccessColor)}.smwb-appbar_color-warning{background-color:var(--smui-warningColor);color:var(--smui-onWarningColor)}.smwb-appbar_color-info{background-color:var(--smui-infoColor);color:var(--smui-onInfoColor)}
1
+ .smwb-appbar{box-sizing:border-box;padding:0 16px;display:flex;align-items:center;inset:0 0 auto;min-width:100%;background-color:var(--smui-appBarBg);color:var(--smui-appBarContentColor);font-size:1rem;height:65px}.smwb-appbar.smwb-bottom{bottom:0;top:auto}.smwb-appbar.smwb-relative{position:relative}.smwb-appbar.smwb-static{position:static}.smwb-appbar.smwb-sticky{position:sticky}.smwb-appbar.smwb-fixed{position:fixed}.smwb-appbar.smwb-absolute{position:absolute}.smwb-appbar.smwb-dense{padding:12px;height:48px}.smwb-appbar__inner{display:flex;align-items:center;width:100%;justify-content:space-between;flex-wrap:nowrap}.smwb-appbar__left{display:flex;align-items:center;gap:10px;white-space:nowrap}.smwb-appbar__right{white-space:nowrap}.smwb-appbar__mid{width:100%;display:flex;flex:1 1 auto;flex-direction:column;flex-wrap:nowrap}.smwb-appbar__mid.smwb-middle{align-items:center}.smwb-appbar__mid.smwb-right{align-items:flex-end}.smwb-appbar__mid.smwb-left{align-items:flex-start}.smwb-appbar_color-primary{background-color:var(--smui-primaryColor);color:var(--smui-onPrimaryColor)}.smwb-appbar_color-secondary{background-color:var(--smui-secondaryColor);color:var(--smui-onSecondaryColor)}.smwb-appbar_color-error{background-color:var(--smui-errorColor);color:var(--smui-onErrorColor)}.smwb-appbar_color-success{background-color:var(--smui-successColor);color:var(--smui-onSuccessColor)}.smwb-appbar_color-warning{background-color:var(--smui-warningColor);color:var(--smui-onWarningColor)}.smwb-appbar_color-info{background-color:var(--smui-infoColor);color:var(--smui-onInfoColor)}
@@ -0,0 +1 @@
1
+ .smwb-asset-grid{position:relative;overflow-y:auto;width:100%}.smwb-asset-grid__empty{display:flex;align-items:center;justify-content:center;padding:32px 16px;color:var(--smui-onSurfaceColor);opacity:.7}.smwb-asset-grid__skeleton{border-radius:8px;background-color:var(--smui-surfaceVariant);animation:smwb-asset-grid-pulse 1.4s ease-in-out infinite}@keyframes smwb-asset-grid-pulse{0%,to{opacity:1}50%{opacity:.5}}
@@ -0,0 +1 @@
1
+ .smwb-chip-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
@@ -0,0 +1 @@
1
+ .smwb-lazy-image{display:block;position:relative;overflow:hidden;width:100%;height:100%}.smwb-lazy-image__img{display:block;width:100%;height:100%;object-fit:cover}.smwb-lazy-image__fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--smui-onSurfaceColor);background-color:var(--smui-surfaceVariant)}
@@ -0,0 +1 @@
1
+ .smwb-overflow-menu{display:inline-flex}.smwb-overflow-menu__item--danger{color:var(--smui-errorColor)}
@@ -0,0 +1 @@
1
+ .smwb-save-asset-dialog__body{display:flex;flex-direction:column;gap:12px;min-width:280px}.smwb-save-asset-dialog__preview{display:flex;justify-content:center;align-items:center;border-radius:8px;overflow:hidden;background-color:var(--smui-surfaceVariant)}.smwb-save-asset-dialog__preview img{max-width:100%;max-height:200px;object-fit:contain}
@@ -1 +1 @@
1
- .smwb-sheet{background-color:var(--smui-surfaceBackground);position:fixed;opacity:0;transition:all .2s ease-in-out;box-shadow:#00000024 0 8px 10px -5px,#00000024 0 1px 14px 1px,#00000024 0 6px 22px 4px;z-index:100;padding:10px 20px 20px;overflow:hidden;display:flex;max-width:100vw}.smwb-sheet__header{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;gap:4px;padding-bottom:5px}.smwb-sheet__header .smwb-button{min-width:0}.smwb-sheet__drag-handle{position:absolute;display:flex;align-items:center;justify-content:center;z-index:1;touch-action:none;user-select:none}.smwb-sheet__drag-handle:focus-visible{outline:2px solid var(--smui-primaryColor);outline-offset:-2px}.smwb-sheet__drag-handle-bar{display:block;border-radius:999px;background-color:var(--smui-onSurfaceVariant);opacity:.4;transition:opacity .15s ease-in-out}.smwb-sheet__drag-handle:hover .smwb-sheet__drag-handle-bar,.smwb-sheet__drag-handle:active .smwb-sheet__drag-handle-bar{opacity:.7}.smwb-sheet_resizable.smwb-bottom{padding-top:20px}.smwb-sheet_resizable.smwb-top{padding-bottom:20px}.smwb-sheet_resizable.smwb-left{padding-right:20px}.smwb-sheet_resizable.smwb-right{padding-left:20px}.smwb-sheet.smwb-bottom .smwb-sheet__drag-handle,.smwb-sheet.smwb-top .smwb-sheet__drag-handle{left:0;right:0;height:20px;cursor:ns-resize}.smwb-sheet.smwb-bottom .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar,.smwb-sheet.smwb-top .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar{width:36px;height:4px}.smwb-sheet.smwb-bottom .smwb-sheet__drag-handle{top:0}.smwb-sheet.smwb-top .smwb-sheet__drag-handle{bottom:0}.smwb-sheet.smwb-left .smwb-sheet__drag-handle,.smwb-sheet.smwb-right .smwb-sheet__drag-handle{top:0;bottom:0;width:20px;cursor:ew-resize}.smwb-sheet.smwb-left .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar,.smwb-sheet.smwb-right .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar{width:4px;height:36px}.smwb-sheet.smwb-right .smwb-sheet__drag-handle{left:0}.smwb-sheet.smwb-left .smwb-sheet__drag-handle{right:0}.smwb-sheet__inner{display:flex;flex-direction:column;height:100%;width:100%;overflow-y:auto}.smwb-sheet.smwb-bottom{border-radius:28px 28px 0 0;bottom:0;left:0;width:100%;height:var(--sizeProp);transform:translateY(100%);flex-direction:column}.smwb-sheet.smwb-bottom .smwb-sheet__header{width:100%}.smwb-sheet.smwb-top{border-radius:0 0 28px 28px;top:0;left:0;width:100%;height:var(--sizeProp);transform:translateY(-100%);flex-direction:column}.smwb-sheet.smwb-top .smwb-sheet__header{width:100%}.smwb-sheet.smwb-left{border-radius:0 28px 28px 0;top:0;left:0;height:100%;width:var(--sizeProp);transform:translate(-100%);flex-direction:row-reverse}.smwb-sheet.smwb-left .smwb-sheet__header{flex-direction:column;height:100%;padding-left:10px}.smwb-sheet.smwb-right{border-radius:28px 0 0 28px;top:0;right:0;height:100%;width:var(--sizeProp);transform:translate(100%)}.smwb-sheet.smwb-right .smwb-sheet__header{flex-direction:column;height:100%}.smwb-sheet__overlay{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;z-index:100;opacity:0;transition:all .25s ease-in-out}.smwb-sheet__overlay.smwb-entered{opacity:1}.smwb-sheet__overlay.smwb-dark{background-color:#00000080}.smwb-sheet__default.smwb-entered .smwb-sheet,.smwb-sheet__overlay.smwb-entered .smwb-sheet{opacity:1}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-bottom,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-bottom{transform:translateY(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-bottom.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-bottom.smwb-expanded{height:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-bottom.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-bottom.smwb-small{height:10%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-top,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-top{transform:translateY(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-top.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-top.smwb-expanded{height:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-top.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-top.smwb-small{height:10%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-left,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-left{transform:translate(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-left.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-left.smwb-expanded{width:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-left.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-left.smwb-small{width:10%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-right,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-right{transform:translate(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-right.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-right.smwb-expanded{width:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-right.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-right.smwb-small{width:10%}.smwb-scrollbar::-webkit-scrollbar-thumb{background-color:var(--smui-scrollThumbColor);width:6px;border-radius:999px}.smwb-scrollbar::-webkit-scrollbar{width:6px}.smwb-scrollbar::-webkit-scrollbar-track{background-color:transparent}
1
+ .smwb-sheet{background-color:var(--smui-surfaceBackground);position:fixed;opacity:0;transition:all .2s ease-in-out;box-shadow:#00000024 0 8px 10px -5px,#00000024 0 1px 14px 1px,#00000024 0 6px 22px 4px;z-index:100;padding:10px 20px 20px;box-sizing:border-box;overflow:hidden;display:flex;max-width:100vw}.smwb-sheet__header{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;gap:4px;padding-bottom:5px}.smwb-sheet__header .smwb-button{min-width:0}.smwb-sheet__drag-handle{position:absolute;display:flex;align-items:center;justify-content:center;z-index:1;touch-action:none;user-select:none}.smwb-sheet__drag-handle:focus-visible{outline:2px solid var(--smui-primaryColor);outline-offset:-2px}.smwb-sheet__drag-handle-bar{display:block;border-radius:999px;background-color:var(--smui-onSurfaceVariant);opacity:.4;transition:opacity .15s ease-in-out}.smwb-sheet__drag-handle:hover .smwb-sheet__drag-handle-bar,.smwb-sheet__drag-handle:active .smwb-sheet__drag-handle-bar{opacity:.7}.smwb-sheet_resizable.smwb-bottom{padding-top:20px}.smwb-sheet_resizable.smwb-top{padding-bottom:20px}.smwb-sheet_resizable.smwb-left{padding-right:20px}.smwb-sheet_resizable.smwb-right{padding-left:20px}.smwb-sheet.smwb-bottom .smwb-sheet__drag-handle,.smwb-sheet.smwb-top .smwb-sheet__drag-handle{left:0;right:0;height:20px;cursor:ns-resize}.smwb-sheet.smwb-bottom .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar,.smwb-sheet.smwb-top .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar{width:36px;height:4px}.smwb-sheet.smwb-bottom .smwb-sheet__drag-handle{top:0}.smwb-sheet.smwb-top .smwb-sheet__drag-handle{bottom:0}.smwb-sheet.smwb-left .smwb-sheet__drag-handle,.smwb-sheet.smwb-right .smwb-sheet__drag-handle{top:0;bottom:0;width:20px;cursor:ew-resize}.smwb-sheet.smwb-left .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar,.smwb-sheet.smwb-right .smwb-sheet__drag-handle .smwb-sheet__drag-handle-bar{width:4px;height:36px}.smwb-sheet.smwb-right .smwb-sheet__drag-handle{left:0}.smwb-sheet.smwb-left .smwb-sheet__drag-handle{right:0}.smwb-sheet__inner{display:flex;flex-direction:column;height:100%;width:100%;overflow-y:auto}.smwb-sheet.smwb-bottom{border-radius:28px 28px 0 0;bottom:0;left:0;width:100%;height:var(--sizeProp);transform:translateY(100%);flex-direction:column}.smwb-sheet.smwb-bottom .smwb-sheet__header{width:100%}.smwb-sheet.smwb-top{border-radius:0 0 28px 28px;top:0;left:0;width:100%;height:var(--sizeProp);transform:translateY(-100%);flex-direction:column}.smwb-sheet.smwb-top .smwb-sheet__header{width:100%}.smwb-sheet.smwb-left{border-radius:0 28px 28px 0;top:0;left:0;height:100%;width:var(--sizeProp);transform:translate(-100%);flex-direction:row-reverse}.smwb-sheet.smwb-left .smwb-sheet__header{flex-direction:column;height:100%;padding-left:10px}.smwb-sheet.smwb-right{border-radius:28px 0 0 28px;top:0;right:0;height:100%;width:var(--sizeProp);transform:translate(100%)}.smwb-sheet.smwb-right .smwb-sheet__header{flex-direction:column;height:100%}.smwb-sheet__overlay{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;z-index:100;opacity:0;transition:all .25s ease-in-out}.smwb-sheet__overlay.smwb-entered{opacity:1}.smwb-sheet__overlay.smwb-dark{background-color:#00000080}.smwb-sheet__default.smwb-entered .smwb-sheet,.smwb-sheet__overlay.smwb-entered .smwb-sheet{opacity:1}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-bottom,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-bottom{transform:translateY(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-bottom.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-bottom.smwb-expanded{height:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-bottom.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-bottom.smwb-small{height:10%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-top,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-top{transform:translateY(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-top.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-top.smwb-expanded{height:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-top.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-top.smwb-small{height:10%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-left,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-left{transform:translate(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-left.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-left.smwb-expanded{width:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-left.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-left.smwb-small{width:10%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-right,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-right{transform:translate(0)}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-right.smwb-expanded,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-right.smwb-expanded{width:90%}.smwb-sheet__default.smwb-entered .smwb-sheet.smwb-right.smwb-small,.smwb-sheet__overlay.smwb-entered .smwb-sheet.smwb-right.smwb-small{width:10%}.smwb-scrollbar::-webkit-scrollbar-thumb{background-color:var(--smui-scrollThumbColor);width:6px;border-radius:999px}.smwb-scrollbar::-webkit-scrollbar{width:6px}.smwb-scrollbar::-webkit-scrollbar-track{background-color:transparent}
@@ -0,0 +1 @@
1
+ .smwb-thumb-card{position:relative;display:flex;flex-direction:column;border-radius:8px;overflow:visible;outline:none}.smwb-thumb-card--interactive{cursor:pointer}.smwb-thumb-card--disabled{opacity:.5;pointer-events:none}.smwb-thumb-card__media{position:relative;width:100%;aspect-ratio:1;border-radius:8px;overflow:hidden;background-color:var(--smui-surfaceVariant)}.smwb-thumb-card--selected .smwb-thumb-card__media{outline:2px solid var(--smui-primaryColor);outline-offset:1px}.smwb-thumb-card--interactive:focus-visible .smwb-thumb-card__media{outline:2px solid var(--smui-primaryColor);outline-offset:1px}.smwb-thumb-card__slot{position:absolute;top:4px;display:flex;gap:4px;z-index:1}.smwb-thumb-card__slot--start{left:4px}.smwb-thumb-card__slot--end{right:4px}.smwb-thumb-card__caption{margin-top:4px;font-size:.8125rem;color:var(--smui-onSurfaceColor);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.smwb-thumb-card__preview{z-index:1000;border-radius:8px;overflow:hidden;box-shadow:0 8px 24px #0000004d;background-color:var(--smui-surfaceBackground);pointer-events:none}.smwb-thumb-card__preview img{display:block;max-width:320px;max-height:320px;object-fit:contain}
@@ -0,0 +1 @@
1
+ .smwb-value-slider{display:flex;flex-direction:column;width:100%}.smwb-value-slider__header{display:flex;align-items:center;gap:8px;min-height:24px}.smwb-value-slider__label{font-size:.875rem;color:var(--smui-onSurfaceColor)}.smwb-value-slider__spacer{flex:1 1 auto}.smwb-value-slider__readout{font-size:.875rem;font-variant-numeric:tabular-nums;color:var(--smui-onSurfaceColor);opacity:.85}.smwb-value-slider__reset{display:inline-flex;align-items:center;justify-content:center;padding:2px;border:none;background:transparent;color:var(--smui-onSurfaceColor);cursor:pointer;border-radius:50%;opacity:.7}.smwb-value-slider__reset:hover{opacity:1;background-color:var(--smui-onSurfaceHover)}.smwb-value-slider__reset:disabled{opacity:.4;cursor:default}
@@ -0,0 +1,30 @@
1
+ import { type JSX } from "solid-js";
2
+ export interface AssetGridProps<T> {
3
+ items: T[];
4
+ /** Render one cell. `index` is the absolute index into `items`. */
5
+ renderItem: (item: T, index: number) => JSX.Element;
6
+ /** Minimum column width (px); drives the column count from the measured width. Default 160. */
7
+ minColumn?: number;
8
+ /** Fixed cell height (px). */
9
+ rowHeight: number;
10
+ /** Gap (px) between cells on both axes. Default 8. */
11
+ gap?: number;
12
+ /** Extra rows rendered above/below the viewport. Default 2. */
13
+ overscan?: number;
14
+ loading?: boolean;
15
+ /** Skeleton tile count while loading. Default 12. */
16
+ loadingCount?: number;
17
+ emptyLabel?: JSX.Element;
18
+ class?: string;
19
+ style?: JSX.CSSProperties | string;
20
+ }
21
+ /**
22
+ * A virtualized, data-shape-agnostic asset grid: measures its own width to pick a
23
+ * column count, windows rows via `createVirtualList`, and renders only the visible
24
+ * cells through a `renderItem` slot — with loading skeletons + an empty state. The
25
+ * windowing math every catalog app reimplements, upstreamed. SSR-safe: before it
26
+ * can measure (server + first paint) it renders a plain auto-fill grid of all
27
+ * items, then virtualizes after mount.
28
+ */
29
+ export declare function AssetGrid<T>(props: AssetGridProps<T>): JSX.Element;
30
+ export default AssetGrid;
@@ -0,0 +1,144 @@
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 '../../../assets/styles/less/components/assetGrid/assetGrid.entry.css';/* empty css */
3
+ 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";
4
+ import N from "clsx";
5
+ import { createVirtualList as V } from "../../../primitives/createVirtualList.js";
6
+ 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>");
7
+ function ee(y) {
8
+ const x = W({
9
+ minColumn: 160,
10
+ gap: 8,
11
+ overscan: 2,
12
+ loadingCount: 12
13
+ }, y), [t] = Y(x, ["items", "renderItem", "minColumn", "rowHeight", "gap", "overscan", "loading", "loadingCount", "emptyLabel", "class", "style"]);
14
+ let l;
15
+ const [C, H] = f(0), [S, I] = f(0), [M, k] = f(!1);
16
+ F(() => {
17
+ if (!l || typeof ResizeObserver > "u") return;
18
+ const r = new ResizeObserver(() => {
19
+ l && (H(l.clientWidth), I(l.clientHeight), k(!0));
20
+ });
21
+ r.observe(l), G(() => r.disconnect());
22
+ });
23
+ const u = _(() => {
24
+ const r = C();
25
+ return r <= 0 ? 1 : Math.max(1, Math.floor((r + t.gap) / (t.minColumn + t.gap)));
26
+ }), L = _(() => Math.ceil(t.items.length / u())), d = V({
27
+ itemCount: L,
28
+ itemHeight: () => t.rowHeight + t.gap,
29
+ viewportHeight: () => S() || 1,
30
+ overscan: t.overscan
31
+ }), R = _(() => {
32
+ const r = [];
33
+ for (let e = d.startIndex(); e < d.endIndex(); e++) r.push(e);
34
+ return r;
35
+ }), z = () => ({
36
+ display: "grid",
37
+ "grid-template-columns": `repeat(${u()}, minmax(0, 1fr))`,
38
+ gap: `${t.gap}px`,
39
+ height: `${t.rowHeight}px`,
40
+ "margin-bottom": `${t.gap}px`
41
+ }), $ = () => ({
42
+ display: "grid",
43
+ "grid-template-columns": `repeat(auto-fill, minmax(${t.minColumn}px, 1fr))`,
44
+ gap: `${t.gap}px`,
45
+ "grid-auto-rows": `${t.rowHeight}px`
46
+ });
47
+ return (() => {
48
+ var r = q();
49
+ return P(r, "scroll", d.onScroll), E((e) => l = e, r), g(r, o(p, {
50
+ get when() {
51
+ return !t.loading;
52
+ },
53
+ get fallback() {
54
+ return (() => {
55
+ var e = b();
56
+ return g(e, o(v, {
57
+ get each() {
58
+ return Array.from({
59
+ length: t.loadingCount
60
+ });
61
+ },
62
+ children: () => (() => {
63
+ var n = B();
64
+ return m((i) => w(n, "height", `${t.rowHeight}px`)), n;
65
+ })()
66
+ })), m((n) => h(e, $(), n)), e;
67
+ })();
68
+ },
69
+ get children() {
70
+ return o(p, {
71
+ get when() {
72
+ return t.items.length > 0;
73
+ },
74
+ get fallback() {
75
+ return (() => {
76
+ var e = D();
77
+ return g(e, () => t.emptyLabel), e;
78
+ })();
79
+ },
80
+ get children() {
81
+ return o(p, {
82
+ get when() {
83
+ return M();
84
+ },
85
+ get fallback() {
86
+ return (() => {
87
+ var e = b();
88
+ return g(e, o(v, {
89
+ get each() {
90
+ return t.items;
91
+ },
92
+ children: (n, i) => t.renderItem(n, i())
93
+ })), m((n) => h(e, $(), n)), e;
94
+ })();
95
+ },
96
+ get children() {
97
+ var e = j(), n = e.firstChild;
98
+ return g(n, o(v, {
99
+ get each() {
100
+ return R();
101
+ },
102
+ children: (i) => (() => {
103
+ var a = J();
104
+ return g(a, o(v, {
105
+ get each() {
106
+ return Array.from({
107
+ length: u()
108
+ }, (s, A) => i * u() + A);
109
+ },
110
+ children: (s) => o(p, {
111
+ get when() {
112
+ return s < t.items.length;
113
+ },
114
+ get children() {
115
+ return t.renderItem(t.items[s], s);
116
+ }
117
+ })
118
+ })), m((s) => h(a, z(), s)), a;
119
+ })()
120
+ })), m((i) => {
121
+ var a = `${d.totalHeight()}px`, s = `translateY(${d.offsetY()}px)`;
122
+ return a !== i.e && w(e, "height", i.e = a), s !== i.t && w(n, "transform", i.t = s), i;
123
+ }, {
124
+ e: void 0,
125
+ t: void 0
126
+ }), e;
127
+ }
128
+ });
129
+ }
130
+ });
131
+ }
132
+ })), m((e) => {
133
+ var n = N("smwb-asset-grid", t.class), i = t.style;
134
+ return n !== e.e && O(r, e.e = n), e.t = h(r, i, e.t), e;
135
+ }, {
136
+ e: void 0,
137
+ t: void 0
138
+ }), r;
139
+ })();
140
+ }
141
+ export {
142
+ ee as AssetGrid
143
+ };
144
+ //# 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":";;;;;;AAiCO,SAASA,GAAaC,GAAuC;AAClE,QAAMC,IAASC,EAAW;AAAA,IAAEC,WAAW;AAAA,IAAKC,KAAK;AAAA,IAAGC,UAAU;AAAA,IAAGC,cAAc;AAAA,EAAA,GAAMN,CAAK,GACpF,CAACO,CAAK,IAAIC,EAAWP,GAAQ,CACjC,SACA,cACA,aACA,aACA,OACA,YACA,WACA,gBACA,cACA,SACA,OAAO,CACR;AAED,MAAIQ;AACJ,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAa,CAAC,GAClC,CAACC,GAAQC,CAAS,IAAIF,EAAa,CAAC,GACpC,CAACG,GAAOC,CAAQ,IAAIJ,EAAa,EAAK;AAE5CK,EAAAA,EAAQ,MAAM;AACZ,QAAI,CAACR,KAAc,OAAOS,iBAAmB,IAAa;AAC1D,UAAMC,IAAK,IAAID,eAAe,MAAM;AAClC,MAAKT,MACLE,EAASF,EAAWW,WAAW,GAC/BN,EAAUL,EAAWY,YAAY,GACjCL,EAAS,EAAI;AAAA,IACf,CAAC;AACDG,IAAAA,EAAGG,QAAQb,CAAU,GACrBc,EAAU,MAAMJ,EAAGK,YAAY;AAAA,EACjC,CAAC;AAED,QAAMC,IAAOC,EAAW,MAAM;AAC5B,UAAMC,IAAIjB,EAAAA;AACV,WAAIiB,KAAK,IAAU,IACZC,KAAKC,IAAI,GAAGD,KAAKE,OAAOH,IAAIpB,EAAMH,QAAQG,EAAMJ,YAAYI,EAAMH,IAAI,CAAC;AAAA,EAChF,CAAC,GACK2B,IAAWL,EAAW,MAAME,KAAKI,KAAKzB,EAAM0B,MAAMC,SAAST,EAAAA,CAAM,CAAC,GAGlEU,IAAKC,EAAkB;AAAA,IAC3BC,WAAWN;AAAAA,IACXO,YAJgBC,MAAchC,EAAMiC,YAAYjC,EAAMH;AAAAA,IAKtDqC,gBAAgBA,MAAM5B,EAAAA,KAAY;AAAA,IAClCR,UAAUE,EAAMF;AAAAA,EAAAA,CACjB,GAEKqC,IAAchB,EAAW,MAAM;AACnC,UAAMiB,IAAgB,CAAA;AACtB,aAASC,IAAMT,EAAGU,WAAAA,GAAcD,IAAMT,EAAGW,SAAAA,GAAYF,IAAOD,CAAAA,EAAII,KAAKH,CAAG;AACxE,WAAOD;AAAAA,EACT,CAAC,GAEKK,IAAWA,OAA0B;AAAA,IACzCC,SAAS;AAAA,IACT,yBAAyB,UAAUxB,EAAAA,CAAM;AAAA,IACzCrB,KAAK,GAAGG,EAAMH,GAAG;AAAA,IACjBS,QAAQ,GAAGN,EAAMiC,SAAS;AAAA,IAC1B,iBAAiB,GAAGjC,EAAMH,GAAG;AAAA,EAAA,IAGzB8C,IAAaA,OAA0B;AAAA,IAC3CD,SAAS;AAAA,IACT,yBAAyB,4BAA4B1C,EAAMJ,SAAS;AAAA,IACpEC,KAAK,GAAGG,EAAMH,GAAG;AAAA,IACjB,kBAAkB,GAAGG,EAAMiC,SAAS;AAAA,EAAA;AAGtC,UAAA,MAAA;AAAA,QAAAW,IAAAC,EAAAA;AAAAC,WAAAA,EAAAF,GAAA,UAKchB,EAAGmB,QAAQ,GAAAC,EAHfC,CAAAA,MAAQ/C,IAAa+C,GAAGL,CAAA,GAAAM,EAAAN,GAAAO,EAK7BC,GAAI;AAAA,MAAA,IACHC,OAAI;AAAA,eAAE,CAACrD,EAAMsD;AAAAA,MAAO;AAAA,MAAA,IACpBC,WAAQ;AAAA,gBAAA,MAAA;AAAA,cAAAC,IAAAC,EAAAA;AAAAP,iBAAAA,EAAAM,GAAAL,EAEHO,GAAG;AAAA,YAAA,IAACC,OAAI;AAAA,qBAAEC,MAAMC,KAAK;AAAA,gBAAElC,QAAQ3B,EAAMD;AAAAA,cAAAA,CAAc;AAAA,YAAC;AAAA,YAAA+D,UAClDA,OAAA,MAAA;AAAA,kBAAAC,IAAAC,EAAAA;AAAAC,qBAAAA,EAAAC,CAAAA,MAAAC,EAAAJ,GAAA,UAA8D,GAAG/D,EAAMiC,SAAS,IAAI,CAAA,GAAA8B;AAAAA,YAAA,GAAA;AAAA,UAAA,CAAM,CAAA,GAAAE,EAAAC,OAAAE,EAAAZ,GAFpDb,EAAAA,GAAYuB,CAAA,CAAA,GAAAV;AAAAA,QAAA,GAAA;AAAA,MAAA;AAAA,MAAA,IAAAM,WAAA;AAAA,eAAAX,EAOxDC,GAAI;AAAA,UAAA,IACHC,OAAI;AAAA,mBAAErD,EAAM0B,MAAMC,SAAS;AAAA,UAAC;AAAA,UAAA,IAC5B4B,WAAQ;AAAA,oBAAA,MAAA;AAAA,kBAAAc,IAAAC,EAAAA;AAAApB,qBAAAA,EAAAmB,GAAA,MAAuCrE,EAAMuE,UAAU,GAAAF;AAAAA,YAAA,GAAA;AAAA,UAAA;AAAA,UAAA,IAAAP,WAAA;AAAA,mBAAAX,EAE9DC,GAAI;AAAA,cAAA,IACHC,OAAI;AAAA,uBAAE7C,EAAAA;AAAAA,cAAO;AAAA,cAAA,IACb+C,WAAQ;AAAA,wBAAA,MAAA;AAAA,sBAAAiB,IAAAf,EAAAA;AAAAP,yBAAAA,EAAAsB,GAAArB,EAEHO,GAAG;AAAA,oBAAA,IAACC,OAAI;AAAA,6BAAE3D,EAAM0B;AAAAA,oBAAK;AAAA,oBAAAoC,UAAGA,CAACW,GAAMC,MAAU1E,EAAM2E,WAAWF,GAAMC,GAAO;AAAA,kBAAA,CAAC,CAAA,GAAAT,EAAAC,OAAAE,EAAAI,GADhC7B,EAAAA,GAAYuB,CAAA,CAAA,GAAAM;AAAAA,gBAAA,GAAA;AAAA,cAAA;AAAA,cAAA,IAAAV,WAAA;AAAA,oBAAAc,IAAAC,EAAAA,GAAAC,IAAAF,EAAAG;AAAA7B,uBAAAA,EAAA4B,GAAA3B,EAUpDO,GAAG;AAAA,kBAAA,IAACC,OAAI;AAAA,2BAAExB,EAAAA;AAAAA,kBAAa;AAAA,kBAAA2B,UACpBzB,QAAG,MAAA;AAAA,wBAAA2C,IAAAC,EAAAA;AAAA/B,2BAAAA,EAAA8B,GAAA7B,EAEAO,GAAG;AAAA,sBAAA,IAACC,OAAI;AAAA,+BAAEC,MAAMC,KAAK;AAAA,0BAAElC,QAAQT,EAAAA;AAAAA,wBAAK,GAAK,CAACgE,GAAGC,MAAM9C,IAAMnB,EAAAA,IAASiE,CAAC;AAAA,sBAAC;AAAA,sBAAArB,UACjEY,CAAAA,MAAKvB,EACJC,GAAI;AAAA,wBAAA,IAACC,OAAI;AAAA,iCAAEqB,IAAQ1E,EAAM0B,MAAMC;AAAAA,wBAAM;AAAA,wBAAA,IAAAmC,WAAA;AAAA,iCACnC9D,EAAM2E,WAAW3E,EAAM0B,MAAMgD,CAAK,GAAQA,CAAK;AAAA,wBAAC;AAAA,sBAAA,CAAA;AAAA,oBAAA,CAEpD,CAAA,GAAAT,EAAAC,OAAAE,EAAAY,GANoCvC,EAAAA,GAAUyB,CAAA,CAAA,GAAAc;AAAAA,kBAAA,GAAA;AAAA,gBAAA,CASpD,CAAA,GAAAf,EAAAmB,CAAAA,MAAA;AAAA,sBAAAC,IAhB8C,GAAGzD,EAAG0D,YAAAA,CAAa,MAAIC,IAGG,cAAc3D,EAAG4D,QAAAA,CAAS;AAAKH,yBAAAA,MAAAD,EAAAK,KAAAtB,EAAAS,GAAA,UAAAQ,EAAAK,IAAAJ,CAAA,GAAAE,MAAAH,EAAAM,KAAAvB,EAAAW,GAAA,aAAAM,EAAAM,IAAAH,CAAA,GAAAH;AAAAA,gBAAA,GAAA;AAAA,kBAAAK,GAAAE;AAAAA,kBAAAD,GAAAC;AAAAA,gBAAAA,CAAA,GAAAf;AAAAA,cAAA;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QAAA,CAAA;AAAA,MAAA;AAAA,IAAA,CAAA,CAAA,GAAAX,EAAAmB,CAAAA,MAAA;AAAA,UAAAQ,IA7B7GC,EAAG,mBAAmB7F,EAAM8F,KAAK,GAACC,IAClC/F,EAAMgG;AAAKJ,aAAAA,MAAAR,EAAAK,KAAAQ,EAAArD,GAAAwC,EAAAK,IAAAG,CAAA,GAAAR,EAAAM,IAAAtB,EAAAxB,GAAAmD,GAAAX,EAAAM,CAAA,GAAAN;AAAAA,IAAA,GAAA;AAAA,MAAAK,GAAAE;AAAAA,MAAAD,GAAAC;AAAAA,IAAAA,CAAA,GAAA/C;AAAAA,EAAA,GAAA;AAkDxB;"}
@@ -0,0 +1,2 @@
1
+ export { AssetGrid } from "./assetGrid";
2
+ export type { AssetGridProps } from "./assetGrid";
@@ -0,0 +1,27 @@
1
+ import { type JSX } from "solid-js";
2
+ import { type ChipColor } from "../chip";
3
+ export interface ChipGroupOption {
4
+ value: string;
5
+ label: string;
6
+ icon?: JSX.Element;
7
+ disabled?: boolean;
8
+ }
9
+ export interface ChipGroupProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onChange"> {
10
+ options: ChipGroupOption[];
11
+ /** Selected value (single) or values (when `multiple`). */
12
+ value?: string | string[];
13
+ /** Allow more than one selected chip (value becomes a string[]). */
14
+ multiple?: boolean;
15
+ onChange?: (value: string | string[]) => void;
16
+ size?: "small" | "medium";
17
+ color?: ChipColor;
18
+ disabled?: boolean;
19
+ }
20
+ /**
21
+ * A multi/single-select toggle group built on `Chip` — the "chip as a toggle"
22
+ * loop (selected → filled, else outlined; `role=group`) that apps re-hand-roll
23
+ * for filters / segmented controls. Pass an `options` array and a controlled
24
+ * `value`; `onChange` returns the next value (string, or string[] when multiple).
25
+ */
26
+ export declare function ChipGroup(props: ChipGroupProps): JSX.Element;
27
+ export default ChipGroup;
@@ -0,0 +1,58 @@
1
+ import { spread as p, mergeProps as n, insert as g, createComponent as o, template as f } from "solid-js/web";
2
+ import '../../../assets/styles/less/components/chipGroup/chipGroup.entry.css';/* empty css */
3
+ import { mergeProps as v, splitProps as h, For as b } from "solid-js";
4
+ import C from "clsx";
5
+ import { Chip as z } from "../chip/chip.js";
6
+ var P = /* @__PURE__ */ f("<div>");
7
+ function k(i) {
8
+ const a = v({
9
+ size: "medium",
10
+ color: "primary"
11
+ }, 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) => {
12
+ if (e.multiple) {
13
+ const r = l(), m = r.includes(t) ? r.filter((d) => d !== t) : [...r, t];
14
+ e.onChange?.(m);
15
+ } else
16
+ e.onChange?.(t);
17
+ };
18
+ return (() => {
19
+ var t = P();
20
+ return p(t, n(c, {
21
+ role: "group",
22
+ get class() {
23
+ return C("smwb-chip-group", e.class);
24
+ }
25
+ }), !1, !0), g(t, o(b, {
26
+ get each() {
27
+ return e.options;
28
+ },
29
+ children: (r) => o(z, n({
30
+ get label() {
31
+ return r.label;
32
+ },
33
+ get size() {
34
+ return e.size;
35
+ },
36
+ get color() {
37
+ return e.color;
38
+ },
39
+ get selected() {
40
+ return s(r.value);
41
+ },
42
+ get variant() {
43
+ return s(r.value) ? "filled" : "outlined";
44
+ },
45
+ get disabled() {
46
+ return !!(e.disabled || r.disabled);
47
+ },
48
+ onClick: () => u(r.value)
49
+ }, () => r.icon ? {
50
+ icon: r.icon
51
+ } : {}))
52
+ })), t;
53
+ })();
54
+ }
55
+ export {
56
+ k as ChipGroup
57
+ };
58
+ //# 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":";;;;;;AA8BO,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,2 @@
1
+ export { ChipGroup } from "./chipGroup";
2
+ export type { ChipGroupProps, ChipGroupOption } from "./chipGroup";
@@ -0,0 +1,2 @@
1
+ export { LazyImage } from "./lazyImage";
2
+ export type { LazyImageProps } from "./lazyImage";
@@ -0,0 +1,24 @@
1
+ import { type JSX } from "solid-js";
2
+ import { type Ref } from "../../../primitives/mergeRefs";
3
+ export interface LazyImageProps extends Omit<JSX.ImgHTMLAttributes<HTMLImageElement>, "onError"> {
4
+ /** Image URL. When absent (or after a load error) the `fallback` is shown. */
5
+ src?: string | undefined;
6
+ alt?: string | undefined;
7
+ /** Rendered in place of the image when it is missing or fails to load. */
8
+ fallback?: JSX.Element | undefined;
9
+ /** Defer loading until the image scrolls into view (IntersectionObserver). Default true. */
10
+ lazy?: boolean;
11
+ /** CSS `aspect-ratio` for the wrapper (e.g. `1`, `"4 / 3"`) to reserve space before load. */
12
+ aspectRatio?: string | number;
13
+ /** Fires on a load error (after the fallback is swapped in). */
14
+ onError?: (event: Event) => void;
15
+ ref?: Ref<HTMLImageElement>;
16
+ }
17
+ /**
18
+ * An `<img>` with a built-in `onError` fallback and optional in-viewport lazy
19
+ * loading — the `<img decoding=async onError=…>` + `<Show>` dance hand-rolled in
20
+ * every gallery, in one primitive. SSR-safe: renders the image markup on the
21
+ * server; the IntersectionObserver only runs after mount on the client.
22
+ */
23
+ export declare function LazyImage(props: LazyImageProps): JSX.Element;
24
+ export default LazyImage;
@@ -0,0 +1,73 @@
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 '../../../assets/styles/less/components/lazyImage/lazyImage.entry.css';/* empty css */
3
+ import { mergeProps as S, splitProps as C, createSignal as g, onMount as F, Show as p, onCleanup as O } from "solid-js";
4
+ import x from "clsx";
5
+ import { mergeRefs as L } from "../../../primitives/mergeRefs.js";
6
+ var M = /* @__PURE__ */ i("<span class=smwb-lazy-image__fallback>"), N = /* @__PURE__ */ i("<img>", !0, !1, !1), V = /* @__PURE__ */ i("<span>");
7
+ function G(d) {
8
+ const c = S({
9
+ lazy: !0
10
+ }, d), [r, v] = C(c, ["src", "alt", "fallback", "lazy", "aspectRatio", "class", "onError", "ref"]), [y, b] = g(!1), [m, f] = g(!c.lazy);
11
+ let s;
12
+ F(() => {
13
+ if (!r.lazy || m() || !s) return;
14
+ if (typeof IntersectionObserver > "u") {
15
+ f(!0);
16
+ return;
17
+ }
18
+ const t = new IntersectionObserver((e) => {
19
+ e.some((a) => a.isIntersecting) && (f(!0), t.disconnect());
20
+ });
21
+ t.observe(s), O(() => t.disconnect());
22
+ });
23
+ const z = (t) => {
24
+ b(!0), r.onError?.(t);
25
+ }, n = () => y() || !r.src, w = () => m() ? r.src : void 0, _ = () => r.aspectRatio != null ? {
26
+ "aspect-ratio": String(r.aspectRatio)
27
+ } : void 0;
28
+ return (() => {
29
+ var t = V();
30
+ return o(t, u(p, {
31
+ get when() {
32
+ return $(() => !!n())() && r.fallback;
33
+ },
34
+ get children() {
35
+ var e = M();
36
+ return o(e, () => r.fallback), e;
37
+ }
38
+ }), null), o(t, u(p, {
39
+ get when() {
40
+ return !n();
41
+ },
42
+ get children() {
43
+ var e = N(), a = L(r.ref, (l) => s = l);
44
+ return typeof a == "function" && h(a, e), k(e, E(v, {
45
+ class: "smwb-lazy-image__img",
46
+ get src() {
47
+ return w();
48
+ },
49
+ get alt() {
50
+ return r.alt ?? "";
51
+ },
52
+ get loading() {
53
+ return r.lazy ? "lazy" : void 0;
54
+ },
55
+ decoding: "async",
56
+ onError: z
57
+ }), !1, !1), e;
58
+ }
59
+ }), null), I((e) => {
60
+ var a = x("smwb-lazy-image", r.class, {
61
+ "smwb-lazy-image--empty": n()
62
+ }), l = _();
63
+ return a !== e.e && P(t, e.e = a), e.t = R(t, l, e.t), e;
64
+ }, {
65
+ e: void 0,
66
+ t: void 0
67
+ }), t;
68
+ })();
69
+ }
70
+ export {
71
+ G as LazyImage
72
+ };
73
+ //# 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,2 @@
1
+ export { ThumbCard } from "./thumbCard";
2
+ export type { ThumbCardProps } from "./thumbCard";
@@ -0,0 +1,31 @@
1
+ import { type JSX } from "solid-js";
2
+ import { type Ref } from "../../../primitives/mergeRefs";
3
+ export interface ThumbCardProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onSelect"> {
4
+ /** Thumbnail URL; falls back to `fallback` when missing / failed. */
5
+ src?: string;
6
+ caption?: JSX.Element;
7
+ selected?: boolean;
8
+ /** Makes the card a selectable button (keyboard + `aria-pressed`). */
9
+ onSelect?: () => void;
10
+ /** Shown in place of the image when `src` is missing / fails. */
11
+ fallback?: JSX.Element;
12
+ /** A larger preview shown in a floating popup after a hover delay. */
13
+ hoverPreview?: JSX.Element | string;
14
+ /** Top-left overlay slot (e.g. a favourite star). */
15
+ topStart?: JSX.Element;
16
+ /** Top-right overlay slot (e.g. a kebab menu). */
17
+ topEnd?: JSX.Element;
18
+ lazy?: boolean;
19
+ disabled?: boolean;
20
+ /** Delay (ms) before the hover preview appears. Default 350. */
21
+ hoverDelay?: number;
22
+ ref?: Ref<HTMLDivElement>;
23
+ }
24
+ /**
25
+ * A selectable gallery card: image with an `onError` fallback + optional lazy
26
+ * load, keyboard/`aria-pressed` selection, corner action slots, and a delayed
27
+ * floating hover-preview. The generic gallery-card behaviour every app rebuilds
28
+ * on top of the primitives. SSR-safe — the hover preview is client-only.
29
+ */
30
+ export declare function ThumbCard(props: ThumbCardProps): JSX.Element;
31
+ export default ThumbCard;