@solostylist/ui-kit 2.0.1 → 2.0.2

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 (379) hide show
  1. package/dist/Add-CEnTWsXs.js +6 -0
  2. package/dist/ArrowUpward-udL1ltj2.js +6 -0
  3. package/dist/Box-9oeZgA1U.js +46 -0
  4. package/dist/Button-DaLr1m20.js +534 -0
  5. package/dist/ButtonBase-DovDC6-1.js +700 -0
  6. package/dist/Checkbox-C-Xjbzzh.js +152 -0
  7. package/dist/ChevronRight-DsPfsFKB.js +6 -0
  8. package/dist/Close-CIYOM-Sc.js +6 -0
  9. package/dist/Collapse-DPUr1cbP.js +266 -0
  10. package/dist/ContentCopy-Hlh3azVb.js +6 -0
  11. package/dist/DefaultPropsProvider-ebWx4_5E.js +128 -0
  12. package/dist/DialogContent-b3xbJVC6.js +450 -0
  13. package/dist/Download-D9PkFi7a.js +6 -0
  14. package/dist/ExpandMore-sOgvEha9.js +6 -0
  15. package/dist/Favorite-BP343hjM.js +6 -0
  16. package/dist/FavoriteBorder-D15j9xEL.js +6 -0
  17. package/dist/FormControl-DwMfZCiz.js +215 -0
  18. package/dist/FormControlLabel-Ihga1FTB.js +173 -0
  19. package/dist/Grow-BQR7x52V.js +121 -0
  20. package/dist/IconButton-CE-4GamO.js +448 -0
  21. package/dist/InfoOutlined-lpvhO6P8.js +6 -0
  22. package/dist/List-RNcZhRdr.js +105 -0
  23. package/dist/Menu-CnyB4SDS.js +180 -0
  24. package/dist/MenuItem-Ck30dBOR.js +224 -0
  25. package/dist/MenuList-Cc98uWXq.js +160 -0
  26. package/dist/Modal-CD2EBfU8.js +702 -0
  27. package/dist/Paper-_3qggtBp.js +115 -0
  28. package/dist/Popover-BFdKSYI5.js +340 -0
  29. package/dist/Popper-DYNAMSDd.js +1351 -0
  30. package/dist/Portal-i_wgIe9-.js +49 -0
  31. package/dist/Remove-DDEn8ek8.js +6 -0
  32. package/dist/RtlProvider-B7uVJXUY.js +19 -0
  33. package/dist/Skeleton-iZFynl7z.js +220 -0
  34. package/dist/Stack-C0LGzM4c.js +158 -0
  35. package/dist/SwitchBase-CjWtDdmE.js +198 -0
  36. package/dist/Tooltip-B1sn94L0.js +448 -0
  37. package/dist/Typography-_P0svrkO.js +168 -0
  38. package/dist/UnfoldMoreRounded-CuCrdxoy.js +6 -0
  39. package/dist/appendOwnerState-CFQTq3pb.js +17 -0
  40. package/dist/assets/stripe-input.css +1 -0
  41. package/dist/autocomplete-BgARERpp.js +43 -0
  42. package/dist/avatar-XNOdbbRz.js +10 -0
  43. package/dist/buttonBaseClasses-B90LjsNK.js +13 -0
  44. package/dist/capitalize-C0baBJCm.js +5 -0
  45. package/dist/chainPropTypes-CkMRtDjQ.js +8 -0
  46. package/dist/checkbox-D1U_JKqs.js +88 -0
  47. package/dist/checkboxClasses-B1up2lUn.js +18 -0
  48. package/dist/chunk-C_CI6nMA.js +13 -0
  49. package/dist/clsx-DGZSe4Nt.js +16 -0
  50. package/dist/colorManipulator-DmUjcif3.js +129 -0
  51. package/dist/contains-DnqPQsQU.js +16 -0
  52. package/dist/createSimplePaletteValueFilter-DFvyXHoZ.js +14 -0
  53. package/dist/createSvgIcon-3y-gS0r1.js +155 -0
  54. package/dist/createTheme-xB2Em0Na.js +1869 -0
  55. package/dist/defaultTheme-BaGcIzCh.js +210 -0
  56. package/dist/elementAcceptingRef-pKEY6jPR.js +25 -0
  57. package/dist/elementTypeAcceptingRef-xl_04Y5-.js +19 -0
  58. package/dist/exactProp-C_IsucXf.js +13 -0
  59. package/dist/extends-DXMyyJCW.js +12 -0
  60. package/dist/field-label-styles-4praXMaE.js +50 -0
  61. package/dist/formLabelClasses-AuZHWfTs.js +18 -0
  62. package/dist/generateUtilityClass-PAIOm1jC.js +34 -0
  63. package/dist/generateUtilityClasses-DvX505Gy.js +10 -0
  64. package/dist/getActiveElement-BfBkhgy6.js +8 -0
  65. package/dist/{gradients-DSnBONEQ.js → gradients-mQAYCK0_.js} +1 -1
  66. package/dist/iconButtonClasses-CVVRFXRo.js +27 -0
  67. package/dist/inputAdornmentClasses-BbB8s-Z4.js +19 -0
  68. package/dist/inputBaseClasses-Ce_jjdp9.js +25 -0
  69. package/dist/integerPropType-CCkQD1JY.js +27 -0
  70. package/dist/isEventHandler-QShLXBxE.js +7 -0
  71. package/dist/isFocusVisible-4OIE8TST.js +11 -0
  72. package/dist/isLayoutSupported-Btg2X3QE.js +6 -0
  73. package/dist/isMuiElement-CPjhi284.js +10 -0
  74. package/dist/main.js +1 -1
  75. package/dist/mega-menu-trigger-BcOo8I5_.js +53 -0
  76. package/dist/memoTheme-qFyKAk7y.js +15 -0
  77. package/dist/mergeSlotProps-DC8r4QzS.js +45 -0
  78. package/dist/monthCalendarClasses-b964KRbc.js +14 -0
  79. package/dist/objectWithoutPropertiesLoose-q4Zwd1RV.js +12 -0
  80. package/dist/outlinedInputClasses-ci1zDasn.js +17 -0
  81. package/dist/ownerDocument-CJjQZweZ.js +6 -0
  82. package/dist/ownerDocument-pYjJiXem.js +5 -0
  83. package/dist/ownerWindow-SSeeoqPT.js +18 -0
  84. package/dist/palettes/index.js +1 -1
  85. package/dist/{palettes-CJLuEy1m.js → palettes-B1FcGUYs.js} +163 -163
  86. package/dist/pickersCalendarHeaderClasses-BAiPN_oY.js +12 -0
  87. package/dist/prop-types-BzYPyWN7.js +516 -0
  88. package/dist/refType-j5S9pc_e.js +6 -0
  89. package/dist/resolveProps-7jIA45vn.js +30 -0
  90. package/dist/s-accordion/index.js +1 -1
  91. package/dist/s-accordion/s-accordion.js +2 -70
  92. package/dist/s-accordion-1oLxQhod.js +487 -0
  93. package/dist/s-action-overlay/s-action-overlay.js +21 -21
  94. package/dist/s-animated-gradient-text/index.d.ts +2 -0
  95. package/dist/s-animated-gradient-text/index.js +2 -0
  96. package/dist/s-animated-gradient-text/s-animated-gradient-text.d.ts +64 -0
  97. package/dist/s-animated-gradient-text/s-animated-gradient-text.js +93 -0
  98. package/dist/s-announcement-bar/index.d.ts +2 -0
  99. package/dist/s-announcement-bar/index.js +2 -0
  100. package/dist/s-announcement-bar/s-announcement-bar.d.ts +113 -0
  101. package/dist/s-announcement-bar/s-announcement-bar.js +275 -0
  102. package/dist/s-autocomplete/s-autocomplete.js +1 -1
  103. package/dist/s-avatar/s-avatar.js +17 -17
  104. package/dist/s-blur-text/s-blur-text.js +16 -16
  105. package/dist/s-brand-logo/index.js +1 -1
  106. package/dist/s-brand-logo/s-brand-logo.js +1 -1
  107. package/dist/s-breadcrumbs/s-breadcrumbs.js +19 -19
  108. package/dist/s-carousel/index.js +1 -1
  109. package/dist/s-carousel/s-carousel.d.ts +2 -0
  110. package/dist/s-carousel/s-carousel.js +2 -184
  111. package/dist/s-carousel-CAyAl3ka.js +1355 -0
  112. package/dist/s-category-card/s-category-card.js +22 -22
  113. package/dist/s-chat-input/index.js +1 -1
  114. package/dist/s-chat-input/s-chat-input.js +2 -398
  115. package/dist/s-chat-input-T3gyan60.js +419 -0
  116. package/dist/s-chat-message/index.js +1 -1
  117. package/dist/s-chat-message/s-chat-message.js +2 -314
  118. package/dist/s-chat-message-NFTpNgt5.js +315 -0
  119. package/dist/s-checkbox/s-checkbox.js +19 -18
  120. package/dist/s-chips/index.js +1 -1
  121. package/dist/s-chips/s-chips.js +2 -174
  122. package/dist/s-chips-Dqq1fgz-.js +176 -0
  123. package/dist/s-code-block/index.js +1 -1
  124. package/dist/s-code-block/s-code-block.js +2 -103
  125. package/dist/s-code-block-DyDtctGG.js +658 -0
  126. package/dist/s-comment-message/index.js +1 -1
  127. package/dist/s-comment-message/s-comment-message.js +2 -189
  128. package/dist/s-comment-message-DpCVBKiE.js +192 -0
  129. package/dist/s-copyable-text/s-copyable-text.js +18 -18
  130. package/dist/s-countdown/s-count-box.js +18 -18
  131. package/dist/s-data-table/index.js +1 -1
  132. package/dist/s-data-table/s-data-table.js +2 -213
  133. package/dist/s-data-table-D4V58HFR.js +805 -0
  134. package/dist/s-date-picker/index.js +1 -1
  135. package/dist/s-date-picker/s-date-picker.js +2 -106
  136. package/dist/s-date-picker-BFIQOA8C.js +657 -0
  137. package/dist/s-datetime-picker/index.js +1 -1
  138. package/dist/s-datetime-picker/s-datetime-picker.js +2 -108
  139. package/dist/s-datetime-picker-zfg7BEOW.js +3886 -0
  140. package/dist/s-dialog/index.js +1 -1
  141. package/dist/s-dialog/s-dialog.js +2 -80
  142. package/dist/s-dialog-BNlXsVVP.js +123 -0
  143. package/dist/s-dialog-confirm/s-dialog-confirm.js +33 -32
  144. package/dist/s-dialog-message/s-dialog-message.js +32 -31
  145. package/dist/s-drawer/index.d.ts +3 -0
  146. package/dist/s-drawer/index.js +2 -0
  147. package/dist/s-drawer/s-drawer.d.ts +70 -0
  148. package/dist/s-drawer/s-drawer.js +2 -0
  149. package/dist/s-drawer-4h5ZyoM8.js +562 -0
  150. package/dist/s-empty/s-empty.js +14 -13
  151. package/dist/s-file-dropzone/index.js +1 -1
  152. package/dist/s-file-dropzone/s-file-dropzone.js +2 -219
  153. package/dist/s-file-dropzone-Cfzv1Cm8.js +422 -0
  154. package/dist/s-file-icon/s-file-icon.js +88 -87
  155. package/dist/s-flex-box/s-flex-box.js +12 -11
  156. package/dist/s-form/s-form.js +15 -15
  157. package/dist/s-gallery/s-gallery.js +1 -1
  158. package/dist/s-glow-button/s-glow-button.js +10 -9
  159. package/dist/s-gradient-blob-pulse/index.d.ts +2 -0
  160. package/dist/s-gradient-blob-pulse/index.js +2 -0
  161. package/dist/s-gradient-blob-pulse/s-gradient-blob-pulse.d.ts +62 -0
  162. package/dist/s-gradient-blob-pulse/s-gradient-blob-pulse.js +237 -0
  163. package/dist/s-gradient-icon/index.d.ts +1 -1
  164. package/dist/s-gradient-icon/s-gradient-icon.d.ts +4 -4
  165. package/dist/s-gradient-icon/s-gradient-icon.js +2 -2
  166. package/dist/s-icon-button/s-icon-button.d.ts +6 -2
  167. package/dist/s-icon-button/s-icon-button.js +14 -13
  168. package/dist/s-image-comparison/s-image-comparison.js +31 -29
  169. package/dist/s-image-viewer/image-viewer-thumbnail-dock.js +1 -1
  170. package/dist/s-image-viewer/index.js +3 -3
  171. package/dist/s-image-viewer/s-image-viewer.js +2 -266
  172. package/dist/s-image-viewer/use-image-viewer-navigation.js +7 -7
  173. package/dist/s-image-viewer-CjK67-rs.js +269 -0
  174. package/dist/s-interactive-card/index.d.ts +3 -0
  175. package/dist/s-interactive-card/index.js +2 -0
  176. package/dist/s-interactive-card/s-interactive-card.d.ts +57 -0
  177. package/dist/s-interactive-card/s-interactive-card.js +152 -0
  178. package/dist/s-label/s-label.js +26 -25
  179. package/dist/s-language-switcher/index.js +2 -2
  180. package/dist/s-language-switcher/s-language-switcher.js +2 -150
  181. package/dist/s-language-switcher-PaMgHWc2.js +246 -0
  182. package/dist/s-lazy-image/s-lazy-image.js +18 -17
  183. package/dist/s-link/index.js +1 -1
  184. package/dist/s-link/s-link.js +2 -5
  185. package/dist/s-link-Db1aabHh.js +235 -0
  186. package/dist/s-list-action-item/index.d.ts +2 -0
  187. package/dist/s-list-action-item/index.js +2 -0
  188. package/dist/s-list-action-item/s-list-action-item.d.ts +89 -0
  189. package/dist/s-list-action-item/s-list-action-item.js +150 -0
  190. package/dist/s-localization-provider/index.js +1 -1
  191. package/dist/s-localization-provider/s-localization-provider.js +2 -12
  192. package/dist/s-localization-provider-CeyB_SGz.js +519 -0
  193. package/dist/s-mega-menu/index.d.ts +3 -0
  194. package/dist/s-mega-menu/index.js +2 -0
  195. package/dist/s-mega-menu/mega-menu-panel.d.ts +38 -0
  196. package/dist/s-mega-menu/mega-menu-panel.js +253 -0
  197. package/dist/s-mega-menu/mega-menu-slots.d.ts +65 -0
  198. package/dist/s-mega-menu/mega-menu-slots.js +232 -0
  199. package/dist/s-mega-menu/mega-menu-trigger.d.ts +35 -0
  200. package/dist/s-mega-menu/mega-menu-trigger.js +2 -0
  201. package/dist/s-mega-menu/s-mega-menu.d.ts +23 -0
  202. package/dist/s-mega-menu/s-mega-menu.js +228 -0
  203. package/dist/s-mega-menu/types.d.ts +188 -0
  204. package/dist/s-mega-menu/types.js +0 -0
  205. package/dist/s-mega-menu/utils.d.ts +51 -0
  206. package/dist/s-mega-menu/utils.js +51 -0
  207. package/dist/s-mobile-dock/index.d.ts +3 -0
  208. package/dist/s-mobile-dock/index.js +2 -0
  209. package/dist/s-mobile-dock/s-mobile-dock.d.ts +96 -0
  210. package/dist/s-mobile-dock/s-mobile-dock.js +2 -0
  211. package/dist/s-mobile-dock-8F3UWAb8.js +615 -0
  212. package/dist/s-nav-item/index.d.ts +1 -1
  213. package/dist/s-nav-item/s-nav-item.d.ts +35 -16
  214. package/dist/s-nav-item/s-nav-item.js +56 -77
  215. package/dist/s-nav-items/s-nav-items.js +78 -121
  216. package/dist/s-no-ssr/index.js +1 -1
  217. package/dist/s-no-ssr/s-no-ssr.js +2 -5
  218. package/dist/s-no-ssr-DH57_uP_.js +25 -0
  219. package/dist/s-number-range/index.d.ts +3 -0
  220. package/dist/s-number-range/index.js +2 -0
  221. package/dist/s-number-range/s-number-range.d.ts +109 -0
  222. package/dist/s-number-range/s-number-range.js +2 -0
  223. package/dist/s-number-range-Low5QjuD.js +253 -0
  224. package/dist/s-pagination/index.js +1 -1
  225. package/dist/s-pagination/s-pagination.js +2 -85
  226. package/dist/s-pagination-s46hBifh.js +606 -0
  227. package/dist/s-pixel-reveal/s-pixel-reveal.js +20 -20
  228. package/dist/s-popover/index.d.ts +5 -0
  229. package/dist/s-popover/index.js +3 -0
  230. package/dist/s-popover/placement.d.ts +14 -0
  231. package/dist/s-popover/placement.js +65 -0
  232. package/dist/s-popover/s-popover-content.d.ts +22 -0
  233. package/dist/s-popover/s-popover-content.js +22 -0
  234. package/dist/s-popover/s-popover.d.ts +59 -0
  235. package/dist/s-popover/s-popover.js +68 -0
  236. package/dist/s-product-card/index.d.ts +3 -0
  237. package/dist/s-product-card/index.js +2 -0
  238. package/dist/s-product-card/s-product-card.d.ts +216 -0
  239. package/dist/s-product-card/s-product-card.js +502 -0
  240. package/dist/s-product-gallery/index.d.ts +3 -0
  241. package/dist/s-product-gallery/index.js +2 -0
  242. package/dist/s-product-gallery/s-product-gallery.d.ts +116 -0
  243. package/dist/s-product-gallery/s-product-gallery.js +2 -0
  244. package/dist/s-product-gallery-Dj9eGg5i.js +430 -0
  245. package/dist/s-quantity-input/s-quantity-input.js +24 -24
  246. package/dist/s-review/index.js +1 -1
  247. package/dist/s-review/s-review.js +2 -272
  248. package/dist/s-review--Q2C0ngO.js +272 -0
  249. package/dist/s-scroll-reveal/s-scroll-reveal.js +8 -7
  250. package/dist/s-scroll-to-top/s-scroll-to-top.d.ts +1 -1
  251. package/dist/s-scroll-to-top/s-scroll-to-top.js +28 -27
  252. package/dist/s-scroll-velocity/scroll-velocity-row.js +29 -29
  253. package/dist/s-segmented-control/index.d.ts +3 -0
  254. package/dist/s-segmented-control/index.js +2 -0
  255. package/dist/s-segmented-control/s-segmented-control.d.ts +94 -0
  256. package/dist/s-segmented-control/s-segmented-control.js +302 -0
  257. package/dist/s-select/index.js +1 -1
  258. package/dist/s-select/s-select.js +2 -201
  259. package/dist/s-select-CtVKEOZ5.js +204 -0
  260. package/dist/s-select-list/s-select-list.js +50 -47
  261. package/dist/s-skeleton/s-skeleton.js +13 -12
  262. package/dist/s-snackbar-message/index.js +2 -2
  263. package/dist/s-snackbar-message/s-snackbar-message.js +2 -89
  264. package/dist/s-snackbar-message-DsfJlDYd.js +810 -0
  265. package/dist/s-spotlight-cursor/s-spotlight-cursor.js +27 -27
  266. package/dist/s-status-illustration/s-status-illustration.js +74 -74
  267. package/dist/s-stepper/index.d.ts +3 -0
  268. package/dist/s-stepper/index.js +2 -0
  269. package/dist/s-stepper/s-stepper.d.ts +90 -0
  270. package/dist/s-stepper/s-stepper.js +2 -0
  271. package/dist/s-stepper-BtODHVro.js +892 -0
  272. package/dist/s-stripe/s-stripe.js +12 -11
  273. package/dist/s-stripe/stripe-input.js +2 -3
  274. package/dist/s-swatch/index.d.ts +3 -0
  275. package/dist/s-swatch/index.js +2 -0
  276. package/dist/s-swatch/s-swatch.d.ts +235 -0
  277. package/dist/s-swatch/s-swatch.js +219 -0
  278. package/dist/s-switch/index.js +1 -1
  279. package/dist/s-switch/s-switch.js +2 -48
  280. package/dist/s-switch-BCeBoxWf.js +307 -0
  281. package/dist/s-tabs/s-tabs.js +50 -48
  282. package/dist/s-text-editor/index.js +1 -1
  283. package/dist/s-text-editor/s-text-editor-toolbar.js +2 -216
  284. package/dist/s-text-editor/s-text-editor.js +26 -25
  285. package/dist/s-text-editor-toolbar-D5eQ-jCs.js +2124 -0
  286. package/dist/s-text-field/index.js +1 -1
  287. package/dist/s-text-field/s-text-field.js +2 -52
  288. package/dist/s-text-field-HYyDf1Jo.js +51 -0
  289. package/dist/s-text-shimmer/s-text-shimmer.js +3 -1
  290. package/dist/s-text-truncation/s-text-truncation.js +20 -20
  291. package/dist/s-theme-demo/s-theme-demo.js +8 -8
  292. package/dist/s-theme-demo/theme-demo-color-palette-section.js +1 -1
  293. package/dist/s-theme-demo/theme-demo-color-ramps-section.js +1 -1
  294. package/dist/s-theme-demo/theme-demo-components-section.js +2 -265
  295. package/dist/s-theme-demo/theme-demo-typography-section.js +10 -10
  296. package/dist/s-theme-provider/s-theme-provider.js +1 -1
  297. package/dist/s-theme-switch/index.js +1 -1
  298. package/dist/s-theme-switch/s-theme-switch.js +2 -60
  299. package/dist/s-theme-switch-BFWpADh3.js +60 -0
  300. package/dist/s-tip/index.js +1 -1
  301. package/dist/s-tip/s-tip.js +2 -61
  302. package/dist/s-tip-jbL7vtoU.js +62 -0
  303. package/dist/s-tool-bar/s-tool-bar.js +28 -28
  304. package/dist/s-tool-bar/tool-bar-action-buttons.js +2 -55
  305. package/dist/s-tool-bar/tool-bar-image-input.js +2 -148
  306. package/dist/s-tool-bar/tool-bar-inputs.js +55 -55
  307. package/dist/s-tool-item/s-tool-item.d.ts +10 -6
  308. package/dist/s-tool-item/s-tool-item.js +29 -29
  309. package/dist/s-two-pane-layout/s-two-pane-layout.js +32 -32
  310. package/dist/s-zoom-image/s-zoom-image.js +19 -18
  311. package/dist/selectClasses-CPxME5jE.js +22 -0
  312. package/dist/setRef-BWPyWnrr.js +6 -0
  313. package/dist/styled-Bog8QCl3.js +163 -0
  314. package/dist/svgIconClasses-1kWGzgux.js +20 -0
  315. package/dist/switchClasses-BtweO7PC.js +23 -0
  316. package/dist/theme/component-augmentation.d.ts +65 -1
  317. package/dist/theme/components/autocomplete.js +2 -43
  318. package/dist/theme/components/avatar.js +2 -9
  319. package/dist/theme/components/card.js +3 -3
  320. package/dist/theme/components/checkbox.js +2 -90
  321. package/dist/theme/components/chip.js +3 -3
  322. package/dist/theme/components/components.js +20 -20
  323. package/dist/theme/components/date-calendar.js +0 -1
  324. package/dist/theme/components/day-calendar.js +0 -1
  325. package/dist/theme/components/drawer.d.ts +1 -0
  326. package/dist/theme/components/drawer.js +4 -1
  327. package/dist/theme/components/field-label-styles.js +2 -19
  328. package/dist/theme/components/form-label.js +1 -1
  329. package/dist/theme/components/list-item-button.js +1 -1
  330. package/dist/theme/components/list-item.js +7 -7
  331. package/dist/theme/components/month-calendar.js +13 -14
  332. package/dist/theme/components/multi-section-digital-clock-section.js +0 -1
  333. package/dist/theme/components/outlined-input.js +6 -6
  334. package/dist/theme/components/picker-day.js +0 -1
  335. package/dist/theme/components/pickers-arrow-switcher.js +0 -1
  336. package/dist/theme/components/pickers-calendar-header.js +2 -3
  337. package/dist/theme/components/select.js +6 -6
  338. package/dist/theme/components/slider.js +18 -1
  339. package/dist/theme/components/step-connector.d.ts +0 -3
  340. package/dist/theme/components/step-connector.js +1 -6
  341. package/dist/theme/components/step-icon.d.ts +3 -12
  342. package/dist/theme/components/step-icon.js +3 -14
  343. package/dist/theme/components/switch.js +1 -1
  344. package/dist/theme/components/table-pagination.js +1 -1
  345. package/dist/theme/components/toggle-button.js +2 -93
  346. package/dist/theme/components/year-calendar.js +13 -14
  347. package/dist/theme/theme-primitives.js +2 -2
  348. package/dist/theme-demo-components-section-C7l_2KAo.js +267 -0
  349. package/dist/{theme-primitives-CRfnMsNy.js → theme-primitives-CXtaMdVj.js} +109 -108
  350. package/dist/toggle-button-BsGb-tOr.js +104 -0
  351. package/dist/tool-bar-action-buttons-v1koaasr.js +54 -0
  352. package/dist/tool-bar-image-input-DtXTyEe1.js +148 -0
  353. package/dist/typographyClasses-BH_-zLwg.js +31 -0
  354. package/dist/unsupportedProp-whMV_uOi.js +11 -0
  355. package/dist/useControlled-DqNPBJNp.js +5 -0
  356. package/dist/useControlled-uxVKygk1.js +29 -0
  357. package/dist/useEnhancedEffect-DFq_FMGX.js +5 -0
  358. package/dist/useEnhancedEffect-dBFfkm1e.js +5 -0
  359. package/dist/useEventCallback-DGCsaRIu.js +5 -0
  360. package/dist/useEventCallback-DhCPBxRG.js +11 -0
  361. package/dist/useForkRef-BuNFTXxE.js +29 -0
  362. package/dist/useFormControl-gXwNeUM1.js +18 -0
  363. package/dist/useMobilePicker-CdrT935R.js +7584 -0
  364. package/dist/useRovingTabIndex-DPlW997R.js +242 -0
  365. package/dist/useSlot-BG8ReOxN.js +83 -0
  366. package/dist/useSlotProps-BOO3qaI9.js +16 -0
  367. package/dist/useTheme-BIWMbX3i.js +9 -0
  368. package/dist/useThemeProps-Dw9dmKyT.js +29 -0
  369. package/dist/useTimeout-CoK-Khfm.js +49 -0
  370. package/dist/utils/dayjs.js +146 -9
  371. package/dist/utils-Bfqbev5I.js +248 -0
  372. package/dist/warning-D5YhCbje.js +99 -0
  373. package/dist/yearCalendarClasses-D9k_KT38.js +14 -0
  374. package/package.json +1 -1
  375. package/dist/theme/components/components.d.ts +0 -2
  376. package/dist/theme/components/slider.d.ts +0 -34
  377. /package/dist/{colors-CNjL5fhq.js → colors-Bik9qOU9.js} +0 -0
  378. /package/dist/{s-brand-logo-CErW9Slg.js → s-brand-logo-D7Jovf5K.js} +0 -0
  379. /package/dist/{utils-CMeAWSRO.js → utils-DOY6v6ln.js} +0 -0
