@solostylist/ui-kit 1.0.167 → 1.0.169

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 (248) hide show
  1. package/dist/{Typography-B7LOtCzI.js → Typography-C8jwvSWe.js} +1 -1
  2. package/dist/main.d.ts +5 -3
  3. package/dist/main.js +187 -173
  4. package/dist/s-accordion/index.js +2 -2
  5. package/dist/s-accordion/s-accordion.d.ts +17 -1
  6. package/dist/s-accordion/s-accordion.js +252 -238
  7. package/dist/s-action-overlay/index.js +1 -1
  8. package/dist/s-action-overlay/s-action-overlay.d.ts +34 -1
  9. package/dist/s-action-overlay/s-action-overlay.js +67 -55
  10. package/dist/s-ai-tool-bar/index.d.ts +2 -0
  11. package/dist/s-ai-tool-bar/index.js +3 -2
  12. package/dist/s-ai-tool-bar/s-ai-tool-bar.d.ts +33 -22
  13. package/dist/s-ai-tool-bar/s-ai-tool-bar.js +295 -247
  14. package/dist/s-autocomplete/index.js +2 -2
  15. package/dist/s-autocomplete/s-autocomplete.d.ts +13 -15
  16. package/dist/s-autocomplete/s-autocomplete.js +25 -17
  17. package/dist/s-avatar/index.js +2 -2
  18. package/dist/s-avatar/s-avatar.d.ts +16 -1
  19. package/dist/s-avatar/s-avatar.js +23 -10
  20. package/dist/s-blur-text/index.js +2 -2
  21. package/dist/s-blur-text/s-blur-text.d.ts +4 -13
  22. package/dist/s-blur-text/s-blur-text.js +57 -51
  23. package/dist/s-breadcrumbs/index.js +2 -2
  24. package/dist/s-breadcrumbs/s-breadcrumbs.d.ts +20 -1
  25. package/dist/s-breadcrumbs/s-breadcrumbs.js +39 -30
  26. package/dist/s-button/index.js +2 -2
  27. package/dist/s-button/s-button.d.ts +7 -1
  28. package/dist/s-button/s-button.js +15 -5
  29. package/dist/s-button-link/index.js +2 -2
  30. package/dist/s-button-link/s-button-link.d.ts +12 -26
  31. package/dist/s-button-link/s-button-link.js +36 -26
  32. package/dist/s-carousel/index.js +1 -1
  33. package/dist/s-carousel/s-carousel.d.ts +11 -1
  34. package/dist/s-carousel/s-carousel.js +233 -223
  35. package/dist/s-category-card/index.js +2 -2
  36. package/dist/s-category-card/s-category-card.d.ts +28 -1
  37. package/dist/s-category-card/s-category-card.js +77 -58
  38. package/dist/s-chat-input/index.js +2 -2
  39. package/dist/s-chat-input/s-chat-input.d.ts +12 -1
  40. package/dist/s-chat-input/s-chat-input.js +92 -82
  41. package/dist/s-chat-message/index.js +2 -2
  42. package/dist/s-chat-message/s-chat-message.d.ts +22 -1
  43. package/dist/s-chat-message/s-chat-message.js +144 -133
  44. package/dist/s-checkbox/index.js +2 -2
  45. package/dist/s-checkbox/s-checkbox.d.ts +2 -15
  46. package/dist/s-checkbox/s-checkbox.js +20 -10
  47. package/dist/s-chip/index.js +2 -2
  48. package/dist/s-chip/s-chip.d.ts +7 -1
  49. package/dist/s-chip/s-chip.js +15 -5
  50. package/dist/s-chips/index.js +2 -2
  51. package/dist/s-chips/s-chips.d.ts +5 -18
  52. package/dist/s-chips/s-chips.js +56 -41
  53. package/dist/s-comment-message/index.js +2 -2
  54. package/dist/s-comment-message/s-comment-message.d.ts +26 -1
  55. package/dist/s-comment-message/s-comment-message.js +95 -89
  56. package/dist/s-copyable-text/index.js +1 -1
  57. package/dist/s-copyable-text/s-copyable-text.d.ts +9 -36
  58. package/dist/s-copyable-text/s-copyable-text.js +31 -21
  59. package/dist/s-countdown/index.d.ts +3 -2
  60. package/dist/s-countdown/index.js +4 -3
  61. package/dist/s-countdown/s-count-box.d.ts +39 -0
  62. package/dist/s-countdown/s-count-box.js +112 -0
  63. package/dist/s-countdown/s-count-down.d.ts +6 -50
  64. package/dist/s-countdown/s-count-down.js +110 -175
  65. package/dist/s-data-table/index.js +2 -2
  66. package/dist/s-data-table/s-data-table.d.ts +9 -65
  67. package/dist/s-data-table/s-data-table.js +381 -371
  68. package/dist/s-date-picker/index.js +2 -2
  69. package/dist/s-date-picker/s-date-picker.d.ts +6 -17
  70. package/dist/s-date-picker/s-date-picker.js +124 -107
  71. package/dist/s-datetime-picker/index.js +2 -2
  72. package/dist/s-datetime-picker/s-datetime-picker.d.ts +5 -16
  73. package/dist/s-datetime-picker/s-datetime-picker.js +897 -887
  74. package/dist/s-dialog/index.js +2 -2
  75. package/dist/s-dialog/s-dialog.d.ts +3 -16
  76. package/dist/s-dialog/s-dialog.js +32 -23
  77. package/dist/s-dialog-confirm/index.js +3 -3
  78. package/dist/s-dialog-confirm/s-dialog-confirm.d.ts +5 -13
  79. package/dist/s-dialog-confirm/s-dialog-confirm.js +55 -48
  80. package/dist/s-dialog-message/index.js +4 -4
  81. package/dist/s-dialog-message/s-dialog-message.d.ts +5 -15
  82. package/dist/s-dialog-message/s-dialog-message.js +45 -38
  83. package/dist/s-empty/index.js +2 -2
  84. package/dist/s-empty/s-empty.d.ts +5 -20
  85. package/dist/s-empty/s-empty.js +14 -4
  86. package/dist/s-error/index.js +2 -2
  87. package/dist/s-error/s-error.d.ts +5 -20
  88. package/dist/s-error/s-error.js +16 -6
  89. package/dist/s-error-layout/index.js +2 -2
  90. package/dist/s-error-layout/s-error-layout.d.ts +6 -1
  91. package/dist/s-error-layout/s-error-layout.js +60 -51
  92. package/dist/s-file-dropzone/index.js +2 -2
  93. package/dist/s-file-dropzone/s-file-dropzone.d.ts +6 -51
  94. package/dist/s-file-dropzone/s-file-dropzone.js +64 -54
  95. package/dist/s-file-icon/index.js +2 -2
  96. package/dist/s-file-icon/s-file-icon.d.ts +5 -25
  97. package/dist/s-file-icon/s-file-icon.js +14 -8
  98. package/dist/s-flex-box/index.js +2 -2
  99. package/dist/s-flex-box/s-flex-box.d.ts +10 -1
  100. package/dist/s-flex-box/s-flex-box.js +14 -4
  101. package/dist/s-form/index.js +2 -2
  102. package/dist/s-form/s-form.d.ts +5 -14
  103. package/dist/s-form/s-form.js +19 -9
  104. package/dist/s-gallery/index.js +33 -3
  105. package/dist/s-gallery/s-gallery.d.ts +3 -36
  106. package/dist/s-gallery/s-gallery.js +108 -78
  107. package/dist/s-glow-button/s-glow-button.d.ts +6 -42
  108. package/dist/s-glow-button/s-glow-button.js +29 -47
  109. package/dist/s-gradient-icon/index.d.ts +1 -1
  110. package/dist/s-gradient-icon/index.js +1 -1
  111. package/dist/s-gradient-icon/s-gradient-icon.d.ts +8 -68
  112. package/dist/s-gradient-icon/s-gradient-icon.js +54 -44
  113. package/dist/s-i18n-provider/index.js +1 -1
  114. package/dist/s-i18n-provider/s-i18n-provider.d.ts +5 -33
  115. package/dist/s-i18n-provider/s-i18n-provider.js +25 -15
  116. package/dist/s-icon-button/index.js +2 -2
  117. package/dist/s-icon-button/s-icon-button.d.ts +6 -19
  118. package/dist/s-icon-button/s-icon-button.js +14 -4
  119. package/dist/s-image-comparison/s-image-comparison.js +50 -45
  120. package/dist/s-image-modal/index.js +3 -3
  121. package/dist/s-image-modal/s-image-modal.d.ts +4 -20
  122. package/dist/s-image-modal/s-image-modal.js +150 -135
  123. package/dist/s-item-not-found/index.js +2 -2
  124. package/dist/s-item-not-found/s-item-not-found.d.ts +14 -1
  125. package/dist/s-item-not-found/s-item-not-found.js +21 -10
  126. package/dist/s-label/index.js +2 -2
  127. package/dist/s-label/s-label.d.ts +9 -25
  128. package/dist/s-label/s-label.js +19 -9
  129. package/dist/s-language-switcher/index.js +3 -3
  130. package/dist/s-language-switcher/s-language-switcher.d.ts +20 -33
  131. package/dist/s-language-switcher/s-language-switcher.js +137 -115
  132. package/dist/s-lazy-image/index.js +10 -2
  133. package/dist/s-lazy-image/s-lazy-image.d.ts +12 -58
  134. package/dist/s-lazy-image/s-lazy-image.js +53 -58
  135. package/dist/s-localization-provider/index.js +2 -2
  136. package/dist/s-localization-provider/s-localization-provider.d.ts +6 -27
  137. package/dist/s-localization-provider/s-localization-provider.js +157 -149
  138. package/dist/s-moving-border/index.js +2 -2
  139. package/dist/s-moving-border/s-moving-border.d.ts +3 -33
  140. package/dist/s-moving-border/s-moving-border.js +65 -55
  141. package/dist/s-multi-select/index.js +2 -2
  142. package/dist/s-multi-select/s-multi-select.d.ts +5 -15
  143. package/dist/s-multi-select/s-multi-select.js +54 -45
  144. package/dist/s-no-ssr/index.js +2 -2
  145. package/dist/s-no-ssr/s-no-ssr.d.ts +5 -33
  146. package/dist/s-no-ssr/s-no-ssr.js +21 -11
  147. package/dist/s-overlay-scrollbar/index.js +2 -2
  148. package/dist/s-overlay-scrollbar/s-overlay-scrollbar.d.ts +10 -1
  149. package/dist/s-overlay-scrollbar/s-overlay-scrollbar.js +16 -11
  150. package/dist/s-pagination/index.js +2 -2
  151. package/dist/s-pagination/s-pagination.d.ts +5 -23
  152. package/dist/s-pagination/s-pagination.js +17 -11
  153. package/dist/s-pixel-reveal/index.js +2 -2
  154. package/dist/s-pixel-reveal/s-pixel-reveal.d.ts +15 -1
  155. package/dist/s-pixel-reveal/s-pixel-reveal.js +83 -78
  156. package/dist/s-radial-pulse-animate/index.js +2 -2
  157. package/dist/s-radial-pulse-animate/s-radial-pulse-animate.d.ts +12 -1
  158. package/dist/s-radial-pulse-animate/s-radial-pulse-animate.js +52 -42
  159. package/dist/s-rating/index.js +2 -2
  160. package/dist/s-rating/s-rating.d.ts +7 -1
  161. package/dist/s-rating/s-rating.js +15 -5
  162. package/dist/s-review/index.js +2 -2
  163. package/dist/s-review/s-review.d.ts +25 -1
  164. package/dist/s-review/s-review.js +104 -97
  165. package/dist/s-scroll-reveal/index.js +2 -2
  166. package/dist/s-scroll-reveal/s-scroll-reveal.d.ts +17 -36
  167. package/dist/s-scroll-reveal/s-scroll-reveal.js +43 -33
  168. package/dist/s-scroll-to-top/index.js +2 -2
  169. package/dist/s-scroll-to-top/s-scroll-to-top.d.ts +12 -17
  170. package/dist/s-scroll-to-top/s-scroll-to-top.js +20 -15
  171. package/dist/s-scroll-velocity/index.d.ts +6 -0
  172. package/dist/s-scroll-velocity/index.js +8 -0
  173. package/dist/s-scroll-velocity/package.json +5 -0
  174. package/dist/s-scroll-velocity/s-scroll-velocity.d.ts +24 -0
  175. package/dist/s-scroll-velocity/s-scroll-velocity.js +22 -0
  176. package/dist/s-scroll-velocity/scroll-velocity-container.d.ts +20 -0
  177. package/dist/s-scroll-velocity/scroll-velocity-container.js +40 -0
  178. package/dist/s-scroll-velocity/scroll-velocity-row.d.ts +27 -0
  179. package/dist/s-scroll-velocity/scroll-velocity-row.js +131 -0
  180. package/dist/s-select/index.js +2 -2
  181. package/dist/s-select/s-select.d.ts +3 -22
  182. package/dist/s-select/s-select.js +76 -72
  183. package/dist/s-select-list/index.js +2 -2
  184. package/dist/s-select-list/s-select-list.d.ts +16 -19
  185. package/dist/s-select-list/s-select-list.js +33 -28
  186. package/dist/s-skeleton/index.js +2 -2
  187. package/dist/s-skeleton/s-skeleton.d.ts +6 -22
  188. package/dist/s-skeleton/s-skeleton.js +28 -18
  189. package/dist/s-snackbar-message/index.js +4 -4
  190. package/dist/s-snackbar-message/s-snackbar-message.d.ts +5 -23
  191. package/dist/s-snackbar-message/s-snackbar-message.js +38 -31
  192. package/dist/s-spotlight-cursor/index.js +2 -2
  193. package/dist/s-spotlight-cursor/s-spotlight-cursor.d.ts +10 -44
  194. package/dist/s-spotlight-cursor/s-spotlight-cursor.js +35 -29
  195. package/dist/s-stripe/index.d.ts +4 -1
  196. package/dist/s-stripe/index.js +7 -4
  197. package/dist/s-stripe/s-stripe-cvc.d.ts +8 -0
  198. package/dist/s-stripe/s-stripe-cvc.js +15 -0
  199. package/dist/s-stripe/s-stripe-expiry.d.ts +8 -0
  200. package/dist/s-stripe/s-stripe-expiry.js +15 -0
  201. package/dist/s-stripe/s-stripe-number.d.ts +8 -0
  202. package/dist/s-stripe/s-stripe-number.js +15 -0
  203. package/dist/s-stripe/s-stripe.d.ts +6 -85
  204. package/dist/s-stripe/s-stripe.js +24 -27
  205. package/dist/s-stripe/stripe-input.js +22 -18
  206. package/dist/s-tabs/index.js +6 -6
  207. package/dist/s-tabs/s-tab-panel.d.ts +11 -1
  208. package/dist/s-tabs/s-tab-panel.js +25 -16
  209. package/dist/s-tabs/s-tab.js +9 -5
  210. package/dist/s-tabs/s-tabs.d.ts +24 -3
  211. package/dist/s-tabs/s-tabs.js +34 -25
  212. package/dist/s-text-editor/index.js +3 -3
  213. package/dist/s-text-editor/s-text-editor-toolbar.js +91 -76
  214. package/dist/s-text-editor/s-text-editor.d.ts +13 -11
  215. package/dist/s-text-editor/s-text-editor.js +44 -30
  216. package/dist/s-text-field/index.js +2 -2
  217. package/dist/s-text-field/s-text-field.d.ts +6 -15
  218. package/dist/s-text-field/s-text-field.js +38 -28
  219. package/dist/s-text-shimmer/index.js +2 -2
  220. package/dist/s-text-shimmer/s-text-shimmer.d.ts +10 -1
  221. package/dist/s-text-shimmer/s-text-shimmer.js +27 -18
  222. package/dist/s-text-truncation/index.js +2 -2
  223. package/dist/s-text-truncation/s-text-truncation.d.ts +9 -38
  224. package/dist/s-text-truncation/s-text-truncation.js +34 -20
  225. package/dist/s-theme-demo/s-theme-demo.js +238 -223
  226. package/dist/s-theme-provider/index.js +1 -1
  227. package/dist/s-theme-provider/s-theme-provider.d.ts +5 -17
  228. package/dist/s-theme-provider/s-theme-provider.js +44 -34
  229. package/dist/s-theme-switch/s-theme-switch.js +23 -19
  230. package/dist/s-tip/index.js +2 -2
  231. package/dist/s-tip/s-tip.d.ts +5 -22
  232. package/dist/s-tip/s-tip.js +22 -12
  233. package/dist/s-two-pane-layout/index.js +10 -2
  234. package/dist/s-two-pane-layout/s-two-pane-layout.d.ts +7 -1
  235. package/dist/s-two-pane-layout/s-two-pane-layout.js +58 -48
  236. package/dist/s-typewriter-text/index.js +2 -2
  237. package/dist/s-typewriter-text/s-typewriter-text.d.ts +17 -1
  238. package/dist/s-typewriter-text/s-typewriter-text.js +37 -27
  239. package/dist/s-zoom-image/index.js +10 -2
  240. package/dist/s-zoom-image/s-zoom-image.d.ts +10 -42
  241. package/dist/s-zoom-image/s-zoom-image.js +62 -52
  242. package/dist/theme/components/alert.d.ts +1436 -1436
  243. package/dist/theme/components/button.d.ts +2150 -2150
  244. package/dist/theme/components/chip.d.ts +2 -2
  245. package/dist/theme/customizations/data-display.js +1 -1
  246. package/dist/{typographyClasses-C7fhAsUD.js → typographyClasses-DDyl9mok.js} +4 -4
  247. package/dist/{useMobilePicker-DgxcRrRB.js → useMobilePicker-C1RZZUWr.js} +1 -1
  248. package/package.json +23 -6
