@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,84 @@
|
|
|
1
|
+
import { useRef, useCallback, useEffect } from 'react';
|
|
2
|
+
import { useReducedMotion, useMotionValue, useSpring } from 'motion/react';
|
|
3
|
+
|
|
4
|
+
function useIdleAnimation({ enabled = true, swayAmount = 2, swaySpeed = 1, breathAmount = 0.01, headTiltAmount = 3, headNudgeAmount = 1.5, phaseOffset = 0, } = {}) {
|
|
5
|
+
const shouldReduceMotion = useReducedMotion();
|
|
6
|
+
const rafRef = useRef(0);
|
|
7
|
+
const startTimeRef = useRef(null);
|
|
8
|
+
const isFirstFrame = useRef(true);
|
|
9
|
+
const rawSway = useMotionValue(0);
|
|
10
|
+
const rawBob = useMotionValue(0);
|
|
11
|
+
const rawBreath = useMotionValue(1);
|
|
12
|
+
const rawHeadTilt = useMotionValue(0);
|
|
13
|
+
const rawHeadX = useMotionValue(0);
|
|
14
|
+
const rawHeadY = useMotionValue(0);
|
|
15
|
+
const sway = useSpring(rawSway, { stiffness: 40, damping: 15 });
|
|
16
|
+
const bob = useSpring(rawBob, { stiffness: 40, damping: 15 });
|
|
17
|
+
const breath = useSpring(rawBreath, { stiffness: 40, damping: 15 });
|
|
18
|
+
const headTilt = useSpring(rawHeadTilt, { stiffness: 30, damping: 12 });
|
|
19
|
+
const headX = useSpring(rawHeadX, { stiffness: 35, damping: 14 });
|
|
20
|
+
const headY = useSpring(rawHeadY, { stiffness: 35, damping: 14 });
|
|
21
|
+
const animate = useCallback((time) => {
|
|
22
|
+
if (startTimeRef.current === null)
|
|
23
|
+
startTimeRef.current = time;
|
|
24
|
+
const t = (time - startTimeRef.current) / 1000 + phaseOffset;
|
|
25
|
+
// Body sway: slow sinusoidal
|
|
26
|
+
const swayVal = Math.sin(t * 0.8 * swaySpeed) * swayAmount;
|
|
27
|
+
rawSway.set(swayVal);
|
|
28
|
+
// Body bob: slightly different frequency
|
|
29
|
+
const bobVal = Math.sin(t * 1.2 * swaySpeed) * (swayAmount * 0.5);
|
|
30
|
+
rawBob.set(bobVal);
|
|
31
|
+
// Breathing: subtle scale oscillation
|
|
32
|
+
const breathVal = 1 + Math.sin(t * 1.5 * swaySpeed) * breathAmount;
|
|
33
|
+
rawBreath.set(breathVal);
|
|
34
|
+
// Head tilt: layered sinusoids for organic, non-repeating feel
|
|
35
|
+
const tilt1 = Math.sin(t * 0.5 * swaySpeed) * 0.6;
|
|
36
|
+
const tilt2 = Math.sin(t * 1.3 * swaySpeed) * 0.3;
|
|
37
|
+
const tilt3 = Math.sin(t * 0.3 * swaySpeed) * 0.1;
|
|
38
|
+
const tiltVal = (tilt1 + tilt2 + tilt3) * headTiltAmount;
|
|
39
|
+
rawHeadTilt.set(tiltVal);
|
|
40
|
+
// Head nudge X/Y: different frequencies from body for independence
|
|
41
|
+
const headXVal = (Math.sin(t * 0.7 * swaySpeed) * 0.6 +
|
|
42
|
+
Math.sin(t * 1.9 * swaySpeed) * 0.4) *
|
|
43
|
+
headNudgeAmount;
|
|
44
|
+
rawHeadX.set(headXVal);
|
|
45
|
+
const headYVal = (Math.sin(t * 0.9 * swaySpeed) * 0.5 +
|
|
46
|
+
Math.sin(t * 2.1 * swaySpeed) * 0.3) *
|
|
47
|
+
headNudgeAmount *
|
|
48
|
+
0.6;
|
|
49
|
+
rawHeadY.set(headYVal);
|
|
50
|
+
// On first frame, jump springs directly to skip settling animation
|
|
51
|
+
if (isFirstFrame.current) {
|
|
52
|
+
isFirstFrame.current = false;
|
|
53
|
+
sway.jump(swayVal);
|
|
54
|
+
bob.jump(bobVal);
|
|
55
|
+
breath.jump(breathVal);
|
|
56
|
+
headTilt.jump(tiltVal);
|
|
57
|
+
headX.jump(headXVal);
|
|
58
|
+
headY.jump(headYVal);
|
|
59
|
+
}
|
|
60
|
+
rafRef.current = requestAnimationFrame(animate);
|
|
61
|
+
}, [
|
|
62
|
+
rawSway, rawBob, rawBreath, rawHeadTilt, rawHeadX, rawHeadY,
|
|
63
|
+
sway, bob, breath, headTilt, headX, headY,
|
|
64
|
+
swayAmount, swaySpeed, breathAmount, headTiltAmount, headNudgeAmount, phaseOffset,
|
|
65
|
+
]);
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
if (!enabled || shouldReduceMotion) {
|
|
68
|
+
rawSway.set(0);
|
|
69
|
+
rawBob.set(0);
|
|
70
|
+
rawBreath.set(1);
|
|
71
|
+
rawHeadTilt.set(0);
|
|
72
|
+
rawHeadX.set(0);
|
|
73
|
+
rawHeadY.set(0);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
startTimeRef.current = null;
|
|
77
|
+
isFirstFrame.current = true;
|
|
78
|
+
rafRef.current = requestAnimationFrame(animate);
|
|
79
|
+
return () => cancelAnimationFrame(rafRef.current);
|
|
80
|
+
}, [enabled, shouldReduceMotion, animate, rawSway, rawBob, rawBreath, rawHeadTilt, rawHeadX, rawHeadY]);
|
|
81
|
+
return { sway, bob, breath, headTilt, headX, headY };
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export { useIdleAnimation };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
interface UseMouseTrackingOptions {
|
|
3
|
+
/** Reference to the SVG container element */
|
|
4
|
+
containerRef: RefObject<SVGSVGElement | null>;
|
|
5
|
+
/** Whether tracking is enabled */
|
|
6
|
+
enabled?: boolean;
|
|
7
|
+
/** Spring stiffness (default: 150) */
|
|
8
|
+
stiffness?: number;
|
|
9
|
+
/** Spring damping (default: 25) */
|
|
10
|
+
damping?: number;
|
|
11
|
+
/** Maximum eye offset in pixels (default: 6) */
|
|
12
|
+
maxOffset?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function useMouseTracking({ containerRef, enabled, stiffness, damping, maxOffset, }: UseMouseTrackingOptions): {
|
|
15
|
+
x: import("motion-dom").MotionValue<number>;
|
|
16
|
+
y: import("motion-dom").MotionValue<number>;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { useCallback, useEffect } from 'react';
|
|
2
|
+
import { useReducedMotion, useMotionValue, useSpring } from 'motion/react';
|
|
3
|
+
|
|
4
|
+
function useMouseTracking({ containerRef, enabled = true, stiffness = 150, damping = 25, maxOffset = 6, }) {
|
|
5
|
+
const shouldReduceMotion = useReducedMotion();
|
|
6
|
+
const rawX = useMotionValue(0);
|
|
7
|
+
const rawY = useMotionValue(0);
|
|
8
|
+
const x = useSpring(rawX, { stiffness, damping });
|
|
9
|
+
const y = useSpring(rawY, { stiffness, damping });
|
|
10
|
+
const handleMouseMove = useCallback((e) => {
|
|
11
|
+
const el = containerRef.current;
|
|
12
|
+
if (!el)
|
|
13
|
+
return;
|
|
14
|
+
const rect = el.getBoundingClientRect();
|
|
15
|
+
const centerX = rect.left + rect.width / 2;
|
|
16
|
+
const centerY = rect.top + rect.height / 2;
|
|
17
|
+
// Normalize to -1..1 range based on distance from center
|
|
18
|
+
const nx = Math.max(-1, Math.min(1, (e.clientX - centerX) / (rect.width / 2)));
|
|
19
|
+
const ny = Math.max(-1, Math.min(1, (e.clientY - centerY) / (rect.height / 2)));
|
|
20
|
+
rawX.set(nx * maxOffset);
|
|
21
|
+
rawY.set(ny * maxOffset);
|
|
22
|
+
}, [containerRef, rawX, rawY, maxOffset]);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
if (!enabled || shouldReduceMotion) {
|
|
25
|
+
rawX.set(0);
|
|
26
|
+
rawY.set(0);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
window.addEventListener('mousemove', handleMouseMove);
|
|
30
|
+
return () => window.removeEventListener('mousemove', handleMouseMove);
|
|
31
|
+
}, [enabled, shouldReduceMotion, handleMouseMove, rawX, rawY]);
|
|
32
|
+
return { x, y };
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export { useMouseTracking };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { MagneticElementProps } from "./MagneticElement.types";
|
|
3
|
+
/**
|
|
4
|
+
* MagneticElement
|
|
5
|
+
*
|
|
6
|
+
* A wrapper component that adds a magnetic pull effect to its children.
|
|
7
|
+
* When the cursor moves over the element, it subtly translates toward
|
|
8
|
+
* the cursor position, creating an engaging interactive effect.
|
|
9
|
+
*
|
|
10
|
+
* The component uses spring-based animations for smooth, natural movement
|
|
11
|
+
* and respects the user's reduced motion preferences.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* <MagneticElement strength={0.3}>
|
|
16
|
+
* <Button>Hover me</Button>
|
|
17
|
+
* </MagneticElement>
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* // With parallax inner content
|
|
23
|
+
* <MagneticElement strength={0.4} innerStrength={2}>
|
|
24
|
+
* <div className="p-4">
|
|
25
|
+
* <span>Pull me closer</span>
|
|
26
|
+
* </div>
|
|
27
|
+
* </MagneticElement>
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare const MagneticElement: React.ForwardRefExoticComponent<MagneticElementProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef, useRef, useCallback } from 'react';
|
|
3
|
+
import { useReducedMotion, useMotionValue, useSpring, motion } from 'motion/react';
|
|
4
|
+
import { cn } from '../../../utils/cn.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* MagneticElement
|
|
8
|
+
*
|
|
9
|
+
* A wrapper component that adds a magnetic pull effect to its children.
|
|
10
|
+
* When the cursor moves over the element, it subtly translates toward
|
|
11
|
+
* the cursor position, creating an engaging interactive effect.
|
|
12
|
+
*
|
|
13
|
+
* The component uses spring-based animations for smooth, natural movement
|
|
14
|
+
* and respects the user's reduced motion preferences.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* <MagneticElement strength={0.3}>
|
|
19
|
+
* <Button>Hover me</Button>
|
|
20
|
+
* </MagneticElement>
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* // With parallax inner content
|
|
26
|
+
* <MagneticElement strength={0.4} innerStrength={2}>
|
|
27
|
+
* <div className="p-4">
|
|
28
|
+
* <span>Pull me closer</span>
|
|
29
|
+
* </div>
|
|
30
|
+
* </MagneticElement>
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
const MagneticElement = forwardRef(({ strength = 0.3, distance = 100, damping = 15, stiffness = 150, innerStrength = 1.5, disabled = false, className, children, onDrag: _onDrag, onDragStart: _onDragStart, onDragEnd: _onDragEnd, onAnimationStart: _onAnimationStart, ...restProps }, ref) => {
|
|
34
|
+
const elementRef = useRef(null);
|
|
35
|
+
const shouldReduceMotion = useReducedMotion();
|
|
36
|
+
const isDisabled = disabled || shouldReduceMotion;
|
|
37
|
+
// Motion values for outer wrapper translation
|
|
38
|
+
const x = useMotionValue(0);
|
|
39
|
+
const y = useMotionValue(0);
|
|
40
|
+
// Spring-animated versions of x and y for smooth movement
|
|
41
|
+
const springConfig = { damping, stiffness, mass: 1 };
|
|
42
|
+
const springX = useSpring(x, springConfig);
|
|
43
|
+
const springY = useSpring(y, springConfig);
|
|
44
|
+
// Motion values for inner content (parallax effect)
|
|
45
|
+
const innerX = useMotionValue(0);
|
|
46
|
+
const innerY = useMotionValue(0);
|
|
47
|
+
const innerSpringX = useSpring(innerX, springConfig);
|
|
48
|
+
const innerSpringY = useSpring(innerY, springConfig);
|
|
49
|
+
const handleMouseMove = useCallback((event) => {
|
|
50
|
+
var _a;
|
|
51
|
+
if (isDisabled)
|
|
52
|
+
return;
|
|
53
|
+
const element = elementRef.current;
|
|
54
|
+
if (!element)
|
|
55
|
+
return;
|
|
56
|
+
const rect = element.getBoundingClientRect();
|
|
57
|
+
const centerX = rect.left + rect.width / 2;
|
|
58
|
+
const centerY = rect.top + rect.height / 2;
|
|
59
|
+
// Calculate distance from cursor to element center
|
|
60
|
+
const deltaX = event.clientX - centerX;
|
|
61
|
+
const deltaY = event.clientY - centerY;
|
|
62
|
+
const distanceFromCenter = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
|
|
63
|
+
// Only apply effect within the configured distance
|
|
64
|
+
const maxDistance = Math.max(rect.width, rect.height) / 2 + distance;
|
|
65
|
+
if (distanceFromCenter < maxDistance) {
|
|
66
|
+
// Apply translation proportional to offset and strength
|
|
67
|
+
const translateX = deltaX * strength;
|
|
68
|
+
const translateY = deltaY * strength;
|
|
69
|
+
x.set(translateX);
|
|
70
|
+
y.set(translateY);
|
|
71
|
+
// Inner content moves slightly more for parallax feel
|
|
72
|
+
if (innerStrength !== 1) {
|
|
73
|
+
innerX.set(translateX * (innerStrength - 1));
|
|
74
|
+
innerY.set(translateY * (innerStrength - 1));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Forward to user's onMouseMove if provided
|
|
78
|
+
(_a = restProps.onMouseMove) === null || _a === void 0 ? void 0 : _a.call(restProps, event);
|
|
79
|
+
}, [isDisabled, strength, distance, innerStrength, x, y, innerX, innerY, restProps.onMouseMove]);
|
|
80
|
+
const handleMouseLeave = useCallback((event) => {
|
|
81
|
+
var _a;
|
|
82
|
+
if (isDisabled)
|
|
83
|
+
return;
|
|
84
|
+
// Reset to center position; the spring will animate the return
|
|
85
|
+
x.set(0);
|
|
86
|
+
y.set(0);
|
|
87
|
+
innerX.set(0);
|
|
88
|
+
innerY.set(0);
|
|
89
|
+
// Forward to user's onMouseLeave if provided
|
|
90
|
+
(_a = restProps.onMouseLeave) === null || _a === void 0 ? void 0 : _a.call(restProps, event);
|
|
91
|
+
}, [isDisabled, x, y, innerX, innerY, restProps.onMouseLeave]);
|
|
92
|
+
// When disabled or reduced motion preferred, render without motion
|
|
93
|
+
if (isDisabled) {
|
|
94
|
+
return (jsx("div", { ref: ref, className: cn("inline-block", className), ...restProps, children: children }));
|
|
95
|
+
}
|
|
96
|
+
const hasParallax = innerStrength !== 1;
|
|
97
|
+
return (jsx(motion.div, { ref: (node) => {
|
|
98
|
+
// Assign to both the internal ref and the forwarded ref
|
|
99
|
+
elementRef.current = node;
|
|
100
|
+
if (typeof ref === "function") {
|
|
101
|
+
ref(node);
|
|
102
|
+
}
|
|
103
|
+
else if (ref) {
|
|
104
|
+
ref.current = node;
|
|
105
|
+
}
|
|
106
|
+
}, className: cn("inline-block", className), style: { x: springX, y: springY }, onMouseMove: handleMouseMove, onMouseLeave: handleMouseLeave, ...restProps, children: hasParallax ? (jsx(motion.div, { style: { x: innerSpringX, y: innerSpringY }, children: children })) : (children) }));
|
|
107
|
+
});
|
|
108
|
+
MagneticElement.displayName = "MagneticElement";
|
|
109
|
+
|
|
110
|
+
export { MagneticElement };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface MagneticElementProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/**
|
|
4
|
+
* Strength of the magnetic pull effect.
|
|
5
|
+
* Value between 0 and 1, where 0 is no effect and 1 is maximum pull.
|
|
6
|
+
* @default 0.3
|
|
7
|
+
*/
|
|
8
|
+
strength?: number;
|
|
9
|
+
/**
|
|
10
|
+
* Distance in pixels at which the magnetic effect activates.
|
|
11
|
+
* Only applies when the cursor is within this radius of the element center.
|
|
12
|
+
* @default 100
|
|
13
|
+
*/
|
|
14
|
+
distance?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Spring damping for the animation.
|
|
17
|
+
* Higher values result in less oscillation and a more dampened feel.
|
|
18
|
+
* @default 15
|
|
19
|
+
*/
|
|
20
|
+
damping?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Spring stiffness for the animation.
|
|
23
|
+
* Higher values result in a snappier spring.
|
|
24
|
+
* @default 150
|
|
25
|
+
*/
|
|
26
|
+
stiffness?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Multiplier for inner content movement relative to the outer wrapper.
|
|
29
|
+
* Creates a subtle parallax-like effect where content moves slightly more.
|
|
30
|
+
* Set to 1 for no parallax. Values above 1 amplify inner movement.
|
|
31
|
+
* @default 1.5
|
|
32
|
+
*/
|
|
33
|
+
innerStrength?: number;
|
|
34
|
+
/**
|
|
35
|
+
* When true, disables the magnetic effect entirely.
|
|
36
|
+
* The component renders as a plain div wrapper.
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
disabled?: boolean;
|
|
40
|
+
/** Additional className for the outer wrapper */
|
|
41
|
+
className?: string;
|
|
42
|
+
/** Content to wrap with the magnetic effect */
|
|
43
|
+
children: React.ReactNode;
|
|
44
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { MorphingTextProps } from './MorphingText.types';
|
|
3
|
+
/**
|
|
4
|
+
* MorphingText smoothly morphs between different text strings using a blur/fade
|
|
5
|
+
* transition. Two overlapping text layers cross-fade with a Gaussian blur effect
|
|
6
|
+
* to create a seamless morphing appearance.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <MorphingText
|
|
11
|
+
* texts={["Innovative", "Powerful", "Beautiful"]}
|
|
12
|
+
* interval={3000}
|
|
13
|
+
* transitionDuration={800}
|
|
14
|
+
* />
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare const MorphingText: React.ForwardRefExoticComponent<MorphingTextProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import React__default, { useId, useState, useRef, useCallback, useEffect } from 'react';
|
|
3
|
+
import { useReducedMotion, AnimatePresence, motion } from 'motion/react';
|
|
4
|
+
import { cn } from '../../../utils/cn.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* MorphingText smoothly morphs between different text strings using a blur/fade
|
|
8
|
+
* transition. Two overlapping text layers cross-fade with a Gaussian blur effect
|
|
9
|
+
* to create a seamless morphing appearance.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* <MorphingText
|
|
14
|
+
* texts={["Innovative", "Powerful", "Beautiful"]}
|
|
15
|
+
* interval={3000}
|
|
16
|
+
* transitionDuration={800}
|
|
17
|
+
* />
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
const MorphingText = React__default.forwardRef(({ texts, interval = 3000, transitionDuration = 800, loop = true, pauseOnHover = false, currentIndex: controlledIndex, onTextChange, className, ...props }, ref) => {
|
|
21
|
+
const filterId = useId();
|
|
22
|
+
const shouldReduceMotion = useReducedMotion();
|
|
23
|
+
const isControlled = controlledIndex !== undefined;
|
|
24
|
+
const [internalIndex, setInternalIndex] = useState(0);
|
|
25
|
+
const activeIndex = isControlled ? controlledIndex : internalIndex;
|
|
26
|
+
const [isPaused, setIsPaused] = useState(false);
|
|
27
|
+
const intervalRef = useRef(null);
|
|
28
|
+
const hasReachedEnd = useRef(false);
|
|
29
|
+
// Clamp activeIndex to valid range
|
|
30
|
+
const safeIndex = texts.length > 0 ? ((activeIndex % texts.length) + texts.length) % texts.length : 0;
|
|
31
|
+
const advanceIndex = useCallback(() => {
|
|
32
|
+
if (isControlled)
|
|
33
|
+
return;
|
|
34
|
+
setInternalIndex((prev) => {
|
|
35
|
+
const nextIndex = prev + 1;
|
|
36
|
+
if (!loop && nextIndex >= texts.length) {
|
|
37
|
+
hasReachedEnd.current = true;
|
|
38
|
+
return prev;
|
|
39
|
+
}
|
|
40
|
+
const resolvedNext = nextIndex % texts.length;
|
|
41
|
+
onTextChange === null || onTextChange === void 0 ? void 0 : onTextChange(resolvedNext, texts[resolvedNext]);
|
|
42
|
+
return resolvedNext;
|
|
43
|
+
});
|
|
44
|
+
}, [isControlled, loop, texts, onTextChange]);
|
|
45
|
+
// Auto-cycling interval
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
if (isControlled || isPaused || hasReachedEnd.current) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
intervalRef.current = setInterval(advanceIndex, interval);
|
|
51
|
+
return () => {
|
|
52
|
+
if (intervalRef.current) {
|
|
53
|
+
clearInterval(intervalRef.current);
|
|
54
|
+
intervalRef.current = null;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}, [isControlled, isPaused, interval, advanceIndex]);
|
|
58
|
+
// Reset hasReachedEnd when loop changes or texts change
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
hasReachedEnd.current = false;
|
|
61
|
+
}, [loop, texts]);
|
|
62
|
+
// Fire onTextChange for controlled index changes
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
if (isControlled) {
|
|
65
|
+
onTextChange === null || onTextChange === void 0 ? void 0 : onTextChange(safeIndex, texts[safeIndex]);
|
|
66
|
+
}
|
|
67
|
+
}, [isControlled, safeIndex, texts, onTextChange]);
|
|
68
|
+
const handleMouseEnter = () => {
|
|
69
|
+
if (pauseOnHover)
|
|
70
|
+
setIsPaused(true);
|
|
71
|
+
};
|
|
72
|
+
const handleMouseLeave = () => {
|
|
73
|
+
if (pauseOnHover)
|
|
74
|
+
setIsPaused(false);
|
|
75
|
+
};
|
|
76
|
+
if (texts.length === 0) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
const durationSeconds = transitionDuration / 1000;
|
|
80
|
+
const currentText = texts[safeIndex];
|
|
81
|
+
// Reduced motion: instant swap with no animation
|
|
82
|
+
if (shouldReduceMotion) {
|
|
83
|
+
return (jsx("div", { ref: ref, className: cn('relative inline-block', className), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, "aria-live": "polite", "aria-atomic": "true", ...props, children: jsx("span", { children: currentText }) }));
|
|
84
|
+
}
|
|
85
|
+
return (jsxs("div", { ref: ref, className: cn('relative inline-block', className), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, "aria-live": "polite", "aria-atomic": "true", ...props, children: [jsx("svg", { className: "absolute h-0 w-0", "aria-hidden": "true", children: jsx("defs", { children: jsx("filter", { id: `${filterId}-blur`, children: jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "0" }) }) }) }), jsx("span", { className: "invisible block", "aria-hidden": "true", children: currentText }), jsx(AnimatePresence, { mode: "popLayout", initial: false, children: jsx(motion.span, { className: "absolute inset-0 flex items-center", initial: { opacity: 0, filter: 'blur(8px)' }, animate: { opacity: 1, filter: 'blur(0px)' }, exit: { opacity: 0, filter: 'blur(8px)' }, transition: {
|
|
86
|
+
duration: durationSeconds,
|
|
87
|
+
ease: 'easeInOut',
|
|
88
|
+
}, children: currentText }, safeIndex) })] }));
|
|
89
|
+
});
|
|
90
|
+
MorphingText.displayName = "MorphingText";
|
|
91
|
+
|
|
92
|
+
export { MorphingText };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface MorphingTextProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
2
|
+
/** Array of text strings to morph between */
|
|
3
|
+
texts: string[];
|
|
4
|
+
/** Time between transitions in ms (default 3000) */
|
|
5
|
+
interval?: number;
|
|
6
|
+
/** Transition duration in ms (default 800) */
|
|
7
|
+
transitionDuration?: number;
|
|
8
|
+
/** Loop continuously (default true) */
|
|
9
|
+
loop?: boolean;
|
|
10
|
+
/** Pause cycling on hover (default false) */
|
|
11
|
+
pauseOnHover?: boolean;
|
|
12
|
+
/** Controlled current index (overrides internal state) */
|
|
13
|
+
currentIndex?: number;
|
|
14
|
+
/** Callback when the active text changes */
|
|
15
|
+
onTextChange?: (index: number, text: string) => void;
|
|
16
|
+
/** Additional class names for the container */
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface InsetCircleButtonProps {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
size?: number;
|
|
5
|
+
className?: string;
|
|
6
|
+
classNameDisc?: string;
|
|
7
|
+
classNameHover?: string;
|
|
8
|
+
onClick?: () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function InsetCircleButton({ children, size, className, classNameDisc, classNameHover, onClick, }: InsetCircleButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { motion } from 'motion/react';
|
|
3
|
+
import { cn } from '../../../utils/cn.js';
|
|
4
|
+
import 'react';
|
|
5
|
+
|
|
6
|
+
function InsetCircleButton({ children, size = 44, className, classNameDisc, classNameHover, onClick, }) {
|
|
7
|
+
return (jsx("div", { className: cn("neu-circle-groove group shrink-0 cursor-pointer bg-neutral-200/80 dark:bg-neutral-900", className), style: { width: size, height: size }, onClick: onClick, children: jsxs(motion.div, { className: cn("neu-circle-disc bg-linear-to-br from-neutral-100 to-neutral-300 dark:from-neutral-700 dark:to-neutral-900", classNameDisc), whileHover: { scale: 1 }, whileTap: { scale: 0.975 }, transition: { type: "spring", stiffness: 200, damping: 20 }, children: [jsx("div", { className: cn("absolute inset-0 rounded-full bg-linear-to-br from-neutral-300 to-neutral-200 dark:from-neutral-900 dark:to-neutral-700 opacity-0 group-hover:opacity-100 transition-opacity duration-300", classNameHover) }), jsx("div", { className: "relative z-2", children: children })] }) }));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { InsetCircleButton };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface InsetPillProps {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
className?: string;
|
|
5
|
+
padding?: string;
|
|
6
|
+
onClick?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function InsetPill({ children, className, padding, onClick, }: InsetPillProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
function InsetPill({ children, className, padding = "10px 18px", onClick, }) {
|
|
4
|
+
return (jsx("div", { className: `neu-inset inline-flex items-center gap-2 cursor-pointer rounded-full bg-neutral-200/60 dark:bg-neutral-800/80 ${className !== null && className !== void 0 ? className : ""}`, style: { padding }, onClick: onClick, children: jsx("div", { className: "relative z-2 flex items-center gap-2", children: children }) }));
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export { InsetPill };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { NoiseOverlayProps } from "./NoiseOverlay.types";
|
|
3
|
+
/**
|
|
4
|
+
* NoiseOverlay Component
|
|
5
|
+
*
|
|
6
|
+
* An SVG feTurbulence-based noise/grain texture overlay that adds a
|
|
7
|
+
* matte or film-like quality to surfaces. Renders as an absolute-positioned,
|
|
8
|
+
* non-interactive layer over its parent container.
|
|
9
|
+
*
|
|
10
|
+
* The parent container should have `position: relative` and `overflow: hidden`.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <div className="relative overflow-hidden bg-gray-900 rounded-lg p-6">
|
|
15
|
+
* <NoiseOverlay opacity={0.2} blendMode="soft-light" />
|
|
16
|
+
* <span className="relative z-10">Content with grain texture</span>
|
|
17
|
+
* </div>
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @example Animated grain
|
|
21
|
+
* ```tsx
|
|
22
|
+
* <div className="relative overflow-hidden bg-indigo-600 rounded-lg p-8">
|
|
23
|
+
* <NoiseOverlay animated frequency={0.8} octaves={3} />
|
|
24
|
+
* <h2 className="relative z-10 text-white">Film grain effect</h2>
|
|
25
|
+
* </div>
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare const NoiseOverlay: React.ForwardRefExoticComponent<NoiseOverlayProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import React__default, { useId, useRef, useEffect } from 'react';
|
|
3
|
+
import { useReducedMotion } from 'motion/react';
|
|
4
|
+
import { cn } from '../../../utils/cn.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* NoiseOverlay Component
|
|
8
|
+
*
|
|
9
|
+
* An SVG feTurbulence-based noise/grain texture overlay that adds a
|
|
10
|
+
* matte or film-like quality to surfaces. Renders as an absolute-positioned,
|
|
11
|
+
* non-interactive layer over its parent container.
|
|
12
|
+
*
|
|
13
|
+
* The parent container should have `position: relative` and `overflow: hidden`.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* <div className="relative overflow-hidden bg-gray-900 rounded-lg p-6">
|
|
18
|
+
* <NoiseOverlay opacity={0.2} blendMode="soft-light" />
|
|
19
|
+
* <span className="relative z-10">Content with grain texture</span>
|
|
20
|
+
* </div>
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @example Animated grain
|
|
24
|
+
* ```tsx
|
|
25
|
+
* <div className="relative overflow-hidden bg-indigo-600 rounded-lg p-8">
|
|
26
|
+
* <NoiseOverlay animated frequency={0.8} octaves={3} />
|
|
27
|
+
* <h2 className="relative z-10 text-white">Film grain effect</h2>
|
|
28
|
+
* </div>
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
const NoiseOverlay = React__default.forwardRef(({ opacity = 0.15, frequency = 0.65, octaves = 4, blendMode = "overlay", animated = false, className, style, ...props }, ref) => {
|
|
32
|
+
const filterId = useId();
|
|
33
|
+
const shouldReduceMotion = useReducedMotion();
|
|
34
|
+
const turbulenceRef = useRef(null);
|
|
35
|
+
const isAnimating = animated && !shouldReduceMotion;
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
if (!isAnimating || !turbulenceRef.current)
|
|
38
|
+
return;
|
|
39
|
+
let seed = 0;
|
|
40
|
+
const step = () => {
|
|
41
|
+
var _a;
|
|
42
|
+
seed += 1;
|
|
43
|
+
if (seed > 999)
|
|
44
|
+
seed = 0;
|
|
45
|
+
(_a = turbulenceRef.current) === null || _a === void 0 ? void 0 : _a.setAttribute("seed", String(seed));
|
|
46
|
+
};
|
|
47
|
+
// Animate at roughly 8fps for a subtle film-grain flicker
|
|
48
|
+
const intervalId = setInterval(step, 125);
|
|
49
|
+
return () => {
|
|
50
|
+
clearInterval(intervalId);
|
|
51
|
+
};
|
|
52
|
+
}, [isAnimating]);
|
|
53
|
+
return (jsx("div", { ref: ref, className: cn("absolute inset-0 pointer-events-none", className), style: {
|
|
54
|
+
mixBlendMode: blendMode,
|
|
55
|
+
opacity,
|
|
56
|
+
...style,
|
|
57
|
+
}, "aria-hidden": "true", ...props, children: jsxs("svg", { className: "absolute inset-0 w-full h-full", xmlns: "http://www.w3.org/2000/svg", preserveAspectRatio: "none", children: [jsx("filter", { id: filterId, children: jsx("feTurbulence", { ref: turbulenceRef, type: "fractalNoise", baseFrequency: frequency, numOctaves: octaves, stitchTiles: "stitch", seed: 0 }) }), jsx("rect", { width: "100%", height: "100%", filter: `url(#${filterId})` })] }) }));
|
|
58
|
+
});
|
|
59
|
+
NoiseOverlay.displayName = "NoiseOverlay";
|
|
60
|
+
|
|
61
|
+
export { NoiseOverlay };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/** Blend mode for the noise overlay layer */
|
|
3
|
+
export type NoiseBlendMode = "overlay" | "soft-light" | "multiply" | "normal";
|
|
4
|
+
export interface NoiseOverlayProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
5
|
+
/**
|
|
6
|
+
* Opacity of the noise texture (0-1).
|
|
7
|
+
* @default 0.15
|
|
8
|
+
*/
|
|
9
|
+
opacity?: number;
|
|
10
|
+
/**
|
|
11
|
+
* Base frequency for the feTurbulence noise generator.
|
|
12
|
+
* Higher values produce finer grain; lower values produce coarser patterns.
|
|
13
|
+
* @default 0.65
|
|
14
|
+
*/
|
|
15
|
+
frequency?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Number of octaves for the feTurbulence noise generator.
|
|
18
|
+
* More octaves add detail/complexity to the noise pattern.
|
|
19
|
+
* @default 4
|
|
20
|
+
*/
|
|
21
|
+
octaves?: number;
|
|
22
|
+
/**
|
|
23
|
+
* CSS mix-blend-mode for how the noise composites over the parent.
|
|
24
|
+
* @default "overlay"
|
|
25
|
+
*/
|
|
26
|
+
blendMode?: NoiseBlendMode;
|
|
27
|
+
/**
|
|
28
|
+
* Whether to animate the noise pattern with a subtle shifting effect.
|
|
29
|
+
* Respects prefers-reduced-motion automatically.
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
animated?: boolean;
|
|
33
|
+
/** Additional className for style overrides (shadcn pattern). */
|
|
34
|
+
className?: string;
|
|
35
|
+
}
|