@solostylist/ui-kit 1.0.224 → 1.0.226

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 (246) hide show
  1. package/dist/{ArrowUpward-BMKLosZj.js → ArrowUpward-DONVUi9Q.js} +1 -1
  2. package/dist/{ButtonBase-Bo6ysVGS.js → ButtonBase-BDefit5I.js} +100 -99
  3. package/dist/{ChevronRight-OLNOfW9P.js → ChevronRight-cBbrlMYh.js} +1 -1
  4. package/dist/{Close-Bj2HYB9Q.js → Close-DRS0T6Yu.js} +1 -1
  5. package/dist/{Collapse-CnXmaDqT.js → Collapse-Dtji6IrM.js} +4 -3
  6. package/dist/{ContentCopy-Br2p19dq.js → ContentCopy-C4mVqexq.js} +1 -1
  7. package/dist/{Download-BhSXOhCI.js → Download-D277qwl2.js} +1 -1
  8. package/dist/{ExpandMore-Bu7_1g6Q.js → ExpandMore-DIsT5FOp.js} +1 -1
  9. package/dist/{Favorite-BJSuHe0H.js → Favorite-CbvuQfe4.js} +1 -1
  10. package/dist/{FormControl-DYkaP-oD.js → FormControl-DMZWdEWz.js} +6 -6
  11. package/dist/{InfoOutlined-C1AW3f5V.js → InfoOutlined-BCzG-5py.js} +1 -1
  12. package/dist/{Menu-C-0KEauj.js → Menu-CbHevx8q.js} +20 -20
  13. package/dist/{MenuItem-DWivWkNb.js → MenuItem-CCClg9Si.js} +8 -8
  14. package/dist/{MenuList-5HOyYdgq.js → MenuList-5C2nFAWS.js} +45 -45
  15. package/dist/{Modal-C1VRVWBZ.js → Modal-Cu5Cgh-q.js} +109 -108
  16. package/dist/{Paper-BY4X6-u_.js → Paper-Cy7rReyx.js} +1 -1
  17. package/dist/{Typography-EsraKPZO.js → Typography-DqtTB0ZJ.js} +2 -2
  18. package/dist/{UnfoldMoreRounded-pz7NMMy3.js → UnfoldMoreRounded-Cbt8Oi8S.js} +1 -1
  19. package/dist/{autocomplete-qLj7AqcP.js → autocomplete-Du0flrk6.js} +1 -1
  20. package/dist/{avatar-BuMhUthq.js → avatar-DQtjHpOs.js} +2 -2
  21. package/dist/{checkbox-B95Vlykq.js → checkbox-BGA2cVbl.js} +17 -17
  22. package/dist/{createSvgIcon-BdNZIlKS.js → createSvgIcon-HW-tbFcL.js} +1 -1
  23. package/dist/{mergeSlotProps-DBBJwoun.js → mergeSlotProps-slENzJO5.js} +1 -1
  24. package/dist/monthCalendarClasses-C1jHkjgt.js +14 -0
  25. package/dist/s-accordion/index.js +1 -1
  26. package/dist/s-accordion/s-accordion.js +1 -1
  27. package/dist/{s-accordion-CXHBadZ_.js → s-accordion-D2VsBSgb.js} +7 -7
  28. package/dist/s-breadcrumbs/s-breadcrumbs.js +1 -1
  29. package/dist/s-carousel/index.js +1 -1
  30. package/dist/s-carousel/s-carousel.js +1 -1
  31. package/dist/{s-carousel-BUJYCigy.js → s-carousel-S6CRrrpW.js} +7 -9
  32. package/dist/s-category-card/s-category-card.js +0 -1
  33. package/dist/s-chat-input/index.js +1 -1
  34. package/dist/s-chat-input/s-chat-input.js +1 -1
  35. package/dist/s-chat-input-DNptuBb0.js +352 -0
  36. package/dist/s-chat-message/index.js +1 -1
  37. package/dist/s-chat-message/s-chat-message.js +1 -1
  38. package/dist/{s-chat-message-ox4Sj6xh.js → s-chat-message-Bsvsh45G.js} +4 -6
  39. package/dist/s-chips/index.js +1 -1
  40. package/dist/s-chips/s-chips.js +1 -1
  41. package/dist/{s-chips-DelHx6zM.js → s-chips-CH0zKaz-.js} +1 -1
  42. package/dist/s-code-block/index.js +1 -1
  43. package/dist/s-code-block/s-code-block.js +1 -1
  44. package/dist/{s-code-block-sjt0AQb_.js → s-code-block-ByNQ4Zq5.js} +1 -1
  45. package/dist/s-comment-message/index.js +1 -1
  46. package/dist/s-comment-message/s-comment-message.js +1 -1
  47. package/dist/{s-comment-message-DzjXXLZQ.js → s-comment-message-DF580Qxk.js} +13 -19
  48. package/dist/s-copyable-text/s-copyable-text.js +1 -1
  49. package/dist/s-data-table/index.js +1 -1
  50. package/dist/s-data-table/s-data-table.js +1 -1
  51. package/dist/{s-data-table-TrCdKq9r.js → s-data-table-B8llaX-A.js} +9 -9
  52. package/dist/s-date-picker/index.js +1 -1
  53. package/dist/s-date-picker/picker-action-bar.d.ts +12 -0
  54. package/dist/s-date-picker/picker-action-bar.js +52 -0
  55. package/dist/s-date-picker/s-date-picker.d.ts +1 -4
  56. package/dist/s-date-picker/s-date-picker.js +1 -1
  57. package/dist/s-date-picker-CLncO3oo.js +640 -0
  58. package/dist/s-datetime-picker/index.js +1 -1
  59. package/dist/s-datetime-picker/s-datetime-picker.d.ts +1 -4
  60. package/dist/s-datetime-picker/s-datetime-picker.js +1 -1
  61. package/dist/{s-datetime-picker-rCWovez1.js → s-datetime-picker-Dy1fX3rI.js} +806 -799
  62. package/dist/s-dialog/s-dialog.d.ts +3 -3
  63. package/dist/s-dialog/s-dialog.js +8 -8
  64. package/dist/s-dialog-confirm/s-dialog-confirm.d.ts +7 -1
  65. package/dist/s-dialog-confirm/s-dialog-confirm.js +7 -7
  66. package/dist/s-dialog-message/s-dialog-message.js +3 -4
  67. package/dist/s-empty/s-empty.js +2 -5
  68. package/dist/s-error/s-error.js +1 -1
  69. package/dist/s-error-layout/s-error-layout.d.ts +1 -1
  70. package/dist/s-error-layout/s-error-layout.js +3 -2
  71. package/dist/s-file-dropzone/index.js +1 -1
  72. package/dist/s-file-dropzone/s-file-dropzone.d.ts +1 -4
  73. package/dist/s-file-dropzone/s-file-dropzone.js +1 -1
  74. package/dist/{s-file-dropzone-oaQoRV92.js → s-file-dropzone-CbaOf3_3.js} +47 -42
  75. package/dist/s-gallery/gallery-grid-item.d.ts +17 -0
  76. package/dist/s-gallery/gallery-grid-item.js +112 -0
  77. package/dist/s-gallery/gallery-layout.d.ts +16 -0
  78. package/dist/s-gallery/gallery-layout.js +50 -0
  79. package/dist/s-gallery/gallery-media-item.d.ts +15 -0
  80. package/dist/s-gallery/gallery-media-item.js +112 -0
  81. package/dist/s-gallery/index.d.ts +5 -2
  82. package/dist/s-gallery/index.js +2 -1
  83. package/dist/s-gallery/s-gallery.d.ts +1 -17
  84. package/dist/s-gallery/s-gallery.js +38 -284
  85. package/dist/s-image-comparison/s-image-comparison.js +46 -42
  86. package/dist/s-image-modal/default-media-item.d.ts +9 -0
  87. package/dist/s-image-modal/default-media-item.js +34 -0
  88. package/dist/s-image-modal/image-modal-thumbnail-dock.d.ts +11 -0
  89. package/dist/s-image-modal/image-modal-thumbnail-dock.js +102 -0
  90. package/dist/s-image-modal/index.d.ts +2 -2
  91. package/dist/s-image-modal/index.js +2 -1
  92. package/dist/s-image-modal/s-image-modal.d.ts +1 -52
  93. package/dist/s-image-modal/s-image-modal.js +2 -2
  94. package/dist/s-image-modal/types.d.ts +52 -0
  95. package/dist/s-image-modal/types.js +0 -0
  96. package/dist/s-image-modal/use-image-modal-navigation.d.ts +29 -0
  97. package/dist/s-image-modal/use-image-modal-navigation.js +57 -0
  98. package/dist/s-image-modal-hhRD4727.js +243 -0
  99. package/dist/s-label/s-label.js +1 -1
  100. package/dist/s-language-switcher/index.js +1 -1
  101. package/dist/s-language-switcher/s-language-switcher.js +1 -1
  102. package/dist/{s-language-switcher-vievp2VS.js → s-language-switcher-BKK0r8Kh.js} +4 -4
  103. package/dist/s-localization-provider/index.js +1 -1
  104. package/dist/s-localization-provider/s-localization-provider.js +1 -1
  105. package/dist/{s-localization-provider-YCsec18c.js → s-localization-provider-DDO9UEu_.js} +4 -4
  106. package/dist/s-nav-item/s-nav-item.js +1 -1
  107. package/dist/s-nav-items/s-nav-items.js +4 -7
  108. package/dist/s-pagination/s-pagination.js +12 -15
  109. package/dist/s-review/index.js +1 -1
  110. package/dist/s-review/s-review.js +1 -1
  111. package/dist/{s-review-D4FBfBPF.js → s-review-f0OI1oqM.js} +18 -27
  112. package/dist/s-scroll-reveal/s-scroll-reveal.js +1 -1
  113. package/dist/s-scroll-to-top/s-scroll-to-top.js +1 -1
  114. package/dist/s-select/index.js +1 -1
  115. package/dist/s-select/s-select.d.ts +2 -0
  116. package/dist/s-select/s-select.js +1 -1
  117. package/dist/{s-select-b8CHbeCf.js → s-select-BqWS_5Bs.js} +21 -21
  118. package/dist/s-select-list/s-select-list.js +2 -11
  119. package/dist/s-spotlight-cursor/s-spotlight-cursor.js +23 -15
  120. package/dist/s-stripe/s-stripe-cvc.d.ts +1 -5
  121. package/dist/s-stripe/s-stripe-cvc.js +11 -11
  122. package/dist/s-stripe/s-stripe-expiry.d.ts +1 -5
  123. package/dist/s-stripe/s-stripe-expiry.js +11 -11
  124. package/dist/s-stripe/s-stripe-number.d.ts +1 -5
  125. package/dist/s-stripe/s-stripe-number.js +11 -11
  126. package/dist/s-stripe/s-stripe.d.ts +11 -4
  127. package/dist/s-stripe/s-stripe.js +19 -17
  128. package/dist/s-stripe/stripe-input.js +41 -32
  129. package/dist/s-text-editor/index.js +1 -1
  130. package/dist/s-text-editor/s-text-editor-toolbar.js +1 -1
  131. package/dist/s-text-editor/s-text-editor.d.ts +1 -4
  132. package/dist/s-text-editor/s-text-editor.js +21 -24
  133. package/dist/{s-text-editor-toolbar-CCK7yyNS.js → s-text-editor-toolbar-DrQ8v-4J.js} +45 -44
  134. package/dist/s-text-field/index.js +1 -1
  135. package/dist/s-text-field/s-text-field.d.ts +3 -4
  136. package/dist/s-text-field/s-text-field.js +1 -1
  137. package/dist/s-text-field-DLSDoq7u.js +42 -0
  138. package/dist/s-theme-demo/index.js +1 -1
  139. package/dist/s-theme-demo/s-theme-demo.js +1 -1
  140. package/dist/{s-theme-demo-THHj5mFp.js → s-theme-demo-DeY0K6MC.js} +4 -4
  141. package/dist/s-theme-provider/s-theme-provider.js +26 -25
  142. package/dist/s-theme-switch/index.js +1 -1
  143. package/dist/s-theme-switch/s-theme-switch.js +1 -1
  144. package/dist/{s-theme-switch-V3Q58mkG.js → s-theme-switch-B0KHb2wu.js} +1 -1
  145. package/dist/s-tip/index.js +1 -1
  146. package/dist/s-tip/s-tip.js +1 -1
  147. package/dist/{s-tip-Dwu5T2u0.js → s-tip-Beuy9MLR.js} +2 -2
  148. package/dist/s-tool-bar/index.d.ts +1 -1
  149. package/dist/s-tool-bar/index.js +1 -1
  150. package/dist/s-tool-bar/s-tool-bar.d.ts +1 -155
  151. package/dist/s-tool-bar/s-tool-bar.js +114 -2
  152. package/dist/s-tool-bar/tool-bar-action-buttons.d.ts +15 -0
  153. package/dist/s-tool-bar/tool-bar-action-buttons.js +2 -0
  154. package/dist/s-tool-bar/tool-bar-image-input.d.ts +8 -0
  155. package/dist/s-tool-bar/tool-bar-image-input.js +2 -0
  156. package/dist/s-tool-bar/tool-bar-inputs.d.ts +3 -0
  157. package/dist/s-tool-bar/tool-bar-inputs.js +139 -0
  158. package/dist/s-tool-bar/types.d.ts +170 -0
  159. package/dist/s-tool-bar/types.js +0 -0
  160. package/dist/s-tool-bar/utils.d.ts +10 -0
  161. package/dist/s-tool-bar/utils.js +22 -0
  162. package/dist/theme/components/accordion-summary.js +2 -2
  163. package/dist/theme/components/accordion.js +1 -1
  164. package/dist/theme/components/alert.d.ts +1 -1
  165. package/dist/theme/components/alert.js +1 -1
  166. package/dist/theme/components/autocomplete.js +1 -1
  167. package/dist/theme/components/avatar.d.ts +10 -1
  168. package/dist/theme/components/avatar.js +1 -1
  169. package/dist/theme/components/card.js +4 -4
  170. package/dist/theme/components/checkbox.js +1 -1
  171. package/dist/theme/components/chip.js +17 -6
  172. package/dist/theme/components/components.js +134 -118
  173. package/dist/theme/components/date-calendar.d.ts +13 -0
  174. package/dist/theme/components/date-calendar.js +7 -0
  175. package/dist/theme/components/day-calendar.d.ts +14 -1
  176. package/dist/theme/components/day-calendar.js +14 -1
  177. package/dist/theme/components/dialog-actions.js +1 -1
  178. package/dist/theme/components/dialog-content.d.ts +13 -0
  179. package/dist/theme/components/dialog-content.js +7 -0
  180. package/dist/theme/components/dialog-title.d.ts +21 -0
  181. package/dist/theme/components/dialog-title.js +7 -0
  182. package/dist/theme/components/form-label.js +1 -1
  183. package/dist/theme/components/icon-button.d.ts +5 -1
  184. package/dist/theme/components/icon-button.js +18 -24
  185. package/dist/theme/components/linear-progress.js +2 -2
  186. package/dist/theme/components/link.d.ts +1 -1
  187. package/dist/theme/components/link.js +2 -2
  188. package/dist/theme/components/list-item-button.js +2 -2
  189. package/dist/theme/components/list-item.js +3 -3
  190. package/dist/theme/components/month-calendar.d.ts +27 -0
  191. package/dist/theme/components/month-calendar.js +14 -0
  192. package/dist/theme/components/multi-section-digital-clock-section.js +25 -0
  193. package/dist/theme/components/outlined-input.js +6 -6
  194. package/dist/theme/components/picker-day.d.ts +16 -2
  195. package/dist/theme/components/picker-day.js +13 -1
  196. package/dist/theme/components/pickers-arrow-switcher.d.ts +12 -0
  197. package/dist/theme/components/pickers-arrow-switcher.js +4 -0
  198. package/dist/theme/components/pickers-calendar-header.d.ts +38 -0
  199. package/dist/theme/components/pickers-calendar-header.js +24 -0
  200. package/dist/theme/components/select.js +2 -2
  201. package/dist/theme/components/slider.d.ts +29 -2
  202. package/dist/theme/components/slider.js +14 -2
  203. package/dist/theme/components/step-connector.d.ts +1 -1
  204. package/dist/theme/components/step-connector.js +1 -1
  205. package/dist/theme/components/step-icon.js +1 -1
  206. package/dist/theme/components/tab.js +1 -1
  207. package/dist/theme/components/table-pagination.js +1 -1
  208. package/dist/theme/components/toggle-button-group.js +1 -1
  209. package/dist/theme/components/toggle-button.js +1 -1
  210. package/dist/theme/components/year-calendar.d.ts +36 -0
  211. package/dist/theme/components/year-calendar.js +17 -0
  212. package/dist/theme/theme-primitives.d.ts +36 -0
  213. package/dist/theme/theme-primitives.js +2 -2
  214. package/dist/{theme-primitives-D2vHHGiX.js → theme-primitives-7ruiI7gY.js} +10 -3
  215. package/dist/{toggle-button-group-ABwIhV4P.js → toggle-button-group-Dx9fvVok.js} +4 -4
  216. package/dist/{toggle-button-BUsRxHn0.js → toggle-button-j6VLaPoa.js} +3 -3
  217. package/dist/tool-bar-action-buttons-B4QhqdK_.js +50 -0
  218. package/dist/tool-bar-image-input-BKFAtyJ1.js +138 -0
  219. package/dist/{useControlled-DXKqhylj.js → useControlled-BtZNCHV0.js} +1 -1
  220. package/dist/useForkRef-yOYCJHzF.js +29 -0
  221. package/dist/{useMobilePicker-ujH2nH2-.js → useMobilePicker-C8toWhEP.js} +7657 -7674
  222. package/dist/{useSlot-Dkc1Mj31.js → useSlot-IwEDsR9t.js} +107 -133
  223. package/dist/{utils-CCnIUPad.js → utils-CU6O7jrX.js} +5 -5
  224. package/dist/{LocalizationProvider-BdaUKqz3.js → warning-CFMmJJnf.js} +51 -51
  225. package/dist/yearCalendarClasses-DypEe_Vn.js +14 -0
  226. package/package.json +1 -1
  227. package/dist/s-chat-input-DKGeMh55.js +0 -299
  228. package/dist/s-date-picker-BkZIEZoz.js +0 -634
  229. package/dist/s-image-modal-DA3DBNbv.js +0 -397
  230. package/dist/s-text-field-Ck5QMhYI.js +0 -41
  231. package/dist/s-tool-bar-DGfyNoYW.js +0 -454
  232. /package/dist/{buttonBaseClasses-BLZbMisL.js → buttonBaseClasses-BVDyR-hz.js} +0 -0
  233. /package/dist/{checkboxClasses-DSyvUOsN.js → checkboxClasses-DPzQcJz-.js} +0 -0
  234. /package/dist/{createSimplePaletteValueFilter-GHK52GLU.js → createSimplePaletteValueFilter-5v48HHyU.js} +0 -0
  235. /package/dist/{extends-D8CDMpIy.js → extends-DM-C9PwL.js} +0 -0
  236. /package/dist/{formLabelClasses-Cv7W0Roi.js → formLabelClasses-BfRVjiBm.js} +0 -0
  237. /package/dist/{iconButtonClasses-9jjSQ9-U.js → iconButtonClasses-LyjwljJq.js} +0 -0
  238. /package/dist/{inputAdornmentClasses-VKwluNTs.js → inputAdornmentClasses-DHmz00nZ.js} +0 -0
  239. /package/dist/{objectWithoutPropertiesLoose-BpY-kC5L.js → objectWithoutPropertiesLoose-kj3TmhoA.js} +0 -0
  240. /package/dist/{outlinedInputClasses-Cz4pnn0X.js → outlinedInputClasses-Z5R6RJE3.js} +0 -0
  241. /package/dist/{selectClasses-DvT1febA.js → selectClasses-vjNpSSyQ.js} +0 -0
  242. /package/dist/{svgIconClasses-D46YUMKp.js → svgIconClasses-BtHvkhy5.js} +0 -0
  243. /package/dist/{tabClasses-KqPlYv0c.js → tabClasses-CmFw6sbs.js} +0 -0
  244. /package/dist/{typographyClasses-CFf0OFiD.js → typographyClasses-CspzYrIn.js} +0 -0
  245. /package/dist/{useControlled-2-C6cXjG.js → useControlled-DuSwFVhD.js} +0 -0
  246. /package/dist/{useFormControl-B4z6ONhx.js → useFormControl-bYnTwZE5.js} +0 -0
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ import { MediaItemType } from './types';
3
+ export declare const DefaultMediaItem: React.FC<{
4
+ item: MediaItemType;
5
+ onClick?: () => void;
6
+ style?: React.CSSProperties;
7
+ objectFit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
8
+ disableVideoControls?: boolean;
9
+ }>;
@@ -0,0 +1,34 @@
1
+ import e from "../s-lazy-image/s-lazy-image.js";
2
+ import "react";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { Box as n } from "@mui/material";
5
+ //#region lib/s-image-modal/default-media-item.tsx
6
+ var r = ({ item: r, onClick: i, style: a = {}, objectFit: o = "contain", disableVideoControls: s = !1 }) => r.type === "video" ? /* @__PURE__ */ t(n, {
7
+ component: "video",
8
+ onClick: i,
9
+ controls: !s,
10
+ sx: {
11
+ width: "100%",
12
+ height: "100%",
13
+ objectFit: o,
14
+ bgcolor: "background.paper",
15
+ ...a
16
+ },
17
+ children: /* @__PURE__ */ t("source", {
18
+ src: r.url,
19
+ type: "video/mp4"
20
+ })
21
+ }) : /* @__PURE__ */ t(e, {
22
+ src: r.url,
23
+ alt: r.title ?? "",
24
+ onClick: i,
25
+ style: {
26
+ width: "100%",
27
+ height: "100%",
28
+ objectFit: o,
29
+ backgroundColor: "background.paper",
30
+ ...a
31
+ }
32
+ });
33
+ //#endregion
34
+ export { r as DefaultMediaItem };
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ import { MediaItemType, SImageModalProps } from './types';
3
+ /**
4
+ * Stacked-card thumbnail dock pinned to the bottom of the modal
5
+ */
6
+ export declare const ImageModalThumbnailDock: React.FC<{
7
+ mediaItems: MediaItemType[];
8
+ selectedItem: MediaItemType;
9
+ onSelect: (item: MediaItemType) => void;
10
+ renderMediaItem?: SImageModalProps['renderMediaItem'];
11
+ }>;
@@ -0,0 +1,102 @@
1
+ import { n as e } from "../theme-primitives-7ruiI7gY.js";
2
+ import { DefaultMediaItem as t } from "./default-media-item.js";
3
+ import "react";
4
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
+ import { Box as i, Paper as a, Stack as o } from "@mui/material";
6
+ import { motion as s } from "framer-motion";
7
+ //#region lib/s-image-modal/image-modal-thumbnail-dock.tsx
8
+ var c = ({ mediaItems: c, selectedItem: l, onSelect: u, renderMediaItem: d }) => /* @__PURE__ */ n(i, {
9
+ sx: {
10
+ position: "fixed",
11
+ zIndex: 1502,
12
+ left: "50%",
13
+ bottom: 16,
14
+ transform: "translateX(-50%)"
15
+ },
16
+ children: /* @__PURE__ */ n(a, {
17
+ sx: {
18
+ position: "relative",
19
+ borderRadius: 1,
20
+ bgcolor: "background.paper",
21
+ border: "1px solid",
22
+ borderColor: "divider",
23
+ backdropFilter: "blur(12px)",
24
+ px: 1.5,
25
+ py: 1
26
+ },
27
+ children: /* @__PURE__ */ n(o, {
28
+ direction: "row",
29
+ spacing: -1.5,
30
+ sx: { alignItems: "center" },
31
+ children: c.map((a, o) => {
32
+ let f = l.id === a.id, p = o % 2 == 0 ? -15 : 15, m = () => u(a);
33
+ return /* @__PURE__ */ r(s.div, {
34
+ onClick: (e) => {
35
+ e.stopPropagation(), m();
36
+ },
37
+ style: {
38
+ position: "relative",
39
+ width: 40,
40
+ height: 40,
41
+ borderRadius: e.md,
42
+ overflow: "hidden",
43
+ flexShrink: 0,
44
+ zIndex: f ? 30 : c.length - o,
45
+ border: f ? "1px solid" : void 0,
46
+ borderColor: f ? "divider" : void 0,
47
+ cursor: "pointer"
48
+ },
49
+ initial: { rotate: p },
50
+ animate: {
51
+ scale: f ? 1.2 : 1,
52
+ rotate: f ? 0 : p,
53
+ y: f ? -8 : 0
54
+ },
55
+ whileHover: {
56
+ scale: 1.3,
57
+ rotate: 0,
58
+ y: -10,
59
+ transition: {
60
+ type: "spring",
61
+ stiffness: 400,
62
+ damping: 25
63
+ }
64
+ },
65
+ children: [
66
+ d ? d(a, m) : /* @__PURE__ */ n(t, {
67
+ item: a,
68
+ objectFit: "cover",
69
+ style: {
70
+ width: "100%",
71
+ height: "100%",
72
+ borderRadius: e.none,
73
+ pointerEvents: a.type === "video" ? "none" : "auto"
74
+ },
75
+ disableVideoControls: !0
76
+ }),
77
+ /* @__PURE__ */ n(i, { sx: {
78
+ position: "absolute",
79
+ inset: 0,
80
+ background: (e) => `linear-gradient(to bottom, transparent, ${(e.vars ?? e).palette.action.hover}, ${(e.vars ?? e).palette.action.selected})`,
81
+ pointerEvents: "none"
82
+ } }),
83
+ f && /* @__PURE__ */ n(s.div, {
84
+ layoutId: "activeGlow",
85
+ style: {
86
+ position: "absolute",
87
+ inset: -8,
88
+ background: "primary.main",
89
+ filter: "blur(16px)"
90
+ },
91
+ initial: { opacity: 0 },
92
+ animate: { opacity: 1 },
93
+ transition: { duration: .2 }
94
+ })
95
+ ]
96
+ }, a.id);
97
+ })
98
+ })
99
+ })
100
+ });
101
+ //#endregion
102
+ export { c as ImageModalThumbnailDock };
@@ -1,3 +1,3 @@
1
1
  export { default, default as SImageModal } from './s-image-modal';
