@flikk/ui 1.0.0-beta.30 → 1.0.0-beta.32
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 +375 -5
- package/dist/components/ai/AgentRequest/AgentRequest.animations.d.ts +25 -0
- package/dist/components/ai/AgentRequest/AgentRequest.animations.js +81 -0
- package/dist/components/ai/AgentRequest/AgentRequest.d.ts +3 -0
- package/dist/components/ai/AgentRequest/AgentRequest.js +435 -0
- package/dist/components/ai/AgentRequest/AgentRequest.theme.d.ts +2 -0
- package/dist/components/ai/AgentRequest/AgentRequest.theme.js +106 -0
- package/dist/components/ai/AgentRequest/AgentRequest.types.d.ts +241 -0
- package/dist/components/ai/AgentRequest/index.d.ts +3 -0
- package/dist/components/ai/AgentStatus/AgentStatus.d.ts +3 -0
- package/dist/components/ai/AgentStatus/AgentStatus.js +144 -0
- package/dist/components/ai/AgentStatus/AgentStatus.theme.d.ts +2 -0
- package/dist/components/ai/AgentStatus/AgentStatus.theme.js +37 -0
- package/dist/components/ai/AgentStatus/AgentStatus.types.d.ts +116 -0
- package/dist/components/ai/AgentStatus/index.d.ts +3 -0
- package/dist/components/ai/CodeBlock/CodeBlock.js +3 -3
- package/dist/components/ai/CodeBlock/CodeBlock.theme.js +2 -2
- package/dist/components/ai/PromptInput/PromptInput.js +13 -14
- package/dist/components/ai/PromptInput/PromptInput.theme.js +3 -3
- package/dist/components/ai/PromptInput/VoiceRecorder.js +3 -3
- package/dist/components/ai/PromptSuggestion/PromptSuggestion.theme.js +2 -2
- package/dist/components/ai/Reasoning/Reasoning.d.ts +5 -0
- package/dist/components/ai/Reasoning/Reasoning.js +40 -0
- package/dist/components/ai/Reasoning/Reasoning.theme.d.ts +6 -0
- package/dist/components/ai/Reasoning/Reasoning.theme.js +36 -0
- package/dist/components/ai/Reasoning/Reasoning.types.d.ts +73 -0
- package/dist/components/ai/Reasoning/ReasoningTrace.d.ts +11 -0
- package/dist/components/ai/Reasoning/ReasoningTrace.js +84 -0
- package/dist/components/ai/Reasoning/index.d.ts +3 -0
- package/dist/components/ai/SourceCitation/SourceCitation.d.ts +4 -0
- package/dist/components/ai/SourceCitation/SourceCitation.js +29 -0
- package/dist/components/ai/SourceCitation/SourceCitation.theme.d.ts +2 -0
- package/dist/components/ai/SourceCitation/SourceCitation.theme.js +23 -0
- package/dist/components/ai/SourceCitation/SourceCitation.types.d.ts +55 -0
- package/dist/components/ai/SourceCitation/index.d.ts +3 -0
- package/dist/components/ai/StreamingResponse/AnimatedText.d.ts +7 -0
- package/dist/components/ai/StreamingResponse/AnimatedText.js +8 -7
- package/dist/components/ai/StreamingResponse/ErrorDisplay.js +2 -2
- package/dist/components/ai/StreamingResponse/MarkdownRenderer.d.ts +5 -0
- package/dist/components/ai/StreamingResponse/MarkdownRenderer.js +4 -4
- package/dist/components/ai/StreamingResponse/StreamingCursor.d.ts +2 -2
- package/dist/components/ai/StreamingResponse/StreamingCursor.js +10 -7
- package/dist/components/ai/StreamingResponse/StreamingResponse.animations.d.ts +10 -0
- package/dist/components/ai/StreamingResponse/StreamingResponse.animations.js +59 -33
- package/dist/components/ai/StreamingResponse/StreamingResponse.js +14 -10
- package/dist/components/ai/StreamingResponse/StreamingResponse.theme.js +3 -1
- package/dist/components/ai/StreamingResponse/StreamingResponse.types.d.ts +33 -2
- package/dist/components/ai/StreamingResponse/StreamingSurface.d.ts +13 -0
- package/dist/components/ai/StreamingResponse/StreamingSurface.js +38 -0
- package/dist/components/ai/StreamingResponse/WordAnimationContext.d.ts +5 -0
- package/dist/components/ai/StreamingResponse/WordAnimationContext.js +5 -4
- package/dist/components/ai/StreamingResponse/index.d.ts +4 -2
- package/dist/components/ai/TokenCounter/TokenCounter.js +2 -2
- package/dist/components/ai/TokenCounter/TokenCounter.theme.js +1 -1
- package/dist/components/ai/index.d.ts +6 -2
- package/dist/components/ai/index.js +10 -3
- package/dist/components/ai/shared/StatusIndicator.d.ts +8 -0
- package/dist/components/ai/shared/StatusIndicator.js +34 -0
- package/dist/components/canvas/BaseNode.js +1 -1
- package/dist/components/canvas/CanvasToolbar.js +2 -3
- package/dist/components/canvas/Edge.js +2 -2
- package/dist/components/canvas/NodeControls.js +2 -3
- package/dist/components/canvas/NodeRenderer.js +4 -4
- package/dist/components/charts/ActivityRings/ActivityRings.js +4 -4
- package/dist/components/charts/ActivityRings/ActivityRings.theme.js +1 -1
- package/dist/components/charts/AreaChart/AreaChart.js +24 -35
- package/dist/components/charts/AreaChart/AreaChart.theme.d.ts +1 -6
- package/dist/components/charts/AreaChart/AreaChart.theme.js +10 -22
- package/dist/components/charts/AreaChart/AreaChart.types.d.ts +18 -11
- package/dist/components/charts/AreaChart/AreaChart.types.js +10 -3
- package/dist/components/charts/AreaChart/index.d.ts +1 -1
- package/dist/components/charts/BarChart/BarChart.js +13 -32
- package/dist/components/charts/BarChart/BarChart.types.d.ts +20 -16
- package/dist/components/charts/BarChart/BarChart.types.js +11 -4
- package/dist/components/charts/ComboChart/BarRenderer.js +10 -7
- package/dist/components/charts/ComboChart/BarRenderer.types.d.ts +1 -1
- package/dist/components/charts/ComboChart/ComboChart.js +11 -24
- package/dist/components/charts/ComboChart/ComboChart.types.d.ts +15 -13
- package/dist/components/charts/ComboChart/ComboChart.types.js +14 -2
- package/dist/components/charts/ComboChart/ComboChartCanvas.js +1 -1
- package/dist/components/charts/ComboChart/LineRenderer.js +16 -11
- package/dist/components/charts/ComboChart/LineRenderer.types.d.ts +1 -1
- package/dist/components/charts/DonutChart/DonutChart.theme.js +4 -4
- package/dist/components/charts/DonutChart/MultiSegmentDonutChart.theme.js +1 -1
- package/dist/components/charts/Heatmap/Heatmap.js +49 -42
- package/dist/components/charts/Heatmap/Heatmap.theme.d.ts +6 -2
- package/dist/components/charts/Heatmap/Heatmap.theme.js +20 -8
- package/dist/components/charts/Heatmap/Heatmap.types.d.ts +49 -82
- package/dist/components/charts/Heatmap/HeatmapCell.js +30 -81
- package/dist/components/charts/Heatmap/HeatmapLegend.d.ts +7 -6
- package/dist/components/charts/Heatmap/HeatmapLegend.js +6 -6
- package/dist/components/charts/Heatmap/index.d.ts +1 -1
- package/dist/components/charts/Heatmap/utils/heatmapUtils.d.ts +7 -12
- package/dist/components/charts/Heatmap/utils/heatmapUtils.js +16 -61
- package/dist/components/charts/Heatmap/utils/heatmapUtils.test.d.ts +1 -0
- package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.d.ts +16 -0
- package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.js +237 -0
- package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.types.d.ts +62 -0
- package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.types.js +21 -0
- package/dist/components/charts/HorizontalBarChart/index.d.ts +3 -0
- package/dist/components/charts/LineChart/LineChart.js +11 -28
- package/dist/components/charts/LineChart/LineChart.types.d.ts +11 -14
- package/dist/components/charts/LineChart/LineChart.types.js +11 -3
- package/dist/components/charts/LollipopChart/LollipopChart.d.ts +3 -0
- package/dist/components/charts/LollipopChart/LollipopChart.js +361 -0
- package/dist/components/charts/LollipopChart/LollipopChart.types.d.ts +42 -0
- package/dist/components/charts/LollipopChart/LollipopChart.types.js +12 -0
- package/dist/components/charts/LollipopChart/index.d.ts +3 -0
- package/dist/components/charts/RadarChart/RadarChart.js +1 -1
- package/dist/components/charts/StackedBarChart/StackedBarChart.js +151 -133
- package/dist/components/charts/StackedBarChart/StackedBarChart.types.d.ts +20 -18
- package/dist/components/charts/StackedBarChart/StackedBarChart.types.js +10 -4
- package/dist/components/charts/hooks/useChartAccessibility.d.ts +1 -1
- package/dist/components/charts/hooks/useChartAccessibility.js +12 -6
- package/dist/components/charts/hooks/useTooltipPosition.js +18 -6
- package/dist/components/charts/index.d.ts +10 -8
- package/dist/components/charts/index.js +8 -4
- package/dist/components/charts/shared/ChartAxis/CategoryYAxis.d.ts +14 -0
- package/dist/components/charts/shared/ChartAxis/CategoryYAxis.js +35 -0
- package/dist/components/charts/shared/ChartAxis/ChartAxis.types.d.ts +69 -8
- package/dist/components/charts/shared/ChartAxis/ValueXAxis.d.ts +14 -0
- package/dist/components/charts/shared/ChartAxis/ValueXAxis.js +64 -0
- package/dist/components/charts/shared/ChartAxis/XAxis.js +1 -1
- package/dist/components/charts/shared/ChartAxis/YAxis.js +2 -2
- package/dist/components/charts/shared/ChartAxis/index.d.ts +3 -1
- package/dist/components/charts/shared/ChartGrid/HorizontalGrid.d.ts +0 -2
- package/dist/components/charts/shared/ChartGrid/HorizontalGrid.js +1 -1
- package/dist/components/charts/shared/ChartGrid/VerticalGrid.d.ts +29 -0
- package/dist/components/charts/shared/ChartGrid/VerticalGrid.js +26 -0
- package/dist/components/charts/shared/ChartGrid/index.d.ts +2 -0
- package/dist/components/charts/shared/ChartMarker/ChartMarker.js +7 -1
- package/dist/components/charts/shared/ChartText/ChartText.theme.js +1 -1
- package/dist/components/charts/shared/index.d.ts +1 -1
- package/dist/components/charts/theme/chart.theme.js +21 -26
- package/dist/components/charts/types/chart.types.d.ts +9 -5
- package/dist/components/charts/types/chart.types.js +1 -7
- package/dist/components/charts/utils/animation-utils.d.ts +12 -7
- package/dist/components/charts/utils/animation-utils.js +19 -21
- package/dist/components/charts/utils/bar-emphasis.d.ts +32 -3
- package/dist/components/charts/utils/bar-emphasis.js +24 -8
- package/dist/components/charts/utils/index.d.ts +1 -0
- package/dist/components/charts/utils/series-color.d.ts +7 -0
- package/dist/components/charts/utils/series-color.js +20 -0
- package/dist/components/core/Accordion/Accordion.theme.js +3 -3
- package/dist/components/core/Accordion/AccordionTrigger.js +2 -2
- package/dist/components/core/Alert/Alert.animations.d.ts +11 -3
- package/dist/components/core/Alert/Alert.animations.js +30 -8
- package/dist/components/core/Alert/Alert.js +23 -9
- package/dist/components/core/Alert/Alert.theme.js +1 -1
- package/dist/components/core/Alert/Alert.types.d.ts +4 -2
- package/dist/components/core/AlertDialog/AlertDialog.js +2 -2
- package/dist/components/core/Avatar/Avatar.js +50 -42
- package/dist/components/core/Avatar/Avatar.theme.d.ts +8 -4
- package/dist/components/core/Avatar/Avatar.theme.js +64 -8
- package/dist/components/core/Avatar/Avatar.types.d.ts +13 -2
- package/dist/components/core/Avatar/index.d.ts +1 -1
- package/dist/components/core/AvatarGroup/AvatarGroup.js +6 -8
- package/dist/components/core/AvatarGroup/AvatarGroup.theme.d.ts +1 -2
- package/dist/components/core/AvatarGroup/AvatarGroup.theme.js +2 -6
- package/dist/components/core/AvatarGroup/AvatarGroup.types.d.ts +0 -6
- package/dist/components/core/AvatarGroup/index.d.ts +1 -1
- package/dist/components/core/Badge/Badge.animations.d.ts +0 -5
- package/dist/components/core/Badge/Badge.animations.js +5 -82
- package/dist/components/core/Badge/Badge.d.ts +7 -4
- package/dist/components/core/Badge/Badge.js +33 -65
- package/dist/components/core/Badge/Badge.theme.js +26 -24
- package/dist/components/core/Badge/Badge.types.d.ts +18 -34
- package/dist/components/core/Breadcrumbs/Breadcrumbs.theme.d.ts +1 -4
- package/dist/components/core/Breadcrumbs/Breadcrumbs.theme.js +6 -6
- package/dist/components/core/Button/Button.js +14 -58
- package/dist/components/core/Button/Button.theme.d.ts +2 -0
- package/dist/components/core/Button/Button.theme.js +35 -22
- package/dist/components/core/Button/Button.types.d.ts +26 -13
- package/dist/components/core/Button/index.d.ts +0 -2
- package/dist/components/core/Calendar/Calendar.js +20 -5
- package/dist/components/core/Calendar/Calendar.theme.js +15 -23
- package/dist/components/core/Calendar/Calendar.types.d.ts +0 -1
- package/dist/components/core/Calendar/CalendarMini/CalendarMini.js +3 -3
- package/dist/components/core/Calendar/CalendarMini/CalendarMini.theme.js +2 -2
- package/dist/components/core/Card/Card.js +7 -2
- package/dist/components/core/Card/Card.theme.js +40 -4
- package/dist/components/core/Card/Card.types.d.ts +20 -0
- package/dist/components/core/Card/CardBody.js +9 -1
- package/dist/components/core/Card/CardContext.d.ts +13 -0
- package/dist/components/core/Card/CardContext.js +14 -0
- package/dist/components/core/Card/CardFooter.js +1 -1
- package/dist/components/core/Card/CardHeader.js +4 -1
- package/dist/components/core/CommandPalette/CommandPalette.js +5 -4
- package/dist/components/core/CommandPalette/CommandPalette.theme.js +3 -7
- package/dist/components/core/CommandPalette/CommandPalette.types.d.ts +2 -0
- package/dist/components/core/ContextMenu/ContextMenu.theme.js +4 -3
- package/dist/components/core/ContextMenu/ContextMenu.types.d.ts +8 -1
- package/dist/components/core/ContextMenu/ContextMenuItem.js +2 -2
- package/dist/components/core/ContextMenu/ContextMenuSub.d.ts +11 -1
- package/dist/components/core/ContextMenu/ContextMenuSub.js +35 -22
- package/dist/components/core/ContextMenu/ContextMenuSubBody.js +14 -3
- package/dist/components/core/ContextMenu/ContextMenuSubTrigger.js +22 -9
- package/dist/components/core/DragDrop/DragDrop.theme.js +2 -2
- package/dist/components/core/Drawer/Drawer.theme.js +7 -4
- package/dist/components/core/Drawer/DrawerHeader.js +2 -3
- package/dist/components/core/Dropdown/Dropdown.theme.js +3 -1
- package/dist/components/core/Dropdown/DropdownItem.js +2 -2
- package/dist/components/core/Dropdown/DropdownMenu.js +22 -7
- package/dist/components/core/Dropdown/DropdownTrigger.js +16 -5
- package/dist/components/core/HeroCard/HeroCard.theme.js +5 -2
- package/dist/components/core/Kbd/Kbd.theme.js +4 -2
- package/dist/components/core/Link/Link.js +7 -5
- package/dist/components/core/Masonry/Masonry.theme.js +1 -1
- package/dist/components/core/MenuItem/MenuItem.js +2 -1
- package/dist/components/core/MenuItem/MenuItem.theme.js +13 -1
- package/dist/components/core/Message/Message.js +4 -2
- package/dist/components/core/Message/Message.theme.js +8 -10
- package/dist/components/core/Message/MessageAudio.js +2 -2
- package/dist/components/core/Message/MessageFile.js +2 -2
- package/dist/components/core/Message/MessageLink.js +2 -2
- package/dist/components/core/Message/MessageStatusIndicator.js +5 -5
- package/dist/components/core/Modal/Modal.animations.d.ts +1 -1
- package/dist/components/core/Modal/Modal.animations.js +50 -11
- package/dist/components/core/Modal/Modal.d.ts +1 -1
- package/dist/components/core/Modal/Modal.js +6 -2
- package/dist/components/core/Modal/Modal.theme.js +9 -4
- package/dist/components/core/Modal/ModalHeader.js +2 -3
- package/dist/components/core/ModalStack/ModalStackModal.js +4 -2
- package/dist/components/core/NavItem/NavItem.js +8 -7
- package/dist/components/core/NavItem/NavItem.theme.js +1 -1
- package/dist/components/core/OfflineIndicator/OfflineIndicator.animations.d.ts +22 -0
- package/dist/components/core/OfflineIndicator/OfflineIndicator.animations.js +54 -0
- package/dist/components/core/OfflineIndicator/OfflineIndicator.js +23 -24
- package/dist/components/core/OfflineIndicator/OfflineIndicator.theme.js +27 -6
- package/dist/components/core/OfflineIndicator/OfflineIndicator.types.d.ts +17 -0
- package/dist/components/core/PageHeading/PageHeading.theme.js +1 -1
- package/dist/components/core/PageHeading/PageHeadingBackButton.js +2 -2
- package/dist/components/core/Pagination/Pagination.js +3 -3
- package/dist/components/core/Pagination/Pagination.theme.js +5 -5
- package/dist/components/core/Pill/Pill.js +5 -2
- package/dist/components/core/Pill/Pill.theme.js +9 -5
- package/dist/components/core/Popover/PopoverBody.js +16 -5
- package/dist/components/core/Progress/Progress.d.ts +0 -25
- package/dist/components/core/Progress/Progress.js +79 -11
- package/dist/components/core/Progress/Progress.theme.js +17 -0
- package/dist/components/core/Progress/Progress.types.d.ts +47 -1
- package/dist/components/core/Rating/Rating.js +4 -5
- package/dist/components/core/Rating/Rating.theme.js +2 -2
- package/dist/components/core/Rating/Rating.types.d.ts +3 -2
- package/dist/components/core/ScrollArea/ScrollArea.js +1 -1
- package/dist/components/core/ScrollArea/ScrollArea.theme.js +1 -1
- package/dist/components/core/Segmented/Segmented.theme.js +10 -7
- package/dist/components/core/Segmented/SegmentedContext.js +1 -0
- package/dist/components/core/Sidebar/Sidebar.js +5 -2
- package/dist/components/core/Sidebar/Sidebar.theme.js +2 -2
- package/dist/components/core/Sidebar/Sidebar.types.d.ts +4 -2
- package/dist/components/core/Sidebar/SidebarContent.js +1 -1
- package/dist/components/core/Sidebar/SidebarHeader.js +3 -3
- package/dist/components/core/Sidebar/SidebarMobileTrigger.js +2 -2
- package/dist/components/core/Sidebar/SidebarSearch.js +4 -4
- package/dist/components/core/Sidebar/SidebarToggle.js +3 -3
- package/dist/components/core/Sidebar/SidebarUserProfile.js +3 -3
- package/dist/components/core/Sortable/Sortable.js +2 -2
- package/dist/components/core/Sortable/Sortable.theme.js +1 -1
- package/dist/components/core/Tabs/Tabs.theme.js +1 -1
- package/dist/components/core/Tag/Tag.js +2 -2
- package/dist/components/core/Tag/Tag.theme.js +5 -3
- package/dist/components/core/Toast/Toast.js +3 -3
- package/dist/components/core/Toast/Toast.types.d.ts +1 -1
- package/dist/components/core/Toast/ToastProvider.js +1 -1
- package/dist/components/core/Toast/useToast.js +5 -5
- package/dist/components/core/Tooltip/Tooltip.d.ts +1 -1
- package/dist/components/core/Tooltip/Tooltip.js +42 -10
- package/dist/components/core/Tooltip/Tooltip.types.d.ts +25 -0
- package/dist/components/core/Tree/Tree.js +2 -2
- package/dist/components/core/Tree/Tree.theme.js +1 -1
- package/dist/components/core/index.d.ts +0 -2
- package/dist/components/core/index.js +0 -4
- package/dist/components/core/shared/ChartTooltip/ChartTooltip.animations.d.ts +4 -0
- package/dist/components/core/shared/ChartTooltip/ChartTooltip.animations.js +20 -0
- package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.js +1 -1
- package/dist/components/core/shared/Ripple.d.ts +16 -0
- package/dist/components/core/shared/Ripple.js +141 -0
- package/dist/components/core/shared/interaction.animations.d.ts +51 -0
- package/dist/components/core/shared/interaction.animations.js +59 -0
- package/dist/components/data-display/Feed/Feed.js +2 -2
- package/dist/components/data-display/GanttChart/GanttChart.theme.js +7 -7
- package/dist/components/data-display/GanttChart/GanttChartPanel.js +2 -2
- package/dist/components/data-display/GanttChart/GanttTableGroupRow.js +3 -3
- package/dist/components/data-display/GanttChart/GanttTaskBar.js +1 -1
- package/dist/components/data-display/GanttChart/GanttTaskContextMenu.js +2 -2
- package/dist/components/data-display/GanttChart/GanttTimelineHeader.js +1 -1
- package/dist/components/data-display/GanttChart/GanttToolbar.js +2 -3
- package/dist/components/data-display/KPI/KPI.js +12 -21
- package/dist/components/data-display/KPI/KPI.theme.js +8 -4
- package/dist/components/data-display/Metric/Metric.js +2 -2
- package/dist/components/data-display/Metric/Metric.theme.js +25 -8
- package/dist/components/data-display/Metric/Metric.types.d.ts +1 -1
- package/dist/components/data-display/Table/Table.theme.js +11 -11
- package/dist/components/data-display/Table/TableActions.js +2 -2
- package/dist/components/data-display/Table/TableActionsMenu.js +1 -1
- package/dist/components/data-display/Table/TableColumnManager.js +2 -3
- package/dist/components/data-display/Table/TableContext.js +1 -0
- package/dist/components/data-display/Table/TableDeclarative.js +3 -3
- package/dist/components/data-display/Table/TableFilter.js +13 -6
- package/dist/components/data-display/Table/TableHeader.js +3 -3
- package/dist/components/data-display/Table/TableRow.js +2 -2
- package/dist/components/data-display/Table/TableSelectionHeader.js +4 -4
- package/dist/components/data-display/Timeline/Timeline.theme.js +1 -1
- package/dist/components/data-display/Timeline/TimelineMarker.js +2 -2
- package/dist/components/effects/CustomCursor/CustomCursor.d.ts +1 -1
- package/dist/components/effects/CustomCursor/CustomCursor.js +3 -3
- package/dist/components/effects/CustomCursor/CustomCursor.theme.js +4 -4
- package/dist/components/effects/DotPattern/DotPattern.js +6 -0
- package/dist/components/effects/DotPattern/DotPattern.types.d.ts +4 -2
- package/dist/components/effects/MeshGradient/MeshGradient.utils.d.ts +1 -1
- package/dist/components/effects/MeshGradient/MeshGradient.utils.js +1 -1
- package/dist/components/effects/Neumorphic/InsetCircleButton.js +1 -1
- package/dist/components/effects/Overlay/Overlay.js +7 -3
- package/dist/components/effects/index.d.ts +0 -32
- package/dist/components/effects/index.js +0 -16
- package/dist/components/effects/shared/ShaderCanvas/ShaderCanvas.d.ts +0 -2
- package/dist/components/effects/shared/ShaderCanvas/ShaderCanvas.js +1 -93
- package/dist/components/effects/shared/ShaderCanvas/ShaderCanvas.types.d.ts +0 -10
- package/dist/components/effects/shared/ShaderCanvas/index.d.ts +1 -1
- package/dist/components/effects/shared/index.d.ts +1 -3
- package/dist/components/effects/shared/shaderNoise.glsl.d.ts +1 -1
- package/dist/components/effects/shared/shaderNoise.glsl.js +2 -11
- package/dist/components/forms/Checkbox/Checkbox.js +2 -1
- package/dist/components/forms/Checkbox/Checkbox.theme.js +3 -3
- package/dist/components/forms/ColorPicker/ColorPickerEyeDropper.js +2 -2
- package/dist/components/forms/ColorPicker/ColorPickerGradient.js +2 -2
- package/dist/components/forms/ColorPicker/ColorPickerHeader.js +2 -2
- package/dist/components/forms/ColorPicker/ColorPickerImage.js +3 -3
- package/dist/components/forms/ColorPicker/ColorPickerInput.js +2 -2
- package/dist/components/forms/ColorPicker/ColorPickerPresets.js +2 -2
- package/dist/components/forms/ColorPicker/ColorPickerSavedColors.js +2 -2
- package/dist/components/forms/Combobox/Combobox.js +5 -3
- package/dist/components/forms/Combobox/Combobox.theme.js +2 -2
- package/dist/components/forms/DatePicker/DatePicker.animations.js +16 -25
- package/dist/components/forms/DatePicker/DatePicker.theme.js +2 -2
- package/dist/components/forms/DatePicker/DatePickerBody.js +1 -1
- package/dist/components/forms/DatePicker/DatePickerTrigger.js +2 -2
- package/dist/components/forms/DateRangePicker/DateRangePicker.theme.js +4 -4
- package/dist/components/forms/DateRangePicker/DateRangePickerBody.js +1 -1
- package/dist/components/forms/DateRangePicker/DateRangePickerContext.js +1 -0
- package/dist/components/forms/DateRangePicker/DateRangePickerPresets.js +2 -2
- package/dist/components/forms/DateRangePicker/DateRangePickerTrigger.js +2 -2
- package/dist/components/forms/FileUpload/FileUpload.js +4 -4
- package/dist/components/forms/FileUpload/FileUpload.theme.js +7 -3
- package/dist/components/forms/FileUpload/FileUploadProgress.js +7 -7
- package/dist/components/forms/FileUpload/FileUploadProgress.theme.js +1 -1
- package/dist/components/forms/Input/Input.js +6 -7
- package/dist/components/forms/Input/Input.theme.js +19 -15
- package/dist/components/forms/InputAddress/InputAddress.js +10 -3
- package/dist/components/forms/InputAddress/InputAddress.types.d.ts +2 -2
- package/dist/components/forms/InputCounter/InputCounter.js +3 -3
- package/dist/components/forms/InputOTP/InputOTP.d.ts +3 -12
- package/dist/components/forms/InputOTP/InputOTP.js +140 -151
- package/dist/components/forms/InputOTP/InputOTP.theme.d.ts +5 -1
- package/dist/components/forms/InputOTP/InputOTP.theme.js +40 -5
- package/dist/components/forms/InputOTP/InputOTP.types.d.ts +45 -2
- package/dist/components/forms/InputOTP/index.d.ts +1 -1
- package/dist/components/forms/InputTag/InputTag.js +5 -5
- package/dist/components/forms/InputTag/InputTag.theme.js +1 -2
- package/dist/components/forms/Mention/Mention.theme.js +3 -5
- package/dist/components/forms/Radio/Radio.js +3 -2
- package/dist/components/forms/Radio/Radio.theme.js +3 -3
- package/dist/components/forms/RichTextEditor/RichTextEditor.d.ts +12 -16
- package/dist/components/forms/RichTextEditor/RichTextEditor.js +165 -1681
- package/dist/components/forms/RichTextEditor/RichTextEditor.theme.d.ts +12 -56
- package/dist/components/forms/RichTextEditor/RichTextEditor.theme.js +60 -118
- package/dist/components/forms/RichTextEditor/RichTextEditor.types.d.ts +62 -126
- package/dist/components/forms/RichTextEditor/RichTextLinkField.d.ts +18 -0
- package/dist/components/forms/RichTextEditor/RichTextLinkField.js +46 -0
- package/dist/components/forms/RichTextEditor/RichTextToolbar.d.ts +15 -0
- package/dist/components/forms/RichTextEditor/RichTextToolbar.js +93 -0
- package/dist/components/forms/RichTextEditor/editorCommands.d.ts +50 -0
- package/dist/components/forms/RichTextEditor/editorCommands.js +58 -0
- package/dist/components/forms/RichTextEditor/editorState.d.ts +19 -0
- package/dist/components/forms/RichTextEditor/editorState.js +103 -0
- package/dist/components/forms/RichTextEditor/index.d.ts +5 -3
- package/dist/components/forms/RichTextEditor/sanitizeHtml.d.ts +38 -0
- package/dist/components/forms/RichTextEditor/sanitizeHtml.js +179 -0
- package/dist/components/forms/RichTextEditor/sanitizeHtml.test.d.ts +1 -0
- package/dist/components/forms/Select/Select.d.ts +5 -1
- package/dist/components/forms/Select/Select.js +14 -13
- package/dist/components/forms/Select/Select.theme.js +4 -4
- package/dist/components/forms/Select/Select.types.d.ts +74 -8
- package/dist/components/forms/Select/useSelectState.d.ts +9 -3
- package/dist/components/forms/Select/useSelectState.js +4 -1
- package/dist/components/forms/SelectableCard/SelectableCard.animations.d.ts +1 -2
- package/dist/components/forms/SelectableCard/SelectableCard.animations.js +6 -7
- package/dist/components/forms/SelectableCard/SelectableCard.js +3 -2
- package/dist/components/forms/SelectableCard/SelectableCard.theme.js +1 -1
- package/dist/components/forms/Signature/Signature.js +1 -1
- package/dist/components/forms/Slider/Slider.js +24 -11
- package/dist/components/forms/Slider/Slider.theme.js +9 -3
- package/dist/components/forms/Switch/Switch.theme.js +3 -3
- package/dist/components/forms/TimePicker/TimePicker.theme.js +7 -8
- package/dist/components/forms/TimePicker/TimePickerContent.js +1 -1
- package/dist/components/forms/TimePicker/TimePickerTrigger.js +3 -3
- package/dist/components/forms/forms.theme.js +38 -13
- package/dist/components/forms/index.js +2 -1
- package/dist/components/generative/FormShell.d.ts +22 -0
- package/dist/components/generative/FormShell.js +102 -0
- package/dist/components/generative/GenerativeView.d.ts +52 -1
- package/dist/components/generative/GenerativeView.js +203 -11
- package/dist/components/generative/actions.d.ts +5 -0
- package/dist/components/generative/ai-sdk/index.d.ts +1 -0
- package/dist/components/generative/ai-sdk/index.js +1 -0
- package/dist/components/generative/ai-sdk/useGenerativeChat.d.ts +52 -0
- package/dist/components/generative/ai-sdk/useGenerativeChat.js +73 -0
- package/dist/components/generative/ai-sdk/useGenerativeChat.test.d.ts +1 -0
- package/dist/components/generative/fieldBinding.d.ts +31 -0
- package/dist/components/generative/fieldBinding.js +33 -0
- package/dist/components/generative/fieldBinding.test.d.ts +1 -0
- package/dist/components/generative/formScope.d.ts +71 -0
- package/dist/components/generative/formScope.js +135 -0
- package/dist/components/generative/index.d.ts +4 -0
- package/dist/components/generative/index.js +4 -0
- package/dist/components/generative/registry.d.ts +2 -0
- package/dist/components/generative/registry.js +197 -4
- package/dist/components/generative/resolvers.js +16 -16
- package/dist/components/generative/schema.generated.js +2522 -328
- package/dist/components/generative/toToolResult.d.ts +21 -0
- package/dist/components/generative/toToolResult.js +15 -0
- package/dist/components/generative/toToolResult.test.d.ts +1 -0
- package/dist/components/generative/validate.d.ts +10 -1
- package/dist/components/generative/validate.js +126 -11
- package/dist/components/layout/Grid/Grid.js +1 -0
- package/dist/components/layout/Section/Section.theme.js +1 -1
- package/dist/components/layout/Stack/Stack.js +1 -0
- package/dist/generative.schema.json +2522 -328
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/useElapsedTime.d.ts +28 -0
- package/dist/hooks/useElapsedTime.js +37 -0
- package/dist/hooks/useSelectPortal.d.ts +10 -2
- package/dist/hooks/useSelectPortal.js +6 -3
- package/dist/index.js +2 -5
- package/dist/registry.json +3262 -2464
- package/dist/shadcn-compat.css +6 -6
- package/dist/styles/theme.test.d.ts +1 -0
- package/dist/styles.css +1 -1
- package/dist/test/render.d.ts +17 -0
- package/dist/theme.css +5 -1
- package/dist/themes/ember.css +131 -0
- package/dist/themes/iris.css +94 -0
- package/dist/themes/jade.css +139 -0
- package/dist/themes/precision.css +232 -0
- package/dist/tools.json +2557 -328
- package/dist/utils/colorUtils.d.ts +6 -6
- package/dist/utils/colorUtils.js +8 -8
- package/dist/utils/index.d.ts +0 -1
- package/package.json +39 -6
- package/src/global.scss +32 -28
- package/src/styles/theme.css +547 -176
- package/src/styles/theme.test.ts +119 -0
- package/tailwind.preset.cjs +66 -38
- package/dist/components/charts/FunnelChart/FunnelChart.animations.d.ts +0 -35
- package/dist/components/charts/FunnelChart/FunnelChart.animations.js +0 -59
- package/dist/components/charts/FunnelChart/FunnelChart.d.ts +0 -8
- package/dist/components/charts/FunnelChart/FunnelChart.js +0 -410
- package/dist/components/charts/FunnelChart/FunnelChart.theme.d.ts +0 -2
- package/dist/components/charts/FunnelChart/FunnelChart.theme.js +0 -12
- package/dist/components/charts/FunnelChart/FunnelChart.types.d.ts +0 -105
- package/dist/components/charts/FunnelChart/index.d.ts +0 -4
- package/dist/components/charts/ScatterPlot/ScatterPlot.d.ts +0 -9
- package/dist/components/charts/ScatterPlot/ScatterPlot.js +0 -207
- package/dist/components/charts/ScatterPlot/ScatterPlot.theme.d.ts +0 -18
- package/dist/components/charts/ScatterPlot/ScatterPlot.theme.js +0 -42
- package/dist/components/charts/ScatterPlot/ScatterPlot.types.d.ts +0 -65
- package/dist/components/charts/ScatterPlot/ScatterPlot.types.js +0 -12
- package/dist/components/charts/ScatterPlot/index.d.ts +0 -3
- package/dist/components/core/Button/Button.ripple.d.ts +0 -71
- package/dist/components/core/Button/Button.ripple.js +0 -236
- package/dist/components/core/Calendar/CalendarEvent/CalendarEvent.d.ts +0 -4
- package/dist/components/core/Calendar/CalendarEvent/CalendarEvent.theme.d.ts +0 -12
- package/dist/components/core/Calendar/CalendarEvent/CalendarEvent.types.d.ts +0 -23
- package/dist/components/core/Calendar/CalendarEvent/index.d.ts +0 -2
- package/dist/components/core/CardStack/CardStack.animations.d.ts +0 -47
- package/dist/components/core/CardStack/CardStack.d.ts +0 -3
- package/dist/components/core/CardStack/CardStack.js +0 -187
- package/dist/components/core/CardStack/CardStack.theme.d.ts +0 -6
- package/dist/components/core/CardStack/CardStack.theme.js +0 -33
- package/dist/components/core/CardStack/CardStack.types.d.ts +0 -139
- package/dist/components/core/CardStack/index.d.ts +0 -7
- package/dist/components/core/Carousel/Carousel.d.ts +0 -3
- package/dist/components/core/Carousel/Carousel.js +0 -83
- package/dist/components/core/Carousel/Carousel.theme.d.ts +0 -10
- package/dist/components/core/Carousel/Carousel.theme.js +0 -20
- package/dist/components/core/Carousel/Carousel.types.d.ts +0 -113
- package/dist/components/core/Carousel/CarouselBody.d.ts +0 -4
- package/dist/components/core/Carousel/CarouselBody.js +0 -59
- package/dist/components/core/Carousel/CarouselContext.d.ts +0 -3
- package/dist/components/core/Carousel/CarouselContext.js +0 -13
- package/dist/components/core/Carousel/CarouselItem.d.ts +0 -4
- package/dist/components/core/Carousel/CarouselItem.js +0 -11
- package/dist/components/core/Carousel/CarouselNext.d.ts +0 -4
- package/dist/components/core/Carousel/CarouselNext.js +0 -16
- package/dist/components/core/Carousel/CarouselPrevious.d.ts +0 -4
- package/dist/components/core/Carousel/CarouselPrevious.js +0 -16
- package/dist/components/core/Carousel/index.d.ts +0 -3
- package/dist/components/core/Pill/Pill.animations.d.ts +0 -32
- package/dist/components/core/Pill/Pill.animations.js +0 -16
- package/dist/components/effects/ColorPanels/ColorPanels.d.ts +0 -8
- package/dist/components/effects/ColorPanels/ColorPanels.js +0 -66
- package/dist/components/effects/ColorPanels/ColorPanels.shaders.d.ts +0 -12
- package/dist/components/effects/ColorPanels/ColorPanels.shaders.js +0 -218
- package/dist/components/effects/ColorPanels/ColorPanels.types.d.ts +0 -29
- package/dist/components/effects/ColorPanels/ColorPanels.types.js +0 -3
- package/dist/components/effects/ColorPanels/index.d.ts +0 -2
- package/dist/components/effects/FlutedGlass/FlutedGlass.d.ts +0 -9
- package/dist/components/effects/FlutedGlass/FlutedGlass.js +0 -80
- package/dist/components/effects/FlutedGlass/FlutedGlass.shaders.d.ts +0 -12
- package/dist/components/effects/FlutedGlass/FlutedGlass.shaders.js +0 -335
- package/dist/components/effects/FlutedGlass/FlutedGlass.types.d.ts +0 -61
- package/dist/components/effects/FlutedGlass/FlutedGlass.types.js +0 -16
- package/dist/components/effects/FlutedGlass/index.d.ts +0 -3
- package/dist/components/effects/GlassEffect/GlassEffect.d.ts +0 -15
- package/dist/components/effects/GlassEffect/GlassEffect.js +0 -38
- package/dist/components/effects/GlassEffect/GlassEffect.types.d.ts +0 -19
- package/dist/components/effects/GlassEffect/index.d.ts +0 -2
- package/dist/components/effects/GlassSurface/GlassSurface.d.ts +0 -8
- package/dist/components/effects/GlassSurface/GlassSurface.js +0 -250
- package/dist/components/effects/GlassSurface/GlassSurface.types.d.ts +0 -66
- package/dist/components/effects/GlassSurface/index.d.ts +0 -2
- package/dist/components/effects/GodRays/GodRays.d.ts +0 -8
- package/dist/components/effects/GodRays/GodRays.js +0 -68
- package/dist/components/effects/GodRays/GodRays.shaders.d.ts +0 -10
- package/dist/components/effects/GodRays/GodRays.shaders.js +0 -128
- package/dist/components/effects/GodRays/GodRays.types.d.ts +0 -25
- package/dist/components/effects/GodRays/GodRays.types.js +0 -3
- package/dist/components/effects/GodRays/index.d.ts +0 -2
- package/dist/components/effects/GridPattern/GridPattern.d.ts +0 -18
- package/dist/components/effects/GridPattern/GridPattern.js +0 -65
- package/dist/components/effects/GridPattern/GridPattern.types.d.ts +0 -47
- package/dist/components/effects/GridPattern/index.d.ts +0 -2
- package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.d.ts +0 -10
- package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.js +0 -78
- package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.shaders.d.ts +0 -22
- package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.shaders.js +0 -239
- package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.types.d.ts +0 -52
- package/dist/components/effects/HalftoneCmyk/index.d.ts +0 -2
- package/dist/components/effects/HalftoneDots/HalftoneDots.d.ts +0 -9
- package/dist/components/effects/HalftoneDots/HalftoneDots.js +0 -68
- package/dist/components/effects/HalftoneDots/HalftoneDots.shaders.d.ts +0 -13
- package/dist/components/effects/HalftoneDots/HalftoneDots.shaders.js +0 -296
- package/dist/components/effects/HalftoneDots/HalftoneDots.types.d.ts +0 -43
- package/dist/components/effects/HalftoneDots/HalftoneDots.types.js +0 -12
- package/dist/components/effects/HalftoneDots/index.d.ts +0 -3
- package/dist/components/effects/ImageDithering/ImageDithering.d.ts +0 -9
- package/dist/components/effects/ImageDithering/ImageDithering.js +0 -68
- package/dist/components/effects/ImageDithering/ImageDithering.shaders.d.ts +0 -12
- package/dist/components/effects/ImageDithering/ImageDithering.shaders.js +0 -117
- package/dist/components/effects/ImageDithering/ImageDithering.types.d.ts +0 -30
- package/dist/components/effects/ImageDithering/ImageDithering.types.js +0 -8
- package/dist/components/effects/ImageDithering/index.d.ts +0 -3
- package/dist/components/effects/MagneticElement/MagneticElement.d.ts +0 -30
- package/dist/components/effects/MagneticElement/MagneticElement.js +0 -111
- package/dist/components/effects/MagneticElement/MagneticElement.types.d.ts +0 -44
- package/dist/components/effects/MagneticElement/index.d.ts +0 -2
- package/dist/components/effects/Metaballs/Metaballs.d.ts +0 -8
- package/dist/components/effects/Metaballs/Metaballs.js +0 -59
- package/dist/components/effects/Metaballs/Metaballs.shaders.d.ts +0 -10
- package/dist/components/effects/Metaballs/Metaballs.shaders.js +0 -102
- package/dist/components/effects/Metaballs/Metaballs.types.d.ts +0 -16
- package/dist/components/effects/Metaballs/Metaballs.types.js +0 -3
- package/dist/components/effects/Metaballs/index.d.ts +0 -2
- package/dist/components/effects/PaperTexture/PaperTexture.d.ts +0 -9
- package/dist/components/effects/PaperTexture/PaperTexture.js +0 -61
- package/dist/components/effects/PaperTexture/PaperTexture.shaders.d.ts +0 -22
- package/dist/components/effects/PaperTexture/PaperTexture.shaders.js +0 -145
- package/dist/components/effects/PaperTexture/PaperTexture.types.d.ts +0 -19
- package/dist/components/effects/PaperTexture/index.d.ts +0 -2
- package/dist/components/effects/PulsingBorder/PulsingBorder.d.ts +0 -27
- package/dist/components/effects/PulsingBorder/PulsingBorder.js +0 -174
- package/dist/components/effects/PulsingBorder/PulsingBorder.shaders.d.ts +0 -14
- package/dist/components/effects/PulsingBorder/PulsingBorder.shaders.js +0 -258
- package/dist/components/effects/PulsingBorder/PulsingBorder.types.d.ts +0 -75
- package/dist/components/effects/PulsingBorder/PulsingBorder.types.js +0 -3
- package/dist/components/effects/PulsingBorder/index.d.ts +0 -2
- package/dist/components/effects/SmokeRing/SmokeRing.d.ts +0 -8
- package/dist/components/effects/SmokeRing/SmokeRing.js +0 -62
- package/dist/components/effects/SmokeRing/SmokeRing.shaders.d.ts +0 -14
- package/dist/components/effects/SmokeRing/SmokeRing.shaders.js +0 -130
- package/dist/components/effects/SmokeRing/SmokeRing.types.d.ts +0 -22
- package/dist/components/effects/SmokeRing/SmokeRing.types.js +0 -3
- package/dist/components/effects/SmokeRing/index.d.ts +0 -2
- package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.d.ts +0 -9
- package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.js +0 -59
- package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.shaders.d.ts +0 -14
- package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.shaders.js +0 -129
- package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.types.d.ts +0 -23
- package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.types.js +0 -3
- package/dist/components/effects/StaticGradientMesh/index.d.ts +0 -2
- package/dist/components/effects/Water/Water.d.ts +0 -9
- package/dist/components/effects/Water/Water.js +0 -65
- package/dist/components/effects/Water/Water.shaders.d.ts +0 -11
- package/dist/components/effects/Water/Water.shaders.js +0 -123
- package/dist/components/effects/Water/Water.types.d.ts +0 -25
- package/dist/components/effects/Water/index.d.ts +0 -2
- package/dist/components/effects/shared/bayerMatrices.glsl.d.ts +0 -10
- package/dist/components/effects/shared/bayerMatrices.glsl.js +0 -44
- package/dist/components/effects/shared/imageUV.glsl.d.ts +0 -12
- package/dist/components/effects/shared/imageUV.glsl.js +0 -26
- package/dist/components/forms/RichTextEditor/RichTextEditor.animations.d.ts +0 -7
- package/dist/components/forms/RichTextEditor/RichTextEditor.animations.js +0 -32
- package/dist/utils/calendarUtils.d.ts +0 -60
- /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.d.ts +0 -0
- /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.theme.d.ts +0 -0
- /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.theme.js +0 -0
- /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.types.d.ts +0 -0
- /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltipContent.d.ts +0 -0
- /package/dist/components/{charts → core}/shared/ChartTooltip/index.d.ts +0 -0
|
@@ -11,13 +11,15 @@ import { ChartErrorBoundary } from '../shared/ChartErrorBoundary/ChartErrorBound
|
|
|
11
11
|
import { XAxis } from '../shared/ChartAxis/XAxis.js';
|
|
12
12
|
import { YAxis } from '../shared/ChartAxis/YAxis.js';
|
|
13
13
|
import { HorizontalGrid } from '../shared/ChartGrid/HorizontalGrid.js';
|
|
14
|
-
import { ChartTooltip } from '
|
|
14
|
+
import { ChartTooltip } from '../../core/shared/ChartTooltip/ChartTooltip.js';
|
|
15
15
|
import { resolveLegendPosition, ChartLegend } from '../shared/ChartLegend/ChartLegend.js';
|
|
16
16
|
import { BAR_CHART_DEFAULTS } from './BarChart.types.js';
|
|
17
17
|
import { X_AXIS_MARGIN } from '../types/chart.types.js';
|
|
18
18
|
import { BAR_GROUP_STAGGER, BAR_SPRING, barEntranceTransition } from '../utils/animation-utils.js';
|
|
19
19
|
import { BarSeriesDefs, BarGlowRing, barStrokeStyle, barFill, barDimOpacity, deriveBarEmphasis } from '../utils/bar-emphasis.js';
|
|
20
|
-
import {
|
|
20
|
+
import { resolveSeriesColor } from '../utils/series-color.js';
|
|
21
|
+
import { chartTheme } from '../theme/chart.theme.js';
|
|
22
|
+
import { Warning } from '@phosphor-icons/react';
|
|
21
23
|
|
|
22
24
|
// Pure helper functions moved to module level to avoid recreation per render
|
|
23
25
|
const createRoundedTopBarPath = (x, y, width, height, radius) => {
|
|
@@ -59,8 +61,6 @@ showGrid = BAR_CHART_DEFAULTS.showGrid, showXAxis = BAR_CHART_DEFAULTS.showXAxis
|
|
|
59
61
|
// Standardized visual props with defaults (renamed from bar-specific names)
|
|
60
62
|
barRadius, radius, // @deprecated Use barRadius instead
|
|
61
63
|
gap = BAR_CHART_DEFAULTS.gap, categoryGap = BAR_CHART_DEFAULTS.categoryGap,
|
|
62
|
-
// Bar-specific props
|
|
63
|
-
orientation,
|
|
64
64
|
// Animation props
|
|
65
65
|
showAnimation = BAR_CHART_DEFAULTS.showAnimation,
|
|
66
66
|
// Placeholder bar props
|
|
@@ -98,34 +98,15 @@ className, title, description, enableKeyboardNavigation = BAR_CHART_DEFAULTS.ena
|
|
|
98
98
|
const { validation, sanitizedData, isValid, hasWarnings, safeScale, safeMath, } = useChartValidation(data, config, {
|
|
99
99
|
autoSanitize: true,
|
|
100
100
|
});
|
|
101
|
-
// Simple color functions based on direct CSS variables (following guidelines)
|
|
102
101
|
const getSeriesFillColor = (index, key) => {
|
|
103
|
-
var _a, _b
|
|
104
|
-
|
|
105
|
-
const customColor = config[key].color;
|
|
106
|
-
if (!customColor.startsWith("var(") &&
|
|
107
|
-
!customColor.startsWith("#") &&
|
|
108
|
-
!customColor.startsWith("rgb") &&
|
|
109
|
-
!customColor.startsWith("hsl") &&
|
|
110
|
-
customColor.includes("-")) {
|
|
111
|
-
return `var(--color-${customColor})`;
|
|
112
|
-
}
|
|
113
|
-
return customColor;
|
|
114
|
-
}
|
|
115
|
-
const defaultColors = [
|
|
116
|
-
"var(--color-primary)",
|
|
117
|
-
"var(--color-warning)",
|
|
118
|
-
"var(--color-success)",
|
|
119
|
-
"var(--color-danger)",
|
|
120
|
-
];
|
|
121
|
-
// Use custom colors if provided, otherwise fall back to defaults
|
|
122
|
-
const themedColors = (_c = (_b = theme === null || theme === void 0 ? void 0 : theme.baseStyle) === null || _b === void 0 ? void 0 : _b.colors) === null || _c === void 0 ? void 0 : _c.series;
|
|
102
|
+
var _a, _b;
|
|
103
|
+
const themedColors = (_b = (_a = theme === null || theme === void 0 ? void 0 : theme.baseStyle) === null || _a === void 0 ? void 0 : _a.colors) === null || _b === void 0 ? void 0 : _b.series;
|
|
123
104
|
const palette = colors && colors.length > 0
|
|
124
105
|
? colors
|
|
125
106
|
: themedColors && themedColors.length > 0
|
|
126
107
|
? themedColors
|
|
127
|
-
:
|
|
128
|
-
return
|
|
108
|
+
: chartTheme.baseStyle.colors.series;
|
|
109
|
+
return resolveSeriesColor(index, key, config, palette);
|
|
129
110
|
};
|
|
130
111
|
const resolvedLegendPosition = resolveLegendPosition(legend, config);
|
|
131
112
|
const legendItems = Object.keys(config).map((key, index) => {
|
|
@@ -332,7 +313,7 @@ className, title, description, enableKeyboardNavigation = BAR_CHART_DEFAULTS.ena
|
|
|
332
313
|
: { scaleY: 1, opacity: 1 }, animate: {
|
|
333
314
|
scaleY: 1,
|
|
334
315
|
opacity: 1,
|
|
335
|
-
}, transition: { ...BAR_SPRING, delay }, className: "transition-opacity duration-
|
|
316
|
+
}, transition: { ...BAR_SPRING, delay }, className: "transition-opacity duration-[var(--motion-duration-base)]", style: {
|
|
336
317
|
originY: 1,
|
|
337
318
|
transformOrigin: "bottom",
|
|
338
319
|
fill: `url(#${hatchPatternId})`,
|
|
@@ -364,8 +345,8 @@ className, title, description, enableKeyboardNavigation = BAR_CHART_DEFAULTS.ena
|
|
|
364
345
|
// plain style values at mount and ignores re-render changes
|
|
365
346
|
opacity: barDimOpacity(shouldReduceOpacity, isGradientVariant),
|
|
366
347
|
}, transition: commonTransition, className: cn(isGradientVariant
|
|
367
|
-
? "transition-all duration-
|
|
368
|
-
: "transition-colors duration-
|
|
348
|
+
? "transition-all duration-[var(--motion-duration-slow)] ease-out"
|
|
349
|
+
: "transition-colors duration-[var(--motion-duration-base)]", !isNull && "cursor-pointer", isFocused && "stroke-2"), style: {
|
|
369
350
|
originY: isNegative ? 0 : 1,
|
|
370
351
|
transformOrigin: isNegative ? "top" : "bottom",
|
|
371
352
|
fill: barFill({
|
|
@@ -449,7 +430,7 @@ className, title, description, enableKeyboardNavigation = BAR_CHART_DEFAULTS.ena
|
|
|
449
430
|
// Rules of Hooks: "move it before the return."
|
|
450
431
|
// Invalid data: show an error message
|
|
451
432
|
if (!isValid) {
|
|
452
|
-
return (jsxs("div", { className: cn("chart-container flex flex-col items-center justify-center p-6 border border-[var(--color-border)] rounded-lg text-2xl", className), role: "alert", "aria-live": "polite", ...props, children: [jsxs("div", { className: "flex flex-col items-center gap-4 mb-1", children: [jsx(
|
|
433
|
+
return (jsxs("div", { className: cn("chart-container flex flex-col items-center justify-center p-6 border border-[var(--color-border)] rounded-lg text-2xl", className), role: "alert", "aria-live": "polite", ...props, children: [jsxs("div", { className: "flex flex-col items-center gap-4 mb-1", children: [jsx(Warning, { className: "size-6 text-[var(--color-danger)]" }), jsx("div", { className: "text-base font-semibold text-[var(--color-text-secondary)]", children: "Invalid Chart Data" })] }), jsx("p", { className: "text-base text-[var(--color-text-secondary)]/70 mb-2", children: ((_b = validation.errors[0]) === null || _b === void 0 ? void 0 : _b.message) ||
|
|
453
434
|
"Unable to render chart due to data validation errors" }), process.env.NODE_ENV === "development" &&
|
|
454
435
|
validation.errors.length > 1 && (jsxs("details", { className: "text-sm text-warning-500", children: [jsxs("summary", { className: "cursor-pointer", children: ["Show all errors (", validation.errors.length, ")"] }), jsx("ul", { className: "mt-2 text-left", children: validation.errors.map((error, index) => (jsxs("li", { children: ["\u2022 ", error.message] }, index))) })] }))] }));
|
|
455
436
|
}
|
|
@@ -466,7 +447,7 @@ className, title, description, enableKeyboardNavigation = BAR_CHART_DEFAULTS.ena
|
|
|
466
447
|
height: height !== undefined ? (typeof height === "number" ? `${height}px` : height) : undefined,
|
|
467
448
|
}, ...chartAccessibilityProps, onMouseEnter: handleMouseInteraction, onMouseMove: handleMouseInteraction, ...props, children: [resolvedLegendPosition === "top" && (jsx(ChartLegend, { items: legendItems, className: "shrink-0 pb-2" })), descriptionProps && jsx("div", { ...descriptionProps }), showValidationWarnings && hasWarnings && (jsxs("div", { className: "absolute top-2 left-2 right-2 z-10 p-2 bg-[var(--color-warning-50)] border border-[var(--color-warning-200)] rounded text-sm text-[var(--color-warning)] shadow-sm", children: [jsx("strong", { children: "Chart Warnings:" }), jsx("ul", { className: "mt-1", children: validation.warnings
|
|
468
449
|
.filter((warning) => !warning.message.includes("has no valid numeric values"))
|
|
469
|
-
.map((warning, index) => (jsxs("li", { children: ["\u2022 ", warning.message] }, index))) }), validation.warnings.some((warning) => warning.message.includes("has no valid numeric values")) && (jsx("div", { className: "mt-2 pt-2 border-t border-[var(--color-warning-200)]", children: jsx("span", { className: "text-[var(--color-warning)]", children: "\u2139\uFE0F Null/undefined values are handled by using averages from other data points" }) }))] })), jsx("div", { className: "relative flex-1 min-h-0", children: jsxs("svg", { width: "100%", height: "100%", viewBox: `0 0 ${dimensions.width} ${dimensions.height}`, style: { overflow: isGradientVariant ? "visible" : undefined }, children: [jsxs("defs", { children: [jsxs("pattern", { id: hatchPatternId, patternUnits: "userSpaceOnUse", width: "8", height: "8", children: [jsx("rect", { width: "8", height: "8", fill: "var(--color-
|
|
450
|
+
.map((warning, index) => (jsxs("li", { children: ["\u2022 ", warning.message] }, index))) }), validation.warnings.some((warning) => warning.message.includes("has no valid numeric values")) && (jsx("div", { className: "mt-2 pt-2 border-t border-[var(--color-warning-200)]", children: jsx("span", { className: "text-[var(--color-warning)]", children: "\u2139\uFE0F Null/undefined values are handled by using averages from other data points" }) }))] })), jsx("div", { className: "relative flex-1 min-h-0", children: jsxs("svg", { width: "100%", height: "100%", viewBox: `0 0 ${dimensions.width} ${dimensions.height}`, style: { overflow: isGradientVariant ? "visible" : undefined }, children: [jsxs("defs", { children: [jsxs("pattern", { id: hatchPatternId, patternUnits: "userSpaceOnUse", width: "8", height: "8", children: [jsx("rect", { width: "8", height: "8", fill: "var(--color-mono-50)" }), jsx("path", { d: "M-2,2 l4,-4\n M0,8 l8,-8\n M6,10 l4,-4", style: { stroke: "black", strokeWidth: 4, opacity: 0.1 } })] }), isGradientVariant &&
|
|
470
451
|
dataKeys.map((key, index) => {
|
|
471
452
|
const color = getSeriesFillColor(index, key);
|
|
472
453
|
return (jsx(BarSeriesDefs, { gradientId: getBarGradientId(index), shadowId: getBarShadowId(index), ringId: getBarRingId(index), color: color }, key));
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { BaseChartProps, StandardChartDisplayProps, StandardVisualProps, BarChartSpecificProps, ChartVariant } from "../types/chart.types";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Visual props that actually apply to a vertical bar chart.
|
|
4
|
+
*
|
|
5
|
+
* 🔴 Narrowed with `Omit` on purpose — see the note on `StandardVisualProps`.
|
|
6
|
+
* Kept: `barRadius` (+ its deprecated `radius` alias) and `gap`.
|
|
7
|
+
* Dropped: dot/cell radii, stroke width, and the line/area/stacked-only props.
|
|
8
|
+
*/
|
|
9
|
+
export type BarVisualProps = Omit<StandardVisualProps, "dotRadius" | "strokeWidth" | "curved" | "curveType" | "showDots" | "fillOpacity" | "showStroke" | "stacked">;
|
|
10
|
+
export interface BarChartProps extends BaseChartProps, StandardChartDisplayProps, BarVisualProps, BarChartSpecificProps {
|
|
3
11
|
barRadius?: number;
|
|
4
12
|
radius?: number;
|
|
5
13
|
gap?: number;
|
|
@@ -23,27 +31,23 @@ export interface BarChartProps extends BaseChartProps, StandardChartDisplayProps
|
|
|
23
31
|
*/
|
|
24
32
|
darkMode?: boolean;
|
|
25
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Default values using centralized defaults.
|
|
36
|
+
*
|
|
37
|
+
* 🔴 Picks explicitly rather than spreading `...CHART_DEFAULTS` — the spread pulled in a
|
|
38
|
+
* default for every other chart's props, so this object advertised values BarChart never
|
|
39
|
+
* reads. List only what the component actually consumes.
|
|
40
|
+
*/
|
|
26
41
|
export declare const BAR_CHART_DEFAULTS: {
|
|
42
|
+
readonly showGrid: true;
|
|
43
|
+
readonly showXAxis: true;
|
|
44
|
+
readonly showYAxis: true;
|
|
45
|
+
readonly enableKeyboardNavigation: true;
|
|
27
46
|
readonly variant: ChartVariant;
|
|
28
47
|
readonly barRadius: 32;
|
|
29
|
-
readonly radius: 32;
|
|
30
48
|
readonly gap: 4;
|
|
31
49
|
readonly categoryGap: 16;
|
|
32
|
-
readonly orientation: "horizontal" | "vertical";
|
|
33
50
|
readonly showAnimation: true;
|
|
34
51
|
readonly showPlaceholderBars: false;
|
|
35
|
-
readonly showGrid: true;
|
|
36
|
-
readonly showXAxis: true;
|
|
37
|
-
readonly showYAxis: true;
|
|
38
|
-
readonly dotRadius: 3;
|
|
39
|
-
readonly cellRadius: 4;
|
|
40
|
-
readonly strokeWidth: 2;
|
|
41
|
-
readonly curved: true;
|
|
42
|
-
readonly curveType: import("..").CurveType;
|
|
43
|
-
readonly fillOpacity: 0.3;
|
|
44
|
-
readonly showStroke: true;
|
|
45
|
-
readonly showDots: false;
|
|
46
|
-
readonly stacked: false;
|
|
47
|
-
readonly enableKeyboardNavigation: true;
|
|
48
52
|
};
|
|
49
53
|
export type BarChartData = BaseChartProps["data"][0];
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { CHART_DEFAULTS } from '../types/chart.types.js';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Default values using centralized defaults.
|
|
5
|
+
*
|
|
6
|
+
* 🔴 Picks explicitly rather than spreading `...CHART_DEFAULTS` — the spread pulled in a
|
|
7
|
+
* default for every other chart's props, so this object advertised values BarChart never
|
|
8
|
+
* reads. List only what the component actually consumes.
|
|
9
|
+
*/
|
|
4
10
|
const BAR_CHART_DEFAULTS = {
|
|
5
|
-
|
|
11
|
+
showGrid: CHART_DEFAULTS.showGrid,
|
|
12
|
+
showXAxis: CHART_DEFAULTS.showXAxis,
|
|
13
|
+
showYAxis: CHART_DEFAULTS.showYAxis,
|
|
14
|
+
enableKeyboardNavigation: CHART_DEFAULTS.enableKeyboardNavigation,
|
|
6
15
|
variant: "gradient", // BarChart defaults to the gradient (premium) look; use variant="default" for flat fills
|
|
7
16
|
barRadius: CHART_DEFAULTS.barRadius, // 24 - For bar corner rounding
|
|
8
|
-
radius: CHART_DEFAULTS.barRadius, // @deprecated - kept for backward compatibility
|
|
9
17
|
gap: CHART_DEFAULTS.gap,
|
|
10
18
|
categoryGap: CHART_DEFAULTS.categoryGap,
|
|
11
|
-
orientation: CHART_DEFAULTS.orientation,
|
|
12
19
|
showAnimation: true, // Enable animations by default
|
|
13
20
|
showPlaceholderBars: false, // Opt-in feature for backward compatibility
|
|
14
21
|
};
|
|
@@ -7,14 +7,17 @@ import { BAR_STACK_CATEGORY_DELAY, BAR_STACK_SEGMENT_STAGGER, BAR_GROUP_STAGGER,
|
|
|
7
7
|
import { BarGlowRing, barStrokeStyle, barFill, barDimOpacity, BarSeriesDefs, deriveBarEmphasis } from '../utils/bar-emphasis.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* Fallback only — ComboChart always resolves a real color onto each series'
|
|
11
|
+
* config before it reaches this renderer (see ComboChart.tsx), so this array
|
|
12
|
+
* exists purely as a defensive default, not a live categorical palette.
|
|
11
13
|
*/
|
|
12
14
|
const getSeriesFillColor = (index) => {
|
|
13
15
|
const colorVars = [
|
|
14
|
-
"var(--color-
|
|
15
|
-
"var(--color-
|
|
16
|
-
"var(--color-
|
|
17
|
-
"var(--color-
|
|
16
|
+
"var(--color-chart-1)",
|
|
17
|
+
"var(--color-chart-2)",
|
|
18
|
+
"var(--color-chart-3)",
|
|
19
|
+
"var(--color-chart-4)",
|
|
20
|
+
"var(--color-chart-5)",
|
|
18
21
|
];
|
|
19
22
|
return colorVars[index % colorVars.length];
|
|
20
23
|
};
|
|
@@ -160,8 +163,8 @@ const BarRenderer = ({ data, config, scales, dimensions, margin, stacked = false
|
|
|
160
163
|
}, transition: isStacked
|
|
161
164
|
? stackedSegmentTransition(delay, hasAnimated)
|
|
162
165
|
: barEntranceTransition(delay, hasAnimated), className: cn(isGradientVariant
|
|
163
|
-
? "transition-all duration-
|
|
164
|
-
: "transition-colors duration-
|
|
166
|
+
? "transition-all duration-[var(--motion-duration-slow)] ease-out"
|
|
167
|
+
: "transition-colors duration-[var(--motion-duration-base)]", !isNull && "cursor-pointer", isFocused && "stroke-2"), style: {
|
|
165
168
|
originY: isNegative ? 0 : 1,
|
|
166
169
|
transformOrigin: isNegative ? "top" : "bottom",
|
|
167
170
|
fill: barFill({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ChartDataPoint, ChartConfig } from '../types/chart.types';
|
|
2
2
|
import type { ChartScales } from '../hooks/useChartScales';
|
|
3
3
|
import type { ChartDimensions, ChartMargins } from './ComboChartCanvas.types';
|
|
4
|
-
import type { MultiSeriesData } from '
|
|
4
|
+
import type { MultiSeriesData } from '../../core/shared/ChartTooltip';
|
|
5
5
|
export interface BarRendererProps {
|
|
6
6
|
/**
|
|
7
7
|
* Chart data
|
|
@@ -8,7 +8,9 @@ import { BarRenderer } from './BarRenderer.js';
|
|
|
8
8
|
import { LineRenderer } from './LineRenderer.js';
|
|
9
9
|
import { resolveLegendPosition, ChartLegend } from '../shared/ChartLegend/ChartLegend.js';
|
|
10
10
|
import { COMBO_CHART_DEFAULTS } from './ComboChart.types.js';
|
|
11
|
-
import {
|
|
11
|
+
import { Warning } from '@phosphor-icons/react';
|
|
12
|
+
import { resolveSeriesColor } from '../utils/series-color.js';
|
|
13
|
+
import { chartTheme } from '../theme/chart.theme.js';
|
|
12
14
|
|
|
13
15
|
/**
|
|
14
16
|
* Internal component that uses context to render bars and lines
|
|
@@ -16,31 +18,22 @@ import { ExclamationTriangleIcon } from '@heroicons/react/20/solid';
|
|
|
16
18
|
const ComboChartRenderers = ({ barKeys, lineKeys, stacked, barRadius, dotRadius, gap, categoryGap, strokeWidth, curved, curveType, showDots, variant, }) => {
|
|
17
19
|
const context = useComboChartContext();
|
|
18
20
|
const dataKeys = Object.keys(context.config);
|
|
19
|
-
const seriesColors =
|
|
20
|
-
"var(--color-primary)",
|
|
21
|
-
"var(--color-warning)",
|
|
22
|
-
"var(--color-success)",
|
|
23
|
-
"var(--color-danger)",
|
|
24
|
-
];
|
|
21
|
+
const seriesColors = chartTheme.baseStyle.colors.series;
|
|
25
22
|
// Filter configs for bars and lines, and assign colors
|
|
26
23
|
const barConfig = {};
|
|
27
24
|
barKeys.forEach((key) => {
|
|
28
|
-
var _a;
|
|
29
25
|
const keyIndex = dataKeys.indexOf(key);
|
|
30
26
|
barConfig[key] = {
|
|
31
27
|
...context.config[key],
|
|
32
|
-
color: (
|
|
33
|
-
seriesColors[keyIndex % seriesColors.length],
|
|
28
|
+
color: resolveSeriesColor(keyIndex, key, context.config, seriesColors),
|
|
34
29
|
};
|
|
35
30
|
});
|
|
36
31
|
const lineConfig = {};
|
|
37
32
|
lineKeys.forEach((key) => {
|
|
38
|
-
var _a;
|
|
39
33
|
const keyIndex = dataKeys.indexOf(key);
|
|
40
34
|
lineConfig[key] = {
|
|
41
35
|
...context.config[key],
|
|
42
|
-
color: (
|
|
43
|
-
seriesColors[keyIndex % seriesColors.length],
|
|
36
|
+
color: resolveSeriesColor(keyIndex, key, context.config, seriesColors),
|
|
44
37
|
};
|
|
45
38
|
});
|
|
46
39
|
// Create custom tooltip handler that includes ALL series (bars + lines)
|
|
@@ -49,14 +42,14 @@ const ComboChartRenderers = ({ barKeys, lineKeys, stacked, barRadius, dotRadius,
|
|
|
49
42
|
const dataItem = context.data.find((d) => d.name === content.category);
|
|
50
43
|
if (dataItem) {
|
|
51
44
|
const allSeries = dataKeys.map((key, idx) => {
|
|
52
|
-
var _a
|
|
45
|
+
var _a;
|
|
53
46
|
const value = dataItem[key];
|
|
54
47
|
const isNull = value === null || value === undefined || (typeof value === 'number' && !isFinite(value));
|
|
55
48
|
return {
|
|
56
49
|
key,
|
|
57
50
|
label: ((_a = context.config[key]) === null || _a === void 0 ? void 0 : _a.label) || key,
|
|
58
51
|
value: isNull ? 0 : value,
|
|
59
|
-
color: (
|
|
52
|
+
color: resolveSeriesColor(idx, key, context.config, seriesColors),
|
|
60
53
|
};
|
|
61
54
|
}).filter(series => {
|
|
62
55
|
// Only show series that have valid non-zero values
|
|
@@ -117,19 +110,13 @@ className, title, description, enableKeyboardNavigation = COMBO_CHART_DEFAULTS.e
|
|
|
117
110
|
const seriesConfig = config[key];
|
|
118
111
|
return (seriesConfig === null || seriesConfig === void 0 ? void 0 : seriesConfig.type) === "line";
|
|
119
112
|
});
|
|
120
|
-
const legendSeriesColors = [
|
|
121
|
-
"var(--color-primary)",
|
|
122
|
-
"var(--color-warning)",
|
|
123
|
-
"var(--color-success)",
|
|
124
|
-
"var(--color-danger)",
|
|
125
|
-
];
|
|
126
113
|
const resolvedLegendPosition = resolveLegendPosition(legend, config || {});
|
|
127
114
|
const legendItems = dataKeys.map((key, index) => {
|
|
128
|
-
var _a, _b
|
|
115
|
+
var _a, _b;
|
|
129
116
|
return ({
|
|
130
117
|
key,
|
|
131
118
|
label: (_b = (_a = config[key]) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : key,
|
|
132
|
-
color: (
|
|
119
|
+
color: resolveSeriesColor(index, key, config, chartTheme.baseStyle.colors.series),
|
|
133
120
|
});
|
|
134
121
|
});
|
|
135
122
|
// Use unified chart scales hook
|
|
@@ -146,7 +133,7 @@ className, title, description, enableKeyboardNavigation = COMBO_CHART_DEFAULTS.e
|
|
|
146
133
|
});
|
|
147
134
|
// Early return for invalid data with error message
|
|
148
135
|
if (!isValid) {
|
|
149
|
-
return (jsxs("div", { className: cn("chart-container flex flex-col items-center justify-center p-6 border border-border rounded-lg text-2xl", className), role: "alert", "aria-live": "polite", ...props, children: [jsxs("div", { className: "flex flex-col items-center gap-4 mb-1", children: [jsx(
|
|
136
|
+
return (jsxs("div", { className: cn("chart-container flex flex-col items-center justify-center p-6 border border-border rounded-lg text-2xl", className), role: "alert", "aria-live": "polite", ...props, children: [jsxs("div", { className: "flex flex-col items-center gap-4 mb-1", children: [jsx(Warning, { className: "size-6 text-[var(--color-danger)]" }), jsx("div", { className: "text-base font-semibold text-[var(--color-text-secondary)]", children: "Invalid Chart Data" })] }), jsx("p", { className: "text-base text-[var(--color-text-secondary)]/70 mb-2", children: "Unable to render chart due to data validation errors" })] }));
|
|
150
137
|
}
|
|
151
138
|
// Early return for empty data
|
|
152
139
|
if (!sanitizedData || sanitizedData.length === 0) {
|
|
@@ -18,7 +18,7 @@ export interface ComboChartConfig extends ChartConfig {
|
|
|
18
18
|
/**
|
|
19
19
|
* ComboChart props - extends standard chart interfaces
|
|
20
20
|
*/
|
|
21
|
-
export interface ComboChartProps extends BaseChartProps, StandardChartDisplayProps, Omit<StandardVisualProps, 'curved' | 'curveType' | 'showDots'> {
|
|
21
|
+
export interface ComboChartProps extends BaseChartProps, StandardChartDisplayProps, Omit<StandardVisualProps, 'curved' | 'curveType' | 'showDots' | 'fillOpacity' | 'showStroke'> {
|
|
22
22
|
config: ComboChartConfig;
|
|
23
23
|
curved?: boolean;
|
|
24
24
|
curveType?: 'linear' | 'monotone';
|
|
@@ -27,7 +27,21 @@ export interface ComboChartProps extends BaseChartProps, StandardChartDisplayPro
|
|
|
27
27
|
showDualAxis?: boolean;
|
|
28
28
|
showValidationWarnings?: boolean;
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Default values using centralized defaults.
|
|
32
|
+
*
|
|
33
|
+
* 🔴 Picks explicitly rather than spreading `...CHART_DEFAULTS` — the spread pulled in a
|
|
34
|
+
* default for every other chart's props, so this object advertised values ComboChart
|
|
35
|
+
* never reads. List only what the component actually consumes.
|
|
36
|
+
*/
|
|
30
37
|
export declare const COMBO_CHART_DEFAULTS: {
|
|
38
|
+
readonly showGrid: true;
|
|
39
|
+
readonly showXAxis: true;
|
|
40
|
+
readonly showYAxis: true;
|
|
41
|
+
readonly enableKeyboardNavigation: true;
|
|
42
|
+
readonly strokeWidth: 2;
|
|
43
|
+
readonly gap: 4;
|
|
44
|
+
readonly stacked: false;
|
|
31
45
|
readonly barRadius: 32;
|
|
32
46
|
readonly dotRadius: 3;
|
|
33
47
|
readonly categoryGap: 16;
|
|
@@ -36,16 +50,4 @@ export declare const COMBO_CHART_DEFAULTS: {
|
|
|
36
50
|
readonly showDots: false;
|
|
37
51
|
readonly showDualAxis: false;
|
|
38
52
|
readonly variant: ChartVariant;
|
|
39
|
-
readonly showGrid: true;
|
|
40
|
-
readonly showXAxis: true;
|
|
41
|
-
readonly showYAxis: true;
|
|
42
|
-
readonly cellRadius: 4;
|
|
43
|
-
readonly radius: 20;
|
|
44
|
-
readonly strokeWidth: 2;
|
|
45
|
-
readonly gap: 4;
|
|
46
|
-
readonly fillOpacity: 0.3;
|
|
47
|
-
readonly showStroke: true;
|
|
48
|
-
readonly orientation: "vertical" | "horizontal";
|
|
49
|
-
readonly stacked: false;
|
|
50
|
-
readonly enableKeyboardNavigation: true;
|
|
51
53
|
};
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { CHART_DEFAULTS } from '../types/chart.types.js';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Default values using centralized defaults.
|
|
5
|
+
*
|
|
6
|
+
* 🔴 Picks explicitly rather than spreading `...CHART_DEFAULTS` — the spread pulled in a
|
|
7
|
+
* default for every other chart's props, so this object advertised values ComboChart
|
|
8
|
+
* never reads. List only what the component actually consumes.
|
|
9
|
+
*/
|
|
4
10
|
const COMBO_CHART_DEFAULTS = {
|
|
5
|
-
|
|
11
|
+
showGrid: CHART_DEFAULTS.showGrid,
|
|
12
|
+
showXAxis: CHART_DEFAULTS.showXAxis,
|
|
13
|
+
showYAxis: CHART_DEFAULTS.showYAxis,
|
|
14
|
+
enableKeyboardNavigation: CHART_DEFAULTS.enableKeyboardNavigation,
|
|
15
|
+
strokeWidth: CHART_DEFAULTS.strokeWidth,
|
|
16
|
+
gap: CHART_DEFAULTS.gap,
|
|
17
|
+
stacked: CHART_DEFAULTS.stacked,
|
|
6
18
|
barRadius: CHART_DEFAULTS.barRadius, // 24 - For bar corners
|
|
7
19
|
dotRadius: CHART_DEFAULTS.dotRadius, // 20 - For line markers
|
|
8
20
|
categoryGap: CHART_DEFAULTS.categoryGap,
|
|
@@ -9,7 +9,7 @@ import { ChartErrorBoundary } from '../shared/ChartErrorBoundary/ChartErrorBound
|
|
|
9
9
|
import { XAxis } from '../shared/ChartAxis/XAxis.js';
|
|
10
10
|
import { YAxis } from '../shared/ChartAxis/YAxis.js';
|
|
11
11
|
import { HorizontalGrid } from '../shared/ChartGrid/HorizontalGrid.js';
|
|
12
|
-
import { ChartTooltip } from '
|
|
12
|
+
import { ChartTooltip } from '../../core/shared/ChartTooltip/ChartTooltip.js';
|
|
13
13
|
|
|
14
14
|
const ComboChartContext = createContext(null);
|
|
15
15
|
/**
|
|
@@ -9,26 +9,31 @@ import { generateCurvePath } from '../utils/path-utils.js';
|
|
|
9
9
|
import { RISE_FROM_BASELINE, riseTransition, SCALE_FROM_CENTER, dotEntranceTransition } from '../utils/animation-utils.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Get series color class
|
|
12
|
+
* Get series color class.
|
|
13
|
+
* Fallback only — ComboChart always resolves a real color onto each series'
|
|
14
|
+
* config before it reaches this renderer (see ComboChart.tsx).
|
|
13
15
|
*/
|
|
14
16
|
const getSeriesColorClass = (index) => {
|
|
15
17
|
const colors = [
|
|
16
|
-
"stroke-[var(--color-
|
|
17
|
-
"stroke-[var(--color-
|
|
18
|
-
"stroke-[var(--color-
|
|
19
|
-
"stroke-[var(--color-
|
|
18
|
+
"stroke-[var(--color-chart-1)]",
|
|
19
|
+
"stroke-[var(--color-chart-2)]",
|
|
20
|
+
"stroke-[var(--color-chart-3)]",
|
|
21
|
+
"stroke-[var(--color-chart-4)]",
|
|
22
|
+
"stroke-[var(--color-chart-5)]",
|
|
20
23
|
];
|
|
21
24
|
return colors[index % colors.length];
|
|
22
25
|
};
|
|
23
26
|
/**
|
|
24
|
-
* Get color value for SVG elements and tooltips
|
|
27
|
+
* Get color value for SVG elements and tooltips.
|
|
28
|
+
* Fallback only — see getSeriesColorClass above.
|
|
25
29
|
*/
|
|
26
30
|
const getSeriesFillColor = (index) => {
|
|
27
31
|
const colorVars = [
|
|
28
|
-
"var(--color-
|
|
29
|
-
"var(--color-
|
|
30
|
-
"var(--color-
|
|
31
|
-
"var(--color-
|
|
32
|
+
"var(--color-chart-1)",
|
|
33
|
+
"var(--color-chart-2)",
|
|
34
|
+
"var(--color-chart-3)",
|
|
35
|
+
"var(--color-chart-4)",
|
|
36
|
+
"var(--color-chart-5)",
|
|
32
37
|
];
|
|
33
38
|
return colorVars[index % colorVars.length];
|
|
34
39
|
};
|
|
@@ -101,7 +106,7 @@ const LineRenderer = ({ data, config, scales, dimensions, margin, strokeWidth =
|
|
|
101
106
|
const appliedColorClass = customColor ? undefined : fallbackClass;
|
|
102
107
|
return (jsxs("g", { children: [jsxs(motion.g, { initial: { scaleY: shouldReduceMotion ? 1 : 0 }, animate: { scaleY: 1 }, transition: riseTransition, style: RISE_FROM_BASELINE, children: [jsx("rect", { x: margin.left, y: margin.top, width: innerWidth, height: innerHeight, fill: "none", stroke: "none", style: { pointerEvents: "none" } }), jsx("path", { d: targetPath, fill: "none", strokeWidth: strokeWidth, strokeLinecap: "round",
|
|
103
108
|
// Constant stroke width through the scaleY rise (no squash).
|
|
104
|
-
vectorEffect: "non-scaling-stroke", className: cn("transition-all duration-
|
|
109
|
+
vectorEffect: "non-scaling-stroke", className: cn("transition-all duration-[var(--motion-duration-base)]", appliedColorClass), stroke: customColor, filter: "url(#line-shadow)" })] }, shouldReduceMotion ? "line-static" : dataSignature), showDots &&
|
|
105
110
|
data.map((item, dataIndex) => {
|
|
106
111
|
const rawValue = item[key];
|
|
107
112
|
const isNull = rawValue === null || rawValue === undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ChartDataPoint, ChartConfig, CurveType } from '../types/chart.types';
|
|
2
2
|
import type { ChartScales } from '../hooks/useChartScales';
|
|
3
3
|
import type { ChartDimensions, ChartMargins } from './ComboChartCanvas.types';
|
|
4
|
-
import type { MultiSeriesData } from '
|
|
4
|
+
import type { MultiSeriesData } from '../../core/shared/ChartTooltip';
|
|
5
5
|
export interface LineRendererProps {
|
|
6
6
|
/**
|
|
7
7
|
* Chart data
|
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
*/
|
|
4
4
|
const donutChartTheme = {
|
|
5
5
|
// Base container styles
|
|
6
|
-
baseStyle: "relative flex items-center justify-center transition-all duration-
|
|
6
|
+
baseStyle: "relative flex items-center justify-center transition-all duration-[var(--motion-duration-slow)] cursor-default",
|
|
7
7
|
// Background track styling
|
|
8
8
|
track: "text-[var(--color-border)]",
|
|
9
9
|
// Progress arc styling
|
|
10
|
-
progress: "text-[var(--color-primary)] transition-all duration-
|
|
10
|
+
progress: "text-[var(--color-primary)] transition-all duration-[var(--motion-duration-slow)]",
|
|
11
11
|
// Text styling
|
|
12
12
|
text: {
|
|
13
|
-
label: "text-xl font-bold text-[var(--color-text-primary)] transition-colors duration-
|
|
14
|
-
subtitle: "text-sm text-[var(--color-text-secondary)] mt-1 transition-colors duration-
|
|
13
|
+
label: "text-xl font-bold text-[var(--color-text-primary)] transition-colors duration-[var(--motion-duration-slow)] tracking-tight",
|
|
14
|
+
subtitle: "text-sm text-[var(--color-text-secondary)] mt-1 transition-colors duration-[var(--motion-duration-slow)]",
|
|
15
15
|
},
|
|
16
16
|
// Default color palette (CSS variables for dark mode support)
|
|
17
17
|
// Note: These are resolved at runtime via getComputedStyle
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
const multiSegmentDonutChartTheme = {
|
|
5
5
|
// Base container styles
|
|
6
|
-
baseStyle: "relative flex items-center justify-center transition-all duration-
|
|
6
|
+
baseStyle: "relative flex items-center justify-center transition-all duration-[var(--motion-duration-slow)]",
|
|
7
7
|
// Background track styling
|
|
8
8
|
track: "text-[var(--color-border)]",
|
|
9
9
|
// Legend styling
|