@@ -1,5 +1,35 @@
1
- import { MediaItem as a, default as d } from "./s-gallery.js";
1
+ import { MediaItem as r, SGallery as o } from "./s-gallery.js";
2
+ try {
3
+ sgallery.displayName = "sgallery", sgallery.__docgenInfo = { description: "A sophisticated media gallery with drag-and-drop reordering, modal viewing, and multiple layout variants.", displayName: "sgallery", props: { mediaItems: { defaultValue: null, description: "Array of media items to display in the gallery", name: "mediaItems", required: !0, type: { name: "MediaItemType[]" } }, variant: { defaultValue: { value: "masonry" }, description: "Layout variant to use (default: 'masonry')", name: "variant", required: !1, type: { name: "enum", value: [{ value: '"grid"' }, { value: '"masonry"' }, { value: '"spotlight"' }, { value: '"featured"' }, { value: '"highlight"' }, { value: '"custom"' }] } }, loading: { defaultValue: { value: "false" }, description: "Loading state - shows skeleton placeholders matching the variant layout", name: "loading", required: !1, type: { name: "boolean" } }, skeletonCount: { defaultValue: { value: "6" }, description: "Number of skeleton items to show when loading (default: 6)", name: "skeletonCount", required: !1, type: { name: "number" } } } };
4
+ } catch {
5
+ }
6
+ try {
7
+ MediaItem.displayName = "MediaItem", MediaItem.__docgenInfo = { description: `MediaItem - Renders individual media items (images or videos) with optimized loading and playback.
8
+
9
+ For videos:
10
+ - Intersection Observer for viewport-based autoplay/pause
11
+ - Buffering state management with loading indicator
12
+ - Muted autoplay with loop for engagement
13
+ - Preloading for smooth playback
14
+
15
+ For images:
16
+ - Lazy loading via SLazyImage component
17
+ - Optimized object-fit handling`, displayName: "MediaItem", props: {} };
18
+ } catch {
19
+ }
20
+ try {
21
+ SGalleryProps.displayName = "SGalleryProps", SGalleryProps.__docgenInfo = { description: "Props for the SGallery component.", displayName: "SGalleryProps", props: {} };
22
+ } catch {
23
+ }
24
+ try {
25
+ MediaItemProps.displayName = "MediaItemProps", MediaItemProps.__docgenInfo = { description: "Props for individual MediaItem components", displayName: "MediaItemProps", props: {} };
26
+ } catch {
27
+ }
28
+ try {
29
+ GalleryLayoutVariant.displayName = "GalleryLayoutVariant", GalleryLayoutVariant.__docgenInfo = { description: "Built-in layout variants for the gallery", displayName: "GalleryLayoutVariant", props: {} };
30
+ } catch {
31
+ }
2
32
  export {
3
- a as MediaItem,
4
- d as default
33
+ r as MediaItem,
34
+ o as default
5
35
  };