2
- export type { SImageModalProps, MediaItemType } from './s-image-modal';
3
- export { DefaultMediaItem } from './s-image-modal';
2
+ export type { SImageModalProps, MediaItemType } from './types';
3
+ export { DefaultMediaItem } from './default-media-item';
@@ -1,2 +1,3 @@
1
- import { n as e, t } from "../s-image-modal-DA3DBNbv.js";
1
+ import { t as e } from "../s-image-modal-hhRD4727.js";
2
+ import { DefaultMediaItem as t } from "./default-media-item.js";
2
3
  export { t as DefaultMediaItem, e as SImageModal, e as default };
@@ -1,55 +1,4 @@
1
1
  import { default as React } from 'react';
2
- import { ModalProps } from '@mui/material';
3
- /**
4
- * Interface for individual media items (images/videos) in the modal
5
- */
6
- export interface MediaItemType {
7
- /** Unique identifier for the media item */
8
- id: string;
9
- /** Type of media ('image' or 'video') */
10
- type: string;
11
- /** Optional title displayed in overlays */
12
- title?: string;
13
- /** Optional description displayed in overlays */
14
- desc?: string;
15
- /** URL source for the media */
16
- url: string;
17
- /** Grid column span for layout (defaults to 1) */
18
- colSpan?: number;
19
- /** Grid row span for layout (defaults to 2) */
20
- rowSpan?: number;
21
- }
22
- /**
23
- * Props for SImageModal component
24
- */
25
- export interface SImageModalProps {
26
- /** Currently selected media item to display */
27
- selectedItem?: MediaItemType | null;
28
- /** Whether the modal is open */
29
- isOpen: boolean;
30
- /** Function to close the modal */
31
- onClose: () => void;
32
- /** Function to change the selected item (for navigation) */
33
- onItemChange?: (item: MediaItemType) => void;
34
- /** Array of all media items for navigation (optional - if provided, enables prev/next navigation) */
35
- mediaItems?: MediaItemType[];
36
- /** Custom component to render media items */
37
- renderMediaItem?: (item: MediaItemType, onClick?: () => void) => React.ReactNode;
38
- /** Whether to show navigation arrows */
39
- showNavigation?: boolean;
40
- /** Whether to show the thumbnail dock */
41
- showThumbnailDock?: boolean;
42
- /** Whether to show the item counter */
43
- showCounter?: boolean;
44
- /** Custom modal styling */
45
- modalSx?: ModalProps['sx'];
46
- }
47
- export declare const DefaultMediaItem: React.FC<{
48
- item: MediaItemType;
49
- onClick?: () => void;
50
- style?: React.CSSProperties;
51
- objectFit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
52
- disableVideoControls?: boolean;
53
- }>;
2
+ import { SImageModalProps } from './types';
54
3
  export declare const SImageModal: React.FC<SImageModalProps>;
