@flikk/ui 1.0.0-beta.29 → 1.0.0-beta.30
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/CHANGELOG.md +1184 -0
- package/dist/components/ai/CodeBlock/CodeBlock.js +21 -4
- package/dist/components/ai/CodeBlock/CodeBlock.theme.js +0 -1
- package/dist/components/ai/CodeBlock/CodeBlock.types.d.ts +0 -2
- package/dist/components/ai/CodeBlock/LanguageIcon.js +1 -0
- package/dist/components/ai/PromptInput/PromptInput.js +13 -9
- package/dist/components/ai/PromptInput/PromptInput.theme.js +19 -2
- package/dist/components/ai/PromptInput/VoiceRecorder.d.ts +1 -0
- package/dist/components/ai/PromptInput/VoiceRecorder.js +154 -7
- package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.js +1 -0
- package/dist/components/ai/StreamingResponse/AnimatedText.js +1 -0
- package/dist/components/ai/StreamingResponse/ErrorDisplay.js +1 -0
- package/dist/components/ai/StreamingResponse/MarkdownRenderer.js +1 -0
- package/dist/components/ai/StreamingResponse/StreamingCursor.d.ts +2 -2
- package/dist/components/ai/StreamingResponse/StreamingCursor.js +14 -3
- package/dist/components/ai/StreamingResponse/StreamingResponse.animations.d.ts +2 -2
- package/dist/components/ai/StreamingResponse/StreamingResponse.animations.js +17 -11
- package/dist/components/ai/StreamingResponse/StreamingResponse.js +3 -3
- package/dist/components/ai/StreamingResponse/WordAnimationContext.js +3 -1
- package/dist/components/ai/TokenCounter/TokenCounter.js +1 -0
- package/dist/components/ai/index.d.ts +2 -2
- package/dist/components/ai/index.js +4 -5
- package/dist/components/canvas/Background.js +3 -2
- package/dist/components/canvas/CanvasToolbar.js +3 -2
- package/dist/components/canvas/Edge.d.ts +2 -5
- package/dist/components/canvas/Edge.js +18 -2
- package/dist/components/canvas/EdgeLayer.d.ts +2 -1
- package/dist/components/canvas/EdgeLayer.js +20 -10
- package/dist/components/canvas/Handle.js +3 -2
- package/dist/components/canvas/MiniMap.js +1 -0
- package/dist/components/canvas/NodeCanvas.js +19 -15
- package/dist/components/canvas/NodeCanvas.types.d.ts +5 -1
- package/dist/components/canvas/NodeControls.js +3 -2
- package/dist/components/canvas/NodeRenderer.d.ts +4 -1
- package/dist/components/canvas/NodeRenderer.js +18 -9
- package/dist/components/canvas/changes.test.d.ts +1 -0
- package/dist/components/canvas/context/CanvasContext.d.ts +10 -1
- package/dist/components/canvas/context/CanvasContext.js +27 -7
- package/dist/components/canvas/context/ConnectionContext.js +1 -0
- package/dist/components/canvas/context/HandleRegistry.js +1 -0
- package/dist/components/canvas/context/InteractionContext.js +1 -0
- package/dist/components/canvas/context/NodeIdContext.js +1 -0
- package/dist/components/canvas/hooks/useConnection.js +1 -0
- package/dist/components/canvas/hooks/useMarquee.js +1 -0
- package/dist/components/canvas/hooks/useNodeDrag.js +3 -2
- package/dist/components/canvas/hooks/usePanZoom.js +7 -1
- package/dist/components/canvas/hooks/useViewport.js +1 -0
- package/dist/components/canvas/layout.test.d.ts +1 -0
- package/dist/components/canvas/utils.test.d.ts +1 -0
- package/dist/components/charts/ActivityRings/ActivityRings.js +28 -17
- package/dist/components/charts/ActivityRings/ActivityRings.types.d.ts +2 -3
- package/dist/components/charts/ActivityRings/ActivityRings.types.js +2 -1
- package/dist/components/charts/AreaChart/AreaChart.js +170 -157
- package/dist/components/charts/BarChart/BarChart.js +114 -124
- package/dist/components/charts/ChartContainer.d.ts +7 -0
- package/dist/components/charts/ChartContainer.js +10 -7
- package/dist/components/charts/{shared/BarRenderer → ComboChart}/BarRenderer.d.ts +3 -1
- package/dist/components/charts/{shared/BarRenderer → ComboChart}/BarRenderer.js +137 -102
- package/dist/components/charts/{shared/BarRenderer → ComboChart}/BarRenderer.types.d.ts +17 -5
- package/dist/components/charts/ComboChart/ComboChart.js +26 -9
- package/dist/components/charts/ComboChart/ComboChart.types.d.ts +2 -2
- package/dist/components/charts/ComboChart/ComboChart.types.js +4 -0
- package/dist/components/charts/ComboChart/ComboChartCanvas.d.ts +98 -0
- package/dist/components/charts/{shared/ChartContainer/ChartContainer.js → ComboChart/ComboChartCanvas.js} +41 -44
- package/dist/components/charts/{shared/ChartContainer/ChartContainer.types.d.ts → ComboChart/ComboChartCanvas.types.d.ts} +23 -3
- package/dist/components/charts/{shared/LineRenderer → ComboChart}/LineRenderer.d.ts +3 -1
- package/dist/components/charts/{shared/LineRenderer → ComboChart}/LineRenderer.js +27 -14
- package/dist/components/charts/{shared/LineRenderer → ComboChart}/LineRenderer.types.d.ts +11 -5
- package/dist/components/charts/DonutChart/DonutChart.js +2 -1
- package/dist/components/charts/DonutChart/MultiSegmentDonutChart.js +8 -22
- package/dist/components/charts/DonutChart/donut-utils.js +1 -0
- package/dist/components/charts/FunnelChart/FunnelChart.animations.js +1 -48
- package/dist/components/charts/FunnelChart/FunnelChart.d.ts +3 -4
- package/dist/components/charts/FunnelChart/FunnelChart.js +306 -358
- package/dist/components/charts/Heatmap/Heatmap.js +29 -36
- package/dist/components/charts/Heatmap/HeatmapCell.js +1 -0
- package/dist/components/charts/LineChart/LineChart.js +163 -132
- package/dist/components/charts/LineChart/LineChart.types.d.ts +1 -1
- package/dist/components/charts/RadarChart/RadarChart.js +10 -2
- package/dist/components/charts/RadarChart/RadarChart.theme.js +0 -8
- package/dist/components/charts/RadarChart/RadarChart.types.d.ts +0 -8
- package/dist/components/charts/ScatterPlot/ScatterPlot.js +12 -3
- package/dist/components/charts/ScatterPlot/ScatterPlot.theme.d.ts +0 -4
- package/dist/components/charts/ScatterPlot/ScatterPlot.theme.js +0 -5
- package/dist/components/charts/StackedBarChart/StackedBarChart.js +79 -42
- package/dist/components/charts/StackedBarChart/StackedBarChart.types.d.ts +2 -2
- package/dist/components/charts/StackedBarChart/StackedBarChart.types.js +3 -0
- package/dist/components/charts/hooks/index.d.ts +1 -1
- package/dist/components/charts/hooks/useChartAccessibility.js +1 -0
- package/dist/components/charts/hooks/useChartDimensions.js +1 -0
- package/dist/components/charts/hooks/useChartScales.js +1 -1
- package/dist/components/charts/hooks/useChartTheme.js +1 -0
- package/dist/components/charts/hooks/useChartValidation.d.ts +0 -8
- package/dist/components/charts/hooks/useChartValidation.js +1 -0
- package/dist/components/charts/hooks/useTooltipPosition.js +1 -0
- package/dist/components/charts/index.d.ts +3 -3
- package/dist/components/charts/index.js +1 -3
- package/dist/components/charts/shared/ChartCrosshair/ChartCrosshair.js +5 -12
- package/dist/components/charts/shared/ChartErrorBoundary/ChartErrorBoundary.js +1 -0
- package/dist/components/charts/shared/ChartLegend/ChartLegend.d.ts +5 -2
- package/dist/components/charts/shared/ChartLegend/ChartLegend.js +15 -22
- package/dist/components/charts/shared/ChartLegend/ChartLegend.types.d.ts +6 -23
- package/dist/components/charts/shared/ChartLegend/index.d.ts +2 -3
- package/dist/components/charts/shared/ChartMarker/ChartMarker.js +1 -0
- package/dist/components/charts/shared/ChartText/ChartText.js +1 -0
- package/dist/components/charts/shared/ChartTooltip/ChartTooltip.js +4 -13
- package/dist/components/charts/shared/index.d.ts +0 -7
- package/dist/components/charts/theme/chart.theme.js +6 -0
- package/dist/components/charts/types/chart.types.d.ts +15 -0
- package/dist/components/charts/utils/animation-utils.d.ts +95 -0
- package/dist/components/charts/utils/animation-utils.js +150 -2
- package/dist/components/charts/utils/bar-emphasis.d.ts +80 -0
- package/dist/components/charts/utils/bar-emphasis.js +69 -0
- package/dist/components/charts/utils/chart-validation.js +7 -0
- package/dist/components/core/Accordion/Accordion.d.ts +3 -3
- package/dist/components/core/Accordion/Accordion.js +21 -17
- package/dist/components/core/Accordion/Accordion.types.d.ts +35 -1
- package/dist/components/core/Accordion/AccordionBody.js +2 -1
- package/dist/components/core/Accordion/AccordionContext.d.ts +3 -0
- package/dist/components/core/Accordion/AccordionContext.js +15 -0
- package/dist/components/core/Accordion/AccordionItem.js +12 -8
- package/dist/components/core/Accordion/AccordionTrigger.js +7 -4
- package/dist/components/core/Accordion/index.d.ts +2 -2
- package/dist/components/core/Alert/Alert.animations.js +1 -0
- package/dist/components/core/Alert/Alert.js +4 -4
- package/dist/components/core/Alert/Alert.theme.js +0 -5
- package/dist/components/core/Alert/Alert.types.d.ts +0 -8
- package/dist/components/core/Alert/index.d.ts +1 -1
- package/dist/components/core/AlertDialog/AlertDialog.js +15 -1
- package/dist/components/core/Avatar/Avatar.js +58 -14
- package/dist/components/core/Avatar/Avatar.types.d.ts +26 -1
- package/dist/components/core/AvatarGroup/AvatarGroup.animations.js +1 -0
- package/dist/components/core/AvatarGroup/AvatarGroup.js +1 -0
- package/dist/components/core/Badge/Badge.animations.js +1 -0
- package/dist/components/core/Badge/Badge.js +6 -6
- package/dist/components/core/Badge/Badge.theme.js +32 -28
- package/dist/components/core/Badge/Badge.types.d.ts +12 -1
- package/dist/components/core/Breadcrumbs/Breadcrumbs.js +8 -2
- package/dist/components/core/Button/Button.js +23 -17
- package/dist/components/core/Button/Button.ripple.js +1 -4
- package/dist/components/core/Button/Button.theme.d.ts +0 -2
- package/dist/components/core/Button/Button.theme.js +16 -92
- package/dist/components/core/Button/Button.types.d.ts +5 -6
- package/dist/components/core/Calendar/Calendar.animations.js +1 -0
- package/dist/components/core/Calendar/Calendar.js +87 -4
- package/dist/components/core/Calendar/CalendarMini/CalendarMini.animations.js +1 -0
- package/dist/components/core/Calendar/CalendarMini/CalendarMini.js +3 -1
- package/dist/components/core/Card/Card.js +9 -2
- package/dist/components/core/Card/Card.theme.js +3 -1
- package/dist/components/core/Card/Card.types.d.ts +8 -0
- package/dist/components/core/CardStack/CardStack.js +1 -0
- package/dist/components/core/Carousel/Carousel.js +1 -0
- package/dist/components/core/Carousel/CarouselBody.js +5 -2
- package/dist/components/core/Carousel/CarouselContext.js +1 -0
- package/dist/components/core/Carousel/CarouselNext.js +1 -0
- package/dist/components/core/Carousel/CarouselPrevious.js +1 -0
- package/dist/components/core/CommandPalette/CommandItem.js +1 -0
- package/dist/components/core/CommandPalette/CommandPalette.animations.js +1 -0
- package/dist/components/core/CommandPalette/CommandPalette.js +55 -11
- package/dist/components/core/CommandPalette/CommandPalette.theme.js +3 -1
- package/dist/components/core/CommandPalette/CommandPalette.types.d.ts +8 -0
- package/dist/components/core/ContextMenu/ContextMenu.js +27 -5
- package/dist/components/core/ContextMenu/ContextMenu.theme.js +8 -7
- package/dist/components/core/ContextMenu/ContextMenu.types.d.ts +17 -0
- package/dist/components/core/ContextMenu/ContextMenuBody.js +11 -5
- package/dist/components/core/ContextMenu/ContextMenuContext.js +1 -0
- package/dist/components/core/ContextMenu/ContextMenuItem.js +17 -7
- package/dist/components/core/ContextMenu/ContextMenuLabel.js +1 -0
- package/dist/components/core/ContextMenu/ContextMenuSeparator.js +1 -0
- package/dist/components/core/ContextMenu/ContextMenuSub.js +4 -3
- package/dist/components/core/ContextMenu/ContextMenuSubBody.js +7 -3
- package/dist/components/core/ContextMenu/ContextMenuSubTrigger.js +3 -2
- package/dist/components/core/ContextMenu/ContextMenuTrigger.js +8 -0
- package/dist/components/core/DotSeparator/DotSeparator.js +1 -0
- package/dist/components/core/DragDrop/DragDrop.js +50 -31
- package/dist/components/core/Drawer/Drawer.animations.js +9 -8
- package/dist/components/core/Drawer/Drawer.d.ts +3 -3
- package/dist/components/core/Drawer/Drawer.js +14 -15
- package/dist/components/core/Drawer/Drawer.theme.js +8 -6
- package/dist/components/core/Drawer/Drawer.types.d.ts +8 -0
- package/dist/components/core/Drawer/DrawerBody.js +2 -1
- package/dist/components/core/Drawer/DrawerContext.d.ts +3 -0
- package/dist/components/core/Drawer/DrawerContext.js +15 -0
- package/dist/components/core/Drawer/DrawerFooter.js +2 -1
- package/dist/components/core/Drawer/DrawerHeader.js +3 -2
- package/dist/components/core/Drawer/DrawerSubtitle.js +2 -1
- package/dist/components/core/Drawer/DrawerTitle.js +2 -1
- package/dist/components/core/Dropdown/Dropdown.js +23 -9
- package/dist/components/core/Dropdown/Dropdown.theme.js +4 -3
- package/dist/components/core/Dropdown/Dropdown.types.d.ts +8 -0
- package/dist/components/core/Dropdown/DropdownContext.js +1 -0
- package/dist/components/core/Dropdown/DropdownItem.js +1 -0
- package/dist/components/core/Dropdown/DropdownMenu.js +22 -22
- package/dist/components/core/Dropdown/DropdownSection.js +1 -0
- package/dist/components/core/Dropdown/DropdownSeparator.js +1 -0
- package/dist/components/core/Dropdown/DropdownTrigger.js +21 -1
- package/dist/components/core/HeroCard/HeroCard.js +1 -0
- package/dist/components/core/HeroCard/HeroCard.theme.js +1 -1
- package/dist/components/core/ImagePlaceholder/ImagePlaceholder.js +11 -2
- package/dist/components/core/ImagePlaceholder/ImagePlaceholder.theme.js +2 -2
- package/dist/components/core/Link/Link.d.ts +1 -1
- package/dist/components/core/Link/Link.js +58 -29
- package/dist/components/core/Link/Link.types.d.ts +25 -8
- package/dist/components/core/Masonry/Masonry.js +87 -75
- package/dist/components/core/Masonry/Masonry.theme.js +10 -4
- package/dist/components/core/MenuItem/MenuItem.js +17 -1
- package/dist/components/core/MenuItem/MenuItem.theme.js +6 -2
- package/dist/components/core/Message/Message.js +2 -1
- package/dist/components/core/Message/MessageActions.js +1 -0
- package/dist/components/core/Message/MessageAudio.js +2 -1
- package/dist/components/core/Message/MessageAvatar.js +1 -0
- package/dist/components/core/Message/MessageBody.js +1 -0
- package/dist/components/core/Message/MessageContext.js +1 -0
- package/dist/components/core/Message/MessageFile.js +1 -0
- package/dist/components/core/Message/MessageImage.js +1 -0
- package/dist/components/core/Message/MessageList.js +1 -0
- package/dist/components/core/Message/MessageReactions.js +1 -0
- package/dist/components/core/Message/MessageStatusIndicator.js +3 -2
- package/dist/components/core/Message/MessageTimestamp.js +1 -0
- package/dist/components/core/Message/TypeWriter.d.ts +1 -1
- package/dist/components/core/Message/TypeWriter.js +74 -9
- package/dist/components/core/Modal/Modal.animations.d.ts +1 -1
- package/dist/components/core/Modal/Modal.animations.js +10 -25
- package/dist/components/core/Modal/Modal.d.ts +3 -5
- package/dist/components/core/Modal/Modal.js +15 -15
- package/dist/components/core/Modal/Modal.theme.js +7 -5
- package/dist/components/core/Modal/Modal.types.d.ts +8 -0
- package/dist/components/core/Modal/ModalBody.js +2 -1
- package/dist/components/core/Modal/ModalContext.d.ts +3 -0
- package/dist/components/core/Modal/ModalContext.js +16 -0
- package/dist/components/core/Modal/ModalFooter.js +3 -2
- package/dist/components/core/Modal/ModalHeader.js +3 -2
- package/dist/components/core/Modal/ModalSubtitle.js +2 -1
- package/dist/components/core/Modal/ModalTitle.js +2 -1
- package/dist/components/core/ModalStack/ModalStack.animations.js +1 -0
- package/dist/components/core/ModalStack/ModalStack.js +2 -1
- package/dist/components/core/ModalStack/ModalStackModal.js +18 -10
- package/dist/components/core/NavItem/NavItem.js +15 -3
- package/dist/components/core/OfflineIndicator/OfflineIndicator.js +1 -0
- package/dist/components/core/OfflineIndicator/OfflineIndicator.theme.js +1 -1
- package/dist/components/core/PageHeading/PageHeading.js +8 -3
- package/dist/components/core/PageHeading/PageHeading.theme.js +1 -1
- package/dist/components/core/PageHeading/PageHeading.types.d.ts +12 -1
- package/dist/components/core/PageHeading/PageHeadingBackButton.js +3 -2
- package/dist/components/core/Pagination/Pagination.js +8 -2
- package/dist/components/core/Pagination/Pagination.theme.d.ts +2 -10
- package/dist/components/core/Pagination/Pagination.types.d.ts +11 -1
- package/dist/components/core/Pill/Pill.animations.js +2 -11
- package/dist/components/core/Pill/Pill.js +14 -5
- package/dist/components/core/Pill/Pill.theme.js +8 -8
- package/dist/components/core/Popover/Popover.js +6 -5
- package/dist/components/core/Popover/Popover.theme.js +4 -2
- package/dist/components/core/Popover/Popover.types.d.ts +8 -0
- package/dist/components/core/Popover/PopoverBody.js +19 -21
- package/dist/components/core/Popover/PopoverContext.js +1 -0
- package/dist/components/core/Popover/PopoverTrigger.js +1 -0
- package/dist/components/core/Progress/Progress.js +1 -0
- package/dist/components/core/Rating/Rating.js +13 -5
- package/dist/components/core/ScrollArea/ScrollArea.js +1 -0
- package/dist/components/core/ScrollArea/smooth/SmoothScrollEngine.d.ts +1 -0
- package/dist/components/core/ScrollArea/smooth/SmoothScrollEngine.js +14 -3
- package/dist/components/core/ScrollArea/smooth/SnapPointDetector.js +1 -0
- package/dist/components/core/ScrollArea/smooth/useSmoothScroll.js +1 -0
- package/dist/components/core/Segmented/Segmented.js +3 -2
- package/dist/components/core/Segmented/SegmentedItem.js +2 -1
- package/dist/components/core/Separator/Separator.js +1 -0
- package/dist/components/core/Sidebar/Sidebar.js +1 -0
- package/dist/components/core/Sidebar/SidebarCard.js +1 -0
- package/dist/components/core/Sidebar/SidebarContent.js +1 -0
- package/dist/components/core/Sidebar/SidebarContext.js +1 -0
- package/dist/components/core/Sidebar/SidebarFooter.js +1 -0
- package/dist/components/core/Sidebar/SidebarHeader.js +1 -0
- package/dist/components/core/Sidebar/SidebarLogo.js +1 -0
- package/dist/components/core/Sidebar/SidebarMobileTrigger.js +1 -0
- package/dist/components/core/Sidebar/SidebarNav.js +3 -1
- package/dist/components/core/Sidebar/SidebarNavGroup.js +1 -0
- package/dist/components/core/Sidebar/SidebarSearch.js +1 -0
- package/dist/components/core/Sidebar/SidebarToggle.js +1 -0
- package/dist/components/core/Sidebar/SidebarUserProfile.js +1 -0
- package/dist/components/core/SlidingNumber/SlidingNumber.js +3 -1
- package/dist/components/core/Sortable/Sortable.animations.js +1 -0
- package/dist/components/core/Sortable/Sortable.js +1 -0
- package/dist/components/core/Spinner/Spinner.js +1 -0
- package/dist/components/core/Tabs/Tabs.animations.js +1 -0
- package/dist/components/core/Tabs/Tabs.js +1 -0
- package/dist/components/core/Tabs/Tabs.theme.js +3 -3
- package/dist/components/core/Tabs/TabsBody.js +1 -0
- package/dist/components/core/Tabs/TabsContext.js +1 -0
- package/dist/components/core/Tabs/TabsList.js +1 -0
- package/dist/components/core/Tabs/TabsTrigger.js +34 -10
- package/dist/components/core/Tag/Tag.js +2 -1
- package/dist/components/core/Tag/Tag.theme.js +2 -2
- package/dist/components/core/Toast/Toast.animations.d.ts +3 -2
- package/dist/components/core/Toast/Toast.animations.js +20 -17
- package/dist/components/core/Toast/Toast.js +42 -20
- package/dist/components/core/Toast/Toast.theme.js +5 -8
- package/dist/components/core/Toast/Toast.types.d.ts +30 -20
- package/dist/components/core/Toast/ToastProvider.js +5 -1
- package/dist/components/core/Toast/index.d.ts +1 -1
- package/dist/components/core/Toast/useToast.js +5 -6
- package/dist/components/core/Tooltip/Tooltip.animations.js +19 -53
- package/dist/components/core/Tooltip/Tooltip.d.ts +1 -1
- package/dist/components/core/Tooltip/Tooltip.js +39 -18
- package/dist/components/core/Tooltip/Tooltip.theme.js +4 -2
- package/dist/components/core/Tooltip/Tooltip.types.d.ts +8 -0
- package/dist/components/core/Tree/Tree.animations.d.ts +1 -2
- package/dist/components/core/Tree/Tree.animations.js +20 -58
- package/dist/components/core/Tree/Tree.js +7 -5
- package/dist/components/data-display/DescriptionList/DescriptionList.js +1 -0
- package/dist/components/data-display/Feed/Feed.js +1 -0
- package/dist/components/data-display/GanttChart/GanttChart.d.ts +2 -3
- package/dist/components/data-display/GanttChart/GanttChart.js +5 -21
- package/dist/components/data-display/GanttChart/GanttChartContext.d.ts +5 -0
- package/dist/components/data-display/GanttChart/GanttChartContext.js +26 -0
- package/dist/components/data-display/GanttChart/GanttChartPanel.js +2 -1
- package/dist/components/data-display/GanttChart/GanttDependencyArrows.js +2 -1
- package/dist/components/data-display/GanttChart/GanttGroupBar.js +2 -1
- package/dist/components/data-display/GanttChart/GanttMilestone.js +2 -1
- package/dist/components/data-display/GanttChart/GanttSplitter.js +2 -1
- package/dist/components/data-display/GanttChart/GanttTableGroupRow.js +2 -1
- package/dist/components/data-display/GanttChart/GanttTableHeader.js +2 -1
- package/dist/components/data-display/GanttChart/GanttTablePanel.js +2 -1
- package/dist/components/data-display/GanttChart/GanttTableTaskRow.js +2 -1
- package/dist/components/data-display/GanttChart/GanttTaskBar.js +2 -1
- package/dist/components/data-display/GanttChart/GanttTaskContextMenu.js +2 -1
- package/dist/components/data-display/GanttChart/GanttTimelineGrid.js +2 -1
- package/dist/components/data-display/GanttChart/GanttTimelineHeader.js +2 -1
- package/dist/components/data-display/GanttChart/GanttToolbar.js +2 -1
- package/dist/components/data-display/GanttChart/hooks/useGanttDates.js +1 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttDrag.js +1 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttLayout.js +1 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.js +1 -0
- package/dist/components/data-display/KPI/KPI.js +1 -0
- package/dist/components/data-display/Metric/Metric.js +2 -2
- package/dist/components/data-display/Metric/Metric.theme.js +2 -14
- package/dist/components/data-display/Metric/Metric.types.d.ts +1 -3
- package/dist/components/data-display/Table/Table.animations.js +1 -0
- package/dist/components/data-display/Table/Table.d.ts +2 -7
- package/dist/components/data-display/Table/Table.js +14 -14
- package/dist/components/data-display/Table/Table.types.d.ts +2 -0
- package/dist/components/data-display/Table/TableActions.js +3 -2
- package/dist/components/data-display/Table/TableActionsMenu.js +1 -0
- package/dist/components/data-display/Table/TableBody.js +1 -0
- package/dist/components/data-display/Table/TableCell.d.ts +1 -1
- package/dist/components/data-display/Table/TableCell.js +8 -3
- package/dist/components/data-display/Table/TableColumnManager.js +1 -0
- package/dist/components/data-display/Table/TableContext.d.ts +11 -0
- package/dist/components/data-display/Table/TableContext.js +21 -0
- package/dist/components/data-display/Table/TableDeclarative.js +3 -2
- package/dist/components/data-display/Table/TableFilter.js +9 -5
- package/dist/components/data-display/Table/TableHeader.js +2 -1
- package/dist/components/data-display/Table/TablePagination.js +1 -0
- package/dist/components/data-display/Table/TableRow.js +1 -0
- package/dist/components/data-display/Table/TableSelectionHeader.js +4 -2
- package/dist/components/data-display/Table/hooks/useTableColumns.js +1 -0
- package/dist/components/data-display/Table/hooks/useTableExpansion.js +1 -0
- package/dist/components/data-display/Table/hooks/useTableFilter.js +1 -0
- package/dist/components/data-display/Table/hooks/useTablePagination.js +1 -0
- package/dist/components/data-display/Table/hooks/useTableSelection.js +1 -0
- package/dist/components/data-display/Table/index.js +1 -2
- package/dist/components/data-display/Timeline/Timeline.animations.js +1 -0
- package/dist/components/data-display/Timeline/Timeline.d.ts +2 -2
- package/dist/components/data-display/Timeline/Timeline.js +5 -10
- package/dist/components/data-display/Timeline/Timeline.theme.d.ts +2 -24
- package/dist/components/data-display/Timeline/Timeline.types.d.ts +25 -1
- package/dist/components/data-display/Timeline/TimelineContent.js +2 -1
- package/dist/components/data-display/Timeline/TimelineContext.d.ts +3 -0
- package/dist/components/data-display/Timeline/TimelineContext.js +16 -0
- package/dist/components/data-display/Timeline/TimelineItem.js +5 -4
- package/dist/components/data-display/Timeline/TimelineMarker.js +2 -1
- package/dist/components/effects/AIOrb/hooks/useOrbState.js +1 -0
- package/dist/components/effects/AIOrb/variants/Aura/Aura.js +13 -4
- package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.d.ts +7 -0
- package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.impl.d.ts +3 -0
- package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.impl.js +176 -0
- package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.js +29 -161
- package/dist/components/effects/AIOrb/variants/Liquid/Liquid.d.ts +8 -0
- package/dist/components/effects/AIOrb/variants/Liquid/Liquid.impl.d.ts +3 -0
- package/dist/components/effects/AIOrb/variants/Liquid/Liquid.impl.js +140 -0
- package/dist/components/effects/AIOrb/variants/Liquid/Liquid.js +29 -127
- package/dist/components/effects/Animated/Animated.d.ts +2 -2
- package/dist/components/effects/Animated/Animated.js +5 -6
- package/dist/components/effects/Animated/AnimatedContext.d.ts +3 -0
- package/dist/components/effects/Animated/AnimatedContext.js +12 -0
- package/dist/components/effects/Animated/AnimatedItem.js +2 -1
- package/dist/components/effects/Aurora/Aurora.js +27 -5
- package/dist/components/effects/ColorPanels/ColorPanels.d.ts +8 -0
- package/dist/components/effects/ColorPanels/ColorPanels.js +66 -0
- package/dist/components/effects/ColorPanels/ColorPanels.shaders.d.ts +12 -0
- package/dist/components/effects/ColorPanels/ColorPanels.shaders.js +218 -0
- package/dist/components/effects/ColorPanels/ColorPanels.types.d.ts +29 -0
- package/dist/components/effects/ColorPanels/ColorPanels.types.js +3 -0
- package/dist/components/effects/ColorPanels/index.d.ts +2 -0
- package/dist/components/effects/CustomCursor/CustomCursor.js +1 -0
- package/dist/components/effects/CustomCursor/CustomCursor.theme.js +0 -2
- package/dist/components/effects/Dithering/Dithering.d.ts +10 -0
- package/dist/components/effects/Dithering/Dithering.js +62 -0
- package/dist/components/effects/Dithering/Dithering.shaders.d.ts +11 -0
- package/dist/components/effects/Dithering/Dithering.shaders.js +166 -0
- package/dist/components/effects/Dithering/Dithering.types.d.ts +31 -0
- package/dist/components/effects/Dithering/Dithering.types.js +17 -0
- package/dist/components/effects/Dithering/index.d.ts +3 -0
- package/dist/components/effects/DotPattern/DotPattern.js +1 -0
- package/dist/components/effects/FlutedGlass/FlutedGlass.d.ts +9 -0
- package/dist/components/effects/FlutedGlass/FlutedGlass.js +80 -0
- package/dist/components/effects/FlutedGlass/FlutedGlass.shaders.d.ts +12 -0
- package/dist/components/effects/FlutedGlass/FlutedGlass.shaders.js +335 -0
- package/dist/components/effects/FlutedGlass/FlutedGlass.types.d.ts +61 -0
- package/dist/components/effects/FlutedGlass/FlutedGlass.types.js +16 -0
- package/dist/components/effects/FlutedGlass/index.d.ts +3 -0
- package/dist/components/effects/GemSmoke/GemSmoke.d.ts +8 -0
- package/dist/components/effects/GemSmoke/GemSmoke.js +70 -0
- package/dist/components/effects/GemSmoke/GemSmoke.shaders.d.ts +18 -0
- package/dist/components/effects/GemSmoke/GemSmoke.shaders.js +181 -0
- package/dist/components/effects/GemSmoke/GemSmoke.types.d.ts +37 -0
- package/dist/components/effects/GemSmoke/GemSmoke.types.js +10 -0
- package/dist/components/effects/GemSmoke/index.d.ts +3 -0
- package/dist/components/effects/GlassEffect/GlassEffect.js +1 -1
- package/dist/components/effects/GlassSurface/GlassSurface.js +2 -16
- package/dist/components/effects/GodRays/GodRays.d.ts +8 -0
- package/dist/components/effects/GodRays/GodRays.js +68 -0
- package/dist/components/effects/GodRays/GodRays.shaders.d.ts +10 -0
- package/dist/components/effects/GodRays/GodRays.shaders.js +128 -0
- package/dist/components/effects/GodRays/GodRays.types.d.ts +25 -0
- package/dist/components/effects/GodRays/GodRays.types.js +3 -0
- package/dist/components/effects/GodRays/index.d.ts +2 -0
- package/dist/components/effects/GradientMesh/GradientMesh.d.ts +9 -0
- package/dist/components/effects/GradientMesh/GradientMesh.js +56 -0
- package/dist/components/effects/GradientMesh/GradientMesh.shaders.d.ts +15 -0
- package/dist/components/effects/GradientMesh/GradientMesh.shaders.js +127 -0
- package/dist/components/effects/GradientMesh/GradientMesh.types.d.ts +17 -0
- package/dist/components/effects/GradientMesh/GradientMesh.types.js +3 -0
- package/dist/components/effects/GradientMesh/index.d.ts +2 -0
- package/dist/components/effects/GrainGradient/GrainGradient.d.ts +9 -0
- package/dist/components/effects/GrainGradient/GrainGradient.js +62 -0
- package/dist/components/effects/GrainGradient/GrainGradient.shaders.d.ts +17 -0
- package/dist/components/effects/GrainGradient/GrainGradient.shaders.js +168 -0
- package/dist/components/effects/GrainGradient/GrainGradient.types.d.ts +26 -0
- package/dist/components/effects/GrainGradient/GrainGradient.types.js +9 -0
- package/dist/components/effects/GrainGradient/index.d.ts +3 -0
- package/dist/components/effects/GridPattern/GridPattern.js +1 -0
- package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.d.ts +10 -0
- package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.js +78 -0
- package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.shaders.d.ts +22 -0
- package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.shaders.js +239 -0
- package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.types.d.ts +52 -0
- package/dist/components/effects/HalftoneCmyk/index.d.ts +2 -0
- package/dist/components/effects/HalftoneDots/HalftoneDots.d.ts +9 -0
- package/dist/components/effects/HalftoneDots/HalftoneDots.js +68 -0
- package/dist/components/effects/HalftoneDots/HalftoneDots.shaders.d.ts +13 -0
- package/dist/components/effects/HalftoneDots/HalftoneDots.shaders.js +296 -0
- package/dist/components/effects/HalftoneDots/HalftoneDots.types.d.ts +43 -0
- package/dist/components/effects/HalftoneDots/HalftoneDots.types.js +12 -0
- package/dist/components/effects/HalftoneDots/index.d.ts +3 -0
- package/dist/components/effects/ImageDithering/ImageDithering.d.ts +9 -0
- package/dist/components/effects/ImageDithering/ImageDithering.js +68 -0
- package/dist/components/effects/ImageDithering/ImageDithering.shaders.d.ts +12 -0
- package/dist/components/effects/ImageDithering/ImageDithering.shaders.js +117 -0
- package/dist/components/effects/ImageDithering/ImageDithering.types.d.ts +30 -0
- package/dist/components/effects/ImageDithering/ImageDithering.types.js +8 -0
- package/dist/components/effects/ImageDithering/index.d.ts +3 -0
- package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.js +1 -0
- package/dist/components/effects/InteractiveCharacters/characters/BlobCharacter.js +1 -0
- package/dist/components/effects/InteractiveCharacters/characters/SmallCharacter.js +1 -0
- package/dist/components/effects/InteractiveCharacters/characters/TallCharacter.js +1 -0
- package/dist/components/effects/InteractiveCharacters/hooks/useBlink.js +1 -0
- package/dist/components/effects/InteractiveCharacters/hooks/useIdleAnimation.js +1 -0
- package/dist/components/effects/InteractiveCharacters/hooks/useMouseTracking.js +1 -0
- package/dist/components/effects/LiquidMetal/LiquidMetal.d.ts +9 -0
- package/dist/components/effects/LiquidMetal/LiquidMetal.js +61 -0
- package/dist/components/effects/LiquidMetal/LiquidMetal.shaders.d.ts +19 -0
- package/dist/components/effects/LiquidMetal/LiquidMetal.shaders.js +202 -0
- package/dist/components/effects/LiquidMetal/LiquidMetal.types.d.ts +34 -0
- package/dist/components/effects/LiquidMetal/LiquidMetal.types.js +9 -0
- package/dist/components/effects/LiquidMetal/index.d.ts +3 -0
- package/dist/components/effects/MagneticElement/MagneticElement.js +1 -0
- package/dist/components/effects/MeshGradient/MeshGradient.d.ts +25 -0
- package/dist/components/effects/MeshGradient/MeshGradient.js +47 -0
- package/dist/components/effects/MeshGradient/MeshGradient.types.d.ts +40 -0
- package/dist/components/effects/MeshGradient/MeshGradient.utils.d.ts +83 -0
- package/dist/components/effects/MeshGradient/MeshGradient.utils.js +112 -0
- package/dist/components/effects/MeshGradient/index.d.ts +4 -0
- package/dist/components/effects/Metaballs/Metaballs.d.ts +8 -0
- package/dist/components/effects/Metaballs/Metaballs.js +59 -0
- package/dist/components/effects/Metaballs/Metaballs.shaders.d.ts +10 -0
- package/dist/components/effects/Metaballs/Metaballs.shaders.js +102 -0
- package/dist/components/effects/Metaballs/Metaballs.types.d.ts +16 -0
- package/dist/components/effects/Metaballs/Metaballs.types.js +3 -0
- package/dist/components/effects/Metaballs/index.d.ts +2 -0
- package/dist/components/effects/Neumorphic/InsetCircleButton.js +1 -0
- package/dist/components/effects/Neumorphic/InsetPill.js +1 -0
- package/dist/components/effects/NoiseOverlay/NoiseOverlay.js +1 -0
- package/dist/components/effects/Overlay/Overlay.js +1 -0
- package/dist/components/effects/PaperTexture/PaperTexture.d.ts +9 -0
- package/dist/components/effects/PaperTexture/PaperTexture.js +61 -0
- package/dist/components/effects/PaperTexture/PaperTexture.shaders.d.ts +22 -0
- package/dist/components/effects/PaperTexture/PaperTexture.shaders.js +145 -0
- package/dist/components/effects/PaperTexture/PaperTexture.types.d.ts +19 -0
- package/dist/components/effects/PaperTexture/index.d.ts +2 -0
- package/dist/components/effects/Particles/Particles.js +1 -0
- package/dist/components/effects/Particles/Particles.scene.js +1 -0
- package/dist/components/effects/Preloader/Preloader.js +1 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.js +1 -0
- package/dist/components/effects/PulsingBorder/PulsingBorder.d.ts +27 -0
- package/dist/components/effects/PulsingBorder/PulsingBorder.js +174 -0
- package/dist/components/effects/PulsingBorder/PulsingBorder.shaders.d.ts +14 -0
- package/dist/components/effects/PulsingBorder/PulsingBorder.shaders.js +258 -0
- package/dist/components/effects/PulsingBorder/PulsingBorder.types.d.ts +75 -0
- package/dist/components/effects/PulsingBorder/PulsingBorder.types.js +3 -0
- package/dist/components/effects/PulsingBorder/index.d.ts +2 -0
- package/dist/components/effects/ScrollReveal/ScrollReveal.js +1 -0
- package/dist/components/effects/Shimmer/Shimmer.d.ts +21 -0
- package/dist/components/effects/Shimmer/Shimmer.js +44 -0
- package/dist/components/effects/Shimmer/Shimmer.types.d.ts +49 -0
- package/dist/components/effects/Shimmer/index.d.ts +2 -0
- package/dist/components/effects/SmokeRing/SmokeRing.d.ts +8 -0
- package/dist/components/effects/SmokeRing/SmokeRing.js +62 -0
- package/dist/components/effects/SmokeRing/SmokeRing.shaders.d.ts +14 -0
- package/dist/components/effects/SmokeRing/SmokeRing.shaders.js +130 -0
- package/dist/components/effects/SmokeRing/SmokeRing.types.d.ts +22 -0
- package/dist/components/effects/SmokeRing/SmokeRing.types.js +3 -0
- package/dist/components/effects/SmokeRing/index.d.ts +2 -0
- package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.d.ts +9 -0
- package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.js +59 -0
- package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.shaders.d.ts +14 -0
- package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.shaders.js +129 -0
- package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.types.d.ts +23 -0
- package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.types.js +3 -0
- package/dist/components/effects/StaticGradientMesh/index.d.ts +2 -0
- package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.d.ts +9 -0
- package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.js +66 -0
- package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.shaders.d.ts +13 -0
- package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.shaders.js +169 -0
- package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.types.d.ts +29 -0
- package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.types.js +3 -0
- package/dist/components/effects/StaticRadialGradient/index.d.ts +2 -0
- package/dist/components/effects/StripePattern/StripePattern.js +1 -0
- package/dist/components/effects/TiltCard/TiltCard.glow.js +1 -0
- package/dist/components/effects/TiltCard/TiltCard.js +1 -0
- package/dist/components/effects/Water/Water.d.ts +9 -0
- package/dist/components/effects/Water/Water.js +65 -0
- package/dist/components/effects/Water/Water.shaders.d.ts +11 -0
- package/dist/components/effects/Water/Water.shaders.js +123 -0
- package/dist/components/effects/Water/Water.types.d.ts +25 -0
- package/dist/components/effects/Water/index.d.ts +2 -0
- package/dist/components/effects/index.d.ts +40 -0
- package/dist/components/effects/index.js +21 -0
- package/dist/components/effects/{AIOrb/variants/Aura → shared/ShaderCanvas}/ShaderCanvas.d.ts +4 -8
- package/dist/components/effects/{AIOrb/variants/Aura → shared/ShaderCanvas}/ShaderCanvas.js +109 -3
- package/dist/components/effects/shared/ShaderCanvas/ShaderCanvas.types.d.ts +18 -0
- package/dist/components/effects/shared/ShaderCanvas/index.d.ts +2 -0
- package/dist/components/effects/shared/bayerMatrices.glsl.d.ts +10 -0
- package/dist/components/effects/shared/bayerMatrices.glsl.js +44 -0
- package/dist/components/effects/shared/imageUV.glsl.d.ts +12 -0
- package/dist/components/effects/shared/imageUV.glsl.js +26 -0
- package/dist/components/effects/shared/index.d.ts +7 -0
- package/dist/components/effects/shared/resolveShaderColor.d.ts +13 -0
- package/dist/components/effects/shared/resolveShaderColor.js +62 -0
- package/dist/components/effects/shared/resolveShaderColor.test.d.ts +1 -0
- package/dist/components/effects/shared/shaderNoise.glsl.d.ts +34 -0
- package/dist/components/effects/shared/shaderNoise.glsl.js +84 -0
- package/dist/components/forms/Checkbox/Checkbox.animations.js +1 -0
- package/dist/components/forms/Checkbox/Checkbox.js +8 -8
- package/dist/components/forms/Checkbox/Checkbox.theme.js +5 -4
- package/dist/components/forms/Checkbox/CheckboxContext.js +1 -0
- package/dist/components/forms/Checkbox/CheckboxGroup.js +4 -1
- package/dist/components/forms/ColorPicker/ColorPicker.js +21 -5
- package/dist/components/forms/ColorPicker/ColorPicker.types.d.ts +8 -0
- package/dist/components/forms/ColorPicker/ColorPicker2DCanvas.js +1 -0
- package/dist/components/forms/ColorPicker/ColorPickerBody.js +3 -2
- package/dist/components/forms/ColorPicker/ColorPickerContext.js +1 -0
- package/dist/components/forms/ColorPicker/ColorPickerEyeDropper.js +1 -0
- package/dist/components/forms/ColorPicker/ColorPickerFormatSelector.js +1 -0
- package/dist/components/forms/ColorPicker/ColorPickerGradient.js +1 -0
- package/dist/components/forms/ColorPicker/ColorPickerHeader.js +1 -0
- package/dist/components/forms/ColorPicker/ColorPickerImage.js +1 -0
- package/dist/components/forms/ColorPicker/ColorPickerInput.js +1 -0
- package/dist/components/forms/ColorPicker/ColorPickerPresets.js +1 -0
- package/dist/components/forms/ColorPicker/ColorPickerSavedColors.js +1 -0
- package/dist/components/forms/ColorPicker/ColorPickerSliders.js +1 -0
- package/dist/components/forms/ColorPicker/ColorPickerSwatch.js +1 -0
- package/dist/components/forms/ColorPicker/ColorPickerTrigger.js +17 -2
- package/dist/components/forms/Combobox/Combobox.js +81 -37
- package/dist/components/forms/Combobox/Combobox.types.d.ts +8 -0
- package/dist/components/forms/DatePicker/DatePicker.animations.js +1 -0
- package/dist/components/forms/DatePicker/DatePicker.d.ts +3 -27
- package/dist/components/forms/DatePicker/DatePicker.js +5 -4
- package/dist/components/forms/DatePicker/DatePicker.theme.js +5 -5
- package/dist/components/forms/DatePicker/DatePicker.types.d.ts +15 -0
- package/dist/components/forms/DatePicker/DatePickerBody.js +26 -21
- package/dist/components/forms/DatePicker/DatePickerContext.d.ts +29 -0
- package/dist/components/forms/DatePicker/DatePickerContext.js +6 -0
- package/dist/components/forms/DatePicker/DatePickerPresets.js +2 -1
- package/dist/components/forms/DatePicker/DatePickerTrigger.js +2 -1
- package/dist/components/forms/DateRangePicker/DateRangePicker.d.ts +3 -23
- package/dist/components/forms/DateRangePicker/DateRangePicker.js +18 -7
- package/dist/components/forms/DateRangePicker/DateRangePicker.theme.js +2 -2
- package/dist/components/forms/DateRangePicker/DateRangePicker.types.d.ts +21 -0
- package/dist/components/forms/DateRangePicker/DateRangePickerBody.js +18 -13
- package/dist/components/forms/DateRangePicker/DateRangePickerContext.d.ts +24 -0
- package/dist/components/forms/DateRangePicker/DateRangePickerContext.js +5 -0
- package/dist/components/forms/DateRangePicker/DateRangePickerPresets.js +2 -1
- package/dist/components/forms/DateRangePicker/DateRangePickerTrigger.js +2 -1
- package/dist/components/forms/FileUpload/FileUpload.js +2 -1
- package/dist/components/forms/FileUpload/FileUploadProgress.js +4 -3
- package/dist/components/forms/Input/Input.js +7 -3
- package/dist/components/forms/Input/Input.theme.js +11 -5
- package/dist/components/forms/Input/Input.types.d.ts +6 -0
- package/dist/components/forms/Input/index.d.ts +1 -0
- package/dist/components/forms/Input/inputMasks.d.ts +24 -0
- package/dist/components/forms/Input/inputMasks.js +61 -5
- package/dist/components/forms/InputAddress/InputAddress.d.ts +5 -0
- package/dist/components/forms/InputAddress/InputAddress.js +95 -13
- package/dist/components/forms/InputAddress/InputAddress.theme.js +4 -4
- package/dist/components/forms/InputAddress/InputAddress.types.d.ts +8 -2
- package/dist/components/forms/InputAddress/index.d.ts +1 -1
- package/dist/components/forms/InputCounter/InputCounter.js +63 -44
- package/dist/components/forms/InputCounter/InputCounter.types.d.ts +6 -0
- package/dist/components/forms/InputCreditCard/InputCreditCard.js +9 -3
- package/dist/components/forms/InputCreditCard/InputCreditCard.theme.js +4 -4
- package/dist/components/forms/InputCreditCard/InputCreditCard.types.d.ts +5 -1
- package/dist/components/forms/InputCreditCard/index.d.ts +1 -0
- package/dist/components/forms/InputDate/InputDate.js +1 -0
- package/dist/components/forms/InputOTP/InputOTP.js +21 -9
- package/dist/components/forms/InputOTP/InputOTP.types.d.ts +7 -1
- package/dist/components/forms/InputTag/InputTag.js +65 -21
- package/dist/components/forms/InputTag/InputTag.theme.js +2 -1
- package/dist/components/forms/InputTag/InputTag.types.d.ts +8 -0
- package/dist/components/forms/Mention/Mention.js +12 -5
- package/dist/components/forms/Mention/Mention.theme.js +2 -1
- package/dist/components/forms/Mention/Mention.types.d.ts +8 -0
- package/dist/components/forms/Mention/Mention.utils.js +1 -0
- package/dist/components/forms/Radio/Radio.animations.js +1 -0
- package/dist/components/forms/Radio/Radio.js +5 -1
- package/dist/components/forms/Radio/Radio.theme.js +9 -7
- package/dist/components/forms/Radio/RadioContext.js +1 -0
- package/dist/components/forms/Radio/RadioGroup.js +4 -1
- package/dist/components/forms/RichTextEditor/RichTextEditor.animations.js +1 -0
- package/dist/components/forms/RichTextEditor/RichTextEditor.js +70 -60
- package/dist/components/forms/RichTextEditor/RichTextEditor.theme.js +3 -2
- package/dist/components/forms/RichTextEditor/RichTextEditor.types.d.ts +14 -0
- package/dist/components/forms/Select/Select.animations.js +17 -25
- package/dist/components/forms/Select/Select.d.ts +3 -1
- package/dist/components/forms/Select/Select.js +55 -21
- package/dist/components/forms/Select/Select.theme.js +2 -2
- package/dist/components/forms/Select/Select.types.d.ts +28 -1
- package/dist/components/forms/Select/useSelectState.js +7 -0
- package/dist/components/forms/SelectableCard/SelectableCard.js +1 -0
- package/dist/components/forms/SelectableCard/SelectableCardContext.js +1 -0
- package/dist/components/forms/SelectableCard/SelectableCardGroup.js +1 -0
- package/dist/components/forms/Signature/Signature.js +13 -3
- package/dist/components/forms/Signature/Signature.types.d.ts +6 -0
- package/dist/components/forms/Slider/Slider.js +2 -1
- package/dist/components/forms/Switch/Switch.js +9 -2
- package/dist/components/forms/Switch/Switch.theme.js +5 -3
- package/dist/components/forms/Textarea/Textarea.js +7 -3
- package/dist/components/forms/Textarea/Textarea.types.d.ts +6 -0
- package/dist/components/forms/TimePicker/TimePicker.d.ts +2 -12
- package/dist/components/forms/TimePicker/TimePicker.js +8 -5
- package/dist/components/forms/TimePicker/TimePicker.theme.js +4 -5
- package/dist/components/forms/TimePicker/TimePicker.types.d.ts +15 -0
- package/dist/components/forms/TimePicker/TimePickerContent.js +12 -7
- package/dist/components/forms/TimePicker/TimePickerContext.d.ts +15 -0
- package/dist/components/forms/TimePicker/TimePickerContext.js +6 -0
- package/dist/components/forms/TimePicker/TimePickerTrigger.js +18 -4
- package/dist/components/forms/TimePicker/WheelColumn.js +1 -0
- package/dist/components/forms/TimePicker/useWheelPicker.js +1 -0
- package/dist/components/forms/forms.theme.d.ts +1 -0
- package/dist/components/forms/forms.theme.js +55 -18
- package/dist/components/forms/index.d.ts +1 -0
- package/dist/components/forms/index.js +6 -2
- package/dist/components/generative/GenerativeView.js +1 -0
- package/dist/components/generative/actions.test.d.ts +1 -0
- package/dist/components/generative/registry.js +24 -6
- package/dist/components/generative/schema.generated.js +450 -35
- package/dist/components/generative/streaming.test.d.ts +1 -0
- package/dist/components/generative/tools.test.d.ts +1 -0
- package/dist/components/generative/useGenerativeStream.js +1 -0
- package/dist/components/generative/validate.d.ts +1 -1
- package/dist/components/generative/validate.js +121 -29
- package/dist/components/generative/validate.test.d.ts +1 -0
- package/dist/components/layout/AppShell/AppShell.js +1 -0
- package/dist/components/layout/AppShell/AppShellContext.js +1 -0
- package/dist/components/layout/AppShell/AppShellMain.js +1 -0
- package/dist/components/layout/AppShell/AppShellRightPanel.js +1 -0
- package/dist/components/layout/AppShell/AppShellSidebar.js +1 -0
- package/dist/components/layout/FormLayout/FormLayout.js +1 -1
- package/dist/components/layout/FormLayout/FormLayoutSection.js +1 -0
- package/dist/components/layout/Grid/Grid.d.ts +1 -1
- package/dist/components/layout/Grid/Grid.js +11 -3
- package/dist/components/layout/Grid/Grid.types.d.ts +15 -1
- package/dist/components/layout/Grid/index.d.ts +1 -1
- package/dist/components/layout/Section/Section.js +1 -0
- package/dist/components/layout/Stack/Stack.d.ts +1 -1
- package/dist/components/layout/Stack/Stack.js +11 -3
- package/dist/components/layout/Stack/Stack.types.d.ts +9 -2
- package/dist/components/layout/index.d.ts +0 -1
- package/dist/components/layout/index.js +0 -2
- package/dist/generative.schema.json +450 -35
- package/dist/hooks/useClickOutside.js +1 -0
- package/dist/hooks/useDarkMode.js +1 -0
- package/dist/hooks/useFocusTrap.js +1 -0
- package/dist/hooks/useIsClient.js +1 -0
- package/dist/hooks/useMediaQuery.js +1 -0
- package/dist/hooks/useNetworkStatus.d.ts +0 -4
- package/dist/hooks/useNetworkStatus.js +2 -5
- package/dist/hooks/useOverlay.js +1 -0
- package/dist/hooks/useScaleBackground.js +1 -0
- package/dist/hooks/useSelectPortal.js +1 -0
- package/dist/hooks/useSlidingNumber.js +1 -0
- package/dist/hooks/useStreamingSSE.d.ts +0 -5
- package/dist/hooks/useStreamingSSE.js +1 -5
- package/dist/hooks/useTypewriter.js +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +189 -180
- package/dist/registry.json +1945 -681
- package/dist/styles.css +1 -1
- package/dist/test/render.d.ts +11 -0
- package/dist/test/setup.d.ts +1 -0
- package/dist/theme/SurfaceContext.d.ts +98 -0
- package/dist/theme/SurfaceContext.js +114 -0
- package/dist/theme/ThemeContext.js +19 -0
- package/dist/theme/animations.d.ts +75 -0
- package/dist/theme/animations.js +132 -0
- package/dist/theme/index.d.ts +5 -0
- package/dist/tools.json +458 -35
- package/dist/utils/actionQueue.d.ts +0 -4
- package/dist/utils/actionQueue.js +1 -4
- package/dist/utils/cn.js +21 -1
- package/dist/utils/colorUtils.d.ts +31 -1
- package/dist/utils/colorUtils.js +49 -4
- package/dist/utils/dateUtils.js +21 -16
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/performanceMonitor.js +1 -0
- package/dist/utils/smoothScrollUtils.js +1 -0
- package/package.json +23 -5
- package/src/global.scss +87 -0
- package/src/styles/theme.css +263 -156
- package/dist/components/charts/shared/BarRenderer/index.d.ts +0 -3
- package/dist/components/charts/shared/ChartContainer/ChartContainer.d.ts +0 -85
- package/dist/components/charts/shared/ChartContainer/index.d.ts +0 -3
- package/dist/components/charts/shared/ChartLegend/ChartLegendContent.d.ts +0 -7
- package/dist/components/charts/shared/ChartLegend/ChartLegendContent.js +0 -18
- package/dist/components/charts/shared/LineRenderer/index.d.ts +0 -2
- package/dist/components/core/Popover/Popover.animations.js +0 -13
- package/dist/components/layout/PageLayout/PageLayout.d.ts +0 -7
- package/dist/components/layout/PageLayout/PageLayout.js +0 -51
- package/dist/components/layout/PageLayout/PageLayout.theme.d.ts +0 -3
- package/dist/components/layout/PageLayout/PageLayout.theme.js +0 -39
- package/dist/components/layout/PageLayout/PageLayout.types.d.ts +0 -84
- package/dist/components/layout/PageLayout/PageLayoutContent.d.ts +0 -3
- package/dist/components/layout/PageLayout/PageLayoutContent.js +0 -14
- package/dist/components/layout/PageLayout/PageLayoutHeader.d.ts +0 -3
- package/dist/components/layout/PageLayout/PageLayoutHeader.js +0 -12
- package/dist/components/layout/PageLayout/PageLayoutSidebar.d.ts +0 -3
- package/dist/components/layout/PageLayout/PageLayoutSidebar.js +0 -14
- package/dist/components/layout/PageLayout/index.d.ts +0 -3
- /package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.d.ts +0 -0
- /package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.theme.d.ts +0 -0
- /package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.theme.js +0 -0
- /package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.types.d.ts +0 -0
- /package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/index.d.ts +0 -0
|
@@ -4,7 +4,7 @@ const tagTheme = {
|
|
|
4
4
|
"text-[var(--color-text-primary)]",
|
|
5
5
|
sizes: {
|
|
6
6
|
sm: "text-xs px-2 py-0.5",
|
|
7
|
-
md: "text-sm px-2 py-0.5",
|
|
7
|
+
md: "text-sm px-2 pl-2.5 py-0.5",
|
|
8
8
|
},
|
|
9
9
|
// No left margin here: the avatar/icon's left inset is owned by the tag's
|
|
10
10
|
// `pl-1` (applied when there's leading content), not by a per-size `ml-*`.
|
|
@@ -20,7 +20,7 @@ const tagTheme = {
|
|
|
20
20
|
md: "",
|
|
21
21
|
},
|
|
22
22
|
disabledStyle: "opacity-50 cursor-not-allowed",
|
|
23
|
-
removeButtonStyle: "inline-flex items-center justify-center rounded-full p-1 " +
|
|
23
|
+
removeButtonStyle: "inline-flex items-center justify-center rounded-full p-0.5 -ml-1 " +
|
|
24
24
|
"hover:bg-[var(--color-surface-hover)] " +
|
|
25
25
|
"text-[var(--color-text-muted)] hover:text-[var(--color-text-primary)] " +
|
|
26
26
|
"transition-all duration-300 cursor-pointer focus:outline-none " +
|
|
@@ -9,16 +9,17 @@ export declare const toastAnimations: {
|
|
|
9
9
|
scale: number;
|
|
10
10
|
transition: {
|
|
11
11
|
duration: number;
|
|
12
|
+
ease: "easeIn";
|
|
12
13
|
};
|
|
13
14
|
};
|
|
14
15
|
transition: {
|
|
15
16
|
type: "spring";
|
|
16
17
|
stiffness: number;
|
|
17
18
|
damping: number;
|
|
18
|
-
mass: number;
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
|
-
|
|
21
|
+
import { ToastPosition } from "./Toast.types";
|
|
22
|
+
export declare const getToastStackingAnimation: (index: number, totalToasts: number, isExpanded: boolean, expandedY?: number, position?: ToastPosition) => {
|
|
22
23
|
y?: undefined;
|
|
23
24
|
scale?: undefined;
|
|
24
25
|
zIndex?: undefined;
|
|
@@ -1,33 +1,36 @@
|
|
|
1
|
+
import '../../../theme/ThemeContext.js';
|
|
2
|
+
import '../../../theme/SurfaceContext.js';
|
|
3
|
+
import { springs } from '../../../theme/animations.js';
|
|
4
|
+
|
|
1
5
|
const toastAnimations = {
|
|
2
|
-
// Initial state when toast appears
|
|
6
|
+
// Initial state when toast appears (subtle slide up + scale in)
|
|
3
7
|
initial: {
|
|
4
8
|
opacity: 0,
|
|
5
|
-
y:
|
|
6
|
-
scale: 0.
|
|
9
|
+
y: 24,
|
|
10
|
+
scale: 0.94,
|
|
7
11
|
},
|
|
8
|
-
// Exit animation when toast is dismissed
|
|
12
|
+
// Exit animation when toast is dismissed (quick fade out + scale down)
|
|
9
13
|
exit: {
|
|
10
14
|
opacity: 0,
|
|
11
|
-
scale: 0.
|
|
12
|
-
transition: { duration: 0.
|
|
13
|
-
},
|
|
14
|
-
// Spring transition configuration
|
|
15
|
-
transition: {
|
|
16
|
-
type: "spring",
|
|
17
|
-
stiffness: 500,
|
|
18
|
-
damping: 30,
|
|
19
|
-
mass: 1,
|
|
15
|
+
scale: 0.94,
|
|
16
|
+
transition: { duration: 0.15, ease: "easeIn" },
|
|
20
17
|
},
|
|
18
|
+
// Premium spring transition configuration
|
|
19
|
+
transition: springs.premium,
|
|
21
20
|
};
|
|
22
21
|
// Stacking animation utilities
|
|
23
|
-
const getToastStackingAnimation = (index, totalToasts, isExpanded, expandedY) => {
|
|
22
|
+
const getToastStackingAnimation = (index, totalToasts, isExpanded, expandedY, position) => {
|
|
23
|
+
var _a;
|
|
24
24
|
if (totalToasts === 1)
|
|
25
25
|
return {};
|
|
26
|
+
const isBottom = (_a = position === null || position === void 0 ? void 0 : position.startsWith("bottom")) !== null && _a !== void 0 ? _a : false;
|
|
27
|
+
const directionMultiplier = isBottom ? -1 : 1;
|
|
26
28
|
const maxVisible = 3; // Show max 3 toasts in stack
|
|
27
29
|
const stackIndex = Math.min(index, maxVisible - 1);
|
|
28
30
|
if (isExpanded) {
|
|
31
|
+
const yVal = expandedY !== undefined ? expandedY * directionMultiplier : index * 80 * directionMultiplier;
|
|
29
32
|
return {
|
|
30
|
-
y:
|
|
33
|
+
y: yVal,
|
|
31
34
|
scale: 1,
|
|
32
35
|
zIndex: totalToasts - index,
|
|
33
36
|
opacity: 1,
|
|
@@ -37,14 +40,14 @@ const getToastStackingAnimation = (index, totalToasts, isExpanded, expandedY) =>
|
|
|
37
40
|
// Stacked state - compress toasts
|
|
38
41
|
if (index >= maxVisible) {
|
|
39
42
|
return {
|
|
40
|
-
y: (maxVisible - 1) * 10,
|
|
43
|
+
y: (maxVisible - 1) * 10 * directionMultiplier,
|
|
41
44
|
scale: 1 - (maxVisible - 1) * 0.08,
|
|
42
45
|
zIndex: 0,
|
|
43
46
|
opacity: 0.3,
|
|
44
47
|
};
|
|
45
48
|
}
|
|
46
49
|
return {
|
|
47
|
-
y: stackIndex * 10,
|
|
50
|
+
y: stackIndex * 10 * directionMultiplier,
|
|
48
51
|
scale: 1 - stackIndex * 0.08,
|
|
49
52
|
zIndex: totalToasts - index,
|
|
50
53
|
opacity: 1 - stackIndex * 0.25,
|
|
@@ -1,18 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
3
|
import React__default, { useRef, useCallback, useEffect, useMemo } from 'react';
|
|
3
4
|
import { useReducedMotion, motion } from 'motion/react';
|
|
4
5
|
import { cn } from '../../../utils/cn.js';
|
|
6
|
+
import { useSurfaceElevation, SurfaceProvider, surfaceClasses } from '../../../theme/SurfaceContext.js';
|
|
5
7
|
import { toastTheme } from './Toast.theme.js';
|
|
6
|
-
import {
|
|
8
|
+
import { getToastStackingAnimation, toastAnimations } from './Toast.animations.js';
|
|
7
9
|
import { ArrowPathIcon, InformationCircleIcon, XMarkIcon } from '@heroicons/react/24/solid';
|
|
8
|
-
import {
|
|
10
|
+
import { Link } from '../Link/Link.js';
|
|
9
11
|
|
|
10
12
|
const isToastAction = (action) => typeof action === "object" &&
|
|
11
13
|
action !== null &&
|
|
12
14
|
"label" in action &&
|
|
13
15
|
"onClick" in action;
|
|
14
|
-
const Toast = React__default.forwardRef(({ toast, className, onDismiss, index = 0, isExpanded = false, totalToasts = 1, onMouseEnter, onMouseLeave, onHeightChange, expandedOffset, darkMode = false, ...props }, ref) => {
|
|
15
|
-
|
|
16
|
+
const Toast = React__default.forwardRef(({ toast, className, onDismiss, index = 0, isExpanded = false, totalToasts = 1, onMouseEnter, onMouseLeave, onHeightChange, expandedOffset, darkMode = false, elevation, lift, position, ...props }, ref) => {
|
|
17
|
+
// Grounded overlay: a toast portals to a page-level toaster, so it paints a FIXED rung 5
|
|
18
|
+
// (a punchy overlay shade) rather than inheriting whatever surface its trigger sat in.
|
|
19
|
+
const surfaceLevel = useSurfaceElevation({ baseRung: 5, ground: true, elevation, lift });
|
|
16
20
|
const internalRef = useRef(null);
|
|
17
21
|
const setRefs = useCallback((node) => {
|
|
18
22
|
internalRef.current = node;
|
|
@@ -24,19 +28,38 @@ const Toast = React__default.forwardRef(({ toast, className, onDismiss, index =
|
|
|
24
28
|
}
|
|
25
29
|
}, [ref]);
|
|
26
30
|
const shouldReduceMotion = useReducedMotion();
|
|
27
|
-
const { id,
|
|
31
|
+
const { id, state = "default", color, title, subtitle, icon, action, children, duration = 5000, dismissible = true, } = toast;
|
|
28
32
|
const isTextOnly = !subtitle && !action && !children;
|
|
33
|
+
// Per-toast live-region role, driven by severity: `danger`/`warning` are
|
|
34
|
+
// urgent (role="alert" ~ implicit aria-live="assertive"), everything else
|
|
35
|
+
// is a routine update (role="status" ~ implicit aria-live="polite"). The
|
|
36
|
+
// shared toaster container (ToastProvider) keeps its own
|
|
37
|
+
// `aria-live="polite"` and does NOT get a role — the two announcement
|
|
38
|
+
// mechanisms would otherwise double up. Instead, each toast is inserted
|
|
39
|
+
// as a fully-formed subtree (role included at mount, not added after),
|
|
40
|
+
// so assistive tech announces it exactly once, using this more specific
|
|
41
|
+
// role/urgency rather than the container's generic "polite" default.
|
|
42
|
+
const toastRole = color === "danger" || color === "warning" ? "alert" : "status";
|
|
29
43
|
const defaultIcon = state === "loading" ? (jsx(motion.div, { animate: { rotate: 360 }, transition: { repeat: Infinity, duration: 1, ease: "linear" }, children: jsx(ArrowPathIcon, { className: "w-5 h-5" }) })) : (jsx(InformationCircleIcon, { className: "w-5 h-5" }));
|
|
30
44
|
const resolvedIcon = icon || defaultIcon;
|
|
31
|
-
// Auto-dismiss after duration
|
|
45
|
+
// Auto-dismiss after duration (pauses when hovered/expanded, then RESUMES the remaining
|
|
46
|
+
// time rather than restarting the full countdown — otherwise intermittent hover keeps
|
|
47
|
+
// resetting the timer and the toast never dismisses).
|
|
48
|
+
const remainingRef = useRef(duration);
|
|
32
49
|
useEffect(() => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return
|
|
38
|
-
|
|
39
|
-
|
|
50
|
+
remainingRef.current = duration;
|
|
51
|
+
}, [duration]);
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (!(duration > 0 && dismissible) || isExpanded)
|
|
54
|
+
return;
|
|
55
|
+
const start = Date.now();
|
|
56
|
+
const remaining = remainingRef.current;
|
|
57
|
+
const timer = setTimeout(() => onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(id), remaining);
|
|
58
|
+
return () => {
|
|
59
|
+
clearTimeout(timer);
|
|
60
|
+
remainingRef.current = Math.max(0, remaining - (Date.now() - start));
|
|
61
|
+
};
|
|
62
|
+
}, [duration, dismissible, id, onDismiss, isExpanded]);
|
|
40
63
|
// Report measured height to parent
|
|
41
64
|
useEffect(() => {
|
|
42
65
|
if (internalRef.current && onHeightChange) {
|
|
@@ -55,7 +78,7 @@ const Toast = React__default.forwardRef(({ toast, className, onDismiss, index =
|
|
|
55
78
|
}
|
|
56
79
|
}
|
|
57
80
|
};
|
|
58
|
-
const stackingStyle = getToastStackingAnimation(index, totalToasts, isExpanded, expandedOffset);
|
|
81
|
+
const stackingStyle = getToastStackingAnimation(index, totalToasts, isExpanded, expandedOffset, position);
|
|
59
82
|
const animateValue = useMemo(() => {
|
|
60
83
|
var _a, _b, _c, _d;
|
|
61
84
|
return ({
|
|
@@ -77,16 +100,15 @@ const Toast = React__default.forwardRef(({ toast, className, onDismiss, index =
|
|
|
77
100
|
position: (index > 0
|
|
78
101
|
? "absolute"
|
|
79
102
|
: "relative"),
|
|
80
|
-
top: index > 0 ? 0 : undefined,
|
|
103
|
+
top: index > 0 && !(position === null || position === void 0 ? void 0 : position.startsWith("bottom")) ? 0 : undefined,
|
|
104
|
+
bottom: index > 0 && (position === null || position === void 0 ? void 0 : position.startsWith("bottom")) ? 0 : undefined,
|
|
81
105
|
left: index > 0 ? 0 : undefined,
|
|
82
106
|
width: index > 0 ? "100%" : undefined,
|
|
83
107
|
});
|
|
84
|
-
}, [stackingStyle.zIndex, index]);
|
|
85
|
-
const toastNode = (
|
|
108
|
+
}, [stackingStyle.zIndex, index, position]);
|
|
109
|
+
const toastNode = (jsx(motion.div, { ref: setRefs, role: toastRole, layout: true, initial: shouldReduceMotion ? false : toastAnimations.initial, animate: animateValue, exit: shouldReduceMotion
|
|
86
110
|
? { ...toastAnimations.exit, transition: { duration: 0 } }
|
|
87
|
-
: toastAnimations.exit, transition: shouldReduceMotion ? { duration: 0 } : toastAnimations.transition, className: cn(
|
|
88
|
-
(typeof title === "string" ? (jsx("div", { className: cn(toastTheme.titleStyle, !isTextOnly && "font-semibold"), children: title })) : (title)), subtitle &&
|
|
89
|
-
(typeof subtitle === "string" ? (jsx("div", { className: toastTheme.subtitleStyle, children: subtitle })) : (subtitle)), action && (jsx("div", { className: "mt-4", children: isToastAction(action) ? (jsx(Button, { variant: "link", color: "primary", onClick: handleActionClick, children: action.label })) : (action) })), children] }), dismissible && (jsx("button", { type: "button", className: cn(toastTheme.closeButtonStyle, !isTextOnly && "mt-0.5"), onClick: handleDismiss, "aria-label": "Dismiss notification", children: jsx(XMarkIcon, { className: "size-5" }) }))] }));
|
|
111
|
+
: toastAnimations.exit, transition: shouldReduceMotion ? { duration: 0 } : toastAnimations.transition, className: cn(surfaceClasses(surfaceLevel, { translucent: true, shadow: true }), toastTheme.baseStyle, isTextOnly && "items-center", "pointer-events-auto", index > 0 && !isExpanded && "absolute top-0 left-0", className), style: styleValue, children: jsxs(SurfaceProvider, { level: surfaceLevel, children: [jsx("div", { className: cn(toastTheme.iconStyle, !isTextOnly && "mt-0.5"), children: resolvedIcon }), jsxs("div", { className: "flex-1 min-w-0", children: [title && jsx("div", { className: toastTheme.titleStyle, children: title }), subtitle && (jsx("div", { className: toastTheme.subtitleStyle, children: subtitle })), action && (jsx("div", { className: "mt-4", children: isToastAction(action) ? (jsx(Link, { color: "primary", size: "sm", onClick: handleActionClick, children: action.label })) : (action) })), children] }), dismissible && (jsx("button", { type: "button", className: cn(toastTheme.closeButtonStyle, !isTextOnly && "mt-0.5"), onClick: handleDismiss, "aria-label": "Dismiss notification", children: jsx(XMarkIcon, { className: "size-5" }) }))] }) }));
|
|
90
112
|
if (darkMode) {
|
|
91
113
|
return jsx("div", { className: "dark", children: toastNode });
|
|
92
114
|
}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
const toastTheme = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
default: "border border-[var(--color-border)] dark:border-white/10",
|
|
7
|
-
glass: "glass-effect",
|
|
8
|
-
},
|
|
2
|
+
// bg + drop shadow come from the relative-elevation engine (surfaceClasses) at runtime;
|
|
3
|
+
// keep the frosted blur + ring + border + radius here.
|
|
4
|
+
baseStyle: "flex items-start gap-3 rounded-[var(--toast-radius)] px-4 py-3 backdrop-blur-sm w-full ring-[0.5px] ring-white dark:ring-white/10 " +
|
|
5
|
+
"text-[var(--color-text-primary)] border border-[var(--color-border)]",
|
|
9
6
|
iconStyle: "flex-shrink-0",
|
|
10
|
-
titleStyle: "text-sm text-[var(--color-text-primary)]",
|
|
7
|
+
titleStyle: "text-sm text-[var(--color-text-primary)] font-semibold",
|
|
11
8
|
subtitleStyle: "text-sm mt-1 text-[var(--color-text-secondary)]",
|
|
12
9
|
closeButtonStyle: "flex-shrink-0 size-5 opacity-70 hover:opacity-100 transition-opacity cursor-pointer",
|
|
13
10
|
containerStyle: "fixed z-50 pointer-events-none",
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { HTMLAttributes, ReactNode } from "react";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*/
|
|
5
|
-
export type ToastVariant = "default" | "glass";
|
|
2
|
+
import type { SurfaceElevation } from "../../../theme/SurfaceContext";
|
|
3
|
+
import type { SemanticColor } from "../../../utils/colorUtils";
|
|
6
4
|
/**
|
|
7
5
|
* Toast state (e.g., loading indicator)
|
|
8
6
|
*/
|
|
@@ -14,7 +12,6 @@ export interface ToastAction {
|
|
|
14
12
|
}
|
|
15
13
|
export interface ToastTheme {
|
|
16
14
|
baseStyle: string;
|
|
17
|
-
variants: Record<ToastVariant, string>;
|
|
18
15
|
iconStyle: string;
|
|
19
16
|
titleStyle: string;
|
|
20
17
|
subtitleStyle: string;
|
|
@@ -23,8 +20,14 @@ export interface ToastTheme {
|
|
|
23
20
|
}
|
|
24
21
|
export interface ToastData {
|
|
25
22
|
id: string;
|
|
26
|
-
variant?: ToastVariant;
|
|
27
23
|
state?: ToastState;
|
|
24
|
+
/**
|
|
25
|
+
* Semantic severity of the toast. Drives the per-toast live-region role
|
|
26
|
+
* (`danger`/`warning` -> `role="alert"`, everything else -> `role="status"`)
|
|
27
|
+
* as well as `useToast()`'s convenience-method icon color.
|
|
28
|
+
* @default "neutral"
|
|
29
|
+
*/
|
|
30
|
+
color?: SemanticColor;
|
|
28
31
|
title?: ReactNode;
|
|
29
32
|
subtitle?: ReactNode;
|
|
30
33
|
icon?: ReactNode;
|
|
@@ -32,7 +35,6 @@ export interface ToastData {
|
|
|
32
35
|
children?: ReactNode;
|
|
33
36
|
duration?: number;
|
|
34
37
|
dismissible?: boolean;
|
|
35
|
-
onDismiss?: () => void;
|
|
36
38
|
}
|
|
37
39
|
export interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
|
|
38
40
|
/** Toast data */
|
|
@@ -55,12 +57,21 @@ export interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"
|
|
|
55
57
|
onHeightChange?: (id: string, height: number) => void;
|
|
56
58
|
/** Pre-calculated y-offset for expanded state */
|
|
57
59
|
expandedOffset?: number;
|
|
60
|
+
/** Toast position */
|
|
61
|
+
position?: ToastPosition;
|
|
58
62
|
/**
|
|
59
63
|
* Enable dark mode styling. When true, applies the `dark` class so components
|
|
60
64
|
* use light colors for visibility.
|
|
61
65
|
* @default false
|
|
62
66
|
*/
|
|
63
67
|
darkMode?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Pin the surface elevation rung (overrides the automatic relative lift).
|
|
70
|
+
* A rung number (1–8) or a semantic alias ("surface"/"raised"/"overlay"…).
|
|
71
|
+
*/
|
|
72
|
+
elevation?: SurfaceElevation;
|
|
73
|
+
/** `false` opts out of the relative lift — paints at the toast's base rung. */
|
|
74
|
+
lift?: boolean;
|
|
64
75
|
}
|
|
65
76
|
export interface ToastProviderProps {
|
|
66
77
|
children: ReactNode;
|
|
@@ -80,7 +91,6 @@ export interface ToastContextValue {
|
|
|
80
91
|
removeAllToasts: () => void;
|
|
81
92
|
}
|
|
82
93
|
export interface UseToastOptions {
|
|
83
|
-
variant?: ToastVariant;
|
|
84
94
|
state?: ToastState;
|
|
85
95
|
duration?: number;
|
|
86
96
|
dismissible?: boolean;
|
|
@@ -89,23 +99,23 @@ export interface UseToastOptions {
|
|
|
89
99
|
icon?: ReactNode;
|
|
90
100
|
}
|
|
91
101
|
export interface UseToastReturn {
|
|
92
|
-
toast: (title:
|
|
93
|
-
subtitle?:
|
|
102
|
+
toast: (title: ReactNode, options?: UseToastOptions & {
|
|
103
|
+
subtitle?: ReactNode;
|
|
94
104
|
}) => string;
|
|
95
|
-
success: (title:
|
|
96
|
-
subtitle?:
|
|
105
|
+
success: (title: ReactNode, options?: UseToastOptions & {
|
|
106
|
+
subtitle?: ReactNode;
|
|
97
107
|
}) => string;
|
|
98
|
-
error: (title:
|
|
99
|
-
subtitle?:
|
|
108
|
+
error: (title: ReactNode, options?: UseToastOptions & {
|
|
109
|
+
subtitle?: ReactNode;
|
|
100
110
|
}) => string;
|
|
101
|
-
warning: (title:
|
|
102
|
-
subtitle?:
|
|
111
|
+
warning: (title: ReactNode, options?: UseToastOptions & {
|
|
112
|
+
subtitle?: ReactNode;
|
|
103
113
|
}) => string;
|
|
104
|
-
info: (title:
|
|
105
|
-
subtitle?:
|
|
114
|
+
info: (title: ReactNode, options?: UseToastOptions & {
|
|
115
|
+
subtitle?: ReactNode;
|
|
106
116
|
}) => string;
|
|
107
|
-
loading: (title:
|
|
108
|
-
subtitle?:
|
|
117
|
+
loading: (title: ReactNode, options?: Omit<UseToastOptions, "state"> & {
|
|
118
|
+
subtitle?: ReactNode;
|
|
109
119
|
}) => string;
|
|
110
120
|
dismiss: (id: string) => void;
|
|
111
121
|
dismissAll: () => void;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
3
|
import React__default, { createContext, useState, useCallback, useMemo, useContext } from 'react';
|
|
3
4
|
import { AnimatePresence } from 'motion/react';
|
|
@@ -92,7 +93,10 @@ const ToastProvider = ({ children, position = 'top-right', maxToasts = 5, defaul
|
|
|
92
93
|
removeAllToasts,
|
|
93
94
|
}), [toasts, addToast, removeToast, removeAllToasts]);
|
|
94
95
|
const portalTarget = isClient ? document.body : null;
|
|
95
|
-
return (jsxs(ToastContext.Provider, { value: contextValue, children: [children, portalTarget ? createPortal(jsx("div", { className: cn(toastTheme.containerStyle, positionStyles[position]), "aria-live": "polite", "aria-label": "Notifications", children: jsx("div", { className: "relative w-80", style: {
|
|
96
|
+
return (jsxs(ToastContext.Provider, { value: contextValue, children: [children, portalTarget ? createPortal(jsx("div", { className: cn(toastTheme.containerStyle, positionStyles[position]), "aria-live": "polite", "aria-label": "Notifications", children: jsx("div", { className: "relative w-80", style: {
|
|
97
|
+
paddingBottom: !position.startsWith("bottom") && isHovered && toasts.length > 1 ? totalExpandedHeight : undefined,
|
|
98
|
+
paddingTop: position.startsWith("bottom") && isHovered && toasts.length > 1 ? totalExpandedHeight : undefined,
|
|
99
|
+
}, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, children: jsx(AnimatePresence, { mode: "popLayout", children: toasts.map((toast, index) => (jsx(Toast, { toast: toast, onDismiss: removeToast, index: index, isExpanded: isHovered, totalToasts: toasts.length, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onHeightChange: handleToastHeight, expandedOffset: getExpandedOffset(index), darkMode: darkMode, position: position }, toast.id))) }) }) }), portalTarget) : null] }));
|
|
96
100
|
};
|
|
97
101
|
const useToastContext = () => {
|
|
98
102
|
const context = useContext(ToastContext);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Toast } from './Toast';
|
|
2
2
|
export { ToastProvider, useToastContext } from './ToastProvider';
|
|
3
3
|
export { useToast } from './useToast';
|
|
4
|
-
export type { ToastProps, ToastData, ToastProviderProps, ToastTheme,
|
|
4
|
+
export type { ToastProps, ToastData, ToastProviderProps, ToastTheme, UseToastReturn, UseToastOptions, } from './Toast.types';
|
|
5
5
|
export { toastTheme } from './Toast.theme';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import React__default, { useCallback } from 'react';
|
|
2
3
|
import { InformationCircleIcon, ExclamationTriangleIcon, XCircleIcon, CheckCircleIcon } from '@heroicons/react/24/solid';
|
|
3
4
|
import { useToastContext } from './ToastProvider.js';
|
|
@@ -12,7 +13,6 @@ const useToast = () => {
|
|
|
12
13
|
const toast = useCallback((title, options) => {
|
|
13
14
|
return addToast({
|
|
14
15
|
title,
|
|
15
|
-
variant: options === null || options === void 0 ? void 0 : options.variant,
|
|
16
16
|
state: (options === null || options === void 0 ? void 0 : options.state) || 'default',
|
|
17
17
|
subtitle: options === null || options === void 0 ? void 0 : options.subtitle,
|
|
18
18
|
duration: options === null || options === void 0 ? void 0 : options.duration,
|
|
@@ -24,8 +24,8 @@ const useToast = () => {
|
|
|
24
24
|
const success = useCallback((title, options) => {
|
|
25
25
|
return addToast({
|
|
26
26
|
title,
|
|
27
|
-
variant: options === null || options === void 0 ? void 0 : options.variant,
|
|
28
27
|
state: (options === null || options === void 0 ? void 0 : options.state) || 'default',
|
|
28
|
+
color: 'success',
|
|
29
29
|
subtitle: options === null || options === void 0 ? void 0 : options.subtitle,
|
|
30
30
|
duration: options === null || options === void 0 ? void 0 : options.duration,
|
|
31
31
|
dismissible: options === null || options === void 0 ? void 0 : options.dismissible,
|
|
@@ -36,8 +36,8 @@ const useToast = () => {
|
|
|
36
36
|
const error = useCallback((title, options) => {
|
|
37
37
|
return addToast({
|
|
38
38
|
title,
|
|
39
|
-
variant: options === null || options === void 0 ? void 0 : options.variant,
|
|
40
39
|
state: (options === null || options === void 0 ? void 0 : options.state) || 'default',
|
|
40
|
+
color: 'danger',
|
|
41
41
|
subtitle: options === null || options === void 0 ? void 0 : options.subtitle,
|
|
42
42
|
duration: options === null || options === void 0 ? void 0 : options.duration,
|
|
43
43
|
dismissible: options === null || options === void 0 ? void 0 : options.dismissible,
|
|
@@ -48,8 +48,8 @@ const useToast = () => {
|
|
|
48
48
|
const warning = useCallback((title, options) => {
|
|
49
49
|
return addToast({
|
|
50
50
|
title,
|
|
51
|
-
variant: options === null || options === void 0 ? void 0 : options.variant,
|
|
52
51
|
state: (options === null || options === void 0 ? void 0 : options.state) || 'default',
|
|
52
|
+
color: 'warning',
|
|
53
53
|
subtitle: options === null || options === void 0 ? void 0 : options.subtitle,
|
|
54
54
|
duration: options === null || options === void 0 ? void 0 : options.duration,
|
|
55
55
|
dismissible: options === null || options === void 0 ? void 0 : options.dismissible,
|
|
@@ -60,8 +60,8 @@ const useToast = () => {
|
|
|
60
60
|
const info = useCallback((title, options) => {
|
|
61
61
|
return addToast({
|
|
62
62
|
title,
|
|
63
|
-
variant: options === null || options === void 0 ? void 0 : options.variant,
|
|
64
63
|
state: (options === null || options === void 0 ? void 0 : options.state) || 'default',
|
|
64
|
+
color: 'primary',
|
|
65
65
|
subtitle: options === null || options === void 0 ? void 0 : options.subtitle,
|
|
66
66
|
duration: options === null || options === void 0 ? void 0 : options.duration,
|
|
67
67
|
dismissible: options === null || options === void 0 ? void 0 : options.dismissible,
|
|
@@ -73,7 +73,6 @@ const useToast = () => {
|
|
|
73
73
|
var _a, _b;
|
|
74
74
|
return addToast({
|
|
75
75
|
title,
|
|
76
|
-
variant: options === null || options === void 0 ? void 0 : options.variant,
|
|
77
76
|
state: 'loading',
|
|
78
77
|
subtitle: options === null || options === void 0 ? void 0 : options.subtitle,
|
|
79
78
|
duration: (_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 0, // Loading toasts don't auto-dismiss by default
|
|
@@ -1,64 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
1
|
+
"use client";
|
|
2
|
+
import '../../../theme/ThemeContext.js';
|
|
3
|
+
import '../../../theme/SurfaceContext.js';
|
|
4
|
+
import { getOverlayMenuVariants } from '../../../theme/animations.js';
|
|
5
|
+
|
|
7
6
|
/**
|
|
8
7
|
* Base animation variants for the tooltip - optimized for smooth positioning
|
|
9
8
|
*/
|
|
10
|
-
const baseTooltipVariants = {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
},
|
|
15
|
-
animate: {
|
|
16
|
-
opacity: 1,
|
|
17
|
-
transition: { ...springConfig, duration: 0.2 }
|
|
18
|
-
},
|
|
19
|
-
exit: {
|
|
20
|
-
opacity: 0,
|
|
21
|
-
transition: { duration: 0.15, damping: 35 }
|
|
22
|
-
}
|
|
23
|
-
};
|
|
9
|
+
const baseTooltipVariants = getOverlayMenuVariants('top', {
|
|
10
|
+
scale: 0.98,
|
|
11
|
+
shift: 4,
|
|
12
|
+
});
|
|
24
13
|
/**
|
|
25
14
|
* Get animation variants based on tooltip placement
|
|
26
15
|
* @param placement - Tooltip placement (top, right, bottom, left)
|
|
27
16
|
* @returns Animation variants for the specified placement
|
|
28
17
|
*/
|
|
29
18
|
const getTooltipVariants = (placement) => {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
animate: { ...baseTooltipVariants.animate, y: 0 },
|
|
36
|
-
exit: { ...baseTooltipVariants.exit, y: 2 }
|
|
37
|
-
};
|
|
38
|
-
case 'right':
|
|
39
|
-
return {
|
|
40
|
-
...baseTooltipVariants,
|
|
41
|
-
initial: { ...baseTooltipVariants.initial, x: -2 },
|
|
42
|
-
animate: { ...baseTooltipVariants.animate, x: 0 },
|
|
43
|
-
exit: { ...baseTooltipVariants.exit, x: -2 }
|
|
44
|
-
};
|
|
45
|
-
case 'bottom':
|
|
46
|
-
return {
|
|
47
|
-
...baseTooltipVariants,
|
|
48
|
-
initial: { ...baseTooltipVariants.initial, y: -2 },
|
|
49
|
-
animate: { ...baseTooltipVariants.animate, y: 0 },
|
|
50
|
-
exit: { ...baseTooltipVariants.exit, y: -2 }
|
|
51
|
-
};
|
|
52
|
-
case 'left':
|
|
53
|
-
return {
|
|
54
|
-
...baseTooltipVariants,
|
|
55
|
-
initial: { ...baseTooltipVariants.initial, x: 2 },
|
|
56
|
-
animate: { ...baseTooltipVariants.animate, x: 0 },
|
|
57
|
-
exit: { ...baseTooltipVariants.exit, x: 2 }
|
|
58
|
-
};
|
|
59
|
-
default:
|
|
60
|
-
return baseTooltipVariants;
|
|
61
|
-
}
|
|
19
|
+
const side = placement.split('-')[0];
|
|
20
|
+
return getOverlayMenuVariants(side, {
|
|
21
|
+
scale: 0.98,
|
|
22
|
+
shift: 4,
|
|
23
|
+
});
|
|
62
24
|
};
|
|
63
25
|
/**
|
|
64
26
|
* Spring animation configuration options
|
|
@@ -69,7 +31,11 @@ const tooltipSpringConfig = {
|
|
|
69
31
|
stiffness: 200,
|
|
70
32
|
damping: 25
|
|
71
33
|
},
|
|
72
|
-
medium:
|
|
34
|
+
medium: {
|
|
35
|
+
type: "spring",
|
|
36
|
+
stiffness: 380,
|
|
37
|
+
damping: 35
|
|
38
|
+
},
|
|
73
39
|
bouncy: {
|
|
74
40
|
type: "spring",
|
|
75
41
|
stiffness: 400,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TooltipProps } from "./Tooltip.types";
|
|
2
2
|
declare const Tooltip: {
|
|
3
|
-
({ content, children, placement, delay, disabled, className, triggerClassName, maxWidth, minWidth, showOnFocus, wrapText, id, theme: themeOverrides, "aria-label": ariaLabel, role, offset, darkMode, }: TooltipProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
({ content, children, placement, delay, disabled, className, triggerClassName, maxWidth, minWidth, showOnFocus, wrapText, id, theme: themeOverrides, "aria-label": ariaLabel, role, offset, darkMode, elevation, lift, }: TooltipProps): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
displayName: string;
|
|
5
5
|
};
|
|
6
6
|
export { Tooltip };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import React__default, { useState, useRef, useCallback, useEffect } from 'react';
|
|
3
|
+
import React__default, { useId, useState, useRef, useCallback, useEffect } from 'react';
|
|
3
4
|
import { useReducedMotion, AnimatePresence, motion } from 'motion/react';
|
|
4
5
|
import { createPortal } from 'react-dom';
|
|
5
6
|
import { cn } from '../../../utils/cn.js';
|
|
@@ -8,8 +9,17 @@ import { getTooltipVariants } from './Tooltip.animations.js';
|
|
|
8
9
|
import { useSelectPortal } from '../../../hooks/useSelectPortal.js';
|
|
9
10
|
import { useIsClient } from '../../../hooks/useIsClient.js';
|
|
10
11
|
import { useDarkMode } from '../../../hooks/useDarkMode.js';
|
|
12
|
+
import { useSurfaceElevation, SurfaceProvider, surfaceClasses } from '../../../theme/SurfaceContext.js';
|
|
11
13
|
|
|
12
|
-
const Tooltip = ({ content, children, placement = "top", delay = 300, disabled = false, className, triggerClassName, maxWidth = "360px", minWidth = "fit-content", showOnFocus = true, wrapText = false, id, theme: themeOverrides, "aria-label": ariaLabel, role = "tooltip", offset = 8, darkMode = false, }) => {
|
|
14
|
+
const Tooltip = ({ content, children, placement = "top", delay = 300, disabled = false, className, triggerClassName, maxWidth = "360px", minWidth = "fit-content", showOnFocus = true, wrapText = false, id, theme: themeOverrides, "aria-label": ariaLabel, role = "tooltip", offset = 8, darkMode = false, elevation, lift, }) => {
|
|
15
|
+
// Relative elevation: lift above the host surface (overlay base = 5).
|
|
16
|
+
const surfaceLevel = useSurfaceElevation({ baseRung: 5, offset: 2, elevation, lift });
|
|
17
|
+
// Stable id for the aria-describedby linkage — auto-generated via useId()
|
|
18
|
+
// (CLAUDE.md §9: IDs from useId(), never Math.random()) so the tooltip
|
|
19
|
+
// content is always programmatically associated with its trigger, even
|
|
20
|
+
// when the consumer doesn't pass an explicit `id`.
|
|
21
|
+
const generatedId = useId();
|
|
22
|
+
const tooltipId = id || `tooltip-${generatedId}`;
|
|
13
23
|
const [isVisible, setIsVisible] = useState(false);
|
|
14
24
|
const tooltipRef = useRef(null);
|
|
15
25
|
const triggerRef = useRef(null);
|
|
@@ -90,31 +100,42 @@ const Tooltip = ({ content, children, placement = "top", delay = 300, disabled =
|
|
|
90
100
|
? ""
|
|
91
101
|
: "text-ellipsis overflow-hidden whitespace-nowrap";
|
|
92
102
|
const widthClasses = cn(minWidth === "fit-content" ? "w-fit" : "min-w-fit", textOverflowClass);
|
|
93
|
-
const tooltipContent = (jsx(AnimatePresence, { children: isVisible && (jsx(motion.div, { id:
|
|
103
|
+
const tooltipContent = (jsx(AnimatePresence, { children: isVisible && (jsx(motion.div, { id: tooltipId, role: role, ref: handleRef, style: {
|
|
94
104
|
maxWidth,
|
|
95
105
|
minWidth: minWidth !== "fit-content" ? minWidth : undefined,
|
|
96
106
|
width: "max-content",
|
|
97
107
|
...cssVariables,
|
|
98
108
|
top: `${position.top}px`,
|
|
99
109
|
left: `${position.left}px`,
|
|
100
|
-
}, className: cn(theme.baseStyle, widthClasses, className), "aria-hidden": !isVisible, "aria-label": ariaLabel, variants: shouldReduceMotion ? {} : getTooltipVariants(placement), initial: shouldReduceMotion ? undefined : "initial", animate: shouldReduceMotion ? undefined : "animate", exit: shouldReduceMotion ? undefined : "exit", children: content })) }));
|
|
101
|
-
//
|
|
102
|
-
//
|
|
103
|
-
|
|
110
|
+
}, className: cn(surfaceClasses(surfaceLevel, { translucent: true, shadow: false }), theme.baseStyle, widthClasses, className), "aria-hidden": !isVisible, "aria-label": ariaLabel, variants: shouldReduceMotion ? {} : getTooltipVariants(placement), initial: shouldReduceMotion ? undefined : "initial", animate: shouldReduceMotion ? undefined : "animate", exit: shouldReduceMotion ? undefined : "exit", children: jsx(SurfaceProvider, { level: surfaceLevel, children: content }) })) }));
|
|
111
|
+
// The tooltip content must be associated with the actual INTERACTIVE
|
|
112
|
+
// trigger element (e.g. the button being wrapped), not the non-interactive
|
|
113
|
+
// wrapper div — assistive tech resolves aria-describedby from the
|
|
114
|
+
// focused/interactive element, so an ancestor div carrying the attribute
|
|
115
|
+
// has no effect. When the child is a cloneable element, forward both
|
|
116
|
+
// focus/blur (as before, gated on showOnFocus) and aria-describedby
|
|
117
|
+
// directly onto it; only fall back to the wrapper when `children` isn't a
|
|
118
|
+
// valid element to clone (e.g. plain text) and there is no other place to
|
|
119
|
+
// put the attribute.
|
|
120
|
+
const isElementChild = React__default.isValidElement(children);
|
|
121
|
+
const childWithFocusHandlers = isElementChild
|
|
104
122
|
? React__default.cloneElement(children, {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
123
|
+
...(childCanReceiveFocus && {
|
|
124
|
+
onFocus: (e) => {
|
|
125
|
+
var _a, _b;
|
|
126
|
+
handleShowTooltip();
|
|
127
|
+
(_b = (_a = children.props).onFocus) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
128
|
+
},
|
|
129
|
+
onBlur: (e) => {
|
|
130
|
+
var _a, _b;
|
|
131
|
+
handleHideTooltip();
|
|
132
|
+
(_b = (_a = children.props).onBlur) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
133
|
+
},
|
|
134
|
+
}),
|
|
135
|
+
"aria-describedby": isVisible ? tooltipId : undefined,
|
|
115
136
|
})
|
|
116
137
|
: children;
|
|
117
|
-
return (jsxs("div", { className: cn("relative inline-block", triggerClassName), ref: triggerRef, ...triggerHandlers, "aria-describedby":
|
|
138
|
+
return (jsxs("div", { className: cn("relative inline-block", triggerClassName), ref: triggerRef, ...triggerHandlers, "aria-describedby": !isElementChild && isVisible ? tooltipId : undefined, children: [childWithFocusHandlers, isClient &&
|
|
118
139
|
createPortal(jsx("div", { "data-flikkui-portal": "", className: darkMode || isDarkMode ? "dark" : undefined, children: tooltipContent }), document.body)] }));
|
|
119
140
|
};
|
|
120
141
|
// Set display name for dev tools and Storybook
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
const tooltipTheme = {
|
|
2
|
-
// Base style for the tooltip - using fixed positioning for portal rendering
|
|
3
|
-
|
|
2
|
+
// Base style for the tooltip - using fixed positioning for portal rendering.
|
|
3
|
+
// bg comes from the relative-elevation engine (surfaceClasses) at runtime so a
|
|
4
|
+
// tooltip lifts above its host; keep the frosted blur + outline + shadow here.
|
|
5
|
+
baseStyle: "fixed z-[99] rounded-[var(--tooltip-radius)] py-1 px-2 text-xs text-[var(--color-text-primary)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2 pointer-events-none backdrop-blur-lg outline outline-[var(--color-border)] shadow-lg",
|
|
4
6
|
};
|
|
5
7
|
|
|
6
8
|
export { tooltipTheme };
|