@@ -1,9 +1,9 @@
1
1
  import { toSxArray as e } from "../utils/sx.js";
2
2
  import { resolveCanvasColor as t } from "../utils/canvas-color.js";
3
- import { forwardRef as n, useCallback as r, useEffect as i, useRef as a } from "react";
4
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
- import { Box as c, styled as l, useMediaQuery as u, useTheme as d, useThemeProps as f } from "@mui/material";
6
- import { useForkRef as p } from "@mui/material/utils";
3
+ import { t as n } from "../useForkRef-BuNFTXxE.js";
4
+ import { forwardRef as r, useCallback as i, useEffect as a, useRef as o } from "react";
5
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
6
+ import { Box as l, styled as u, useMediaQuery as d, useTheme as f, useThemeProps as p } from "@mui/material";
7
7
  //#region lib/s-pixel-reveal/s-pixel-reveal.tsx
8
8
  var m = class {
9
9
  x;
@@ -44,7 +44,7 @@ var m = class {
44
44
  let n = (t - this.size) * .5;
45
45
  e.fillRect(this.x + n, this.y + n, this.size, this.size);
46
46
  }
47
- }, h = l(c, {
47
+ }, h = u(l, {
48
48
  name: "SPixelReveal",
49
49
  slot: "Root"
50
50
  })({});
@@ -56,12 +56,12 @@ function g({ x: e, y: t, gap: n, logicalWidth: r, logicalHeight: i, instant: a,
56
56
  function _(e, t, n) {
57
57
  e.has(t) || e.set(t, []), e.get(t)?.push(n);
58
58
  }
59
- var v = n(function(n, c) {
60
- let l = f({
61
- props: n,
59
+ var v = r(function(r, l) {
60
+ let u = p({
61
+ props: r,
62
62
  name: "SPixelReveal"
63
- }), { alt: v = "", children: y, colors: b, gap: x = 5, instant: S = !0, loading: C = !0, speed: w = 100, src: T, style: E, sx: D, ...O } = l, k = Number.isFinite(x) && x > 0 ? x : 5, A = d(), j = a(null), M = a(null), N = a(null), P = a(/* @__PURE__ */ new Map()), F = a(null), I = a(null), L = a(1e3 / 60), R = a(0), z = a(C), B = u("(prefers-reduced-motion: reduce)", { noSsr: !0 }), V = p(M, c), H = {
64
- ...l,
63
+ }), { alt: v = "", children: y, colors: b, gap: x = 5, instant: S = !0, loading: C = !0, speed: w = 100, src: T, style: E, sx: D, ...O } = u, k = Number.isFinite(x) && x > 0 ? x : 5, A = f(), j = o(null), M = o(null), N = o(null), P = o(/* @__PURE__ */ new Map()), F = o(null), I = o(null), L = o(1e3 / 60), R = o(0), z = o(C), B = d("(prefers-reduced-motion: reduce)", { noSsr: !0 }), V = n(M, l), H = {
64
+ ...u,
65
65
  alt: v,
66
66
  gap: k,
67
67
  hasImage: !!T,
@@ -71,10 +71,10 @@ var v = n(function(n, c) {
71
71
  src: T
72
72
  };
73
73
  z.current = C;
74
- let U = r((e, t, n, r) => {
74
+ let U = i((e, t, n, r) => {
75
75
  let i = e - n, a = t - r;
76
76
  return i * i + a * a;
77
- }, []), W = r((e, t, n) => {
77
+ }, []), W = i((e, t, n) => {
78
78
  F.current !== null && cancelAnimationFrame(F.current), R.current = performance.now();
79
79
  let r = () => {
80
80
  F.current = requestAnimationFrame(r);
@@ -94,12 +94,12 @@ var v = n(function(n, c) {
94
94
  }), !z.current && !o && F.current !== null && (cancelAnimationFrame(F.current), F.current = null);
95
95
  };
96
96
  r();
97
- }, [k]), G = r((e, t, n) => {
97
+ }, [k]), G = i((e, t, n) => {
98
98
  e.clearRect(0, 0, t, n), z.current && P.current.forEach((t, n) => {
99
99
  e.fillStyle = n;
100
100
  for (let n of t) n.size = n.maxSize, n.draw(e, k);
101
101
  });
102
- }, [k]), K = r(() => {
102
+ }, [k]), K = i(() => {
103
103
  let e = j.current, n = e?.getContext("2d");
104
104
  if (!e || !n) return;
105
105
  P.current = /* @__PURE__ */ new Map();
@@ -136,7 +136,7 @@ var v = n(function(n, c) {
136
136
  U,
137
137
  G,
138
138
  W
139
- ]), q = r(() => {
139
+ ]), q = i(() => {
140
140
  let e = j.current, t = M.current, n = e?.getContext("2d");
141
141
  if (!e || !t || !n) return;
142
142
  let r = t.getBoundingClientRect();
@@ -144,7 +144,7 @@ var v = n(function(n, c) {
144
144
  let i = Math.floor(r.width), a = Math.floor(r.height), o = window.devicePixelRatio ?? 1;
145
145
  e.width = i * o, e.height = a * o, e.style.width = `${i}px`, e.style.height = `${a}px`, n.setTransform(1, 0, 0, 1, 0, 0), n.scale(o, o), K();
146
146
  }, [K]);
147
- return i(() => {
147
+ return a(() => {
148
148
  q();
149
149
  let e = new ResizeObserver(() => {
150
150
  I.current === null && (I.current = requestAnimationFrame(() => {
@@ -154,7 +154,7 @@ var v = n(function(n, c) {
154
154
  return M.current && e.observe(M.current), () => {
155
155
  e.disconnect(), I.current !== null && (cancelAnimationFrame(I.current), I.current = null), F.current !== null && (cancelAnimationFrame(F.current), F.current = null);
156
156
  };
157
- }, [q]), i(() => {
157
+ }, [q]), a(() => {
158
158
  let e = j.current, t = e?.getContext("2d");
159
159
  if (!e || !t || P.current.size === 0) return;
160
160
  let n = window.devicePixelRatio ?? 1, r = e.width / n, i = e.height / n;
@@ -168,7 +168,7 @@ var v = n(function(n, c) {
168
168
  B,
169
169
  G,
170
170
  W
171
- ]), /* @__PURE__ */ s(h, {
171
+ ]), /* @__PURE__ */ c(h, {
172
172
  ...O,
173
173
  ref: V,
174
174
  ownerState: H,
@@ -180,7 +180,7 @@ var v = n(function(n, c) {
180
180
  width: "100%"
181
181
  }, ...e(D)],
182
182
  children: [
183
- T && /* @__PURE__ */ o("img", {
183
+ T && /* @__PURE__ */ s("img", {
184
184
  ref: N,
185
185
  src: T,
186
186
  alt: v,
@@ -194,7 +194,7 @@ var v = n(function(n, c) {
194
194
  }
195
195
  }),
196
196
  y,
197
- /* @__PURE__ */ o("canvas", {
197
+ /* @__PURE__ */ s("canvas", {
198
198
  ref: j,
199
199
  style: {
200
200
  position: "absolute",
@@ -0,0 +1,5 @@
1
+ export { default, default as SPopover } from './s-popover';
2
+ export type { SPopoverOwnerState, SPopoverPlacement, SPopoverProps, SPopoverSlotProps, SPopoverSlots, } from './s-popover';
3
+ export { default as SPopoverContent } from './s-popover-content';
4
+ export type { SPopoverContentProps, SPopoverContentTypeMap } from './s-popover-content';
5
+ export type {} from '../theme/component-augmentation';
@@ -0,0 +1,3 @@
1
+ import { SPopover as e } from "./s-popover.js";
2
+ import { SPopoverContent as t } from "./s-popover-content.js";
3
+ export { e as SPopover, e as default, t as SPopoverContent };
@@ -0,0 +1,14 @@
1
+ import { PopoverOrigin } from '@mui/material/Popover';
2
+ /** Anchor edge/corner the popover surface is attached to. */
3
+ export type SPopoverPlacement = 'bottom' | 'bottom-end' | 'bottom-start' | 'top' | 'top-end' | 'top-start';
4
+ /**
5
+ * Shared placement vocabulary for every anchored surface in the kit.
6
+ *
7
+ * Lives outside `s-popover.tsx` so components that anchor a MUI `Menu` (which
8
+ * cannot be swapped for `SPopover`) can reuse the same origin pairs without
9
+ * pulling the `SPopover` component into their bundle.
10
+ */
11
+ export declare const placementOrigins: Record<SPopoverPlacement, {
12
+ anchorOrigin: PopoverOrigin;
13
+ transformOrigin: PopoverOrigin;
14
+ }>;
@@ -0,0 +1,65 @@
1
+ //#region lib/s-popover/placement.ts
2
+ var e = {
3
+ bottom: {
4
+ anchorOrigin: {
5
+ horizontal: "center",
6
+ vertical: "bottom"
7
+ },
8
+ transformOrigin: {
9
+ horizontal: "center",
10
+ vertical: "top"
11
+ }
12
+ },
13
+ "bottom-end": {
14
+ anchorOrigin: {
15
+ horizontal: "right",
16
+ vertical: "bottom"
17
+ },
18
+ transformOrigin: {
19
+ horizontal: "right",
20
+ vertical: "top"
21
+ }
22
+ },
23
+ "bottom-start": {
24
+ anchorOrigin: {
25
+ horizontal: "left",
26
+ vertical: "bottom"
27
+ },
28
+ transformOrigin: {
29
+ horizontal: "left",
30
+ vertical: "top"
31
+ }
32
+ },
33
+ top: {
34
+ anchorOrigin: {
35
+ horizontal: "center",
36
+ vertical: "top"
37
+ },
38
+ transformOrigin: {
39
+ horizontal: "center",
40
+ vertical: "bottom"
41
+ }
42
+ },
43
+ "top-end": {
44
+ anchorOrigin: {
45
+ horizontal: "right",
46
+ vertical: "top"
47
+ },
48
+ transformOrigin: {
49
+ horizontal: "right",
50
+ vertical: "bottom"
51
+ }
52
+ },
53
+ "top-start": {
54
+ anchorOrigin: {
55
+ horizontal: "left",
56
+ vertical: "top"
57
+ },
58
+ transformOrigin: {
59
+ horizontal: "left",
60
+ vertical: "bottom"
61
+ }
62
+ }
63
+ };
64
+ //#endregion
65
+ export { e as placementOrigins };
@@ -0,0 +1,22 @@
1
+ import { OverridableComponent, OverrideProps } from '@mui/material/OverridableComponent';
2
+ import { Theme } from '@mui/material/styles';
3
+ import { BoxTypeMap } from '@mui/system';
4
+ import * as React from 'react';
5
+ export interface SPopoverContentTypeMap<AdditionalProps = object, RootComponent extends React.ElementType = 'div'> {
6
+ props: AdditionalProps & BoxTypeMap<object, RootComponent, Theme>['props'];
7
+ defaultComponent: RootComponent;
8
+ }
9
+ export type SPopoverContentProps<RootComponent extends React.ElementType = SPopoverContentTypeMap['defaultComponent'], AdditionalProps = object> = OverrideProps<SPopoverContentTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
10
+ component?: React.ElementType;
11
+ };
12
+ /**
13
+ * Padded content region for SPopover.
14
+ *
15
+ * Use one or more content regions when a popover mixes padded sections with
16
+ * edge-to-edge elements such as lists and dividers. The default 16px padding
17
+ * can be customized through `sx` or the `SPopoverContent` theme entry.
18
+ */
19
+ export declare const SPopoverContent: OverridableComponent<SPopoverContentTypeMap<object, "div">> & {
20
+ displayName: string;
21
+ };
22
+ export default SPopoverContent;
@@ -0,0 +1,22 @@
1
+ import { t as e } from "../Box-9oeZgA1U.js";
2
+ import { t } from "../styled-Bog8QCl3.js";
3
+ import { t as n } from "../useThemeProps-Dw9dmKyT.js";
4
+ import * as r from "react";
5
+ import { jsx as i } from "react/jsx-runtime";
6
+ //#region lib/s-popover/s-popover-content.tsx
7
+ var a = t(e, {
8
+ name: "SPopoverContent",
9
+ slot: "Root"
10
+ })(({ theme: e }) => ({ padding: e.spacing(2) })), o = Object.assign(r.forwardRef(function(e, t) {
11
+ let r = n({
12
+ props: e,
13
+ name: "SPopoverContent"
14
+ });
15
+ return /* @__PURE__ */ i(a, {
16
+ ...r,
17
+ ownerState: r,
18
+ ref: t
19
+ });
20
+ }), { displayName: "SPopoverContent" });
21
+ //#endregion
22
+ export { o as SPopoverContent, o as default };
@@ -0,0 +1,59 @@
1
+ import { PaperProps } from '@mui/material/Paper';
2
+ import { PopoverProps, PopoverSlots } from '@mui/material/Popover';
3
+ import { OwnerStateSlotProps } from '../utils/slots';
4
+ import { SPopoverPlacement } from './placement';
5
+ import * as React from 'react';
6
+ export type { SPopoverPlacement } from './placement';
7
+ type PopoverSlotProps = NonNullable<PopoverProps['slotProps']>;
8
+ export interface SPopoverSlots extends Partial<Pick<PopoverSlots, 'backdrop' | 'transition'>> {
9
+ /** Surface rendered inside the popover, defaults to a themed MUI Paper. */
10
+ paper?: React.ElementType;
11
+ /** Popover element itself, defaults to MUI Popover. */
12
+ root?: React.ElementType;
13
+ }
14
+ type SPopoverRootSlotProps = Omit<PopoverProps, 'anchorOrigin' | 'children' | 'open' | 'slotProps' | 'slots' | 'transformOrigin'>;
15
+ export interface SPopoverSlotProps extends Pick<PopoverSlotProps, 'backdrop' | 'transition'> {
16
+ /** Props or owner-state callback for the popover surface. */
17
+ paper?: OwnerStateSlotProps<PaperProps, SPopoverOwnerState>;
18
+ /** Props or owner-state callback for the popover root. */
19
+ root?: OwnerStateSlotProps<SPopoverRootSlotProps, SPopoverOwnerState>;
20
+ }
21
+ /** Props for a themed MUI Popover with placement-based origin mapping. */
22
+ export interface SPopoverProps extends Omit<PopoverProps, 'anchorOrigin' | 'slotProps' | 'slots' | 'transformOrigin'> {
23
+ /** Element, virtual element, or getter the surface is positioned against. */
24
+ anchorEl?: PopoverProps['anchorEl'];
25
+ /** Popover content. Use SPopoverContent for a standard padded content region. */
26
+ children?: React.ReactNode;
27
+ /** Called when the popover requests to close (backdrop click or Escape). */
28
+ onClose?: PopoverProps['onClose'];
29
+ /** If `true`, the popover is shown. */
30
+ open: boolean;
31
+ /**
32
+ * Anchor edge/corner the surface attaches to. Resolves the matching
33
+ * `anchorOrigin`/`transformOrigin` pair on MUI Popover.
34
+ */
35
+ placement?: SPopoverPlacement;
36
+ /** Components used for internal structural slots. */
37
+ slots?: SPopoverSlots;
38
+ /** Props or owner-state callbacks for internal structural slots. */
39
+ slotProps?: SPopoverSlotProps;
40
+ /** Stacking order of the popover. Defaults to `theme.zIndex.modal`. */
41
+ zIndex?: number;
42
+ }
43
+ export interface SPopoverOwnerState extends SPopoverProps {
44
+ placement: SPopoverPlacement;
45
+ }
46
+ /**
47
+ * Themed MUI Popover with a `placement` API.
48
+ *
49
+ * Replaces the `anchorOrigin`/`transformOrigin` pair with a single `placement`
50
+ * token resolved from the kit's shared origin map, and applies the flat surface
51
+ * treatment used by every anchored panel in the system: `background.paper`,
52
+ * a 1px `divider` border and `radius.md`, with no elevation shadow.
53
+ * Compose with SPopoverContent when the content needs the standard 16px inset.
54
+ *
55
+ * The MUI `backdrop` and `transition` slots stay reachable through `slots` /
56
+ * `slotProps`; `root` targets the Popover itself rather than the inner Modal.
57
+ */
58
+ export declare const SPopover: React.ForwardRefExoticComponent<Omit<SPopoverProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
59
+ export default SPopover;
@@ -0,0 +1,68 @@
1
+ import { t as e } from "../styled-Bog8QCl3.js";
2
+ import { t } from "../useThemeProps-Dw9dmKyT.js";
3
+ import { toSxArray as n } from "../utils/sx.js";
4
+ import { resolveOwnerStateSlotProps as r } from "../utils/slots.js";
5
+ import { t as i } from "../useForkRef-BuNFTXxE.js";
6
+ import { t as a } from "../appendOwnerState-CFQTq3pb.js";
7
+ import { t as o } from "../mergeSlotProps-DC8r4QzS.js";
8
+ import { n as s, t as c } from "../Popover-BFdKSYI5.js";
9
+ import { placementOrigins as l } from "./placement.js";
10
+ import * as u from "react";
11
+ import { jsx as d } from "react/jsx-runtime";
12
+ //#region lib/s-popover/s-popover.tsx
13
+ var f = .5, p = e(c, {
14
+ name: "SPopover",
15
+ slot: "Root",
16
+ shouldForwardProp: (e) => e !== "ownerState"
17
+ })(({ theme: e }) => ({ zIndex: e.zIndex.modal })), m = e(s, {
18
+ name: "SPopover",
19
+ slot: "Paper",
20
+ shouldForwardProp: (e) => e !== "ownerState"
21
+ })(({ theme: e }) => ({
22
+ border: "1px solid",
23
+ borderColor: (e.vars ?? e).palette.divider,
24
+ borderRadius: e.radius.md,
25
+ marginTop: 0,
26
+ variants: [{
27
+ props: ({ ownerState: e }) => e?.placement?.startsWith("bottom") ?? !1,
28
+ style: { marginTop: e.spacing(f) }
29
+ }, {
30
+ props: ({ ownerState: e }) => e?.placement?.startsWith("top") ?? !1,
31
+ style: { marginTop: e.spacing(-f) }
32
+ }]
33
+ })), h = u.forwardRef(function(e, s) {
34
+ let c = t({
35
+ props: e,
36
+ name: "SPopover"
37
+ }), { placement: u = "bottom-end", slotProps: f, slots: h, sx: g, zIndex: _, ...v } = c, y = {
38
+ ...c,
39
+ placement: u
40
+ }, { anchorOrigin: b, transformOrigin: x } = l[u], S = h?.root ?? p, C = h?.paper ?? m, { ref: w, sx: T, ...E } = a(S, o(r(f?.root, y), v), y), D = i(w, s), { sx: O, ...k } = a(C, r(f?.paper, y) ?? {}, y);
41
+ return /* @__PURE__ */ d(S, {
42
+ ...E,
43
+ ref: D,
44
+ anchorOrigin: b,
45
+ slots: {
46
+ backdrop: h?.backdrop,
47
+ paper: C,
48
+ transition: h?.transition
49
+ },
50
+ slotProps: {
51
+ backdrop: f?.backdrop,
52
+ paper: {
53
+ ...k,
54
+ sx: n(O)
55
+ },
56
+ transition: f?.transition
57
+ },
58
+ sx: [
59
+ ..._ === void 0 ? [] : [{ zIndex: _ }],
60
+ ...n(T),
61
+ ...n(g)
62
+ ],
63
+ transformOrigin: x
64
+ });
65
+ });
66
+ h.displayName = "SPopover";
67
+ //#endregion
68
+ export { h as SPopover, h as default };
@@ -0,0 +1,3 @@
1
+ export { default, default as SProductCard } from './s-product-card';
2
+ export type { SProductCardBadgePlacement, SProductCardLinkProps, SProductCardOwnerState, SProductCardProps, SProductCardRootProps, SProductCardSlotProps, SProductCardSlots, SProductCardSwatch, SProductCardVariant, } from './s-product-card';
3
+ export type {} from '../theme/component-augmentation';
@@ -0,0 +1,2 @@
1
+ import { SProductCard as e } from "./s-product-card.js";
2
+ export { e as SProductCard, e as default };
@@ -0,0 +1,216 @@
1
+ import { BoxProps, CardProps, TypographyProps } from '@mui/material';
2
+ import { SIconButtonProps } from '../s-icon-button/s-icon-button';
3
+ import { SLazyImageProps } from '../s-lazy-image/s-lazy-image';
4
+ import { SSwatchVisualProps } from '../s-swatch/s-swatch';
5
+ import { OwnerStateSlotProps as MuiOwnerStateSlotProps } from '../utils/slots';
6
+ import * as React from 'react';
7
+ /** Density preset. All four share one anatomy and differ only in layout and spacing. */
8
+ export type SProductCardVariant = 'grid' | 'list' | 'mini' | 'overlay';
9
+ /** Logical corner of the media the badge is pinned to. Safe in LTR and RTL layouts. */
10
+ export type SProductCardBadgePlacement = 'bottom-end' | 'bottom-start' | 'top-end' | 'top-start';
11
+ /** One valid color or image option summarised in the swatch row. */
12
+ export type SProductCardSwatch = SSwatchVisualProps & {
13
+ /** Optional display and accessible label. */
14
+ label?: string;
15
+ /** Stable key and human-readable option value. */
16
+ value: string;
17
+ };
18
+ /** Stretched primary-action props. Navigation and activation stay owned by the top-level API. */
19
+ export type SProductCardLinkProps = Omit<BoxProps, 'children' | 'component' | 'onClick'> & Pick<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'download' | 'rel' | 'target'> & {
20
+ /** Disable the MUI touch ripple for the primary action. */
21
+ disableRipple?: boolean;
22
+ /** Enable the keyboard focus ripple. */
23
+ focusRipple?: boolean;
24
+ /** Class applied while the primary action is keyboard-focus-visible. */
25
+ focusVisibleClassName?: string;
26
+ };
27
+ /** Root surface props that do not duplicate SProductCard's interaction API. */
28
+ export type SProductCardRootProps = Omit<CardProps, 'children' | 'component' | 'onClick'>;
29
+ export interface SProductCardSlots {
30
+ /** Trailing cluster of the footer row, holding the favorite toggle and `actions`. */
31
+ actions?: React.ElementType;
32
+ /** Promotional label pinned over the media. */
33
+ badge?: React.ElementType;
34
+ /** Text column below the media. */
35
+ content?: React.ElementType;
36
+ /** Built-in favorite toggle. */
37
+ favoriteButton?: React.ElementType;
38
+ /** Bottom row of the content column. */
39
+ footer?: React.ElementType;
40
+ /** Layer revealed over the media on hover, focus, and on touch devices. */
41
+ hoverActions?: React.ElementType;
42
+ /** Second image cross-faded in on hover. */
43
+ hoverImage?: React.ElementType;
44
+ /** Primary media image. */
45
+ image?: React.ElementType;
46
+ /** Stretched link covering the whole card. */
47
+ link?: React.ElementType;
48
+ /** Media frame that clips the image and positions the badge and hover actions. */
49
+ media?: React.ElementType;
50
+ /** Secondary information row under the title. */
51
+ meta?: React.ElementType;
52
+ /** Price group of the footer row. */
53
+ price?: React.ElementType;
54
+ /** Struck-through original price. */
55
+ originalPrice?: React.ElementType;
56
+ /** Rating row under the title. */
57
+ rating?: React.ElementType;
58
+ /** Card surface. */
59
+ root?: React.ElementType;
60
+ /** Swatch summary row. */
61
+ swatches?: React.ElementType;
62
+ /** Product name. */
63
+ title?: React.ElementType;
64
+ }
65
+ type OwnerStateSlotProps<Props> = MuiOwnerStateSlotProps<Props, SProductCardOwnerState>;
66
+ export interface SProductCardSlotProps {
67
+ /** Props or owner-state callback for the actions slot. */
68
+ actions?: OwnerStateSlotProps<Omit<BoxProps, 'children'>>;
69
+ /** Props or owner-state callback for the badge slot. */
70
+ badge?: OwnerStateSlotProps<Omit<BoxProps, 'children'>>;
71
+ /** Props or owner-state callback for the content slot. */
72
+ content?: OwnerStateSlotProps<Omit<BoxProps, 'children'>>;
73
+ /** Props or owner-state callback for the favorite button slot. */
74
+ favoriteButton?: OwnerStateSlotProps<Omit<SIconButtonProps, 'children'>>;
75
+ /** Props or owner-state callback for the footer slot. */
76
+ footer?: OwnerStateSlotProps<Omit<BoxProps, 'children'>>;
77
+ /** Props or owner-state callback for the hover actions slot. */
78
+ hoverActions?: OwnerStateSlotProps<Omit<BoxProps, 'children'>>;
79
+ /** Props or owner-state callback for the hover image slot. */
80
+ hoverImage?: OwnerStateSlotProps<Omit<SLazyImageProps, 'alt' | 'src'>>;
81
+ /** Props or owner-state callback for the image slot. */
82
+ image?: OwnerStateSlotProps<Omit<SLazyImageProps, 'alt' | 'src'>>;
83
+ /** Props or owner-state callback for the stretched link slot. */
84
+ link?: OwnerStateSlotProps<SProductCardLinkProps>;
85
+ /** Props or owner-state callback for the media slot. */
86
+ media?: OwnerStateSlotProps<Omit<BoxProps, 'children'>>;
87
+ /** Props or owner-state callback for the meta slot. */
88
+ meta?: OwnerStateSlotProps<Omit<BoxProps, 'children'>>;
89
+ /** Props or owner-state callback for the price slot. */
90
+ price?: OwnerStateSlotProps<Omit<TypographyProps, 'children'>>;
91
+ /** Props or owner-state callback for the original-price slot. */
92
+ originalPrice?: OwnerStateSlotProps<Omit<BoxProps, 'children'>>;
93
+ /** Props or owner-state callback for the rating slot. */
94
+ rating?: OwnerStateSlotProps<Omit<BoxProps, 'children'>>;
95
+ /** Props or owner-state callback for the root slot. */
96
+ root?: OwnerStateSlotProps<SProductCardRootProps>;
97
+ /** Props or owner-state callback for the swatches slot. */
98
+ swatches?: OwnerStateSlotProps<Omit<BoxProps, 'children'>>;
99
+ /** Props or owner-state callback for the title slot. */
100
+ title?: OwnerStateSlotProps<Omit<TypographyProps, 'children'>>;
101
+ }
102
+ /**
103
+ * Props for a presentation-only product card. Every region is a `ReactNode` prop
104
+ * with a matching slot, so no commerce model, formatter, or router is involved.
105
+ */
106
+ export interface SProductCardProps extends Omit<CardProps, 'children' | 'component' | 'onClick' | 'title' | 'variant'> {
107
+ /** Action cluster rendered at the trailing end of the footer row. */
108
+ actions?: React.ReactNode;
109
+ /**
110
+ * Alternative text for the built-in image. Empty by default because the
111
+ * primary card action is already labelled by the visible product title.
112
+ */
113
+ alt?: string;
114
+ /** Media aspect ratio, used when `mediaHeight` is not set. */
115
+ aspectRatio?: number | string;
116
+ /** Promotional label rendered over the media — a discount chip, "new", and so on. */
117
+ badge?: React.ReactNode;
118
+ /** Corner of the media the badge is pinned to. */
119
+ badgePlacement?: SProductCardBadgePlacement;
120
+ /** Initial favorite state for uncontrolled usage. */
121
+ defaultFavorite?: boolean;
122
+ /** Disables the primary action and removes all built-in action regions from the tab order. */
123
+ disabled?: boolean;
124
+ /** Keeps the hover border feedback but removes the card translate and scale. */
125
+ disableLift?: boolean;
126
+ /** Favorite state for controlled usage. */
127
+ favorite?: boolean;
128
+ /** Icon of the favorite toggle while favorited. */
129
+ favoriteActiveIcon?: React.ReactNode;
130
+ /** Accessible name of the favorite toggle while favorited. */
131
+ favoriteActiveLabel?: string;
132
+ /** Icon of the favorite toggle while not favorited. */
133
+ favoriteIcon?: React.ReactNode;
134
+ /** Accessible name of the favorite toggle while not favorited. */
135
+ favoriteLabel?: string;
136
+ /** Supplemental content rendered between the price and the trailing actions. */
137
+ footerContent?: React.ReactNode;
138
+ /** Actions revealed over the media on hover and focus. Always visible on touch devices. */
139
+ hoverActions?: React.ReactNode;
140
+ /** Second image URL cross-faded in over the primary image on hover and focus. */
141
+ hoverImage?: string;
142
+ /** Link destination. Renders a stretched anchor that covers the whole card. */
143
+ href?: string;
144
+ /** Primary media image URL, rendered with `SLazyImage`. Ignored when `media` is set. */
145
+ image?: string;
146
+ /** Enables card and media hover/focus effects without changing primary-action semantics. */
147
+ interactive?: boolean;
148
+ /** Accessible name of the stretched link. Defaults to the rendered `title`. */
149
+ linkLabel?: string;
150
+ /** Maximum swatches rendered before the overflow counter. */
151
+ maxSwatches?: number;
152
+ /** Custom media content. Replaces the built-in image and hover image. */
153
+ media?: React.ReactNode;
154
+ /** Fixed media height. Takes precedence over `aspectRatio`. */
155
+ mediaHeight?: number | string;
156
+ /** Media width. Only meaningful for the `list` variant. */
157
+ mediaWidth?: number | string;
158
+ /** Zooms the media image while the card is hovered or focused. */
159
+ mediaZoom?: boolean;
160
+ /** Scale factor of the media zoom. */
161
+ mediaZoomScale?: number;
162
+ /** Secondary information under the title — tags, category, or an option summary. */
163
+ meta?: React.ReactNode;
164
+ /** Called when the card is activated. Used instead of `href` for non-navigating cards. */
165
+ onClick?: React.MouseEventHandler<HTMLElement>;
166
+ /** Called with the next favorite state when the favorite toggle is pressed. */
167
+ onFavoriteChange?: (event: React.MouseEvent<HTMLButtonElement>, favorite: boolean) => void;
168
+ /** Pre-formatted current price. Formatting and currency stay with the consumer. */
169
+ price?: React.ReactNode;
170
+ /** Pre-formatted original price, rendered struck through next to `price`. */
171
+ originalPrice?: React.ReactNode;
172
+ /**
173
+ * Read-only rating. A number renders a read-only `SRating`; any other node is
174
+ * rendered as-is, so a custom rating summary can be injected.
175
+ */
176
+ rating?: React.ReactNode;
177
+ /** Sweeps a light sheen across the card on hover and focus. */
178
+ sheen?: boolean;
179
+ /** Renders the built-in favorite toggle at the start of the footer actions. */
180
+ showFavorite?: boolean;
181
+ /** Props or owner-state callbacks for internal structural slots. */
182
+ slotProps?: SProductCardSlotProps;
183
+ /** Components used for internal structural slots. */
184
+ slots?: SProductCardSlots;
185
+ /** Color or image options summarised under the title. Presentational, never focusable. */
186
+ swatches?: SProductCardSwatch[];
187
+ /** Accessible name of the swatch summary row. */
188
+ swatchesLabel?: string;
189
+ /** Product name. Also labels the primary card action when `linkLabel` is omitted. */
190
+ title: React.ReactNode;
191
+ /** Density preset. Replaces the MUI `Card` variant, which is available via `slotProps.root`. */
192
+ variant?: SProductCardVariant;
193
+ }
194
+ export interface SProductCardOwnerState extends Omit<SProductCardProps, 'slotProps' | 'slots'> {
195
+ alt: string;
196
+ aspectRatio: number | string;
197
+ badgePlacement: SProductCardBadgePlacement;
198
+ clickable: boolean;
199
+ disableLift: boolean;
200
+ disabled: boolean;
201
+ favorite: boolean;
202
+ interactive: boolean;
203
+ maxSwatches: number;
204
+ mediaZoom: boolean;
205
+ mediaZoomScale: number;
206
+ sheen: boolean;
207
+ showFavorite: boolean;
208
+ variant: SProductCardVariant;
209
+ }
210
+ /**
211
+ * Presentation shell for a product card. Media, badge, title, rating, meta,
212
+ * swatches, price, footer and actions are all `ReactNode` props backed by slots,
213
+ * and every hover effect is CSS driven so no animation library is pulled in.
214
+ */
215
+ export declare const SProductCard: React.ForwardRefExoticComponent<Omit<SProductCardProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
216
+ export default SProductCard;