@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.
- package/dist/{Typography-B7LOtCzI.js → Typography-C8jwvSWe.js} +1 -1
- package/dist/main.d.ts +5 -3
- package/dist/main.js +187 -173
- package/dist/s-accordion/index.js +2 -2
- package/dist/s-accordion/s-accordion.d.ts +17 -1
- package/dist/s-accordion/s-accordion.js +252 -238
- package/dist/s-action-overlay/index.js +1 -1
- package/dist/s-action-overlay/s-action-overlay.d.ts +34 -1
- package/dist/s-action-overlay/s-action-overlay.js +67 -55
- package/dist/s-ai-tool-bar/index.d.ts +2 -0
- package/dist/s-ai-tool-bar/index.js +3 -2
- package/dist/s-ai-tool-bar/s-ai-tool-bar.d.ts +33 -22
- package/dist/s-ai-tool-bar/s-ai-tool-bar.js +295 -247
- package/dist/s-autocomplete/index.js +2 -2
- package/dist/s-autocomplete/s-autocomplete.d.ts +13 -15
- package/dist/s-autocomplete/s-autocomplete.js +25 -17
- package/dist/s-avatar/index.js +2 -2
- package/dist/s-avatar/s-avatar.d.ts +16 -1
- package/dist/s-avatar/s-avatar.js +23 -10
- package/dist/s-blur-text/index.js +2 -2
- package/dist/s-blur-text/s-blur-text.d.ts +4 -13
- package/dist/s-blur-text/s-blur-text.js +57 -51
- package/dist/s-breadcrumbs/index.js +2 -2
- package/dist/s-breadcrumbs/s-breadcrumbs.d.ts +20 -1
- package/dist/s-breadcrumbs/s-breadcrumbs.js +39 -30
- package/dist/s-button/index.js +2 -2
- package/dist/s-button/s-button.d.ts +7 -1
- package/dist/s-button/s-button.js +15 -5
- package/dist/s-button-link/index.js +2 -2
- package/dist/s-button-link/s-button-link.d.ts +12 -26
- package/dist/s-button-link/s-button-link.js +36 -26
- package/dist/s-carousel/index.js +1 -1
- package/dist/s-carousel/s-carousel.d.ts +11 -1
- package/dist/s-carousel/s-carousel.js +233 -223
- package/dist/s-category-card/index.js +2 -2
- package/dist/s-category-card/s-category-card.d.ts +28 -1
- package/dist/s-category-card/s-category-card.js +77 -58
- package/dist/s-chat-input/index.js +2 -2
- package/dist/s-chat-input/s-chat-input.d.ts +12 -1
- package/dist/s-chat-input/s-chat-input.js +92 -82
- package/dist/s-chat-message/index.js +2 -2
- package/dist/s-chat-message/s-chat-message.d.ts +22 -1
- package/dist/s-chat-message/s-chat-message.js +144 -133
- package/dist/s-checkbox/index.js +2 -2
- package/dist/s-checkbox/s-checkbox.d.ts +2 -15
- package/dist/s-checkbox/s-checkbox.js +20 -10
- package/dist/s-chip/index.js +2 -2
- package/dist/s-chip/s-chip.d.ts +7 -1
- package/dist/s-chip/s-chip.js +15 -5
- package/dist/s-chips/index.js +2 -2
- package/dist/s-chips/s-chips.d.ts +5 -18
- package/dist/s-chips/s-chips.js +56 -41
- package/dist/s-comment-message/index.js +2 -2
- package/dist/s-comment-message/s-comment-message.d.ts +26 -1
- package/dist/s-comment-message/s-comment-message.js +95 -89
- package/dist/s-copyable-text/index.js +1 -1
- package/dist/s-copyable-text/s-copyable-text.d.ts +9 -36
- package/dist/s-copyable-text/s-copyable-text.js +31 -21
- package/dist/s-countdown/index.d.ts +3 -2
- package/dist/s-countdown/index.js +4 -3
- package/dist/s-countdown/s-count-box.d.ts +39 -0
- package/dist/s-countdown/s-count-box.js +112 -0
- package/dist/s-countdown/s-count-down.d.ts +6 -50
- package/dist/s-countdown/s-count-down.js +110 -175
- package/dist/s-data-table/index.js +2 -2
- package/dist/s-data-table/s-data-table.d.ts +9 -65
- package/dist/s-data-table/s-data-table.js +381 -371
- package/dist/s-date-picker/index.js +2 -2
- package/dist/s-date-picker/s-date-picker.d.ts +6 -17
- package/dist/s-date-picker/s-date-picker.js +124 -107
- package/dist/s-datetime-picker/index.js +2 -2
- package/dist/s-datetime-picker/s-datetime-picker.d.ts +5 -16
- package/dist/s-datetime-picker/s-datetime-picker.js +897 -887
- package/dist/s-dialog/index.js +2 -2
- package/dist/s-dialog/s-dialog.d.ts +3 -16
- package/dist/s-dialog/s-dialog.js +32 -23
- package/dist/s-dialog-confirm/index.js +3 -3
- package/dist/s-dialog-confirm/s-dialog-confirm.d.ts +5 -13
- package/dist/s-dialog-confirm/s-dialog-confirm.js +55 -48
- package/dist/s-dialog-message/index.js +4 -4
- package/dist/s-dialog-message/s-dialog-message.d.ts +5 -15
- package/dist/s-dialog-message/s-dialog-message.js +45 -38
- package/dist/s-empty/index.js +2 -2
- package/dist/s-empty/s-empty.d.ts +5 -20
- package/dist/s-empty/s-empty.js +14 -4
- package/dist/s-error/index.js +2 -2
- package/dist/s-error/s-error.d.ts +5 -20
- package/dist/s-error/s-error.js +16 -6
- package/dist/s-error-layout/index.js +2 -2
- package/dist/s-error-layout/s-error-layout.d.ts +6 -1
- package/dist/s-error-layout/s-error-layout.js +60 -51
- package/dist/s-file-dropzone/index.js +2 -2
- package/dist/s-file-dropzone/s-file-dropzone.d.ts +6 -51
- package/dist/s-file-dropzone/s-file-dropzone.js +64 -54
- package/dist/s-file-icon/index.js +2 -2
- package/dist/s-file-icon/s-file-icon.d.ts +5 -25
- package/dist/s-file-icon/s-file-icon.js +14 -8
- package/dist/s-flex-box/index.js +2 -2
- package/dist/s-flex-box/s-flex-box.d.ts +10 -1
- package/dist/s-flex-box/s-flex-box.js +14 -4
- package/dist/s-form/index.js +2 -2
- package/dist/s-form/s-form.d.ts +5 -14
- package/dist/s-form/s-form.js +19 -9
- package/dist/s-gallery/index.js +33 -3
- package/dist/s-gallery/s-gallery.d.ts +3 -36
- package/dist/s-gallery/s-gallery.js +108 -78
- package/dist/s-glow-button/s-glow-button.d.ts +6 -42
- package/dist/s-glow-button/s-glow-button.js +29 -47
- package/dist/s-gradient-icon/index.d.ts +1 -1
- package/dist/s-gradient-icon/index.js +1 -1
- package/dist/s-gradient-icon/s-gradient-icon.d.ts +8 -68
- package/dist/s-gradient-icon/s-gradient-icon.js +54 -44
- package/dist/s-i18n-provider/index.js +1 -1
- package/dist/s-i18n-provider/s-i18n-provider.d.ts +5 -33
- package/dist/s-i18n-provider/s-i18n-provider.js +25 -15
- package/dist/s-icon-button/index.js +2 -2
- package/dist/s-icon-button/s-icon-button.d.ts +6 -19
- package/dist/s-icon-button/s-icon-button.js +14 -4
- package/dist/s-image-comparison/s-image-comparison.js +50 -45
- package/dist/s-image-modal/index.js +3 -3
- package/dist/s-image-modal/s-image-modal.d.ts +4 -20
- package/dist/s-image-modal/s-image-modal.js +150 -135
- package/dist/s-item-not-found/index.js +2 -2
- package/dist/s-item-not-found/s-item-not-found.d.ts +14 -1
- package/dist/s-item-not-found/s-item-not-found.js +21 -10
- package/dist/s-label/index.js +2 -2
- package/dist/s-label/s-label.d.ts +9 -25
- package/dist/s-label/s-label.js +19 -9
- package/dist/s-language-switcher/index.js +3 -3
- package/dist/s-language-switcher/s-language-switcher.d.ts +20 -33
- package/dist/s-language-switcher/s-language-switcher.js +137 -115
- package/dist/s-lazy-image/index.js +10 -2
- package/dist/s-lazy-image/s-lazy-image.d.ts +12 -58
- package/dist/s-lazy-image/s-lazy-image.js +53 -58
- package/dist/s-localization-provider/index.js +2 -2
- package/dist/s-localization-provider/s-localization-provider.d.ts +6 -27
- package/dist/s-localization-provider/s-localization-provider.js +157 -149
- package/dist/s-moving-border/index.js +2 -2
- package/dist/s-moving-border/s-moving-border.d.ts +3 -33
- package/dist/s-moving-border/s-moving-border.js +65 -55
- package/dist/s-multi-select/index.js +2 -2
- package/dist/s-multi-select/s-multi-select.d.ts +5 -15
- package/dist/s-multi-select/s-multi-select.js +54 -45
- package/dist/s-no-ssr/index.js +2 -2
- package/dist/s-no-ssr/s-no-ssr.d.ts +5 -33
- package/dist/s-no-ssr/s-no-ssr.js +21 -11
- package/dist/s-overlay-scrollbar/index.js +2 -2
- package/dist/s-overlay-scrollbar/s-overlay-scrollbar.d.ts +10 -1
- package/dist/s-overlay-scrollbar/s-overlay-scrollbar.js +16 -11
- package/dist/s-pagination/index.js +2 -2
- package/dist/s-pagination/s-pagination.d.ts +5 -23
- package/dist/s-pagination/s-pagination.js +17 -11
- package/dist/s-pixel-reveal/index.js +2 -2
- package/dist/s-pixel-reveal/s-pixel-reveal.d.ts +15 -1
- package/dist/s-pixel-reveal/s-pixel-reveal.js +83 -78
- package/dist/s-radial-pulse-animate/index.js +2 -2
- package/dist/s-radial-pulse-animate/s-radial-pulse-animate.d.ts +12 -1
- package/dist/s-radial-pulse-animate/s-radial-pulse-animate.js +52 -42
- package/dist/s-rating/index.js +2 -2
- package/dist/s-rating/s-rating.d.ts +7 -1
- package/dist/s-rating/s-rating.js +15 -5
- package/dist/s-review/index.js +2 -2
- package/dist/s-review/s-review.d.ts +25 -1
- package/dist/s-review/s-review.js +104 -97
- package/dist/s-scroll-reveal/index.js +2 -2
- package/dist/s-scroll-reveal/s-scroll-reveal.d.ts +17 -36
- package/dist/s-scroll-reveal/s-scroll-reveal.js +43 -33
- package/dist/s-scroll-to-top/index.js +2 -2
- package/dist/s-scroll-to-top/s-scroll-to-top.d.ts +12 -17
- package/dist/s-scroll-to-top/s-scroll-to-top.js +20 -15
- package/dist/s-scroll-velocity/index.d.ts +6 -0
- package/dist/s-scroll-velocity/index.js +8 -0
- package/dist/s-scroll-velocity/package.json +5 -0
- package/dist/s-scroll-velocity/s-scroll-velocity.d.ts +24 -0
- package/dist/s-scroll-velocity/s-scroll-velocity.js +22 -0
- package/dist/s-scroll-velocity/scroll-velocity-container.d.ts +20 -0
- package/dist/s-scroll-velocity/scroll-velocity-container.js +40 -0
- package/dist/s-scroll-velocity/scroll-velocity-row.d.ts +27 -0
- package/dist/s-scroll-velocity/scroll-velocity-row.js +131 -0
- package/dist/s-select/index.js +2 -2
- package/dist/s-select/s-select.d.ts +3 -22
- package/dist/s-select/s-select.js +76 -72
- package/dist/s-select-list/index.js +2 -2
- package/dist/s-select-list/s-select-list.d.ts +16 -19
- package/dist/s-select-list/s-select-list.js +33 -28
- package/dist/s-skeleton/index.js +2 -2
- package/dist/s-skeleton/s-skeleton.d.ts +6 -22
- package/dist/s-skeleton/s-skeleton.js +28 -18
- package/dist/s-snackbar-message/index.js +4 -4
- package/dist/s-snackbar-message/s-snackbar-message.d.ts +5 -23
- package/dist/s-snackbar-message/s-snackbar-message.js +38 -31
- package/dist/s-spotlight-cursor/index.js +2 -2
- package/dist/s-spotlight-cursor/s-spotlight-cursor.d.ts +10 -44
- package/dist/s-spotlight-cursor/s-spotlight-cursor.js +35 -29
- package/dist/s-stripe/index.d.ts +4 -1
- package/dist/s-stripe/index.js +7 -4
- package/dist/s-stripe/s-stripe-cvc.d.ts +8 -0
- package/dist/s-stripe/s-stripe-cvc.js +15 -0
- package/dist/s-stripe/s-stripe-expiry.d.ts +8 -0
- package/dist/s-stripe/s-stripe-expiry.js +15 -0
- package/dist/s-stripe/s-stripe-number.d.ts +8 -0
- package/dist/s-stripe/s-stripe-number.js +15 -0
- package/dist/s-stripe/s-stripe.d.ts +6 -85
- package/dist/s-stripe/s-stripe.js +24 -27
- package/dist/s-stripe/stripe-input.js +22 -18
- package/dist/s-tabs/index.js +6 -6
- package/dist/s-tabs/s-tab-panel.d.ts +11 -1
- package/dist/s-tabs/s-tab-panel.js +25 -16
- package/dist/s-tabs/s-tab.js +9 -5
- package/dist/s-tabs/s-tabs.d.ts +24 -3
- package/dist/s-tabs/s-tabs.js +34 -25
- package/dist/s-text-editor/index.js +3 -3
- package/dist/s-text-editor/s-text-editor-toolbar.js +91 -76
- package/dist/s-text-editor/s-text-editor.d.ts +13 -11
- package/dist/s-text-editor/s-text-editor.js +44 -30
- package/dist/s-text-field/index.js +2 -2
- package/dist/s-text-field/s-text-field.d.ts +6 -15
- package/dist/s-text-field/s-text-field.js +38 -28
- package/dist/s-text-shimmer/index.js +2 -2
- package/dist/s-text-shimmer/s-text-shimmer.d.ts +10 -1
- package/dist/s-text-shimmer/s-text-shimmer.js +27 -18
- package/dist/s-text-truncation/index.js +2 -2
- package/dist/s-text-truncation/s-text-truncation.d.ts +9 -38
- package/dist/s-text-truncation/s-text-truncation.js +34 -20
- package/dist/s-theme-demo/s-theme-demo.js +238 -223
- package/dist/s-theme-provider/index.js +1 -1
- package/dist/s-theme-provider/s-theme-provider.d.ts +5 -17
- package/dist/s-theme-provider/s-theme-provider.js +44 -34
- package/dist/s-theme-switch/s-theme-switch.js +23 -19
- package/dist/s-tip/index.js +2 -2
- package/dist/s-tip/s-tip.d.ts +5 -22
- package/dist/s-tip/s-tip.js +22 -12
- package/dist/s-two-pane-layout/index.js +10 -2
- package/dist/s-two-pane-layout/s-two-pane-layout.d.ts +7 -1
- package/dist/s-two-pane-layout/s-two-pane-layout.js +58 -48
- package/dist/s-typewriter-text/index.js +2 -2
- package/dist/s-typewriter-text/s-typewriter-text.d.ts +17 -1
- package/dist/s-typewriter-text/s-typewriter-text.js +37 -27
- package/dist/s-zoom-image/index.js +10 -2
- package/dist/s-zoom-image/s-zoom-image.d.ts +10 -42
- package/dist/s-zoom-image/s-zoom-image.js +62 -52
- package/dist/theme/components/alert.d.ts +1436 -1436
- package/dist/theme/components/button.d.ts +2150 -2150
- package/dist/theme/components/chip.d.ts +2 -2
- package/dist/theme/customizations/data-display.js +1 -1
- package/dist/{typographyClasses-C7fhAsUD.js → typographyClasses-DDyl9mok.js} +4 -4
- package/dist/{useMobilePicker-DgxcRrRB.js → useMobilePicker-C1RZZUWr.js} +1 -1
- package/package.json +23 -6
package/dist/s-gallery/index.js
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
|
-
import { MediaItem as
|
|
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
|
-
|
|
4
|
-
|
|
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
|
|
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
|
-
*
|
|
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 {
|
|
3
|
-
import { Box as
|
|
4
|
-
import { AnimatePresence as
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
},
|
|
17
|
-
|
|
18
|
-
},
|
|
19
|
-
return e.current &&
|
|
20
|
-
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
|
-
}, []),
|
|
23
|
-
let
|
|
23
|
+
}, []), b(() => {
|
|
24
|
+
let d = !0;
|
|
24
25
|
return n ? (async () => {
|
|
25
|
-
if (!(!e.current || !n || !
|
|
26
|
+
if (!(!e.current || !n || !d))
|
|
26
27
|
try {
|
|
27
|
-
e.current.readyState >= 3 ? (
|
|
28
|
-
e.current && (e.current.oncanplay = () =>
|
|
29
|
-
}),
|
|
30
|
-
} catch (
|
|
31
|
-
console.warn("Video playback failed:",
|
|
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
|
-
|
|
35
|
+
d = !1, e.current && (e.current.pause(), e.current.removeAttribute("src"), e.current.load());
|
|
35
36
|
};
|
|
36
|
-
}, [n]),
|
|
37
|
-
|
|
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
|
-
...
|
|
45
|
+
...o
|
|
45
46
|
},
|
|
46
47
|
children: [
|
|
47
48
|
/* @__PURE__ */ t.jsx(
|
|
48
|
-
|
|
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:
|
|
68
|
+
children: /* @__PURE__ */ t.jsx("source", { src: a.url, type: "video/mp4" })
|
|
68
69
|
}
|
|
69
70
|
),
|
|
70
71
|
u && /* @__PURE__ */ t.jsx(
|
|
71
|
-
|
|
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
|
-
|
|
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(
|
|
103
|
-
|
|
103
|
+
) : /* @__PURE__ */ t.jsx(s, { onClick: i, sx: { width: "100%", height: "100%", ...o }, children: /* @__PURE__ */ t.jsx(
|
|
104
|
+
A,
|
|
104
105
|
{
|
|
105
|
-
src:
|
|
106
|
-
alt:
|
|
106
|
+
src: a.url,
|
|
107
|
+
alt: a.title || "",
|
|
107
108
|
width: "100%",
|
|
108
109
|
height: "100%",
|
|
109
110
|
style: {
|
|
110
|
-
objectFit:
|
|
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
|
-
},
|
|
119
|
+
}, C = (a, o) => {
|
|
119
120
|
let i = 1, e = 2;
|
|
120
|
-
switch (
|
|
121
|
+
switch (o) {
|
|
121
122
|
case "grid":
|
|
122
123
|
i = 1, e = 2;
|
|
123
124
|
break;
|
|
124
125
|
case "masonry":
|
|
125
|
-
i = 1, e =
|
|
126
|
+
i = 1, e = a % 3 === 0 ? 3 : a % 2 === 0 ? 2 : 4;
|
|
126
127
|
break;
|
|
127
128
|
case "spotlight":
|
|
128
|
-
|
|
129
|
+
a === 0 ? (i = 2, e = 4) : (i = 1, e = 2);
|
|
129
130
|
break;
|
|
130
131
|
case "featured":
|
|
131
|
-
|
|
132
|
+
a === 0 ? (i = 2, e = 6) : (i = 1, e = 2);
|
|
132
133
|
break;
|
|
133
134
|
case "highlight":
|
|
134
|
-
|
|
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 = (
|
|
142
|
-
const { colSpan: n, rowSpan: l } =
|
|
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
|
-
}),
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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
|
-
|
|
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(
|
|
160
|
-
|
|
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
|
-
|
|
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:
|
|
195
|
+
const { colSpan: m, rowSpan: f } = C(p, o);
|
|
190
196
|
return /* @__PURE__ */ t.jsx(
|
|
191
|
-
|
|
197
|
+
j,
|
|
192
198
|
{
|
|
193
199
|
sx: {
|
|
194
200
|
position: "relative",
|
|
195
201
|
overflow: "hidden",
|
|
196
202
|
borderRadius: 2,
|
|
197
|
-
gridRow: `span ${
|
|
198
|
-
gridColumn: `span ${
|
|
203
|
+
gridRow: `span ${f}`,
|
|
204
|
+
gridColumn: `span ${m}`
|
|
199
205
|
},
|
|
200
206
|
children: /* @__PURE__ */ t.jsx(
|
|
201
|
-
|
|
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
|
-
|
|
222
|
+
k.div,
|
|
217
223
|
{
|
|
218
|
-
layoutId: `media-${r.id}-${
|
|
219
|
-
onClick: () => !
|
|
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: () =>
|
|
239
|
-
onDragEnd: (
|
|
240
|
-
|
|
241
|
-
const
|
|
242
|
-
if (Math.abs(
|
|
243
|
-
const
|
|
244
|
-
|
|
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
|
-
|
|
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
|
-
|
|
275
|
+
w,
|
|
270
276
|
{
|
|
271
277
|
item: r,
|
|
272
278
|
sx: { position: "absolute", inset: 0, width: "100%", height: "100%" },
|
|
273
|
-
onClick: () => !
|
|
279
|
+
onClick: () => !d && l(r)
|
|
274
280
|
}
|
|
275
281
|
),
|
|
276
282
|
(r.title || r.desc) && /* @__PURE__ */ t.jsxs(
|
|
277
|
-
|
|
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
|
-
|
|
300
|
+
s,
|
|
295
301
|
{
|
|
296
302
|
sx: {
|
|
297
303
|
position: "absolute",
|
|
298
304
|
inset: 0,
|
|
299
|
-
background: (
|
|
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
|
-
|
|
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
|
-
|
|
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}-${
|
|
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
|
-
|
|
351
|
-
|
|
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
|
|
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
|
-
*
|
|
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:
|
|
17
|
+
declare const SGlowButton: {
|
|
18
|
+
({ borderRadius, children, duration, ...props }: SGlowButtonProps): React.JSX.Element;
|
|
19
|
+
displayName: string;
|
|
20
|
+
};
|
|
57
21
|
export default SGlowButton;
|