matrix-design-system 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +95 -0
- package/dist/atoms/animation/motion-div/index.d.mts +2 -0
- package/dist/atoms/animation/motion-div/motion-div.d.mts +7 -0
- package/dist/atoms/animation/motion-div/motion-div.mjs +37 -0
- package/dist/atoms/animation/motion-div/use-motion-div-store.mjs +17 -0
- package/dist/atoms/buttons/button/button.d.mts +8 -0
- package/dist/atoms/buttons/button/button.mjs +12 -0
- package/dist/atoms/buttons/button/index.d.mts +2 -0
- package/dist/atoms/buttons/switch/index.d.mts +2 -0
- package/dist/atoms/buttons/switch/switch.d.mts +10 -0
- package/dist/atoms/buttons/switch/switch.mjs +40 -0
- package/dist/atoms/buttons/switch/use-switch-store.mjs +7 -0
- package/dist/atoms/call-to-actions/call-to-action-external-with-tracking/call-to-action-external-with-tracking.d.mts +13 -0
- package/dist/atoms/call-to-actions/call-to-action-external-with-tracking/call-to-action-external-with-tracking.mjs +30 -0
- package/dist/atoms/call-to-actions/call-to-action-external-with-tracking/index.d.mts +2 -0
- package/dist/atoms/call-to-actions/call-to-action-internal-with-tracking/call-to-action-internal-with-tracking.d.mts +14 -0
- package/dist/atoms/call-to-actions/call-to-action-internal-with-tracking/call-to-action-internal-with-tracking.mjs +29 -0
- package/dist/atoms/call-to-actions/call-to-action-internal-with-tracking/index.d.mts +2 -0
- package/dist/atoms/chip/chip.d.mts +10 -0
- package/dist/atoms/chip/chip.mjs +10 -0
- package/dist/atoms/chip/index.d.mts +2 -0
- package/dist/atoms/effects/glassmorphism-background/glassmorphism-background.d.mts +8 -0
- package/dist/atoms/effects/glassmorphism-background/glassmorphism-background.mjs +33 -0
- package/dist/atoms/effects/glassmorphism-background/index.d.mts +2 -0
- package/dist/atoms/effects/glassmorphism-background/use-glassmorphism-background-store.mjs +17 -0
- package/dist/atoms/effects/image-glow/image-glow.d.mts +12 -0
- package/dist/atoms/effects/image-glow/image-glow.mjs +20 -0
- package/dist/atoms/effects/image-glow/index.d.mts +2 -0
- package/dist/atoms/effects/image-shimmer-placeholder/image-shimmer-placeholder.d.mts +6 -0
- package/dist/atoms/effects/image-shimmer-placeholder/image-shimmer-placeholder.mjs +22 -0
- package/dist/atoms/effects/image-shimmer-placeholder/index.d.mts +2 -0
- package/dist/atoms/effects/matrix-rain/matrix-rain/index.d.mts +2 -0
- package/dist/atoms/effects/matrix-rain/matrix-rain/matrix-2d-canvas/debounce.mjs +12 -0
- package/dist/atoms/effects/matrix-rain/matrix-rain/matrix-2d-canvas/matrix-2d-canvas.mjs +25 -0
- package/dist/atoms/effects/matrix-rain/matrix-rain/matrix-2d-canvas/use-matrix-2d-canvas-store.mjs +186 -0
- package/dist/atoms/effects/matrix-rain/matrix-rain/matrix-rain.d.mts +5 -0
- package/dist/atoms/effects/matrix-rain/matrix-rain/matrix-rain.mjs +68 -0
- package/dist/atoms/effects/matrix-rain/matrix-rain/use-matrix-rain-activity.mjs +40 -0
- package/dist/atoms/effects/matrix-rain/matrix-rain/use-matrix-rain-store.mjs +69 -0
- package/dist/atoms/effects/overlay/index.d.mts +2 -0
- package/dist/atoms/effects/overlay/overlay.d.mts +11 -0
- package/dist/atoms/effects/overlay/overlay.mjs +61 -0
- package/dist/atoms/effects/overlay/use-overlay-store.mjs +8 -0
- package/dist/atoms/effects/pills/index.d.mts +2 -0
- package/dist/atoms/effects/pills/pills.d.mts +10 -0
- package/dist/atoms/effects/pills/pills.mjs +121 -0
- package/dist/atoms/effects/pills/use-pills-store.mjs +17 -0
- package/dist/atoms/effects/plain-image/index.d.mts +2 -0
- package/dist/atoms/effects/plain-image/plain-image.d.mts +45 -0
- package/dist/atoms/effects/plain-image/plain-image.mjs +140 -0
- package/dist/atoms/effects/plain-image/use-plain-image-store.mjs +62 -0
- package/dist/atoms/icons/chat-icon/chat-icon.d.mts +4 -0
- package/dist/atoms/icons/chat-icon/chat-icon.mjs +13 -0
- package/dist/atoms/icons/copy-icon/copy-icon.d.mts +6 -0
- package/dist/atoms/icons/copy-icon/copy-icon.mjs +17 -0
- package/dist/atoms/icons/rounded-icon/index.d.mts +2 -0
- package/dist/atoms/icons/rounded-icon/rounded-icon.d.mts +8 -0
- package/dist/atoms/icons/rounded-icon/rounded-icon.mjs +8 -0
- package/dist/atoms/links/anchor-link/anchor-link.d.mts +31 -0
- package/dist/atoms/links/anchor-link/anchor-link.mjs +14 -0
- package/dist/atoms/links/anchor-link/index.d.mts +2 -0
- package/dist/atoms/links/external-link/external-link.d.mts +13 -0
- package/dist/atoms/links/external-link/external-link.mjs +29 -0
- package/dist/atoms/links/external-link/index.d.mts +2 -0
- package/dist/atoms/links/internal-link/index.d.mts +2 -0
- package/dist/atoms/links/internal-link/internal-link.d.mts +15 -0
- package/dist/atoms/links/internal-link/internal-link.mjs +12 -0
- package/dist/atoms/loader/loader/index.d.mts +2 -0
- package/dist/atoms/loader/loader/loader.d.mts +10 -0
- package/dist/atoms/loader/loader/loader.mjs +62 -0
- package/dist/atoms/typography/input-field/index.d.mts +2 -0
- package/dist/atoms/typography/input-field/input-field.d.mts +9 -0
- package/dist/atoms/typography/input-field/input-field.mjs +8 -0
- package/dist/atoms/typography/label/index.d.mts +2 -0
- package/dist/atoms/typography/label/label.d.mts +9 -0
- package/dist/atoms/typography/label/label.mjs +11 -0
- package/dist/atoms/typography/markdown/markdown-plugins.mjs +16 -0
- package/dist/atoms/typography/markdown/markdown.d.mts +7 -0
- package/dist/atoms/typography/markdown/markdown.mjs +23 -0
- package/dist/atoms/typography/markdown/use-markdown-store.mjs +24 -0
- package/dist/atoms/typography/terminal-blocks/index.d.mts +2 -0
- package/dist/atoms/typography/terminal-blocks/terminal-blocks.d.mts +13 -0
- package/dist/atoms/typography/terminal-blocks/terminal-blocks.mjs +42 -0
- package/dist/atoms/typography/textarea/index.d.mts +2 -0
- package/dist/atoms/typography/textarea/textarea.d.mts +9 -0
- package/dist/atoms/typography/textarea/textarea.mjs +8 -0
- package/dist/chart.d.mts +7 -0
- package/dist/chart.mjs +4 -0
- package/dist/command-palette.d.mts +6 -0
- package/dist/command-palette.mjs +5 -0
- package/dist/hooks/use-clipboard-available.d.mts +4 -0
- package/dist/hooks/use-clipboard-available.mjs +10 -0
- package/dist/hooks/use-device-capabilities.d.mts +10 -0
- package/dist/hooks/use-device-capabilities.mjs +30 -0
- package/dist/hooks/use-glassmorphism.d.mts +10 -0
- package/dist/hooks/use-glassmorphism.mjs +9 -0
- package/dist/hooks/use-in-view-list.d.mts +7 -0
- package/dist/hooks/use-in-view-list.mjs +63 -0
- package/dist/hooks/use-in-view.d.mts +9 -0
- package/dist/hooks/use-in-view.mjs +68 -0
- package/dist/hooks/use-is-ios.d.mts +4 -0
- package/dist/hooks/use-is-ios.mjs +7 -0
- package/dist/hooks/use-lock-body-scroll.d.mts +4 -0
- package/dist/hooks/use-lock-body-scroll.mjs +40 -0
- package/dist/hooks/use-matrix-settings-store.d.mts +5 -0
- package/dist/hooks/use-matrix-settings-store.mjs +15 -0
- package/dist/hooks/use-motion-store.d.mts +13 -0
- package/dist/hooks/use-motion-store.mjs +29 -0
- package/dist/hooks/use-os-modifier-key.d.mts +5 -0
- package/dist/hooks/use-os-modifier-key.mjs +15 -0
- package/dist/hooks/use-reading-progress.d.mts +8 -0
- package/dist/hooks/use-reading-progress.mjs +49 -0
- package/dist/hooks/use-reduced-motions.d.mts +4 -0
- package/dist/hooks/use-reduced-motions.mjs +10 -0
- package/dist/hooks/use-scroll-direction.d.mts +8 -0
- package/dist/hooks/use-scroll-direction.mjs +43 -0
- package/dist/hooks/use-typewriter.d.mts +15 -0
- package/dist/hooks/use-typewriter.mjs +89 -0
- package/dist/hooks/use-webgpu-supported.d.mts +4 -0
- package/dist/hooks/use-webgpu-supported.mjs +16 -0
- package/dist/index.d.mts +153 -0
- package/dist/index.mjs +88 -0
- package/dist/markdown.d.mts +2 -0
- package/dist/markdown.mjs +2 -0
- package/dist/molecules/accordion/accordion/accordion.d.mts +12 -0
- package/dist/molecules/accordion/accordion/accordion.mjs +130 -0
- package/dist/molecules/accordion/accordion/index.d.mts +2 -0
- package/dist/molecules/accordion/accordion/use-accordion-store.mjs +55 -0
- package/dist/molecules/breadcrumbs/breadcrumb/breadcrumb.d.mts +21 -0
- package/dist/molecules/breadcrumbs/breadcrumb/breadcrumb.mjs +186 -0
- package/dist/molecules/breadcrumbs/breadcrumb/index.d.mts +2 -0
- package/dist/molecules/breadcrumbs/breadcrumb/use-breadcrumb-store.mjs +29 -0
- package/dist/molecules/buttons/pagination-navigation/index.d.mts +2 -0
- package/dist/molecules/buttons/pagination-navigation/pagination-navigation.d.mts +11 -0
- package/dist/molecules/buttons/pagination-navigation/pagination-navigation.mjs +17 -0
- package/dist/molecules/buttons/pills-buttons/index.d.mts +2 -0
- package/dist/molecules/buttons/pills-buttons/pills-buttons.d.mts +10 -0
- package/dist/molecules/buttons/pills-buttons/pills-buttons.mjs +55 -0
- package/dist/molecules/buttons/segmented-control/segmented-control.d.mts +13 -0
- package/dist/molecules/buttons/segmented-control/segmented-control.mjs +46 -0
- package/dist/molecules/buttons/segmented-control/use-segmented-control-store.mjs +8 -0
- package/dist/molecules/buttons/social-contact/index.d.mts +2 -0
- package/dist/molecules/buttons/social-contact/social-contact.d.mts +10 -0
- package/dist/molecules/buttons/social-contact/social-contact.mjs +13 -0
- package/dist/molecules/buttons/tag/index.d.mts +2 -0
- package/dist/molecules/buttons/tag/tag.d.mts +17 -0
- package/dist/molecules/buttons/tag/tag.mjs +20 -0
- package/dist/molecules/buttons/terminal-button/index.d.mts +2 -0
- package/dist/molecules/buttons/terminal-button/terminal-button.d.mts +15 -0
- package/dist/molecules/buttons/terminal-button/terminal-button.mjs +38 -0
- package/dist/molecules/chart/chart-panel/chart-panel.d.mts +9 -0
- package/dist/molecules/chart/chart-panel/chart-panel.mjs +12 -0
- package/dist/molecules/chart/chart-panel/index.d.mts +2 -0
- package/dist/molecules/chart/chart-tooltip/chart-tooltip.d.mts +8 -0
- package/dist/molecules/chart/chart-tooltip/chart-tooltip.mjs +18 -0
- package/dist/molecules/chart/chart-tooltip/index.d.mts +2 -0
- package/dist/molecules/chart/donut-chart/donut-chart.d.mts +15 -0
- package/dist/molecules/chart/donut-chart/donut-chart.mjs +142 -0
- package/dist/molecules/chart/donut-chart/index.d.mts +2 -0
- package/dist/molecules/containers/content-container/content-container.d.mts +5 -0
- package/dist/molecules/containers/content-container/content-container.mjs +8 -0
- package/dist/molecules/containers/content-container/index.d.mts +2 -0
- package/dist/molecules/controls/control-slider/control-slider.d.mts +14 -0
- package/dist/molecules/controls/control-slider/control-slider.mjs +76 -0
- package/dist/molecules/controls/control-slider/index.d.mts +2 -0
- package/dist/molecules/controls/control-slider/use-control-slider-store.mjs +10 -0
- package/dist/molecules/effects/matrix-background/index.d.mts +2 -0
- package/dist/molecules/effects/matrix-background/matrix-background.d.mts +8 -0
- package/dist/molecules/effects/matrix-background/matrix-background.mjs +15 -0
- package/dist/molecules/effects/matrix-header-background/index.d.mts +2 -0
- package/dist/molecules/effects/matrix-header-background/matrix-header-background.d.mts +8 -0
- package/dist/molecules/effects/matrix-header-background/matrix-header-background.mjs +14 -0
- package/dist/molecules/effects/matrix-terminal/index.d.mts +2 -0
- package/dist/molecules/effects/matrix-terminal/matrix-terminal.d.mts +15 -0
- package/dist/molecules/effects/matrix-terminal/matrix-terminal.mjs +101 -0
- package/dist/molecules/effects/matrix-terminal/use-matrix-terminal-store.mjs +59 -0
- package/dist/molecules/form/filter-input/filter-input.d.mts +10 -0
- package/dist/molecules/form/filter-input/filter-input.mjs +35 -0
- package/dist/molecules/form/filter-input/index.d.mts +2 -0
- package/dist/molecules/form/form-error-summary/form-error-summary.d.mts +10 -0
- package/dist/molecules/form/form-error-summary/form-error-summary.mjs +71 -0
- package/dist/molecules/form/form-error-summary/index.d.mts +2 -0
- package/dist/molecules/form/form-field/form-field.d.mts +10 -0
- package/dist/molecules/form/form-field/form-field.mjs +60 -0
- package/dist/molecules/form/form-field/index.d.mts +2 -0
- package/dist/molecules/form/form-success-message/form-success-message.d.mts +8 -0
- package/dist/molecules/form/form-success-message/form-success-message.mjs +21 -0
- package/dist/molecules/form/form-success-message/index.d.mts +2 -0
- package/dist/molecules/form/form-textarea/form-textarea.d.mts +10 -0
- package/dist/molecules/form/form-textarea/form-textarea.mjs +60 -0
- package/dist/molecules/form/form-textarea/index.d.mts +2 -0
- package/dist/molecules/lightbox-image/index.d.mts +2 -0
- package/dist/molecules/lightbox-image/lightbox-image.d.mts +6 -0
- package/dist/molecules/lightbox-image/lightbox-image.mjs +49 -0
- package/dist/molecules/lightbox-image/use-lightbox-image-store.mjs +29 -0
- package/dist/molecules/links/pills-links/index.d.mts +2 -0
- package/dist/molecules/links/pills-links/pills-links.d.mts +13 -0
- package/dist/molecules/links/pills-links/pills-links.mjs +60 -0
- package/dist/molecules/menu/close/close.d.mts +8 -0
- package/dist/molecules/menu/close/close.mjs +9 -0
- package/dist/molecules/menu/close/index.d.mts +2 -0
- package/dist/molecules/menu/dropdown-menu/dropdown-menu.d.mts +25 -0
- package/dist/molecules/menu/dropdown-menu/dropdown-menu.mjs +143 -0
- package/dist/molecules/menu/dropdown-menu/index.d.mts +2 -0
- package/dist/molecules/menu/dropdown-menu/use-dropdown-menu-store.mjs +108 -0
- package/dist/molecules/menu/hamburger-menu/hamburger-menu.d.mts +8 -0
- package/dist/molecules/menu/hamburger-menu/hamburger-menu.mjs +9 -0
- package/dist/molecules/menu/hamburger-menu/index.d.mts +2 -0
- package/dist/molecules/menu/menu-item/index.d.mts +2 -0
- package/dist/molecules/menu/menu-item/menu-item.d.mts +16 -0
- package/dist/molecules/menu/menu-item/menu-item.mjs +65 -0
- package/dist/molecules/menu/menu-item/use-menu-item-store.mjs +10 -0
- package/dist/molecules/stat-card/index.d.mts +2 -0
- package/dist/molecules/stat-card/stat-card.d.mts +10 -0
- package/dist/molecules/stat-card/stat-card.mjs +21 -0
- package/dist/molecules/terminal-list-item/index.d.mts +2 -0
- package/dist/molecules/terminal-list-item/terminal-list-item.d.mts +9 -0
- package/dist/molecules/terminal-list-item/terminal-list-item.mjs +13 -0
- package/dist/molecules/terminal-progress-bar/index.d.mts +2 -0
- package/dist/molecules/terminal-progress-bar/terminal-progress-bar.d.mts +11 -0
- package/dist/molecules/terminal-progress-bar/terminal-progress-bar.mjs +20 -0
- package/dist/molecules/typography/page-title/index.d.mts +2 -0
- package/dist/molecules/typography/page-title/page-title.d.mts +5 -0
- package/dist/molecules/typography/page-title/page-title.mjs +8 -0
- package/dist/molecules/typography/paragraph-title-with-icon/index.d.mts +2 -0
- package/dist/molecules/typography/paragraph-title-with-icon/paragraph-title-with-icon.d.mts +8 -0
- package/dist/molecules/typography/paragraph-title-with-icon/paragraph-title-with-icon.mjs +13 -0
- package/dist/molecules/typography/section-heading/index.d.mts +2 -0
- package/dist/molecules/typography/section-heading/section-heading.d.mts +9 -0
- package/dist/molecules/typography/section-heading/section-heading.mjs +17 -0
- package/dist/molecules/video/self-hosted-video/index.d.mts +2 -0
- package/dist/molecules/video/self-hosted-video/self-hosted-video.d.mts +17 -0
- package/dist/molecules/video/self-hosted-video/self-hosted-video.mjs +39 -0
- package/dist/molecules/video/youtube/index.d.mts +2 -0
- package/dist/molecules/video/youtube/youtube.d.mts +9 -0
- package/dist/molecules/video/youtube/youtube.mjs +12 -0
- package/dist/organism/command-palette/command-palette/command-palette.d.mts +12 -0
- package/dist/organism/command-palette/command-palette/command-palette.mjs +148 -0
- package/dist/organism/command-palette/command-palette/index.d.mts +2 -0
- package/dist/organism/command-palette/command-palette/use-command-palette-store.mjs +121 -0
- package/dist/organism/command-palette/command-palette-group/command-palette-group.d.mts +9 -0
- package/dist/organism/command-palette/command-palette-group/command-palette-group.mjs +24 -0
- package/dist/organism/command-palette/command-palette-group/index.d.mts +2 -0
- package/dist/organism/command-palette/command-palette-item/command-palette-item.d.mts +11 -0
- package/dist/organism/command-palette/command-palette-item/command-palette-item.mjs +29 -0
- package/dist/organism/command-palette/command-palette-item/index.d.mts +2 -0
- package/dist/organism/command-palette/command-palette-item/use-command-palette-item-store.mjs +30 -0
- package/dist/organism/command-palette/index.d.mts +9 -0
- package/dist/organism/command-palette/toggle-motion-item/index.d.mts +2 -0
- package/dist/organism/command-palette/toggle-motion-item/toggle-motion-item.d.mts +8 -0
- package/dist/organism/command-palette/toggle-motion-item/toggle-motion-item.mjs +63 -0
- package/dist/organism/command-palette/toggle-motion-item/use-toggle-motion-item-store.mjs +45 -0
- package/dist/organism/cookie-consent-banner/cookie-consent-banner.d.mts +9 -0
- package/dist/organism/cookie-consent-banner/cookie-consent-banner.mjs +71 -0
- package/dist/organism/cookie-consent-banner/use-cookie-consent-banner-store.mjs +10 -0
- package/dist/organism/footer/footer.d.mts +26 -0
- package/dist/organism/footer/footer.mjs +193 -0
- package/dist/organism/footer/index.d.mts +3 -0
- package/dist/organism/footer/use-footer-store.d.mts +22 -0
- package/dist/organism/footer/use-footer-store.mjs +57 -0
- package/dist/organism/header/brand-header/brand-header.d.mts +14 -0
- package/dist/organism/header/brand-header/brand-header.mjs +132 -0
- package/dist/organism/header/brand-header/index.d.mts +2 -0
- package/dist/organism/image-carousel/fullscreen-modal/fullscreen-modal.mjs +148 -0
- package/dist/organism/image-carousel/fullscreen-modal/use-fullscreen-modal-store.mjs +129 -0
- package/dist/organism/image-carousel/image-carousel.d.mts +14 -0
- package/dist/organism/image-carousel/image-carousel.mjs +225 -0
- package/dist/organism/image-carousel/index.d.mts +2 -0
- package/dist/organism/image-carousel/navigation-buttons/navigation-buttons.mjs +22 -0
- package/dist/organism/image-carousel/navigation-buttons/use-navigation-buttons-store.mjs +18 -0
- package/dist/organism/image-carousel/page-indicators/page-indicator-button/page-indicator-button.mjs +14 -0
- package/dist/organism/image-carousel/page-indicators/page-indicator-button/use-page-indicator-button-store.mjs +11 -0
- package/dist/organism/image-carousel/page-indicators/page-indicators.mjs +20 -0
- package/dist/organism/image-carousel/use-image-carousel-store.mjs +88 -0
- package/dist/organism/lightbox/index.d.mts +2 -0
- package/dist/organism/lightbox/lightbox.d.mts +5 -0
- package/dist/organism/lightbox/lightbox.mjs +100 -0
- package/dist/organism/lightbox/use-lightbox-store.mjs +120 -0
- package/dist/organism/loading-bar/loading-bar.d.mts +7 -0
- package/dist/organism/loading-bar/loading-bar.mjs +48 -0
- package/dist/organism/loading-bar/use-loading-bar-store.mjs +52 -0
- package/dist/organism/menu/index.d.mts +3 -0
- package/dist/organism/menu/menu.d.mts +33 -0
- package/dist/organism/menu/menu.mjs +396 -0
- package/dist/organism/menu/use-menu-store.d.mts +22 -0
- package/dist/organism/menu/use-menu-store.mjs +265 -0
- package/dist/organism/profile-hero/index.d.mts +2 -0
- package/dist/organism/profile-hero/profile-hero.d.mts +15 -0
- package/dist/organism/profile-hero/profile-hero.mjs +72 -0
- package/dist/organism/profile-photo/index.d.mts +2 -0
- package/dist/organism/profile-photo/profile-photo.d.mts +12 -0
- package/dist/organism/profile-photo/profile-photo.mjs +17 -0
- package/dist/organism/reading-content-progress-bar/index.d.mts +2 -0
- package/dist/organism/reading-content-progress-bar/reading-content-progress-bar.d.mts +8 -0
- package/dist/organism/reading-content-progress-bar/reading-content-progress-bar.mjs +76 -0
- package/dist/organism/reading-content-progress-bar/use-reading-content-progress-bar-store.mjs +29 -0
- package/dist/organism/social-contacts/index.d.mts +2 -0
- package/dist/organism/social-contacts/social-contacts.d.mts +29 -0
- package/dist/organism/social-contacts/social-contacts.mjs +78 -0
- package/dist/state/command-palette/command-palette-context.d.mts +9 -0
- package/dist/state/command-palette/command-palette-context.mjs +10 -0
- package/dist/state/command-palette/command-palette-events.d.mts +11 -0
- package/dist/state/command-palette/command-palette-events.mjs +15 -0
- package/dist/state/command-palette/command-palette-trigger.d.mts +8 -0
- package/dist/state/lightbox/lightbox-events.d.mts +9 -0
- package/dist/state/lightbox/lightbox-events.mjs +7 -0
- package/dist/state/matrix-rain/matrix-settings.d.mts +37 -0
- package/dist/state/matrix-rain/matrix-settings.mjs +122 -0
- package/dist/state/motion/motion.d.mts +6 -0
- package/dist/state/motion/motion.mjs +17 -0
- package/package.json +160 -0
- package/src/styles/base.css +130 -0
- package/src/styles/components.css +57 -0
- package/src/styles/index.css +23 -0
- package/src/styles/pills.css +85 -0
- package/src/styles/theme.css +254 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useGlassmorphism } from "../../../hooks/use-glassmorphism.mjs";
|
|
3
|
+
import { ImageGlow } from "../../../atoms/effects/image-glow/image-glow.mjs";
|
|
4
|
+
import { Cursor } from "../../../atoms/typography/terminal-blocks/terminal-blocks.mjs";
|
|
5
|
+
import { MatrixHeaderBackground } from "../../../molecules/effects/matrix-header-background/matrix-header-background.mjs";
|
|
6
|
+
import { c } from "react/compiler-runtime";
|
|
7
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
//#region src/organism/header/brand-header/brand-header.tsx
|
|
9
|
+
const Passthrough = (t0) => {
|
|
10
|
+
const $ = c(2);
|
|
11
|
+
const { children } = t0;
|
|
12
|
+
let t1;
|
|
13
|
+
if ($[0] !== children) {
|
|
14
|
+
t1 = /* @__PURE__ */ jsx(Fragment, { children });
|
|
15
|
+
$[0] = children;
|
|
16
|
+
$[1] = t1;
|
|
17
|
+
} else t1 = $[1];
|
|
18
|
+
return t1;
|
|
19
|
+
};
|
|
20
|
+
const BrandHeader = (t0) => {
|
|
21
|
+
const $ = c(23);
|
|
22
|
+
const { big, wrapper: t1, logo, imageComponent } = t0;
|
|
23
|
+
const Wrapper = t1 === void 0 ? Passthrough : t1;
|
|
24
|
+
let t2;
|
|
25
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
26
|
+
t2 = { noScale: true };
|
|
27
|
+
$[0] = t2;
|
|
28
|
+
} else t2 = $[0];
|
|
29
|
+
const { glassmorphismClass } = useGlassmorphism(t2);
|
|
30
|
+
const height = big ? "h-auto" : "h-[170px] md:h-[200px]";
|
|
31
|
+
const margins = big ? "mt-14 mb-8" : "mt-12";
|
|
32
|
+
const t3 = `block ${height}`;
|
|
33
|
+
let t4;
|
|
34
|
+
if ($[1] !== big) {
|
|
35
|
+
t4 = /* @__PURE__ */ jsx(MatrixHeaderBackground, { big });
|
|
36
|
+
$[1] = big;
|
|
37
|
+
$[2] = t4;
|
|
38
|
+
} else t4 = $[2];
|
|
39
|
+
const t5 = `flex items-center ${margins}`;
|
|
40
|
+
const t6 = `${glassmorphismClass} w-full p-5 md:p-9 z-30`;
|
|
41
|
+
let t7;
|
|
42
|
+
if ($[3] !== imageComponent || $[4] !== logo) {
|
|
43
|
+
t7 = /* @__PURE__ */ jsx(ImageGlow, {
|
|
44
|
+
imageComponent,
|
|
45
|
+
src: logo,
|
|
46
|
+
alt: "blog logo",
|
|
47
|
+
width: 80,
|
|
48
|
+
height: 80,
|
|
49
|
+
placeholder: "blur",
|
|
50
|
+
className: "mr-3 h-[50px] w-[50px] object-cover sm:h-[80px] sm:w-[80px]"
|
|
51
|
+
});
|
|
52
|
+
$[3] = imageComponent;
|
|
53
|
+
$[4] = logo;
|
|
54
|
+
$[5] = t7;
|
|
55
|
+
} else t7 = $[5];
|
|
56
|
+
let t8;
|
|
57
|
+
if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
|
|
58
|
+
t8 = /* @__PURE__ */ jsxs("span", {
|
|
59
|
+
className: "text-shadow-md",
|
|
60
|
+
children: [">", " "]
|
|
61
|
+
});
|
|
62
|
+
$[6] = t8;
|
|
63
|
+
} else t8 = $[6];
|
|
64
|
+
let t9;
|
|
65
|
+
if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
|
|
66
|
+
t9 = /* @__PURE__ */ jsxs("div", {
|
|
67
|
+
className: "flex flex-col justify-start",
|
|
68
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
69
|
+
className: "text-accent m-0 block font-mono text-2xl font-bold uppercase text-shadow-lg sm:text-4xl",
|
|
70
|
+
children: [
|
|
71
|
+
t8,
|
|
72
|
+
"CHICIO CODING",
|
|
73
|
+
/* @__PURE__ */ jsx(Cursor, {})
|
|
74
|
+
]
|
|
75
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
76
|
+
className: "text-primary-text font-mono text-xs font-normal text-shadow-md sm:text-lg",
|
|
77
|
+
children: "Pixels. Code. Unplugged."
|
|
78
|
+
})]
|
|
79
|
+
});
|
|
80
|
+
$[7] = t9;
|
|
81
|
+
} else t9 = $[7];
|
|
82
|
+
let t10;
|
|
83
|
+
if ($[8] !== t7) {
|
|
84
|
+
t10 = /* @__PURE__ */ jsxs("div", {
|
|
85
|
+
className: "flex w-full items-center",
|
|
86
|
+
children: [t7, t9]
|
|
87
|
+
});
|
|
88
|
+
$[8] = t7;
|
|
89
|
+
$[9] = t10;
|
|
90
|
+
} else t10 = $[9];
|
|
91
|
+
let t11;
|
|
92
|
+
if ($[10] !== t10 || $[11] !== t6) {
|
|
93
|
+
t11 = /* @__PURE__ */ jsx("div", {
|
|
94
|
+
className: t6,
|
|
95
|
+
children: t10
|
|
96
|
+
});
|
|
97
|
+
$[10] = t10;
|
|
98
|
+
$[11] = t6;
|
|
99
|
+
$[12] = t11;
|
|
100
|
+
} else t11 = $[12];
|
|
101
|
+
let t12;
|
|
102
|
+
if ($[13] !== t11 || $[14] !== t5) {
|
|
103
|
+
t12 = /* @__PURE__ */ jsx("div", {
|
|
104
|
+
className: t5,
|
|
105
|
+
children: t11
|
|
106
|
+
});
|
|
107
|
+
$[13] = t11;
|
|
108
|
+
$[14] = t5;
|
|
109
|
+
$[15] = t12;
|
|
110
|
+
} else t12 = $[15];
|
|
111
|
+
let t13;
|
|
112
|
+
if ($[16] !== Wrapper || $[17] !== t12) {
|
|
113
|
+
t13 = /* @__PURE__ */ jsx(Wrapper, { children: t12 });
|
|
114
|
+
$[16] = Wrapper;
|
|
115
|
+
$[17] = t12;
|
|
116
|
+
$[18] = t13;
|
|
117
|
+
} else t13 = $[18];
|
|
118
|
+
let t14;
|
|
119
|
+
if ($[19] !== t13 || $[20] !== t3 || $[21] !== t4) {
|
|
120
|
+
t14 = /* @__PURE__ */ jsxs("div", {
|
|
121
|
+
className: t3,
|
|
122
|
+
children: [t4, t13]
|
|
123
|
+
});
|
|
124
|
+
$[19] = t13;
|
|
125
|
+
$[20] = t3;
|
|
126
|
+
$[21] = t4;
|
|
127
|
+
$[22] = t14;
|
|
128
|
+
} else t14 = $[22];
|
|
129
|
+
return t14;
|
|
130
|
+
};
|
|
131
|
+
//#endregion
|
|
132
|
+
export { BrandHeader };
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { MotionDiv } from "../../../atoms/animation/motion-div/motion-div.mjs";
|
|
3
|
+
import { Button } from "../../../atoms/buttons/button/button.mjs";
|
|
4
|
+
import { PlainImage } from "../../../atoms/effects/plain-image/plain-image.mjs";
|
|
5
|
+
import { NavigationButtons } from "../navigation-buttons/navigation-buttons.mjs";
|
|
6
|
+
import { PageIndicators } from "../page-indicators/page-indicators.mjs";
|
|
7
|
+
import { useFullscreenModalStore } from "./use-fullscreen-modal-store.mjs";
|
|
8
|
+
import { c } from "react/compiler-runtime";
|
|
9
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
import { BiX } from "react-icons/bi";
|
|
11
|
+
//#region src/organism/image-carousel/fullscreen-modal/fullscreen-modal.tsx
|
|
12
|
+
const FullscreenModal = (t0) => {
|
|
13
|
+
const $ = c(34);
|
|
14
|
+
const { images, currentIndex: initialIndex, onClose, onNavigate, alt, imageComponent: t1 } = t0;
|
|
15
|
+
const Image = t1 === void 0 ? PlainImage : t1;
|
|
16
|
+
const { state, effects } = useFullscreenModalStore(images, initialIndex, onClose, onNavigate);
|
|
17
|
+
const { currentIndex } = state;
|
|
18
|
+
const { setModalEl, goToPrevious, goToNext, navigateTo, stopPropagation, handleKeyDown, handleDragEnd } = effects;
|
|
19
|
+
let t2;
|
|
20
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
21
|
+
t2 = /* @__PURE__ */ jsx(BiX, { className: "size-8 md:size-10" });
|
|
22
|
+
$[0] = t2;
|
|
23
|
+
} else t2 = $[0];
|
|
24
|
+
let t3;
|
|
25
|
+
if ($[1] !== onClose) {
|
|
26
|
+
t3 = /* @__PURE__ */ jsx(Button, {
|
|
27
|
+
onClick: onClose,
|
|
28
|
+
className: "absolute top-4 right-4 z-10 p-2!",
|
|
29
|
+
"aria-label": "Close fullscreen",
|
|
30
|
+
children: t2
|
|
31
|
+
});
|
|
32
|
+
$[1] = onClose;
|
|
33
|
+
$[2] = t3;
|
|
34
|
+
} else t3 = $[2];
|
|
35
|
+
let t4;
|
|
36
|
+
if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
|
|
37
|
+
t4 = {
|
|
38
|
+
left: 0,
|
|
39
|
+
right: 0
|
|
40
|
+
};
|
|
41
|
+
$[3] = t4;
|
|
42
|
+
} else t4 = $[3];
|
|
43
|
+
let t5;
|
|
44
|
+
if ($[4] !== Image || $[5] !== alt || $[6] !== currentIndex || $[7] !== images || $[8] !== initialIndex) {
|
|
45
|
+
let t6;
|
|
46
|
+
if ($[10] !== Image || $[11] !== alt || $[12] !== currentIndex || $[13] !== initialIndex) {
|
|
47
|
+
t6 = (src, index) => /* @__PURE__ */ jsx(MotionDiv, {
|
|
48
|
+
initial: false,
|
|
49
|
+
animate: {
|
|
50
|
+
opacity: index === currentIndex ? 1 : 0,
|
|
51
|
+
x: index === currentIndex ? 0 : index < currentIndex ? -300 : 300
|
|
52
|
+
},
|
|
53
|
+
transition: {
|
|
54
|
+
type: "spring",
|
|
55
|
+
stiffness: 300,
|
|
56
|
+
damping: 30
|
|
57
|
+
},
|
|
58
|
+
className: "absolute inset-0",
|
|
59
|
+
children: /* @__PURE__ */ jsx(Image, {
|
|
60
|
+
src,
|
|
61
|
+
alt: `${alt} - Image ${index + 1}`,
|
|
62
|
+
fill: true,
|
|
63
|
+
loading: index === initialIndex ? "eager" : "lazy",
|
|
64
|
+
className: "object-contain"
|
|
65
|
+
})
|
|
66
|
+
}, index);
|
|
67
|
+
$[10] = Image;
|
|
68
|
+
$[11] = alt;
|
|
69
|
+
$[12] = currentIndex;
|
|
70
|
+
$[13] = initialIndex;
|
|
71
|
+
$[14] = t6;
|
|
72
|
+
} else t6 = $[14];
|
|
73
|
+
t5 = images.map(t6);
|
|
74
|
+
$[4] = Image;
|
|
75
|
+
$[5] = alt;
|
|
76
|
+
$[6] = currentIndex;
|
|
77
|
+
$[7] = images;
|
|
78
|
+
$[8] = initialIndex;
|
|
79
|
+
$[9] = t5;
|
|
80
|
+
} else t5 = $[9];
|
|
81
|
+
let t6;
|
|
82
|
+
if ($[15] !== handleDragEnd || $[16] !== t5) {
|
|
83
|
+
t6 = /* @__PURE__ */ jsx(MotionDiv, {
|
|
84
|
+
drag: "x",
|
|
85
|
+
dragConstraints: t4,
|
|
86
|
+
dragElastic: .2,
|
|
87
|
+
onDragEnd: handleDragEnd,
|
|
88
|
+
className: "relative h-full w-full cursor-grab active:cursor-grabbing",
|
|
89
|
+
children: t5
|
|
90
|
+
});
|
|
91
|
+
$[15] = handleDragEnd;
|
|
92
|
+
$[16] = t5;
|
|
93
|
+
$[17] = t6;
|
|
94
|
+
} else t6 = $[17];
|
|
95
|
+
let t7;
|
|
96
|
+
if ($[18] !== currentIndex || $[19] !== goToNext || $[20] !== goToPrevious || $[21] !== images || $[22] !== navigateTo) {
|
|
97
|
+
t7 = images.length > 1 && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(NavigationButtons, {
|
|
98
|
+
onPrevious: goToPrevious,
|
|
99
|
+
onNext: goToNext,
|
|
100
|
+
stopPropagation: true
|
|
101
|
+
}), /* @__PURE__ */ jsx(PageIndicators, {
|
|
102
|
+
images,
|
|
103
|
+
currentIndex,
|
|
104
|
+
onSelect: navigateTo,
|
|
105
|
+
glassmorphism: true
|
|
106
|
+
})] });
|
|
107
|
+
$[18] = currentIndex;
|
|
108
|
+
$[19] = goToNext;
|
|
109
|
+
$[20] = goToPrevious;
|
|
110
|
+
$[21] = images;
|
|
111
|
+
$[22] = navigateTo;
|
|
112
|
+
$[23] = t7;
|
|
113
|
+
} else t7 = $[23];
|
|
114
|
+
let t8;
|
|
115
|
+
if ($[24] !== stopPropagation || $[25] !== t6 || $[26] !== t7) {
|
|
116
|
+
t8 = /* @__PURE__ */ jsxs("div", {
|
|
117
|
+
className: "glow-container relative flex h-10/12 sm:h-full w-full max-w-11/12 sm:max-w-10/12 items-center bg-general-background justify-center overflow-hidden",
|
|
118
|
+
onClick: stopPropagation,
|
|
119
|
+
children: [t6, t7]
|
|
120
|
+
});
|
|
121
|
+
$[24] = stopPropagation;
|
|
122
|
+
$[25] = t6;
|
|
123
|
+
$[26] = t7;
|
|
124
|
+
$[27] = t8;
|
|
125
|
+
} else t8 = $[27];
|
|
126
|
+
let t9;
|
|
127
|
+
if ($[28] !== handleKeyDown || $[29] !== onClose || $[30] !== setModalEl || $[31] !== t3 || $[32] !== t8) {
|
|
128
|
+
t9 = /* @__PURE__ */ jsxs("div", {
|
|
129
|
+
ref: setModalEl,
|
|
130
|
+
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/90 p-4",
|
|
131
|
+
onClick: onClose,
|
|
132
|
+
onKeyDown: handleKeyDown,
|
|
133
|
+
role: "dialog",
|
|
134
|
+
"aria-modal": "true",
|
|
135
|
+
tabIndex: 0,
|
|
136
|
+
children: [t3, t8]
|
|
137
|
+
});
|
|
138
|
+
$[28] = handleKeyDown;
|
|
139
|
+
$[29] = onClose;
|
|
140
|
+
$[30] = setModalEl;
|
|
141
|
+
$[31] = t3;
|
|
142
|
+
$[32] = t8;
|
|
143
|
+
$[33] = t9;
|
|
144
|
+
} else t9 = $[33];
|
|
145
|
+
return t9;
|
|
146
|
+
};
|
|
147
|
+
//#endregion
|
|
148
|
+
export { FullscreenModal };
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { c } from "react/compiler-runtime";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
//#region src/organism/image-carousel/fullscreen-modal/use-fullscreen-modal-store.ts
|
|
5
|
+
const useFullscreenModalStore = (images, initialIndex, onClose, onNavigate) => {
|
|
6
|
+
const $ = c(32);
|
|
7
|
+
const [currentIndex, setCurrentIndex] = useState(initialIndex);
|
|
8
|
+
const [modalEl, setModalEl] = useState(null);
|
|
9
|
+
let t0;
|
|
10
|
+
let t1;
|
|
11
|
+
if ($[0] !== modalEl) {
|
|
12
|
+
t0 = () => {
|
|
13
|
+
modalEl?.focus();
|
|
14
|
+
};
|
|
15
|
+
t1 = [modalEl];
|
|
16
|
+
$[0] = modalEl;
|
|
17
|
+
$[1] = t0;
|
|
18
|
+
$[2] = t1;
|
|
19
|
+
} else {
|
|
20
|
+
t0 = $[1];
|
|
21
|
+
t1 = $[2];
|
|
22
|
+
}
|
|
23
|
+
useEffect(t0, t1);
|
|
24
|
+
let t2;
|
|
25
|
+
if ($[3] !== currentIndex || $[4] !== images || $[5] !== onNavigate) {
|
|
26
|
+
t2 = () => {
|
|
27
|
+
const newIndex = currentIndex === 0 ? images.length - 1 : currentIndex - 1;
|
|
28
|
+
setCurrentIndex(newIndex);
|
|
29
|
+
onNavigate?.(newIndex);
|
|
30
|
+
};
|
|
31
|
+
$[3] = currentIndex;
|
|
32
|
+
$[4] = images;
|
|
33
|
+
$[5] = onNavigate;
|
|
34
|
+
$[6] = t2;
|
|
35
|
+
} else t2 = $[6];
|
|
36
|
+
const goToPrevious = t2;
|
|
37
|
+
let t3;
|
|
38
|
+
if ($[7] !== currentIndex || $[8] !== images || $[9] !== onNavigate) {
|
|
39
|
+
t3 = () => {
|
|
40
|
+
const newIndex_0 = currentIndex === images.length - 1 ? 0 : currentIndex + 1;
|
|
41
|
+
setCurrentIndex(newIndex_0);
|
|
42
|
+
onNavigate?.(newIndex_0);
|
|
43
|
+
};
|
|
44
|
+
$[7] = currentIndex;
|
|
45
|
+
$[8] = images;
|
|
46
|
+
$[9] = onNavigate;
|
|
47
|
+
$[10] = t3;
|
|
48
|
+
} else t3 = $[10];
|
|
49
|
+
const goToNext = t3;
|
|
50
|
+
let t4;
|
|
51
|
+
if ($[11] !== onNavigate) {
|
|
52
|
+
t4 = (index) => {
|
|
53
|
+
setCurrentIndex(index);
|
|
54
|
+
onNavigate?.(index);
|
|
55
|
+
};
|
|
56
|
+
$[11] = onNavigate;
|
|
57
|
+
$[12] = t4;
|
|
58
|
+
} else t4 = $[12];
|
|
59
|
+
const navigateTo = t4;
|
|
60
|
+
const stopPropagation = _temp;
|
|
61
|
+
let t5;
|
|
62
|
+
if ($[13] !== goToNext || $[14] !== goToPrevious || $[15] !== onClose) {
|
|
63
|
+
t5 = (e_0) => {
|
|
64
|
+
if (e_0.key === "Escape") onClose();
|
|
65
|
+
if (e_0.key === "ArrowLeft") goToPrevious();
|
|
66
|
+
if (e_0.key === "ArrowRight") goToNext();
|
|
67
|
+
};
|
|
68
|
+
$[13] = goToNext;
|
|
69
|
+
$[14] = goToPrevious;
|
|
70
|
+
$[15] = onClose;
|
|
71
|
+
$[16] = t5;
|
|
72
|
+
} else t5 = $[16];
|
|
73
|
+
const handleKeyDown = t5;
|
|
74
|
+
let t6;
|
|
75
|
+
if ($[17] !== goToNext || $[18] !== goToPrevious) {
|
|
76
|
+
t6 = (_, info) => {
|
|
77
|
+
if (info.offset.x > 50) goToPrevious();
|
|
78
|
+
else if (info.offset.x < -50) goToNext();
|
|
79
|
+
};
|
|
80
|
+
$[17] = goToNext;
|
|
81
|
+
$[18] = goToPrevious;
|
|
82
|
+
$[19] = t6;
|
|
83
|
+
} else t6 = $[19];
|
|
84
|
+
const handleDragEnd = t6;
|
|
85
|
+
let t7;
|
|
86
|
+
if ($[20] !== currentIndex || $[21] !== modalEl) {
|
|
87
|
+
t7 = {
|
|
88
|
+
currentIndex,
|
|
89
|
+
modalEl
|
|
90
|
+
};
|
|
91
|
+
$[20] = currentIndex;
|
|
92
|
+
$[21] = modalEl;
|
|
93
|
+
$[22] = t7;
|
|
94
|
+
} else t7 = $[22];
|
|
95
|
+
let t8;
|
|
96
|
+
if ($[23] !== goToNext || $[24] !== goToPrevious || $[25] !== handleDragEnd || $[26] !== handleKeyDown || $[27] !== navigateTo) {
|
|
97
|
+
t8 = {
|
|
98
|
+
setModalEl,
|
|
99
|
+
goToPrevious,
|
|
100
|
+
goToNext,
|
|
101
|
+
navigateTo,
|
|
102
|
+
stopPropagation,
|
|
103
|
+
handleKeyDown,
|
|
104
|
+
handleDragEnd
|
|
105
|
+
};
|
|
106
|
+
$[23] = goToNext;
|
|
107
|
+
$[24] = goToPrevious;
|
|
108
|
+
$[25] = handleDragEnd;
|
|
109
|
+
$[26] = handleKeyDown;
|
|
110
|
+
$[27] = navigateTo;
|
|
111
|
+
$[28] = t8;
|
|
112
|
+
} else t8 = $[28];
|
|
113
|
+
let t9;
|
|
114
|
+
if ($[29] !== t7 || $[30] !== t8) {
|
|
115
|
+
t9 = {
|
|
116
|
+
state: t7,
|
|
117
|
+
effects: t8
|
|
118
|
+
};
|
|
119
|
+
$[29] = t7;
|
|
120
|
+
$[30] = t8;
|
|
121
|
+
$[31] = t9;
|
|
122
|
+
} else t9 = $[31];
|
|
123
|
+
return t9;
|
|
124
|
+
};
|
|
125
|
+
function _temp(e) {
|
|
126
|
+
return e.stopPropagation();
|
|
127
|
+
}
|
|
128
|
+
//#endregion
|
|
129
|
+
export { useFullscreenModalStore };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ImageComponent } from "../../atoms/effects/plain-image/plain-image.mjs";
|
|
2
|
+
import "../../atoms/effects/plain-image/index.mjs";
|
|
3
|
+
import { FC } from "react";
|
|
4
|
+
//#region src/organism/image-carousel/image-carousel.d.ts
|
|
5
|
+
interface ImageCarouselProps {
|
|
6
|
+
images: string[];
|
|
7
|
+
alt: string;
|
|
8
|
+
caption?: string;
|
|
9
|
+
className?: string;
|
|
10
|
+
imageComponent?: ImageComponent;
|
|
11
|
+
}
|
|
12
|
+
declare const ImageCarousel: FC<ImageCarouselProps>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { ImageCarousel, ImageCarouselProps };
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { MotionDiv } from "../../atoms/animation/motion-div/motion-div.mjs";
|
|
3
|
+
import { imageShimmerPlaceholder } from "../../atoms/effects/image-shimmer-placeholder/image-shimmer-placeholder.mjs";
|
|
4
|
+
import { PlainImage } from "../../atoms/effects/plain-image/plain-image.mjs";
|
|
5
|
+
import { ImageGlow } from "../../atoms/effects/image-glow/image-glow.mjs";
|
|
6
|
+
import { NavigationButtons } from "./navigation-buttons/navigation-buttons.mjs";
|
|
7
|
+
import { PageIndicators } from "./page-indicators/page-indicators.mjs";
|
|
8
|
+
import { FullscreenModal } from "./fullscreen-modal/fullscreen-modal.mjs";
|
|
9
|
+
import { useImageCarouselStore } from "./use-image-carousel-store.mjs";
|
|
10
|
+
import { c } from "react/compiler-runtime";
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
//#region src/organism/image-carousel/image-carousel.tsx
|
|
13
|
+
const ImageCarousel = (t0) => {
|
|
14
|
+
const $ = c(59);
|
|
15
|
+
const { images, alt, caption, className, imageComponent: t1 } = t0;
|
|
16
|
+
const Image = t1 === void 0 ? PlainImage : t1;
|
|
17
|
+
const { state, effects } = useImageCarouselStore(images.length);
|
|
18
|
+
const { currentIndex, isFullscreen } = state;
|
|
19
|
+
const { goToPrevious, goToNext, openFullscreen, closeFullscreen, setCurrentIndex, handleDragEnd } = effects;
|
|
20
|
+
if (images.length === 1) {
|
|
21
|
+
const singleImage = images[0];
|
|
22
|
+
let t2;
|
|
23
|
+
if ($[0] !== Image || $[1] !== alt || $[2] !== openFullscreen || $[3] !== singleImage) {
|
|
24
|
+
t2 = /* @__PURE__ */ jsx(ImageGlow, {
|
|
25
|
+
imageComponent: Image,
|
|
26
|
+
src: singleImage,
|
|
27
|
+
alt,
|
|
28
|
+
width: 800,
|
|
29
|
+
height: 450,
|
|
30
|
+
className: "h-96 w-full cursor-pointer object-contain bg-general-background-light overflow-hidden",
|
|
31
|
+
onClick: openFullscreen
|
|
32
|
+
});
|
|
33
|
+
$[0] = Image;
|
|
34
|
+
$[1] = alt;
|
|
35
|
+
$[2] = openFullscreen;
|
|
36
|
+
$[3] = singleImage;
|
|
37
|
+
$[4] = t2;
|
|
38
|
+
} else t2 = $[4];
|
|
39
|
+
let t3;
|
|
40
|
+
if ($[5] !== caption) {
|
|
41
|
+
t3 = caption && /* @__PURE__ */ jsx("figcaption", { children: caption });
|
|
42
|
+
$[5] = caption;
|
|
43
|
+
$[6] = t3;
|
|
44
|
+
} else t3 = $[6];
|
|
45
|
+
let t4;
|
|
46
|
+
if ($[7] !== Image || $[8] !== alt || $[9] !== closeFullscreen || $[10] !== images || $[11] !== isFullscreen) {
|
|
47
|
+
t4 = isFullscreen && /* @__PURE__ */ jsx(FullscreenModal, {
|
|
48
|
+
images,
|
|
49
|
+
currentIndex: 0,
|
|
50
|
+
onClose: closeFullscreen,
|
|
51
|
+
alt,
|
|
52
|
+
imageComponent: Image
|
|
53
|
+
});
|
|
54
|
+
$[7] = Image;
|
|
55
|
+
$[8] = alt;
|
|
56
|
+
$[9] = closeFullscreen;
|
|
57
|
+
$[10] = images;
|
|
58
|
+
$[11] = isFullscreen;
|
|
59
|
+
$[12] = t4;
|
|
60
|
+
} else t4 = $[12];
|
|
61
|
+
let t5;
|
|
62
|
+
if ($[13] !== className || $[14] !== t2 || $[15] !== t3 || $[16] !== t4) {
|
|
63
|
+
t5 = /* @__PURE__ */ jsxs("div", {
|
|
64
|
+
className,
|
|
65
|
+
children: [
|
|
66
|
+
t2,
|
|
67
|
+
t3,
|
|
68
|
+
t4
|
|
69
|
+
]
|
|
70
|
+
});
|
|
71
|
+
$[13] = className;
|
|
72
|
+
$[14] = t2;
|
|
73
|
+
$[15] = t3;
|
|
74
|
+
$[16] = t4;
|
|
75
|
+
$[17] = t5;
|
|
76
|
+
} else t5 = $[17];
|
|
77
|
+
return t5;
|
|
78
|
+
}
|
|
79
|
+
const t2 = `relative ${className}`;
|
|
80
|
+
let t3;
|
|
81
|
+
if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
|
|
82
|
+
t3 = {
|
|
83
|
+
left: 0,
|
|
84
|
+
right: 0
|
|
85
|
+
};
|
|
86
|
+
$[18] = t3;
|
|
87
|
+
} else t3 = $[18];
|
|
88
|
+
let t4;
|
|
89
|
+
if ($[19] !== Image || $[20] !== alt || $[21] !== currentIndex || $[22] !== images || $[23] !== openFullscreen) {
|
|
90
|
+
let t5;
|
|
91
|
+
if ($[25] !== Image || $[26] !== alt || $[27] !== currentIndex || $[28] !== openFullscreen) {
|
|
92
|
+
t5 = (src, index) => /* @__PURE__ */ jsx(MotionDiv, {
|
|
93
|
+
initial: false,
|
|
94
|
+
animate: {
|
|
95
|
+
opacity: index === currentIndex ? 1 : 0,
|
|
96
|
+
x: index === currentIndex ? 0 : index < currentIndex ? -300 : 300
|
|
97
|
+
},
|
|
98
|
+
transition: {
|
|
99
|
+
type: "spring",
|
|
100
|
+
stiffness: 300,
|
|
101
|
+
damping: 30
|
|
102
|
+
},
|
|
103
|
+
className: "absolute inset-0",
|
|
104
|
+
children: /* @__PURE__ */ jsx(Image, {
|
|
105
|
+
src,
|
|
106
|
+
alt: `${alt} - Image ${index + 1}`,
|
|
107
|
+
width: 800,
|
|
108
|
+
height: 450,
|
|
109
|
+
loading: index === 0 ? "eager" : "lazy",
|
|
110
|
+
className: "h-96 w-full cursor-pointer object-contain bg-general-background-light overflow-hidden",
|
|
111
|
+
onClick: openFullscreen,
|
|
112
|
+
placeholder: imageShimmerPlaceholder
|
|
113
|
+
})
|
|
114
|
+
}, index);
|
|
115
|
+
$[25] = Image;
|
|
116
|
+
$[26] = alt;
|
|
117
|
+
$[27] = currentIndex;
|
|
118
|
+
$[28] = openFullscreen;
|
|
119
|
+
$[29] = t5;
|
|
120
|
+
} else t5 = $[29];
|
|
121
|
+
t4 = images.map(t5);
|
|
122
|
+
$[19] = Image;
|
|
123
|
+
$[20] = alt;
|
|
124
|
+
$[21] = currentIndex;
|
|
125
|
+
$[22] = images;
|
|
126
|
+
$[23] = openFullscreen;
|
|
127
|
+
$[24] = t4;
|
|
128
|
+
} else t4 = $[24];
|
|
129
|
+
let t5;
|
|
130
|
+
if ($[30] !== handleDragEnd || $[31] !== t4) {
|
|
131
|
+
t5 = /* @__PURE__ */ jsx(MotionDiv, {
|
|
132
|
+
drag: "x",
|
|
133
|
+
dragConstraints: t3,
|
|
134
|
+
dragElastic: .2,
|
|
135
|
+
onDragEnd: handleDragEnd,
|
|
136
|
+
className: "relative h-96 cursor-grab active:cursor-grabbing",
|
|
137
|
+
children: t4
|
|
138
|
+
});
|
|
139
|
+
$[30] = handleDragEnd;
|
|
140
|
+
$[31] = t4;
|
|
141
|
+
$[32] = t5;
|
|
142
|
+
} else t5 = $[32];
|
|
143
|
+
let t6;
|
|
144
|
+
if ($[33] !== goToNext || $[34] !== goToPrevious) {
|
|
145
|
+
t6 = /* @__PURE__ */ jsx(NavigationButtons, {
|
|
146
|
+
onPrevious: goToPrevious,
|
|
147
|
+
onNext: goToNext
|
|
148
|
+
});
|
|
149
|
+
$[33] = goToNext;
|
|
150
|
+
$[34] = goToPrevious;
|
|
151
|
+
$[35] = t6;
|
|
152
|
+
} else t6 = $[35];
|
|
153
|
+
let t7;
|
|
154
|
+
if ($[36] !== currentIndex || $[37] !== images || $[38] !== setCurrentIndex) {
|
|
155
|
+
t7 = /* @__PURE__ */ jsx(PageIndicators, {
|
|
156
|
+
images,
|
|
157
|
+
currentIndex,
|
|
158
|
+
onSelect: setCurrentIndex,
|
|
159
|
+
glassmorphism: true
|
|
160
|
+
});
|
|
161
|
+
$[36] = currentIndex;
|
|
162
|
+
$[37] = images;
|
|
163
|
+
$[38] = setCurrentIndex;
|
|
164
|
+
$[39] = t7;
|
|
165
|
+
} else t7 = $[39];
|
|
166
|
+
let t8;
|
|
167
|
+
if ($[40] !== t5 || $[41] !== t6 || $[42] !== t7) {
|
|
168
|
+
t8 = /* @__PURE__ */ jsxs("div", {
|
|
169
|
+
className: "glow-container relative overflow-hidden",
|
|
170
|
+
children: [
|
|
171
|
+
t5,
|
|
172
|
+
t6,
|
|
173
|
+
t7
|
|
174
|
+
]
|
|
175
|
+
});
|
|
176
|
+
$[40] = t5;
|
|
177
|
+
$[41] = t6;
|
|
178
|
+
$[42] = t7;
|
|
179
|
+
$[43] = t8;
|
|
180
|
+
} else t8 = $[43];
|
|
181
|
+
let t9;
|
|
182
|
+
if ($[44] !== caption) {
|
|
183
|
+
t9 = caption && /* @__PURE__ */ jsx("figcaption", { children: caption });
|
|
184
|
+
$[44] = caption;
|
|
185
|
+
$[45] = t9;
|
|
186
|
+
} else t9 = $[45];
|
|
187
|
+
let t10;
|
|
188
|
+
if ($[46] !== Image || $[47] !== alt || $[48] !== closeFullscreen || $[49] !== currentIndex || $[50] !== images || $[51] !== isFullscreen || $[52] !== setCurrentIndex) {
|
|
189
|
+
t10 = isFullscreen && /* @__PURE__ */ jsx(FullscreenModal, {
|
|
190
|
+
images,
|
|
191
|
+
currentIndex,
|
|
192
|
+
onClose: closeFullscreen,
|
|
193
|
+
onNavigate: setCurrentIndex,
|
|
194
|
+
alt,
|
|
195
|
+
imageComponent: Image
|
|
196
|
+
});
|
|
197
|
+
$[46] = Image;
|
|
198
|
+
$[47] = alt;
|
|
199
|
+
$[48] = closeFullscreen;
|
|
200
|
+
$[49] = currentIndex;
|
|
201
|
+
$[50] = images;
|
|
202
|
+
$[51] = isFullscreen;
|
|
203
|
+
$[52] = setCurrentIndex;
|
|
204
|
+
$[53] = t10;
|
|
205
|
+
} else t10 = $[53];
|
|
206
|
+
let t11;
|
|
207
|
+
if ($[54] !== t10 || $[55] !== t2 || $[56] !== t8 || $[57] !== t9) {
|
|
208
|
+
t11 = /* @__PURE__ */ jsxs("div", {
|
|
209
|
+
className: t2,
|
|
210
|
+
children: [
|
|
211
|
+
t8,
|
|
212
|
+
t9,
|
|
213
|
+
t10
|
|
214
|
+
]
|
|
215
|
+
});
|
|
216
|
+
$[54] = t10;
|
|
217
|
+
$[55] = t2;
|
|
218
|
+
$[56] = t8;
|
|
219
|
+
$[57] = t9;
|
|
220
|
+
$[58] = t11;
|
|
221
|
+
} else t11 = $[58];
|
|
222
|
+
return t11;
|
|
223
|
+
};
|
|
224
|
+
//#endregion
|
|
225
|
+
export { ImageCarousel };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Button } from "../../../atoms/buttons/button/button.mjs";
|
|
2
|
+
import { useNavigationButtonsStore } from "./use-navigation-buttons-store.mjs";
|
|
3
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { BiChevronLeft, BiChevronRight } from "react-icons/bi";
|
|
5
|
+
//#region src/organism/image-carousel/navigation-buttons/navigation-buttons.tsx
|
|
6
|
+
const NavigationButtons = ({ onPrevious, onNext, stopPropagation = false }) => {
|
|
7
|
+
const { effects } = useNavigationButtonsStore(onPrevious, onNext, stopPropagation);
|
|
8
|
+
const { handlePrevious, handleNext } = effects;
|
|
9
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Button, {
|
|
10
|
+
onClick: handlePrevious,
|
|
11
|
+
className: "absolute top-1/2 left-4 -translate-y-1/2 hidden md:flex",
|
|
12
|
+
"aria-label": "Previous image",
|
|
13
|
+
children: /* @__PURE__ */ jsx(BiChevronLeft, { className: "size-10 md:size-12" })
|
|
14
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
15
|
+
onClick: handleNext,
|
|
16
|
+
className: "absolute top-1/2 right-4 -translate-y-1/2 hidden md:flex",
|
|
17
|
+
"aria-label": "Next image",
|
|
18
|
+
children: /* @__PURE__ */ jsx(BiChevronRight, { className: "size-10 md:size-12" })
|
|
19
|
+
})] });
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|
|
22
|
+
export { NavigationButtons };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region src/organism/image-carousel/navigation-buttons/use-navigation-buttons-store.ts
|
|
3
|
+
const useNavigationButtonsStore = (onPrevious, onNext, stopPropagation) => {
|
|
4
|
+
const handlePrevious = (e) => {
|
|
5
|
+
if (stopPropagation) e.stopPropagation();
|
|
6
|
+
onPrevious();
|
|
7
|
+
};
|
|
8
|
+
const handleNext = (e) => {
|
|
9
|
+
if (stopPropagation) e.stopPropagation();
|
|
10
|
+
onNext();
|
|
11
|
+
};
|
|
12
|
+
return { effects: {
|
|
13
|
+
handlePrevious,
|
|
14
|
+
handleNext
|
|
15
|
+
} };
|
|
16
|
+
};
|
|
17
|
+
//#endregion
|
|
18
|
+
export { useNavigationButtonsStore };
|