55
4
  export default SImageModal;
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../s-image-modal-DA3DBNbv.js";
2
- export { t as DefaultMediaItem, e as SImageModal, e as default };
1
+ import { t as e } from "../s-image-modal-hhRD4727.js";
2
+ export { e as SImageModal, e as default };
@@ -0,0 +1,52 @@
1
+ import { default as React } from 'react';
2
+ import { ModalProps } from '@mui/material';
3
+ /**
4
+ * Interface for individual media items (images/videos) in the modal
5
+ */
6
+ export interface MediaItemType {
7
+ /** Unique identifier for the media item */
8
+ id: string;
9
+ /** Type of media ('image' or 'video') */
10
+ type: string;
11
+ /** Optional title displayed in overlays */
12
+ title?: string;
13
+ /** Optional description displayed in overlays */
14
+ desc?: string;
15
+ /** URL source for the media */
16
+ url: string;
17
+ /** Grid column span for layout (defaults to 1) */
18
+ colSpan?: number;
19
+ /** Grid row span for layout (defaults to 2) */
20
+ rowSpan?: number;
21
+ }
22
+ /**
23
+ * Props for SImageModal component
24
+ */
25
+ export interface SImageModalProps {
26
+ /** Currently selected media item to display */
27
+ selectedItem?: MediaItemType | null;
28
+ /** Whether the modal is open */
29
+ isOpen: boolean;
30
+ /** Function to close the modal */
31
+ onClose: () => void;
32
+ /** Function to change the selected item (for navigation) */
33
+ onItemChange?: (item: MediaItemType) => void;
34
+ /** Array of all media items for navigation (optional - if provided, enables prev/next navigation) */
35
+ mediaItems?: MediaItemType[];
36
+ /** Custom component to render media items */
37
+ renderMediaItem?: (item: MediaItemType, onClick?: () => void) => React.ReactNode;
38
+ /** Whether to show navigation arrows */
39
+ showNavigation?: boolean;
40
+ /** Whether to show the thumbnail dock */
41
+ showThumbnailDock?: boolean;
42
+ /** Whether to show the item counter */
43
+ showCounter?: boolean;
44
+ /** Custom modal styling */
45
+ modalSx?: ModalProps['sx'];
46
+ /** Accessible text for the close button */
47
+ closeText?: string;
48
+ /** Accessible text for the previous-image navigation button */
49
+ previousText?: string;
50
+ /** Accessible text for the next-image navigation button */
51
+ nextText?: string;
52
+ }
File without changes
@@ -0,0 +1,29 @@
1
+ import { MediaItemType } from './types';
2
+ interface UseImageModalNavigationParams {
3
+ /** Currently selected media item (controlled) */
4
+ selectedItem?: MediaItemType | null;
5
+ /** Whether the modal is open */
6
+ isOpen: boolean;
7
+ /** Function to close the modal */
8
+ onClose: () => void;
9
+ /** Function to change the selected item (for controlled navigation) */
10
+ onItemChange?: (item: MediaItemType) => void;
11
+ /** Array of all media items for navigation */
12
+ mediaItems: MediaItemType[];
13
+ /** Whether navigation is enabled */
14
+ showNavigation: boolean;
15
+ }
16
+ /**
17
+ * Encapsulates the selection state and prev/next/keyboard navigation of SImageModal.
18
+ * Falls back to internal state when `onItemChange` is not provided (uncontrolled mode).
19
+ */
20
+ export declare function useImageModalNavigation({ selectedItem, isOpen, onClose, onItemChange, mediaItems, showNavigation, }: UseImageModalNavigationParams): {
21
+ currentSelectedItem: MediaItemType | null;
22
+ navigationEnabled: boolean;
23
+ currentIndex: number;
24
+ totalItems: number;
25
+ selectItem: (item: MediaItemType) => void;
26
+ goToPrevious: () => void;
27
+ goToNext: () => void;
28
+ };
29
+ export {};
@@ -0,0 +1,57 @@
1
+ import { useCallback as e, useEffect as t, useState as n } from "react";
2
+ //#region lib/s-image-modal/use-image-modal-navigation.ts
3
+ function r({ selectedItem: r, isOpen: i, onClose: a, onItemChange: o, mediaItems: s, showNavigation: c }) {
4
+ let [l, u] = n(r ?? null), d = r ?? l;
5
+ t(() => {
6
+ r && u(r);
7
+ }, [r]);
8
+ let f = !!(c && s.length > 1 && d), p = d ? s.findIndex((e) => e.id === d.id) : -1, m = s.length, h = e((e) => {
9
+ o ? o(e) : u(e);
10
+ }, [o]), g = e(() => {
11
+ f && p > 0 && h(s[p - 1]);
12
+ }, [
13
+ f,
14
+ p,
15
+ s,
16
+ h
17
+ ]), _ = e(() => {
18
+ f && p < m - 1 && h(s[p + 1]);
19
+ }, [
20
+ f,
21
+ p,
22
+ m,
23
+ s,
24
+ h
25
+ ]);
26
+ return t(() => {
27
+ let e = (e) => {
28
+ if (i) switch (e.key) {
29
+ case "ArrowLeft":
30
+ g();
31
+ break;
32
+ case "ArrowRight":
33
+ _();
34
+ break;
35
+ case "Escape":
36
+ a();
37
+ break;
38
+ }
39
+ };
40
+ return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
41
+ }, [
42
+ i,
43
+ g,
44
+ _,
45
+ a
46
+ ]), {
47
+ currentSelectedItem: d,
48
+ navigationEnabled: f,
49
+ currentIndex: p,
50
+ totalItems: m,
51
+ selectItem: h,
52
+ goToPrevious: g,
53
+ goToNext: _
54
+ };
55
+ }
56
+ //#endregion
57
+ export { r as useImageModalNavigation };
@@ -0,0 +1,243 @@
1
+ import { t as e } from "./createSvgIcon-HW-tbFcL.js";
2
+ import { t } from "./ChevronRight-cBbrlMYh.js";
3
+ import { t as n } from "./Close-DRS0T6Yu.js";
4
+ import { DefaultMediaItem as r } from "./s-image-modal/default-media-item.js";
5
+ import { ImageModalThumbnailDock as i } from "./s-image-modal/image-modal-thumbnail-dock.js";
6
+ import { useImageModalNavigation as a } from "./s-image-modal/use-image-modal-navigation.js";
7
+ import "react";
8
+ import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
9
+ import { Box as l, IconButton as u, Modal as d, Paper as f, Typography as p } from "@mui/material";
10
+ import { AnimatePresence as m, motion as h } from "framer-motion";
11
+ //#region ../../node_modules/@mui/icons-material/ChevronLeft.mjs
12
+ var g = e(/* @__PURE__ */ s("path", { d: "M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z" }), "ChevronLeft"), _ = ({ selectedItem: e, isOpen: _, onClose: v, onItemChange: y, mediaItems: b = [], renderMediaItem: x, showNavigation: S = !0, showThumbnailDock: C = !0, showCounter: w = !0, modalSx: T = {}, closeText: E = "Close", previousText: D = "Previous image", nextText: O = "Next image" }) => {
13
+ let { currentSelectedItem: k, navigationEnabled: A, currentIndex: j, totalItems: M, selectItem: N, goToPrevious: P, goToNext: F } = a({
14
+ selectedItem: e,
15
+ isOpen: _,
16
+ onClose: v,
17
+ onItemChange: y,
18
+ mediaItems: b,
19
+ showNavigation: S
20
+ });
21
+ return !_ || !k ? null : /* @__PURE__ */ s(d, {
22
+ open: _,
23
+ onClose: v,
24
+ sx: {
25
+ zIndex: (e) => e.zIndex.modal + 100,
26
+ ...T
27
+ },
28
+ slotProps: { backdrop: { sx: {
29
+ backdropFilter: "blur(8px)",
30
+ zIndex: (e) => e.zIndex.modal + 99
31
+ } } },
32
+ children: /* @__PURE__ */ c(l, { children: [/* @__PURE__ */ s(h.div, {
33
+ initial: { scale: .98 },
34
+ animate: { scale: 1 },
35
+ exit: { scale: .98 },
36
+ transition: {
37
+ type: "spring",
38
+ stiffness: 400,
39
+ damping: 30
40
+ },
41
+ children: /* @__PURE__ */ c(f, {
42
+ sx: {
43
+ position: "fixed",
44
+ inset: 0,
45
+ width: "100%",
46
+ minHeight: "100vh",
47
+ borderRadius: 0,
48
+ overflow: "hidden",
49
+ zIndex: (e) => e.zIndex.modal + 101
50
+ },
51
+ children: [
52
+ /* @__PURE__ */ s(l, {
53
+ sx: {
54
+ height: "100%",
55
+ display: "flex",
56
+ flexDirection: "column"
57
+ },
58
+ children: /* @__PURE__ */ s(l, {
59
+ sx: {
60
+ flex: 1,
61
+ p: {
62
+ xs: 1,
63
+ sm: 2,
64
+ md: 3
65
+ },
66
+ display: "flex",
67
+ alignItems: "center",
68
+ justifyContent: "center",
69
+ bgcolor: "background.default"
70
+ },
71
+ children: /* @__PURE__ */ s(m, {
72
+ mode: "wait",
73
+ children: /* @__PURE__ */ s(h.div, {
74
+ style: { position: "relative" },
75
+ initial: {
76
+ y: 20,
77
+ scale: .97
78
+ },
79
+ animate: {
80
+ y: 0,
81
+ scale: 1,
82
+ transition: {
83
+ type: "spring",
84
+ stiffness: 500,
85
+ damping: 30,
86
+ mass: .5
87
+ }
88
+ },
89
+ exit: {
90
+ y: 20,
91
+ scale: .97,
92
+ transition: { duration: .15 }
93
+ },
94
+ children: /* @__PURE__ */ c(f, {
95
+ onClick: (e) => e.stopPropagation(),
96
+ sx: {
97
+ position: "relative",
98
+ width: "100%",
99
+ aspectRatio: "16 / 9",
100
+ maxWidth: {
101
+ xs: "95%",
102
+ sm: "85%",
103
+ md: 960
104
+ },
105
+ height: "70vh",
106
+ borderRadius: 1,
107
+ border: "1px solid",
108
+ borderColor: "divider",
109
+ overflow: "hidden"
110
+ },
111
+ children: [x ? x(k) : /* @__PURE__ */ s(r, { item: k }), (k.title || k.desc) && /* @__PURE__ */ c(l, {
112
+ sx: {
113
+ position: "absolute",
114
+ left: 0,
115
+ right: 0,
116
+ bottom: 0,
117
+ p: {
118
+ xs: 1.5,
119
+ sm: 2,
120
+ md: 3
121
+ },
122
+ color: "common.white",
123
+ background: "linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.35) 45%, transparent)"
124
+ },
125
+ onClick: (e) => e.stopPropagation(),
126
+ children: [k.title && /* @__PURE__ */ s(p, {
127
+ variant: "h6",
128
+ sx: { fontSize: {
129
+ xs: 14,
130
+ sm: 18,
131
+ md: 20
132
+ } },
133
+ children: k.title
134
+ }), k.desc && /* @__PURE__ */ s(p, {
135
+ variant: "body2",
136
+ sx: { mt: .5 },
137
+ children: k.desc
138
+ })]
139
+ })]
140
+ })
141
+ }, k.id)
142
+ })
143
+ })
144
+ }),
145
+ /* @__PURE__ */ s(u, {
146
+ "aria-label": E,
147
+ onClick: v,
148
+ sx: {
149
+ position: "absolute",
150
+ top: {
151
+ xs: 8,
152
+ sm: 10,
153
+ md: 12
154
+ },
155
+ right: {
156
+ xs: 8,
157
+ sm: 10,
158
+ md: 12
159
+ },
160
+ zIndex: (e) => e.zIndex.modal + 102
161
+ },
162
+ children: /* @__PURE__ */ s(n, {})
163
+ }),
164
+ w && A && /* @__PURE__ */ c(l, {
165
+ sx: {
166
+ position: "absolute",
167
+ top: {
168
+ xs: 8,
169
+ sm: 10,
170
+ md: 12
171
+ },
172
+ left: {
173
+ xs: 8,
174
+ sm: 10,
175
+ md: 12
176
+ },
177
+ zIndex: (e) => e.zIndex.modal + 102,
178
+ padding: 1,
179
+ px: 2,
180
+ fontSize: {
181
+ xs: 14,
182
+ sm: 16
183
+ },
184
+ color: "text.primary"
185
+ },
186
+ children: [
187
+ j + 1,
188
+ " / ",
189
+ M
190
+ ]
191
+ }),
192
+ A && /* @__PURE__ */ c(o, { children: [/* @__PURE__ */ s(u, {
193
+ "aria-label": D,
194
+ onClick: (e) => {
195
+ e.stopPropagation(), P();
196
+ },
197
+ disabled: j === 0,
198
+ sx: {
199
+ position: "absolute",
200
+ left: {
201
+ xs: 8,
202
+ sm: 10,
203
+ md: 12
204
+ },
205
+ top: "50%",
206
+ transform: "translateY(-50%)",
207
+ zIndex: (e) => e.zIndex.modal + 102,
208
+ "&:disabled": { opacity: .5 }
209
+ },
210
+ children: /* @__PURE__ */ s(g, {})
211
+ }), /* @__PURE__ */ s(u, {
212
+ "aria-label": O,
213
+ onClick: (e) => {
214
+ e.stopPropagation(), F();
215
+ },
216
+ disabled: j === M - 1,
217
+ sx: {
218
+ position: "absolute",
219
+ right: {
220
+ xs: 8,
221
+ sm: 10,
222
+ md: 12
223
+ },
224
+ top: "50%",
225
+ transform: "translateY(-50%)",
226
+ zIndex: (e) => e.zIndex.modal + 102,
227
+ "&:disabled": { opacity: .5 }
228
+ },
229
+ children: /* @__PURE__ */ s(t, {})
230
+ })] })
231
+ ]
232
+ })
233
+ }), C && A && b.length > 1 && /* @__PURE__ */ s(i, {
234
+ mediaItems: b,
235
+ selectedItem: k,
236
+ onSelect: N,
237
+ renderMediaItem: x
238
+ })] })
239
+ });
240
+ };
241
+ _.displayName = "SImageModal";
242
+ //#endregion
243
+ export { _ as t };
@@ -1,4 +1,4 @@
1
- import { t as e } from "../InfoOutlined-C1AW3f5V.js";
1
+ import { t as e } from "../InfoOutlined-BCzG-5py.js";
2
2
  import "react";
