@studio-helga/once-ui-core 1.7.8
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/README.md +54 -0
- package/dist/README.md +54 -0
- package/dist/components/Accordion.d.ts +25 -0
- package/dist/components/Accordion.d.ts.map +1 -0
- package/dist/components/Accordion.js +75 -0
- package/dist/components/Accordion.js.map +1 -0
- package/dist/components/Accordion.module.scss +5 -0
- package/dist/components/AccordionGroup.d.ts +16 -0
- package/dist/components/AccordionGroup.d.ts.map +1 -0
- package/dist/components/AccordionGroup.js +27 -0
- package/dist/components/AccordionGroup.js.map +1 -0
- package/dist/components/Animation.d.ts +34 -0
- package/dist/components/Animation.d.ts.map +1 -0
- package/dist/components/Animation.js +230 -0
- package/dist/components/Animation.js.map +1 -0
- package/dist/components/Arrow.d.ts +11 -0
- package/dist/components/Arrow.d.ts.map +1 -0
- package/dist/components/Arrow.js +33 -0
- package/dist/components/Arrow.js.map +1 -0
- package/dist/components/Arrow.module.scss +39 -0
- package/dist/components/ArrowNavigationContext.d.ts +33 -0
- package/dist/components/ArrowNavigationContext.d.ts.map +1 -0
- package/dist/components/ArrowNavigationContext.js +60 -0
- package/dist/components/ArrowNavigationContext.js.map +1 -0
- package/dist/components/AutoScroll.d.ts +14 -0
- package/dist/components/AutoScroll.d.ts.map +1 -0
- package/dist/components/AutoScroll.js +178 -0
- package/dist/components/AutoScroll.js.map +1 -0
- package/dist/components/AutoScroll.module.scss +9 -0
- package/dist/components/Avatar.d.ts +21 -0
- package/dist/components/Avatar.d.ts.map +1 -0
- package/dist/components/Avatar.js +54 -0
- package/dist/components/Avatar.js.map +1 -0
- package/dist/components/Avatar.module.scss +56 -0
- package/dist/components/AvatarGroup.d.ts +14 -0
- package/dist/components/AvatarGroup.d.ts.map +1 -0
- package/dist/components/AvatarGroup.js +20 -0
- package/dist/components/AvatarGroup.js.map +1 -0
- package/dist/components/AvatarGroup.module.scss +11 -0
- package/dist/components/Background.d.ts +49 -0
- package/dist/components/Background.d.ts.map +1 -0
- package/dist/components/Background.js +72 -0
- package/dist/components/Background.js.map +1 -0
- package/dist/components/Background.module.scss +23 -0
- package/dist/components/Badge.d.ts +17 -0
- package/dist/components/Badge.d.ts.map +1 -0
- package/dist/components/Badge.js +21 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/Badge.module.scss +67 -0
- package/dist/components/Banner.d.ts +6 -0
- package/dist/components/Banner.d.ts.map +1 -0
- package/dist/components/Banner.js +7 -0
- package/dist/components/Banner.js.map +1 -0
- package/dist/components/BlobFx.d.ts +8 -0
- package/dist/components/BlobFx.d.ts.map +1 -0
- package/dist/components/BlobFx.js +82 -0
- package/dist/components/BlobFx.js.map +1 -0
- package/dist/components/BlockQuote.d.ts +21 -0
- package/dist/components/BlockQuote.d.ts.map +1 -0
- package/dist/components/BlockQuote.js +10 -0
- package/dist/components/BlockQuote.js.map +1 -0
- package/dist/components/Button.d.ts +27 -0
- package/dist/components/Button.d.ts.map +1 -0
- package/dist/components/Button.js +25 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/Button.module.scss +154 -0
- package/dist/components/Card.d.ts +13 -0
- package/dist/components/Card.d.ts.map +1 -0
- package/dist/components/Card.js +13 -0
- package/dist/components/Card.js.map +1 -0
- package/dist/components/Card.module.scss +7 -0
- package/dist/components/Carousel.d.ts +32 -0
- package/dist/components/Carousel.d.ts.map +1 -0
- package/dist/components/Carousel.js +156 -0
- package/dist/components/Carousel.js.map +1 -0
- package/dist/components/Carousel.module.scss +48 -0
- package/dist/components/CelebrationFx.d.ts +17 -0
- package/dist/components/CelebrationFx.d.ts.map +1 -0
- package/dist/components/CelebrationFx.js +314 -0
- package/dist/components/CelebrationFx.js.map +1 -0
- package/dist/components/Checkbox.d.ts +11 -0
- package/dist/components/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox.js +56 -0
- package/dist/components/Checkbox.js.map +1 -0
- package/dist/components/Chip.d.ts +17 -0
- package/dist/components/Chip.d.ts.map +1 -0
- package/dist/components/Chip.js +43 -0
- package/dist/components/Chip.js.map +1 -0
- package/dist/components/Chip.module.scss +39 -0
- package/dist/components/ClientFlex.d.ts +13 -0
- package/dist/components/ClientFlex.d.ts.map +1 -0
- package/dist/components/ClientFlex.js +110 -0
- package/dist/components/ClientFlex.js.map +1 -0
- package/dist/components/ClientGrid.d.ts +13 -0
- package/dist/components/ClientGrid.d.ts.map +1 -0
- package/dist/components/ClientGrid.js +110 -0
- package/dist/components/ClientGrid.js.map +1 -0
- package/dist/components/ColorInput.d.ts +11 -0
- package/dist/components/ColorInput.d.ts.map +1 -0
- package/dist/components/ColorInput.js +78 -0
- package/dist/components/ColorInput.js.map +1 -0
- package/dist/components/Column.d.ts +7 -0
- package/dist/components/Column.d.ts.map +1 -0
- package/dist/components/Column.js +10 -0
- package/dist/components/Column.js.map +1 -0
- package/dist/components/CompareImage.d.ts +16 -0
- package/dist/components/CompareImage.d.ts.map +1 -0
- package/dist/components/CompareImage.js +58 -0
- package/dist/components/CompareImage.js.map +1 -0
- package/dist/components/CompareImage.module.scss +14 -0
- package/dist/components/ContextMenu.d.ts +22 -0
- package/dist/components/ContextMenu.d.ts.map +1 -0
- package/dist/components/ContextMenu.js +224 -0
- package/dist/components/ContextMenu.js.map +1 -0
- package/dist/components/ContextMenu.module.scss +15 -0
- package/dist/components/CountFx.d.ts +15 -0
- package/dist/components/CountFx.d.ts.map +1 -0
- package/dist/components/CountFx.js +203 -0
- package/dist/components/CountFx.js.map +1 -0
- package/dist/components/CountdownFx.d.ts +11 -0
- package/dist/components/CountdownFx.d.ts.map +1 -0
- package/dist/components/CountdownFx.js +49 -0
- package/dist/components/CountdownFx.js.map +1 -0
- package/dist/components/Cursor.d.ts +8 -0
- package/dist/components/Cursor.d.ts.map +1 -0
- package/dist/components/Cursor.js +79 -0
- package/dist/components/Cursor.js.map +1 -0
- package/dist/components/CursorCard.d.ts +13 -0
- package/dist/components/CursorCard.d.ts.map +1 -0
- package/dist/components/CursorCard.js +63 -0
- package/dist/components/CursorCard.js.map +1 -0
- package/dist/components/CursorCard.module.scss +12 -0
- package/dist/components/DateInput.d.ts +18 -0
- package/dist/components/DateInput.d.ts.map +1 -0
- package/dist/components/DateInput.js +43 -0
- package/dist/components/DateInput.js.map +1 -0
- package/dist/components/DatePicker.d.ts +33 -0
- package/dist/components/DatePicker.d.ts.map +1 -0
- package/dist/components/DatePicker.js +487 -0
- package/dist/components/DatePicker.js.map +1 -0
- package/dist/components/DatePicker.module.scss +194 -0
- package/dist/components/DateRangeInput.d.ts +15 -0
- package/dist/components/DateRangeInput.d.ts.map +1 -0
- package/dist/components/DateRangeInput.js +45 -0
- package/dist/components/DateRangeInput.js.map +1 -0
- package/dist/components/DateRangePicker.d.ts +17 -0
- package/dist/components/DateRangePicker.d.ts.map +1 -0
- package/dist/components/DateRangePicker.js +78 -0
- package/dist/components/DateRangePicker.js.map +1 -0
- package/dist/components/Dialog.d.ts +21 -0
- package/dist/components/Dialog.d.ts.map +1 -0
- package/dist/components/Dialog.js +230 -0
- package/dist/components/Dialog.js.map +1 -0
- package/dist/components/Dialog.module.scss +33 -0
- package/dist/components/Dropdown.d.ts +13 -0
- package/dist/components/Dropdown.d.ts.map +1 -0
- package/dist/components/Dropdown.js +21 -0
- package/dist/components/Dropdown.js.map +1 -0
- package/dist/components/DropdownWrapper.d.ts +29 -0
- package/dist/components/DropdownWrapper.d.ts.map +1 -0
- package/dist/components/DropdownWrapper.js +505 -0
- package/dist/components/DropdownWrapper.js.map +1 -0
- package/dist/components/DropdownWrapper.module.scss +15 -0
- package/dist/components/ElementType.d.ts +14 -0
- package/dist/components/ElementType.d.ts.map +1 -0
- package/dist/components/ElementType.js +21 -0
- package/dist/components/ElementType.js.map +1 -0
- package/dist/components/EmojiPicker.d.ts +16 -0
- package/dist/components/EmojiPicker.d.ts.map +1 -0
- package/dist/components/EmojiPicker.js +178 -0
- package/dist/components/EmojiPicker.js.map +1 -0
- package/dist/components/EmojiPicker.module.scss +14 -0
- package/dist/components/EmojiPickerDropdown.d.ts +11 -0
- package/dist/components/EmojiPickerDropdown.d.ts.map +1 -0
- package/dist/components/EmojiPickerDropdown.js +14 -0
- package/dist/components/EmojiPickerDropdown.js.map +1 -0
- package/dist/components/Fade.d.ts +19 -0
- package/dist/components/Fade.d.ts.map +1 -0
- package/dist/components/Fade.js +43 -0
- package/dist/components/Fade.js.map +1 -0
- package/dist/components/Fade.module.scss +6 -0
- package/dist/components/FadingLettersFx.d.ts +15 -0
- package/dist/components/FadingLettersFx.d.ts.map +1 -0
- package/dist/components/FadingLettersFx.js +27 -0
- package/dist/components/FadingLettersFx.js.map +1 -0
- package/dist/components/FadingLettersFx.module.scss +71 -0
- package/dist/components/Feedback.d.ts +16 -0
- package/dist/components/Feedback.d.ts.map +1 -0
- package/dist/components/Feedback.js +16 -0
- package/dist/components/Feedback.js.map +1 -0
- package/dist/components/Flex.d.ts +11 -0
- package/dist/components/Flex.d.ts.map +1 -0
- package/dist/components/Flex.js +31 -0
- package/dist/components/Flex.js.map +1 -0
- package/dist/components/FlipFx.d.ts +17 -0
- package/dist/components/FlipFx.d.ts.map +1 -0
- package/dist/components/FlipFx.js +76 -0
- package/dist/components/FlipFx.js.map +1 -0
- package/dist/components/FocusTrap.d.ts +16 -0
- package/dist/components/FocusTrap.d.ts.map +1 -0
- package/dist/components/FocusTrap.js +87 -0
- package/dist/components/FocusTrap.js.map +1 -0
- package/dist/components/GlitchFx.d.ts +12 -0
- package/dist/components/GlitchFx.d.ts.map +1 -0
- package/dist/components/GlitchFx.js +41 -0
- package/dist/components/GlitchFx.js.map +1 -0
- package/dist/components/GlitchFx.module.scss +92 -0
- package/dist/components/Grid.d.ts +11 -0
- package/dist/components/Grid.d.ts.map +1 -0
- package/dist/components/Grid.js +32 -0
- package/dist/components/Grid.js.map +1 -0
- package/dist/components/Heading.d.ts +9 -0
- package/dist/components/Heading.d.ts.map +1 -0
- package/dist/components/Heading.js +50 -0
- package/dist/components/Heading.js.map +1 -0
- package/dist/components/HoloFx.d.ts +32 -0
- package/dist/components/HoloFx.d.ts.map +1 -0
- package/dist/components/HoloFx.js +90 -0
- package/dist/components/HoloFx.js.map +1 -0
- package/dist/components/HoloFx.module.scss +32 -0
- package/dist/components/Hover.d.ts +14 -0
- package/dist/components/Hover.d.ts.map +1 -0
- package/dist/components/Hover.js +99 -0
- package/dist/components/Hover.js.map +1 -0
- package/dist/components/Hover.module.scss +12 -0
- package/dist/components/HoverCard.d.ts +5 -0
- package/dist/components/HoverCard.d.ts.map +1 -0
- package/dist/components/HoverCard.js +10 -0
- package/dist/components/HoverCard.js.map +1 -0
- package/dist/components/HoverCard.module.scss +12 -0
- package/dist/components/Icon.d.ts +18 -0
- package/dist/components/Icon.d.ts.map +1 -0
- package/dist/components/Icon.js +35 -0
- package/dist/components/Icon.js.map +1 -0
- package/dist/components/Icon.module.scss +19 -0
- package/dist/components/IconButton.d.ts +23 -0
- package/dist/components/IconButton.d.ts.map +1 -0
- package/dist/components/IconButton.js +23 -0
- package/dist/components/IconButton.js.map +1 -0
- package/dist/components/IconButton.module.scss +34 -0
- package/dist/components/InfiniteScroll.d.ts +16 -0
- package/dist/components/InfiniteScroll.d.ts.map +1 -0
- package/dist/components/InfiniteScroll.js +52 -0
- package/dist/components/InfiniteScroll.js.map +1 -0
- package/dist/components/InlineCode.d.ts +10 -0
- package/dist/components/InlineCode.d.ts.map +1 -0
- package/dist/components/InlineCode.js +12 -0
- package/dist/components/InlineCode.js.map +1 -0
- package/dist/components/InlineCode.module.scss +5 -0
- package/dist/components/Input.d.ts +24 -0
- package/dist/components/Input.d.ts.map +1 -0
- package/dist/components/Input.js +82 -0
- package/dist/components/Input.js.map +1 -0
- package/dist/components/Input.module.scss +196 -0
- package/dist/components/InteractiveDetails.d.ts +15 -0
- package/dist/components/InteractiveDetails.d.ts.map +1 -0
- package/dist/components/InteractiveDetails.js +10 -0
- package/dist/components/InteractiveDetails.js.map +1 -0
- package/dist/components/Kbd.d.ts +12 -0
- package/dist/components/Kbd.d.ts.map +1 -0
- package/dist/components/Kbd.js +7 -0
- package/dist/components/Kbd.js.map +1 -0
- package/dist/components/LetterFx.d.ts +13 -0
- package/dist/components/LetterFx.d.ts.map +1 -0
- package/dist/components/LetterFx.js +80 -0
- package/dist/components/LetterFx.js.map +1 -0
- package/dist/components/Line.d.ts +9 -0
- package/dist/components/Line.d.ts.map +1 -0
- package/dist/components/Line.js +10 -0
- package/dist/components/Line.js.map +1 -0
- package/dist/components/List.d.ts +11 -0
- package/dist/components/List.d.ts.map +1 -0
- package/dist/components/List.js +13 -0
- package/dist/components/List.js.map +1 -0
- package/dist/components/List.module.scss +5 -0
- package/dist/components/ListItem.d.ts +10 -0
- package/dist/components/ListItem.d.ts.map +1 -0
- package/dist/components/ListItem.js +13 -0
- package/dist/components/ListItem.js.map +1 -0
- package/dist/components/Logo.d.ts +18 -0
- package/dist/components/Logo.d.ts.map +1 -0
- package/dist/components/Logo.js +99 -0
- package/dist/components/Logo.js.map +1 -0
- package/dist/components/LogoCloud.d.ts +14 -0
- package/dist/components/LogoCloud.d.ts.map +1 -0
- package/dist/components/LogoCloud.js +38 -0
- package/dist/components/LogoCloud.js.map +1 -0
- package/dist/components/LogoCloud.module.scss +42 -0
- package/dist/components/Mask.d.ts +15 -0
- package/dist/components/Mask.d.ts.map +1 -0
- package/dist/components/Mask.js +107 -0
- package/dist/components/Mask.js.map +1 -0
- package/dist/components/Mask.module.scss +8 -0
- package/dist/components/MasonryGrid.d.ts +22 -0
- package/dist/components/MasonryGrid.d.ts.map +1 -0
- package/dist/components/MasonryGrid.js +53 -0
- package/dist/components/MasonryGrid.js.map +1 -0
- package/dist/components/MasonryGrid.module.scss +199 -0
- package/dist/components/MatrixFx.d.ts +27 -0
- package/dist/components/MatrixFx.d.ts.map +1 -0
- package/dist/components/MatrixFx.js +799 -0
- package/dist/components/MatrixFx.js.map +1 -0
- package/dist/components/Media.d.ts +26 -0
- package/dist/components/Media.d.ts.map +1 -0
- package/dist/components/Media.js +112 -0
- package/dist/components/Media.js.map +1 -0
- package/dist/components/Modal.d.ts +11 -0
- package/dist/components/Modal.d.ts.map +1 -0
- package/dist/components/Modal.js +72 -0
- package/dist/components/Modal.js.map +1 -0
- package/dist/components/NavIcon.d.ts +11 -0
- package/dist/components/NavIcon.d.ts.map +1 -0
- package/dist/components/NavIcon.js +11 -0
- package/dist/components/NavIcon.js.map +1 -0
- package/dist/components/NavIcon.module.scss +25 -0
- package/dist/components/NumberInput.d.ts +13 -0
- package/dist/components/NumberInput.d.ts.map +1 -0
- package/dist/components/NumberInput.js +44 -0
- package/dist/components/NumberInput.js.map +1 -0
- package/dist/components/NumberInput.module.scss +18 -0
- package/dist/components/OTPInput.d.ts +13 -0
- package/dist/components/OTPInput.d.ts.map +1 -0
- package/dist/components/OTPInput.js +71 -0
- package/dist/components/OTPInput.js.map +1 -0
- package/dist/components/OTPInput.module.scss +26 -0
- package/dist/components/OgCard.d.ts +34 -0
- package/dist/components/OgCard.d.ts.map +1 -0
- package/dist/components/OgCard.js +102 -0
- package/dist/components/OgCard.js.map +1 -0
- package/dist/components/Option.d.ts +21 -0
- package/dist/components/Option.d.ts.map +1 -0
- package/dist/components/Option.js +93 -0
- package/dist/components/Option.js.map +1 -0
- package/dist/components/Option.module.scss +47 -0
- package/dist/components/Particle.d.ts +21 -0
- package/dist/components/Particle.d.ts.map +1 -0
- package/dist/components/Particle.js +140 -0
- package/dist/components/Particle.js.map +1 -0
- package/dist/components/PasswordInput.d.ts +4 -0
- package/dist/components/PasswordInput.d.ts.map +1 -0
- package/dist/components/PasswordInput.js +12 -0
- package/dist/components/PasswordInput.js.map +1 -0
- package/dist/components/ProgressBar.d.ts +15 -0
- package/dist/components/ProgressBar.d.ts.map +1 -0
- package/dist/components/ProgressBar.js +12 -0
- package/dist/components/ProgressBar.js.map +1 -0
- package/dist/components/Pulse.d.ts +13 -0
- package/dist/components/Pulse.d.ts.map +1 -0
- package/dist/components/Pulse.js +11 -0
- package/dist/components/Pulse.js.map +1 -0
- package/dist/components/Pulse.module.scss +22 -0
- package/dist/components/RadioButton.d.ts +15 -0
- package/dist/components/RadioButton.d.ts.map +1 -0
- package/dist/components/RadioButton.js +45 -0
- package/dist/components/RadioButton.js.map +1 -0
- package/dist/components/RevealFx.d.ts +16 -0
- package/dist/components/RevealFx.d.ts.map +1 -0
- package/dist/components/RevealFx.js +83 -0
- package/dist/components/RevealFx.js.map +1 -0
- package/dist/components/RevealFx.module.scss +27 -0
- package/dist/components/Row.d.ts +7 -0
- package/dist/components/Row.d.ts.map +1 -0
- package/dist/components/Row.js +10 -0
- package/dist/components/Row.js.map +1 -0
- package/dist/components/ScrollContainer.d.ts +9 -0
- package/dist/components/ScrollContainer.d.ts.map +1 -0
- package/dist/components/ScrollContainer.js +67 -0
- package/dist/components/ScrollContainer.js.map +1 -0
- package/dist/components/ScrollLock.d.ts +8 -0
- package/dist/components/ScrollLock.d.ts.map +1 -0
- package/dist/components/ScrollLock.js +112 -0
- package/dist/components/ScrollLock.js.map +1 -0
- package/dist/components/ScrollToTop.d.ts +7 -0
- package/dist/components/ScrollToTop.d.ts.map +1 -0
- package/dist/components/ScrollToTop.js +24 -0
- package/dist/components/ScrollToTop.js.map +1 -0
- package/dist/components/ScrollToTop.module.scss +11 -0
- package/dist/components/Scroller.d.ts +14 -0
- package/dist/components/Scroller.d.ts.map +1 -0
- package/dist/components/Scroller.js +100 -0
- package/dist/components/Scroller.js.map +1 -0
- package/dist/components/Scroller.module.scss +20 -0
- package/dist/components/SegmentedControl.d.ts +18 -0
- package/dist/components/SegmentedControl.d.ts.map +1 -0
- package/dist/components/SegmentedControl.js +70 -0
- package/dist/components/SegmentedControl.js.map +1 -0
- package/dist/components/Select.d.ts +19 -0
- package/dist/components/Select.d.ts.map +1 -0
- package/dist/components/Select.js +170 -0
- package/dist/components/Select.js.map +1 -0
- package/dist/components/ServerFlex.d.ts +12 -0
- package/dist/components/ServerFlex.d.ts.map +1 -0
- package/dist/components/ServerFlex.js +282 -0
- package/dist/components/ServerFlex.js.map +1 -0
- package/dist/components/ServerGrid.d.ts +13 -0
- package/dist/components/ServerGrid.d.ts.map +1 -0
- package/dist/components/ServerGrid.js +207 -0
- package/dist/components/ServerGrid.js.map +1 -0
- package/dist/components/SharedInteractiveStyles.module.scss +91 -0
- package/dist/components/ShineFx.d.ts +13 -0
- package/dist/components/ShineFx.d.ts.map +1 -0
- package/dist/components/ShineFx.js +19 -0
- package/dist/components/ShineFx.js.map +1 -0
- package/dist/components/ShineFx.module.scss +50 -0
- package/dist/components/Skeleton.d.ts +13 -0
- package/dist/components/Skeleton.d.ts.map +1 -0
- package/dist/components/Skeleton.js +12 -0
- package/dist/components/Skeleton.js.map +1 -0
- package/dist/components/Skeleton.module.scss +120 -0
- package/dist/components/Slider.d.ts +17 -0
- package/dist/components/Slider.d.ts.map +1 -0
- package/dist/components/Slider.js +29 -0
- package/dist/components/Slider.js.map +1 -0
- package/dist/components/Slider.module.scss +75 -0
- package/dist/components/SmartLink.d.ts +18 -0
- package/dist/components/SmartLink.d.ts.map +1 -0
- package/dist/components/SmartLink.js +36 -0
- package/dist/components/SmartLink.js.map +1 -0
- package/dist/components/Spinner.d.ts +11 -0
- package/dist/components/Spinner.d.ts.map +1 -0
- package/dist/components/Spinner.js +11 -0
- package/dist/components/Spinner.js.map +1 -0
- package/dist/components/Spinner.module.scss +71 -0
- package/dist/components/SplitView.d.ts +16 -0
- package/dist/components/SplitView.d.ts.map +1 -0
- package/dist/components/SplitView.js +80 -0
- package/dist/components/SplitView.js.map +1 -0
- package/dist/components/SplitView.module.scss +18 -0
- package/dist/components/StatusIndicator.d.ts +12 -0
- package/dist/components/StatusIndicator.d.ts.map +1 -0
- package/dist/components/StatusIndicator.js +11 -0
- package/dist/components/StatusIndicator.js.map +1 -0
- package/dist/components/StatusIndicator.module.scss +72 -0
- package/dist/components/StyleOverlay.d.ts +10 -0
- package/dist/components/StyleOverlay.d.ts.map +1 -0
- package/dist/components/StyleOverlay.js +17 -0
- package/dist/components/StyleOverlay.js.map +1 -0
- package/dist/components/StyleOverlay.module.scss +18 -0
- package/dist/components/StylePanel.d.ts +8 -0
- package/dist/components/StylePanel.d.ts.map +1 -0
- package/dist/components/StylePanel.js +193 -0
- package/dist/components/StylePanel.js.map +1 -0
- package/dist/components/StylePanel.module.scss +127 -0
- package/dist/components/Swiper.d.ts +17 -0
- package/dist/components/Swiper.d.ts.map +1 -0
- package/dist/components/Swiper.js +170 -0
- package/dist/components/Swiper.js.map +1 -0
- package/dist/components/Swiper.module.scss +31 -0
- package/dist/components/Switch.d.ts +17 -0
- package/dist/components/Switch.d.ts.map +1 -0
- package/dist/components/Switch.js +33 -0
- package/dist/components/Switch.js.map +1 -0
- package/dist/components/Switch.module.scss +102 -0
- package/dist/components/Table.d.ts +16 -0
- package/dist/components/Table.d.ts.map +1 -0
- package/dist/components/Table.js +44 -0
- package/dist/components/Table.js.map +1 -0
- package/dist/components/Table.module.scss +5 -0
- package/dist/components/Tag.d.ts +16 -0
- package/dist/components/Tag.d.ts.map +1 -0
- package/dist/components/Tag.js +14 -0
- package/dist/components/Tag.js.map +1 -0
- package/dist/components/Tag.module.scss +10 -0
- package/dist/components/TagInput.d.ts +9 -0
- package/dist/components/TagInput.d.ts.map +1 -0
- package/dist/components/TagInput.js +36 -0
- package/dist/components/TagInput.js.map +1 -0
- package/dist/components/Text.d.ts +9 -0
- package/dist/components/Text.d.ts.map +1 -0
- package/dist/components/Text.js +50 -0
- package/dist/components/Text.js.map +1 -0
- package/dist/components/Textarea.d.ts +24 -0
- package/dist/components/Textarea.d.ts.map +1 -0
- package/dist/components/Textarea.js +109 -0
- package/dist/components/Textarea.js.map +1 -0
- package/dist/components/ThemeInit.d.ts +20 -0
- package/dist/components/ThemeInit.d.ts.map +1 -0
- package/dist/components/ThemeInit.js +46 -0
- package/dist/components/ThemeInit.js.map +1 -0
- package/dist/components/ThemeSwitcher.d.ts +4 -0
- package/dist/components/ThemeSwitcher.d.ts.map +1 -0
- package/dist/components/ThemeSwitcher.js +21 -0
- package/dist/components/ThemeSwitcher.js.map +1 -0
- package/dist/components/TiltFx.d.ts +10 -0
- package/dist/components/TiltFx.d.ts.map +1 -0
- package/dist/components/TiltFx.js +67 -0
- package/dist/components/TiltFx.js.map +1 -0
- package/dist/components/TiltFx.module.scss +11 -0
- package/dist/components/Timeline.d.ts +18 -0
- package/dist/components/Timeline.d.ts.map +1 -0
- package/dist/components/Timeline.js +72 -0
- package/dist/components/Timeline.js.map +1 -0
- package/dist/components/Toast.d.ts +12 -0
- package/dist/components/Toast.d.ts.map +1 -0
- package/dist/components/Toast.js +29 -0
- package/dist/components/Toast.js.map +1 -0
- package/dist/components/Toast.module.scss +11 -0
- package/dist/components/Toaster.d.ts +19 -0
- package/dist/components/Toaster.d.ts.map +1 -0
- package/dist/components/Toaster.js +47 -0
- package/dist/components/Toaster.js.map +1 -0
- package/dist/components/Toaster.module.scss +58 -0
- package/dist/components/ToggleButton.d.ts +25 -0
- package/dist/components/ToggleButton.d.ts.map +1 -0
- package/dist/components/ToggleButton.js +20 -0
- package/dist/components/ToggleButton.js.map +1 -0
- package/dist/components/ToggleButton.module.scss +73 -0
- package/dist/components/Tooltip.d.ts +13 -0
- package/dist/components/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip.js +15 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/components/Tooltip.module.scss +14 -0
- package/dist/components/TypeFx.d.ts +15 -0
- package/dist/components/TypeFx.d.ts.map +1 -0
- package/dist/components/TypeFx.js +84 -0
- package/dist/components/TypeFx.js.map +1 -0
- package/dist/components/User.d.ts +16 -0
- package/dist/components/User.d.ts.map +1 -0
- package/dist/components/User.js +13 -0
- package/dist/components/User.js.map +1 -0
- package/dist/components/UserMenu.d.ts +13 -0
- package/dist/components/UserMenu.d.ts.map +1 -0
- package/dist/components/UserMenu.js +13 -0
- package/dist/components/UserMenu.js.map +1 -0
- package/dist/components/UserMenu.module.scss +14 -0
- package/dist/components/WeatherFx.d.ts +18 -0
- package/dist/components/WeatherFx.d.ts.map +1 -0
- package/dist/components/WeatherFx.js +864 -0
- package/dist/components/WeatherFx.js.map +1 -0
- package/dist/components/index.d.ts +121 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +121 -0
- package/dist/components/index.js.map +1 -0
- package/dist/contexts/DataThemeProvider.d.ts +26 -0
- package/dist/contexts/DataThemeProvider.d.ts.map +1 -0
- package/dist/contexts/DataThemeProvider.js +103 -0
- package/dist/contexts/DataThemeProvider.js.map +1 -0
- package/dist/contexts/IconProvider.d.ts +12 -0
- package/dist/contexts/IconProvider.d.ts.map +1 -0
- package/dist/contexts/IconProvider.js +20 -0
- package/dist/contexts/IconProvider.js.map +1 -0
- package/dist/contexts/LayoutProvider.d.ts +27 -0
- package/dist/contexts/LayoutProvider.d.ts.map +1 -0
- package/dist/contexts/LayoutProvider.js +96 -0
- package/dist/contexts/LayoutProvider.js.map +1 -0
- package/dist/contexts/ThemeProvider.d.ts +49 -0
- package/dist/contexts/ThemeProvider.d.ts.map +1 -0
- package/dist/contexts/ThemeProvider.js +285 -0
- package/dist/contexts/ThemeProvider.js.map +1 -0
- package/dist/contexts/ToastProvider.d.ts +24 -0
- package/dist/contexts/ToastProvider.d.ts.map +1 -0
- package/dist/contexts/ToastProvider.js +34 -0
- package/dist/contexts/ToastProvider.js.map +1 -0
- package/dist/contexts/index.d.ts +6 -0
- package/dist/contexts/index.d.ts.map +1 -0
- package/dist/contexts/index.js +6 -0
- package/dist/contexts/index.js.map +1 -0
- package/dist/css/styles.css +1 -0
- package/dist/css/styles.css.map +1 -0
- package/dist/css/tokens.css +1 -0
- package/dist/css/tokens.css.map +1 -0
- package/dist/data/emoji-data.json +16062 -0
- package/dist/hooks/index.d.ts +8 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +8 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useArrowNavigation.d.ts +23 -0
- package/dist/hooks/useArrowNavigation.d.ts.map +1 -0
- package/dist/hooks/useArrowNavigation.js +205 -0
- package/dist/hooks/useArrowNavigation.js.map +1 -0
- package/dist/hooks/useDebounce.d.ts +2 -0
- package/dist/hooks/useDebounce.d.ts.map +1 -0
- package/dist/hooks/useDebounce.js +15 -0
- package/dist/hooks/useDebounce.js.map +1 -0
- package/dist/hooks/useFetchOg.d.ts +17 -0
- package/dist/hooks/useFetchOg.d.ts.map +1 -0
- package/dist/hooks/useFetchOg.js +63 -0
- package/dist/hooks/useFetchOg.js.map +1 -0
- package/dist/hooks/useHeadingLinks.d.ts +6 -0
- package/dist/hooks/useHeadingLinks.d.ts.map +1 -0
- package/dist/hooks/useHeadingLinks.js +17 -0
- package/dist/hooks/useHeadingLinks.js.map +1 -0
- package/dist/hooks/useInViewport.d.ts +3 -0
- package/dist/hooks/useInViewport.d.ts.map +1 -0
- package/dist/hooks/useInViewport.js +19 -0
- package/dist/hooks/useInViewport.js.map +1 -0
- package/dist/hooks/useReducedMotion.d.ts +8 -0
- package/dist/hooks/useReducedMotion.d.ts.map +1 -0
- package/dist/hooks/useReducedMotion.js +44 -0
- package/dist/hooks/useReducedMotion.js.map +1 -0
- package/dist/hooks/useResponsiveClasses.d.ts +9 -0
- package/dist/hooks/useResponsiveClasses.d.ts.map +1 -0
- package/dist/hooks/useResponsiveClasses.js +250 -0
- package/dist/hooks/useResponsiveClasses.js.map +1 -0
- package/dist/hooks/useStreamingData.d.ts +24 -0
- package/dist/hooks/useStreamingData.d.ts.map +1 -0
- package/dist/hooks/useStreamingData.js +89 -0
- package/dist/hooks/useStreamingData.js.map +1 -0
- package/dist/hooks/useStreamingViewport.d.ts +25 -0
- package/dist/hooks/useStreamingViewport.d.ts.map +1 -0
- package/dist/hooks/useStreamingViewport.js +120 -0
- package/dist/hooks/useStreamingViewport.js.map +1 -0
- package/dist/icons.d.ts +5 -0
- package/dist/icons.d.ts.map +1 -0
- package/dist/icons.js +56 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces.d.ts +177 -0
- package/dist/interfaces.d.ts.map +1 -0
- package/dist/interfaces.js +2 -0
- package/dist/interfaces.js.map +1 -0
- package/dist/modules/code/CodeBlock.d.ts +6 -0
- package/dist/modules/code/CodeBlock.d.ts.map +1 -0
- package/dist/modules/code/CodeBlock.impl.d.ts +34 -0
- package/dist/modules/code/CodeBlock.impl.d.ts.map +1 -0
- package/dist/modules/code/CodeBlock.impl.js +497 -0
- package/dist/modules/code/CodeBlock.impl.js.map +1 -0
- package/dist/modules/code/CodeBlock.js +14 -0
- package/dist/modules/code/CodeBlock.js.map +1 -0
- package/dist/modules/code/CodeBlock.module.scss +43 -0
- package/dist/modules/code/CodeDiff.css +175 -0
- package/dist/modules/code/CodeHighlight.css +116 -0
- package/dist/modules/code/LineNumber.css +34 -0
- package/dist/modules/data/BarChart.d.ts +6 -0
- package/dist/modules/data/BarChart.d.ts.map +1 -0
- package/dist/modules/data/BarChart.impl.d.ts +12 -0
- package/dist/modules/data/BarChart.impl.d.ts.map +1 -0
- package/dist/modules/data/BarChart.impl.js +129 -0
- package/dist/modules/data/BarChart.impl.js.map +1 -0
- package/dist/modules/data/BarChart.js +14 -0
- package/dist/modules/data/BarChart.js.map +1 -0
- package/dist/modules/data/ChartHeader.d.ts +14 -0
- package/dist/modules/data/ChartHeader.d.ts.map +1 -0
- package/dist/modules/data/ChartHeader.js +116 -0
- package/dist/modules/data/ChartHeader.js.map +1 -0
- package/dist/modules/data/ChartStatus.d.ts +10 -0
- package/dist/modules/data/ChartStatus.d.ts.map +1 -0
- package/dist/modules/data/ChartStatus.js +10 -0
- package/dist/modules/data/ChartStatus.js.map +1 -0
- package/dist/modules/data/DataTooltip.d.ts +16 -0
- package/dist/modules/data/DataTooltip.d.ts.map +1 -0
- package/dist/modules/data/DataTooltip.js +16 -0
- package/dist/modules/data/DataTooltip.js.map +1 -0
- package/dist/modules/data/Gauge.module.css +27 -0
- package/dist/modules/data/Gradient.d.ts +32 -0
- package/dist/modules/data/Gradient.d.ts.map +1 -0
- package/dist/modules/data/Gradient.js +56 -0
- package/dist/modules/data/Gradient.js.map +1 -0
- package/dist/modules/data/Legend.d.ts +15 -0
- package/dist/modules/data/Legend.d.ts.map +1 -0
- package/dist/modules/data/Legend.js +69 -0
- package/dist/modules/data/Legend.js.map +1 -0
- package/dist/modules/data/LineBarChart.d.ts +6 -0
- package/dist/modules/data/LineBarChart.d.ts.map +1 -0
- package/dist/modules/data/LineBarChart.impl.d.ts +12 -0
- package/dist/modules/data/LineBarChart.impl.d.ts.map +1 -0
- package/dist/modules/data/LineBarChart.impl.js +124 -0
- package/dist/modules/data/LineBarChart.impl.js.map +1 -0
- package/dist/modules/data/LineBarChart.js +14 -0
- package/dist/modules/data/LineBarChart.js.map +1 -0
- package/dist/modules/data/LineChart.d.ts +6 -0
- package/dist/modules/data/LineChart.d.ts.map +1 -0
- package/dist/modules/data/LineChart.impl.d.ts +17 -0
- package/dist/modules/data/LineChart.impl.d.ts.map +1 -0
- package/dist/modules/data/LineChart.impl.js +137 -0
- package/dist/modules/data/LineChart.impl.js.map +1 -0
- package/dist/modules/data/LineChart.js +14 -0
- package/dist/modules/data/LineChart.js.map +1 -0
- package/dist/modules/data/LinearGauge.d.ts +18 -0
- package/dist/modules/data/LinearGauge.d.ts.map +1 -0
- package/dist/modules/data/LinearGauge.js +78 -0
- package/dist/modules/data/LinearGauge.js.map +1 -0
- package/dist/modules/data/PieChart.d.ts +6 -0
- package/dist/modules/data/PieChart.d.ts.map +1 -0
- package/dist/modules/data/PieChart.impl.d.ts +18 -0
- package/dist/modules/data/PieChart.impl.d.ts.map +1 -0
- package/dist/modules/data/PieChart.impl.js +100 -0
- package/dist/modules/data/PieChart.impl.js.map +1 -0
- package/dist/modules/data/PieChart.js +14 -0
- package/dist/modules/data/PieChart.js.map +1 -0
- package/dist/modules/data/RadialGauge.d.ts +25 -0
- package/dist/modules/data/RadialGauge.d.ts.map +1 -0
- package/dist/modules/data/RadialGauge.js +94 -0
- package/dist/modules/data/RadialGauge.js.map +1 -0
- package/dist/modules/data/Swatch.d.ts +9 -0
- package/dist/modules/data/Swatch.d.ts.map +1 -0
- package/dist/modules/data/Swatch.js +44 -0
- package/dist/modules/data/Swatch.js.map +1 -0
- package/dist/modules/data/index.d.ts +14 -0
- package/dist/modules/data/index.d.ts.map +1 -0
- package/dist/modules/data/index.js +14 -0
- package/dist/modules/data/index.js.map +1 -0
- package/dist/modules/data/interfaces.d.ts +53 -0
- package/dist/modules/data/interfaces.d.ts.map +1 -0
- package/dist/modules/data/interfaces.js +2 -0
- package/dist/modules/data/interfaces.js.map +1 -0
- package/dist/modules/data/rechartsLoader.d.ts +2 -0
- package/dist/modules/data/rechartsLoader.d.ts.map +1 -0
- package/dist/modules/data/rechartsLoader.js +15 -0
- package/dist/modules/data/rechartsLoader.js.map +1 -0
- package/dist/modules/data/utils/colorDistribution.d.ts +10 -0
- package/dist/modules/data/utils/colorDistribution.d.ts.map +1 -0
- package/dist/modules/data/utils/colorDistribution.js +46 -0
- package/dist/modules/data/utils/colorDistribution.js.map +1 -0
- package/dist/modules/data/utils/formatDate.d.ts +12 -0
- package/dist/modules/data/utils/formatDate.d.ts.map +1 -0
- package/dist/modules/data/utils/formatDate.js +30 -0
- package/dist/modules/data/utils/formatDate.js.map +1 -0
- package/dist/modules/index.d.ts +6 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/index.js +7 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/modules/media/MediaUpload.d.ts +6 -0
- package/dist/modules/media/MediaUpload.d.ts.map +1 -0
- package/dist/modules/media/MediaUpload.impl.d.ts +24 -0
- package/dist/modules/media/MediaUpload.impl.d.ts.map +1 -0
- package/dist/modules/media/MediaUpload.impl.js +106 -0
- package/dist/modules/media/MediaUpload.impl.js.map +1 -0
- package/dist/modules/media/MediaUpload.js +14 -0
- package/dist/modules/media/MediaUpload.js.map +1 -0
- package/dist/modules/media/MediaUpload.module.scss +24 -0
- package/dist/modules/navigation/HeadingLink.d.ts +11 -0
- package/dist/modules/navigation/HeadingLink.d.ts.map +1 -0
- package/dist/modules/navigation/HeadingLink.js +39 -0
- package/dist/modules/navigation/HeadingLink.js.map +1 -0
- package/dist/modules/navigation/HeadingLink.module.scss +15 -0
- package/dist/modules/navigation/HeadingNav.d.ts +8 -0
- package/dist/modules/navigation/HeadingNav.d.ts.map +1 -0
- package/dist/modules/navigation/HeadingNav.js +168 -0
- package/dist/modules/navigation/HeadingNav.js.map +1 -0
- package/dist/modules/navigation/Kbar.d.ts +34 -0
- package/dist/modules/navigation/Kbar.d.ts.map +1 -0
- package/dist/modules/navigation/Kbar.js +192 -0
- package/dist/modules/navigation/Kbar.js.map +1 -0
- package/dist/modules/navigation/Kbar.module.scss +60 -0
- package/dist/modules/navigation/MegaMenu.d.ts +28 -0
- package/dist/modules/navigation/MegaMenu.d.ts.map +1 -0
- package/dist/modules/navigation/MegaMenu.js +182 -0
- package/dist/modules/navigation/MegaMenu.js.map +1 -0
- package/dist/modules/navigation/MegaMenu.module.scss +14 -0
- package/dist/modules/navigation/MobileMegaMenu.d.ts +28 -0
- package/dist/modules/navigation/MobileMegaMenu.d.ts.map +1 -0
- package/dist/modules/navigation/MobileMegaMenu.js +22 -0
- package/dist/modules/navigation/MobileMegaMenu.js.map +1 -0
- package/dist/modules/navigation/index.d.ts +6 -0
- package/dist/modules/navigation/index.d.ts.map +1 -0
- package/dist/modules/navigation/index.js +6 -0
- package/dist/modules/navigation/index.js.map +1 -0
- package/dist/modules/seo/Meta.d.ts +29 -0
- package/dist/modules/seo/Meta.d.ts.map +1 -0
- package/dist/modules/seo/Meta.js +53 -0
- package/dist/modules/seo/Meta.js.map +1 -0
- package/dist/modules/seo/Schema.d.ts +19 -0
- package/dist/modules/seo/Schema.d.ts.map +1 -0
- package/dist/modules/seo/Schema.js +65 -0
- package/dist/modules/seo/Schema.js.map +1 -0
- package/dist/package.json +130 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +2 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/og-utils.d.ts +20 -0
- package/dist/server/og-utils.d.ts.map +1 -0
- package/dist/server/og-utils.js +125 -0
- package/dist/server/og-utils.js.map +1 -0
- package/dist/styles/background.scss +423 -0
- package/dist/styles/border.scss +546 -0
- package/dist/styles/breakpoints.scss +28 -0
- package/dist/styles/color.scss +183 -0
- package/dist/styles/display.scss +391 -0
- package/dist/styles/flex.scss +518 -0
- package/dist/styles/global.scss +36 -0
- package/dist/styles/grid.scss +293 -0
- package/dist/styles/index.scss +14 -0
- package/dist/styles/position.scss +1549 -0
- package/dist/styles/shadow.scss +19 -0
- package/dist/styles/size.scss +53 -0
- package/dist/styles/spacing.scss +1505 -0
- package/dist/styles/typography.scss +215 -0
- package/dist/styles/utilities.scss +23 -0
- package/dist/test/dialogTestUtils.d.ts +2 -0
- package/dist/test/dialogTestUtils.d.ts.map +1 -0
- package/dist/test/dialogTestUtils.js +12 -0
- package/dist/test/dialogTestUtils.js.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/test/setup.js +59 -0
- package/dist/test/setup.js.map +1 -0
- package/dist/tokens/border.scss +95 -0
- package/dist/tokens/data.scss +107 -0
- package/dist/tokens/function.scss +742 -0
- package/dist/tokens/index.scss +8 -0
- package/dist/tokens/layout.scss +275 -0
- package/dist/tokens/scheme.scss +352 -0
- package/dist/tokens/shadow.scss +7 -0
- package/dist/tokens/theme.scss +639 -0
- package/dist/tokens/typography.scss +116 -0
- package/dist/types.d.ts +25 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +16 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/MissingDependency.d.ts +7 -0
- package/dist/utils/MissingDependency.d.ts.map +1 -0
- package/dist/utils/MissingDependency.js +6 -0
- package/dist/utils/MissingDependency.js.map +1 -0
- package/dist/utils/devLogger.d.ts +13 -0
- package/dist/utils/devLogger.d.ts.map +1 -0
- package/dist/utils/devLogger.js +34 -0
- package/dist/utils/devLogger.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +155 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { Flex } from ".";
|
|
5
|
+
import styles from "./Card.module.scss";
|
|
6
|
+
import { ElementType } from "./ElementType";
|
|
7
|
+
import classNames from "classnames";
|
|
8
|
+
const Card = forwardRef(({ children, href, onClick, style, className, fillHeight, ...flex }, ref) => {
|
|
9
|
+
return (_jsx(ElementType, { tabIndex: onClick || href ? 0 : undefined, className: classNames("reset-button-styles", "display-flex", "fill-width", fillHeight ? "fill-height" : undefined, "min-width-0", (onClick || href) && "focus-ring", (onClick || href) && (`radius-${flex.radius}` || "radius-l")), href: href, onClick: onClick && onClick, role: onClick ? "button" : href ? "link" : "none", ref: ref, children: _jsx(Flex, { background: "surface", onBackground: "neutral-strong", transition: "macro-medium", border: "neutral-medium", cursor: "interactive", align: "left", onClick: onClick && onClick, className: classNames(styles.card, className), style: { ...style }, ...flex, children: children }) }));
|
|
10
|
+
});
|
|
11
|
+
Card.displayName = "Card";
|
|
12
|
+
export { Card };
|
|
13
|
+
//# sourceMappingURL=Card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.js","sourceRoot":"","sources":["../../src/components/Card.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AACzB,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,UAAU,MAAM,YAAY,CAAC;AAWpC,MAAM,IAAI,GAAG,UAAU,CACrB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IAC1E,OAAO,CACL,KAAC,WAAW,IACV,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACzC,SAAS,EAAE,UAAU,CACnB,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EACtC,aAAa,EACb,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,YAAY,EACjC,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,CAC7D,EACD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,IAAI,OAAO,EAC3B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EACjD,GAAG,EAAE,GAAG,YAER,KAAC,IAAI,IACH,UAAU,EAAC,SAAS,EACpB,YAAY,EAAC,gBAAgB,EAC7B,UAAU,EAAC,cAAc,EACzB,MAAM,EAAC,gBAAgB,EACvB,MAAM,EAAC,aAAa,EACpB,KAAK,EAAC,MAAM,EACZ,OAAO,EAAE,OAAO,IAAI,OAAO,EAC3B,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EAC7C,KAAK,EAAE,EAAC,GAAG,KAAK,EAAC,KACb,IAAI,YAEP,QAAQ,GACJ,GACK,CACf,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SpacingToken } from "@/types";
|
|
2
|
+
import { Flex } from ".";
|
|
3
|
+
interface CarouselItem {
|
|
4
|
+
slide: string | React.ReactNode;
|
|
5
|
+
alt?: string;
|
|
6
|
+
}
|
|
7
|
+
interface ThumbnailItem {
|
|
8
|
+
scaling?: number;
|
|
9
|
+
height?: SpacingToken | number;
|
|
10
|
+
sizes?: string;
|
|
11
|
+
}
|
|
12
|
+
interface CarouselProps extends React.ComponentProps<typeof Flex> {
|
|
13
|
+
items: CarouselItem[];
|
|
14
|
+
controls?: boolean;
|
|
15
|
+
priority?: boolean;
|
|
16
|
+
fill?: boolean;
|
|
17
|
+
indicator?: "line" | "thumbnail" | false;
|
|
18
|
+
translateY?: SpacingToken | number;
|
|
19
|
+
aspectRatio?: string;
|
|
20
|
+
sizes?: string;
|
|
21
|
+
revealedByDefault?: boolean;
|
|
22
|
+
thumbnail?: ThumbnailItem;
|
|
23
|
+
play?: {
|
|
24
|
+
auto?: boolean;
|
|
25
|
+
interval?: number;
|
|
26
|
+
controls?: boolean;
|
|
27
|
+
progress?: boolean;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
declare const Carousel: React.FC<CarouselProps>;
|
|
31
|
+
export { Carousel };
|
|
32
|
+
//# sourceMappingURL=Carousel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Carousel.d.ts","sourceRoot":"","sources":["../../src/components/Carousel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAA4D,MAAM,GAAG,CAAC;AAInF,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC;IAC/D,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,KAAK,CAAC;IACzC,UAAU,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACtF;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAuarC,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Flex, RevealFx, Scroller, Media, Column, Row, IconButton, Fade } from ".";
|
|
4
|
+
import { useEffect, useState, useRef } from "react";
|
|
5
|
+
import styles from "./Carousel.module.scss";
|
|
6
|
+
const Carousel = ({ items = [], fill = false, controls = true, priority = false, indicator = "line", translateY, aspectRatio = "original", sizes, revealedByDefault = false, thumbnail = { scaling: 1, height: "80", sizes: "120px" }, play = { auto: false, interval: 3000, controls: true }, ...flex }) => {
|
|
7
|
+
const [activeIndex, setActiveIndex] = useState(0);
|
|
8
|
+
const [hoverIndex, setHoverIndex] = useState(0);
|
|
9
|
+
const [isTransitioning, setIsTransitioning] = useState(revealedByDefault);
|
|
10
|
+
const [initialTransition, setInitialTransition] = useState(revealedByDefault);
|
|
11
|
+
const [isPlaying, setIsPlaying] = useState(play.auto || false);
|
|
12
|
+
const [progressPercent, setProgressPercent] = useState(0);
|
|
13
|
+
// Initialize auto-play state when props change
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
setIsPlaying(play.auto || false);
|
|
16
|
+
}, [play.auto]);
|
|
17
|
+
const nextImageRef = useRef(null);
|
|
18
|
+
const transitionTimeoutRef = useRef(undefined);
|
|
19
|
+
const autoPlayIntervalRef = useRef(undefined);
|
|
20
|
+
const touchStartXRef = useRef(null);
|
|
21
|
+
const touchEndXRef = useRef(null);
|
|
22
|
+
const preloadNextImage = (nextIndex) => {
|
|
23
|
+
if (nextIndex >= 0 && nextIndex < items.length) {
|
|
24
|
+
const item = items[nextIndex];
|
|
25
|
+
if (typeof item.slide === "string") {
|
|
26
|
+
nextImageRef.current = new Image();
|
|
27
|
+
nextImageRef.current.src = item.slide;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const handlePrevClick = () => {
|
|
32
|
+
if (items.length > 1 && activeIndex > 0) {
|
|
33
|
+
const prevIndex = activeIndex - 1;
|
|
34
|
+
handleControlClick(prevIndex);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const handleNextClick = () => {
|
|
38
|
+
if (items.length > 1) {
|
|
39
|
+
// If at the last slide, loop back to the first one
|
|
40
|
+
const nextIndex = activeIndex < items.length - 1 ? activeIndex + 1 : 0;
|
|
41
|
+
handleControlClick(nextIndex);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const handleControlClick = (nextIndex) => {
|
|
45
|
+
if (nextIndex !== activeIndex && !transitionTimeoutRef.current) {
|
|
46
|
+
preloadNextImage(nextIndex);
|
|
47
|
+
setIsTransitioning(false);
|
|
48
|
+
transitionTimeoutRef.current = setTimeout(() => {
|
|
49
|
+
setActiveIndex(nextIndex);
|
|
50
|
+
setTimeout(() => {
|
|
51
|
+
setIsTransitioning(true);
|
|
52
|
+
transitionTimeoutRef.current = undefined;
|
|
53
|
+
}, 50);
|
|
54
|
+
}, 300);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
// Simple function to handle auto-play
|
|
58
|
+
const handleNextWithLoop = () => {
|
|
59
|
+
const nextIndex = activeIndex < items.length - 1 ? activeIndex + 1 : 0;
|
|
60
|
+
handleControlClick(nextIndex);
|
|
61
|
+
};
|
|
62
|
+
// Progress tracking for animation
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
let progressTimer;
|
|
65
|
+
if (isPlaying && play.progress && items.length > 1) {
|
|
66
|
+
// Reset progress when slide changes
|
|
67
|
+
setProgressPercent(0);
|
|
68
|
+
// Update progress every 50ms
|
|
69
|
+
const updateFrequency = 50; // ms
|
|
70
|
+
const interval = play.interval || 3000; // Default to 3000ms if undefined
|
|
71
|
+
const totalSteps = Math.floor(interval / updateFrequency);
|
|
72
|
+
let currentStep = 0;
|
|
73
|
+
progressTimer = setInterval(() => {
|
|
74
|
+
currentStep++;
|
|
75
|
+
const percent = Math.min((currentStep / totalSteps) * 100, 100);
|
|
76
|
+
setProgressPercent(percent);
|
|
77
|
+
}, updateFrequency);
|
|
78
|
+
}
|
|
79
|
+
return () => {
|
|
80
|
+
if (progressTimer) {
|
|
81
|
+
clearInterval(progressTimer);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}, [isPlaying, activeIndex, play.interval, play.progress, items.length]);
|
|
85
|
+
// Handle auto-play functionality
|
|
86
|
+
useEffect(() => {
|
|
87
|
+
// Clear any existing interval first
|
|
88
|
+
if (autoPlayIntervalRef.current) {
|
|
89
|
+
clearInterval(autoPlayIntervalRef.current);
|
|
90
|
+
autoPlayIntervalRef.current = undefined;
|
|
91
|
+
}
|
|
92
|
+
// Start auto-play if enabled
|
|
93
|
+
if (isPlaying && items.length > 1) {
|
|
94
|
+
autoPlayIntervalRef.current = setInterval(() => {
|
|
95
|
+
// Simply call the next function which already has looping logic
|
|
96
|
+
handleNextWithLoop();
|
|
97
|
+
}, play.interval);
|
|
98
|
+
}
|
|
99
|
+
// Cleanup function
|
|
100
|
+
return () => {
|
|
101
|
+
if (autoPlayIntervalRef.current) {
|
|
102
|
+
clearInterval(autoPlayIntervalRef.current);
|
|
103
|
+
autoPlayIntervalRef.current = undefined;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
}, [isPlaying, items.length, play.interval, handleNextWithLoop]);
|
|
107
|
+
// Handle initial transition
|
|
108
|
+
useEffect(() => {
|
|
109
|
+
if (!revealedByDefault && !initialTransition) {
|
|
110
|
+
setIsTransitioning(true);
|
|
111
|
+
setInitialTransition(true);
|
|
112
|
+
}
|
|
113
|
+
return () => {
|
|
114
|
+
if (transitionTimeoutRef.current) {
|
|
115
|
+
clearTimeout(transitionTimeoutRef.current);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
}, [revealedByDefault, initialTransition]);
|
|
119
|
+
// Toggle play/pause function
|
|
120
|
+
const togglePlayPause = () => {
|
|
121
|
+
setIsPlaying(prev => !prev);
|
|
122
|
+
};
|
|
123
|
+
if (items.length === 0) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
return (_jsxs(Column, { fillWidth: true, fillHeight: fill, gap: "8", ...flex, aspectRatio: undefined, style: { isolation: "isolate" }, children: [items.length > 1 && play.controls && play.auto && (_jsx(Flex, { position: "absolute", top: "16", right: "16", zIndex: 1, children: _jsx(Flex, { radius: "m", background: "surface", children: _jsx(IconButton, { onClick: (e) => {
|
|
127
|
+
e.stopPropagation();
|
|
128
|
+
togglePlayPause();
|
|
129
|
+
}, variant: "secondary", icon: isPlaying ? "pause" : "play" }) }) })), _jsxs(RevealFx, { fillWidth: true, fillHeight: fill, radius: flex.radius || "l", trigger: isTransitioning, translateY: translateY, aspectRatio: aspectRatio === "original" ? undefined : aspectRatio, speed: 300, onTouchStart: (e) => {
|
|
130
|
+
touchStartXRef.current = e.touches[0].clientX;
|
|
131
|
+
}, onTouchEnd: (e) => {
|
|
132
|
+
if (touchStartXRef.current === null)
|
|
133
|
+
return;
|
|
134
|
+
const touchEndX = e.changedTouches[0].clientX;
|
|
135
|
+
touchEndXRef.current = touchEndX;
|
|
136
|
+
const diffX = touchStartXRef.current - touchEndX;
|
|
137
|
+
// Detect swipe (more than 50px movement is considered a swipe)
|
|
138
|
+
if (Math.abs(diffX) > 50) {
|
|
139
|
+
if (diffX > 0) {
|
|
140
|
+
handleNextClick();
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
handlePrevClick();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
touchStartXRef.current = null;
|
|
147
|
+
touchEndXRef.current = null;
|
|
148
|
+
}, children: [typeof items[activeIndex]?.slide === "string" ? (_jsx(Media, { fill: fill, sizes: sizes, priority: priority, radius: flex.radius || "l", border: flex.border || "neutral-alpha-weak", overflow: "hidden", aspectRatio: fill ? undefined : aspectRatio === "auto" ? undefined : aspectRatio, src: items[activeIndex]?.slide, alt: items[activeIndex]?.alt || "" })) : (_jsx(Flex, { fill: true, overflow: "hidden", radius: flex.radius || "l", border: flex.border || "neutral-alpha-weak", aspectRatio: fill ? undefined : aspectRatio === "auto" ? undefined : aspectRatio, children: items[activeIndex]?.slide })), _jsxs(Row, { fill: true, className: styles.controls, radius: flex.radius || "l", position: "absolute", top: "0", left: "0", overflow: "hidden", horizontal: "between", children: [activeIndex > 0 ? (_jsx(Row, { className: styles.left, cursor: "interactive", maxWidth: 12, fill: true, vertical: "center", onClick: handlePrevClick, children: controls && (_jsxs(_Fragment, { children: [_jsx(Fade, { m: { hide: true }, transition: "micro-medium", className: styles.fade, position: "absolute", left: "0", top: "0", to: "right", fillHeight: true, maxWidth: 6 }), _jsx(Flex, { m: { hide: true }, transition: "micro-medium", className: styles.button, marginLeft: "m", radius: "l", overflow: "hidden", background: "surface", children: _jsx(IconButton, { tabIndex: 0, onClick: handlePrevClick, variant: "secondary", icon: "chevronLeft" }) })] })) })) : (_jsx(Flex, { maxWidth: 12 })), activeIndex < items.length - 1 ? (_jsx(Row, { className: styles.right, cursor: "interactive", maxWidth: 12, fill: true, vertical: "center", horizontal: "end", onClick: handleNextClick, children: controls && (_jsxs(_Fragment, { children: [_jsx(Fade, { m: { hide: true }, transition: "micro-medium", className: styles.fade, position: "absolute", right: "0", top: "0", to: "left", fillHeight: true, maxWidth: 6 }), _jsx(Flex, { m: { hide: true }, transition: "micro-medium", className: styles.button, marginRight: "m", radius: "l", overflow: "hidden", background: "surface", children: _jsx(IconButton, { tabIndex: 0, onClick: handleNextClick, variant: "secondary", icon: "chevronRight" }) })] })) })) : (_jsx(Flex, { maxWidth: 12 }))] }), play.progress && (_jsx(Row, { fillWidth: true, paddingBottom: "12", paddingX: "24", position: "absolute", bottom: "0", left: "0", zIndex: 1, children: _jsx(Row, { radius: "full", background: "neutral-alpha-weak", height: "2", fillWidth: true, children: _jsx(Row, { radius: "full", solid: "brand-strong", style: { width: `${progressPercent}%`, transition: `width 0.05s linear` }, fillHeight: true }) }) }))] }), items.length > 1 && indicator !== false && (_jsx(_Fragment, { children: indicator === "line" ? (_jsx(Flex, { gap: "4", paddingX: "s", fillWidth: true, horizontal: "center", children: items.map((_, index) => (_jsx(Flex, { className: styles.indicator, onClick: () => handleControlClick(index), cursor: activeIndex === index ? undefined : "interactive", fillWidth: true, height: "12", vertical: "center", children: _jsx(Flex, { className: activeIndex === index ? styles.active : styles.inactive, radius: "full", transition: "micro-short", fillWidth: true, height: "2" }) }, index))) })) : (_jsx(Scroller, { gap: "4", marginTop: "12", onItemClick: handleControlClick, children: items.map((item, index) => (_jsx(Flex, { style: {
|
|
149
|
+
border: activeIndex === index
|
|
150
|
+
? "2px solid var(--brand-solid-strong)"
|
|
151
|
+
: "2px solid var(--static-transparent)",
|
|
152
|
+
}, radius: "m-8", padding: "4", aspectRatio: aspectRatio, cursor: "interactive", minHeight: thumbnail.height, maxHeight: thumbnail.height, children: typeof item.slide === "string" ? (_jsx(Media, { alt: item.alt || "", aspectRatio: aspectRatio, sizes: thumbnail.sizes, src: item.slide, cursor: "interactive", radius: "m", transition: "macro-medium" })) : (_jsx(Flex, { aspectRatio: aspectRatio, cursor: "interactive", radius: "m", transition: "macro-medium", overflow: "hidden", fill: true, children: _jsx(Flex, { fill: true, style: { transform: `scale(${thumbnail.scaling})` }, children: item.slide }) })) }, index))) })) }))] }));
|
|
153
|
+
};
|
|
154
|
+
Carousel.displayName = "Carousel";
|
|
155
|
+
export { Carousel };
|
|
156
|
+
//# sourceMappingURL=Carousel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Carousel.js","sourceRoot":"","sources":["../../src/components/Carousel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,MAAM,MAAM,wBAAwB,CAAC;AA2B5C,MAAM,QAAQ,GAA4B,CAAC,EACzC,KAAK,GAAG,EAAE,EACV,IAAI,GAAG,KAAK,EACZ,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,MAAM,EAClB,UAAU,EACV,WAAW,GAAG,UAAU,EACxB,KAAK,EACL,iBAAiB,GAAG,KAAK,EACzB,SAAS,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EACxD,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EACtD,GAAG,IAAI,EACR,EAAE,EAAE;IACH,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC;IAC1D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAmB,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC1E,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC9E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAU,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;IACxE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC;IAElE,+CAA+C;IAC/C,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChB,MAAM,YAAY,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IAC3D,MAAM,oBAAoB,GAAG,MAAM,CAA6B,SAAS,CAAC,CAAC;IAC3E,MAAM,mBAAmB,GAAG,MAAM,CAA6B,SAAS,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAEjD,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,EAAE;QAC7C,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9B,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACnC,YAAY,CAAC,OAAO,GAAG,IAAI,KAAK,EAAE,CAAC;gBACnC,YAAY,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,WAAW,GAAG,CAAC,CAAC;YAClC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,mDAAmD;YACnD,MAAM,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,EAAE;QAC/C,IAAI,SAAS,KAAK,WAAW,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;YAC/D,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAE5B,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAE1B,oBAAoB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7C,cAAc,CAAC,SAAS,CAAC,CAAC;gBAE1B,UAAU,CAAC,GAAG,EAAE;oBACd,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBACzB,oBAAoB,CAAC,OAAO,GAAG,SAAS,CAAC;gBAC3C,CAAC,EAAE,EAAE,CAAC,CAAC;YACT,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC;IAEF,sCAAsC;IACtC,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,MAAM,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,kCAAkC;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,aAAyC,CAAC;QAE9C,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,oCAAoC;YACpC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAEtB,6BAA6B;YAC7B,MAAM,eAAe,GAAG,EAAE,CAAC,CAAC,KAAK;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,iCAAiC;YACzE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe,CAAC,CAAC;YAC1D,IAAI,WAAW,GAAG,CAAC,CAAC;YAEpB,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC/B,WAAW,EAAE,CAAC;gBACd,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;gBAChE,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC,EAAE,eAAe,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,aAAa,EAAE,CAAC;gBAClB,aAAa,CAAC,aAAa,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,iCAAiC;IACjC,SAAS,CAAC,GAAG,EAAE;QACb,oCAAoC;QACpC,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAChC,aAAa,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC3C,mBAAmB,CAAC,OAAO,GAAG,SAAS,CAAC;QAC1C,CAAC;QAED,6BAA6B;QAC7B,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,mBAAmB,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC7C,gEAAgE;gBAChE,kBAAkB,EAAE,CAAC;YACvB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;QAED,mBAAmB;QACnB,OAAO,GAAG,EAAE;YACV,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAChC,aAAa,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAC3C,mBAAmB,CAAC,OAAO,GAAG,SAAS,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAEjE,4BAA4B;IAC5B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7C,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACzB,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,GAAG,EAAE;YACV,IAAI,oBAAoB,CAAC,OAAO,EAAE,CAAC;gBACjC,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE3C,6BAA6B;IAC7B,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,MAAC,MAAM,IAAC,SAAS,QAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAC,GAAG,KAAK,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAC1G,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,CACjD,KAAC,IAAI,IACH,QAAQ,EAAC,UAAU,EACnB,GAAG,EAAC,IAAI,EACR,KAAK,EAAC,IAAI,EACV,MAAM,EAAE,CAAC,YAET,KAAC,IAAI,IACH,MAAM,EAAC,GAAG,EACV,UAAU,EAAC,SAAS,YAEpB,KAAC,UAAU,IACT,OAAO,EAAE,CAAC,CAAmB,EAAE,EAAE;4BAC/B,CAAC,CAAC,eAAe,EAAE,CAAC;4BACpB,eAAe,EAAE,CAAC;wBACpB,CAAC,EACD,OAAO,EAAC,WAAW,EACnB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAClC,GACG,GACF,CACR,EACD,MAAC,QAAQ,IACP,SAAS,QACT,UAAU,EAAE,IAAI,EAChB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG,EAC1B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EACjE,KAAK,EAAE,GAAG,EACV,YAAY,EAAE,CAAC,CAAmB,EAAE,EAAE;oBACpC,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAChD,CAAC,EACD,UAAU,EAAE,CAAC,CAAmB,EAAE,EAAE;oBAClC,IAAI,cAAc,CAAC,OAAO,KAAK,IAAI;wBAAE,OAAO;oBAE5C,MAAM,SAAS,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC9C,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC;oBAEjC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,GAAG,SAAS,CAAC;oBAEjD,+DAA+D;oBAC/D,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;wBACzB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;4BACd,eAAe,EAAE,CAAC;wBACpB,CAAC;6BAAM,CAAC;4BACN,eAAe,EAAE,CAAC;wBACpB,CAAC;oBACH,CAAC;oBAED,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC9B,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC9B,CAAC,aAEA,OAAO,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC/C,KAAC,KAAK,IACJ,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG,EAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,oBAAoB,EAC3C,QAAQ,EAAC,QAAQ,EACjB,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAChF,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,KAAe,EACxC,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,GAClC,CACH,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IACH,IAAI,QACJ,QAAQ,EAAC,QAAQ,EACjB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG,EAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,oBAAoB,EAC3C,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,YAE/E,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,GACrB,CACR,EACD,MAAC,GAAG,IACF,IAAI,QACJ,SAAS,EAAE,MAAM,CAAC,QAAQ,EAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG,EAC1B,QAAQ,EAAC,UAAU,EACnB,GAAG,EAAC,GAAG,EACP,IAAI,EAAC,GAAG,EACR,QAAQ,EAAC,QAAQ,EACjB,UAAU,EAAC,SAAS,aAEnB,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CACjB,KAAC,GAAG,IACF,SAAS,EAAE,MAAM,CAAC,IAAI,EACtB,MAAM,EAAC,aAAa,EACpB,QAAQ,EAAE,EAAE,EACZ,IAAI,QACJ,QAAQ,EAAC,QAAQ,EACjB,OAAO,EAAE,eAAe,YAEvB,QAAQ,IAAI,CACX,8BACE,KAAC,IAAI,IACH,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EACjB,UAAU,EAAC,cAAc,EACzB,SAAS,EAAE,MAAM,CAAC,IAAI,EACtB,QAAQ,EAAC,UAAU,EACnB,IAAI,EAAC,GAAG,EACR,GAAG,EAAC,GAAG,EACP,EAAE,EAAC,OAAO,EACV,UAAU,QACV,QAAQ,EAAE,CAAC,GACX,EACF,KAAC,IAAI,IACH,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EACjB,UAAU,EAAC,cAAc,EACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,UAAU,EAAC,GAAG,EACd,MAAM,EAAC,GAAG,EACV,QAAQ,EAAC,QAAQ,EACjB,UAAU,EAAC,SAAS,YAEpB,KAAC,UAAU,IACT,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,eAAe,EACxB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,aAAa,GAClB,GACG,IACN,CACJ,GACG,CACP,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,QAAQ,EAAE,EAAE,GAAI,CACvB,EACA,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAChC,KAAC,GAAG,IACF,SAAS,EAAE,MAAM,CAAC,KAAK,EACvB,MAAM,EAAC,aAAa,EACpB,QAAQ,EAAE,EAAE,EACZ,IAAI,QACJ,QAAQ,EAAC,QAAQ,EACjB,UAAU,EAAC,KAAK,EAChB,OAAO,EAAE,eAAe,YAEvB,QAAQ,IAAI,CACX,8BACE,KAAC,IAAI,IACH,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EACjB,UAAU,EAAC,cAAc,EACzB,SAAS,EAAE,MAAM,CAAC,IAAI,EACtB,QAAQ,EAAC,UAAU,EACnB,KAAK,EAAC,GAAG,EACT,GAAG,EAAC,GAAG,EACP,EAAE,EAAC,MAAM,EACT,UAAU,QACV,QAAQ,EAAE,CAAC,GACX,EACF,KAAC,IAAI,IACH,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EACjB,UAAU,EAAC,cAAc,EACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,WAAW,EAAC,GAAG,EACf,MAAM,EAAC,GAAG,EACV,QAAQ,EAAC,QAAQ,EACjB,UAAU,EAAC,SAAS,YAEpB,KAAC,UAAU,IACT,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,eAAe,EACxB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,cAAc,GACnB,GACG,IACN,CACJ,GACG,CACP,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,QAAQ,EAAE,EAAE,GAAI,CACvB,IACG,EACL,IAAI,CAAC,QAAQ,IAAI,CAChB,KAAC,GAAG,IACF,SAAS,QACT,aAAa,EAAC,IAAI,EAClB,QAAQ,EAAC,IAAI,EACb,QAAQ,EAAC,UAAU,EACnB,MAAM,EAAC,GAAG,EACV,IAAI,EAAC,GAAG,EACR,MAAM,EAAE,CAAC,YAET,KAAC,GAAG,IAAC,MAAM,EAAC,MAAM,EAAC,UAAU,EAAC,oBAAoB,EAAC,MAAM,EAAC,GAAG,EAAC,SAAS,kBACrE,KAAC,GAAG,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,cAAc,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,eAAe,GAAG,EAAE,UAAU,EAAE,oBAAoB,EAAE,EAAE,UAAU,SAAG,GAC5H,GACF,CACP,IACQ,EACV,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,KAAK,KAAK,IAAI,CAC1C,4BACG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CACtB,KAAC,IAAI,IAAC,GAAG,EAAC,GAAG,EAAC,QAAQ,EAAC,GAAG,EAAC,SAAS,QAAC,UAAU,EAAC,QAAQ,YACrD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACvB,KAAC,IAAI,IACH,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,EACxC,MAAM,EAAE,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAEzD,SAAS,QACT,MAAM,EAAC,IAAI,EACX,QAAQ,EAAC,QAAQ,YAEjB,KAAC,IAAI,IACH,SAAS,EAAE,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAClE,MAAM,EAAC,MAAM,EACb,UAAU,EAAC,aAAa,EACxB,SAAS,QACT,MAAM,EAAC,GAAG,GACV,IAXG,KAAK,CAYL,CACR,CAAC,GACG,CACR,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,IAAC,GAAG,EAAC,GAAG,EAAC,SAAS,EAAC,IAAI,EAAC,WAAW,EAAE,kBAAkB,YAC7D,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC1B,KAAC,IAAI,IAEH,KAAK,EAAE;4BACL,MAAM,EACJ,WAAW,KAAK,KAAK;gCACnB,CAAC,CAAC,qCAAqC;gCACvC,CAAC,CAAC,qCAAqC;yBAC5C,EACD,MAAM,EAAC,KAAK,EACZ,OAAO,EAAC,GAAG,EACX,WAAW,EAAE,WAAW,EACxB,MAAM,EAAC,aAAa,EACpB,SAAS,EAAE,SAAS,CAAC,MAAM,EAC3B,SAAS,EAAE,SAAS,CAAC,MAAM,YAE1B,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAChC,KAAC,KAAK,IACJ,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,EACnB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,GAAG,EAAE,IAAI,CAAC,KAAK,EACf,MAAM,EAAC,aAAa,EACpB,MAAM,EAAC,GAAG,EACV,UAAU,EAAC,cAAc,GACzB,CACH,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IACH,WAAW,EAAE,WAAW,EACxB,MAAM,EAAC,aAAa,EACpB,MAAM,EAAC,GAAG,EACV,UAAU,EAAC,cAAc,EACzB,QAAQ,EAAC,QAAQ,EACjB,IAAI,kBAEJ,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,SAAS,CAAC,OAAO,GAAG,EAAE,YAC3D,IAAI,CAAC,KAAK,GACN,GACF,CACR,IArCI,KAAK,CAsCL,CACR,CAAC,GACO,CACZ,GACA,CACJ,IACM,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
.indicator {
|
|
2
|
+
&:hover, &:focus-within {
|
|
3
|
+
.inactive {
|
|
4
|
+
background: var(--neutral-alpha-strong);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.inactive {
|
|
10
|
+
background: var(--neutral-alpha-medium);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.active {
|
|
14
|
+
background: var(--neutral-on-background-strong);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.controls {
|
|
18
|
+
&:hover, &:focus-within {
|
|
19
|
+
.fade {
|
|
20
|
+
opacity: 0.5;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.button {
|
|
24
|
+
opacity: 1;
|
|
25
|
+
transform: translateX(0);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.fade, .button {
|
|
31
|
+
opacity: 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.button {
|
|
35
|
+
animation-delay: 0.2s;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.left {
|
|
39
|
+
.button {
|
|
40
|
+
transform: translateX(-1rem);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.right {
|
|
45
|
+
.button {
|
|
46
|
+
transform: translateX(1rem);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Flex } from ".";
|
|
3
|
+
type CelebrationType = "confetti" | "fireworks";
|
|
4
|
+
interface CelebrationFxProps extends React.ComponentProps<typeof Flex> {
|
|
5
|
+
type?: CelebrationType;
|
|
6
|
+
speed?: number;
|
|
7
|
+
colors?: string[];
|
|
8
|
+
intensity?: number;
|
|
9
|
+
duration?: number;
|
|
10
|
+
trigger?: "mount" | "hover" | "manual" | "click";
|
|
11
|
+
active?: boolean;
|
|
12
|
+
reducedMotion?: boolean | "auto";
|
|
13
|
+
children?: React.ReactNode;
|
|
14
|
+
}
|
|
15
|
+
declare const CelebrationFx: React.ForwardRefExoticComponent<Omit<CelebrationFxProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
export { CelebrationFx };
|
|
17
|
+
//# sourceMappingURL=CelebrationFx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CelebrationFx.d.ts","sourceRoot":"","sources":["../../src/components/CelebrationFx.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AAGzB,KAAK,eAAe,GAAG,UAAU,GAAG,WAAW,CAAC;AAEhD,UAAU,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC;IACpE,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAuCD,QAAA,MAAM,aAAa,wGA+WlB,CAAC;AAGF,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import React, { useEffect, useRef } from "react";
|
|
4
|
+
import { Flex } from ".";
|
|
5
|
+
import { useReducedMotion } from "../hooks/useReducedMotion";
|
|
6
|
+
const CelebrationFx = React.forwardRef(({ type = "confetti", speed = 1, colors = ["brand-solid-medium", "accent-solid-medium"], intensity = 50, duration, trigger = "mount", active = true, reducedMotion = "auto", children, ...rest }, forwardedRef) => {
|
|
7
|
+
const { shouldAnimate } = useReducedMotion(reducedMotion);
|
|
8
|
+
const containerRef = useRef(null);
|
|
9
|
+
const canvasRef = useRef(null);
|
|
10
|
+
const animationRef = useRef(undefined);
|
|
11
|
+
const particlesRef = useRef([]);
|
|
12
|
+
const isEmittingRef = useRef(trigger === "mount");
|
|
13
|
+
const emitStartTimeRef = useRef(Date.now());
|
|
14
|
+
const isHoveredRef = useRef(false);
|
|
15
|
+
const fireworkTimerRef = useRef(0);
|
|
16
|
+
const clickPositionRef = useRef(null);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (forwardedRef) {
|
|
19
|
+
if ("current" in forwardedRef) {
|
|
20
|
+
forwardedRef.current = containerRef.current;
|
|
21
|
+
}
|
|
22
|
+
else if (typeof forwardedRef === "function") {
|
|
23
|
+
forwardedRef(containerRef.current);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}, [forwardedRef]);
|
|
27
|
+
// Handle manual trigger
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
if (trigger === "manual") {
|
|
30
|
+
if (active) {
|
|
31
|
+
isEmittingRef.current = true;
|
|
32
|
+
emitStartTimeRef.current = Date.now();
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
isEmittingRef.current = false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}, [trigger, active]);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
const canvas = canvasRef.current;
|
|
41
|
+
const container = containerRef.current;
|
|
42
|
+
if (!canvas || !container)
|
|
43
|
+
return;
|
|
44
|
+
const ctx = canvas.getContext("2d");
|
|
45
|
+
if (!ctx)
|
|
46
|
+
return;
|
|
47
|
+
// Set canvas size
|
|
48
|
+
let canvasWidth = 0;
|
|
49
|
+
let canvasHeight = 0;
|
|
50
|
+
const updateSize = () => {
|
|
51
|
+
const rect = container.getBoundingClientRect();
|
|
52
|
+
canvasWidth = rect.width;
|
|
53
|
+
canvasHeight = rect.height;
|
|
54
|
+
canvas.width = rect.width * 2; // 2x for retina
|
|
55
|
+
canvas.height = rect.height * 2;
|
|
56
|
+
canvas.style.width = `${rect.width}px`;
|
|
57
|
+
canvas.style.height = `${rect.height}px`;
|
|
58
|
+
ctx.scale(2, 2); // Scale for retina
|
|
59
|
+
};
|
|
60
|
+
updateSize();
|
|
61
|
+
window.addEventListener("resize", updateSize);
|
|
62
|
+
// Parse colors - convert token names to CSS variables
|
|
63
|
+
const parsedColors = colors.map((color) => {
|
|
64
|
+
const computedColor = getComputedStyle(container).getPropertyValue(`--${color}`);
|
|
65
|
+
return computedColor || color;
|
|
66
|
+
});
|
|
67
|
+
// Initialize confetti
|
|
68
|
+
const initializeConfetti = () => {
|
|
69
|
+
const particles = [];
|
|
70
|
+
const shapes = ["rectangle", "circle", "triangle"];
|
|
71
|
+
for (let i = 0; i < intensity; i++) {
|
|
72
|
+
// Stagger particles more dramatically over a larger vertical range
|
|
73
|
+
const stagger = (i / intensity) * canvasHeight * 2;
|
|
74
|
+
particles.push({
|
|
75
|
+
x: Math.random() * canvasWidth,
|
|
76
|
+
y: -canvasHeight - Math.random() * canvasHeight - stagger,
|
|
77
|
+
width: 8 + Math.random() * 8,
|
|
78
|
+
height: 6 + Math.random() * 6,
|
|
79
|
+
color: parsedColors[Math.floor(Math.random() * parsedColors.length)],
|
|
80
|
+
rotation: Math.random() * Math.PI * 2,
|
|
81
|
+
rotationSpeed: (Math.random() - 0.5) * 0.2,
|
|
82
|
+
velocityX: (Math.random() - 0.5) * 3,
|
|
83
|
+
velocityY: (0.5 + Math.random() * 2.5) * speed,
|
|
84
|
+
gravity: (0.12 + Math.random() * 0.06) * speed,
|
|
85
|
+
opacity: 0.8 + Math.random() * 0.2,
|
|
86
|
+
shape: shapes[Math.floor(Math.random() * shapes.length)],
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
return particles;
|
|
90
|
+
};
|
|
91
|
+
// Create a new firework (explodes immediately at random or click position)
|
|
92
|
+
const createFirework = (clickPos) => {
|
|
93
|
+
const firework = {
|
|
94
|
+
x: clickPos ? clickPos.x : Math.random() * canvasWidth,
|
|
95
|
+
y: clickPos ? clickPos.y : canvasHeight * (0.2 + Math.random() * 0.4),
|
|
96
|
+
targetY: 0, // Not used anymore
|
|
97
|
+
velocityY: 0,
|
|
98
|
+
color: parsedColors[Math.floor(Math.random() * parsedColors.length)],
|
|
99
|
+
exploded: true, // Start already exploded
|
|
100
|
+
particles: [],
|
|
101
|
+
};
|
|
102
|
+
// Explode immediately
|
|
103
|
+
explodeFirework(firework);
|
|
104
|
+
return firework;
|
|
105
|
+
};
|
|
106
|
+
// Explode firework into particles
|
|
107
|
+
const explodeFirework = (firework) => {
|
|
108
|
+
const particleCount = 30 + Math.floor(Math.random() * 20);
|
|
109
|
+
for (let i = 0; i < particleCount; i++) {
|
|
110
|
+
const angle = (Math.PI * 2 * i) / particleCount;
|
|
111
|
+
const velocity = 1 + Math.random() * 3;
|
|
112
|
+
firework.particles.push({
|
|
113
|
+
x: firework.x,
|
|
114
|
+
y: firework.y,
|
|
115
|
+
velocityX: Math.cos(angle) * velocity * speed,
|
|
116
|
+
velocityY: Math.sin(angle) * velocity * speed,
|
|
117
|
+
color: firework.color,
|
|
118
|
+
opacity: 1,
|
|
119
|
+
size: 1 + Math.random(),
|
|
120
|
+
life: 0,
|
|
121
|
+
maxLife: 60 + Math.random() * 40,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
firework.exploded = true;
|
|
125
|
+
};
|
|
126
|
+
// Initialize particles only if not already initialized
|
|
127
|
+
if (particlesRef.current.length === 0 && type === "confetti") {
|
|
128
|
+
particlesRef.current = initializeConfetti();
|
|
129
|
+
}
|
|
130
|
+
// Animation loop
|
|
131
|
+
const animate = () => {
|
|
132
|
+
ctx.clearRect(0, 0, canvasWidth, canvasHeight);
|
|
133
|
+
// Check if we should still be emitting new particles
|
|
134
|
+
const shouldEmit = trigger === "hover" ? isHoveredRef.current :
|
|
135
|
+
trigger === "manual" ? active :
|
|
136
|
+
trigger === "click" ? clickPositionRef.current !== null :
|
|
137
|
+
isEmittingRef.current;
|
|
138
|
+
// Check duration limit
|
|
139
|
+
if (duration && isEmittingRef.current && trigger !== "manual") {
|
|
140
|
+
const elapsed = (Date.now() - emitStartTimeRef.current) / 1000;
|
|
141
|
+
if (elapsed > duration) {
|
|
142
|
+
isEmittingRef.current = false;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (type === "confetti") {
|
|
146
|
+
// Update and draw confetti
|
|
147
|
+
particlesRef.current.forEach((piece) => {
|
|
148
|
+
// Update physics
|
|
149
|
+
piece.velocityY += piece.gravity;
|
|
150
|
+
piece.x += piece.velocityX;
|
|
151
|
+
piece.y += piece.velocityY;
|
|
152
|
+
piece.rotation += piece.rotationSpeed;
|
|
153
|
+
// Add some air resistance
|
|
154
|
+
piece.velocityX *= 0.99;
|
|
155
|
+
// Only respawn if we're still emitting
|
|
156
|
+
if (piece.y > canvasHeight + 50 && shouldEmit) {
|
|
157
|
+
piece.y = -20 - Math.random() * canvasHeight * 0.5;
|
|
158
|
+
piece.x = Math.random() * canvasWidth;
|
|
159
|
+
piece.velocityX = (Math.random() - 0.5) * 3;
|
|
160
|
+
piece.velocityY = (0.5 + Math.random() * 2.5) * speed;
|
|
161
|
+
piece.gravity = (0.12 + Math.random() * 0.06) * speed;
|
|
162
|
+
}
|
|
163
|
+
// Only draw if still on screen
|
|
164
|
+
if (piece.y < canvasHeight + 100) {
|
|
165
|
+
// Draw confetti piece
|
|
166
|
+
ctx.save();
|
|
167
|
+
ctx.translate(piece.x, piece.y);
|
|
168
|
+
ctx.rotate(piece.rotation);
|
|
169
|
+
ctx.globalAlpha = piece.opacity;
|
|
170
|
+
ctx.fillStyle = piece.color;
|
|
171
|
+
if (piece.shape === "rectangle") {
|
|
172
|
+
ctx.fillRect(-piece.width / 2, -piece.height / 2, piece.width, piece.height);
|
|
173
|
+
}
|
|
174
|
+
else if (piece.shape === "circle") {
|
|
175
|
+
ctx.beginPath();
|
|
176
|
+
ctx.arc(0, 0, piece.width / 2, 0, Math.PI * 2);
|
|
177
|
+
ctx.fill();
|
|
178
|
+
}
|
|
179
|
+
else if (piece.shape === "triangle") {
|
|
180
|
+
ctx.beginPath();
|
|
181
|
+
ctx.moveTo(0, -piece.height / 2);
|
|
182
|
+
ctx.lineTo(piece.width / 2, piece.height / 2);
|
|
183
|
+
ctx.lineTo(-piece.width / 2, piece.height / 2);
|
|
184
|
+
ctx.closePath();
|
|
185
|
+
ctx.fill();
|
|
186
|
+
}
|
|
187
|
+
ctx.restore();
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
else if (type === "fireworks") {
|
|
192
|
+
// Launch new fireworks
|
|
193
|
+
if (trigger === "click" && clickPositionRef.current) {
|
|
194
|
+
// Fire from click position
|
|
195
|
+
particlesRef.current.push(createFirework(clickPositionRef.current));
|
|
196
|
+
clickPositionRef.current = null;
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
fireworkTimerRef.current++;
|
|
200
|
+
if (shouldEmit && fireworkTimerRef.current > 20 / speed) {
|
|
201
|
+
// Launch new firework every ~20 frames
|
|
202
|
+
fireworkTimerRef.current = 0;
|
|
203
|
+
particlesRef.current.push(createFirework());
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// Update and draw fireworks (explosion particles only)
|
|
207
|
+
particlesRef.current.forEach((firework) => {
|
|
208
|
+
// Update and draw explosion particles
|
|
209
|
+
firework.particles.forEach((particle) => {
|
|
210
|
+
particle.life++;
|
|
211
|
+
if (particle.life < particle.maxLife) {
|
|
212
|
+
// Update position
|
|
213
|
+
particle.x += particle.velocityX;
|
|
214
|
+
particle.y += particle.velocityY;
|
|
215
|
+
particle.velocityY += 0.1; // Gravity
|
|
216
|
+
// Fade out
|
|
217
|
+
particle.opacity = 1 - particle.life / particle.maxLife;
|
|
218
|
+
// Draw particle
|
|
219
|
+
ctx.globalAlpha = particle.opacity;
|
|
220
|
+
ctx.fillStyle = particle.color;
|
|
221
|
+
ctx.beginPath();
|
|
222
|
+
ctx.arc(particle.x, particle.y, particle.size, 0, Math.PI * 2);
|
|
223
|
+
ctx.fill();
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
// Clean up dead fireworks (only when not emitting)
|
|
228
|
+
if (!shouldEmit) {
|
|
229
|
+
particlesRef.current = particlesRef.current.filter((firework) => {
|
|
230
|
+
// Keep if any particles are still alive
|
|
231
|
+
return firework.particles.some(p => p.life < p.maxLife);
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
ctx.globalAlpha = 1;
|
|
236
|
+
animationRef.current = requestAnimationFrame(animate);
|
|
237
|
+
};
|
|
238
|
+
if (shouldAnimate) {
|
|
239
|
+
animate();
|
|
240
|
+
}
|
|
241
|
+
return () => {
|
|
242
|
+
window.removeEventListener("resize", updateSize);
|
|
243
|
+
if (animationRef.current) {
|
|
244
|
+
cancelAnimationFrame(animationRef.current);
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
}, [type, colors, speed, intensity, duration, trigger, shouldAnimate]);
|
|
248
|
+
const handleMouseEnter = () => {
|
|
249
|
+
if (trigger === "hover" && !isHoveredRef.current) {
|
|
250
|
+
isHoveredRef.current = true;
|
|
251
|
+
isEmittingRef.current = true;
|
|
252
|
+
emitStartTimeRef.current = Date.now();
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
const handleMouseLeave = () => {
|
|
256
|
+
if (trigger === "hover" && isHoveredRef.current) {
|
|
257
|
+
isHoveredRef.current = false;
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
const handleClick = (e) => {
|
|
261
|
+
if (trigger === "click" && containerRef.current) {
|
|
262
|
+
const rect = containerRef.current.getBoundingClientRect();
|
|
263
|
+
const x = e.clientX - rect.left;
|
|
264
|
+
const y = e.clientY - rect.top;
|
|
265
|
+
if (type === "confetti") {
|
|
266
|
+
// For confetti, add burst of particles from click position
|
|
267
|
+
const shapes = ["rectangle", "circle", "triangle"];
|
|
268
|
+
const canvas = canvasRef.current;
|
|
269
|
+
if (!canvas)
|
|
270
|
+
return;
|
|
271
|
+
const parsedColors = colors.map((color) => {
|
|
272
|
+
const computedColor = getComputedStyle(containerRef.current).getPropertyValue(`--${color}`);
|
|
273
|
+
return computedColor || color;
|
|
274
|
+
});
|
|
275
|
+
for (let i = 0; i < intensity; i++) {
|
|
276
|
+
const angle = (Math.PI * 2 * i) / intensity;
|
|
277
|
+
const velocity = 2 + Math.random() * 3;
|
|
278
|
+
particlesRef.current.push({
|
|
279
|
+
x,
|
|
280
|
+
y,
|
|
281
|
+
width: 8 + Math.random() * 8,
|
|
282
|
+
height: 6 + Math.random() * 6,
|
|
283
|
+
color: parsedColors[Math.floor(Math.random() * parsedColors.length)],
|
|
284
|
+
rotation: Math.random() * Math.PI * 2,
|
|
285
|
+
rotationSpeed: (Math.random() - 0.5) * 0.2,
|
|
286
|
+
velocityX: Math.cos(angle) * velocity,
|
|
287
|
+
velocityY: Math.sin(angle) * velocity - 2, // Slight upward bias
|
|
288
|
+
gravity: (0.12 + Math.random() * 0.06) * speed,
|
|
289
|
+
opacity: 0.8 + Math.random() * 0.2,
|
|
290
|
+
shape: shapes[Math.floor(Math.random() * shapes.length)],
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
// For fireworks, store click position
|
|
296
|
+
clickPositionRef.current = { x, y };
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
};
|
|
300
|
+
return (_jsxs(Flex, { ref: containerRef, fill: true, overflow: "hidden", onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, style: {
|
|
301
|
+
cursor: trigger === "click" ? "pointer" : undefined,
|
|
302
|
+
...rest.style,
|
|
303
|
+
}, ...rest, children: [_jsx("canvas", { ref: canvasRef, style: {
|
|
304
|
+
position: "absolute",
|
|
305
|
+
top: 0,
|
|
306
|
+
left: 0,
|
|
307
|
+
width: "100%",
|
|
308
|
+
height: "100%",
|
|
309
|
+
pointerEvents: "none",
|
|
310
|
+
} }), children] }));
|
|
311
|
+
});
|
|
312
|
+
CelebrationFx.displayName = "CelebrationFx";
|
|
313
|
+
export { CelebrationFx };
|
|
314
|
+
//# sourceMappingURL=CelebrationFx.js.map
|