@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
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import React__default, { useRef, useState, useCallback, useEffect } from 'react';
|
|
3
|
+
import React__default, { useRef, useState, useCallback, useEffect, useLayoutEffect } from 'react';
|
|
3
4
|
import { motion, AnimatePresence } from 'motion/react';
|
|
4
5
|
import { cn } from '../../../utils/cn.js';
|
|
5
6
|
import { getMasonryTheme } from './Masonry.theme.js';
|
|
6
7
|
|
|
8
|
+
// Arrange BEFORE the browser paints so items never flash full-width in normal flow
|
|
9
|
+
// before being absolutely positioned. Falls back to useEffect on the server (no DOM).
|
|
10
|
+
const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
|
|
7
11
|
const MASONRY_ITEM_INITIAL = { opacity: 0, y: 10 };
|
|
8
12
|
const MASONRY_ITEM_ANIMATE = { opacity: 1, y: 0 };
|
|
9
13
|
const MASONRY_ITEM_EXIT = { opacity: 0, scale: 0.95 };
|
|
@@ -13,63 +17,67 @@ const MASONRY_ITEM_TRANSITION_BASE = {
|
|
|
13
17
|
};
|
|
14
18
|
const Masonry = React__default.forwardRef(({ children, columns = 3, gap = 16, gapBreakpoints, className, style, minColumns = 1, maxColumns = 10, sequential = false, themeOverrides, loading = false, ...props }, ref) => {
|
|
15
19
|
const containerRef = useRef(null);
|
|
16
|
-
const
|
|
20
|
+
const relayoutRef = useRef(() => { });
|
|
17
21
|
const [currentColumns, setCurrentColumns] = useState(typeof columns === 'number' ? columns : 3);
|
|
18
22
|
const [currentGap, setCurrentGap] = useState(gap);
|
|
19
|
-
|
|
23
|
+
// Items stay hidden until the first arrange completes, so there is no full-width
|
|
24
|
+
// flash even on the rare path where the container can't be measured before paint.
|
|
25
|
+
const [isArranged, setIsArranged] = useState(false);
|
|
20
26
|
// Get the theme with any overrides applied
|
|
21
27
|
const theme = getMasonryTheme(themeOverrides);
|
|
22
|
-
//
|
|
28
|
+
// Resolve columns + gap for the current container width. Returns the resolved layout so
|
|
29
|
+
// the caller can arrange immediately with these exact values (React state lags a render
|
|
30
|
+
// behind, which is what let the first arrange run with stale numbers). Also syncs state
|
|
31
|
+
// so the values are available to renders/consumers, but never gates positioning on it.
|
|
23
32
|
const calculateLayout = useCallback(() => {
|
|
24
33
|
if (!containerRef.current)
|
|
25
|
-
return;
|
|
34
|
+
return null;
|
|
26
35
|
// Use getBoundingClientRect for more accurate width measurement
|
|
27
36
|
const containerRect = containerRef.current.getBoundingClientRect();
|
|
28
37
|
const width = Math.floor(containerRect.width);
|
|
29
|
-
//
|
|
30
|
-
|
|
31
|
-
setContainerWidth(width);
|
|
32
|
-
}
|
|
33
|
-
// Handle responsive columns
|
|
38
|
+
// Resolve responsive columns
|
|
39
|
+
let resolvedColumns;
|
|
34
40
|
if (typeof columns === 'object') {
|
|
35
41
|
const breakpoints = Object.keys(columns)
|
|
36
42
|
.map(Number)
|
|
37
43
|
.sort((a, b) => a - b);
|
|
38
|
-
|
|
44
|
+
resolvedColumns = 3; // Default fallback
|
|
39
45
|
for (const breakpoint of breakpoints) {
|
|
40
46
|
if (width >= breakpoint) {
|
|
41
|
-
|
|
47
|
+
resolvedColumns = columns[breakpoint];
|
|
42
48
|
}
|
|
43
49
|
}
|
|
44
|
-
// Ensure columns are within min/max bounds
|
|
45
|
-
newColumns = Math.min(Math.max(newColumns, minColumns), maxColumns);
|
|
46
|
-
setCurrentColumns(newColumns);
|
|
47
50
|
}
|
|
48
51
|
else {
|
|
49
|
-
|
|
50
|
-
setCurrentColumns(clampedColumns);
|
|
52
|
+
resolvedColumns = columns;
|
|
51
53
|
}
|
|
52
|
-
//
|
|
54
|
+
// Ensure columns are within min/max bounds
|
|
55
|
+
resolvedColumns = Math.min(Math.max(resolvedColumns, minColumns), maxColumns);
|
|
56
|
+
// Resolve responsive gap
|
|
57
|
+
let resolvedGap = gap;
|
|
53
58
|
if (gapBreakpoints) {
|
|
54
59
|
const gapBreakpointKeys = Object.keys(gapBreakpoints)
|
|
55
60
|
.map(Number)
|
|
56
61
|
.sort((a, b) => a - b);
|
|
57
|
-
let newGap = gap;
|
|
58
62
|
for (const breakpoint of gapBreakpointKeys) {
|
|
59
63
|
if (width >= breakpoint) {
|
|
60
|
-
|
|
64
|
+
resolvedGap = gapBreakpoints[breakpoint];
|
|
61
65
|
}
|
|
62
66
|
}
|
|
63
|
-
setCurrentGap(newGap);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
setCurrentGap(gap);
|
|
67
67
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
// Sync the render-facing column/gap state (React no-ops if the value is unchanged).
|
|
69
|
+
setCurrentColumns(resolvedColumns);
|
|
70
|
+
setCurrentGap(resolvedGap);
|
|
71
|
+
return { width, columns: resolvedColumns, gap: resolvedGap };
|
|
72
|
+
}, [columns, gap, gapBreakpoints, minColumns, maxColumns]);
|
|
73
|
+
// Arrange items in masonry layout. Pass the freshly-resolved layout to position with exact
|
|
74
|
+
// values (the initial pre-paint pass); omit it to read the synced state (observer-driven passes).
|
|
75
|
+
const arrangeItems = useCallback((resolved) => {
|
|
76
|
+
var _a, _b;
|
|
71
77
|
if (!containerRef.current)
|
|
72
78
|
return;
|
|
79
|
+
const cols = (_a = resolved === null || resolved === void 0 ? void 0 : resolved.columns) !== null && _a !== void 0 ? _a : currentColumns;
|
|
80
|
+
const itemGap = (_b = resolved === null || resolved === void 0 ? void 0 : resolved.gap) !== null && _b !== void 0 ? _b : currentGap;
|
|
73
81
|
const container = containerRef.current;
|
|
74
82
|
const wrappers = Array.from(container.children);
|
|
75
83
|
if (wrappers.length === 0)
|
|
@@ -77,12 +85,12 @@ const Masonry = React__default.forwardRef(({ children, columns = 3, gap = 16, ga
|
|
|
77
85
|
// Get fresh container width to avoid stale closure issues
|
|
78
86
|
const currentContainerWidth = container.offsetWidth;
|
|
79
87
|
// Calculate column width
|
|
80
|
-
const availableWidth = currentContainerWidth - (
|
|
81
|
-
const columnWidth = Math.floor(availableWidth /
|
|
88
|
+
const availableWidth = currentContainerWidth - (itemGap * (cols - 1));
|
|
89
|
+
const columnWidth = Math.floor(availableWidth / cols);
|
|
82
90
|
if (columnWidth <= 0)
|
|
83
91
|
return; // Prevent invalid layouts
|
|
84
92
|
// Initialize column heights
|
|
85
|
-
const columnHeights = new Array(
|
|
93
|
+
const columnHeights = new Array(cols).fill(0);
|
|
86
94
|
// PHASE 1: READ - Measure all wrapper heights first (prevents layout thrashing)
|
|
87
95
|
const wrapperHeights = [];
|
|
88
96
|
wrappers.forEach((wrapper) => {
|
|
@@ -112,14 +120,14 @@ const Masonry = React__default.forwardRef(({ children, columns = 3, gap = 16, ga
|
|
|
112
120
|
let targetColumn;
|
|
113
121
|
if (sequential) {
|
|
114
122
|
// Sequential placement: round-robin distribution
|
|
115
|
-
targetColumn = index %
|
|
123
|
+
targetColumn = index % cols;
|
|
116
124
|
}
|
|
117
125
|
else {
|
|
118
126
|
// Optimal placement: shortest column
|
|
119
127
|
targetColumn = columnHeights.indexOf(Math.min(...columnHeights));
|
|
120
128
|
}
|
|
121
129
|
// Calculate position
|
|
122
|
-
const left = targetColumn * (columnWidth +
|
|
130
|
+
const left = targetColumn * (columnWidth + itemGap);
|
|
123
131
|
const top = columnHeights[targetColumn];
|
|
124
132
|
// Position the wrapper
|
|
125
133
|
wrapper.style.left = `${left}px`;
|
|
@@ -127,67 +135,66 @@ const Masonry = React__default.forwardRef(({ children, columns = 3, gap = 16, ga
|
|
|
127
135
|
// Update column height using pre-measured height
|
|
128
136
|
const itemHeight = wrapperHeights[index];
|
|
129
137
|
if (itemHeight > 0) {
|
|
130
|
-
columnHeights[targetColumn] = top + itemHeight +
|
|
138
|
+
columnHeights[targetColumn] = top + itemHeight + itemGap;
|
|
131
139
|
}
|
|
132
140
|
});
|
|
133
|
-
// Set final container height
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
141
|
+
// Set final container height synchronously — items are now absolutely positioned, so the
|
|
142
|
+
// container would collapse to 0 without it. Done in the same frame (no rAF) so the first
|
|
143
|
+
// painted frame already has the correct height.
|
|
144
|
+
const maxHeight = Math.max(...columnHeights) - itemGap;
|
|
145
|
+
container.style.height = `${Math.max(0, maxHeight)}px`;
|
|
146
|
+
// Reveal items now that they're positioned (no-op after the first arrange).
|
|
147
|
+
setIsArranged(true);
|
|
138
148
|
}, [currentColumns, currentGap, sequential]);
|
|
139
|
-
//
|
|
149
|
+
// Measure + arrange in one shot, positioning with the freshly-resolved values (never lagging
|
|
150
|
+
// state). This is the single entry point for every relayout trigger: mount, resize, children.
|
|
151
|
+
const relayout = useCallback(() => {
|
|
152
|
+
const layout = calculateLayout();
|
|
153
|
+
if (layout && layout.width > 0)
|
|
154
|
+
arrangeItems(layout);
|
|
155
|
+
}, [calculateLayout, arrangeItems]);
|
|
156
|
+
// Keep a ref so the observers (set up once) always call the latest relayout.
|
|
157
|
+
useEffect(() => {
|
|
158
|
+
relayoutRef.current = relayout;
|
|
159
|
+
}, [relayout]);
|
|
160
|
+
// Initial + children-change arrangement — runs BEFORE paint so items are positioned on the
|
|
161
|
+
// first frame instead of flashing full-width in normal flow. Keyed on the child COUNT (a
|
|
162
|
+
// structural signal) rather than the `children` prop identity — the latter is a fresh
|
|
163
|
+
// reference every parent render, which would force a synchronous measure+arrange on every
|
|
164
|
+
// unrelated re-render (layout thrash). Reorders/content edits at the same count are caught by
|
|
165
|
+
// the MutationObserver safety net below.
|
|
166
|
+
const childCount = React__default.Children.count(children);
|
|
167
|
+
useIsomorphicLayoutEffect(() => {
|
|
168
|
+
relayout();
|
|
169
|
+
}, [relayout, childCount]);
|
|
170
|
+
// Handle container resize with ResizeObserver, with a window-resize fallback.
|
|
140
171
|
useEffect(() => {
|
|
141
172
|
if (!containerRef.current)
|
|
142
173
|
return;
|
|
143
174
|
let resizeTimeoutId;
|
|
144
|
-
const
|
|
145
|
-
// Debounce
|
|
175
|
+
const scheduleRelayout = () => {
|
|
176
|
+
// Debounce to prevent excessive recalculations
|
|
146
177
|
clearTimeout(resizeTimeoutId);
|
|
147
|
-
resizeTimeoutId = setTimeout(() =>
|
|
148
|
-
calculateLayout();
|
|
149
|
-
}, 100);
|
|
150
|
-
});
|
|
151
|
-
// Fallback window resize handler for older browsers
|
|
152
|
-
const handleWindowResize = () => {
|
|
153
|
-
clearTimeout(resizeTimeoutId);
|
|
154
|
-
resizeTimeoutId = setTimeout(() => {
|
|
155
|
-
calculateLayout();
|
|
156
|
-
}, 100);
|
|
178
|
+
resizeTimeoutId = setTimeout(() => relayoutRef.current(), 100);
|
|
157
179
|
};
|
|
180
|
+
const resizeObserver = new ResizeObserver(scheduleRelayout);
|
|
158
181
|
resizeObserver.observe(containerRef.current);
|
|
159
|
-
window.addEventListener('resize',
|
|
182
|
+
window.addEventListener('resize', scheduleRelayout);
|
|
160
183
|
return () => {
|
|
161
184
|
resizeObserver.disconnect();
|
|
162
|
-
window.removeEventListener('resize',
|
|
185
|
+
window.removeEventListener('resize', scheduleRelayout);
|
|
163
186
|
clearTimeout(resizeTimeoutId);
|
|
164
187
|
};
|
|
165
|
-
}, [
|
|
166
|
-
//
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
const timer = setTimeout(() => {
|
|
170
|
-
calculateLayout();
|
|
171
|
-
// Only arrange items if we have a valid container width
|
|
172
|
-
if (containerWidth > 0) {
|
|
173
|
-
arrangeItems();
|
|
174
|
-
}
|
|
175
|
-
}, 0);
|
|
176
|
-
return () => clearTimeout(timer);
|
|
177
|
-
}, [calculateLayout, arrangeItems, children, containerWidth]);
|
|
178
|
-
// Keep ref in sync so the MutationObserver always calls the latest version
|
|
179
|
-
useEffect(() => {
|
|
180
|
-
arrangeItemsRef.current = arrangeItems;
|
|
181
|
-
}, [arrangeItems]);
|
|
182
|
-
// Re-arrange when children change (with debouncing)
|
|
188
|
+
}, []);
|
|
189
|
+
// Safety net for direct child add/remove that bypasses React (e.g. imperative DOM mutation,
|
|
190
|
+
// or AnimatePresence enter/exit). React-driven children changes are already handled by the
|
|
191
|
+
// layout effect above via its `children` dep; this catches the rest, debounced.
|
|
183
192
|
useEffect(() => {
|
|
184
193
|
let timeoutId;
|
|
185
194
|
const observer = new MutationObserver(() => {
|
|
186
195
|
// Debounce multiple rapid changes
|
|
187
196
|
clearTimeout(timeoutId);
|
|
188
|
-
timeoutId = setTimeout(() =>
|
|
189
|
-
arrangeItemsRef.current();
|
|
190
|
-
}, 10);
|
|
197
|
+
timeoutId = setTimeout(() => relayoutRef.current(), 10);
|
|
191
198
|
});
|
|
192
199
|
if (containerRef.current) {
|
|
193
200
|
observer.observe(containerRef.current, {
|
|
@@ -208,7 +215,12 @@ const Masonry = React__default.forwardRef(({ children, columns = 3, gap = 16, ga
|
|
|
208
215
|
return child;
|
|
209
216
|
}
|
|
210
217
|
const wrapperClasses = cn(theme.item.base, theme.animations.transition);
|
|
211
|
-
return (jsx(motion.div, { className: wrapperClasses, "data-masonry-item": true,
|
|
218
|
+
return (jsx(motion.div, { className: wrapperClasses, "data-masonry-item": true,
|
|
219
|
+
// Hidden until the first arrange positions it — prevents any full-width flash on the
|
|
220
|
+
// rare path where the container isn't measurable before paint. `visibility` is a
|
|
221
|
+
// separate style key from the position/left/top set imperatively during arrange, so
|
|
222
|
+
// the two never clash. Cleared in the same pre-paint commit on the happy path.
|
|
223
|
+
style: isArranged ? undefined : { visibility: 'hidden' }, initial: MASONRY_ITEM_INITIAL, animate: MASONRY_ITEM_ANIMATE, exit: MASONRY_ITEM_EXIT, transition: {
|
|
212
224
|
...MASONRY_ITEM_TRANSITION_BASE,
|
|
213
225
|
delay: index * 0.05,
|
|
214
226
|
}, children: child }, child.key || index));
|
|
@@ -2,14 +2,20 @@
|
|
|
2
2
|
* Default theme for the Masonry component
|
|
3
3
|
*/
|
|
4
4
|
const masonryTheme = {
|
|
5
|
-
// Container styles
|
|
5
|
+
// Container styles. No `overflow-hidden`: children are absolutely positioned within an
|
|
6
|
+
// explicitly-set height and columns are sized to fit the width, so nothing overflows the
|
|
7
|
+
// box except each card's elevation shadow/ring — clipping that sheared the edges off the
|
|
8
|
+
// left-column and bottom-row cards. Their layout footprint is already accounted for.
|
|
6
9
|
container: {
|
|
7
|
-
base: "relative w-full
|
|
10
|
+
base: "relative w-full",
|
|
8
11
|
loading: "opacity-70 pointer-events-none",
|
|
9
12
|
},
|
|
10
|
-
// Item wrapper styles (auto-applied to each child wrapper)
|
|
13
|
+
// Item wrapper styles (auto-applied to each child wrapper). Structurally neutral —
|
|
14
|
+
// just the absolutely-positioned layout box. It must NOT paint a border/radius or clip:
|
|
15
|
+
// the child (Card, image, etc.) owns its own frame, and a baked-in border doubled up with
|
|
16
|
+
// the child's own edge (and its overflow-hidden clipped the child's elevation shadow).
|
|
11
17
|
item: {
|
|
12
|
-
base: "relative
|
|
18
|
+
base: "relative",
|
|
13
19
|
},
|
|
14
20
|
// Animation classes
|
|
15
21
|
animations: {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
3
|
import React__default, { useState, useCallback } from 'react';
|
|
3
4
|
import { cn } from '../../../utils/cn.js';
|
|
@@ -18,6 +19,19 @@ const MenuItem = React__default.forwardRef(({ children, className, startContent,
|
|
|
18
19
|
// Resolve state to plain utility classes (not data-[state] variants) so a
|
|
19
20
|
// consumer `className` always wins the cascade. See MenuItem.theme.ts.
|
|
20
21
|
const stateKey = disabled ? "disabled" : selected ? "selected" : "default";
|
|
22
|
+
// Expose `selected` to assistive tech via the ARIA attribute that actually
|
|
23
|
+
// matches this item's role, instead of leaving it as a purely visual
|
|
24
|
+
// `data-selected` hook. Per the ARIA spec: `option` items use
|
|
25
|
+
// `aria-selected`; `menuitemcheckbox`/`menuitemradio` items use
|
|
26
|
+
// `aria-checked`. Plain `menuitem` has no selected/checked ARIA state at
|
|
27
|
+
// all, so nothing is added for it — a consumer that needs that semantic
|
|
28
|
+
// should render the item with one of the checkable/selectable roles
|
|
29
|
+
// (see DropdownItem, which already switches `role` based on selectionMode).
|
|
30
|
+
const ariaSelectionProps = role === "option"
|
|
31
|
+
? { "aria-selected": selected }
|
|
32
|
+
: role === "menuitemcheckbox" || role === "menuitemradio"
|
|
33
|
+
? { "aria-checked": selected }
|
|
34
|
+
: {};
|
|
21
35
|
const handleClick = useCallback(() => {
|
|
22
36
|
if (disabled)
|
|
23
37
|
return;
|
|
@@ -29,7 +43,9 @@ const MenuItem = React__default.forwardRef(({ children, className, startContent,
|
|
|
29
43
|
handleClick();
|
|
30
44
|
}
|
|
31
45
|
}, [handleClick]);
|
|
32
|
-
return (jsxs("div", { ref: ref, role: role, tabIndex: disabled ? undefined : -1, "aria-disabled": disabled, "data-focused": isFocused, "data-disabled": disabled, "data-selected": selected, className: cn(theme.baseStyle, theme.states[stateKey],
|
|
46
|
+
return (jsxs("div", { ref: ref, role: role, tabIndex: disabled ? undefined : -1, "aria-disabled": disabled, ...ariaSelectionProps, "data-focused": isFocused, "data-disabled": disabled, "data-selected": selected, className: cn(theme.baseStyle, theme.states[stateKey],
|
|
47
|
+
// Focus fill composites over any state (incl. selected) — see focusedStyle note.
|
|
48
|
+
isFocused && !disabled && theme.focusedStyle, isDanger && theme.dangerStyle, theme.focusStyle, className), onClick: handleClick, onKeyDown: handleKeyDown, onFocus: () => setIsFocused(true), onBlur: () => setIsFocused(false), ...props, children: [startContent && (jsx("div", { className: "flex items-center justify-center flex-shrink-0", children: startContent })), jsxs("div", { className: "flex-1 min-w-0", children: [jsxs("div", { className: "flex items-center justify-between gap-2", children: [jsx("span", { className: "truncate", children: children }), shortcut && (jsx("span", { className: "ml-auto flex-shrink-0", children: shortcut }))] }), subtitle && (typeof subtitle === 'string'
|
|
33
49
|
? jsx("div", { className: theme.subtitleStyle, children: subtitle })
|
|
34
50
|
: subtitle)] }), endContent && (jsx("div", { className: "flex items-center justify-center ml-2", children: endContent }))] }));
|
|
35
51
|
});
|
|
@@ -13,8 +13,12 @@ const menuItemTheme = {
|
|
|
13
13
|
"dark:bg-white/10 dark:text-[var(--color-text-primary)]",
|
|
14
14
|
disabled: "opacity-60 cursor-not-allowed pointer-events-none",
|
|
15
15
|
},
|
|
16
|
-
// Keyboard-focus highlight (item received roving focus)
|
|
17
|
-
|
|
16
|
+
// Keyboard-focus highlight (item received roving focus). The shared interaction tint
|
|
17
|
+
// layered as a bg-IMAGE so it composites OVER the current fill instead of replacing it —
|
|
18
|
+
// so a focused item that is ALSO selected reads as "cursor is here" on top of its selected
|
|
19
|
+
// tint (a plain bg-color would swap the selected tint out and look dimmer). Same overlay
|
|
20
|
+
// trick the form controls use for hover (see CLAUDE.md §9).
|
|
21
|
+
focusedStyle: "bg-[image:linear-gradient(var(--color-surface-hover),var(--color-surface-hover))]",
|
|
18
22
|
// Danger item styling (e.g., Delete actions)
|
|
19
23
|
dangerStyle: "text-[var(--color-danger)] hover:bg-[var(--color-danger)] hover:text-[var(--color-danger-contrast)] " +
|
|
20
24
|
"dark:text-[var(--color-danger-400)] dark:hover:bg-[var(--color-danger-600)] dark:hover:text-[var(--color-danger-contrast)]",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
3
|
import React__default, { useMemo } from 'react';
|
|
3
4
|
import { cn } from '../../../utils/cn.js';
|
|
@@ -118,7 +119,7 @@ const MessageRoot = React__default.forwardRef(({ role, variant: variantProp, con
|
|
|
118
119
|
// Backward compatibility
|
|
119
120
|
variant === "sender" && customTheme.senderTimestampStyle, variant === "receiver" && customTheme.receiverTimestampStyle, variant === "system" && customTheme.systemTimestampStyle);
|
|
120
121
|
// Build default action buttons if needed
|
|
121
|
-
const defaultActionButtons = shouldShowDefaultActions ? (jsxs("div", { className: cn(messageTheme.actionsContainerStyle, customTheme.actionsContainerStyle), children: [onCopy && (jsx(Button, { variant: "
|
|
122
|
+
const defaultActionButtons = shouldShowDefaultActions ? (jsxs("div", { className: cn(messageTheme.actionsContainerStyle, customTheme.actionsContainerStyle), children: [onCopy && (jsx(Button, { variant: "ghost", color: "neutral", size: "sm", iconOnly: true, onClick: onCopy, "aria-label": "Copy message", className: "opacity-40 hover:opacity-100", children: jsx(DocumentDuplicateIcon, { className: "size-4" }) })), onRegenerate && (jsx(Button, { variant: "ghost", color: "neutral", size: "sm", iconOnly: true, onClick: onRegenerate, "aria-label": "Regenerate response", className: "opacity-40 hover:opacity-100", children: jsx(ArrowPathIcon, { className: "size-4" }) }))] })) : undefined;
|
|
122
123
|
// Use custom actions if provided, otherwise use default actions
|
|
123
124
|
const finalActions = actions !== null && actions !== void 0 ? actions : defaultActionButtons;
|
|
124
125
|
// Use TypeWriter for streaming receiver/assistant messages with string content (props API)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
3
|
import { cn } from '../../../utils/cn.js';
|
|
3
4
|
import 'react';
|
|
@@ -5,7 +6,7 @@ import { messageTheme } from './Message.theme.js';
|
|
|
5
6
|
import { PlayIcon } from '@heroicons/react/24/solid';
|
|
6
7
|
|
|
7
8
|
const MessageAudio = ({ duration, name, onClick, className, }) => {
|
|
8
|
-
return (jsxs("div", { className: cn(messageTheme.audioStyle, className), children: [jsx("button", { onClick: onClick, className: "flex items-center justify-center size-8 rounded-full bg-[var(--color-primary)] text-
|
|
9
|
+
return (jsxs("div", { className: cn(messageTheme.audioStyle, className), children: [jsx("button", { onClick: onClick, className: "flex items-center justify-center size-8 rounded-full bg-[var(--color-primary)] text-[var(--color-primary-contrast)] flex-shrink-0 cursor-pointer", "aria-label": name ? `Play ${name}` : "Play audio", type: "button", children: jsx(PlayIcon, { className: "size-4 ml-0.5" }) }), jsxs("div", { className: "flex flex-col min-w-0 flex-1", children: [name && (jsx("span", { className: "font-medium text-[var(--color-text-primary)] truncate", children: name })), duration && (jsx("span", { className: "text-xs text-[var(--color-text-muted)]", children: duration }))] })] }));
|
|
9
10
|
};
|
|
10
11
|
|
|
11
12
|
export { MessageAudio };
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
3
|
import { cn } from '../../../utils/cn.js';
|
|
3
4
|
import 'react';
|
|
4
5
|
import { messageTheme } from './Message.theme.js';
|
|
5
|
-
import {
|
|
6
|
+
import { Link } from '../Link/Link.js';
|
|
6
7
|
import { ExclamationCircleIcon, CheckIcon, ClockIcon } from '@heroicons/react/16/solid';
|
|
7
8
|
|
|
8
9
|
const DoubleCheck = ({ className }) => (jsxs("span", { className: cn("inline-flex items-center -space-x-2", className), children: [jsx(CheckIcon, { className: "size-3.5" }), jsx(CheckIcon, { className: "size-3.5" })] }));
|
|
@@ -39,7 +40,7 @@ const MessageStatusIndicator = ({ status, readAt, onRetry, className, }) => {
|
|
|
39
40
|
},
|
|
40
41
|
};
|
|
41
42
|
const config = statusConfig[status];
|
|
42
|
-
return (jsxs("div", { className: cn(messageTheme.statusStyle, config.style, className), "aria-
|
|
43
|
+
return (jsxs("div", { className: cn(messageTheme.statusStyle, config.style, className), children: [jsx("span", { "aria-hidden": "true", className: "inline-flex items-center", children: config.icon }), jsx("span", { className: "sr-only", children: config.label }), status === "failed" && onRetry && (jsx(Link, { color: "danger", size: "sm", onClick: onRetry, className: "text-xs px-0 h-auto", "aria-label": "Retry sending message", children: "Retry" }))] }));
|
|
43
44
|
};
|
|
44
45
|
|
|
45
46
|
export { MessageStatusIndicator };
|
|
@@ -1,8 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
3
|
+
import { useMemo, useRef, useCallback, useEffect } from 'react';
|
|
4
|
+
import { useReducedMotion, motion } from 'motion/react';
|
|
5
|
+
import { cn } from '../../../utils/cn.js';
|
|
3
6
|
|
|
7
|
+
const tokenize = (text) => {
|
|
8
|
+
if (!text)
|
|
9
|
+
return [];
|
|
10
|
+
// Split on word boundaries, preserving whitespace with each token
|
|
11
|
+
return text.match(/\S+\s*/g) || [];
|
|
12
|
+
};
|
|
4
13
|
/**
|
|
5
|
-
* TypeWriter component that animates text word-by-word
|
|
14
|
+
* TypeWriter component that animates text word-by-word with a smooth fade-in
|
|
6
15
|
*
|
|
7
16
|
* @example
|
|
8
17
|
* ```tsx
|
|
@@ -13,14 +22,70 @@ import { useTypewriter } from '../../../hooks/useTypewriter.js';
|
|
|
13
22
|
* />
|
|
14
23
|
* ```
|
|
15
24
|
*/
|
|
16
|
-
const TypeWriter = ({ text, speed =
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
25
|
+
const TypeWriter = ({ text, speed = 80, enabled = true, onComplete, className, }) => {
|
|
26
|
+
const shouldReduceMotion = useReducedMotion();
|
|
27
|
+
const animate = enabled && !shouldReduceMotion;
|
|
28
|
+
const tokens = useMemo(() => tokenize(text), [text]);
|
|
29
|
+
const onCompleteRef = useRef(onComplete);
|
|
30
|
+
onCompleteRef.current = onComplete;
|
|
31
|
+
const fireComplete = useCallback(() => {
|
|
32
|
+
var _a;
|
|
33
|
+
(_a = onCompleteRef.current) === null || _a === void 0 ? void 0 : _a.call(onCompleteRef);
|
|
34
|
+
}, []);
|
|
35
|
+
// How many tokens have already been committed (and thus already animated). Updated AFTER
|
|
36
|
+
// commit in the effect below — NEVER mutated during render, so a StrictMode/concurrent
|
|
37
|
+
// double-render can't mark tokens "already animated" on a throwaway pass and suppress the
|
|
38
|
+
// entrance animation.
|
|
39
|
+
const revealedCountRef = useRef(0);
|
|
40
|
+
// Token count at the first render; only these original tokens get a staggered delay
|
|
41
|
+
// (tokens appended later — e.g. while streaming — fade in immediately).
|
|
42
|
+
const initialTokensCountRef = useRef(null);
|
|
43
|
+
if (initialTokensCountRef.current === null) {
|
|
44
|
+
initialTokensCountRef.current = tokens.length;
|
|
45
|
+
}
|
|
46
|
+
// Detect a non-append text change (shrink or full replace) so reveal tracking resets and the
|
|
47
|
+
// new text animates from scratch. Reading the ref during render is pure; it's written below.
|
|
48
|
+
const prevTextRef = useRef(text);
|
|
49
|
+
const isReplacement = !text.startsWith(prevTextRef.current) || text.length < prevTextRef.current.length;
|
|
50
|
+
const revealedBefore = isReplacement ? 0 : revealedCountRef.current;
|
|
51
|
+
// Commit the reveal bookkeeping after paint (pure render, side-effects in the effect).
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (isReplacement)
|
|
54
|
+
initialTokensCountRef.current = tokens.length;
|
|
55
|
+
revealedCountRef.current = tokens.length;
|
|
56
|
+
prevTextRef.current = text;
|
|
22
57
|
});
|
|
23
|
-
|
|
58
|
+
// Reduced-motion / disabled: nothing animates, so the entrance can't drive completion —
|
|
59
|
+
// signal it after commit instead, otherwise callers that chain on onComplete hang forever.
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
if (!animate && tokens.length > 0)
|
|
62
|
+
fireComplete();
|
|
63
|
+
}, [animate, tokens.length, fireComplete]);
|
|
64
|
+
if (!animate) {
|
|
65
|
+
return jsx("p", { className: cn("whitespace-pre-wrap wrap-break-word", className), children: text });
|
|
66
|
+
}
|
|
67
|
+
// Convert speed (ms per word) to seconds for stagger delay
|
|
68
|
+
const staggerDelay = speed / 1000;
|
|
69
|
+
const lastIndex = tokens.length - 1;
|
|
70
|
+
return (jsx("p", { className: cn("whitespace-pre-wrap wrap-break-word", className), children: tokens.map((token, index) => {
|
|
71
|
+
var _a;
|
|
72
|
+
// A token already revealed on a previous commit renders statically (no re-animation).
|
|
73
|
+
const isNew = index >= revealedBefore;
|
|
74
|
+
if (!isNew) {
|
|
75
|
+
return (jsx("span", { style: { display: 'inline' }, children: token }, `${index}-${token}`));
|
|
76
|
+
}
|
|
77
|
+
// Apply the stagger delay only to tokens present at the initial render.
|
|
78
|
+
const delay = index < ((_a = initialTokensCountRef.current) !== null && _a !== void 0 ? _a : 0) ? index * staggerDelay : 0;
|
|
79
|
+
return (jsx(motion.span, { initial: { opacity: 0, filter: 'blur(3px)' }, animate: { opacity: 1, filter: 'blur(0px)' }, transition: {
|
|
80
|
+
duration: 0.25,
|
|
81
|
+
delay: delay,
|
|
82
|
+
ease: 'easeOut',
|
|
83
|
+
},
|
|
84
|
+
// The last (highest-index) token settles last — its completion marks the whole
|
|
85
|
+
// current batch as done. Fires once per newly-revealed batch, never before the
|
|
86
|
+
// animation has actually run.
|
|
87
|
+
onAnimationComplete: index === lastIndex ? fireComplete : undefined, style: { display: 'inline' }, children: token }, `${index}-${token}`));
|
|
88
|
+
}) }));
|
|
24
89
|
};
|
|
25
90
|
TypeWriter.displayName = 'TypeWriter';
|
|
26
91
|
|
|
@@ -5,6 +5,6 @@ import { Variants } from 'motion/react';
|
|
|
5
5
|
export declare const modalOverlayAnimations: Variants;
|
|
6
6
|
/**
|
|
7
7
|
* Modal content animation variants
|
|
8
|
-
* Scale + slight slide (Vercel/Notion style)
|
|
8
|
+
* Scale + slight slide (Vercel/Notion style) with premium spring
|
|
9
9
|
*/
|
|
10
10
|
export declare const modalContentAnimations: Variants;
|
|
@@ -1,35 +1,21 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import '../../../theme/ThemeContext.js';
|
|
3
|
+
import '../../../theme/SurfaceContext.js';
|
|
4
|
+
import { springs, overlayBackdropAnimations } from '../../../theme/animations.js';
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* Modal overlay animation variants
|
|
3
8
|
*/
|
|
4
|
-
const modalOverlayAnimations =
|
|
5
|
-
initial: {
|
|
6
|
-
opacity: 0,
|
|
7
|
-
willChange: "opacity",
|
|
8
|
-
},
|
|
9
|
-
animate: {
|
|
10
|
-
opacity: 1,
|
|
11
|
-
transition: {
|
|
12
|
-
duration: 0.2,
|
|
13
|
-
ease: 'easeOut'
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
exit: {
|
|
17
|
-
opacity: 0,
|
|
18
|
-
transition: {
|
|
19
|
-
duration: 0.15,
|
|
20
|
-
ease: 'easeIn'
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
};
|
|
9
|
+
const modalOverlayAnimations = overlayBackdropAnimations;
|
|
24
10
|
/**
|
|
25
11
|
* Modal content animation variants
|
|
26
|
-
* Scale + slight slide (Vercel/Notion style)
|
|
12
|
+
* Scale + slight slide (Vercel/Notion style) with premium spring
|
|
27
13
|
*/
|
|
28
14
|
const modalContentAnimations = {
|
|
29
15
|
initial: {
|
|
30
16
|
opacity: 0,
|
|
31
17
|
scale: 0.98,
|
|
32
|
-
y:
|
|
18
|
+
y: 12,
|
|
33
19
|
willChange: "transform, opacity",
|
|
34
20
|
},
|
|
35
21
|
animate: {
|
|
@@ -37,15 +23,14 @@ const modalContentAnimations = {
|
|
|
37
23
|
scale: 1,
|
|
38
24
|
y: 0,
|
|
39
25
|
transition: {
|
|
40
|
-
|
|
41
|
-
ease: [0.4, 0, 0.2, 1],
|
|
26
|
+
...springs.smooth,
|
|
42
27
|
delay: 0.05,
|
|
43
28
|
},
|
|
44
29
|
},
|
|
45
30
|
exit: {
|
|
46
31
|
opacity: 0,
|
|
47
32
|
scale: 0.98,
|
|
48
|
-
y:
|
|
33
|
+
y: 8,
|
|
49
34
|
transition: {
|
|
50
35
|
duration: 0.15,
|
|
51
36
|
ease: [0.4, 0, 1, 1],
|