@flikk/ui 1.0.0-beta.2 → 1.0.0-beta.21
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 +52 -0
- package/dist/bg/1.jpg +0 -0
- package/dist/bg/10.jpg +0 -0
- package/dist/bg/11.jpg +0 -0
- package/dist/bg/14.jpg +0 -0
- package/dist/bg/15.jpg +0 -0
- package/dist/bg/16.jpg +0 -0
- package/dist/bg/17.jpg +0 -0
- package/dist/bg/18.jpg +0 -0
- package/dist/bg/19.jpg +0 -0
- package/dist/bg/2.jpg +0 -0
- package/dist/bg/20.jpg +0 -0
- package/dist/bg/21.jpg +0 -0
- package/dist/bg/22.jpg +0 -0
- package/dist/bg/23.jpg +0 -0
- package/dist/bg/24.jpg +0 -0
- package/dist/bg/3.jpg +0 -0
- package/dist/bg/4.jpg +0 -0
- package/dist/bg/5.jpg +0 -0
- package/dist/bg/6.jpg +0 -0
- package/dist/bg/7.jpg +0 -0
- package/dist/bg/8.jpg +0 -0
- package/dist/bg/9.jpg +0 -0
- package/dist/bg/bg/1.jpg +0 -0
- package/dist/bg/bg/10.jpg +0 -0
- package/dist/bg/bg/11.jpg +0 -0
- package/dist/bg/bg/14.jpg +0 -0
- package/dist/bg/bg/15.jpg +0 -0
- package/dist/bg/bg/16.jpg +0 -0
- package/dist/bg/bg/17.jpg +0 -0
- package/dist/bg/bg/18.jpg +0 -0
- package/dist/bg/bg/19.jpg +0 -0
- package/dist/bg/bg/2.jpg +0 -0
- package/dist/bg/bg/20.jpg +0 -0
- package/dist/bg/bg/21.jpg +0 -0
- package/dist/bg/bg/22.jpg +0 -0
- package/dist/bg/bg/23.jpg +0 -0
- package/dist/bg/bg/24.jpg +0 -0
- package/dist/bg/bg/3.jpg +0 -0
- package/dist/bg/bg/4.jpg +0 -0
- package/dist/bg/bg/5.jpg +0 -0
- package/dist/bg/bg/6.jpg +0 -0
- package/dist/bg/bg/7.jpg +0 -0
- package/dist/bg/bg/8.jpg +0 -0
- package/dist/bg/bg/9.jpg +0 -0
- package/dist/components/ai/CodeBlock/CodeBlock.theme.js +3 -3
- package/dist/components/ai/PromptInput/PromptInput.animations.d.ts +25 -0
- package/dist/components/ai/PromptInput/PromptInput.animations.js +61 -0
- package/dist/components/ai/PromptInput/PromptInput.js +146 -29
- package/dist/components/ai/PromptInput/PromptInput.theme.js +6 -1
- package/dist/components/ai/PromptInput/PromptInput.types.d.ts +68 -0
- package/dist/components/ai/PromptInput/VoiceRecorder.d.ts +10 -0
- package/dist/components/ai/PromptInput/VoiceRecorder.js +181 -0
- package/dist/components/ai/PromptInput/VoiceRecorder.types.d.ts +17 -0
- package/dist/components/ai/PromptInput/index.d.ts +1 -0
- package/dist/components/ai/PromptSuggestions/PromptSuggestion.theme.js +4 -4
- package/dist/components/ai/StreamingResponse/AnimatedText.js +3 -3
- package/dist/components/ai/StreamingResponse/MarkdownRenderer.d.ts +5 -2
- package/dist/components/ai/StreamingResponse/MarkdownRenderer.js +59 -35
- package/dist/components/ai/StreamingResponse/StreamingCursor.d.ts +4 -5
- package/dist/components/ai/StreamingResponse/StreamingCursor.js +5 -12
- package/dist/components/ai/StreamingResponse/StreamingResponse.animations.d.ts +7 -0
- package/dist/components/ai/StreamingResponse/StreamingResponse.animations.js +27 -8
- package/dist/components/ai/StreamingResponse/StreamingResponse.js +11 -4
- package/dist/components/ai/StreamingResponse/StreamingResponse.theme.js +4 -4
- package/dist/components/ai/StreamingResponse/StreamingResponse.types.d.ts +9 -7
- package/dist/components/ai/StreamingResponse/WordAnimationContext.d.ts +27 -0
- package/dist/components/ai/StreamingResponse/WordAnimationContext.js +134 -0
- package/dist/components/ai/StreamingResponse/index.d.ts +3 -1
- package/dist/components/ai/TokenCounter/TokenCounter.theme.js +6 -6
- package/dist/components/ai/index.d.ts +0 -7
- package/dist/components/ai/index.js +10 -6
- package/dist/components/charts/ActivityRings/ActivityRings.js +1 -1
- package/dist/components/charts/ActivityRings/ActivityRings.theme.js +2 -2
- package/dist/components/charts/BarChart/BarChart.js +3 -3
- package/dist/components/charts/ChartContainer.js +1 -1
- package/dist/components/charts/ComboChart/ComboChart.js +2 -2
- package/dist/components/charts/DonutChart/DonutChart.js +1 -1
- package/dist/components/charts/DonutChart/DonutChart.theme.js +1 -1
- package/dist/components/charts/DonutChart/DonutChart.types.d.ts +1 -2
- package/dist/components/charts/DonutChart/MultiSegmentDonutChart.js +2 -2
- package/dist/components/charts/DonutChart/MultiSegmentDonutChart.theme.js +1 -1
- package/dist/components/charts/DonutChart/MultiSegmentDonutChart.types.d.ts +1 -2
- package/dist/components/charts/FunnelChart/FunnelChart.js +9 -9
- package/dist/components/charts/Heatmap/Heatmap.theme.js +1 -1
- package/dist/components/charts/Heatmap/HeatmapCell.js +1 -1
- package/dist/components/charts/Heatmap/HeatmapLegend.js +1 -1
- package/dist/components/charts/RadarChart/RadarChart.theme.js +2 -2
- package/dist/components/charts/ScatterPlot/ScatterPlot.js +1 -1
- package/dist/components/charts/ScatterPlot/ScatterPlot.theme.js +2 -2
- package/dist/components/charts/StackedBarChart/StackedBarChart.js +2 -2
- package/dist/components/charts/shared/ChartErrorBoundary/ChartErrorBoundary.js +1 -1
- package/dist/components/charts/shared/ChartLegend/ChartLegend.types.d.ts +13 -1
- package/dist/components/charts/shared/ChartLegend/ChartLegendContent.js +1 -1
- package/dist/components/charts/shared/ChartText/ChartText.js +1 -1
- package/dist/components/charts/shared/ChartText/ChartText.theme.js +1 -1
- package/dist/components/charts/shared/ChartTooltip/ChartTooltip.theme.js +4 -4
- package/dist/components/charts/shared/ChartTooltip/ChartTooltip.types.d.ts +13 -2
- package/dist/components/core/Accordion/Accordion.animations.d.ts +6 -1
- package/dist/components/core/Accordion/Accordion.animations.js +15 -1
- package/dist/components/core/Accordion/Accordion.d.ts +1 -1
- package/dist/components/core/Accordion/Accordion.js +2 -2
- package/dist/components/core/Accordion/Accordion.theme.d.ts +2 -2
- package/dist/components/core/Accordion/Accordion.theme.js +8 -8
- package/dist/components/core/Accordion/Accordion.types.d.ts +28 -4
- package/dist/components/core/Accordion/AccordionBody.d.ts +3 -0
- package/dist/components/core/Accordion/{AccordionContent.js → AccordionBody.js} +4 -4
- package/dist/components/core/Accordion/AccordionItem.js +2 -2
- package/dist/components/core/Accordion/AccordionTrigger.js +19 -7
- package/dist/components/core/Accordion/index.d.ts +2 -2
- package/dist/components/core/Alert/Alert.animations.d.ts +11 -0
- package/dist/components/core/Alert/Alert.animations.js +44 -0
- package/dist/components/core/Alert/Alert.js +22 -4
- package/dist/components/core/Alert/Alert.theme.js +4 -8
- package/dist/components/core/Alert/Alert.types.d.ts +7 -6
- package/dist/components/core/AlertDialog/AlertDialog.d.ts +1 -1
- package/dist/components/core/AlertDialog/AlertDialog.js +2 -2
- package/dist/components/core/AlertDialog/AlertDialog.types.d.ts +2 -2
- package/dist/components/core/Avatar/Avatar.js +30 -21
- package/dist/components/core/Avatar/Avatar.theme.d.ts +4 -6
- package/dist/components/core/Avatar/Avatar.theme.js +23 -13
- package/dist/components/core/Avatar/Avatar.types.d.ts +18 -8
- package/dist/components/core/AvatarGroup/AvatarGroup.animations.js +2 -2
- package/dist/components/core/AvatarGroup/AvatarGroup.js +2 -3
- package/dist/components/core/AvatarGroup/AvatarGroup.theme.js +1 -1
- package/dist/components/core/Badge/Badge.animations.js +1 -1
- package/dist/components/core/Badge/Badge.d.ts +1 -1
- package/dist/components/core/Badge/Badge.js +27 -47
- package/dist/components/core/Badge/Badge.theme.js +50 -53
- package/dist/components/core/Badge/Badge.types.d.ts +10 -29
- package/dist/components/core/Breadcrumbs/Breadcrumbs.js +7 -3
- package/dist/components/core/Breadcrumbs/Breadcrumbs.types.d.ts +1 -1
- package/dist/components/core/Button/Button.d.ts +1 -1
- package/dist/components/core/Button/Button.js +23 -25
- package/dist/components/core/Button/Button.ripple.d.ts +5 -1
- package/dist/components/core/Button/Button.ripple.js +28 -18
- package/dist/components/core/Button/Button.theme.d.ts +2 -2
- package/dist/components/core/Button/Button.theme.js +78 -45
- package/dist/components/core/Button/Button.types.d.ts +4 -4
- package/dist/components/core/Button/index.d.ts +2 -0
- package/dist/components/core/ButtonGroup/ButtonGroup.theme.js +7 -7
- package/dist/components/core/ButtonGroup/ButtonGroupText.js +1 -3
- package/dist/components/core/Calendar/Calendar.js +33 -7
- package/dist/components/core/Calendar/Calendar.theme.js +19 -15
- package/dist/components/core/Calendar/Calendar.types.d.ts +4 -1
- package/dist/components/core/Calendar/CalendarEvent/CalendarEvent.types.d.ts +5 -6
- package/dist/components/core/Calendar/CalendarMini/CalendarMini.js +3 -3
- package/dist/components/core/Card/Card.d.ts +3 -3
- package/dist/components/core/Card/Card.js +8 -9
- package/dist/components/core/Card/Card.theme.js +5 -5
- package/dist/components/core/Card/Card.types.d.ts +11 -31
- package/dist/components/core/Card/CardBody.d.ts +3 -0
- package/dist/components/core/Card/CardBody.js +11 -0
- package/dist/components/core/Card/CardSubtitle.d.ts +3 -0
- package/dist/components/core/Card/CardSubtitle.js +11 -0
- package/dist/components/core/Card/CardTitle.d.ts +1 -1
- package/dist/components/core/Card/index.d.ts +2 -2
- package/dist/components/core/Carousel/Carousel.js +4 -4
- package/dist/components/core/Carousel/Carousel.types.d.ts +4 -4
- package/dist/components/core/Carousel/CarouselBody.d.ts +4 -0
- package/dist/components/core/Carousel/{CarouselContent.js → CarouselBody.js} +3 -4
- package/dist/components/core/Carousel/index.d.ts +2 -1
- package/dist/components/core/CommandPalette/CommandItem.d.ts +1 -1
- package/dist/components/core/CommandPalette/CommandItem.js +2 -2
- package/dist/components/core/CommandPalette/CommandPalette.js +8 -6
- package/dist/components/core/CommandPalette/CommandPalette.theme.js +7 -6
- package/dist/components/core/CommandPalette/CommandPalette.types.d.ts +8 -2
- package/dist/components/core/ContextMenu/ContextMenu.d.ts +2 -2
- package/dist/components/core/ContextMenu/ContextMenu.js +11 -10
- package/dist/components/core/ContextMenu/ContextMenu.theme.js +3 -3
- package/dist/components/core/ContextMenu/ContextMenu.types.d.ts +3 -3
- package/dist/components/core/ContextMenu/ContextMenuBody.d.ts +6 -0
- package/dist/components/core/ContextMenu/{ContextMenuContent.js → ContextMenuBody.js} +4 -4
- package/dist/components/core/ContextMenu/ContextMenuItem.js +3 -3
- package/dist/components/core/ContextMenu/ContextMenuSubBody.d.ts +6 -0
- package/dist/components/core/ContextMenu/{ContextMenuSubContent.js → ContextMenuSubBody.js} +4 -4
- package/dist/components/core/ContextMenu/ContextMenuTrigger.js +5 -6
- package/dist/components/core/ContextMenu/index.d.ts +1 -1
- package/dist/components/core/Drawer/Drawer.d.ts +15 -3
- package/dist/components/core/Drawer/Drawer.js +71 -16
- package/dist/components/core/Drawer/Drawer.theme.d.ts +2 -0
- package/dist/components/core/Drawer/Drawer.theme.js +15 -13
- package/dist/components/core/Drawer/Drawer.types.d.ts +34 -9
- package/dist/components/core/Drawer/DrawerBody.d.ts +5 -0
- package/dist/components/core/Drawer/{DrawerContent.js → DrawerBody.js} +3 -3
- package/dist/components/core/Drawer/DrawerHeader.d.ts +5 -0
- package/dist/components/core/Drawer/DrawerHeader.js +15 -0
- package/dist/components/core/Drawer/DrawerSubtitle.d.ts +5 -0
- package/dist/components/core/Drawer/DrawerSubtitle.js +11 -0
- package/dist/components/core/Drawer/DrawerTitle.d.ts +5 -0
- package/dist/components/core/Drawer/DrawerTitle.js +11 -0
- package/dist/components/core/Drawer/index.d.ts +2 -1
- package/dist/components/core/Dropdown/Dropdown.d.ts +1 -1
- package/dist/components/core/Dropdown/Dropdown.js +6 -2
- package/dist/components/core/Dropdown/Dropdown.theme.js +1 -1
- package/dist/components/core/Dropdown/Dropdown.types.d.ts +7 -6
- package/dist/components/core/Dropdown/DropdownItem.js +3 -3
- package/dist/components/core/Dropdown/DropdownMenu.js +5 -4
- package/dist/components/core/Dropdown/DropdownSection.js +4 -2
- package/dist/components/core/Dropdown/DropdownSeparator.js +1 -1
- package/dist/components/core/Dropdown/DropdownTrigger.d.ts +6 -1
- package/dist/components/core/Dropdown/DropdownTrigger.js +10 -8
- package/dist/components/core/Empty/Empty.js +2 -2
- package/dist/components/core/Empty/Empty.theme.d.ts +1 -1
- package/dist/components/core/Empty/Empty.theme.js +3 -3
- package/dist/components/core/Empty/Empty.types.d.ts +2 -2
- package/dist/components/core/FileTypeIcon/FileTypeIcon.d.ts +3 -0
- package/dist/components/core/FileTypeIcon/FileTypeIcon.js +33 -0
- package/dist/components/core/FileTypeIcon/FileTypeIcon.theme.d.ts +2 -0
- package/dist/components/core/FileTypeIcon/FileTypeIcon.theme.js +12 -0
- package/dist/components/core/FileTypeIcon/FileTypeIcon.types.d.ts +19 -0
- package/dist/components/core/FileTypeIcon/fileTypes.d.ts +7 -0
- package/dist/components/core/FileTypeIcon/fileTypes.js +30 -0
- package/dist/components/core/FileTypeIcon/index.d.ts +2 -0
- package/dist/components/core/Kbd/Kbd.theme.js +4 -4
- package/dist/components/core/Link/Link.d.ts +1 -1
- package/dist/components/core/Link/Link.js +4 -2
- package/dist/components/core/Link/Link.types.d.ts +2 -2
- package/dist/components/core/MenuItem/MenuItem.js +4 -2
- package/dist/components/core/MenuItem/MenuItem.theme.d.ts +1 -2
- package/dist/components/core/MenuItem/MenuItem.theme.js +9 -11
- package/dist/components/core/MenuItem/MenuItem.types.d.ts +1 -1
- package/dist/components/core/Message/Message.d.ts +13 -3
- package/dist/components/core/Message/Message.js +74 -27
- package/dist/components/core/Message/Message.theme.d.ts +1 -1
- package/dist/components/core/Message/Message.theme.js +44 -24
- package/dist/components/core/Message/Message.types.d.ts +122 -14
- package/dist/components/core/Message/MessageAudio.d.ts +8 -0
- package/dist/components/core/Message/MessageAudio.js +11 -0
- package/dist/components/core/Message/MessageAvatar.d.ts +2 -2
- package/dist/components/core/Message/MessageAvatar.js +3 -3
- package/dist/components/core/Message/MessageBody.d.ts +8 -0
- package/dist/components/core/Message/{MessageContent.js → MessageBody.js} +3 -3
- package/dist/components/core/Message/MessageContext.d.ts +3 -1
- package/dist/components/core/Message/MessageDateDivider.d.ts +6 -0
- package/dist/components/core/Message/MessageDateDivider.js +10 -0
- package/dist/components/core/Message/MessageFile.d.ts +9 -0
- package/dist/components/core/Message/MessageFile.js +15 -0
- package/dist/components/core/Message/MessageImage.d.ts +11 -0
- package/dist/components/core/Message/MessageImage.js +13 -0
- package/dist/components/core/Message/MessageLink.d.ts +10 -0
- package/dist/components/core/Message/MessageLink.js +15 -0
- package/dist/components/core/Message/MessageList.animations.d.ts +6 -0
- package/dist/components/core/Message/MessageList.animations.js +32 -0
- package/dist/components/core/Message/MessageList.d.ts +5 -0
- package/dist/components/core/Message/MessageList.js +78 -0
- package/dist/components/core/Message/MessageList.theme.d.ts +2 -0
- package/dist/components/core/Message/MessageList.theme.js +6 -0
- package/dist/components/core/Message/MessageList.types.d.ts +32 -0
- package/dist/components/core/Message/MessageReactions.d.ts +8 -0
- package/dist/components/core/Message/MessageReactions.js +12 -0
- package/dist/components/core/Message/MessageReply.d.ts +8 -0
- package/dist/components/core/Message/MessageReply.js +10 -0
- package/dist/components/core/Message/MessageSenderName.d.ts +6 -0
- package/dist/components/core/Message/MessageSenderName.js +10 -0
- package/dist/components/core/Message/MessageStatusIndicator.d.ts +9 -0
- package/dist/components/core/Message/MessageStatusIndicator.js +45 -0
- package/dist/components/core/Message/index.d.ts +23 -1
- package/dist/components/core/Modal/Modal.animations.d.ts +1 -0
- package/dist/components/core/Modal/Modal.animations.js +14 -11
- package/dist/components/core/Modal/Modal.d.ts +2 -2
- package/dist/components/core/Modal/Modal.js +9 -5
- package/dist/components/core/Modal/Modal.theme.js +6 -6
- package/dist/components/core/Modal/Modal.types.d.ts +9 -6
- package/dist/components/core/Modal/ModalHeader.js +2 -1
- package/dist/components/core/Modal/ModalSubtitle.d.ts +5 -0
- package/dist/components/core/Modal/ModalSubtitle.js +11 -0
- package/dist/components/core/ModalStack/ModalStack.animations.js +3 -3
- package/dist/components/core/ModalStack/ModalStackModal.js +4 -3
- package/dist/components/core/NavItem/NavItem.js +100 -52
- package/dist/components/core/NavItem/NavItem.theme.js +6 -3
- package/dist/components/core/NavItem/NavItem.types.d.ts +44 -30
- package/dist/components/core/NavItem/index.d.ts +1 -1
- package/dist/components/core/OfflineIndicator/OfflineIndicator.theme.js +3 -3
- package/dist/components/core/PageHeading/PageHeading.d.ts +8 -0
- package/dist/components/core/PageHeading/PageHeading.js +28 -0
- package/dist/components/core/PageHeading/PageHeading.theme.d.ts +2 -0
- package/dist/components/core/PageHeading/PageHeading.theme.js +11 -0
- package/dist/components/core/PageHeading/PageHeading.types.d.ts +55 -0
- package/dist/components/core/PageHeading/PageHeadingActions.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingActions.js +11 -0
- package/dist/components/core/PageHeading/PageHeadingBackButton.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingBackButton.js +14 -0
- package/dist/components/core/PageHeading/PageHeadingIcon.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingIcon.js +11 -0
- package/dist/components/core/PageHeading/PageHeadingSubtitle.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingSubtitle.js +11 -0
- package/dist/components/core/PageHeading/PageHeadingTitle.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingTitle.js +11 -0
- package/dist/components/core/PageHeading/index.d.ts +2 -0
- package/dist/components/core/Pagination/Pagination.theme.js +3 -3
- package/dist/components/core/Pill/Pill.theme.js +3 -3
- package/dist/components/core/Popover/Popover.d.ts +2 -2
- package/dist/components/core/Popover/Popover.js +5 -5
- package/dist/components/core/Popover/Popover.theme.d.ts +1 -1
- package/dist/components/core/Popover/Popover.theme.js +2 -2
- package/dist/components/core/Popover/Popover.types.d.ts +9 -3
- package/dist/components/core/Popover/PopoverBody.d.ts +7 -0
- package/dist/components/core/Popover/{PopoverContent.js → PopoverBody.js} +30 -13
- package/dist/components/core/Popover/PopoverTrigger.d.ts +1 -1
- package/dist/components/core/Popover/PopoverTrigger.js +11 -11
- package/dist/components/core/Popover/index.d.ts +4 -3
- package/dist/components/core/Progress/Progress.d.ts +9 -8
- package/dist/components/core/Progress/Progress.js +16 -16
- package/dist/components/core/Progress/Progress.theme.js +5 -13
- package/dist/components/core/Progress/Progress.types.d.ts +2 -19
- package/dist/components/core/Progress/index.d.ts +1 -1
- package/dist/components/core/ScrollArea/ScrollArea.js +49 -7
- package/dist/components/core/ScrollArea/ScrollArea.types.d.ts +12 -3
- package/dist/components/core/ScrollArea/index.d.ts +1 -1
- package/dist/components/core/Segmented/Segmented.js +7 -8
- package/dist/components/core/Segmented/Segmented.theme.js +6 -6
- package/dist/components/core/Segmented/SegmentedItem.js +1 -1
- package/dist/components/core/Sidebar/Sidebar.d.ts +11 -1
- package/dist/components/core/Sidebar/Sidebar.js +52 -17
- package/dist/components/core/Sidebar/Sidebar.theme.js +9 -7
- package/dist/components/core/Sidebar/Sidebar.types.d.ts +57 -0
- package/dist/components/core/Sidebar/SidebarContent.js +3 -1
- package/dist/components/core/Sidebar/SidebarContext.d.ts +14 -0
- package/dist/components/core/Sidebar/SidebarContext.js +63 -11
- package/dist/components/core/Sidebar/SidebarFooter.js +3 -1
- package/dist/components/core/Sidebar/SidebarHeader.js +6 -2
- package/dist/components/core/Sidebar/SidebarMobileTrigger.d.ts +3 -0
- package/dist/components/core/Sidebar/SidebarMobileTrigger.js +29 -0
- package/dist/components/core/Sidebar/SidebarNav.js +3 -2
- package/dist/components/core/Sidebar/SidebarNavGroup.js +4 -2
- package/dist/components/core/Sidebar/SidebarToggle.js +2 -1
- package/dist/components/core/Sidebar/SidebarUserProfile.d.ts +3 -0
- package/dist/components/core/Sidebar/SidebarUserProfile.js +35 -0
- package/dist/components/core/Sidebar/index.d.ts +3 -1
- package/dist/components/core/SocialIcon/SocialIcon.d.ts +3 -0
- package/dist/components/core/SocialIcon/SocialIcon.js +30 -0
- package/dist/components/core/SocialIcon/SocialIcon.theme.d.ts +2 -0
- package/dist/components/core/SocialIcon/SocialIcon.theme.js +12 -0
- package/dist/components/core/SocialIcon/SocialIcon.types.d.ts +18 -0
- package/dist/components/core/SocialIcon/index.d.ts +2 -0
- package/dist/components/core/SocialIcon/platforms.d.ts +17 -0
- package/dist/components/core/SocialIcon/platforms.js +234 -0
- package/dist/components/core/Sortable/Sortable.js +2 -2
- package/dist/components/core/Sortable/Sortable.theme.js +1 -1
- package/dist/components/core/Sortable/Sortable.types.d.ts +7 -5
- package/dist/components/core/Spinner/Spinner.theme.js +3 -5
- package/dist/components/core/Spinner/Spinner.types.d.ts +2 -1
- package/dist/components/core/Tabs/Tabs.animations.d.ts +2 -2
- package/dist/components/core/Tabs/Tabs.animations.js +3 -3
- package/dist/components/core/Tabs/Tabs.d.ts +1 -1
- package/dist/components/core/Tabs/Tabs.js +3 -3
- package/dist/components/core/Tabs/Tabs.theme.d.ts +2 -2
- package/dist/components/core/Tabs/Tabs.theme.js +5 -5
- package/dist/components/core/Tabs/Tabs.types.d.ts +9 -9
- package/dist/components/core/Tabs/TabsBody.d.ts +6 -0
- package/dist/components/core/Tabs/{TabsContent.js → TabsBody.js} +9 -9
- package/dist/components/core/Tabs/TabsTrigger.js +1 -1
- package/dist/components/core/Tabs/index.d.ts +2 -2
- package/dist/components/core/Tag/Tag.animations.js +0 -13
- package/dist/components/core/Tag/Tag.d.ts +2 -2
- package/dist/components/core/Tag/Tag.js +21 -4
- package/dist/components/core/Tag/Tag.theme.js +12 -4
- package/dist/components/core/Tag/Tag.types.d.ts +24 -1
- package/dist/components/core/Toast/Toast.d.ts +2 -2
- package/dist/components/core/Toast/Toast.js +31 -18
- package/dist/components/core/Toast/Toast.theme.js +4 -9
- package/dist/components/core/Toast/Toast.types.d.ts +20 -37
- package/dist/components/core/Toast/index.d.ts +1 -1
- package/dist/components/core/Toast/useToast.js +6 -6
- package/dist/components/core/Tooltip/Tooltip.js +1 -1
- package/dist/components/core/Tooltip/Tooltip.theme.js +2 -2
- package/dist/components/core/Tree/Tree.theme.js +1 -1
- package/dist/components/core/index.d.ts +3 -8
- package/dist/components/core/index.js +28 -22
- package/dist/components/data-display/DescriptionList/DescriptionList.theme.js +8 -0
- package/dist/components/data-display/Feed/Feed.animations.d.ts +40 -0
- package/dist/components/data-display/Feed/Feed.animations.js +26 -0
- package/dist/components/{core → data-display}/Feed/Feed.d.ts +5 -1
- package/dist/components/data-display/Feed/Feed.js +123 -0
- package/dist/components/data-display/Feed/Feed.theme.js +20 -0
- package/dist/components/data-display/Feed/Feed.types.d.ts +65 -0
- package/dist/components/data-display/Feed/index.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttChart.animations.d.ts +4 -0
- package/dist/components/data-display/GanttChart/GanttChart.animations.js +21 -0
- package/dist/components/data-display/GanttChart/GanttChart.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttChart.js +170 -0
- package/dist/components/data-display/GanttChart/GanttChart.theme.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttChart.theme.js +23 -0
- package/dist/components/data-display/GanttChart/GanttChart.types.d.ts +162 -0
- package/dist/components/data-display/GanttChart/GanttChart.types.js +9 -0
- package/dist/components/data-display/GanttChart/GanttChart.utils.d.ts +80 -0
- package/dist/components/data-display/GanttChart/GanttChart.utils.js +274 -0
- package/dist/components/data-display/GanttChart/GanttChartPanel.d.ts +9 -0
- package/dist/components/data-display/GanttChart/GanttChartPanel.js +82 -0
- package/dist/components/data-display/GanttChart/GanttDependencyArrows.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttDependencyArrows.js +35 -0
- package/dist/components/data-display/GanttChart/GanttGroupBar.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttGroupBar.js +26 -0
- package/dist/components/data-display/GanttChart/GanttMilestone.d.ts +9 -0
- package/dist/components/data-display/GanttChart/GanttMilestone.js +44 -0
- package/dist/components/data-display/GanttChart/GanttProgressCircle.d.ts +9 -0
- package/dist/components/data-display/GanttChart/GanttProgressCircle.js +11 -0
- package/dist/components/data-display/GanttChart/GanttSplitter.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttSplitter.js +39 -0
- package/dist/components/data-display/GanttChart/GanttTableGroupRow.d.ts +7 -0
- package/dist/components/data-display/GanttChart/GanttTableGroupRow.js +23 -0
- package/dist/components/data-display/GanttChart/GanttTableHeader.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttTableHeader.js +13 -0
- package/dist/components/data-display/GanttChart/GanttTablePanel.d.ts +6 -0
- package/dist/components/data-display/GanttChart/GanttTablePanel.js +20 -0
- package/dist/components/data-display/GanttChart/GanttTableTaskRow.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttTableTaskRow.js +30 -0
- package/dist/components/data-display/GanttChart/GanttTaskBar.d.ts +9 -0
- package/dist/components/data-display/GanttChart/GanttTaskBar.js +208 -0
- package/dist/components/data-display/GanttChart/GanttTaskContextMenu.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttTaskContextMenu.js +17 -0
- package/dist/components/data-display/GanttChart/GanttTimelineGrid.d.ts +7 -0
- package/dist/components/data-display/GanttChart/GanttTimelineGrid.js +33 -0
- package/dist/components/data-display/GanttChart/GanttTimelineHeader.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttTimelineHeader.js +43 -0
- package/dist/components/data-display/GanttChart/GanttToolbar.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttToolbar.js +29 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttDates.d.ts +12 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttDates.js +25 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttDrag.d.ts +25 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttDrag.js +144 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttLayout.d.ts +2 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttLayout.js +33 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.d.ts +6 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.js +32 -0
- package/dist/components/data-display/GanttChart/index.d.ts +3 -0
- package/dist/components/{core → data-display}/KPI/KPI.js +11 -9
- package/dist/components/{core → data-display}/KPI/KPI.theme.js +12 -12
- package/dist/components/{core → data-display}/KPI/KPI.types.d.ts +8 -7
- package/dist/components/{core → data-display}/KPI/index.d.ts +1 -0
- package/dist/components/data-display/Metric/Metric.js +20 -0
- package/dist/components/{core → data-display}/Metric/Metric.theme.js +17 -13
- package/dist/components/{core → data-display}/Metric/Metric.types.d.ts +10 -9
- package/dist/components/{core → data-display}/Table/Table.theme.js +4 -4
- package/dist/components/{core → data-display}/Table/Table.types.d.ts +8 -8
- package/dist/components/{core → data-display}/Table/TableActions.js +8 -8
- package/dist/components/{core → data-display}/Table/TableActionsMenu.js +1 -1
- package/dist/components/data-display/Table/TableColumnManager.js +25 -0
- package/dist/components/{core → data-display}/Table/TableFilter.js +7 -6
- package/dist/components/{core → data-display}/Table/TableHeader.js +1 -1
- package/dist/components/data-display/Table/TablePagination.js +25 -0
- package/dist/components/{core → data-display}/Table/TableRow.js +1 -1
- package/dist/components/{core → data-display}/Table/TableSelectionHeader.js +3 -3
- package/dist/components/{core → data-display}/Timeline/Timeline.theme.js +2 -2
- package/dist/components/{core → data-display}/Timeline/TimelineMarker.js +2 -2
- package/dist/components/data-display/index.d.ts +7 -0
- package/dist/components/data-display/index.js +20 -0
- package/dist/components/effects/3d/index.d.ts +6 -0
- package/dist/components/effects/3d/index.js +3 -0
- package/dist/components/effects/AIOrb/AIOrb.d.ts +1 -0
- package/dist/components/effects/AIOrb/AIOrb.js +3 -2
- package/dist/components/effects/AIOrb/AIOrb.types.d.ts +1 -0
- package/dist/components/effects/AIOrb/hooks/index.d.ts +2 -0
- package/dist/components/effects/AIOrb/hooks/useOrbState.d.ts +20 -0
- package/dist/components/effects/AIOrb/hooks/useOrbState.js +27 -0
- package/dist/components/effects/AIOrb/index.d.ts +2 -2
- package/dist/components/effects/AIOrb/variants/Aura/Aura.d.ts +3 -0
- package/dist/components/effects/AIOrb/variants/Aura/Aura.js +75 -0
- package/dist/components/effects/AIOrb/variants/Aura/Aura.shaders.d.ts +28 -0
- package/dist/components/effects/AIOrb/variants/Aura/Aura.shaders.js +191 -0
- package/dist/components/effects/AIOrb/variants/Aura/Aura.types.d.ts +53 -0
- package/dist/components/effects/AIOrb/variants/Aura/ShaderCanvas.d.ts +17 -0
- package/dist/components/effects/AIOrb/variants/Aura/ShaderCanvas.js +149 -0
- package/dist/components/effects/AIOrb/variants/Aura/index.d.ts +2 -0
- package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.js +38 -7
- package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.types.d.ts +6 -0
- package/dist/components/effects/AIOrb/variants/Liquid/Liquid.js +34 -8
- package/dist/components/effects/AIOrb/variants/Liquid/Liquid.types.d.ts +6 -0
- package/dist/components/effects/AIOrb/variants/index.d.ts +2 -0
- package/dist/components/effects/Animated/Animated.animations.js +29 -10
- package/dist/components/effects/Animated/Animated.d.ts +2 -2
- package/dist/components/effects/Animated/Animated.js +4 -3
- package/dist/components/effects/Animated/AnimatedItem.d.ts +1 -1
- package/dist/components/effects/Animated/AnimatedItem.js +5 -4
- package/dist/components/effects/Aurora/Aurora.d.ts +24 -0
- package/dist/components/effects/Aurora/Aurora.js +119 -0
- package/dist/components/effects/Aurora/Aurora.types.d.ts +15 -0
- package/dist/components/effects/Aurora/index.d.ts +2 -0
- package/dist/components/effects/CustomCursor/CustomCursor.d.ts +4 -4
- package/dist/components/effects/CustomCursor/CustomCursor.js +50 -47
- package/dist/components/effects/CustomCursor/CustomCursor.theme.js +3 -1
- package/dist/components/effects/CustomCursor/CustomCursor.types.d.ts +5 -4
- package/dist/components/effects/DotPattern/DotPattern.d.ts +18 -0
- package/dist/components/effects/DotPattern/DotPattern.js +65 -0
- package/dist/components/effects/DotPattern/DotPattern.types.d.ts +47 -0
- package/dist/components/effects/DotPattern/index.d.ts +2 -0
- package/dist/components/effects/GlassSurface/GlassSurface.d.ts +1 -1
- package/dist/components/effects/GlassSurface/GlassSurface.js +38 -18
- package/dist/components/effects/GlassSurface/GlassSurface.types.d.ts +14 -0
- package/dist/components/effects/GridPattern/GridPattern.d.ts +18 -0
- package/dist/components/effects/GridPattern/GridPattern.js +64 -0
- package/dist/components/effects/GridPattern/GridPattern.types.d.ts +47 -0
- package/dist/components/effects/GridPattern/index.d.ts +2 -0
- package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.animations.d.ts +39 -0
- package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.animations.js +98 -0
- package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.d.ts +3 -0
- package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.js +104 -0
- package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.types.d.ts +30 -0
- package/dist/components/effects/InteractiveCharacters/characters/BlobCharacter.d.ts +3 -0
- package/dist/components/effects/InteractiveCharacters/characters/BlobCharacter.js +36 -0
- package/dist/components/effects/InteractiveCharacters/characters/SmallCharacter.d.ts +3 -0
- package/dist/components/effects/InteractiveCharacters/characters/SmallCharacter.js +36 -0
- package/dist/components/effects/InteractiveCharacters/characters/TallCharacter.d.ts +3 -0
- package/dist/components/effects/InteractiveCharacters/characters/TallCharacter.js +37 -0
- package/dist/components/effects/InteractiveCharacters/hooks/useBlink.d.ts +14 -0
- package/dist/components/effects/InteractiveCharacters/hooks/useBlink.js +41 -0
- package/dist/components/effects/InteractiveCharacters/hooks/useIdleAnimation.d.ts +25 -0
- package/dist/components/effects/InteractiveCharacters/hooks/useIdleAnimation.js +84 -0
- package/dist/components/effects/InteractiveCharacters/hooks/useMouseTracking.d.ts +18 -0
- package/dist/components/effects/InteractiveCharacters/hooks/useMouseTracking.js +35 -0
- package/dist/components/effects/InteractiveCharacters/index.d.ts +2 -0
- package/dist/components/effects/MagneticElement/MagneticElement.d.ts +30 -0
- package/dist/components/effects/MagneticElement/MagneticElement.js +110 -0
- package/dist/components/effects/MagneticElement/MagneticElement.types.d.ts +44 -0
- package/dist/components/effects/MagneticElement/index.d.ts +2 -0
- package/dist/components/effects/MorphingText/MorphingText.d.ts +17 -0
- package/dist/components/effects/MorphingText/MorphingText.js +92 -0
- package/dist/components/effects/MorphingText/MorphingText.types.d.ts +18 -0
- package/dist/components/effects/MorphingText/index.d.ts +2 -0
- package/dist/components/effects/Neumorphic/InsetCircleButton.d.ts +10 -0
- package/dist/components/effects/Neumorphic/InsetCircleButton.js +10 -0
- package/dist/components/effects/Neumorphic/InsetPill.d.ts +8 -0
- package/dist/components/effects/Neumorphic/InsetPill.js +7 -0
- package/dist/components/effects/Neumorphic/index.d.ts +4 -0
- package/dist/components/effects/NoiseOverlay/NoiseOverlay.d.ts +28 -0
- package/dist/components/effects/NoiseOverlay/NoiseOverlay.js +61 -0
- package/dist/components/effects/NoiseOverlay/NoiseOverlay.types.d.ts +35 -0
- package/dist/components/effects/NoiseOverlay/index.d.ts +2 -0
- package/dist/components/effects/Overlay/Overlay.js +6 -4
- package/dist/components/effects/PageTransition/PageTransition.animations.d.ts +8 -0
- package/dist/components/effects/PageTransition/PageTransition.animations.js +53 -0
- package/dist/components/effects/PageTransition/PageTransition.d.ts +3 -0
- package/dist/components/effects/PageTransition/PageTransition.js +71 -0
- package/dist/components/effects/PageTransition/PageTransition.types.d.ts +15 -0
- package/dist/components/effects/PageTransition/index.d.ts +2 -0
- package/dist/components/effects/ParallaxSection/ParallaxSection.d.ts +26 -0
- package/dist/components/effects/ParallaxSection/ParallaxSection.js +71 -0
- package/dist/components/effects/ParallaxSection/ParallaxSection.types.d.ts +11 -0
- package/dist/components/effects/ParallaxSection/index.d.ts +2 -0
- package/dist/components/effects/Particles/Particles.d.ts +22 -0
- package/dist/components/effects/Particles/Particles.js +33 -0
- package/dist/components/effects/Particles/Particles.scene.d.ts +3 -0
- package/dist/components/effects/Particles/Particles.scene.js +284 -0
- package/dist/components/effects/Particles/Particles.types.d.ts +65 -0
- package/dist/components/effects/Particles/index.d.ts +2 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.d.ts +3 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.js +75 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.theme.d.ts +7 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.theme.js +12 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.types.d.ts +47 -0
- package/dist/components/effects/ProgressiveBlur/index.d.ts +2 -0
- package/dist/components/effects/ScrollReveal/ScrollReveal.d.ts +29 -0
- package/dist/components/effects/ScrollReveal/ScrollReveal.js +121 -0
- package/dist/components/effects/ScrollReveal/ScrollReveal.types.d.ts +25 -0
- package/dist/components/effects/ScrollReveal/index.d.ts +2 -0
- package/dist/components/effects/Spotlight/Spotlight.d.ts +36 -0
- package/dist/components/effects/Spotlight/Spotlight.js +112 -0
- package/dist/components/effects/Spotlight/Spotlight.types.d.ts +29 -0
- package/dist/components/effects/Spotlight/index.d.ts +2 -0
- package/dist/components/effects/StickyScroll/StickyScroll.d.ts +30 -0
- package/dist/components/effects/StickyScroll/StickyScroll.js +128 -0
- package/dist/components/effects/StickyScroll/StickyScroll.types.d.ts +19 -0
- package/dist/components/effects/StickyScroll/index.d.ts +2 -0
- package/dist/components/effects/index.d.ts +30 -6
- package/dist/components/effects/index.js +16 -3
- package/dist/components/forms/Checkbox/Checkbox.animations.d.ts +14 -0
- package/dist/components/forms/Checkbox/Checkbox.animations.js +53 -0
- package/dist/components/forms/Checkbox/Checkbox.d.ts +3 -4
- package/dist/components/forms/Checkbox/Checkbox.js +39 -13
- package/dist/components/forms/Checkbox/Checkbox.theme.js +10 -10
- package/dist/components/forms/Checkbox/Checkbox.types.d.ts +30 -4
- package/dist/components/forms/Checkbox/CheckboxContext.d.ts +14 -0
- package/dist/components/forms/Checkbox/CheckboxContext.js +12 -0
- package/dist/components/forms/Checkbox/CheckboxGroup.d.ts +3 -0
- package/dist/components/forms/Checkbox/CheckboxGroup.js +40 -0
- package/dist/components/forms/Checkbox/index.d.ts +1 -1
- package/dist/components/forms/ColorPicker/ColorPicker.d.ts +1 -1
- package/dist/components/forms/ColorPicker/ColorPicker.js +3 -3
- package/dist/components/forms/ColorPicker/ColorPicker.theme.js +3 -3
- package/dist/components/forms/ColorPicker/ColorPicker.types.d.ts +3 -3
- package/dist/components/forms/ColorPicker/ColorPickerBody.d.ts +7 -0
- package/dist/components/forms/ColorPicker/{ColorPickerContent.js → ColorPickerBody.js} +8 -8
- package/dist/components/forms/ColorPicker/ColorPickerInput.js +7 -7
- package/dist/components/forms/ColorPicker/index.d.ts +2 -2
- package/dist/components/forms/Combobox/Combobox.js +5 -3
- package/dist/components/forms/CronInput/CronInput.d.ts +3 -0
- package/dist/components/forms/CronInput/CronInput.js +107 -0
- package/dist/components/forms/CronInput/CronInput.theme.d.ts +6 -0
- package/dist/components/forms/CronInput/CronInput.theme.js +84 -0
- package/dist/components/forms/CronInput/CronInput.types.d.ts +98 -0
- package/dist/components/forms/CronInput/CronInput.utils.d.ts +67 -0
- package/dist/components/forms/CronInput/CronInput.utils.js +505 -0
- package/dist/components/forms/CronInput/index.d.ts +4 -0
- package/dist/components/forms/DatePicker/DatePicker.d.ts +7 -3
- package/dist/components/forms/DatePicker/DatePicker.js +6 -5
- package/dist/components/forms/DatePicker/DatePicker.theme.js +5 -5
- package/dist/components/forms/DatePicker/DatePicker.types.d.ts +9 -4
- package/dist/components/forms/DatePicker/DatePickerBody.d.ts +7 -0
- package/dist/components/forms/DatePicker/{DatePickerContent.js → DatePickerBody.js} +10 -9
- package/dist/components/forms/DatePicker/index.d.ts +2 -2
- package/dist/components/forms/DateRangePicker/DateRangePicker.animations.d.ts +1 -0
- package/dist/components/forms/DateRangePicker/DateRangePicker.d.ts +37 -0
- package/dist/components/forms/DateRangePicker/DateRangePicker.js +110 -0
- package/dist/components/forms/DateRangePicker/DateRangePicker.theme.d.ts +5 -0
- package/dist/components/forms/DateRangePicker/DateRangePicker.theme.js +52 -0
- package/dist/components/forms/DateRangePicker/DateRangePicker.types.d.ts +154 -0
- package/dist/components/forms/DateRangePicker/DateRangePickerBody.d.ts +6 -0
- package/dist/components/forms/DateRangePicker/DateRangePickerBody.js +208 -0
- package/dist/components/forms/DateRangePicker/DateRangePickerPresets.d.ts +6 -0
- package/dist/components/forms/DateRangePicker/DateRangePickerPresets.js +41 -0
- package/dist/components/forms/DateRangePicker/DateRangePickerTrigger.d.ts +6 -0
- package/dist/components/forms/DateRangePicker/DateRangePickerTrigger.js +32 -0
- package/dist/components/forms/DateRangePicker/dateRangePresets.d.ts +5 -0
- package/dist/components/forms/DateRangePicker/dateRangePresets.js +59 -0
- package/dist/components/forms/DateRangePicker/index.d.ts +4 -0
- package/dist/components/forms/FileUpload/FileUpload.js +2 -2
- package/dist/components/forms/FileUpload/FileUpload.theme.js +4 -4
- package/dist/components/forms/FileUpload/FileUploadProgress.animations.d.ts +36 -0
- package/dist/components/forms/FileUpload/FileUploadProgress.animations.js +22 -0
- package/dist/components/forms/FileUpload/FileUploadProgress.d.ts +3 -0
- package/dist/components/forms/FileUpload/FileUploadProgress.js +111 -0
- package/dist/components/forms/FileUpload/FileUploadProgress.theme.d.ts +19 -0
- package/dist/components/forms/FileUpload/FileUploadProgress.theme.js +27 -0
- package/dist/components/forms/FileUpload/FileUploadProgress.types.d.ts +33 -0
- package/dist/components/forms/FileUpload/index.d.ts +3 -0
- package/dist/components/forms/FormLabel/FormLabel.theme.js +1 -1
- package/dist/components/forms/Input/Input.js +8 -13
- package/dist/components/forms/Input/Input.theme.js +1 -1
- package/dist/components/forms/Input/Input.types.d.ts +10 -4
- package/dist/components/forms/InputAddress/InputAddress.theme.js +1 -1
- package/dist/components/forms/InputCounter/InputCounter.d.ts +1 -1
- package/dist/components/forms/InputCounter/InputCounter.js +1 -1
- package/dist/components/forms/InputCounter/InputCounter.theme.js +1 -1
- package/dist/components/forms/InputCounter/InputCounter.types.d.ts +3 -2
- package/dist/components/forms/InputCreditCard/InputCreditCard.theme.js +1 -1
- package/dist/components/forms/InputOTP/InputOTP.theme.js +2 -2
- package/dist/components/forms/InputTag/InputTag.js +1 -1
- package/dist/components/forms/Mention/Mention.d.ts +3 -0
- package/dist/components/forms/Mention/Mention.js +607 -0
- package/dist/components/forms/Mention/Mention.theme.d.ts +6 -0
- package/dist/components/forms/Mention/Mention.theme.js +55 -0
- package/dist/components/forms/Mention/Mention.types.d.ts +151 -0
- package/dist/components/forms/Mention/Mention.utils.d.ts +42 -0
- package/dist/components/forms/Mention/Mention.utils.js +285 -0
- package/dist/components/forms/Mention/index.d.ts +3 -0
- package/dist/components/forms/Radio/Radio.animations.d.ts +10 -0
- package/dist/components/forms/Radio/Radio.animations.js +37 -0
- package/dist/components/forms/Radio/Radio.d.ts +3 -4
- package/dist/components/forms/Radio/Radio.js +32 -10
- package/dist/components/forms/Radio/Radio.theme.js +35 -6
- package/dist/components/forms/Radio/Radio.types.d.ts +33 -6
- package/dist/components/forms/Radio/RadioContext.d.ts +14 -0
- package/dist/components/forms/Radio/RadioContext.js +12 -0
- package/dist/components/forms/Radio/RadioGroup.d.ts +3 -0
- package/dist/components/forms/Radio/RadioGroup.js +36 -0
- package/dist/components/forms/Radio/index.d.ts +1 -1
- package/dist/components/forms/RichTextEditor/RichTextEditor.js +25 -16
- package/dist/components/forms/RichTextEditor/RichTextEditor.theme.js +3 -3
- package/dist/components/forms/RichTextEditor/RichTextEditor.types.d.ts +11 -0
- package/dist/components/forms/Select/Select.d.ts +1 -1
- package/dist/components/forms/Select/Select.js +9 -9
- package/dist/components/forms/Select/Select.theme.js +1 -1
- package/dist/components/forms/Select/Select.types.d.ts +7 -7
- package/dist/components/forms/SelectableCard/SelectableCard.animations.d.ts +2 -0
- package/dist/components/forms/SelectableCard/SelectableCard.animations.js +9 -0
- package/dist/components/forms/SelectableCard/SelectableCard.d.ts +5 -0
- package/dist/components/forms/SelectableCard/SelectableCard.js +58 -0
- package/dist/components/forms/SelectableCard/SelectableCard.theme.d.ts +2 -0
- package/dist/components/forms/SelectableCard/SelectableCard.theme.js +38 -0
- package/dist/components/forms/SelectableCard/SelectableCard.types.d.ts +33 -0
- package/dist/components/forms/SelectableCard/SelectableCardContext.d.ts +3 -0
- package/dist/components/forms/SelectableCard/SelectableCardContext.js +12 -0
- package/dist/components/forms/SelectableCard/SelectableCardGroup.d.ts +3 -0
- package/dist/components/forms/SelectableCard/SelectableCardGroup.js +37 -0
- package/dist/components/forms/SelectableCard/index.d.ts +3 -0
- package/dist/components/forms/Signature/Signature.theme.js +1 -1
- package/dist/components/forms/Slider/Slider.js +10 -3
- package/dist/components/forms/Slider/Slider.theme.js +6 -6
- package/dist/components/forms/Switch/Switch.js +10 -2
- package/dist/components/forms/Switch/Switch.theme.js +4 -4
- package/dist/components/forms/Switch/Switch.types.d.ts +4 -4
- package/dist/components/forms/Textarea/Textarea.js +2 -2
- package/dist/components/forms/Textarea/Textarea.types.d.ts +4 -4
- package/dist/components/forms/TimePicker/TimePicker.theme.js +2 -2
- package/dist/components/forms/forms.theme.js +6 -6
- package/dist/components/forms/index.d.ts +20 -4
- package/dist/components/forms/index.js +17 -2
- package/dist/components/layout/FormLayout/FormLayout.d.ts +6 -0
- package/dist/components/layout/FormLayout/FormLayout.js +28 -0
- package/dist/components/layout/FormLayout/FormLayout.theme.d.ts +2 -0
- package/dist/components/layout/FormLayout/FormLayout.theme.js +13 -0
- package/dist/components/layout/FormLayout/FormLayout.types.d.ts +43 -0
- package/dist/components/layout/FormLayout/FormLayoutFooter.d.ts +3 -0
- package/dist/components/layout/FormLayout/FormLayoutFooter.js +12 -0
- package/dist/components/layout/FormLayout/FormLayoutSection.d.ts +3 -0
- package/dist/components/layout/FormLayout/FormLayoutSection.js +13 -0
- package/dist/components/layout/FormLayout/index.d.ts +3 -0
- package/dist/components/layout/PageLayout/PageLayout.d.ts +7 -0
- package/dist/components/layout/PageLayout/PageLayout.js +33 -0
- package/dist/components/layout/PageLayout/PageLayout.theme.d.ts +2 -0
- package/dist/components/layout/PageLayout/PageLayout.theme.js +10 -0
- package/dist/components/layout/PageLayout/PageLayout.types.d.ts +39 -0
- package/dist/components/layout/PageLayout/PageLayoutContent.d.ts +3 -0
- package/dist/components/layout/PageLayout/PageLayoutContent.js +12 -0
- package/dist/components/layout/PageLayout/PageLayoutHeader.d.ts +3 -0
- package/dist/components/layout/PageLayout/PageLayoutHeader.js +12 -0
- package/dist/components/layout/PageLayout/PageLayoutSidebar.d.ts +3 -0
- package/dist/components/layout/PageLayout/PageLayoutSidebar.js +12 -0
- package/dist/components/layout/PageLayout/index.d.ts +3 -0
- package/dist/components/layout/index.d.ts +2 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useMediaQuery.d.ts +5 -0
- package/dist/hooks/useMediaQuery.js +21 -0
- package/dist/hooks/useSelectPortal.d.ts +4 -2
- package/dist/hooks/useSelectPortal.js +139 -51
- package/dist/index.d.ts +2 -0
- package/dist/index.js +85 -27
- package/dist/styles.css +1 -1
- package/dist/utils/colorUtils.d.ts +23 -0
- package/dist/utils/colorUtils.js +45 -0
- package/dist/utils/dateUtils.d.ts +30 -0
- package/dist/utils/dateUtils.js +113 -5
- package/dist/utils/formatUtils.d.ts +10 -0
- package/dist/utils/formatUtils.js +24 -0
- package/dist/utils/index.d.ts +4 -2
- package/dist/utils/paletteGenerator.d.ts +46 -0
- package/package.json +44 -25
- package/src/global.scss +954 -0
- package/src/styles/theme.css +463 -0
- package/src/theme-plugin.css +24 -0
- package/dist/components/ai/ApprovalCard/ApprovalCard.d.ts +0 -3
- package/dist/components/ai/ApprovalCard/ApprovalCard.js +0 -15
- package/dist/components/ai/ApprovalCard/ApprovalCard.theme.d.ts +0 -13
- package/dist/components/ai/ApprovalCard/ApprovalCard.theme.js +0 -15
- package/dist/components/ai/ApprovalCard/ApprovalCard.types.d.ts +0 -43
- package/dist/components/ai/ApprovalCard/index.d.ts +0 -2
- package/dist/components/ai/MessageHistory/MessageHistory.d.ts +0 -18
- package/dist/components/ai/MessageHistory/MessageHistory.js +0 -97
- package/dist/components/ai/MessageHistory/MessageHistory.theme.d.ts +0 -2
- package/dist/components/ai/MessageHistory/MessageHistory.theme.js +0 -8
- package/dist/components/ai/MessageHistory/MessageHistory.types.d.ts +0 -94
- package/dist/components/ai/MessageHistory/index.d.ts +0 -3
- package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.animations.d.ts +0 -10
- package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.animations.js +0 -47
- package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.d.ts +0 -20
- package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.js +0 -55
- package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.theme.d.ts +0 -2
- package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.theme.js +0 -20
- package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.types.d.ts +0 -67
- package/dist/components/ai/ThinkingIndicator/index.d.ts +0 -3
- package/dist/components/core/Accordion/AccordionContent.d.ts +0 -3
- package/dist/components/core/Button/Button.animations.d.ts +0 -5
- package/dist/components/core/Card/CardContent.d.ts +0 -3
- package/dist/components/core/Card/CardContent.js +0 -11
- package/dist/components/core/Card/CardDescription.d.ts +0 -3
- package/dist/components/core/Card/CardDescription.js +0 -11
- package/dist/components/core/Carousel/CarouselContent.d.ts +0 -4
- package/dist/components/core/ContextMenu/ContextMenuContent.d.ts +0 -6
- package/dist/components/core/ContextMenu/ContextMenuSubContent.d.ts +0 -6
- package/dist/components/core/DescriptionList/DescriptionList.theme.js +0 -8
- package/dist/components/core/Drawer/DrawerContent.d.ts +0 -5
- package/dist/components/core/Feed/Feed.js +0 -88
- package/dist/components/core/Feed/Feed.theme.js +0 -22
- package/dist/components/core/Feed/Feed.types.d.ts +0 -64
- package/dist/components/core/Feed/index.d.ts +0 -2
- package/dist/components/core/Loader/Loader.d.ts +0 -24
- package/dist/components/core/Loader/Loader.js +0 -57
- package/dist/components/core/Loader/Loader.theme.d.ts +0 -27
- package/dist/components/core/Loader/Loader.theme.js +0 -60
- package/dist/components/core/Loader/Loader.types.d.ts +0 -71
- package/dist/components/core/Loader/index.d.ts +0 -2
- package/dist/components/core/Message/MessageContent.d.ts +0 -8
- package/dist/components/core/Metric/Metric.js +0 -23
- package/dist/components/core/Modal/ModalDescription.d.ts +0 -5
- package/dist/components/core/Modal/ModalDescription.js +0 -11
- package/dist/components/core/Popover/PopoverContent.d.ts +0 -7
- package/dist/components/core/ProgressiveBlur/ProgressiveBlur.d.ts +0 -34
- package/dist/components/core/ProgressiveBlur/ProgressiveBlur.js +0 -218
- package/dist/components/core/ProgressiveBlur/ProgressiveBlur.theme.d.ts +0 -9
- package/dist/components/core/ProgressiveBlur/ProgressiveBlur.types.d.ts +0 -48
- package/dist/components/core/ProgressiveBlur/index.d.ts +0 -2
- package/dist/components/core/Table/TableColumnManager.js +0 -23
- package/dist/components/core/Table/TablePagination.js +0 -25
- package/dist/components/core/Tabs/TabsContent.d.ts +0 -6
- package/dist/components/forms/ColorPicker/ColorPickerContent.d.ts +0 -7
- package/dist/components/forms/DatePicker/DatePickerContent.d.ts +0 -7
- package/dist/icons/Icon.d.ts +0 -24
- package/dist/icons/Icon.js +0 -30
- package/dist/icons/Index.d.ts +0 -16
- package/dist/icons/core/ChevronUpDown.d.ts +0 -1
- package/dist/icons/core/ChevronUpDown.js +0 -7
- package/dist/icons/core/DollarIcon.d.ts +0 -1
- package/dist/icons/core/DollarIcon.js +0 -5
- package/dist/icons/core/LockIcon.d.ts +0 -1
- package/dist/icons/core/LockIcon.js +0 -5
- package/dist/icons/core/MinusIcon.d.ts +0 -1
- package/dist/icons/core/MinusIcon.js +0 -7
- package/dist/icons/core/PlusIcon.d.ts +0 -1
- package/dist/icons/core/PlusIcon.js +0 -7
- package/dist/icons/core/SearchIcon.d.ts +0 -1
- package/dist/icons/core/SearchIcon.js +0 -7
- package/dist/icons/core/TickIcon.d.ts +0 -1
- package/dist/icons/core/TickIcon.js +0 -5
- package/dist/icons/core/User.d.ts +0 -1
- package/dist/utils/useClickOutside.d.ts +0 -1
- /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.d.ts +0 -0
- /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.js +0 -0
- /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.types.d.ts +0 -0
- /package/dist/components/{core → data-display}/DescriptionList/index.d.ts +0 -0
- /package/dist/components/{core → data-display}/Feed/Feed.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/KPI/KPI.d.ts +0 -0
- /package/dist/components/{core → data-display}/KPI/KPI.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/Metric/Metric.d.ts +0 -0
- /package/dist/components/{core → data-display}/Metric/Metric.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/Metric/index.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.animations.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.animations.js +0 -0
- /package/dist/components/{core → data-display}/Table/Table.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.filterUtils.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.filterUtils.js +0 -0
- /package/dist/components/{core → data-display}/Table/Table.js +0 -0
- /package/dist/components/{core → data-display}/Table/Table.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.utils.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.utils.js +0 -0
- /package/dist/components/{core → data-display}/Table/TableActions.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableActionsMenu.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableBody.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableBody.js +0 -0
- /package/dist/components/{core → data-display}/Table/TableCell.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableCell.js +0 -0
- /package/dist/components/{core → data-display}/Table/TableColumnManager.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableDeclarative.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableDeclarative.js +0 -0
- /package/dist/components/{core → data-display}/Table/TableFilter.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableHeader.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TablePagination.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableRow.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableSelectionHeader.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/index.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableColumns.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableColumns.js +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableExpansion.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableExpansion.js +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableFilter.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableFilter.js +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTablePagination.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTablePagination.js +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableSelection.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableSelection.js +0 -0
- /package/dist/components/{core → data-display}/Table/index.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/index.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.animations.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.animations.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.types.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineContent.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineContent.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineItem.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineItem.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineMarker.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/index.d.ts +0 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useRef, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
const VERTEX_SHADER = `#version 300 es
|
|
5
|
+
in vec2 a_position;
|
|
6
|
+
void main() {
|
|
7
|
+
gl_Position = vec4(a_position, 0.0, 1.0);
|
|
8
|
+
}`;
|
|
9
|
+
/**
|
|
10
|
+
* Minimal raw WebGL2 canvas renderer for fullscreen fragment shaders.
|
|
11
|
+
* - Built-in uniforms: iTime (float), iResolution (vec2)
|
|
12
|
+
* - Custom uniforms read from `uniformsRef` each frame (no stale closures)
|
|
13
|
+
* - ResizeObserver for responsive canvas sizing
|
|
14
|
+
* - rAF animation loop with cleanup on unmount
|
|
15
|
+
* - Graceful degradation: renders nothing if WebGL2 unavailable
|
|
16
|
+
*/
|
|
17
|
+
const ShaderCanvas = ({ fragmentShader, uniformsRef, maxDpr = 2, className, style, }) => {
|
|
18
|
+
const canvasRef = useRef(null);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
const canvas = canvasRef.current;
|
|
21
|
+
if (!canvas)
|
|
22
|
+
return;
|
|
23
|
+
const gl = canvas.getContext("webgl2", {
|
|
24
|
+
alpha: true,
|
|
25
|
+
premultipliedAlpha: false,
|
|
26
|
+
antialias: false,
|
|
27
|
+
});
|
|
28
|
+
if (!gl)
|
|
29
|
+
return;
|
|
30
|
+
// ── Compile shaders ────────────────────────────────────────────────
|
|
31
|
+
const compileShader = (type, src) => {
|
|
32
|
+
const shader = gl.createShader(type);
|
|
33
|
+
if (!shader)
|
|
34
|
+
return null;
|
|
35
|
+
gl.shaderSource(shader, src);
|
|
36
|
+
gl.compileShader(shader);
|
|
37
|
+
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
|
|
38
|
+
if (process.env.NODE_ENV !== "production") {
|
|
39
|
+
console.error("[ShaderCanvas]", gl.getShaderInfoLog(shader));
|
|
40
|
+
}
|
|
41
|
+
gl.deleteShader(shader);
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
return shader;
|
|
45
|
+
};
|
|
46
|
+
const vs = compileShader(gl.VERTEX_SHADER, VERTEX_SHADER);
|
|
47
|
+
const fs = compileShader(gl.FRAGMENT_SHADER, fragmentShader);
|
|
48
|
+
if (!vs || !fs)
|
|
49
|
+
return;
|
|
50
|
+
const program = gl.createProgram();
|
|
51
|
+
gl.attachShader(program, vs);
|
|
52
|
+
gl.attachShader(program, fs);
|
|
53
|
+
gl.linkProgram(program);
|
|
54
|
+
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
|
|
55
|
+
if (process.env.NODE_ENV !== "production") {
|
|
56
|
+
console.error("[ShaderCanvas]", gl.getProgramInfoLog(program));
|
|
57
|
+
}
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
gl.useProgram(program);
|
|
61
|
+
// ── Fullscreen quad ────────────────────────────────────────────────
|
|
62
|
+
const positions = new Float32Array([-1, -1, 1, -1, -1, 1, 1, 1]);
|
|
63
|
+
const vao = gl.createVertexArray();
|
|
64
|
+
gl.bindVertexArray(vao);
|
|
65
|
+
const buf = gl.createBuffer();
|
|
66
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, buf);
|
|
67
|
+
gl.bufferData(gl.ARRAY_BUFFER, positions, gl.STATIC_DRAW);
|
|
68
|
+
const aPos = gl.getAttribLocation(program, "a_position");
|
|
69
|
+
gl.enableVertexAttribArray(aPos);
|
|
70
|
+
gl.vertexAttribPointer(aPos, 2, gl.FLOAT, false, 0, 0);
|
|
71
|
+
// ── Uniform locations ──────────────────────────────────────────────
|
|
72
|
+
const uTime = gl.getUniformLocation(program, "iTime");
|
|
73
|
+
const uRes = gl.getUniformLocation(program, "iResolution");
|
|
74
|
+
// Cache custom uniform locations
|
|
75
|
+
const customLocs = new Map();
|
|
76
|
+
const getCustomLoc = (name) => {
|
|
77
|
+
var _a;
|
|
78
|
+
if (!customLocs.has(name)) {
|
|
79
|
+
customLocs.set(name, gl.getUniformLocation(program, name));
|
|
80
|
+
}
|
|
81
|
+
return (_a = customLocs.get(name)) !== null && _a !== void 0 ? _a : null;
|
|
82
|
+
};
|
|
83
|
+
// ── Resize handling ────────────────────────────────────────────────
|
|
84
|
+
const dpr = Math.min(window.devicePixelRatio || 1, maxDpr);
|
|
85
|
+
let width = 0;
|
|
86
|
+
let height = 0;
|
|
87
|
+
const resize = () => {
|
|
88
|
+
const rect = canvas.getBoundingClientRect();
|
|
89
|
+
const w = Math.round(rect.width * dpr);
|
|
90
|
+
const h = Math.round(rect.height * dpr);
|
|
91
|
+
if (w !== width || h !== height) {
|
|
92
|
+
width = w;
|
|
93
|
+
height = h;
|
|
94
|
+
canvas.width = w;
|
|
95
|
+
canvas.height = h;
|
|
96
|
+
gl.viewport(0, 0, w, h);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
const observer = new ResizeObserver(resize);
|
|
100
|
+
observer.observe(canvas);
|
|
101
|
+
resize();
|
|
102
|
+
// ── Animation loop ─────────────────────────────────────────────────
|
|
103
|
+
gl.enable(gl.BLEND);
|
|
104
|
+
gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
|
|
105
|
+
let rafId = 0;
|
|
106
|
+
const startTime = performance.now();
|
|
107
|
+
const frame = () => {
|
|
108
|
+
rafId = requestAnimationFrame(frame);
|
|
109
|
+
const t = (performance.now() - startTime) / 1000;
|
|
110
|
+
gl.uniform1f(uTime, t);
|
|
111
|
+
gl.uniform2f(uRes, width, height);
|
|
112
|
+
// Set custom uniforms from ref
|
|
113
|
+
const uniforms = uniformsRef.current;
|
|
114
|
+
for (const name in uniforms) {
|
|
115
|
+
const loc = getCustomLoc(name);
|
|
116
|
+
if (!loc)
|
|
117
|
+
continue;
|
|
118
|
+
const val = uniforms[name];
|
|
119
|
+
if (typeof val === "number") {
|
|
120
|
+
gl.uniform1f(loc, val);
|
|
121
|
+
}
|
|
122
|
+
else if (Array.isArray(val)) {
|
|
123
|
+
if (val.length === 2)
|
|
124
|
+
gl.uniform2f(loc, val[0], val[1]);
|
|
125
|
+
else if (val.length === 3)
|
|
126
|
+
gl.uniform3f(loc, val[0], val[1], val[2]);
|
|
127
|
+
else if (val.length === 4)
|
|
128
|
+
gl.uniform4f(loc, val[0], val[1], val[2], val[3]);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
|
|
132
|
+
};
|
|
133
|
+
rafId = requestAnimationFrame(frame);
|
|
134
|
+
return () => {
|
|
135
|
+
cancelAnimationFrame(rafId);
|
|
136
|
+
observer.disconnect();
|
|
137
|
+
gl.deleteProgram(program);
|
|
138
|
+
gl.deleteShader(vs);
|
|
139
|
+
gl.deleteShader(fs);
|
|
140
|
+
gl.deleteBuffer(buf);
|
|
141
|
+
gl.deleteVertexArray(vao);
|
|
142
|
+
};
|
|
143
|
+
// Fragment shader is static — only set up once
|
|
144
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
145
|
+
}, []);
|
|
146
|
+
return (jsx("canvas", { ref: canvasRef, className: className, style: { display: "block", width: "100%", height: "100%", ...style } }));
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
export { ShaderCanvas };
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { useRef, useMemo, useEffect } from 'react';
|
|
3
3
|
import { Canvas, useFrame } from '@react-three/fiber';
|
|
4
|
-
import { Color,
|
|
4
|
+
import { Color, OneFactor, ZeroFactor, AddEquation, CustomBlending, BackSide } from 'three';
|
|
5
5
|
import { waveFragment, waveVertex, dotSphereFragment, dotSphereVertex, glowFragment, glowVertex } from './DotSphere.shaders.js';
|
|
6
|
+
import { useOrbState } from '../../hooks/useOrbState.js';
|
|
6
7
|
|
|
7
|
-
const
|
|
8
|
+
const STATE_CONFIG = {
|
|
9
|
+
idle: { speed: 0.3, glowIntensity: 0.6, rimIntensity: 1.0 },
|
|
10
|
+
listening: { speed: 0.6, glowIntensity: 1.0, rimIntensity: 1.5 },
|
|
11
|
+
thinking: { speed: 1.2, glowIntensity: 1.4, rimIntensity: 2.0 },
|
|
12
|
+
speaking: { speed: 0.8, glowIntensity: 1.2, rimIntensity: 1.8 },
|
|
13
|
+
};
|
|
14
|
+
const OrbScene = ({ colors, speed, gridDensity, dotSize, rimIntensity, glowIntensity, glowSize, state, }) => {
|
|
8
15
|
const groupRef = useRef(null);
|
|
9
16
|
const dotMatRef = useRef(null);
|
|
10
17
|
const innerGlowRef = useRef(null);
|
|
@@ -74,6 +81,9 @@ const OrbScene = ({ colors, speed, gridDensity, dotSize, rimIntensity, glowInten
|
|
|
74
81
|
}),
|
|
75
82
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
76
83
|
[]);
|
|
84
|
+
// ── State-driven interpolation ─────────────────────────────────────────
|
|
85
|
+
const stateProps = useMemo(() => ({ speed, glowIntensity, rimIntensity }), [speed, glowIntensity, rimIntensity]);
|
|
86
|
+
const { valuesRef: stateRef, tick: stateTick } = useOrbState(state, STATE_CONFIG, stateProps);
|
|
77
87
|
// ── Sync prop changes → uniforms ──────────────────────────────────────
|
|
78
88
|
useEffect(() => {
|
|
79
89
|
// Dot sphere
|
|
@@ -108,8 +118,21 @@ const OrbScene = ({ colors, speed, gridDensity, dotSize, rimIntensity, glowInten
|
|
|
108
118
|
}
|
|
109
119
|
}, [colorObjs, dotSize, gridDensity, rimIntensity, glowIntensity]);
|
|
110
120
|
// ── Animation loop ────────────────────────────────────────────────────
|
|
111
|
-
useFrame(({ clock }) => {
|
|
112
|
-
|
|
121
|
+
useFrame(({ clock }, delta) => {
|
|
122
|
+
// Tick state interpolation
|
|
123
|
+
stateTick(delta);
|
|
124
|
+
const sv = stateRef.current;
|
|
125
|
+
const t = clock.getElapsedTime() * sv.speed;
|
|
126
|
+
// Sync interpolated rimIntensity / glowIntensity into uniforms
|
|
127
|
+
if (dotMatRef.current) {
|
|
128
|
+
dotMatRef.current.uniforms.u_rimIntensity.value = sv.rimIntensity;
|
|
129
|
+
}
|
|
130
|
+
if (innerGlowRef.current) {
|
|
131
|
+
innerGlowRef.current.uniforms.u_intensity.value = sv.glowIntensity * 0.8;
|
|
132
|
+
}
|
|
133
|
+
if (outerGlowRef.current) {
|
|
134
|
+
outerGlowRef.current.uniforms.u_intensity.value = sv.glowIntensity * 0.55;
|
|
135
|
+
}
|
|
113
136
|
// Update time uniform on every material
|
|
114
137
|
for (const ref of [
|
|
115
138
|
dotMatRef,
|
|
@@ -125,12 +148,20 @@ const OrbScene = ({ colors, speed, gridDensity, dotSize, rimIntensity, glowInten
|
|
|
125
148
|
groupRef.current.rotation.y = clock.getElapsedTime() * 0.12;
|
|
126
149
|
}
|
|
127
150
|
});
|
|
128
|
-
return (jsxs("group", { ref: groupRef, children: [jsxs("mesh", { scale: 0.85, children: [jsx("sphereGeometry", { args: [1, 48, 48] }), jsx("shaderMaterial", { ref: waveDeepRef, vertexShader: waveVertex, fragmentShader: waveFragment, uniforms: waveDeepUniforms, transparent: true,
|
|
151
|
+
return (jsxs("group", { ref: groupRef, children: [jsxs("mesh", { scale: 0.85, children: [jsx("sphereGeometry", { args: [1, 48, 48] }), jsx("shaderMaterial", { ref: waveDeepRef, vertexShader: waveVertex, fragmentShader: waveFragment, uniforms: waveDeepUniforms, transparent: true, depthWrite: false })] }), jsxs("mesh", { scale: 0.96, children: [jsx("sphereGeometry", { args: [1, 48, 48] }), jsx("shaderMaterial", { ref: waveSurfaceRef, vertexShader: waveVertex, fragmentShader: waveFragment, uniforms: waveSurfaceUniforms, transparent: true, depthWrite: false })] }), jsxs("mesh", { children: [jsx("sphereGeometry", { args: [1, 64, 64] }), jsx("shaderMaterial", { ref: dotMatRef, vertexShader: dotSphereVertex, fragmentShader: dotSphereFragment, uniforms: dotUniforms, transparent: true, depthWrite: false })] }), jsxs("mesh", { scale: 1.12, children: [jsx("sphereGeometry", { args: [1, 32, 32] }), jsx("shaderMaterial", { ref: innerGlowRef, vertexShader: glowVertex, fragmentShader: glowFragment, uniforms: innerGlowUniforms, transparent: true, side: BackSide, blending: CustomBlending, blendEquation: AddEquation, blendSrc: OneFactor, blendDst: OneFactor, blendSrcAlpha: ZeroFactor, blendDstAlpha: OneFactor, depthWrite: false })] }), jsxs("mesh", { scale: glowSize, children: [jsx("sphereGeometry", { args: [1, 32, 32] }), jsx("shaderMaterial", { ref: outerGlowRef, vertexShader: glowVertex, fragmentShader: glowFragment, uniforms: outerGlowUniforms, transparent: true, side: BackSide, blending: CustomBlending, blendEquation: AddEquation, blendSrc: OneFactor, blendDst: OneFactor, blendSrcAlpha: ZeroFactor, blendDstAlpha: OneFactor, depthWrite: false })] })] }));
|
|
129
152
|
};
|
|
130
153
|
// ── Public DotSphere variant ─────────────────────────────────────────────────
|
|
131
154
|
const DEFAULT_COLORS = ["#00d2ff", "#a855f7", "#f97316"];
|
|
132
|
-
const DotSphere = ({ colors = DEFAULT_COLORS, speed = 0.6, gridDensity = 40, dotSize = 0.055, rimIntensity = 1.5, glowIntensity = 1.0, glowSize = 1.5, }) => {
|
|
133
|
-
return (jsx(Canvas, { className: "!absolute inset-0 w-full h-full",
|
|
155
|
+
const DotSphere = ({ colors = DEFAULT_COLORS, speed = 0.6, gridDensity = 40, dotSize = 0.055, rimIntensity = 1.5, glowIntensity = 1.0, glowSize = 1.5, state, }) => {
|
|
156
|
+
return (jsx(Canvas, { className: "!absolute inset-0 w-full h-full", style: {
|
|
157
|
+
filter: [
|
|
158
|
+
'drop-shadow(0 0 10px rgba(168, 85, 247, 0.7))',
|
|
159
|
+
'drop-shadow(0 0 25px rgba(147, 51, 234, 0.35))',
|
|
160
|
+
'drop-shadow(0 0 50px rgba(124, 58, 237, 0.15))',
|
|
161
|
+
].join(' '),
|
|
162
|
+
}, dpr: [1, 2], camera: { position: [0, 0, 3], fov: 50 }, gl: { antialias: true, alpha: true, premultipliedAlpha: false }, onCreated: ({ gl }) => {
|
|
163
|
+
gl.setClearColor(0x000000, 0);
|
|
164
|
+
}, children: jsx(OrbScene, { colors: colors, speed: speed, gridDensity: gridDensity, dotSize: dotSize, rimIntensity: rimIntensity, glowIntensity: glowIntensity, glowSize: glowSize, state: state }) }));
|
|
134
165
|
};
|
|
135
166
|
|
|
136
167
|
export { DotSphere };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { OrbState } from "../../AIOrb.types";
|
|
1
2
|
export interface DotSphereProps {
|
|
2
3
|
/**
|
|
3
4
|
* Three gradient colours [top, middle, bottom] as hex strings.
|
|
@@ -34,4 +35,9 @@ export interface DotSphereProps {
|
|
|
34
35
|
* @default 1.5
|
|
35
36
|
*/
|
|
36
37
|
glowSize?: number;
|
|
38
|
+
/**
|
|
39
|
+
* State-driven animation. When set, smoothly interpolates speed,
|
|
40
|
+
* glowIntensity, and rimIntensity towards state targets.
|
|
41
|
+
*/
|
|
42
|
+
state?: OrbState;
|
|
37
43
|
}
|
|
@@ -2,11 +2,18 @@ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { useRef, useMemo, useEffect } from 'react';
|
|
3
3
|
import { Canvas, useFrame } from '@react-three/fiber';
|
|
4
4
|
import { Environment } from '@react-three/drei';
|
|
5
|
-
import { ACESFilmicToneMapping, Color,
|
|
5
|
+
import { ACESFilmicToneMapping, Color, OneFactor, ZeroFactor, AddEquation, CustomBlending, BackSide } from 'three';
|
|
6
6
|
import { simplex3 } from './Liquid.noise.js';
|
|
7
7
|
import { atmosphereFragment, glowVertex } from './Liquid.shaders.js';
|
|
8
|
+
import { useOrbState } from '../../hooks/useOrbState.js';
|
|
8
9
|
|
|
9
|
-
const
|
|
10
|
+
const STATE_CONFIG = {
|
|
11
|
+
idle: { speed: 0.5, noiseAmplitude: 0.06, glowIntensity: 0.6 },
|
|
12
|
+
listening: { speed: 1.0, noiseAmplitude: 0.1, glowIntensity: 1.0 },
|
|
13
|
+
thinking: { speed: 1.8, noiseAmplitude: 0.15, glowIntensity: 1.4 },
|
|
14
|
+
speaking: { speed: 1.2, noiseAmplitude: 0.12, glowIntensity: 1.2 },
|
|
15
|
+
};
|
|
16
|
+
const LiquidScene = ({ colors, meshColor, speed, roughness, metalness, noiseScale, noiseAmplitude, glowIntensity, glowSize, state, }) => {
|
|
10
17
|
const groupRef = useRef(null);
|
|
11
18
|
const meshRef = useRef(null);
|
|
12
19
|
const atmosphereRef = useRef(null);
|
|
@@ -15,6 +22,9 @@ const LiquidScene = ({ colors, meshColor, speed, roughness, metalness, noiseScal
|
|
|
15
22
|
// Keep latest props in a ref so useFrame always reads current values
|
|
16
23
|
const propsRef = useRef({ speed, noiseScale, noiseAmplitude });
|
|
17
24
|
propsRef.current = { speed, noiseScale, noiseAmplitude };
|
|
25
|
+
// ── State-driven interpolation ─────────────────────────────────────────
|
|
26
|
+
const stateProps = useMemo(() => ({ speed, noiseAmplitude, glowIntensity }), [speed, noiseAmplitude, glowIntensity]);
|
|
27
|
+
const { valuesRef: stateRef, tick: stateTick } = useOrbState(state, STATE_CONFIG, stateProps);
|
|
18
28
|
// Colour objects (rebuilt only when hex strings change)
|
|
19
29
|
const [c1, c2, c3] = colors;
|
|
20
30
|
const colorObjs = useMemo(() => ({
|
|
@@ -59,9 +69,18 @@ const LiquidScene = ({ colors, meshColor, speed, roughness, metalness, noiseScal
|
|
|
59
69
|
}
|
|
60
70
|
}, [colorObjs, meshColor, roughness, metalness, glowIntensity]);
|
|
61
71
|
// ── Animation loop ──────────────────────────────────────────────────────
|
|
62
|
-
useFrame(({ clock }) => {
|
|
72
|
+
useFrame(({ clock }, delta) => {
|
|
73
|
+
// Tick state interpolation
|
|
74
|
+
stateTick(delta);
|
|
75
|
+
const sv = stateRef.current;
|
|
63
76
|
const t = clock.getElapsedTime();
|
|
64
|
-
const
|
|
77
|
+
const spd = sv.speed;
|
|
78
|
+
const na = sv.noiseAmplitude;
|
|
79
|
+
const ns = propsRef.current.noiseScale;
|
|
80
|
+
// Sync interpolated glowIntensity into atmosphere uniform
|
|
81
|
+
if (atmosphereRef.current) {
|
|
82
|
+
atmosphereRef.current.uniforms.u_intensity.value = sv.glowIntensity * 0.65;
|
|
83
|
+
}
|
|
65
84
|
// Vertex deformation
|
|
66
85
|
if (meshRef.current && origData.current) {
|
|
67
86
|
const geo = meshRef.current.geometry;
|
|
@@ -92,14 +111,21 @@ const LiquidScene = ({ colors, meshColor, speed, roughness, metalness, noiseScal
|
|
|
92
111
|
atmosphereRef.current.uniforms.u_time.value = t * spd;
|
|
93
112
|
}
|
|
94
113
|
});
|
|
95
|
-
return (jsxs("group", { ref: groupRef, children: [jsx(Environment, { preset: "sunset" }), jsx("ambientLight", { intensity: 2 }), jsx("pointLight", { color: colors[0], intensity: 18, distance: 50, position: [-3, 1, 2] }), jsx("pointLight", { color: colors[1], intensity: 18, distance: 50, position: [3, -1, 2] }), jsx("pointLight", { color: colors[2], intensity: 10, distance: 50, position: [0, 0, 4] }), jsx("pointLight", { color: "#6428b4", intensity: 12, distance: 50, position: [0, -3, 2] }), jsxs("mesh", { ref: meshRef, children: [jsx("sphereGeometry", { args: [1, 64, 64] }), jsx("meshStandardMaterial", { color: meshColor, roughness: roughness, metalness: metalness, envMapIntensity: 2.5, emissive: "#5A1878", emissiveIntensity: 0.8 })] }), jsxs("mesh", { scale: glowSize, children: [jsx("sphereGeometry", { args: [1, 32, 32] }), jsx("shaderMaterial", { ref: atmosphereRef, vertexShader: glowVertex, fragmentShader: atmosphereFragment, uniforms: atmosphereUniforms, transparent: true, side: BackSide, blending:
|
|
114
|
+
return (jsxs("group", { ref: groupRef, children: [jsx(Environment, { preset: "sunset" }), jsx("ambientLight", { intensity: 2 }), jsx("pointLight", { color: colors[0], intensity: 18, distance: 50, position: [-3, 1, 2] }), jsx("pointLight", { color: colors[1], intensity: 18, distance: 50, position: [3, -1, 2] }), jsx("pointLight", { color: colors[2], intensity: 10, distance: 50, position: [0, 0, 4] }), jsx("pointLight", { color: "#6428b4", intensity: 12, distance: 50, position: [0, -3, 2] }), jsxs("mesh", { ref: meshRef, children: [jsx("sphereGeometry", { args: [1, 64, 64] }), jsx("meshStandardMaterial", { color: meshColor, roughness: roughness, metalness: metalness, envMapIntensity: 2.5, emissive: "#5A1878", emissiveIntensity: 0.8 })] }), jsxs("mesh", { scale: glowSize, children: [jsx("sphereGeometry", { args: [1, 32, 32] }), jsx("shaderMaterial", { ref: atmosphereRef, vertexShader: glowVertex, fragmentShader: atmosphereFragment, uniforms: atmosphereUniforms, transparent: true, side: BackSide, blending: CustomBlending, blendEquation: AddEquation, blendSrc: OneFactor, blendDst: OneFactor, blendSrcAlpha: ZeroFactor, blendDstAlpha: OneFactor, depthWrite: false })] })] }));
|
|
96
115
|
};
|
|
97
116
|
// ── Public Liquid variant ────────────────────────────────────────────────────
|
|
98
117
|
const DEFAULT_COLORS = ["#2C35B7", "#C9242F", "#9DD9EB"];
|
|
99
|
-
const Liquid = ({ colors = DEFAULT_COLORS, meshColor = "#350F3F", speed = 1.0, roughness = 0.15, metalness = 0.95, noiseScale = 0.8, noiseAmplitude = 0.1, glowIntensity = 1.0, glowSize = 1.8, }) => {
|
|
100
|
-
return (jsxs(Fragment, { children: [jsx(Canvas, { className: "!absolute inset-0 w-full h-full",
|
|
118
|
+
const Liquid = ({ colors = DEFAULT_COLORS, meshColor = "#350F3F", speed = 1.0, roughness = 0.15, metalness = 0.95, noiseScale = 0.8, noiseAmplitude = 0.1, glowIntensity = 1.0, glowSize = 1.8, state, }) => {
|
|
119
|
+
return (jsxs(Fragment, { children: [jsx(Canvas, { className: "!absolute inset-0 w-full h-full", style: {
|
|
120
|
+
filter: [
|
|
121
|
+
'drop-shadow(0 0 10px rgba(192, 132, 252, 0.7))',
|
|
122
|
+
'drop-shadow(0 0 25px rgba(147, 51, 234, 0.35))',
|
|
123
|
+
'drop-shadow(0 0 50px rgba(124, 58, 237, 0.15))',
|
|
124
|
+
].join(' '),
|
|
125
|
+
}, dpr: [1, 2], camera: { position: [0, 0, 3.2], fov: 50 }, gl: { antialias: true, alpha: true, premultipliedAlpha: false, toneMapping: ACESFilmicToneMapping }, onCreated: ({ gl }) => {
|
|
101
126
|
gl.toneMappingExposure = 1.8;
|
|
102
|
-
|
|
127
|
+
gl.setClearColor(0x000000, 0);
|
|
128
|
+
}, children: jsx(LiquidScene, { colors: colors, meshColor: meshColor, speed: speed, roughness: roughness, metalness: metalness, noiseScale: noiseScale, noiseAmplitude: noiseAmplitude, glowIntensity: glowIntensity, glowSize: glowSize, state: state }) }), jsx("div", { className: "absolute inset-0 pointer-events-none", style: {
|
|
103
129
|
background: "radial-gradient(circle at center, rgba(255,255,255,0.35) 0%, rgba(180,120,255,0.2) 15%, rgba(100,40,180,0.08) 35%, transparent 55%)",
|
|
104
130
|
mixBlendMode: "screen",
|
|
105
131
|
} })] }));
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { OrbState } from "../../AIOrb.types";
|
|
1
2
|
export interface LiquidProps {
|
|
2
3
|
/**
|
|
3
4
|
* Three light colours as hex strings.
|
|
@@ -44,4 +45,9 @@ export interface LiquidProps {
|
|
|
44
45
|
* @default 1.8
|
|
45
46
|
*/
|
|
46
47
|
glowSize?: number;
|
|
48
|
+
/**
|
|
49
|
+
* State-driven animation. When set, smoothly interpolates speed,
|
|
50
|
+
* noiseAmplitude, and glowIntensity towards state targets.
|
|
51
|
+
*/
|
|
52
|
+
state?: OrbState;
|
|
47
53
|
}
|
|
@@ -12,17 +12,36 @@ const ANIMATION_PRESETS = {
|
|
|
12
12
|
slideLeft: { opacity: 0, x: -24 },
|
|
13
13
|
slideRight: { opacity: 0, x: 24 },
|
|
14
14
|
};
|
|
15
|
+
const RESOLVED_VALUES = {
|
|
16
|
+
opacity: 1,
|
|
17
|
+
y: 0,
|
|
18
|
+
x: 0,
|
|
19
|
+
scale: 1,
|
|
20
|
+
};
|
|
21
|
+
// Pre-compute visible states per preset (only keys that the preset actually animates)
|
|
22
|
+
const VISIBLE_STATES = Object.fromEntries(Object.entries(ANIMATION_PRESETS).map(([key, initial]) => {
|
|
23
|
+
const visible = {};
|
|
24
|
+
for (const k of Object.keys(initial)) {
|
|
25
|
+
visible[k] = RESOLVED_VALUES[k];
|
|
26
|
+
}
|
|
27
|
+
return [key, visible];
|
|
28
|
+
}));
|
|
29
|
+
// Pre-compute exit variants (same as hidden states)
|
|
30
|
+
const EXIT_VARIANTS = Object.fromEntries(Object.entries(ANIMATION_PRESETS).map(([key, value]) => [key, { ...value }]));
|
|
31
|
+
// Pre-compute full variant sets for default transition (zero-allocation fast path)
|
|
32
|
+
const DEFAULT_VARIANTS = Object.fromEntries(Object.entries(ANIMATION_PRESETS).map(([key, initial]) => [
|
|
33
|
+
key,
|
|
34
|
+
{
|
|
35
|
+
hidden: { ...initial },
|
|
36
|
+
visible: { ...VISIBLE_STATES[key], transition: defaultSpringTransition },
|
|
37
|
+
},
|
|
38
|
+
]));
|
|
15
39
|
function getAnimationVariants(preset, customTransition) {
|
|
16
|
-
|
|
40
|
+
if (!customTransition)
|
|
41
|
+
return DEFAULT_VARIANTS[preset];
|
|
17
42
|
return {
|
|
18
|
-
hidden: { ...
|
|
19
|
-
visible: {
|
|
20
|
-
opacity: 1,
|
|
21
|
-
y: 0,
|
|
22
|
-
x: 0,
|
|
23
|
-
scale: 1,
|
|
24
|
-
transition: customTransition !== null && customTransition !== void 0 ? customTransition : defaultSpringTransition,
|
|
25
|
-
},
|
|
43
|
+
hidden: { ...ANIMATION_PRESETS[preset] },
|
|
44
|
+
visible: { ...VISIBLE_STATES[preset], transition: customTransition },
|
|
26
45
|
};
|
|
27
46
|
}
|
|
28
47
|
function getGroupVariants(stagger, delay) {
|
|
@@ -43,7 +62,7 @@ function getGroupVariants(stagger, delay) {
|
|
|
43
62
|
};
|
|
44
63
|
}
|
|
45
64
|
function getExitVariant(preset) {
|
|
46
|
-
return
|
|
65
|
+
return EXIT_VARIANTS[preset];
|
|
47
66
|
}
|
|
48
67
|
|
|
49
68
|
export { ANIMATION_PRESETS, defaultSpringTransition, getAnimationVariants, getExitVariant, getGroupVariants };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AnimatedContextValue, AnimatedGroupProps } from './Animated.types';
|
|
2
2
|
export declare const useAnimatedContext: () => AnimatedContextValue | undefined;
|
|
3
3
|
export declare const Animated: {
|
|
4
|
-
Group: ({ stagger, delay, as, children, className, ...props }: AnimatedGroupProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
-
Item: ({ animation, transition, as, delay, className, children, ...props }: import("./Animated.types").AnimatedItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
Group: ({ stagger, delay, as, children, className, style, ...props }: AnimatedGroupProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
Item: ({ animation, transition, as, delay, className, children, style, ...props }: import("./Animated.types").AnimatedItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
};
|
|
@@ -9,14 +9,14 @@ const AnimatedContext = createContext(undefined);
|
|
|
9
9
|
const useAnimatedContext = () => {
|
|
10
10
|
return useContext(AnimatedContext);
|
|
11
11
|
};
|
|
12
|
-
const AnimatedGroup = ({ stagger = 0.1, delay = 0, as = 'div', children, className, ...props }) => {
|
|
12
|
+
const AnimatedGroup = ({ stagger = 0.1, delay = 0, as = 'div', children, className, style, ...props }) => {
|
|
13
13
|
const shouldReduceMotion = useReducedMotion();
|
|
14
|
+
const groupVariants = useMemo(() => getGroupVariants(stagger, delay), [stagger, delay]);
|
|
15
|
+
const MotionComponent = useMemo(() => motion[as], [as]);
|
|
14
16
|
if (shouldReduceMotion) {
|
|
15
17
|
const Tag = as;
|
|
16
18
|
return (jsx(Tag, { className: className, ...props, children: children }));
|
|
17
19
|
}
|
|
18
|
-
const groupVariants = useMemo(() => getGroupVariants(stagger, delay), [stagger, delay]);
|
|
19
|
-
const MotionComponent = motion[as];
|
|
20
20
|
const motionProps = {
|
|
21
21
|
initial: 'hidden',
|
|
22
22
|
animate: 'visible',
|
|
@@ -24,6 +24,7 @@ const AnimatedGroup = ({ stagger = 0.1, delay = 0, as = 'div', children, classNa
|
|
|
24
24
|
variants: groupVariants,
|
|
25
25
|
className: cn(className),
|
|
26
26
|
...props,
|
|
27
|
+
style: { willChange: 'transform, opacity', ...style },
|
|
27
28
|
};
|
|
28
29
|
return (jsx(AnimatedContext.Provider, { value: { isInsideGroup: true, stagger, delay }, children: jsx(AnimatePresence, { children: jsx(MotionComponent, { ...motionProps, children: children }) }) }));
|
|
29
30
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { AnimatedItemProps } from './Animated.types';
|
|
2
|
-
export declare const AnimatedItem: ({ animation, transition, as, delay, className, children, ...props }: AnimatedItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare const AnimatedItem: ({ animation, transition, as, delay, className, children, style, ...props }: AnimatedItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -5,20 +5,22 @@ import { cn } from '../../../utils/cn.js';
|
|
|
5
5
|
import { useAnimatedContext } from './Animated.js';
|
|
6
6
|
import { getAnimationVariants, getExitVariant } from './Animated.animations.js';
|
|
7
7
|
|
|
8
|
-
const AnimatedItem = ({ animation = 'fadeUp', transition, as = 'div', delay, className, children, ...props }) => {
|
|
8
|
+
const AnimatedItem = ({ animation = 'fadeUp', transition, as = 'div', delay, className, children, style, ...props }) => {
|
|
9
9
|
const shouldReduceMotion = useReducedMotion();
|
|
10
10
|
const groupContext = useAnimatedContext();
|
|
11
|
+
const variants = useMemo(() => getAnimationVariants(animation, transition), [animation, transition]);
|
|
12
|
+
const exitState = useMemo(() => getExitVariant(animation), [animation]);
|
|
13
|
+
const MotionComponent = useMemo(() => motion[as], [as]);
|
|
11
14
|
if (shouldReduceMotion) {
|
|
12
15
|
const Tag = as;
|
|
13
16
|
return (jsx(Tag, { className: className, ...props, children: children }));
|
|
14
17
|
}
|
|
15
|
-
const variants = useMemo(() => getAnimationVariants(animation, transition), [animation, transition]);
|
|
16
|
-
const exitState = useMemo(() => getExitVariant(animation), [animation]);
|
|
17
18
|
const motionProps = {
|
|
18
19
|
variants,
|
|
19
20
|
exit: exitState,
|
|
20
21
|
className: cn(className),
|
|
21
22
|
...props,
|
|
23
|
+
style: { willChange: 'transform, opacity', ...style },
|
|
22
24
|
};
|
|
23
25
|
if (!groupContext) {
|
|
24
26
|
motionProps.initial = 'hidden';
|
|
@@ -32,7 +34,6 @@ const AnimatedItem = ({ animation = 'fadeUp', transition, as = 'div', delay, cla
|
|
|
32
34
|
};
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
|
-
const MotionComponent = motion[as];
|
|
36
37
|
return (
|
|
37
38
|
// @ts-expect-error -- polymorphic motion element type mismatch is safe at runtime
|
|
38
39
|
jsx(MotionComponent, { ...motionProps, children: children }));
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AuroraProps } from './Aurora.types';
|
|
3
|
+
/**
|
|
4
|
+
* Aurora creates an animated multi-color gradient background effect.
|
|
5
|
+
*
|
|
6
|
+
* Renders several large, blurred, semi-transparent blobs that slowly drift
|
|
7
|
+
* and morph, producing an organic aurora-like glow. Ideal for hero sections
|
|
8
|
+
* and decorative backgrounds.
|
|
9
|
+
*
|
|
10
|
+
* The component renders as an absolutely-positioned layer with
|
|
11
|
+
* `pointer-events-none`, so it will not interfere with interactive content.
|
|
12
|
+
* The parent element should have `position: relative` and `overflow: hidden`.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* <div className="relative overflow-hidden h-96 bg-gray-950">
|
|
17
|
+
* <Aurora />
|
|
18
|
+
* <div className="relative z-10 text-white p-8">
|
|
19
|
+
* <h1>Hero Content</h1>
|
|
20
|
+
* </div>
|
|
21
|
+
* </div>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const Aurora: React.FC<AuroraProps>;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useReducedMotion, motion } from 'motion/react';
|
|
3
|
+
import { cn } from '../../../utils/cn.js';
|
|
4
|
+
|
|
5
|
+
const DEFAULT_COLORS = ['#3b82f6', '#8b5cf6', '#ec4899', '#06b6d4'];
|
|
6
|
+
/**
|
|
7
|
+
* Each blob follows a unique organic path using keyframed x/y translations
|
|
8
|
+
* and scale changes. The durations are intentionally varied so the blobs
|
|
9
|
+
* never synchronize, producing a natural morphing look.
|
|
10
|
+
*/
|
|
11
|
+
const blobAnimations = [
|
|
12
|
+
{
|
|
13
|
+
// Blob 0 -- slow horizontal drift with vertical bob
|
|
14
|
+
x: ['0%', '30%', '-20%', '10%', '0%'],
|
|
15
|
+
y: ['0%', '-25%', '15%', '-10%', '0%'],
|
|
16
|
+
scale: [1, 1.15, 0.9, 1.05, 1],
|
|
17
|
+
baseDuration: 20,
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
// Blob 1 -- figure-8-ish path, slightly faster
|
|
21
|
+
x: ['0%', '-35%', '25%', '-15%', '0%'],
|
|
22
|
+
y: ['0%', '20%', '-30%', '25%', '0%'],
|
|
23
|
+
scale: [1, 0.9, 1.2, 0.95, 1],
|
|
24
|
+
baseDuration: 23,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
// Blob 2 -- wide circular sweep
|
|
28
|
+
x: ['0%', '25%', '0%', '-25%', '0%'],
|
|
29
|
+
y: ['0%', '-20%', '25%', '-15%', '0%'],
|
|
30
|
+
scale: [1, 1.1, 0.85, 1.15, 1],
|
|
31
|
+
baseDuration: 27,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
// Blob 3 -- gentle diagonal drift
|
|
35
|
+
x: ['0%', '-20%', '30%', '-10%', '0%'],
|
|
36
|
+
y: ['0%', '30%', '-20%', '10%', '0%'],
|
|
37
|
+
scale: [1, 0.95, 1.1, 0.9, 1],
|
|
38
|
+
baseDuration: 31,
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
/**
|
|
42
|
+
* Positions each blob at a different quadrant of the container so they
|
|
43
|
+
* begin spread out. Additional blobs beyond 4 cycle through positions.
|
|
44
|
+
*/
|
|
45
|
+
const blobPositions = [
|
|
46
|
+
{ top: '10%', left: '15%' },
|
|
47
|
+
{ top: '5%', right: '10%' },
|
|
48
|
+
{ bottom: '10%', left: '20%' },
|
|
49
|
+
{ bottom: '5%', right: '15%' },
|
|
50
|
+
];
|
|
51
|
+
/**
|
|
52
|
+
* Aurora creates an animated multi-color gradient background effect.
|
|
53
|
+
*
|
|
54
|
+
* Renders several large, blurred, semi-transparent blobs that slowly drift
|
|
55
|
+
* and morph, producing an organic aurora-like glow. Ideal for hero sections
|
|
56
|
+
* and decorative backgrounds.
|
|
57
|
+
*
|
|
58
|
+
* The component renders as an absolutely-positioned layer with
|
|
59
|
+
* `pointer-events-none`, so it will not interfere with interactive content.
|
|
60
|
+
* The parent element should have `position: relative` and `overflow: hidden`.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```tsx
|
|
64
|
+
* <div className="relative overflow-hidden h-96 bg-gray-950">
|
|
65
|
+
* <Aurora />
|
|
66
|
+
* <div className="relative z-10 text-white p-8">
|
|
67
|
+
* <h1>Hero Content</h1>
|
|
68
|
+
* </div>
|
|
69
|
+
* </div>
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
const Aurora = ({ colors = DEFAULT_COLORS, blur = 80, speed = 1, opacity = 0.3, size = 1, className, style, ...props }) => {
|
|
73
|
+
const shouldReduceMotion = useReducedMotion();
|
|
74
|
+
// Compute base blob dimension from the size multiplier.
|
|
75
|
+
// Using percentage-based sizing so it scales with the container.
|
|
76
|
+
const blobDimension = `${40 * size}%`;
|
|
77
|
+
return (jsx("div", { className: cn('absolute inset-0 overflow-hidden pointer-events-none', className), style: {
|
|
78
|
+
opacity,
|
|
79
|
+
filter: `blur(${blur}px)`,
|
|
80
|
+
...style,
|
|
81
|
+
}, "aria-hidden": "true", ...props, children: colors.map((color, index) => {
|
|
82
|
+
const anim = blobAnimations[index % blobAnimations.length];
|
|
83
|
+
const position = blobPositions[index % blobPositions.length];
|
|
84
|
+
const duration = anim.baseDuration / speed;
|
|
85
|
+
// When reduced motion is preferred, render static blobs with no animation.
|
|
86
|
+
if (shouldReduceMotion) {
|
|
87
|
+
return (jsx("div", { style: {
|
|
88
|
+
position: 'absolute',
|
|
89
|
+
...position,
|
|
90
|
+
width: blobDimension,
|
|
91
|
+
height: blobDimension,
|
|
92
|
+
borderRadius: '50%',
|
|
93
|
+
background: `radial-gradient(circle at center, ${color}, transparent 70%)`,
|
|
94
|
+
mixBlendMode: 'screen',
|
|
95
|
+
} }, index));
|
|
96
|
+
}
|
|
97
|
+
return (jsx(motion.div, { animate: {
|
|
98
|
+
x: anim.x,
|
|
99
|
+
y: anim.y,
|
|
100
|
+
scale: anim.scale,
|
|
101
|
+
}, transition: {
|
|
102
|
+
duration,
|
|
103
|
+
repeat: Infinity,
|
|
104
|
+
repeatType: 'loop',
|
|
105
|
+
ease: 'easeInOut',
|
|
106
|
+
}, style: {
|
|
107
|
+
position: 'absolute',
|
|
108
|
+
...position,
|
|
109
|
+
width: blobDimension,
|
|
110
|
+
height: blobDimension,
|
|
111
|
+
borderRadius: '50%',
|
|
112
|
+
background: `radial-gradient(circle at center, ${color}, transparent 70%)`,
|
|
113
|
+
mixBlendMode: 'screen',
|
|
114
|
+
willChange: 'transform',
|
|
115
|
+
} }, index));
|
|
116
|
+
}) }));
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export { Aurora };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
export interface AuroraProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Array of CSS color values for the gradient blobs (default: ['#3b82f6', '#8b5cf6', '#ec4899', '#06b6d4']) */
|
|
4
|
+
colors?: string[];
|
|
5
|
+
/** Blur amount in pixels applied to blobs (default: 80) */
|
|
6
|
+
blur?: number;
|
|
7
|
+
/** Animation speed multiplier. Higher values = faster movement (default: 1) */
|
|
8
|
+
speed?: number;
|
|
9
|
+
/** Overall opacity of the aurora layer, 0-1 (default: 0.3) */
|
|
10
|
+
opacity?: number;
|
|
11
|
+
/** Blob size multiplier. Higher values = larger blobs (default: 1) */
|
|
12
|
+
size?: number;
|
|
13
|
+
/** Additional className for the container */
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|