3
3
  import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
4
  import { Stack as r, Tooltip as i, Typography as a } from "@mui/material";
@@ -1,2 +1,2 @@
1
- import { n as e, r as t, t as n } from "../s-language-switcher-vievp2VS.js";
1
+ import { n as e, r as t, t as n } from "../s-language-switcher-BKK0r8Kh.js";
2
2
  export { n as SLanguagePopover, e as SLanguageSwitcher, e as default, t as defaultLanguageOptions };
@@ -1,2 +1,2 @@
1
- import { n as e, r as t, t as n } from "../s-language-switcher-vievp2VS.js";
1
+ import { n as e, r as t, t as n } from "../s-language-switcher-BKK0r8Kh.js";
2
2
  export { n as SLanguagePopover, e as SLanguageSwitcher, e as default, t as defaultLanguageOptions };
@@ -3,11 +3,11 @@ import { _ as t } from "./createTheme-Bnw5w28O.js";
3
3
  import { o as n, r, t as i } from "./memoTheme-QMocAblm.js";
4
4
  import { t as a } from "./clsx-Bv8WXdlr.js";
5
5
  import { t as o } from "./styled-BTDmdi4c.js";
6
- import { u as s } from "./Modal-C1VRVWBZ.js";
7
- import { t as c } from "./Menu-C-0KEauj.js";
8
- import { t as l } from "./Typography-EsraKPZO.js";
6
+ import { u as s } from "./Modal-Cu5Cgh-q.js";
7
+ import { t as c } from "./Menu-CbHevx8q.js";
8
+ import { t as l } from "./Typography-DqtTB0ZJ.js";
9
9
  import { SIconButton as u } from "./s-icon-button/s-icon-button.js";
10
- import { r as d, t as f } from "./MenuItem-DWivWkNb.js";
10
+ import { r as d, t as f } from "./MenuItem-CCClg9Si.js";
11
11
  import * as p from "react";
12
12
  import m, { createElement as h } from "react";
13
13
  import { jsx as g, jsxs as _ } from "react/jsx-runtime";
@@ -1,2 +1,2 @@
1
- import { t as e } from "../s-localization-provider-YCsec18c.js";
1
+ import { t as e } from "../s-localization-provider-DDO9UEu_.js";
2
2
  export { e as SLocalizationProvider, e as default };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../s-localization-provider-YCsec18c.js";
1
+ import { t as e } from "../s-localization-provider-DDO9UEu_.js";
2
2
  export { e as SLocalizationProvider, e as default };