@@ -34,7 +34,7 @@ export declare const MediaItem: React.FC<MediaItemProps>;
34
34
  */
35
35
  export type GalleryLayoutVariant = 'masonry' | 'grid' | 'spotlight' | 'featured' | 'highlight' | 'custom';
36
36
  /**
37
- * Props interface for the main SGallery component
37
+ * Props for the SGallery component.
38
38
  */
39
39
  export interface SGalleryProps {
40
40
  /** Array of media items to display in the gallery */
@@ -47,40 +47,7 @@ export interface SGalleryProps {
47
47
  skeletonCount?: number;
48
48
  }
49
49
  /**
50
- * SGallery - A sophisticated media gallery with drag-and-drop, modal viewing, and animations.
51
- *
52
- * This component provides a complete gallery solution with:
53
- *
54
- * Grid Layout Features:
55
- * - Responsive grid with customizable spans per item
56
- * - Built-in layout variants (masonry, grid, spotlight, featured, custom)
57
- * - Drag-and-drop reordering of items
58
- * - Hover overlays with title/description
59
- * - Staggered entrance animations
60
- * - Smooth layout transitions
61
- *
62
- * Modal Features:
63
- * - Full-screen lightbox experience
64
- * - Keyboard navigation (arrows, escape)
65
- * - Thumbnail dock at bottom
66
- * - Previous/next navigation
67
- * - Item counter and captions
68
- * - Backdrop blur effects
69
- *
70
- * Video Features:
71
- * - Viewport-based autoplay/pause
72
- * - Buffering state management
73
- * - Optimized performance
74
- *
75
- * Image Features:
76
- * - Lazy loading
77
- * - Responsive sizing
78
- * - Object-fit optimization
79
- *
80
- * Built with Framer Motion for smooth animations and Material-UI for theming.
81
- *
82
- * @param props - SGalleryProps with media items array and optional layout variant
83
- * @returns JSX.Element - Complete interactive gallery system
50
+ * A sophisticated media gallery with drag-and-drop reordering, modal viewing, and multiple layout variants.
84
51
  */
85
- declare const SGallery: React.FC<SGalleryProps>;
52
+ export declare const SGallery: React.FC<SGalleryProps>;
86
53
  export default SGallery;
@@ -1,51 +1,52 @@
1
1
  import { j as t } from "../jsx-runtime-OVHDjVDe.js";
2
- import { useState as y, useId as R, useEffect as v, useRef as D } from "react";
3
- import { Box as a, Paper as w, Skeleton as E, Typography as j } from "@mui/material";
4
- import { AnimatePresence as M, motion as I } from "framer-motion";
5
- import V from "../s-image-modal/s-image-modal.js";
6
- import P from "../s-lazy-image/s-lazy-image.js";
7
- const A = ({ item: o, sx: s, onClick: i }) => {
8
- const e = D(null), [n, l] = y(!1), [u, f] = y(!0);
9
- return v(() => {
10
- const c = {
2
+ import { useRef as L, useState as h, useEffect as b, useId as N } from "react";
3
+ import { Box as s, Paper as j, Skeleton as R, Typography as _ } from "@mui/material";
4
+ import { AnimatePresence as $, motion as k } from "framer-motion";
5
+ import { SImageModal as q } from "../s-image-modal/s-image-modal.js";
6
+ import "../s-lazy-image/index.js";
7
+ import A from "../s-lazy-image/s-lazy-image.js";
8
+ const w = ({ item: a, sx: o, onClick: i }) => {
9
+ const e = L(null), [n, l] = h(!1), [u, g] = h(!0);
10
+ return b(() => {
11
+ const d = {
11
12
  root: null,
12
13
  rootMargin: "50px",
13
14
  // Start loading 50px before entering viewport
14
15
  threshold: 0.1
15
16
  // Trigger when 10% of video is visible
16
- }, g = new IntersectionObserver((d) => {
17
- d.forEach((r) => l(r.isIntersecting));
18
- }, c);
19
- return e.current && g.observe(e.current), () => {
20
- e.current && g.unobserve(e.current);
17
+ }, y = new IntersectionObserver((c) => {
18
+ c.forEach((r) => l(r.isIntersecting));
19
+ }, d);
20
+ return e.current && y.observe(e.current), () => {
21
+ e.current && y.unobserve(e.current);
21
22
  };
22
- }, []), v(() => {
23
- let c = !0;
23
+ }, []), b(() => {
24
+ let d = !0;
24
25
  return n ? (async () => {
25
- if (!(!e.current || !n || !c))
26
+ if (!(!e.current || !n || !d))
26
27
  try {
27
- e.current.readyState >= 3 ? (f(!1), await e.current.play()) : (f(!0), await new Promise((d) => {
28
- e.current && (e.current.oncanplay = () => d());
29
- }), c && (f(!1), await e.current.play()));
30
- } catch (d) {
31
- console.warn("Video playback failed:", d);
28
+ e.current.readyState >= 3 ? (g(!1), await e.current.play()) : (g(!0), await new Promise((c) => {
29
+ e.current && (e.current.oncanplay = () => c());
30
+ }), d && (g(!1), await e.current.play()));
31
+ } catch (c) {
32
+ console.warn("Video playback failed:", c);
32
33
  }
33
34
  })() : e.current && e.current.pause(), () => {
34
- c = !1, e.current && (e.current.pause(), e.current.removeAttribute("src"), e.current.load());
35
+ d = !1, e.current && (e.current.pause(), e.current.removeAttribute("src"), e.current.load());
35
36
  };
36
- }, [n]), o.type === "video" ? /* @__PURE__ */ t.jsxs(
37
- a,
37
+ }, [n]), a.type === "video" ? /* @__PURE__ */ t.jsxs(
38
+ s,
38
39
  {
39
40
  sx: {
40
41
  position: "relative",
41
42
  overflow: "hidden",
42
43
  width: "100%",
43
44
  height: "100%",
44
- ...s
45
+ ...o
45
46
  },
46
47
  children: [
47
48
  /* @__PURE__ */ t.jsx(
48
- a,
49
+ s,
49
50
  {
50
51
  component: "video",
51
52
  ref: e,
@@ -64,11 +65,11 @@ const A = ({ item: o, sx: s, onClick: i }) => {
64
65
  willChange: "transform",
65
66
  display: "block"
66
67
  },
67
- children: /* @__PURE__ */ t.jsx("source", { src: o.url, type: "video/mp4" })
68
+ children: /* @__PURE__ */ t.jsx("source", { src: a.url, type: "video/mp4" })
68
69
  }
69
70
  ),
70
71
  u && /* @__PURE__ */ t.jsx(
71
- a,
72
+ s,
72
73
  {
73
74
  sx: {
74
75
  position: "absolute",
@@ -79,7 +80,7 @@ const A = ({ item: o, sx: s, onClick: i }) => {
79
80
  bgcolor: "action.disabled"
80
81
  },
81
82
  children: /* @__PURE__ */ t.jsx(
82
- a,
83
+ s,
83
84
  {
84
85
  sx: {
85
86
  width: 24,
@@ -99,15 +100,15 @@ const A = ({ item: o, sx: s, onClick: i }) => {
99
100
  )
100
101
  ]
101
102
  }
102
- ) : /* @__PURE__ */ t.jsx(a, { onClick: i, sx: { width: "100%", height: "100%", ...s }, children: /* @__PURE__ */ t.jsx(
103
- P,
103
+ ) : /* @__PURE__ */ t.jsx(s, { onClick: i, sx: { width: "100%", height: "100%", ...o }, children: /* @__PURE__ */ t.jsx(
104
+ A,
104
105
  {
105
- src: o.url,
106
- alt: o.title || "",
106
+ src: a.url,
107
+ alt: a.title || "",
107
108
  width: "100%",
108
109
  height: "100%",
109
110
  style: {
110
- objectFit: s != null && s.objectFit ? s.objectFit : "cover",
111
+ objectFit: o != null && o.objectFit ? o.objectFit : "cover",
111
112
  cursor: i ? "pointer" : "default",
112
113
  display: "block",
113
114
  width: "100%",
@@ -115,39 +116,44 @@ const A = ({ item: o, sx: s, onClick: i }) => {
115
116
  }
116
117
  }
117
118
  ) });
118
- }, k = (o, s) => {
119
+ }, C = (a, o) => {
119
120
  let i = 1, e = 2;
120
- switch (s) {
121
+ switch (o) {
121
122
  case "grid":
122
123
  i = 1, e = 2;
123
124
  break;
124
125
  case "masonry":
125
- i = 1, e = o % 3 === 0 ? 3 : o % 2 === 0 ? 2 : 4;
126
+ i = 1, e = a % 3 === 0 ? 3 : a % 2 === 0 ? 2 : 4;
126
127
  break;
127
128
  case "spotlight":
128
- o === 0 ? (i = 2, e = 4) : (i = 1, e = 2);
129
+ a === 0 ? (i = 2, e = 4) : (i = 1, e = 2);
129
130
  break;
130
131
  case "featured":
131
- o === 0 ? (i = 2, e = 6) : (i = 1, e = 2);
132
+ a === 0 ? (i = 2, e = 6) : (i = 1, e = 2);
132
133
  break;
133
134
  case "highlight":
134
- o === 0 ? (i = 3, e = 6) : (i = 1, e = 2);
135
+ a === 0 ? (i = 3, e = 6) : (i = 1, e = 2);
135
136
  break;
136
137
  case "custom":
137
138
  i = 1, e = 2;
138
139
  break;
139
140
  }
140
141
  return { colSpan: i, rowSpan: e };
141
- }, S = (o, s) => s === "custom" ? o : o.map((i, e) => {
142
- const { colSpan: n, rowSpan: l } = k(e, s);
142
+ }, S = (a, o) => o === "custom" ? a : a.map((i, e) => {
143
+ const { colSpan: n, rowSpan: l } = C(e, o);
143
144
  return { ...i, colSpan: n, rowSpan: l };
144
- }), W = ({ mediaItems: o, variant: s = "masonry", loading: i = !1, skeletonCount: e = 6 }) => {
145
- const [n, l] = y(null), [u, f] = y(() => S(o, s)), [c, g] = y(!1), d = R();
146
- return v(() => {
147
- f(S(o, s));
148
- }, [o, s]), /* @__PURE__ */ t.jsxs(a, { sx: { width: "100%", position: "relative", zIndex: 1 }, children: [
145
+ }), x = ({
146
+ mediaItems: a,
147
+ variant: o = "masonry",
148
+ loading: i = !1,
149
+ skeletonCount: e = 6
150
+ }) => {
151
+ const [n, l] = h(null), [u, g] = h(() => S(a, o)), [d, y] = h(!1), c = N();
152
+ return b(() => {
153
+ g(S(a, o));
154
+ }, [a, o]), /* @__PURE__ */ t.jsxs(s, { sx: { width: "100%", position: "relative", zIndex: 1 }, children: [
149
155
  /* @__PURE__ */ t.jsx(
150
- V,
156
+ q,
151
157
  {
152
158
  selectedItem: n,
153
159
  isOpen: !!n,
@@ -156,8 +162,8 @@ const A = ({ item: o, sx: s, onClick: i }) => {
156
162
  mediaItems: u
157
163
  }
158
164
  ),
159
- /* @__PURE__ */ t.jsx(M, { mode: "wait", children: !n && /* @__PURE__ */ t.jsx(
160
- I.div,
165
+ /* @__PURE__ */ t.jsx($, { mode: "wait", children: !n && /* @__PURE__ */ t.jsx(
166
+ k.div,
161
167
  {
162
168
  initial: "hidden",
163
169
  animate: "visible",
@@ -171,7 +177,7 @@ const A = ({ item: o, sx: s, onClick: i }) => {
171
177
  }
172
178
  },
173
179
  children: /* @__PURE__ */ t.jsx(
174
- a,
180
+ s,
175
181
  {
176
182
  sx: {
177
183
  display: "grid",
@@ -186,19 +192,19 @@ const A = ({ item: o, sx: s, onClick: i }) => {
186
192
  // Ensure proper stacking context
187
193
  },
188
194
  children: i ? Array.from({ length: e }).map((r, p) => {
189
- const { colSpan: h, rowSpan: b } = k(p, s);
195
+ const { colSpan: m, rowSpan: f } = C(p, o);
190
196
  return /* @__PURE__ */ t.jsx(
191
- w,
197
+ j,
192
198
  {
193
199
  sx: {
194
200
  position: "relative",
195
201
  overflow: "hidden",
196
202
  borderRadius: 2,
197
- gridRow: `span ${b}`,
198
- gridColumn: `span ${h}`
203
+ gridRow: `span ${f}`,
204
+ gridColumn: `span ${m}`
199
205
  },
200
206
  children: /* @__PURE__ */ t.jsx(
201
- E,
207
+ R,
202
208
  {
203
209
  variant: "rectangular",
204
210
  animation: "wave",
@@ -213,10 +219,10 @@ const A = ({ item: o, sx: s, onClick: i }) => {
213
219
  p
214
220
  );
215
221
  }) : u.map((r, p) => /* @__PURE__ */ t.jsx(
216
- I.div,
222
+ k.div,
217
223
  {
218
- layoutId: `media-${r.id}-${d}`,
219
- onClick: () => !c && l(r),
224
+ layoutId: `media-${r.id}-${c}`,
225
+ onClick: () => !d && l(r),
220
226
  variants: {
221
227
  hidden: { y: 50, scale: 0.9, opacity: 0 },
222
228
  visible: {
@@ -235,13 +241,13 @@ const A = ({ item: o, sx: s, onClick: i }) => {
235
241
  drag: !0,
236
242
  dragConstraints: { left: 0, right: 0, top: 0, bottom: 0 },
237
243
  dragElastic: 1,
238
- onDragStart: () => g(!0),
239
- onDragEnd: (h, b) => {
240
- g(!1);
241
- const x = b.offset.x + b.offset.y;
242
- if (Math.abs(x) > 50) {
243
- const m = [...u], C = m[p], $ = x > 0 ? Math.min(p + 1, u.length - 1) : Math.max(p - 1, 0);
244
- m.splice(p, 1), m.splice($, 0, C), f(m);
244
+ onDragStart: () => y(!0),
245
+ onDragEnd: (m, f) => {
246
+ y(!1);
247
+ const I = f.offset.x + f.offset.y;
248
+ if (Math.abs(I) > 50) {
249
+ const v = [...u], V = v[p], M = I > 0 ? Math.min(p + 1, u.length - 1) : Math.max(p - 1, 0);
250
+ v.splice(p, 1), v.splice(M, 0, V), g(v);
245
251
  }
246
252
  },
247
253
  style: {
@@ -250,7 +256,7 @@ const A = ({ item: o, sx: s, onClick: i }) => {
250
256
  gridColumn: r.colSpan ? `span ${r.colSpan}` : "span 1"
251
257
  },
252
258
  children: /* @__PURE__ */ t.jsxs(
253
- w,
259
+ j,
254
260
  {
255
261
  sx: {
256
262
  position: "relative",
@@ -266,15 +272,15 @@ const A = ({ item: o, sx: s, onClick: i }) => {
266
272
  },
267
273
  children: [
268
274
  /* @__PURE__ */ t.jsx(
269
- A,
275
+ w,
270
276
  {
271
277
  item: r,
272
278
  sx: { position: "absolute", inset: 0, width: "100%", height: "100%" },
273
- onClick: () => !c && l(r)
279
+ onClick: () => !d && l(r)
274
280
  }
275
281
  ),
276
282
  (r.title || r.desc) && /* @__PURE__ */ t.jsxs(
277
- a,
283
+ s,
278
284
  {
279
285
  className: "hover-overlay",
280
286
  sx: {
@@ -291,17 +297,17 @@ const A = ({ item: o, sx: s, onClick: i }) => {
291
297
  },
292
298
  children: [
293
299
  /* @__PURE__ */ t.jsx(
294
- a,
300
+ s,
295
301
  {
296
302
  sx: {
297
303
  position: "absolute",
298
304
  inset: 0,
299
- background: (h) => `linear-gradient(to top, ${(h.vars || h).palette.grey[900]}CC, ${(h.vars || h).palette.grey[900]}66, transparent)`
305
+ background: (m) => `linear-gradient(to top, ${(m.vars || m).palette.grey[900]}CC, ${(m.vars || m).palette.grey[900]}66, transparent)`
300
306
  }
301
307
  }
302
308
  ),
303
309
  r.title && /* @__PURE__ */ t.jsx(
304
- j,
310
+ _,
305
311
  {
306
312
  variant: "subtitle2",
307
313
  sx: {
@@ -316,7 +322,7 @@ const A = ({ item: o, sx: s, onClick: i }) => {
316
322
  }
317
323
  ),
318
324
  r.desc && /* @__PURE__ */ t.jsx(
319
- j,
325
+ _,
320
326
  {
321
327
  variant: "caption",
322
328
  sx: {
@@ -338,7 +344,7 @@ const A = ({ item: o, sx: s, onClick: i }) => {
338
344
  }
339
345
  )
340
346
  },
341
- `${r.id}-${d}`
347
+ `${r.id}-${c}`
342
348
  ))
343
349
  }
344
350
  )
@@ -346,7 +352,31 @@ const A = ({ item: o, sx: s, onClick: i }) => {
346
352
  ) })
347
353
  ] });
348
354
  };
355
+ x.displayName = "SGallery";
356
+ try {
357
+ w.displayName = "MediaItem", w.__docgenInfo = { description: `MediaItem - Renders individual media items (images or videos) with optimized loading and playback.
358
+
359
+ For videos:
360
+ - Intersection Observer for viewport-based autoplay/pause
361
+ - Buffering state management with loading indicator
362
+ - Muted autoplay with loop for engagement
363
+ - Preloading for smooth playback
364
+
365
+ For images:
366
+ - Lazy loading via SLazyImage component
367
+ - Optimized object-fit handling`, displayName: "MediaItem", props: {} };
368
+ } catch {
369
+ }
370
+ try {
371
+ x.displayName = "SGallery", x.__docgenInfo = { description: "A sophisticated media gallery with drag-and-drop reordering, modal viewing, and multiple layout variants.", displayName: "SGallery", props: { mediaItems: { defaultValue: null, description: "Array of media items to display in the gallery", name: "mediaItems", required: !0, type: { name: "MediaItemType[]" } }, variant: { defaultValue: { value: "masonry" }, description: "Layout variant to use (default: 'masonry')", name: "variant", required: !1, type: { name: "enum", value: [{ value: '"grid"' }, { value: '"masonry"' }, { value: '"spotlight"' }, { value: '"featured"' }, { value: '"highlight"' }, { value: '"custom"' }] } }, loading: { defaultValue: { value: "false" }, description: "Loading state - shows skeleton placeholders matching the variant layout", name: "loading", required: !1, type: { name: "boolean" } }, skeletonCount: { defaultValue: { value: "6" }, description: "Number of skeleton items to show when loading (default: 6)", name: "skeletonCount", required: !1, type: { name: "number" } } } };
372
+ } catch {
373
+ }
374
+ try {
375
+ sgallery.displayName = "sgallery", sgallery.__docgenInfo = { description: "A sophisticated media gallery with drag-and-drop reordering, modal viewing, and multiple layout variants.", displayName: "sgallery", props: { mediaItems: { defaultValue: null, description: "Array of media items to display in the gallery", name: "mediaItems", required: !0, type: { name: "MediaItemType[]" } }, variant: { defaultValue: { value: "masonry" }, description: "Layout variant to use (default: 'masonry')", name: "variant", required: !1, type: { name: "enum", value: [{ value: '"grid"' }, { value: '"masonry"' }, { value: '"spotlight"' }, { value: '"featured"' }, { value: '"highlight"' }, { value: '"custom"' }] } }, loading: { defaultValue: { value: "false" }, description: "Loading state - shows skeleton placeholders matching the variant layout", name: "loading", required: !1, type: { name: "boolean" } }, skeletonCount: { defaultValue: { value: "6" }, description: "Number of skeleton items to show when loading (default: 6)", name: "skeletonCount", required: !1, type: { name: "number" } } } };
376
+ } catch {
377
+ }
349
378
  export {
350
- A as MediaItem,
351
- W as default
379
+ w as MediaItem,
380
+ x as SGallery,
381
+ x as default
352
382
  };
@@ -1,8 +1,7 @@
1
1
  import { default as React } from 'react';
2
2
  import { ButtonProps } from '@mui/material';
3
3
  /**
4
- * Props interface for SGlowButton component - extends Material-UI ButtonProps
5
- * with visual effect customization options
4
+ * Props interface for SGlowButton component
6
5
  */
7
6
  export interface SGlowButtonProps extends ButtonProps {
8
7
  /** Border radius for the button (defaults to 12px) */
@@ -13,45 +12,10 @@ export interface SGlowButtonProps extends ButtonProps {
13
12
  duration?: number;
14
13
  }
15
14
  /**
16
- * SGlowButton - A visually striking button with animated glowing border effects.
17
- * Combines Material-UI Button with SMovingBorder for premium visual appeal.
18
- * Fully integrated with MUI theme system for consistent styling across light/dark modes.
19
- *
20
- * Key features:
21
- * - Animated moving border with customizable duration
22
- * - Theme-aware gradient text effect using palette.gradient.primary
23
- * - Fixed height (60px) for consistency
24
- * - Customizable border radius
25
- * - Full Material-UI Button API compatibility
26
- * - Disabled ripple effect for cleaner animation
27
- * - MUI theme integration with palette colors
28
- * - Glassmorphism effect with backdrop blur
29
- * - Theme-aware hover states and shadows
30
- * - Accessibility-compliant focus styles
31
- *
32
- * Visual effects:
33
- * - Moving gradient border animation with theme-aware colors
34
- * - Gradient text coloring from theme palette
35
- * - Glow effects around the border
36
- * - Smooth hover transitions with lift effect
37
- * - Glassmorphism background with backdrop blur
38
- * - Theme-responsive shadows and borders
39
- *
40
- * Theme integration:
41
- * - Uses theme.palette.gradient.primary for text gradient
42
- * - Uses theme.palette.primary.dark/light for glow colors
43
- * - Uses theme.palette.background.paper for button background
44
- * - Uses theme.palette.baseShadow for elevation
45
- * - Automatically adapts to light/dark mode changes
46
- *
47
- * Best used for:
48
- * - Primary call-to-action buttons
49
- * - Premium feature highlights
50
- * - Landing page hero buttons
51
- * - Special action triggers
52
- *
53
- * @param props - SGlowButtonProps with animation config and Material-UI Button props
54
- * @returns JSX.Element - Button with animated glow effects
15
+ * A visually striking button with animated glowing border effects and gradient text.
55
16
  */
56
- declare const SGlowButton: ({ borderRadius, children, duration, ...props }: SGlowButtonProps) => React.JSX.Element;
17
+ declare const SGlowButton: {
18
+ ({ borderRadius, children, duration, ...props }: SGlowButtonProps): React.JSX.Element;
19
+ displayName: string;
20
+ };
57
21
  export default SGlowButton;