@flikk/ui 1.0.0-beta.1 → 1.0.0-beta.11
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/dist/components/ai/ApprovalCard/ApprovalCard.js +3 -2
- package/dist/components/ai/ApprovalCard/ApprovalCard.types.d.ts +2 -2
- package/dist/components/ai/CodeBlock/CodeBlock.theme.js +2 -2
- package/dist/components/ai/PromptInput/PromptInput.animations.d.ts +25 -0
- package/dist/components/ai/PromptInput/PromptInput.animations.js +61 -0
- package/dist/components/ai/PromptInput/PromptInput.js +264 -31
- package/dist/components/ai/PromptInput/PromptInput.theme.js +6 -1
- package/dist/components/ai/PromptInput/PromptInput.types.d.ts +68 -0
- package/dist/components/ai/PromptInput/VoiceRecorder.d.ts +10 -0
- package/dist/components/ai/PromptInput/VoiceRecorder.js +258 -0
- package/dist/components/ai/PromptInput/VoiceRecorder.types.d.ts +17 -0
- package/dist/components/ai/PromptInput/index.d.ts +1 -0
- package/dist/components/ai/PromptSuggestions/PromptSuggestion.theme.js +1 -1
- package/dist/components/ai/StreamingResponse/MarkdownRenderer.d.ts +5 -2
- package/dist/components/ai/StreamingResponse/MarkdownRenderer.js +51 -27
- package/dist/components/ai/StreamingResponse/StreamingCursor.d.ts +4 -5
- package/dist/components/ai/StreamingResponse/StreamingCursor.js +5 -12
- package/dist/components/ai/StreamingResponse/StreamingResponse.animations.d.ts +7 -0
- package/dist/components/ai/StreamingResponse/StreamingResponse.animations.js +20 -1
- package/dist/components/ai/StreamingResponse/StreamingResponse.js +2 -2
- package/dist/components/ai/StreamingResponse/StreamingResponse.theme.js +4 -4
- package/dist/components/ai/StreamingResponse/StreamingResponse.types.d.ts +2 -0
- package/dist/components/ai/StreamingResponse/WordAnimationContext.d.ts +27 -0
- package/dist/components/ai/StreamingResponse/WordAnimationContext.js +134 -0
- package/dist/components/ai/StreamingResponse/index.d.ts +3 -1
- package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.theme.js +2 -2
- package/dist/components/ai/TokenCounter/TokenCounter.theme.js +6 -6
- package/dist/components/ai/index.js +1 -0
- package/dist/components/charts/ActivityRings/ActivityRings.js +1 -1
- package/dist/components/charts/ActivityRings/ActivityRings.theme.js +2 -2
- package/dist/components/charts/BarChart/BarChart.js +3 -3
- package/dist/components/charts/ChartContainer.js +1 -1
- package/dist/components/charts/ComboChart/ComboChart.js +2 -2
- package/dist/components/charts/DonutChart/DonutChart.theme.js +1 -1
- package/dist/components/charts/DonutChart/DonutChart.types.d.ts +1 -2
- package/dist/components/charts/DonutChart/MultiSegmentDonutChart.js +1 -1
- package/dist/components/charts/DonutChart/MultiSegmentDonutChart.theme.js +1 -1
- package/dist/components/charts/DonutChart/MultiSegmentDonutChart.types.d.ts +1 -2
- package/dist/components/charts/FunnelChart/FunnelChart.js +7 -7
- package/dist/components/charts/Heatmap/Heatmap.theme.js +1 -1
- package/dist/components/charts/Heatmap/HeatmapCell.js +1 -1
- package/dist/components/charts/Heatmap/HeatmapLegend.js +1 -1
- package/dist/components/charts/RadarChart/RadarChart.theme.js +2 -2
- package/dist/components/charts/ScatterPlot/ScatterPlot.js +1 -1
- package/dist/components/charts/ScatterPlot/ScatterPlot.theme.js +2 -2
- package/dist/components/charts/StackedBarChart/StackedBarChart.js +2 -2
- package/dist/components/charts/shared/ChartErrorBoundary/ChartErrorBoundary.js +1 -1
- package/dist/components/charts/shared/ChartLegend/ChartLegendContent.js +1 -1
- package/dist/components/charts/shared/ChartText/ChartText.js +1 -1
- package/dist/components/charts/shared/ChartText/ChartText.theme.js +1 -1
- package/dist/components/charts/shared/ChartTooltip/ChartTooltip.theme.js +4 -4
- package/dist/components/core/Accordion/Accordion.animations.d.ts +6 -1
- package/dist/components/core/Accordion/Accordion.animations.js +15 -1
- package/dist/components/core/Accordion/Accordion.theme.js +5 -5
- package/dist/components/core/Accordion/Accordion.types.d.ts +25 -0
- package/dist/components/core/Accordion/AccordionContent.js +1 -1
- package/dist/components/core/Accordion/AccordionTrigger.js +11 -6
- package/dist/components/core/Alert/Alert.js +3 -2
- package/dist/components/core/Alert/Alert.theme.js +4 -8
- package/dist/components/core/Alert/Alert.types.d.ts +4 -3
- package/dist/components/core/AlertDialog/AlertDialog.d.ts +1 -1
- package/dist/components/core/AlertDialog/AlertDialog.js +2 -2
- package/dist/components/core/AlertDialog/AlertDialog.types.d.ts +2 -2
- package/dist/components/core/Avatar/Avatar.theme.js +5 -5
- package/dist/components/core/AvatarGroup/AvatarGroup.theme.js +1 -1
- package/dist/components/core/Badge/Badge.d.ts +1 -1
- package/dist/components/core/Badge/Badge.js +11 -9
- package/dist/components/core/Badge/Badge.theme.js +24 -20
- package/dist/components/core/Badge/Badge.types.d.ts +10 -5
- package/dist/components/core/Breadcrumbs/Breadcrumbs.js +1 -1
- package/dist/components/core/Button/Button.d.ts +1 -1
- package/dist/components/core/Button/Button.js +21 -18
- package/dist/components/core/Button/Button.ripple.d.ts +5 -1
- package/dist/components/core/Button/Button.ripple.js +27 -17
- package/dist/components/core/Button/Button.theme.d.ts +1 -2
- package/dist/components/core/Button/Button.theme.js +46 -41
- package/dist/components/core/Button/Button.types.d.ts +3 -3
- package/dist/components/core/Button/index.d.ts +2 -0
- package/dist/components/core/ButtonGroup/ButtonGroup.theme.js +1 -1
- package/dist/components/core/Calendar/Calendar.js +1 -1
- package/dist/components/core/Calendar/Calendar.theme.js +9 -9
- package/dist/components/core/Calendar/CalendarMini/CalendarMini.js +1 -1
- package/dist/components/core/Card/Card.d.ts +2 -2
- package/dist/components/core/Card/Card.js +6 -7
- package/dist/components/core/Card/Card.theme.js +2 -2
- package/dist/components/core/Card/Card.types.d.ts +7 -27
- package/dist/components/core/Card/CardSubtitle.d.ts +3 -0
- package/dist/components/core/Card/CardSubtitle.js +11 -0
- package/dist/components/core/Card/CardTitle.d.ts +1 -1
- package/dist/components/core/Card/index.d.ts +2 -2
- package/dist/components/core/CommandPalette/CommandItem.d.ts +1 -1
- package/dist/components/core/CommandPalette/CommandItem.js +2 -2
- package/dist/components/core/CommandPalette/CommandPalette.js +2 -2
- package/dist/components/core/CommandPalette/CommandPalette.theme.js +6 -6
- package/dist/components/core/CommandPalette/CommandPalette.types.d.ts +2 -2
- package/dist/components/core/ContextMenu/ContextMenu.theme.js +3 -3
- package/dist/components/core/ContextMenu/ContextMenu.types.d.ts +1 -1
- package/dist/components/core/ContextMenu/ContextMenuItem.js +3 -3
- package/dist/components/core/Drawer/Drawer.d.ts +13 -1
- package/dist/components/core/Drawer/Drawer.js +23 -10
- package/dist/components/core/Drawer/Drawer.theme.d.ts +2 -0
- package/dist/components/core/Drawer/Drawer.theme.js +15 -13
- package/dist/components/core/Drawer/Drawer.types.d.ts +26 -9
- package/dist/components/core/Drawer/DrawerContent.js +1 -1
- package/dist/components/core/Drawer/DrawerHeader.d.ts +5 -0
- package/dist/components/core/Drawer/DrawerHeader.js +15 -0
- package/dist/components/core/Drawer/DrawerSubtitle.d.ts +5 -0
- package/dist/components/core/Drawer/DrawerSubtitle.js +11 -0
- package/dist/components/core/Drawer/DrawerTitle.d.ts +5 -0
- package/dist/components/core/Drawer/DrawerTitle.js +11 -0
- package/dist/components/core/Drawer/index.d.ts +1 -1
- package/dist/components/core/Dropdown/Dropdown.theme.js +1 -1
- package/dist/components/core/Dropdown/Dropdown.types.d.ts +4 -4
- package/dist/components/core/Dropdown/DropdownItem.js +2 -2
- package/dist/components/core/Dropdown/DropdownMenu.js +1 -0
- package/dist/components/core/Empty/Empty.js +2 -2
- package/dist/components/core/Empty/Empty.theme.d.ts +1 -1
- package/dist/components/core/Empty/Empty.theme.js +3 -3
- package/dist/components/core/Empty/Empty.types.d.ts +2 -2
- package/dist/components/core/Kbd/Kbd.theme.js +3 -3
- package/dist/components/core/Link/Link.d.ts +1 -1
- package/dist/components/core/Link/Link.types.d.ts +2 -2
- package/dist/components/core/Loader/Loader.theme.js +1 -1
- package/dist/components/core/MenuItem/MenuItem.js +2 -2
- package/dist/components/core/MenuItem/MenuItem.theme.d.ts +1 -2
- package/dist/components/core/MenuItem/MenuItem.theme.js +9 -11
- package/dist/components/core/MenuItem/MenuItem.types.d.ts +1 -1
- package/dist/components/core/Message/Message.d.ts +3 -2
- package/dist/components/core/Message/Message.js +30 -24
- package/dist/components/core/Message/Message.theme.d.ts +1 -1
- package/dist/components/core/Message/Message.theme.js +22 -24
- package/dist/components/core/Message/Message.types.d.ts +0 -7
- package/dist/components/core/Message/MessageList.animations.d.ts +6 -0
- package/dist/components/core/Message/MessageList.animations.js +32 -0
- package/dist/components/core/Message/MessageList.d.ts +5 -0
- package/dist/components/core/Message/MessageList.js +78 -0
- package/dist/components/core/Message/MessageList.theme.d.ts +2 -0
- package/dist/components/core/Message/MessageList.theme.js +6 -0
- package/dist/components/core/Message/MessageList.types.d.ts +32 -0
- package/dist/components/core/Message/index.d.ts +2 -0
- package/dist/components/core/Modal/Modal.d.ts +2 -2
- package/dist/components/core/Modal/Modal.js +5 -5
- package/dist/components/core/Modal/Modal.theme.js +6 -6
- package/dist/components/core/Modal/Modal.types.d.ts +4 -4
- package/dist/components/core/Modal/ModalHeader.js +1 -0
- package/dist/components/core/Modal/ModalSubtitle.d.ts +5 -0
- package/dist/components/core/Modal/ModalSubtitle.js +11 -0
- package/dist/components/core/ModalStack/ModalStack.animations.js +3 -3
- package/dist/components/core/ModalStack/ModalStackModal.js +3 -3
- package/dist/components/core/NavItem/NavItem.js +1 -1
- package/dist/components/core/NavItem/NavItem.theme.js +1 -1
- package/dist/components/core/OfflineIndicator/OfflineIndicator.theme.js +3 -3
- package/dist/components/core/PageHeading/PageHeading.d.ts +8 -0
- package/dist/components/core/PageHeading/PageHeading.js +28 -0
- package/dist/components/core/PageHeading/PageHeading.theme.d.ts +2 -0
- package/dist/components/core/PageHeading/PageHeading.theme.js +11 -0
- package/dist/components/core/PageHeading/PageHeading.types.d.ts +55 -0
- package/dist/components/core/PageHeading/PageHeadingActions.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingActions.js +11 -0
- package/dist/components/core/PageHeading/PageHeadingBackButton.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingBackButton.js +12 -0
- package/dist/components/core/PageHeading/PageHeadingIcon.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingIcon.js +11 -0
- package/dist/components/core/PageHeading/PageHeadingSubtitle.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingSubtitle.js +11 -0
- package/dist/components/core/PageHeading/PageHeadingTitle.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingTitle.js +11 -0
- package/dist/components/core/PageHeading/index.d.ts +2 -0
- package/dist/components/core/Pagination/Pagination.theme.js +2 -2
- package/dist/components/core/Pill/Pill.theme.js +3 -3
- package/dist/components/core/Popover/Popover.theme.js +1 -1
- package/dist/components/core/Popover/Popover.types.d.ts +6 -0
- package/dist/components/core/Popover/PopoverContent.js +8 -2
- package/dist/components/core/Progress/Progress.theme.js +10 -7
- package/dist/components/core/Progress/Progress.types.d.ts +2 -1
- package/dist/components/core/Segmented/Segmented.theme.js +5 -5
- package/dist/components/core/Sidebar/Sidebar.js +1 -0
- package/dist/components/core/Sidebar/SidebarNavGroup.js +1 -1
- package/dist/components/core/SocialIcon/SocialIcon.d.ts +3 -0
- package/dist/components/core/SocialIcon/SocialIcon.js +30 -0
- package/dist/components/core/SocialIcon/SocialIcon.theme.d.ts +2 -0
- package/dist/components/core/SocialIcon/SocialIcon.theme.js +12 -0
- package/dist/components/core/SocialIcon/SocialIcon.types.d.ts +18 -0
- package/dist/components/core/SocialIcon/index.d.ts +2 -0
- package/dist/components/core/SocialIcon/platforms.d.ts +17 -0
- package/dist/components/core/SocialIcon/platforms.js +234 -0
- package/dist/components/core/Spinner/Spinner.theme.js +3 -5
- package/dist/components/core/Spinner/Spinner.types.d.ts +2 -1
- package/dist/components/core/Tabs/Tabs.theme.js +2 -2
- package/dist/components/core/Tag/Tag.d.ts +2 -2
- package/dist/components/core/Tag/Tag.js +21 -4
- package/dist/components/core/Tag/Tag.theme.js +12 -4
- package/dist/components/core/Tag/Tag.types.d.ts +24 -1
- package/dist/components/core/Toast/Toast.js +4 -4
- package/dist/components/core/Toast/Toast.theme.js +4 -4
- package/dist/components/core/Toast/Toast.types.d.ts +9 -9
- package/dist/components/core/Toast/useToast.js +6 -6
- package/dist/components/core/Tooltip/Tooltip.theme.js +1 -1
- package/dist/components/core/Tree/Tree.theme.js +1 -1
- package/dist/components/core/index.d.ts +2 -7
- package/dist/components/core/index.js +10 -19
- package/dist/components/data-display/DescriptionList/DescriptionList.theme.js +8 -0
- package/dist/components/{core → data-display}/Feed/Feed.js +3 -3
- package/dist/components/{core → data-display}/Feed/Feed.theme.js +2 -2
- package/dist/components/data-display/GanttChart/GanttChart.animations.d.ts +4 -0
- package/dist/components/data-display/GanttChart/GanttChart.animations.js +21 -0
- package/dist/components/data-display/GanttChart/GanttChart.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttChart.js +170 -0
- package/dist/components/data-display/GanttChart/GanttChart.theme.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttChart.theme.js +23 -0
- package/dist/components/data-display/GanttChart/GanttChart.types.d.ts +162 -0
- package/dist/components/data-display/GanttChart/GanttChart.types.js +9 -0
- package/dist/components/data-display/GanttChart/GanttChart.utils.d.ts +80 -0
- package/dist/components/data-display/GanttChart/GanttChart.utils.js +274 -0
- package/dist/components/data-display/GanttChart/GanttChartPanel.d.ts +9 -0
- package/dist/components/data-display/GanttChart/GanttChartPanel.js +82 -0
- package/dist/components/data-display/GanttChart/GanttDependencyArrows.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttDependencyArrows.js +35 -0
- package/dist/components/data-display/GanttChart/GanttGroupBar.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttGroupBar.js +26 -0
- package/dist/components/data-display/GanttChart/GanttMilestone.d.ts +9 -0
- package/dist/components/data-display/GanttChart/GanttMilestone.js +44 -0
- package/dist/components/data-display/GanttChart/GanttProgressCircle.d.ts +9 -0
- package/dist/components/data-display/GanttChart/GanttProgressCircle.js +11 -0
- package/dist/components/data-display/GanttChart/GanttSplitter.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttSplitter.js +39 -0
- package/dist/components/data-display/GanttChart/GanttTableGroupRow.d.ts +7 -0
- package/dist/components/data-display/GanttChart/GanttTableGroupRow.js +23 -0
- package/dist/components/data-display/GanttChart/GanttTableHeader.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttTableHeader.js +13 -0
- package/dist/components/data-display/GanttChart/GanttTablePanel.d.ts +6 -0
- package/dist/components/data-display/GanttChart/GanttTablePanel.js +20 -0
- package/dist/components/data-display/GanttChart/GanttTableTaskRow.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttTableTaskRow.js +30 -0
- package/dist/components/data-display/GanttChart/GanttTaskBar.d.ts +9 -0
- package/dist/components/data-display/GanttChart/GanttTaskBar.js +206 -0
- package/dist/components/data-display/GanttChart/GanttTaskContextMenu.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttTaskContextMenu.js +17 -0
- package/dist/components/data-display/GanttChart/GanttTimelineGrid.d.ts +7 -0
- package/dist/components/data-display/GanttChart/GanttTimelineGrid.js +33 -0
- package/dist/components/data-display/GanttChart/GanttTimelineHeader.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttTimelineHeader.js +43 -0
- package/dist/components/data-display/GanttChart/GanttToolbar.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttToolbar.js +29 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttDates.d.ts +12 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttDates.js +25 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttDrag.d.ts +25 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttDrag.js +144 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttLayout.d.ts +2 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttLayout.js +33 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.d.ts +6 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.js +32 -0
- package/dist/components/data-display/GanttChart/index.d.ts +3 -0
- package/dist/components/{core → data-display}/KPI/KPI.js +10 -8
- package/dist/components/{core → data-display}/KPI/KPI.theme.js +12 -12
- package/dist/components/{core → data-display}/KPI/KPI.types.d.ts +6 -5
- package/dist/components/{core → data-display}/KPI/index.d.ts +1 -0
- package/dist/components/{core → data-display}/Metric/Metric.js +4 -7
- package/dist/components/{core → data-display}/Metric/Metric.theme.js +17 -13
- package/dist/components/{core → data-display}/Metric/Metric.types.d.ts +8 -7
- package/dist/components/{core → data-display}/Table/Table.theme.js +4 -4
- package/dist/components/{core → data-display}/Table/TableActions.js +8 -8
- package/dist/components/{core → data-display}/Table/TableActionsMenu.js +1 -1
- package/dist/components/{core → data-display}/Table/TableColumnManager.js +6 -5
- package/dist/components/{core → data-display}/Table/TableFilter.js +6 -6
- package/dist/components/{core → data-display}/Table/TableHeader.js +1 -1
- package/dist/components/data-display/Table/TablePagination.js +25 -0
- package/dist/components/{core → data-display}/Table/TableRow.js +1 -1
- package/dist/components/{core → data-display}/Table/TableSelectionHeader.js +3 -3
- package/dist/components/{core → data-display}/Timeline/Timeline.theme.js +2 -2
- package/dist/components/data-display/index.d.ts +7 -0
- package/dist/components/data-display/index.js +20 -0
- package/dist/components/effects/3d/index.d.ts +6 -0
- package/dist/components/effects/3d/index.js +3 -0
- package/dist/components/effects/Aurora/Aurora.d.ts +24 -0
- package/dist/components/effects/Aurora/Aurora.js +119 -0
- package/dist/components/effects/Aurora/Aurora.types.d.ts +15 -0
- package/dist/components/effects/Aurora/index.d.ts +2 -0
- package/dist/components/effects/CustomCursor/CustomCursor.d.ts +2 -2
- package/dist/components/effects/CustomCursor/CustomCursor.js +1 -1
- package/dist/components/effects/CustomCursor/CustomCursor.theme.js +3 -1
- package/dist/components/effects/CustomCursor/CustomCursor.types.d.ts +5 -4
- package/dist/components/effects/DotPattern/DotPattern.d.ts +18 -0
- package/dist/components/effects/DotPattern/DotPattern.js +65 -0
- package/dist/components/effects/DotPattern/DotPattern.types.d.ts +47 -0
- package/dist/components/effects/DotPattern/index.d.ts +2 -0
- package/dist/components/effects/GridPattern/GridPattern.d.ts +18 -0
- package/dist/components/effects/GridPattern/GridPattern.js +64 -0
- package/dist/components/effects/GridPattern/GridPattern.types.d.ts +47 -0
- package/dist/components/effects/GridPattern/index.d.ts +2 -0
- package/dist/components/effects/MagneticElement/MagneticElement.d.ts +30 -0
- package/dist/components/effects/MagneticElement/MagneticElement.js +110 -0
- package/dist/components/effects/MagneticElement/MagneticElement.types.d.ts +44 -0
- package/dist/components/effects/MagneticElement/index.d.ts +2 -0
- package/dist/components/effects/MorphingText/MorphingText.d.ts +17 -0
- package/dist/components/effects/MorphingText/MorphingText.js +91 -0
- package/dist/components/effects/MorphingText/MorphingText.types.d.ts +18 -0
- package/dist/components/effects/MorphingText/index.d.ts +2 -0
- package/dist/components/effects/NoiseOverlay/NoiseOverlay.d.ts +28 -0
- package/dist/components/effects/NoiseOverlay/NoiseOverlay.js +61 -0
- package/dist/components/effects/NoiseOverlay/NoiseOverlay.types.d.ts +35 -0
- package/dist/components/effects/NoiseOverlay/index.d.ts +2 -0
- package/dist/components/effects/ParallaxSection/ParallaxSection.d.ts +26 -0
- package/dist/components/effects/ParallaxSection/ParallaxSection.js +71 -0
- package/dist/components/effects/ParallaxSection/ParallaxSection.types.d.ts +11 -0
- package/dist/components/effects/ParallaxSection/index.d.ts +2 -0
- package/dist/components/effects/Particles/Particles.d.ts +22 -0
- package/dist/components/effects/Particles/Particles.js +33 -0
- package/dist/components/effects/Particles/Particles.scene.d.ts +3 -0
- package/dist/components/effects/Particles/Particles.scene.js +284 -0
- package/dist/components/effects/Particles/Particles.types.d.ts +65 -0
- package/dist/components/effects/Particles/index.d.ts +2 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.d.ts +3 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.js +75 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.theme.d.ts +7 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.theme.js +12 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.types.d.ts +47 -0
- package/dist/components/effects/ProgressiveBlur/index.d.ts +2 -0
- package/dist/components/effects/ScrollReveal/ScrollReveal.d.ts +29 -0
- package/dist/components/effects/ScrollReveal/ScrollReveal.js +121 -0
- package/dist/components/effects/ScrollReveal/ScrollReveal.types.d.ts +25 -0
- package/dist/components/effects/ScrollReveal/index.d.ts +2 -0
- package/dist/components/effects/Spotlight/Spotlight.d.ts +36 -0
- package/dist/components/effects/Spotlight/Spotlight.js +112 -0
- package/dist/components/effects/Spotlight/Spotlight.types.d.ts +29 -0
- package/dist/components/effects/Spotlight/index.d.ts +2 -0
- package/dist/components/effects/StickyScroll/StickyScroll.d.ts +30 -0
- package/dist/components/effects/StickyScroll/StickyScroll.js +128 -0
- package/dist/components/effects/StickyScroll/StickyScroll.types.d.ts +19 -0
- package/dist/components/effects/StickyScroll/index.d.ts +2 -0
- package/dist/components/effects/index.d.ts +22 -4
- package/dist/components/effects/index.js +11 -2
- package/dist/components/forms/Checkbox/Checkbox.d.ts +3 -4
- package/dist/components/forms/Checkbox/Checkbox.js +36 -12
- package/dist/components/forms/Checkbox/Checkbox.theme.js +9 -5
- package/dist/components/forms/Checkbox/Checkbox.types.d.ts +28 -2
- package/dist/components/forms/Checkbox/CheckboxContext.d.ts +14 -0
- package/dist/components/forms/Checkbox/CheckboxContext.js +12 -0
- package/dist/components/forms/Checkbox/CheckboxGroup.d.ts +3 -0
- package/dist/components/forms/Checkbox/CheckboxGroup.js +40 -0
- package/dist/components/forms/Checkbox/index.d.ts +1 -1
- package/dist/components/forms/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/forms/ColorPicker/ColorPicker.theme.js +3 -3
- package/dist/components/forms/ColorPicker/ColorPickerInput.js +7 -7
- package/dist/components/forms/CronInput/CronInput.d.ts +3 -0
- package/dist/components/forms/CronInput/CronInput.js +107 -0
- package/dist/components/forms/CronInput/CronInput.theme.d.ts +6 -0
- package/dist/components/forms/CronInput/CronInput.theme.js +84 -0
- package/dist/components/forms/CronInput/CronInput.types.d.ts +98 -0
- package/dist/components/forms/CronInput/CronInput.utils.d.ts +67 -0
- package/dist/components/forms/CronInput/CronInput.utils.js +505 -0
- package/dist/components/forms/CronInput/index.d.ts +4 -0
- package/dist/components/forms/DatePicker/DatePicker.theme.js +3 -3
- package/dist/components/forms/DatePicker/DatePickerContent.js +1 -1
- package/dist/components/forms/FileUpload/FileUpload.js +80 -2
- package/dist/components/forms/FileUpload/FileUpload.theme.js +4 -4
- package/dist/components/forms/FormLabel/FormLabel.theme.js +1 -1
- package/dist/components/forms/Input/Input.theme.js +1 -1
- package/dist/components/forms/InputCounter/InputCounter.d.ts +1 -1
- package/dist/components/forms/InputCounter/InputCounter.theme.js +1 -1
- package/dist/components/forms/InputCounter/InputCounter.types.d.ts +3 -2
- package/dist/components/forms/InputOTP/InputOTP.theme.js +2 -2
- package/dist/components/forms/InputTag/InputTag.js +1 -1
- package/dist/components/forms/Mention/Mention.d.ts +3 -0
- package/dist/components/forms/Mention/Mention.js +607 -0
- package/dist/components/forms/Mention/Mention.theme.d.ts +6 -0
- package/dist/components/forms/Mention/Mention.theme.js +55 -0
- package/dist/components/forms/Mention/Mention.types.d.ts +151 -0
- package/dist/components/forms/Mention/Mention.utils.d.ts +42 -0
- package/dist/components/forms/Mention/Mention.utils.js +285 -0
- package/dist/components/forms/Mention/index.d.ts +3 -0
- package/dist/components/forms/Radio/Radio.d.ts +3 -4
- package/dist/components/forms/Radio/Radio.js +25 -12
- package/dist/components/forms/Radio/Radio.theme.js +34 -5
- package/dist/components/forms/Radio/Radio.types.d.ts +30 -4
- package/dist/components/forms/Radio/RadioContext.d.ts +14 -0
- package/dist/components/forms/Radio/RadioContext.js +12 -0
- package/dist/components/forms/Radio/RadioGroup.d.ts +3 -0
- package/dist/components/forms/Radio/RadioGroup.js +36 -0
- package/dist/components/forms/Radio/index.d.ts +1 -1
- package/dist/components/forms/RichTextEditor/RichTextEditor.js +2 -2
- package/dist/components/forms/RichTextEditor/RichTextEditor.theme.js +1 -1
- package/dist/components/forms/Select/Select.theme.js +1 -1
- package/dist/components/forms/SelectableCard/SelectableCard.animations.d.ts +2 -0
- package/dist/components/forms/SelectableCard/SelectableCard.animations.js +9 -0
- package/dist/components/forms/SelectableCard/SelectableCard.d.ts +5 -0
- package/dist/components/forms/SelectableCard/SelectableCard.js +58 -0
- package/dist/components/forms/SelectableCard/SelectableCard.theme.d.ts +2 -0
- package/dist/components/forms/SelectableCard/SelectableCard.theme.js +38 -0
- package/dist/components/forms/SelectableCard/SelectableCard.types.d.ts +33 -0
- package/dist/components/forms/SelectableCard/SelectableCardContext.d.ts +3 -0
- package/dist/components/forms/SelectableCard/SelectableCardContext.js +12 -0
- package/dist/components/forms/SelectableCard/SelectableCardGroup.d.ts +3 -0
- package/dist/components/forms/SelectableCard/SelectableCardGroup.js +37 -0
- package/dist/components/forms/SelectableCard/index.d.ts +3 -0
- package/dist/components/forms/Signature/Signature.theme.js +1 -1
- package/dist/components/forms/Slider/Slider.theme.js +3 -3
- package/dist/components/forms/Switch/Switch.theme.js +1 -1
- package/dist/components/forms/TimePicker/TimePicker.theme.js +2 -2
- package/dist/components/forms/TimePicker/TimePickerContent.js +78 -1
- package/dist/components/forms/TransferList/TransferList.animations.d.ts +10 -0
- package/dist/components/forms/TransferList/TransferList.animations.js +32 -0
- package/dist/components/forms/TransferList/TransferList.d.ts +28 -0
- package/dist/components/forms/TransferList/TransferList.js +199 -0
- package/dist/components/forms/TransferList/TransferList.theme.d.ts +6 -0
- package/dist/components/forms/TransferList/TransferList.theme.js +60 -0
- package/dist/components/forms/TransferList/TransferList.types.d.ts +101 -0
- package/dist/components/forms/TransferList/index.d.ts +3 -0
- package/dist/components/forms/forms.theme.js +6 -6
- package/dist/components/forms/index.d.ts +15 -2
- package/dist/components/forms/index.js +87 -0
- package/dist/components/layout/FormLayout/FormLayout.d.ts +8 -0
- package/dist/components/layout/FormLayout/FormLayout.js +22 -0
- package/dist/components/layout/FormLayout/FormLayout.theme.d.ts +2 -0
- package/dist/components/layout/FormLayout/FormLayout.theme.js +16 -0
- package/dist/components/layout/FormLayout/FormLayout.types.d.ts +61 -0
- package/dist/components/layout/FormLayout/FormLayoutBody.d.ts +3 -0
- package/dist/components/layout/FormLayout/FormLayoutBody.js +91 -0
- package/dist/components/layout/FormLayout/FormLayoutFooter.d.ts +3 -0
- package/dist/components/layout/FormLayout/FormLayoutFooter.js +12 -0
- package/dist/components/layout/FormLayout/FormLayoutHeader.d.ts +3 -0
- package/dist/components/layout/FormLayout/FormLayoutHeader.js +12 -0
- package/dist/components/layout/FormLayout/FormLayoutSection.d.ts +3 -0
- package/dist/components/layout/FormLayout/FormLayoutSection.js +12 -0
- package/dist/components/layout/FormLayout/index.d.ts +3 -0
- package/dist/components/layout/PageLayout/PageLayout.d.ts +7 -0
- package/dist/components/layout/PageLayout/PageLayout.js +33 -0
- package/dist/components/layout/PageLayout/PageLayout.theme.d.ts +2 -0
- package/dist/components/layout/PageLayout/PageLayout.theme.js +10 -0
- package/dist/components/layout/PageLayout/PageLayout.types.d.ts +39 -0
- package/dist/components/layout/PageLayout/PageLayoutContent.d.ts +3 -0
- package/dist/components/layout/PageLayout/PageLayoutContent.js +12 -0
- package/dist/components/layout/PageLayout/PageLayoutHeader.d.ts +3 -0
- package/dist/components/layout/PageLayout/PageLayoutHeader.js +12 -0
- package/dist/components/layout/PageLayout/PageLayoutSidebar.d.ts +3 -0
- package/dist/components/layout/PageLayout/PageLayoutSidebar.js +12 -0
- package/dist/components/layout/PageLayout/index.d.ts +3 -0
- package/dist/components/layout/index.d.ts +2 -0
- package/dist/hooks/useSelectPortal.d.ts +4 -2
- package/dist/hooks/useSelectPortal.js +139 -51
- package/dist/index.d.ts +2 -0
- package/dist/index.js +206 -167
- package/dist/styles.css +1 -1
- package/dist/utils/colorUtils.d.ts +23 -0
- package/dist/utils/colorUtils.js +45 -0
- package/dist/utils/dateUtils.d.ts +30 -0
- package/dist/utils/dateUtils.js +58 -1
- package/dist/utils/index.d.ts +2 -1
- package/package.json +38 -26
- package/src/global.scss +673 -0
- package/src/styles/theme.css +378 -0
- package/src/theme-plugin.css +11 -0
- package/dist/components/core/Button/Button.animations.d.ts +0 -5
- package/dist/components/core/Card/CardDescription.d.ts +0 -3
- package/dist/components/core/Card/CardDescription.js +0 -11
- package/dist/components/core/DescriptionList/DescriptionList.theme.js +0 -8
- package/dist/components/core/Modal/ModalDescription.d.ts +0 -5
- package/dist/components/core/Modal/ModalDescription.js +0 -11
- package/dist/components/core/ProgressiveBlur/ProgressiveBlur.d.ts +0 -34
- package/dist/components/core/ProgressiveBlur/ProgressiveBlur.js +0 -218
- package/dist/components/core/ProgressiveBlur/ProgressiveBlur.theme.d.ts +0 -9
- package/dist/components/core/ProgressiveBlur/ProgressiveBlur.types.d.ts +0 -48
- package/dist/components/core/ProgressiveBlur/index.d.ts +0 -2
- package/dist/components/core/Table/TablePagination.js +0 -25
- /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.d.ts +0 -0
- /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.js +0 -0
- /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.types.d.ts +0 -0
- /package/dist/components/{core → data-display}/DescriptionList/index.d.ts +0 -0
- /package/dist/components/{core → data-display}/Feed/Feed.d.ts +0 -0
- /package/dist/components/{core → data-display}/Feed/Feed.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/Feed/Feed.types.d.ts +0 -0
- /package/dist/components/{core → data-display}/Feed/index.d.ts +0 -0
- /package/dist/components/{core → data-display}/KPI/KPI.d.ts +0 -0
- /package/dist/components/{core → data-display}/KPI/KPI.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/Metric/Metric.d.ts +0 -0
- /package/dist/components/{core → data-display}/Metric/Metric.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/Metric/index.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.animations.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.animations.js +0 -0
- /package/dist/components/{core → data-display}/Table/Table.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.filterUtils.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.filterUtils.js +0 -0
- /package/dist/components/{core → data-display}/Table/Table.js +0 -0
- /package/dist/components/{core → data-display}/Table/Table.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.types.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.utils.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.utils.js +0 -0
- /package/dist/components/{core → data-display}/Table/TableActions.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableActionsMenu.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableBody.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableBody.js +0 -0
- /package/dist/components/{core → data-display}/Table/TableCell.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableCell.js +0 -0
- /package/dist/components/{core → data-display}/Table/TableColumnManager.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableDeclarative.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableDeclarative.js +0 -0
- /package/dist/components/{core → data-display}/Table/TableFilter.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableHeader.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TablePagination.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableRow.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableSelectionHeader.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/index.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableColumns.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableColumns.js +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableExpansion.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableExpansion.js +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableFilter.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableFilter.js +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTablePagination.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTablePagination.js +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableSelection.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableSelection.js +0 -0
- /package/dist/components/{core → data-display}/Table/index.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/index.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.animations.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.animations.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.types.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineContent.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineContent.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineItem.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineItem.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineMarker.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineMarker.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/index.d.ts +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { cn } from '../../../utils/cn.js';
|
|
4
|
-
import { Dropdown } from '
|
|
5
|
-
import '
|
|
6
|
-
import '
|
|
7
|
-
import '
|
|
8
|
-
import '
|
|
9
|
-
import '
|
|
10
|
-
import '
|
|
11
|
-
import { Button } from '
|
|
4
|
+
import { Dropdown } from '../../core/Dropdown/Dropdown.js';
|
|
5
|
+
import '../../core/Dropdown/DropdownTrigger.js';
|
|
6
|
+
import '../../core/Dropdown/DropdownMenu.js';
|
|
7
|
+
import '../../core/Dropdown/DropdownItem.js';
|
|
8
|
+
import '../../core/Dropdown/DropdownSection.js';
|
|
9
|
+
import '../../core/Dropdown/DropdownSeparator.js';
|
|
10
|
+
import '../../core/Dropdown/Dropdown.theme.js';
|
|
11
|
+
import { Button } from '../../core/Button/Button.js';
|
|
12
12
|
import { EllipsisHorizontalIcon } from '@heroicons/react/20/solid';
|
|
13
13
|
|
|
14
14
|
/**
|
|
@@ -17,7 +17,7 @@ const TableActionsMenu = ({ actions, row, onClose, className, }) => {
|
|
|
17
17
|
var _a;
|
|
18
18
|
const isDisabled = (_a = action.disabled) === null || _a === void 0 ? void 0 : _a.call(action, row);
|
|
19
19
|
const Icon = action.icon;
|
|
20
|
-
return (jsxs("button", { onClick: () => handleActionClick(action), disabled: isDisabled, className: cn("w-full flex items-center gap-3 px-3 py-2 text-
|
|
20
|
+
return (jsxs("button", { onClick: () => handleActionClick(action), disabled: isDisabled, className: cn("w-full flex items-center gap-3 px-3 py-2 text-base font-medium text-left transition-all duration-300", "hover:bg-[var(--color-background-secondary)] focus:bg-[var(--color-background-secondary)] focus:outline-none rounded-sm cursor-pointer", action.variant === 'danger'
|
|
21
21
|
? "text-[var(--color-danger)] hover:bg-[var(--color-danger-50)] focus:bg-[var(--color-danger-50)]"
|
|
22
22
|
: "text-[var(--color-text-primary)]", isDisabled && "opacity-50 cursor-not-allowed hover:bg-transparent"), role: "menuitem", "aria-label": action.label, children: [jsx(Icon, { className: "size-4 flex-shrink-0" }), jsx("span", { children: action.label })] }, action.id));
|
|
23
23
|
}) }));
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { Popover } from '
|
|
3
|
-
import '
|
|
2
|
+
import { Popover } from '../../core/Popover/Popover.js';
|
|
3
|
+
import '../../core/Popover/PopoverContext.js';
|
|
4
4
|
import { Cog6ToothIcon } from '@heroicons/react/24/outline';
|
|
5
|
-
import { Button } from '
|
|
5
|
+
import { Button } from '../../core/Button/Button.js';
|
|
6
|
+
import 'react';
|
|
6
7
|
import { Checkbox } from '../../forms/Checkbox/Checkbox.js';
|
|
7
|
-
import { Sortable, SortableItem } from '
|
|
8
|
+
import { Sortable, SortableItem } from '../../core/Sortable/Sortable.js';
|
|
8
9
|
|
|
9
10
|
function TableColumnManagerComponent({ columns, visibleColumns, columnOrder, onToggleColumn, onResetToDefault, onColumnReorder, }) {
|
|
10
11
|
const orderedColumns = columnOrder.length > 0
|
|
@@ -16,7 +17,7 @@ function TableColumnManagerComponent({ columns, visibleColumns, columnOrder, onT
|
|
|
16
17
|
const displayName = typeof column.header === 'string' ? column.header : column.id;
|
|
17
18
|
return (jsx(Checkbox, { id: `column-checkbox-${column.id}`, name: `column-${column.id}`, value: column.id, checked: isVisible, onChange: () => onToggleColumn(column.id), "aria-label": `Toggle visibility for ${displayName} column`, label: displayName, state: isLocked ? 'disabled' : 'default' }));
|
|
18
19
|
};
|
|
19
|
-
return (jsxs(Popover, { placement: "bottom-end", offset: 8, children: [jsx(Popover.Trigger, { children: jsxs(Button, { color: "neutral", variant: "filled", "aria-label": "Manage column visibility", children: [jsx(Cog6ToothIcon, { className: "size-5", "aria-hidden": "true" }), "Manage Columns"] }) }), jsx(Popover.Content, { className: "p-0", children: jsxs("div", { className: "w-64 p-3 overflow-hidden", role: "dialog", "aria-labelledby": "column-manager-title", "aria-describedby": "column-manager-description", "aria-modal": "true", children: [jsx("div", { id: "column-manager-title", className: "text-
|
|
20
|
+
return (jsxs(Popover, { placement: "bottom-end", offset: 8, children: [jsx(Popover.Trigger, { children: jsxs(Button, { color: "neutral", variant: "filled", "aria-label": "Manage column visibility", children: [jsx(Cog6ToothIcon, { className: "size-5", "aria-hidden": "true" }), "Manage Columns"] }) }), jsx(Popover.Content, { className: "p-0", children: jsxs("div", { className: "w-64 p-3 overflow-hidden", role: "dialog", "aria-labelledby": "column-manager-title", "aria-describedby": "column-manager-description", "aria-modal": "true", children: [jsx("div", { id: "column-manager-title", className: "text-sm uppercase font-bold mb-3 text-[var(--color-text-placeholder)]", children: "Manage Columns" }), jsx("div", { id: "column-manager-description", className: "sr-only", children: "Use checkboxes to control which columns are visible in the table. Locked columns cannot be hidden." }), jsx("div", { className: "space-y-0.5", role: "group", "aria-label": "Column visibility options", children: onColumnReorder ? (jsx(Sortable, { onReorder: onColumnReorder, showDragHandle: true, className: "space-y-0.5", children: orderedColumns.map((column) => (jsx(SortableItem, { id: column.id, disabled: column.locked === true, className: `hover:bg-[var(--color-background-tertiary)] rounded-lg p-1.5 transition-colors ${column.locked ? 'bg-[var(--color-background-secondary)]' : ''}`, children: renderColumnItem(column) }, column.id))) })) : (orderedColumns.map((column) => (jsx("div", { className: `hover:bg-[var(--color-background-tertiary)] rounded-lg p-1.5 transition-colors ${column.locked ? 'bg-[var(--color-background-secondary)]' : ''}`, children: renderColumnItem(column) }, column.id)))) }), jsx("div", { className: "mt-3 flex justify-end", children: jsx(Button, { color: "neutral", variant: "filled", className: "w-full", onClick: onResetToDefault, children: "Reset to Default" }) })] }) })] }));
|
|
20
21
|
}
|
|
21
22
|
const TableColumnManager = TableColumnManagerComponent;
|
|
22
23
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useState, useCallback } from 'react';
|
|
3
3
|
import { inferFilterType, getDefaultOperator, isUnaryOperator, getOperatorsForFilterType, isBetweenOperator } from './Table.filterUtils.js';
|
|
4
|
-
import { Button } from '
|
|
4
|
+
import { Button } from '../../core/Button/Button.js';
|
|
5
5
|
import { Input } from '../../forms/Input/Input.js';
|
|
6
6
|
import '../../forms/Input/Input.theme.js';
|
|
7
7
|
import { Select } from '../../forms/Select/Select.js';
|
|
8
8
|
import '../../forms/Select/Select.theme.js';
|
|
9
|
-
import { Popover } from '
|
|
10
|
-
import '
|
|
9
|
+
import { Popover } from '../../core/Popover/Popover.js';
|
|
10
|
+
import '../../core/Popover/PopoverContext.js';
|
|
11
11
|
import { FunnelIcon, XMarkIcon, PlusIcon } from '@heroicons/react/24/outline';
|
|
12
12
|
import { cn } from '../../../utils/cn.js';
|
|
13
13
|
|
|
@@ -23,7 +23,7 @@ function FilterValueInput({ filter, column, filterType, onValueChange, }) {
|
|
|
23
23
|
if (isBetweenOperator(filter.operator)) {
|
|
24
24
|
const betweenValue = Array.isArray(filter.value) ? filter.value : ["", ""];
|
|
25
25
|
const inputType = filterType === "date" ? "date" : "number";
|
|
26
|
-
return (jsxs("div", { className: "flex items-center gap-1 flex-1 min-w-0", children: [jsx(Input, { value: (_a = betweenValue[0]) !== null && _a !== void 0 ? _a : "", onChange: (e) => onValueChange([e.target.value, betweenValue[1]]), placeholder: "Min", size: "sm", type: inputType, className: "flex-1 min-w-0" }), jsx("span", { className: "text-
|
|
26
|
+
return (jsxs("div", { className: "flex items-center gap-1 flex-1 min-w-0", children: [jsx(Input, { value: (_a = betweenValue[0]) !== null && _a !== void 0 ? _a : "", onChange: (e) => onValueChange([e.target.value, betweenValue[1]]), placeholder: "Min", size: "sm", type: inputType, className: "flex-1 min-w-0" }), jsx("span", { className: "text-sm text-[var(--color-text-muted)]", children: "\u2013" }), jsx(Input, { value: (_b = betweenValue[1]) !== null && _b !== void 0 ? _b : "", onChange: (e) => onValueChange([betweenValue[0], e.target.value]), placeholder: "Max", size: "sm", type: inputType, className: "flex-1 min-w-0" })] }));
|
|
27
27
|
}
|
|
28
28
|
// Select filter type
|
|
29
29
|
if (filterType === "select" && (column === null || column === void 0 ? void 0 : column.filterOptions)) {
|
|
@@ -206,9 +206,9 @@ function TableFilter({ columns, filterConfig, onFilterChange, filterLogic: contr
|
|
|
206
206
|
return true;
|
|
207
207
|
return f.value != null && f.value !== "";
|
|
208
208
|
}).length;
|
|
209
|
-
return (jsxs(Popover, { placement: "bottom-end", offset: 8, closeOnClickOutside: false, children: [jsx(Popover.Trigger, { children: jsxs(Button, { color: "neutral", variant: "outline", "aria-label": "Filter table data", size: "sm", children: [jsx(FunnelIcon, { className: "size-4", "aria-hidden": "true" }), "Filters", appliedFilterCount > 0 && (jsx("span", { className: "ml-1 inline-flex items-center justify-center size-5 rounded-full bg-[var(--color-primary)] text-
|
|
209
|
+
return (jsxs(Popover, { placement: "bottom-end", offset: 8, closeOnClickOutside: false, children: [jsx(Popover.Trigger, { children: jsxs(Button, { color: "neutral", variant: "outline", "aria-label": "Filter table data", size: "sm", children: [jsx(FunnelIcon, { className: "size-4", "aria-hidden": "true" }), "Filters", appliedFilterCount > 0 && (jsx("span", { className: "ml-1 inline-flex items-center justify-center size-5 rounded-full bg-[var(--color-primary)] text-[var(--color-primary-contrast)] text-sm font-medium", children: appliedFilterCount }))] }) }), jsx(Popover.Content, { className: "p-0 max-w-none", children: jsxs("div", { className: cn("w-[500px] p-3", className), role: "dialog", "aria-labelledby": "table-filter-title", "aria-modal": "true", children: [jsxs("div", { className: "flex items-center justify-between mb-3", children: [jsx("div", { id: "table-filter-title", className: "text-sm uppercase font-bold text-[var(--color-text-placeholder)]", children: "Filters" }), activeFilters.length > 1 && (jsxs("div", { className: "flex items-center gap-0.5 rounded-md bg-[var(--color-background-secondary)] p-0.5", children: [jsx("button", { type: "button", className: cn("px-2.5 py-0.5 text-sm font-medium rounded transition-colors", filterLogic === "and"
|
|
210
210
|
? "bg-[var(--color-background)] text-[var(--color-text-primary)] shadow-sm"
|
|
211
|
-
: "text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)]"), onClick: () => handleSetLogic("and"), children: "AND" }), jsx("button", { type: "button", className: cn("px-2.5 py-0.5 text-
|
|
211
|
+
: "text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)]"), onClick: () => handleSetLogic("and"), children: "AND" }), jsx("button", { type: "button", className: cn("px-2.5 py-0.5 text-sm font-medium rounded transition-colors", filterLogic === "or"
|
|
212
212
|
? "bg-[var(--color-background)] text-[var(--color-text-primary)] shadow-sm"
|
|
213
213
|
: "text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)]"), onClick: () => handleSetLogic("or"), children: "OR" })] }))] }), jsx("div", { className: "-m-1 p-1 space-y-2 max-h-[300px] overflow-y-auto", children: activeFilters.map((filter) => {
|
|
214
214
|
const selectedColumn = getSelectedColumn(filter.columnId);
|
|
@@ -48,7 +48,7 @@ function TableHeaderComponent({ columns, sortConfig = [], onSortChange, freezeHe
|
|
|
48
48
|
}, row: {}, rowId: "", isHeader: true, theme: theme, children: jsx("div", { className: "flex items-center gap-2", children: selectable && selectionType === 'checkbox' && (jsx(Checkbox, { id: "table-select-all", name: "table-select-all", value: "select-all", checked: isAllSelected, indeterminate: isIndeterminate, onChange: handleSelectAll, "aria-label": "Select all rows" })) }) })), columns.map((column, index) => {
|
|
49
49
|
const currentSort = sortConfig.find(sort => sort.columnId === column.id);
|
|
50
50
|
const isSortable = column.sortable && onSortChange;
|
|
51
|
-
return (jsx(TableCell, { column: column, row: {}, rowId: "header", isHeader: true, isFrozen: freezeFirstColumn && index === 0, isLastFrozen: freezeLastColumn && index === columns.length - 1, theme: theme, children: isSortable ? (jsxs("button", { onClick: () => handleSort(column.id), className: "flex items-center gap-1 w-full text-left hover:text-[var(--color-primary)] transition-colors", "aria-label": `Sort by ${typeof column.header === 'string' ? column.header : column.id}`, children: [column.header, currentSort && (jsx("span", { className: "text-
|
|
51
|
+
return (jsx(TableCell, { column: column, row: {}, rowId: "header", isHeader: true, isFrozen: freezeFirstColumn && index === 0, isLastFrozen: freezeLastColumn && index === columns.length - 1, theme: theme, children: isSortable ? (jsxs("button", { onClick: () => handleSort(column.id), className: "flex items-center gap-1 w-full text-left hover:text-[var(--color-primary)] transition-colors", "aria-label": `Sort by ${typeof column.header === 'string' ? column.header : column.id}`, children: [column.header, currentSort && (jsx("span", { className: "text-sm", children: currentSort.direction === 'asc' ? '\u2191' : '\u2193' }))] })) : (column.header) }, column.id));
|
|
52
52
|
})] }) }));
|
|
53
53
|
}
|
|
54
54
|
const TableHeader = TableHeaderComponent;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
import { Pagination } from '../../core/Pagination/Pagination.js';
|
|
4
|
+
import { Select } from '../../forms/Select/Select.js';
|
|
5
|
+
import '../../forms/Select/Select.theme.js';
|
|
6
|
+
import { cn } from '../../../utils/cn.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* TablePagination provides a standardized pagination interface for tables
|
|
10
|
+
* Combines the core Pagination component with page size selection controls
|
|
11
|
+
*/
|
|
12
|
+
const TablePagination = React__default.forwardRef(({ currentPage, totalItems, pageSize, pageSizeOptions = [10, 25, 50, 100], onPageChange, onPageSizeChange, showPageSizeSelector = true, className, }, ref) => {
|
|
13
|
+
const totalPages = Math.ceil(totalItems / pageSize);
|
|
14
|
+
const startItem = (currentPage - 1) * pageSize + 1;
|
|
15
|
+
const endItem = Math.min(currentPage * pageSize, totalItems);
|
|
16
|
+
const pageSizeSelectOptions = pageSizeOptions.map((option) => ({
|
|
17
|
+
id: option,
|
|
18
|
+
label: option.toString(),
|
|
19
|
+
value: option,
|
|
20
|
+
}));
|
|
21
|
+
return (jsxs("div", { ref: ref, className: cn("flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 px-4 py-3 border-t border-[var(--color-border)] bg-[var(--color-background)]", className), children: [jsxs("div", { className: "flex items-center gap-4", children: [showPageSizeSelector && (jsxs("div", { className: "flex items-center gap-2", children: [jsx("span", { className: "text-base text-[var(--color-text-muted)]", children: "Rows per page:" }), jsx(Select, { value: pageSize, onChange: (value) => onPageSizeChange(value), options: pageSizeSelectOptions, size: "sm", className: "w-20" })] })), jsx("div", { className: "text-base text-[var(--color-text-muted)]", children: totalItems > 0 ? (jsxs(Fragment, { children: ["Showing ", startItem.toLocaleString(), " to ", endItem.toLocaleString(), " of", " ", totalItems.toLocaleString(), " results"] })) : ("No results") })] }), totalPages > 1 && (jsx(Pagination, { currentPage: currentPage, totalPages: totalPages, onPageChange: onPageChange, showPrevNext: true, showFirstLast: false, siblingCount: 1 }))] }));
|
|
22
|
+
});
|
|
23
|
+
TablePagination.displayName = "Table.Pagination";
|
|
24
|
+
|
|
25
|
+
export { TablePagination };
|
|
@@ -2,7 +2,7 @@ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import { AnimatePresence, motion } from 'motion/react';
|
|
4
4
|
import { TableCell } from './TableCell.js';
|
|
5
|
-
import { Button } from '
|
|
5
|
+
import { Button } from '../../core/Button/Button.js';
|
|
6
6
|
import { Checkbox } from '../../forms/Checkbox/Checkbox.js';
|
|
7
7
|
import { Radio } from '../../forms/Radio/Radio.js';
|
|
8
8
|
import { MinusIcon, PlusIcon } from '@heroicons/react/24/outline';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { XMarkIcon } from '@heroicons/react/24/outline';
|
|
3
|
-
import { Button } from '
|
|
4
|
-
import { cn } from '../../../utils/cn.js';
|
|
3
|
+
import { Button } from '../../core/Button/Button.js';
|
|
5
4
|
import 'react';
|
|
5
|
+
import { cn } from '../../../utils/cn.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Selection header that appears when rows are selected
|
|
@@ -11,7 +11,7 @@ import 'react';
|
|
|
11
11
|
const TableSelectionHeader = ({ selectedCount, totalCount, selectedRows, bulkActions = [], onClearSelection, className, }) => {
|
|
12
12
|
if (selectedCount === 0)
|
|
13
13
|
return null;
|
|
14
|
-
return (jsxs("div", { className: cn("flex items-center justify-between px-3 py-1 rounded-lg shadow-xl bg-[var(--color-background-secondary)] z-10", className), children: [jsxs("div", { className: "flex items-center gap-3", children: [jsx("span", { className: "text-[var(--color-text-muted)] text-
|
|
14
|
+
return (jsxs("div", { className: cn("flex items-center justify-between px-3 py-1 rounded-lg shadow-xl bg-[var(--color-background-secondary)] z-10", className), children: [jsxs("div", { className: "flex items-center gap-3", children: [jsx("span", { className: "text-[var(--color-text-muted)] text-base border-r border-[var(--color-border)] pr-3", children: selectedCount === totalCount
|
|
15
15
|
? `All ${selectedCount} selected`
|
|
16
16
|
: `${selectedCount} selected` }), bulkActions.length > 0 && (jsx("div", { className: "flex items-center gap-2", children: bulkActions.map((action) => {
|
|
17
17
|
return (jsx(Button, { color: "neutral", variant: "filled", onClick: () => action.onClick(selectedRows), className: "text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)]", size: "sm", children: action.label }, action.id));
|
|
@@ -19,8 +19,8 @@ const timelineTheme = {
|
|
|
19
19
|
markerStyle: "relative z-10 flex items-center justify-center shrink-0 rounded-full border-2 transition-colors duration-200",
|
|
20
20
|
// Marker status-specific styles
|
|
21
21
|
markerStatuses: {
|
|
22
|
-
completed: "w-8 h-8 bg-[var(--color-success)] border-[var(--color-success)] text-
|
|
23
|
-
active: "w-8 h-8 bg-[var(--color-primary)] border-[var(--color-primary)] text-
|
|
22
|
+
completed: "w-8 h-8 bg-[var(--color-success)] border-[var(--color-success)] text-[var(--color-success-contrast)]",
|
|
23
|
+
active: "w-8 h-8 bg-[var(--color-primary)] border-[var(--color-primary)] text-[var(--color-primary-contrast)] ring-4 ring-[var(--color-primary-100)]",
|
|
24
24
|
pending: "w-8 h-8 bg-[var(--color-background)] border-[var(--color-border)]",
|
|
25
25
|
},
|
|
26
26
|
// Content area - vertical
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export { Table } from './Table/index.js';
|
|
2
|
+
export { KPI } from './KPI/KPI.js';
|
|
3
|
+
export { kpiTheme } from './KPI/KPI.theme.js';
|
|
4
|
+
export { Metric } from './Metric/Metric.js';
|
|
5
|
+
export { metricTheme } from './Metric/Metric.theme.js';
|
|
6
|
+
export { DescriptionList } from './DescriptionList/DescriptionList.js';
|
|
7
|
+
export { Timeline } from './Timeline/Timeline.js';
|
|
8
|
+
export { Feed } from './Feed/Feed.js';
|
|
9
|
+
export { GanttChart } from './GanttChart/GanttChart.js';
|
|
10
|
+
export { ganttChartTheme } from './GanttChart/GanttChart.theme.js';
|
|
11
|
+
export { TableActions } from './Table/TableActions.js';
|
|
12
|
+
export { TableActionsMenu } from './Table/TableActionsMenu.js';
|
|
13
|
+
export { TableFilter } from './Table/TableFilter.js';
|
|
14
|
+
export { TablePagination } from './Table/TablePagination.js';
|
|
15
|
+
export { filterData, getDefaultOperator, getOperatorsForFilterType, inferFilterType, isBetweenOperator, isUnaryOperator, operatorLabels } from './Table/Table.filterUtils.js';
|
|
16
|
+
export { useTableColumns } from './Table/hooks/useTableColumns.js';
|
|
17
|
+
export { useTableExpansion } from './Table/hooks/useTableExpansion.js';
|
|
18
|
+
export { useTableFilter } from './Table/hooks/useTableFilter.js';
|
|
19
|
+
export { useTablePagination } from './Table/hooks/useTablePagination.js';
|
|
20
|
+
export { useTableSelection } from './Table/hooks/useTableSelection.js';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { AIOrb } from "../AIOrb";
|
|
2
|
+
export type { AIOrbProps, DotSphereProps, LiquidProps } from "../AIOrb";
|
|
3
|
+
export { Particles } from "../Particles";
|
|
4
|
+
export type { ParticlesProps } from "../Particles";
|
|
5
|
+
export { SpotlightBorder } from "../SpotlightBorder";
|
|
6
|
+
export type { SpotlightBorderProps, SpotlightBorderVariation, } from "../SpotlightBorder";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AuroraProps } from './Aurora.types';
|
|
3
|
+
/**
|
|
4
|
+
* Aurora creates an animated multi-color gradient background effect.
|
|
5
|
+
*
|
|
6
|
+
* Renders several large, blurred, semi-transparent blobs that slowly drift
|
|
7
|
+
* and morph, producing an organic aurora-like glow. Ideal for hero sections
|
|
8
|
+
* and decorative backgrounds.
|
|
9
|
+
*
|
|
10
|
+
* The component renders as an absolutely-positioned layer with
|
|
11
|
+
* `pointer-events-none`, so it will not interfere with interactive content.
|
|
12
|
+
* The parent element should have `position: relative` and `overflow: hidden`.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* <div className="relative overflow-hidden h-96 bg-gray-950">
|
|
17
|
+
* <Aurora />
|
|
18
|
+
* <div className="relative z-10 text-white p-8">
|
|
19
|
+
* <h1>Hero Content</h1>
|
|
20
|
+
* </div>
|
|
21
|
+
* </div>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const Aurora: React.FC<AuroraProps>;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useReducedMotion, motion } from 'motion/react';
|
|
3
|
+
import { cn } from '../../../utils/cn.js';
|
|
4
|
+
|
|
5
|
+
const DEFAULT_COLORS = ['#3b82f6', '#8b5cf6', '#ec4899', '#06b6d4'];
|
|
6
|
+
/**
|
|
7
|
+
* Each blob follows a unique organic path using keyframed x/y translations
|
|
8
|
+
* and scale changes. The durations are intentionally varied so the blobs
|
|
9
|
+
* never synchronize, producing a natural morphing look.
|
|
10
|
+
*/
|
|
11
|
+
const blobAnimations = [
|
|
12
|
+
{
|
|
13
|
+
// Blob 0 -- slow horizontal drift with vertical bob
|
|
14
|
+
x: ['0%', '30%', '-20%', '10%', '0%'],
|
|
15
|
+
y: ['0%', '-25%', '15%', '-10%', '0%'],
|
|
16
|
+
scale: [1, 1.15, 0.9, 1.05, 1],
|
|
17
|
+
baseDuration: 20,
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
// Blob 1 -- figure-8-ish path, slightly faster
|
|
21
|
+
x: ['0%', '-35%', '25%', '-15%', '0%'],
|
|
22
|
+
y: ['0%', '20%', '-30%', '25%', '0%'],
|
|
23
|
+
scale: [1, 0.9, 1.2, 0.95, 1],
|
|
24
|
+
baseDuration: 23,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
// Blob 2 -- wide circular sweep
|
|
28
|
+
x: ['0%', '25%', '0%', '-25%', '0%'],
|
|
29
|
+
y: ['0%', '-20%', '25%', '-15%', '0%'],
|
|
30
|
+
scale: [1, 1.1, 0.85, 1.15, 1],
|
|
31
|
+
baseDuration: 27,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
// Blob 3 -- gentle diagonal drift
|
|
35
|
+
x: ['0%', '-20%', '30%', '-10%', '0%'],
|
|
36
|
+
y: ['0%', '30%', '-20%', '10%', '0%'],
|
|
37
|
+
scale: [1, 0.95, 1.1, 0.9, 1],
|
|
38
|
+
baseDuration: 31,
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
/**
|
|
42
|
+
* Positions each blob at a different quadrant of the container so they
|
|
43
|
+
* begin spread out. Additional blobs beyond 4 cycle through positions.
|
|
44
|
+
*/
|
|
45
|
+
const blobPositions = [
|
|
46
|
+
{ top: '10%', left: '15%' },
|
|
47
|
+
{ top: '5%', right: '10%' },
|
|
48
|
+
{ bottom: '10%', left: '20%' },
|
|
49
|
+
{ bottom: '5%', right: '15%' },
|
|
50
|
+
];
|
|
51
|
+
/**
|
|
52
|
+
* Aurora creates an animated multi-color gradient background effect.
|
|
53
|
+
*
|
|
54
|
+
* Renders several large, blurred, semi-transparent blobs that slowly drift
|
|
55
|
+
* and morph, producing an organic aurora-like glow. Ideal for hero sections
|
|
56
|
+
* and decorative backgrounds.
|
|
57
|
+
*
|
|
58
|
+
* The component renders as an absolutely-positioned layer with
|
|
59
|
+
* `pointer-events-none`, so it will not interfere with interactive content.
|
|
60
|
+
* The parent element should have `position: relative` and `overflow: hidden`.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```tsx
|
|
64
|
+
* <div className="relative overflow-hidden h-96 bg-gray-950">
|
|
65
|
+
* <Aurora />
|
|
66
|
+
* <div className="relative z-10 text-white p-8">
|
|
67
|
+
* <h1>Hero Content</h1>
|
|
68
|
+
* </div>
|
|
69
|
+
* </div>
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
const Aurora = ({ colors = DEFAULT_COLORS, blur = 80, speed = 1, opacity = 0.3, size = 1, className, style, ...props }) => {
|
|
73
|
+
const shouldReduceMotion = useReducedMotion();
|
|
74
|
+
// Compute base blob dimension from the size multiplier.
|
|
75
|
+
// Using percentage-based sizing so it scales with the container.
|
|
76
|
+
const blobDimension = `${40 * size}%`;
|
|
77
|
+
return (jsx("div", { className: cn('absolute inset-0 overflow-hidden pointer-events-none', className), style: {
|
|
78
|
+
opacity,
|
|
79
|
+
filter: `blur(${blur}px)`,
|
|
80
|
+
...style,
|
|
81
|
+
}, "aria-hidden": "true", ...props, children: colors.map((color, index) => {
|
|
82
|
+
const anim = blobAnimations[index % blobAnimations.length];
|
|
83
|
+
const position = blobPositions[index % blobPositions.length];
|
|
84
|
+
const duration = anim.baseDuration / speed;
|
|
85
|
+
// When reduced motion is preferred, render static blobs with no animation.
|
|
86
|
+
if (shouldReduceMotion) {
|
|
87
|
+
return (jsx("div", { style: {
|
|
88
|
+
position: 'absolute',
|
|
89
|
+
...position,
|
|
90
|
+
width: blobDimension,
|
|
91
|
+
height: blobDimension,
|
|
92
|
+
borderRadius: '50%',
|
|
93
|
+
background: `radial-gradient(circle at center, ${color}, transparent 70%)`,
|
|
94
|
+
mixBlendMode: 'screen',
|
|
95
|
+
} }, index));
|
|
96
|
+
}
|
|
97
|
+
return (jsx(motion.div, { animate: {
|
|
98
|
+
x: anim.x,
|
|
99
|
+
y: anim.y,
|
|
100
|
+
scale: anim.scale,
|
|
101
|
+
}, transition: {
|
|
102
|
+
duration,
|
|
103
|
+
repeat: Infinity,
|
|
104
|
+
repeatType: 'loop',
|
|
105
|
+
ease: 'easeInOut',
|
|
106
|
+
}, style: {
|
|
107
|
+
position: 'absolute',
|
|
108
|
+
...position,
|
|
109
|
+
width: blobDimension,
|
|
110
|
+
height: blobDimension,
|
|
111
|
+
borderRadius: '50%',
|
|
112
|
+
background: `radial-gradient(circle at center, ${color}, transparent 70%)`,
|
|
113
|
+
mixBlendMode: 'screen',
|
|
114
|
+
willChange: 'transform',
|
|
115
|
+
} }, index));
|
|
116
|
+
}) }));
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export { Aurora };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
export interface AuroraProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Array of CSS color values for the gradient blobs (default: ['#3b82f6', '#8b5cf6', '#ec4899', '#06b6d4']) */
|
|
4
|
+
colors?: string[];
|
|
5
|
+
/** Blur amount in pixels applied to blobs (default: 80) */
|
|
6
|
+
blur?: number;
|
|
7
|
+
/** Animation speed multiplier. Higher values = faster movement (default: 1) */
|
|
8
|
+
speed?: number;
|
|
9
|
+
/** Overall opacity of the aurora layer, 0-1 (default: 0.3) */
|
|
10
|
+
opacity?: number;
|
|
11
|
+
/** Blob size multiplier. Higher values = larger blobs (default: 1) */
|
|
12
|
+
size?: number;
|
|
13
|
+
/** Additional className for the container */
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
@@ -31,5 +31,5 @@ export declare const CustomCursorProvider: React.ForwardRefExoticComponent<Omit<
|
|
|
31
31
|
* </CustomCursor>
|
|
32
32
|
* ```
|
|
33
33
|
*/
|
|
34
|
-
export declare const CustomCursor: React.ForwardRefExoticComponent<
|
|
35
|
-
export declare const CustomCursorFollow: React.ForwardRefExoticComponent<
|
|
34
|
+
export declare const CustomCursor: React.ForwardRefExoticComponent<CustomCursorProps & React.RefAttributes<HTMLDivElement>>;
|
|
35
|
+
export declare const CustomCursorFollow: React.ForwardRefExoticComponent<CustomCursorFollowProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -312,7 +312,7 @@ const CustomCursorFollow = React.forwardRef(({ children, sideOffset = 15, align
|
|
|
312
312
|
// Determine content based on variant
|
|
313
313
|
const renderContent = () => {
|
|
314
314
|
if (variant === 'user') {
|
|
315
|
-
return (jsxs(Fragment, { children: [avatar && jsx(Avatar, { src: avatar, alt: name || 'User', size: "xs" }), name && (jsx("span", { className: "text-white text-
|
|
315
|
+
return (jsxs(Fragment, { children: [avatar && jsx(Avatar, { src: avatar, alt: name || 'User', size: "xs" }), name && (jsx("span", { className: "text-white text-sm font-medium whitespace-nowrap", children: name }))] }));
|
|
316
316
|
}
|
|
317
317
|
return children;
|
|
318
318
|
};
|
|
@@ -6,13 +6,14 @@ const customCursorTheme = {
|
|
|
6
6
|
baseStyle: "pointer-events-none z-[9999] absolute transform-[translate(-50%,-50%)]",
|
|
7
7
|
cursorStyle: "transition-transform duration-150",
|
|
8
8
|
cursorFollowVariants: {
|
|
9
|
-
default: "rounded-[var(--radius-base)] bg-white dark:bg-[var(--color-background-secondary)] shadow-lg border border-[var(--color-border)] px-3 py-2 text-
|
|
9
|
+
default: "rounded-[var(--radius-base)] bg-white dark:bg-[var(--color-background-secondary)] shadow-lg border border-[var(--color-border)] px-3 py-2 text-base text-[var(--color-text-primary)]",
|
|
10
10
|
user: "flex items-center gap-2 rounded-full pl-1 pr-3 py-1 shadow-xl",
|
|
11
11
|
},
|
|
12
12
|
cursorFollowColors: {
|
|
13
13
|
neutral: "bg-[var(--color-background-secondary)]",
|
|
14
14
|
dark: "bg-[var(--color-text-primary)]",
|
|
15
15
|
primary: "bg-[var(--color-primary)]",
|
|
16
|
+
secondary: "bg-[var(--color-secondary)]",
|
|
16
17
|
success: "bg-[var(--color-success)]",
|
|
17
18
|
warning: "bg-[var(--color-warning)]",
|
|
18
19
|
danger: "bg-[var(--color-danger)]",
|
|
@@ -26,6 +27,7 @@ const customCursorTheme = {
|
|
|
26
27
|
neutral: "text-[var(--color-background-secondary)]",
|
|
27
28
|
dark: "text-[var(--color-text-primary)]",
|
|
28
29
|
primary: "text-[var(--color-primary)]",
|
|
30
|
+
secondary: "text-[var(--color-secondary)]",
|
|
29
31
|
success: "text-[var(--color-success)]",
|
|
30
32
|
warning: "text-[var(--color-warning)]",
|
|
31
33
|
danger: "text-[var(--color-danger)]",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { SpringOptions } from 'motion/react';
|
|
3
|
+
import { SemanticColor } from '../../../utils/colorUtils';
|
|
3
4
|
/**
|
|
4
5
|
* Alignment positions for CustomCursorFollow relative to the main cursor
|
|
5
6
|
*/
|
|
@@ -11,7 +12,7 @@ export type CustomCursorSize = 'sm' | 'md' | 'lg';
|
|
|
11
12
|
/**
|
|
12
13
|
* Color variants for the custom cursor
|
|
13
14
|
*/
|
|
14
|
-
export type CustomCursorColor =
|
|
15
|
+
export type CustomCursorColor = SemanticColor | 'dark';
|
|
15
16
|
/**
|
|
16
17
|
* Visual variants for the custom cursor
|
|
17
18
|
*/
|
|
@@ -48,7 +49,7 @@ export interface CustomCursorProviderProps extends React.ComponentProps<'div'> {
|
|
|
48
49
|
/**
|
|
49
50
|
* Props for CustomCursor component
|
|
50
51
|
*/
|
|
51
|
-
export interface CustomCursorProps extends
|
|
52
|
+
export interface CustomCursorProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
52
53
|
children?: React.ReactNode;
|
|
53
54
|
size?: CustomCursorSize;
|
|
54
55
|
color?: CustomCursorColor;
|
|
@@ -59,7 +60,7 @@ export interface CustomCursorProps extends HTMLMotionProps<'div'> {
|
|
|
59
60
|
/**
|
|
60
61
|
* Props for CustomCursorFollow component
|
|
61
62
|
*/
|
|
62
|
-
export interface CustomCursorFollowProps extends
|
|
63
|
+
export interface CustomCursorFollowProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
63
64
|
children?: React.ReactNode;
|
|
64
65
|
sideOffset?: number;
|
|
65
66
|
align?: AlignType;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { DotPatternProps } from "./DotPattern.types";
|
|
3
|
+
/**
|
|
4
|
+
* DotPattern renders an SVG-based dot grid background pattern.
|
|
5
|
+
*
|
|
6
|
+
* Use it as an absolute-positioned decorative background inside a container
|
|
7
|
+
* with `position: relative`. The pattern is fully non-interactive
|
|
8
|
+
* (`pointer-events: none`) and sits at `z-index: 0` by default.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* <div className="relative overflow-hidden h-96">
|
|
13
|
+
* <DotPattern spacing={24} dotSize={1.5} fade animated />
|
|
14
|
+
* <div className="relative z-10">Your content here</div>
|
|
15
|
+
* </div>
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare const DotPattern: React.ForwardRefExoticComponent<DotPatternProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import React__default, { useId, useMemo } from 'react';
|
|
3
|
+
import { useReducedMotion, motion } from 'motion/react';
|
|
4
|
+
import { cn } from '../../../utils/cn.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Build a CSS mask-image value for the given fade direction and size.
|
|
8
|
+
*/
|
|
9
|
+
function buildMaskImage(direction, fadeSize) {
|
|
10
|
+
const stop = Math.max(0, Math.min(100, fadeSize));
|
|
11
|
+
if (direction === "radial") {
|
|
12
|
+
return `radial-gradient(ellipse at center, black ${100 - stop}%, transparent 100%)`;
|
|
13
|
+
}
|
|
14
|
+
const directionMap = {
|
|
15
|
+
top: "to top",
|
|
16
|
+
bottom: "to bottom",
|
|
17
|
+
left: "to left",
|
|
18
|
+
right: "to right",
|
|
19
|
+
};
|
|
20
|
+
return `linear-gradient(${directionMap[direction]}, black ${100 - stop}%, transparent 100%)`;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* DotPattern renders an SVG-based dot grid background pattern.
|
|
24
|
+
*
|
|
25
|
+
* Use it as an absolute-positioned decorative background inside a container
|
|
26
|
+
* with `position: relative`. The pattern is fully non-interactive
|
|
27
|
+
* (`pointer-events: none`) and sits at `z-index: 0` by default.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* <div className="relative overflow-hidden h-96">
|
|
32
|
+
* <DotPattern spacing={24} dotSize={1.5} fade animated />
|
|
33
|
+
* <div className="relative z-10">Your content here</div>
|
|
34
|
+
* </div>
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
const DotPattern = React__default.forwardRef(({ spacing = 20, dotSize = 1, color = "var(--color-border)", fade = true, fadeDirection = "radial", fadeSize = 50, animated = false, className, style, ...rest }, ref) => {
|
|
38
|
+
const patternId = useId();
|
|
39
|
+
const shouldReduceMotion = useReducedMotion();
|
|
40
|
+
const enableAnimation = animated && !shouldReduceMotion;
|
|
41
|
+
const maskImage = useMemo(() => (fade ? buildMaskImage(fadeDirection, fadeSize) : undefined), [fade, fadeDirection, fadeSize]);
|
|
42
|
+
const containerStyle = {
|
|
43
|
+
...style,
|
|
44
|
+
...(maskImage
|
|
45
|
+
? {
|
|
46
|
+
maskImage,
|
|
47
|
+
WebkitMaskImage: maskImage,
|
|
48
|
+
}
|
|
49
|
+
: {}),
|
|
50
|
+
};
|
|
51
|
+
// Center the dot within each cell
|
|
52
|
+
const cx = spacing / 2;
|
|
53
|
+
const cy = spacing / 2;
|
|
54
|
+
const dotElement = enableAnimation ? (jsx(motion.circle, { cx: cx, cy: cy, r: dotSize, fill: color, animate: {
|
|
55
|
+
opacity: [0.4, 1, 0.4],
|
|
56
|
+
}, transition: {
|
|
57
|
+
duration: 4,
|
|
58
|
+
ease: "easeInOut",
|
|
59
|
+
repeat: Infinity,
|
|
60
|
+
} })) : (jsx("circle", { cx: cx, cy: cy, r: dotSize, fill: color }));
|
|
61
|
+
return (jsx("div", { ref: ref, className: cn("absolute inset-0 pointer-events-none z-0 overflow-hidden", className), style: containerStyle, ...rest, children: jsxs("svg", { "aria-hidden": "true", className: "absolute inset-0 w-full h-full", children: [jsx("defs", { children: jsx("pattern", { id: patternId, x: "0", y: "0", width: spacing, height: spacing, patternUnits: "userSpaceOnUse", children: dotElement }) }), jsx("rect", { width: "100%", height: "100%", fill: `url(#${patternId})` })] }) }));
|
|
62
|
+
});
|
|
63
|
+
DotPattern.displayName = "DotPattern";
|
|
64
|
+
|
|
65
|
+
export { DotPattern };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/** Direction for the fade gradient mask */
|
|
3
|
+
export type DotPatternFadeDirection = "radial" | "top" | "bottom" | "left" | "right";
|
|
4
|
+
export interface DotPatternProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
5
|
+
/**
|
|
6
|
+
* Distance between dots in pixels (center to center).
|
|
7
|
+
* @default 20
|
|
8
|
+
*/
|
|
9
|
+
spacing?: number;
|
|
10
|
+
/**
|
|
11
|
+
* Radius of each dot in pixels.
|
|
12
|
+
* @default 1
|
|
13
|
+
*/
|
|
14
|
+
dotSize?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Fill color of the dots.
|
|
17
|
+
* Accepts any valid CSS color value or CSS variable.
|
|
18
|
+
* @default "var(--color-border)"
|
|
19
|
+
*/
|
|
20
|
+
color?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Whether to apply a gradient mask that fades the pattern at the edges.
|
|
23
|
+
* @default true
|
|
24
|
+
*/
|
|
25
|
+
fade?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Direction of the fade gradient.
|
|
28
|
+
* - "radial" fades from center outward
|
|
29
|
+
* - "top" | "bottom" | "left" | "right" fades toward that edge
|
|
30
|
+
* @default "radial"
|
|
31
|
+
*/
|
|
32
|
+
fadeDirection?: DotPatternFadeDirection;
|
|
33
|
+
/**
|
|
34
|
+
* Size of the fade area as a percentage (0-100).
|
|
35
|
+
* Higher values create a larger transparent region.
|
|
36
|
+
* @default 50
|
|
37
|
+
*/
|
|
38
|
+
fadeSize?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Whether to apply a subtle pulse animation to the dots.
|
|
41
|
+
* Respects prefers-reduced-motion automatically.
|
|
42
|
+
* @default false
|
|
43
|
+
*/
|
|
44
|
+
animated?: boolean;
|
|
45
|
+
/** Additional className for style overrides (shadcn pattern). */
|
|
46
|
+
className?: string;
|
|
47
|
+
}
|