@flikk/ui 1.0.0-beta.26 → 1.0.0-beta.29
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/bg/1.webp +0 -0
- package/dist/bg/10.webp +0 -0
- package/dist/bg/11.webp +0 -0
- package/dist/bg/12.webp +0 -0
- package/dist/bg/13.webp +0 -0
- package/dist/bg/14.webp +0 -0
- package/dist/bg/15.webp +0 -0
- package/dist/bg/16.webp +0 -0
- package/dist/bg/17.webp +0 -0
- package/dist/bg/18.webp +0 -0
- package/dist/bg/19.webp +0 -0
- package/dist/bg/2.webp +0 -0
- package/dist/bg/20.webp +0 -0
- package/dist/bg/21.webp +0 -0
- package/dist/bg/22.webp +0 -0
- package/dist/bg/3.webp +0 -0
- package/dist/bg/4.webp +0 -0
- package/dist/bg/5.webp +0 -0
- package/dist/bg/6.webp +0 -0
- package/dist/bg/7.webp +0 -0
- package/dist/bg/8.webp +0 -0
- package/dist/bg/9.webp +0 -0
- package/dist/components/ai/CodeBlock/CodeBlock.theme.js +1 -1
- package/dist/components/ai/PromptInput/PromptInput.js +7 -140
- package/dist/components/ai/PromptInput/VoiceRecorder.js +0 -85
- package/dist/components/ai/TokenCounter/TokenCounter.theme.js +1 -1
- package/dist/components/canvas/Background.d.ts +19 -0
- package/dist/components/canvas/Background.js +23 -0
- package/dist/components/canvas/BaseNode.d.ts +15 -0
- package/dist/components/canvas/BaseNode.js +20 -0
- package/dist/components/canvas/CanvasToolbar.d.ts +34 -0
- package/dist/components/canvas/CanvasToolbar.js +34 -0
- package/dist/components/canvas/Edge.d.ts +35 -0
- package/dist/components/canvas/Edge.js +97 -0
- package/dist/components/canvas/EdgeLayer.d.ts +18 -0
- package/dist/components/canvas/EdgeLayer.js +111 -0
- package/dist/components/canvas/Handle.d.ts +11 -0
- package/dist/components/canvas/Handle.js +63 -0
- package/dist/components/canvas/MiniMap.d.ts +22 -0
- package/dist/components/canvas/MiniMap.js +105 -0
- package/dist/components/canvas/NodeCanvas.d.ts +10 -0
- package/dist/components/canvas/NodeCanvas.js +477 -0
- package/dist/components/canvas/NodeCanvas.theme.d.ts +7 -0
- package/dist/components/canvas/NodeCanvas.theme.js +9 -0
- package/dist/components/canvas/NodeCanvas.types.d.ts +187 -0
- package/dist/components/canvas/NodeControls.d.ts +25 -0
- package/dist/components/canvas/NodeControls.js +40 -0
- package/dist/components/canvas/NodeRenderer.d.ts +19 -0
- package/dist/components/canvas/NodeRenderer.js +117 -0
- package/dist/components/canvas/changes.d.ts +11 -0
- package/dist/components/canvas/changes.js +76 -0
- package/dist/components/canvas/context/CanvasContext.d.ts +32 -0
- package/dist/components/canvas/context/CanvasContext.js +14 -0
- package/dist/components/canvas/context/ConnectionContext.d.ts +33 -0
- package/dist/components/canvas/context/ConnectionContext.js +13 -0
- package/dist/components/canvas/context/HandleRegistry.d.ts +24 -0
- package/dist/components/canvas/context/HandleRegistry.js +15 -0
- package/dist/components/canvas/context/InteractionContext.d.ts +18 -0
- package/dist/components/canvas/context/InteractionContext.js +14 -0
- package/dist/components/canvas/context/NodeIdContext.d.ts +3 -0
- package/dist/components/canvas/context/NodeIdContext.js +15 -0
- package/dist/components/canvas/hooks/useConnection.d.ts +17 -0
- package/dist/components/canvas/hooks/useConnection.js +29 -0
- package/dist/components/canvas/hooks/useMarquee.d.ts +25 -0
- package/dist/components/canvas/hooks/useMarquee.js +91 -0
- package/dist/components/canvas/hooks/useNodeDrag.d.ts +23 -0
- package/dist/components/canvas/hooks/useNodeDrag.js +110 -0
- package/dist/components/canvas/hooks/usePanZoom.d.ts +30 -0
- package/dist/components/canvas/hooks/usePanZoom.js +189 -0
- package/dist/components/canvas/hooks/useViewport.d.ts +21 -0
- package/dist/components/canvas/hooks/useViewport.js +35 -0
- package/dist/components/canvas/index.d.ts +14 -0
- package/dist/components/canvas/index.js +12 -0
- package/dist/components/canvas/layout.d.ts +22 -0
- package/dist/components/canvas/layout.js +67 -0
- package/dist/components/canvas/utils.d.ts +4 -0
- package/dist/components/canvas/utils.js +16 -0
- package/dist/components/charts/AreaChart/AreaChart.js +136 -101
- package/dist/components/charts/AreaChart/AreaChart.types.d.ts +5 -5
- package/dist/components/charts/AreaChart/AreaChart.types.js +1 -0
- package/dist/components/charts/BarChart/BarChart.js +207 -143
- package/dist/components/charts/BarChart/BarChart.types.d.ts +4 -4
- package/dist/components/charts/BarChart/BarChart.types.js +1 -0
- package/dist/components/charts/ComboChart/ComboChart.types.d.ts +2 -2
- package/dist/components/charts/LineChart/LineChart.js +88 -72
- package/dist/components/charts/LineChart/LineChart.types.d.ts +3 -3
- package/dist/components/charts/RadarChart/RadarChart.js +1 -1
- package/dist/components/charts/RadarChart/RadarChart.theme.js +5 -2
- package/dist/components/charts/ScatterPlot/ScatterPlot.js +62 -72
- package/dist/components/charts/ScatterPlot/ScatterPlot.theme.js +10 -1
- package/dist/components/charts/ScatterPlot/ScatterPlot.types.d.ts +3 -9
- package/dist/components/charts/StackedBarChart/StackedBarChart.js +33 -33
- package/dist/components/charts/StackedBarChart/StackedBarChart.types.d.ts +2 -2
- package/dist/components/charts/hooks/index.d.ts +2 -0
- package/dist/components/charts/hooks/useChartDimensions.d.ts +29 -0
- package/dist/components/charts/hooks/useChartDimensions.js +42 -0
- package/dist/components/charts/shared/ChartTooltip/ChartTooltip.theme.js +1 -1
- package/dist/components/charts/types/chart.types.d.ts +11 -2
- package/dist/components/charts/types/chart.types.js +10 -3
- package/dist/components/core/Avatar/Avatar.js +5 -1
- package/dist/components/core/AvatarGroup/AvatarGroup.js +5 -1
- package/dist/components/core/AvatarGroup/AvatarGroup.theme.js +4 -2
- package/dist/components/core/Badge/Badge.js +1 -1
- package/dist/components/core/Badge/Badge.theme.js +16 -15
- package/dist/components/core/Button/Button.js +1 -1
- package/dist/components/core/Button/Button.theme.js +3 -3
- package/dist/components/core/Calendar/Calendar.theme.js +1 -1
- package/dist/components/core/Card/Card.js +7 -3
- package/dist/components/core/Card/Card.theme.js +3 -3
- package/dist/components/core/Card/Card.types.d.ts +27 -2
- package/dist/components/core/CommandPalette/CommandItem.js +4 -5
- package/dist/components/core/CommandPalette/CommandPalette.js +1 -1
- package/dist/components/core/CommandPalette/CommandPalette.theme.js +11 -13
- package/dist/components/core/CommandPalette/CommandPalette.types.d.ts +0 -2
- package/dist/components/core/ContextMenu/ContextMenu.theme.js +14 -15
- package/dist/components/core/ContextMenu/ContextMenuItem.js +1 -1
- package/dist/components/core/ContextMenu/ContextMenuSubTrigger.js +1 -1
- package/dist/components/core/DotSeparator/DotSeparator.d.ts +3 -0
- package/dist/components/core/DotSeparator/DotSeparator.js +19 -0
- package/dist/components/core/DotSeparator/DotSeparator.theme.d.ts +2 -0
- package/dist/components/core/DotSeparator/DotSeparator.theme.js +10 -0
- package/dist/components/core/DotSeparator/DotSeparator.types.d.ts +25 -0
- package/dist/components/core/DotSeparator/index.d.ts +3 -0
- package/dist/components/core/Dropdown/Dropdown.theme.js +5 -6
- package/dist/components/core/Dropdown/DropdownItem.js +1 -1
- package/dist/components/core/Dropdown/DropdownMenu.js +58 -30
- package/dist/components/core/HeroCard/HeroCard.d.ts +5 -0
- package/dist/components/core/HeroCard/HeroCard.js +99 -0
- package/dist/components/core/HeroCard/HeroCard.theme.d.ts +3 -0
- package/dist/components/core/HeroCard/HeroCard.theme.js +8 -0
- package/dist/components/core/HeroCard/HeroCard.types.d.ts +70 -0
- package/dist/components/core/HeroCard/index.d.ts +4 -0
- package/dist/components/core/Kbd/Kbd.theme.js +1 -1
- package/dist/components/core/MenuItem/MenuItem.js +5 -2
- package/dist/components/core/MenuItem/MenuItem.theme.d.ts +6 -0
- package/dist/components/core/MenuItem/MenuItem.theme.js +19 -16
- package/dist/components/core/MenuItem/MenuItem.types.d.ts +2 -0
- package/dist/components/core/Modal/Modal.d.ts +1 -1
- package/dist/components/core/Modal/Modal.js +2 -7
- package/dist/components/core/Modal/Modal.theme.js +4 -8
- package/dist/components/core/Modal/Modal.types.d.ts +0 -10
- package/dist/components/core/Modal/index.d.ts +1 -1
- package/dist/components/core/ModalStack/ModalStack.d.ts +1 -1
- package/dist/components/core/ModalStack/ModalStack.types.d.ts +1 -2
- package/dist/components/core/ModalStack/ModalStackModal.d.ts +1 -1
- package/dist/components/core/ModalStack/ModalStackModal.js +2 -7
- package/dist/components/core/NavItem/NavItem.js +20 -4
- package/dist/components/core/NavItem/NavItem.theme.js +13 -2
- package/dist/components/core/PageHeading/PageHeading.theme.js +2 -2
- package/dist/components/core/Popover/Popover.theme.js +1 -1
- package/dist/components/core/Popover/Popover.types.d.ts +6 -2
- package/dist/components/core/Popover/PopoverBody.js +10 -3
- package/dist/components/core/ScrollArea/ScrollArea.js +242 -4
- package/dist/components/core/ScrollArea/ScrollArea.types.d.ts +12 -1
- package/dist/components/core/ScrollArea/smooth/SmoothScrollEngine.d.ts +4 -0
- package/dist/components/core/ScrollArea/smooth/SmoothScrollEngine.js +23 -0
- package/dist/components/core/ScrollArea/smooth/useSmoothScroll.js +4 -0
- package/dist/components/core/ScrollArea/smooth/useSmoothScroll.types.d.ts +5 -0
- package/dist/components/core/Segmented/Segmented.theme.js +2 -2
- package/dist/components/core/Sidebar/Sidebar.d.ts +2 -0
- package/dist/components/core/Sidebar/Sidebar.js +15 -7
- package/dist/components/core/Sidebar/Sidebar.types.d.ts +92 -4
- package/dist/components/core/Sidebar/SidebarCard.d.ts +25 -0
- package/dist/components/core/Sidebar/SidebarCard.js +68 -0
- package/dist/components/core/Sidebar/SidebarCard.theme.d.ts +8 -0
- package/dist/components/core/Sidebar/SidebarCard.theme.js +18 -0
- package/dist/components/core/Sidebar/SidebarContent.js +5 -1
- package/dist/components/core/Sidebar/SidebarContext.js +1 -1
- package/dist/components/core/Sidebar/SidebarHeader.js +10 -2
- package/dist/components/core/Sidebar/SidebarLogo.js +38 -3
- package/dist/components/core/Sidebar/SidebarSearch.d.ts +22 -0
- package/dist/components/core/Sidebar/SidebarSearch.js +135 -0
- package/dist/components/core/Sidebar/SidebarToggle.js +1 -1
- package/dist/components/core/Sidebar/SidebarUserProfile.js +2 -2
- package/dist/components/core/Sidebar/index.d.ts +3 -1
- package/dist/components/core/Tag/Tag.js +29 -5
- package/dist/components/core/Tag/Tag.theme.js +13 -8
- package/dist/components/core/Tag/Tag.types.d.ts +7 -0
- package/dist/components/core/Tooltip/Tooltip.js +1 -1
- package/dist/components/core/Tooltip/Tooltip.theme.js +1 -2
- package/dist/components/core/index.d.ts +2 -0
- package/dist/components/core/index.js +6 -0
- package/dist/components/data-display/DescriptionList/DescriptionList.js +23 -7
- package/dist/components/data-display/DescriptionList/DescriptionList.theme.js +10 -3
- package/dist/components/data-display/DescriptionList/DescriptionList.types.d.ts +49 -10
- package/dist/components/data-display/DescriptionList/index.d.ts +1 -1
- package/dist/components/data-display/Feed/Feed.js +28 -5
- package/dist/components/data-display/Feed/Feed.theme.js +1 -1
- package/dist/components/data-display/Feed/Feed.types.d.ts +32 -1
- package/dist/components/data-display/Feed/index.d.ts +1 -1
- package/dist/components/data-display/GanttChart/GanttChart.d.ts +1 -1
- package/dist/components/data-display/GanttChart/GanttChart.js +31 -4
- package/dist/components/data-display/GanttChart/GanttChart.theme.js +19 -17
- package/dist/components/data-display/GanttChart/GanttChart.types.d.ts +19 -0
- package/dist/components/data-display/GanttChart/GanttChart.utils.js +1 -1
- package/dist/components/data-display/GanttChart/GanttChartPanel.d.ts +1 -1
- package/dist/components/data-display/GanttChart/GanttChartPanel.js +3 -3
- package/dist/components/data-display/GanttChart/GanttDependencyArrows.js +7 -4
- package/dist/components/data-display/GanttChart/GanttMilestone.js +5 -5
- package/dist/components/data-display/GanttChart/GanttTablePanel.js +1 -1
- package/dist/components/data-display/GanttChart/GanttTableTaskRow.js +2 -2
- package/dist/components/data-display/GanttChart/GanttTaskBar.js +37 -16
- package/dist/components/data-display/GanttChart/GanttTimelineGrid.js +2 -1
- package/dist/components/data-display/GanttChart/GanttTimelineHeader.js +35 -11
- package/dist/components/data-display/GanttChart/GanttToolbar.js +2 -2
- package/dist/components/data-display/GanttChart/hooks/useGanttDrag.js +3 -2
- package/dist/components/data-display/GanttChart/index.d.ts +1 -1
- package/dist/components/data-display/Metric/Metric.js +8 -8
- package/dist/components/data-display/Metric/Metric.theme.d.ts +3 -2
- package/dist/components/data-display/Metric/Metric.theme.js +50 -68
- package/dist/components/data-display/Metric/Metric.types.d.ts +19 -21
- package/dist/components/data-display/Table/Table.js +2 -2
- package/dist/components/data-display/Table/Table.theme.js +27 -9
- package/dist/components/data-display/Table/Table.types.d.ts +8 -0
- package/dist/components/data-display/Table/TableBody.js +2 -2
- package/dist/components/data-display/Table/TableCell.js +1 -1
- package/dist/components/data-display/Table/TableRow.d.ts +1 -1
- package/dist/components/data-display/Table/TableRow.js +9 -2
- package/dist/components/data-display/Timeline/Timeline.js +27 -5
- package/dist/components/data-display/Timeline/Timeline.theme.d.ts +10 -2
- package/dist/components/data-display/Timeline/Timeline.theme.js +14 -8
- package/dist/components/data-display/Timeline/Timeline.types.d.ts +48 -16
- package/dist/components/data-display/Timeline/Timeline.utils.d.ts +6 -0
- package/dist/components/data-display/Timeline/Timeline.utils.js +11 -0
- package/dist/components/data-display/Timeline/TimelineItem.js +13 -20
- package/dist/components/data-display/Timeline/TimelineMarker.js +10 -8
- package/dist/components/data-display/Timeline/index.d.ts +2 -2
- package/dist/components/effects/3d/index.d.ts +0 -2
- package/dist/components/effects/3d/index.js +0 -1
- package/dist/components/effects/Aurora/Aurora.d.ts +6 -17
- package/dist/components/effects/Aurora/Aurora.js +297 -131
- package/dist/components/effects/Aurora/Aurora.types.d.ts +6 -0
- package/dist/components/effects/DotPattern/DotPattern.js +1 -1
- package/dist/components/effects/Overlay/Overlay.theme.js +1 -2
- package/dist/components/effects/Preloader/Preloader.animations.d.ts +23 -0
- package/dist/components/effects/Preloader/Preloader.animations.js +150 -0
- package/dist/components/effects/Preloader/Preloader.d.ts +3 -0
- package/dist/components/effects/Preloader/Preloader.js +119 -0
- package/dist/components/effects/Preloader/Preloader.types.d.ts +63 -0
- package/dist/components/effects/Preloader/index.d.ts +2 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.js +25 -14
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.types.d.ts +2 -0
- package/dist/components/effects/TiltCard/TiltCard.d.ts +12 -0
- package/dist/components/effects/TiltCard/TiltCard.glow.d.ts +28 -0
- package/dist/components/effects/TiltCard/TiltCard.glow.js +114 -0
- package/dist/components/effects/TiltCard/TiltCard.js +177 -0
- package/dist/components/effects/{SpotlightBorder/SpotlightBorder.shaders.d.ts → TiltCard/TiltCard.shaders.d.ts} +1 -1
- package/dist/components/effects/{SpotlightBorder/SpotlightBorder.shaders.js → TiltCard/TiltCard.shaders.js} +1 -1
- package/dist/components/effects/TiltCard/TiltCard.types.d.ts +88 -0
- package/dist/components/effects/TiltCard/index.d.ts +2 -0
- package/dist/components/effects/index.d.ts +4 -12
- package/dist/components/effects/index.js +2 -6
- package/dist/components/forms/Checkbox/Checkbox.js +7 -1
- package/dist/components/forms/Combobox/Combobox.js +1 -1
- package/dist/components/forms/Combobox/Combobox.theme.js +2 -4
- package/dist/components/forms/DatePicker/DatePicker.theme.js +11 -18
- package/dist/components/forms/DatePicker/DatePickerTrigger.js +1 -1
- package/dist/components/forms/DateRangePicker/DateRangePicker.theme.js +6 -13
- package/dist/components/forms/DateRangePicker/DateRangePickerTrigger.js +1 -1
- package/dist/components/forms/FileUpload/FileUpload.animations.d.ts +29 -0
- package/dist/components/forms/FileUpload/FileUpload.animations.js +19 -0
- package/dist/components/forms/FileUpload/FileUpload.js +85 -134
- package/dist/components/forms/FileUpload/FileUpload.theme.d.ts +2 -10
- package/dist/components/forms/FileUpload/FileUpload.theme.js +16 -30
- package/dist/components/forms/FileUpload/FileUpload.types.d.ts +26 -10
- package/dist/components/forms/FormLabel/FormLabel.theme.js +1 -1
- package/dist/components/forms/Input/Input.theme.js +13 -10
- package/dist/components/forms/InputCounter/InputCounter.theme.js +1 -1
- package/dist/components/forms/Mention/Mention.js +152 -57
- package/dist/components/forms/Mention/Mention.theme.js +16 -23
- package/dist/components/forms/Mention/Mention.types.d.ts +12 -12
- package/dist/components/forms/Mention/Mention.utils.js +32 -4
- package/dist/components/forms/RichTextEditor/RichTextEditor.js +3 -3
- package/dist/components/forms/RichTextEditor/RichTextEditor.theme.js +5 -5
- package/dist/components/forms/Select/Select.js +2 -2
- package/dist/components/forms/Select/Select.theme.js +3 -3
- package/dist/components/forms/Slider/Slider.theme.js +1 -1
- package/dist/components/forms/Switch/Switch.js +27 -15
- package/dist/components/forms/Switch/Switch.theme.d.ts +36 -6
- package/dist/components/forms/Switch/Switch.theme.js +33 -4
- package/dist/components/forms/Switch/Switch.types.d.ts +12 -2
- package/dist/components/forms/TimePicker/TimePicker.theme.js +1 -2
- package/dist/components/forms/TimePicker/TimePickerContent.js +1 -87
- package/dist/components/forms/TimePicker/TimePickerTrigger.js +1 -1
- package/dist/components/forms/forms.theme.js +21 -16
- package/dist/components/forms/index.d.ts +0 -4
- package/dist/components/forms/index.js +0 -89
- package/dist/components/generative/GenerativeView.d.ts +21 -0
- package/dist/components/generative/GenerativeView.js +116 -0
- package/dist/components/generative/actions.d.ts +26 -0
- package/dist/components/generative/actions.js +51 -0
- package/dist/components/generative/index.d.ts +11 -0
- package/dist/components/generative/index.js +9 -0
- package/dist/components/generative/registry.d.ts +43 -0
- package/dist/components/generative/registry.js +114 -0
- package/dist/components/generative/resolvers.d.ts +35 -0
- package/dist/components/generative/resolvers.js +93 -0
- package/dist/components/generative/schema.generated.d.ts +2 -0
- package/dist/components/generative/schema.generated.js +1639 -0
- package/dist/components/generative/schemaTypes.d.ts +30 -0
- package/dist/components/generative/streaming.d.ts +39 -0
- package/dist/components/generative/streaming.js +283 -0
- package/dist/components/generative/tools.d.ts +21 -0
- package/dist/components/generative/tools.js +54 -0
- package/dist/components/generative/types.d.ts +41 -0
- package/dist/components/generative/useGenerativeStream.d.ts +37 -0
- package/dist/components/generative/useGenerativeStream.js +36 -0
- package/dist/components/generative/validate.d.ts +24 -0
- package/dist/components/generative/validate.js +259 -0
- package/dist/components/layout/AppShell/AppShell.d.ts +10 -0
- package/dist/components/layout/AppShell/AppShell.js +84 -0
- package/dist/components/layout/AppShell/AppShell.theme.d.ts +3 -0
- package/dist/components/layout/AppShell/AppShell.theme.js +42 -0
- package/dist/components/layout/AppShell/AppShell.types.d.ts +127 -0
- package/dist/components/layout/AppShell/AppShellContext.d.ts +14 -0
- package/dist/components/layout/AppShell/AppShellContext.js +19 -0
- package/dist/components/layout/AppShell/AppShellFooter.d.ts +3 -0
- package/dist/components/layout/AppShell/AppShellFooter.js +12 -0
- package/dist/components/layout/AppShell/AppShellHeader.d.ts +3 -0
- package/dist/components/layout/AppShell/AppShellHeader.js +12 -0
- package/dist/components/layout/AppShell/AppShellMain.d.ts +3 -0
- package/dist/components/layout/AppShell/AppShellMain.js +19 -0
- package/dist/components/layout/AppShell/AppShellRightPanel.d.ts +3 -0
- package/dist/components/layout/AppShell/AppShellRightPanel.js +16 -0
- package/dist/components/layout/AppShell/AppShellSidebar.d.ts +3 -0
- package/dist/components/layout/AppShell/AppShellSidebar.js +16 -0
- package/dist/components/layout/AppShell/AppShellTopbar.d.ts +3 -0
- package/dist/components/layout/AppShell/AppShellTopbar.js +12 -0
- package/dist/components/layout/AppShell/index.d.ts +3 -0
- package/dist/components/layout/FormLayout/FormLayout.js +1 -87
- package/dist/components/layout/Grid/Grid.d.ts +3 -0
- package/dist/components/layout/Grid/Grid.js +50 -0
- package/dist/components/layout/Grid/Grid.theme.d.ts +2 -0
- package/dist/components/layout/Grid/Grid.theme.js +35 -0
- package/dist/components/layout/Grid/Grid.types.d.ts +57 -0
- package/dist/components/layout/Grid/index.d.ts +3 -0
- package/dist/components/layout/Section/Section.d.ts +3 -0
- package/dist/components/layout/Section/Section.js +18 -0
- package/dist/components/layout/Section/Section.theme.d.ts +2 -0
- package/dist/components/layout/Section/Section.theme.js +10 -0
- package/dist/components/layout/Section/Section.types.d.ts +34 -0
- package/dist/components/layout/Section/index.d.ts +3 -0
- package/dist/components/layout/Stack/Stack.d.ts +3 -0
- package/dist/components/layout/Stack/Stack.js +19 -0
- package/dist/components/layout/Stack/Stack.theme.d.ts +2 -0
- package/dist/components/layout/Stack/Stack.theme.js +10 -0
- package/dist/components/layout/Stack/Stack.types.d.ts +39 -0
- package/dist/components/layout/Stack/index.d.ts +3 -0
- package/dist/components/layout/index.d.ts +4 -0
- package/dist/components/layout/index.js +8 -0
- package/dist/generative.schema.json +1637 -0
- package/dist/hooks/useSelectPortal.d.ts +10 -2
- package/dist/hooks/useSelectPortal.js +45 -24
- package/dist/index.js +180 -174
- package/dist/registry.json +10205 -0
- package/dist/styles.css +1 -1
- package/dist/tools.json +1731 -0
- package/dist/utils/dateUtils.js +11 -1
- package/package.json +19 -4
- package/src/global.scss +82 -109
- package/src/styles/theme.css +707 -474
- package/dist/bg/1.jpg +0 -0
- package/dist/bg/10.jpg +0 -0
- package/dist/bg/11.jpg +0 -0
- package/dist/bg/14.jpg +0 -0
- package/dist/bg/15.jpg +0 -0
- package/dist/bg/16.jpg +0 -0
- package/dist/bg/17.jpg +0 -0
- package/dist/bg/18.jpg +0 -0
- package/dist/bg/19.jpg +0 -0
- package/dist/bg/2.jpg +0 -0
- package/dist/bg/20.jpg +0 -0
- package/dist/bg/21.jpg +0 -0
- package/dist/bg/22.jpg +0 -0
- package/dist/bg/23.jpg +0 -0
- package/dist/bg/24.jpg +0 -0
- package/dist/bg/3.jpg +0 -0
- package/dist/bg/4.jpg +0 -0
- package/dist/bg/5.jpg +0 -0
- package/dist/bg/6.jpg +0 -0
- package/dist/bg/7.jpg +0 -0
- package/dist/bg/8.jpg +0 -0
- package/dist/bg/9.jpg +0 -0
- package/dist/components/effects/MorphingText/MorphingText.d.ts +0 -17
- package/dist/components/effects/MorphingText/MorphingText.js +0 -125
- package/dist/components/effects/MorphingText/MorphingText.types.d.ts +0 -18
- package/dist/components/effects/MorphingText/index.d.ts +0 -2
- package/dist/components/effects/PageTransition/PageTransition.animations.d.ts +0 -8
- package/dist/components/effects/PageTransition/PageTransition.animations.js +0 -53
- package/dist/components/effects/PageTransition/PageTransition.d.ts +0 -3
- package/dist/components/effects/PageTransition/PageTransition.js +0 -82
- package/dist/components/effects/PageTransition/PageTransition.types.d.ts +0 -15
- package/dist/components/effects/PageTransition/index.d.ts +0 -2
- package/dist/components/effects/ParallaxSection/ParallaxSection.d.ts +0 -26
- package/dist/components/effects/ParallaxSection/ParallaxSection.js +0 -71
- package/dist/components/effects/ParallaxSection/ParallaxSection.types.d.ts +0 -11
- package/dist/components/effects/ParallaxSection/index.d.ts +0 -2
- package/dist/components/effects/Spotlight/Spotlight.d.ts +0 -36
- package/dist/components/effects/Spotlight/Spotlight.js +0 -112
- package/dist/components/effects/Spotlight/Spotlight.types.d.ts +0 -29
- package/dist/components/effects/Spotlight/index.d.ts +0 -2
- package/dist/components/effects/SpotlightBorder/SpotlightBorder.d.ts +0 -18
- package/dist/components/effects/SpotlightBorder/SpotlightBorder.js +0 -213
- package/dist/components/effects/SpotlightBorder/SpotlightBorder.types.d.ts +0 -61
- package/dist/components/effects/SpotlightBorder/index.d.ts +0 -2
- package/dist/components/effects/StickyScroll/StickyScroll.d.ts +0 -30
- package/dist/components/effects/StickyScroll/StickyScroll.js +0 -128
- package/dist/components/effects/StickyScroll/StickyScroll.types.d.ts +0 -19
- package/dist/components/effects/StickyScroll/index.d.ts +0 -2
- package/dist/components/forms/CronInput/CronInput.d.ts +0 -3
- package/dist/components/forms/CronInput/CronInput.js +0 -113
- package/dist/components/forms/CronInput/CronInput.theme.d.ts +0 -6
- package/dist/components/forms/CronInput/CronInput.theme.js +0 -84
- package/dist/components/forms/CronInput/CronInput.types.d.ts +0 -109
- package/dist/components/forms/CronInput/CronInput.utils.d.ts +0 -67
- package/dist/components/forms/CronInput/CronInput.utils.js +0 -505
- package/dist/components/forms/CronInput/index.d.ts +0 -4
- /package/dist/components/effects/{SpotlightBorder/SpotlightBorder.types.js → TiltCard/TiltCard.types.js} +0 -0
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
const menuItemTheme = {
|
|
2
|
-
//
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
" "
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
"
|
|
2
|
+
// Structural base only — layout, spacing, radius, transition. No state colors:
|
|
3
|
+
// those are resolved in JS (see `states`) so a consumer `className` always wins.
|
|
4
|
+
baseStyle: "relative flex items-center gap-2 px-3 py-1.5 text-sm font-[500] cursor-pointer outline-none select-none rounded-[var(--radius-base)] transition-colors duration-300 mb-px last-of-type:mb-0",
|
|
5
|
+
// State styling resolved in JS to plain utility classes so `className` overrides
|
|
6
|
+
// win (data-[state] variants carry attribute-selector specificity and can't be
|
|
7
|
+
// overridden by a plain className — see Button.theme.ts / NavItem.theme.ts for
|
|
8
|
+
// the same rationale). data-* attributes are still emitted as hooks for
|
|
9
|
+
// consumer CSS + tests, just not used for styling here.
|
|
10
|
+
states: {
|
|
11
|
+
default: "text-[var(--color-text-primary)] hover:bg-[var(--color-surface-hover)]",
|
|
12
|
+
selected: "bg-[var(--color-primary)]/5 text-[var(--color-primary)] " +
|
|
13
|
+
"dark:bg-white/10 dark:text-[var(--color-text-primary)]",
|
|
14
|
+
disabled: "opacity-60 cursor-not-allowed pointer-events-none",
|
|
15
|
+
},
|
|
16
|
+
// Keyboard-focus highlight (item received roving focus) — same fill as hover.
|
|
17
|
+
focusedStyle: "bg-[var(--color-surface-hover)]",
|
|
15
18
|
// Danger item styling (e.g., Delete actions)
|
|
16
19
|
dangerStyle: "text-[var(--color-danger)] hover:bg-[var(--color-danger)] hover:text-[var(--color-danger-contrast)] " +
|
|
17
20
|
"dark:text-[var(--color-danger-400)] dark:hover:bg-[var(--color-danger-600)] dark:hover:text-[var(--color-danger-contrast)]",
|
|
18
21
|
// Focus visible styling for keyboard navigation
|
|
19
|
-
focusStyle: "focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2 " +
|
|
20
|
-
"dark:focus-visible:ring-[var(--color-primary-400)]
|
|
22
|
+
focusStyle: "focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--color-background)] " +
|
|
23
|
+
"dark:focus-visible:ring-[var(--color-primary-400)]",
|
|
21
24
|
// Description text below the label
|
|
22
|
-
subtitleStyle: "text-
|
|
25
|
+
subtitleStyle: "text-sm text-[var(--color-text-secondary)]/80 mt-0.5 truncate",
|
|
23
26
|
};
|
|
24
27
|
|
|
25
28
|
export { menuItemTheme };
|
|
@@ -17,6 +17,8 @@ export interface MenuItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>
|
|
|
17
17
|
disabled?: boolean;
|
|
18
18
|
/** Whether the item has danger/destructive styling */
|
|
19
19
|
isDanger?: boolean;
|
|
20
|
+
/** Whether the item is in a selected state (drives selected styling) */
|
|
21
|
+
selected?: boolean;
|
|
20
22
|
/** Called on click or Enter/Space keyboard activation */
|
|
21
23
|
onActivate?: () => void;
|
|
22
24
|
/** Theme overrides for styling */
|
|
@@ -3,7 +3,7 @@ import { ModalProps, ModalContextValue } from "./Modal.types";
|
|
|
3
3
|
export declare const ModalContext: React.Context<ModalContextValue | undefined>;
|
|
4
4
|
export declare const useModalContext: () => ModalContextValue;
|
|
5
5
|
export declare const Modal: {
|
|
6
|
-
({ isOpen, onClose, size,
|
|
6
|
+
({ isOpen, onClose, size, closeOnOverlayClick, closeOnEsc, showCloseButton, role, children, className, theme: themeOverrides, ...props }: ModalProps): import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
displayName: string;
|
|
8
8
|
} & {
|
|
9
9
|
Header: {
|
|
@@ -18,8 +18,7 @@ const useModalContext = () => {
|
|
|
18
18
|
throw new Error("Modal compound components must be used within <Modal>");
|
|
19
19
|
return ctx;
|
|
20
20
|
};
|
|
21
|
-
const ModalRoot = ({ isOpen, onClose, size = "md",
|
|
22
|
-
var _a;
|
|
21
|
+
const ModalRoot = ({ isOpen, onClose, size = "md", closeOnOverlayClick = true, closeOnEsc = true, showCloseButton = true, role = "dialog", children, className, theme: themeOverrides, ...props }) => {
|
|
23
22
|
// Generate unique IDs for ARIA linkage
|
|
24
23
|
const id = useId();
|
|
25
24
|
const titleId = `${id}-title`;
|
|
@@ -39,10 +38,6 @@ const ModalRoot = ({ isOpen, onClose, size = "md", variant = "default", closeOnO
|
|
|
39
38
|
const theme = {
|
|
40
39
|
...modalTheme,
|
|
41
40
|
...(themeOverrides || {}),
|
|
42
|
-
containerVariants: {
|
|
43
|
-
...modalTheme.containerVariants,
|
|
44
|
-
...((themeOverrides === null || themeOverrides === void 0 ? void 0 : themeOverrides.containerVariants) || {}),
|
|
45
|
-
},
|
|
46
41
|
};
|
|
47
42
|
// Context value
|
|
48
43
|
const contextValue = useMemo(() => ({
|
|
@@ -59,7 +54,7 @@ const ModalRoot = ({ isOpen, onClose, size = "md", variant = "default", closeOnO
|
|
|
59
54
|
titleId,
|
|
60
55
|
subtitleId,
|
|
61
56
|
}), [isOpen, onClose, size, isSizeToken, closeOnOverlayClick, closeOnEsc, showCloseButton, theme, isBodyScrollable, setIsBodyScrollable, titleId, subtitleId]);
|
|
62
|
-
return (jsx(Overlay, { isOpen: isOpen, onClose: onClose, closeOnOverlayClick: closeOnOverlayClick, closeOnEsc: closeOnEsc, position: "center", role: role, ariaModal: true, ariaLabelledBy: titleId, ariaDescribedBy: subtitleId, contentClassName: cn(theme.container,
|
|
57
|
+
return (jsx(Overlay, { isOpen: isOpen, onClose: onClose, closeOnOverlayClick: closeOnOverlayClick, closeOnEsc: closeOnEsc, position: "center", role: role, ariaModal: true, ariaLabelledBy: titleId, ariaDescribedBy: subtitleId, contentClassName: cn(theme.container, isSizeToken ? modalSizeVariants[size] : size, className), animations: {
|
|
63
58
|
overlay: modalOverlayAnimations,
|
|
64
59
|
content: modalContentAnimations,
|
|
65
60
|
}, ...props, children: jsx(ModalContext.Provider, { value: contextValue, children: children }) }));
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
const modalTheme = {
|
|
2
2
|
// Note: overlay styling is now handled by the shared Overlay component
|
|
3
3
|
overlay: "",
|
|
4
|
-
container: "relative w-full max-h-[calc(100vh-2rem)] rounded-[var(--modal-radius)] shadow-2xl shadow-black/30 flex flex-col my-4 min-h-0 overflow-hidden",
|
|
5
|
-
|
|
6
|
-
default: "bg-[var(--color-surface-raised)] ring-4 !ring-white/10 dark:bg-[var(--color-surface-raised)] border border-[var(--color-border)]",
|
|
7
|
-
translucent: "bg-gradient-to-b from-[var(--color-background)]/90 to-[var(--color-background)]/70 backdrop-blur-xl ring-4 ring-white/20 border-t border-[var(--color-border)]",
|
|
8
|
-
},
|
|
9
|
-
header: "flex items-start justify-between p-6 pb-0 shrink-0 border-b border-transparent gap-6 relative",
|
|
4
|
+
container: "relative w-full max-h-[calc(100vh-2rem)] rounded-[var(--modal-radius)] shadow-2xl shadow-black/30 flex flex-col my-4 min-h-0 overflow-hidden bg-[var(--color-surface-raised)]/80 ring-6 !ring-white/10 border border-[var(--color-border)]",
|
|
5
|
+
header: "flex items-start justify-between p-4 pb-0 shrink-0 border-b border-transparent gap-6 relative",
|
|
10
6
|
headerContent: "flex flex-col items-start gap-2 flex-1",
|
|
11
7
|
title: "text-base leading-6 font-semibold text-[var(--color-text-primary)]",
|
|
12
8
|
subtitle: "text-sm text-[var(--color-text-muted)] mt-0.5",
|
|
13
|
-
body: "flex-1 overflow-y-auto p-
|
|
14
|
-
footer: "flex items-center justify-end gap-2 p-
|
|
9
|
+
body: "flex-1 overflow-y-auto p-4 pb-3",
|
|
10
|
+
footer: "flex items-center justify-end gap-2 p-3 py-2 border-t border-transparent",
|
|
15
11
|
};
|
|
16
12
|
// Size variants for the modal container
|
|
17
13
|
const modalSizeVariants = {
|
|
@@ -2,11 +2,9 @@ import React from "react";
|
|
|
2
2
|
export type ModalSizeToken = "sm" | "md" | "lg" | "xl" | "full";
|
|
3
3
|
/** Preset size token or any arbitrary Tailwind width class, e.g. `"w-80"`, `"w-[50vw]"` */
|
|
4
4
|
export type ModalSize = ModalSizeToken | (string & {});
|
|
5
|
-
export type ModalVariant = "default" | "translucent";
|
|
6
5
|
export interface ModalTheme {
|
|
7
6
|
overlay: string;
|
|
8
7
|
container: string;
|
|
9
|
-
containerVariants: Record<ModalVariant, string>;
|
|
10
8
|
header: string;
|
|
11
9
|
headerContent: string;
|
|
12
10
|
title: string;
|
|
@@ -17,7 +15,6 @@ export interface ModalTheme {
|
|
|
17
15
|
export interface ModalThemeOverrides {
|
|
18
16
|
overlay?: string;
|
|
19
17
|
container?: string;
|
|
20
|
-
containerVariants?: Partial<Record<ModalVariant, string>>;
|
|
21
18
|
header?: string;
|
|
22
19
|
headerContent?: string;
|
|
23
20
|
title?: string;
|
|
@@ -43,13 +40,6 @@ export interface ModalProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "
|
|
|
43
40
|
isOpen: boolean;
|
|
44
41
|
onClose: () => void;
|
|
45
42
|
size?: ModalSize;
|
|
46
|
-
/**
|
|
47
|
-
* Visual variant of the modal container.
|
|
48
|
-
* - `default`: Solid background with subtle ring
|
|
49
|
-
* - `translucent`: Frosted glass effect with reduced opacity and backdrop blur
|
|
50
|
-
* @default "default"
|
|
51
|
-
*/
|
|
52
|
-
variant?: ModalVariant;
|
|
53
43
|
closeOnOverlayClick?: boolean;
|
|
54
44
|
closeOnEsc?: boolean;
|
|
55
45
|
showCloseButton?: boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { Modal } from "./Modal";
|
|
2
|
-
export type { ModalProps, ModalSize,
|
|
2
|
+
export type { ModalProps, ModalSize, ModalThemeOverrides } from "./Modal.types";
|
|
@@ -5,7 +5,7 @@ export declare const ModalStack: {
|
|
|
5
5
|
displayName: string;
|
|
6
6
|
} & {
|
|
7
7
|
Modal: {
|
|
8
|
-
({ size,
|
|
8
|
+
({ size, showCloseButton, showBackButton, onClose, onBack, children, className, theme: themeOverrides, _stackOnClose, _isBackModal, }: ModalStackModalInternalProps): import("react/jsx-runtime").JSX.Element;
|
|
9
9
|
displayName: string;
|
|
10
10
|
};
|
|
11
11
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { ModalSize,
|
|
2
|
+
import { ModalSize, ModalThemeOverrides } from "../Modal/Modal.types";
|
|
3
3
|
export interface ModalStackProps {
|
|
4
4
|
isOpen: boolean;
|
|
5
5
|
onClose: () => void;
|
|
@@ -12,7 +12,6 @@ export interface ModalStackModalProps {
|
|
|
12
12
|
isOpen?: boolean;
|
|
13
13
|
onClose?: () => void;
|
|
14
14
|
size?: ModalSize;
|
|
15
|
-
variant?: ModalVariant;
|
|
16
15
|
showCloseButton?: boolean;
|
|
17
16
|
showBackButton?: boolean;
|
|
18
17
|
onBack?: () => void;
|
|
@@ -6,6 +6,6 @@ export interface ModalStackModalInternalProps extends ModalStackModalProps {
|
|
|
6
6
|
_isBackModal?: boolean;
|
|
7
7
|
}
|
|
8
8
|
export declare const ModalStackModal: {
|
|
9
|
-
({ size,
|
|
9
|
+
({ size, showCloseButton, showBackButton, onClose, onBack, children, className, theme: themeOverrides, _stackOnClose, _isBackModal, }: ModalStackModalInternalProps): import("react/jsx-runtime").JSX.Element;
|
|
10
10
|
displayName: string;
|
|
11
11
|
};
|
|
@@ -7,8 +7,7 @@ import { ArrowLeftIcon } from '@heroicons/react/24/outline';
|
|
|
7
7
|
import { modalStackTheme } from './ModalStack.theme.js';
|
|
8
8
|
import { Button } from '../Button/Button.js';
|
|
9
9
|
|
|
10
|
-
const ModalStackModal = ({ size = "md",
|
|
11
|
-
var _a;
|
|
10
|
+
const ModalStackModal = ({ size = "md", showCloseButton = true, showBackButton = false, onClose, onBack, children, className, theme: themeOverrides, _stackOnClose, _isBackModal, }) => {
|
|
12
11
|
const id = useId();
|
|
13
12
|
const titleId = `${id}-title`;
|
|
14
13
|
const subtitleId = `${id}-subtitle`;
|
|
@@ -25,10 +24,6 @@ const ModalStackModal = ({ size = "md", variant = "default", showCloseButton = t
|
|
|
25
24
|
const theme = {
|
|
26
25
|
...modalTheme,
|
|
27
26
|
...(themeOverrides || {}),
|
|
28
|
-
containerVariants: {
|
|
29
|
-
...modalTheme.containerVariants,
|
|
30
|
-
...((themeOverrides === null || themeOverrides === void 0 ? void 0 : themeOverrides.containerVariants) || {}),
|
|
31
|
-
},
|
|
32
27
|
};
|
|
33
28
|
const contextValue = {
|
|
34
29
|
isOpen: true,
|
|
@@ -44,7 +39,7 @@ const ModalStackModal = ({ size = "md", variant = "default", showCloseButton = t
|
|
|
44
39
|
titleId,
|
|
45
40
|
subtitleId,
|
|
46
41
|
};
|
|
47
|
-
return (jsx(ModalContext.Provider, { value: contextValue, children: jsxs("div", { className: cn(theme.container,
|
|
42
|
+
return (jsx(ModalContext.Provider, { value: contextValue, children: jsxs("div", { className: cn(theme.container, modalSizeVariants[size], className), role: "dialog", "aria-modal": "true", "aria-labelledby": titleId, "aria-describedby": subtitleId, children: [showBackButton && (jsx("div", { className: cn(modalStackTheme.backButton), children: jsxs(Button, { onClick: backHandler, "aria-label": "Go back", variant: "link", size: "sm", children: [jsx(ArrowLeftIcon, { className: "size-4" }), "Back"] }) })), children] }) }));
|
|
48
43
|
};
|
|
49
44
|
ModalStackModal.displayName = "ModalStack.Modal";
|
|
50
45
|
|
|
@@ -186,8 +186,15 @@ const NavItem = React__default.forwardRef(({ children, startContent, endContent,
|
|
|
186
186
|
const textClasses = cn(theme.text);
|
|
187
187
|
// Chevron for submenu
|
|
188
188
|
const chevron = hasSubmenu && !isCollapsedView ? (jsx(ChevronDownIcon, { strokeWidth: 2, className: cn("size-4 transition-transform duration-200 text-[var(--color-text-muted)]", isExpanded && "text-[var(--color-text-primary)]", isExpanded && "rotate-180") })) : null;
|
|
189
|
-
// Strip drag/animation DOM handlers that collide with motion's prop types
|
|
190
|
-
|
|
189
|
+
// Strip drag/animation DOM handlers that collide with motion's prop types.
|
|
190
|
+
// `onSubmit`/`onSubmitCapture` are stripped too: NavItem renders as either
|
|
191
|
+
// `motion.a` or `motion.button`, but `NavItemProps extends HTMLAttributes<HTMLElement>`
|
|
192
|
+
// types these as `SubmitEventHandler<HTMLElement>`. Under react@canary types
|
|
193
|
+
// (e.g. Next 16 consumers building from source), `SubmitEvent` gains a
|
|
194
|
+
// T-dependent field, so the generic-element handler is no longer assignable to
|
|
195
|
+
// motion's element-specific `HTMLMotionProps<"a">` — a build-time type error.
|
|
196
|
+
// A NavItem never submits a form, so dropping these is behaviour-neutral.
|
|
197
|
+
const { onAnimationStart, onAnimationEnd, onDrag, onDragStart, onDragEnd, onSubmit, onSubmitCapture, ...motionSafeProps } = props;
|
|
191
198
|
const interactionProps = {
|
|
192
199
|
className: cn("relative overflow-hidden", containerClasses),
|
|
193
200
|
"aria-disabled": isDisabled || undefined,
|
|
@@ -199,15 +206,24 @@ const NavItem = React__default.forwardRef(({ children, startContent, endContent,
|
|
|
199
206
|
whileHover: isDisabled ? undefined : (isCollapsedView ? { scale: 1.05 } : undefined),
|
|
200
207
|
whileTap: isDisabled ? undefined : { scale: 0.98 },
|
|
201
208
|
transition: { type: "spring", stiffness: 400, damping: 25 },
|
|
209
|
+
// Note: tried Framer Motion's canonical `layout` + `LayoutGroup` +
|
|
210
|
+
// `mode="popLayout"` pattern for the row's height shrink — transforms
|
|
211
|
+
// *do* fire (verified via getComputedStyle), but the parent Sidebar's
|
|
212
|
+
// concurrent `motion.aside` width animation re-triggers measurements
|
|
213
|
+
// every frame, which keeps resetting the layout animation before it
|
|
214
|
+
// settles. The row visibly freezes mid-transform. Animating the inner
|
|
215
|
+
// motion.div's height directly (see AnimatePresence below) sidesteps the
|
|
216
|
+
// concurrent-measurement problem and produces a smooth ~200ms shrink.
|
|
202
217
|
...motionSafeProps,
|
|
203
218
|
};
|
|
204
219
|
const innerContent = (jsxs(Fragment, { children: [startContent && (jsxs("div", { className: "flex items-center justify-center flex-shrink-0 relative", children: [React__default.isValidElement(startContent)
|
|
205
220
|
? React__default.cloneElement(startContent, {
|
|
206
221
|
className: cn(iconClasses, startContent.props.className),
|
|
207
222
|
})
|
|
208
|
-
: startContent, isCollapsedView && hasNotification && (jsx("span", { className: cn("absolute -top-0.5 -right-0.5 ring-2 ring-[var(--color-surface)]", navItemTheme.notificationDot, customTheme.notificationDot), "aria-hidden": "true" }))] })), jsx(AnimatePresence, { initial: false, children: !isCollapsedView && (jsxs(motion.
|
|
223
|
+
: startContent, isCollapsedView && hasNotification && (jsx("span", { className: cn("absolute -top-0.5 -right-0.5 ring-2 ring-[var(--color-surface)]", navItemTheme.notificationDot, customTheme.notificationDot), "aria-hidden": "true" }))] })), jsx(AnimatePresence, { initial: false, children: !isCollapsedView && (jsxs(motion.div, { initial: { opacity: 0, x: -4, height: 0 }, animate: { opacity: 1, x: 0, height: "auto" }, exit: { opacity: 0, x: -4, height: 0 }, transition: {
|
|
209
224
|
opacity: { duration: 0.15, ease: [0.4, 0, 0.2, 1] },
|
|
210
|
-
x: { duration: 0.2, ease: [0.4, 0, 0.2, 1] }
|
|
225
|
+
x: { duration: 0.2, ease: [0.4, 0, 0.2, 1] },
|
|
226
|
+
height: { duration: 0.2, ease: [0.4, 0, 0.2, 1] },
|
|
211
227
|
}, className: "flex-1 min-w-0 flex flex-col overflow-hidden whitespace-nowrap", children: [jsxs("span", { className: "flex items-center justify-between gap-2 w-full min-w-0", children: [jsx("span", { className: cn("truncate flex-1 min-w-0", textClasses), children: children }), jsxs("span", { className: "flex items-center gap-1.5 flex-shrink-0 ml-2", children: [shortcut && (jsx("kbd", { className: "hidden group-hover:inline-flex h-[18px] items-center text-[10px] text-[var(--color-text-muted)] font-sans border border-[var(--color-border)] rounded px-1.5 leading-none flex-shrink-0", children: shortcut })), notificationElement, endContent, chevron] })] }), description && (jsx("span", { className: "block text-xs text-[var(--color-text-muted)] mt-0.5 truncate w-full", children: description }))] }, "expanded-content")) }), isCollapsedView && (jsxs("span", { className: "sr-only", children: [children, typeof notification === "number" && notification > 0
|
|
212
228
|
? ` (${notification} unread)`
|
|
213
229
|
: notification === true
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const navItemTheme = {
|
|
2
|
-
baseStyle: "group relative flex items-center gap-3 px-2.5 py-2 text-sm font-medium cursor-pointer select-none w-full rounded-[var(--nav-item-radius)] outline-none overflow-hidden transition-[padding,gap,background-color,border-color,color,box-shadow] duration-200 ease-[cubic-bezier(0.4,0,0.2,1)] text-left",
|
|
2
|
+
baseStyle: "group relative flex items-center gap-3 px-2.5 py-2 text-sm font-medium cursor-pointer select-none w-full rounded-[var(--nav-item-radius)] outline-none overflow-hidden transition-[padding,gap,height,background-color,border-color,color,box-shadow] duration-200 ease-[cubic-bezier(0.4,0,0.2,1)] text-left",
|
|
3
3
|
icon: "size-5",
|
|
4
4
|
text: "flex-1 min-w-0 truncate",
|
|
5
5
|
// State styling resolved in JS to plain utility classes so `className` overrides win
|
|
@@ -25,8 +25,19 @@ const navItemTheme = {
|
|
|
25
25
|
1: "pl-11",
|
|
26
26
|
2: "pl-10",
|
|
27
27
|
},
|
|
28
|
+
// Collapsed override gives every nav row a uniform 36×36 square hit-area.
|
|
29
|
+
// CRITICAL: this uses PADDING-based centering, not `justify-center`, so the
|
|
30
|
+
// expanded↔collapsed transition is one continuous animation of the padding
|
|
31
|
+
// + gap properties (which are CSS-transitionable). Toggling `justify-*`
|
|
32
|
+
// would cause a frame-0 flex-layout snap — the label appears at its final
|
|
33
|
+
// position instead of sliding in via AnimatePresence.
|
|
34
|
+
//
|
|
35
|
+
// On a 60px rail (Sidebar.Content px-3 → 36px interior, NavItem w-full):
|
|
36
|
+
// !px-2 (8 each) + size-5 icon (20) = 8 + 20 + 8 = 36 → centered icon.
|
|
37
|
+
// baseStyle's py-2 (8 each) + icon 20 = 36 → square height.
|
|
38
|
+
// !py-2 is repeated explicitly so the compact density's py-1.5 doesn't win.
|
|
28
39
|
collapsed: {
|
|
29
|
-
container: "!gap-0 !px-
|
|
40
|
+
container: "!gap-0 !px-2 !py-2",
|
|
30
41
|
icon: "size-5",
|
|
31
42
|
},
|
|
32
43
|
density: {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const pageHeadingTheme = {
|
|
2
2
|
baseStyle: "flex flex-col pb-6 mb-6",
|
|
3
3
|
headerStyle: "flex items-center gap-4",
|
|
4
|
-
titleStyle: "text-xl font-
|
|
5
|
-
subtitleStyle: "text-sm text-[var(--color-text-
|
|
4
|
+
titleStyle: "text-xl font-bold text-[var(--color-text-primary)]",
|
|
5
|
+
subtitleStyle: "text-sm text-[var(--color-text-secondary)] mt-1",
|
|
6
6
|
actionsStyle: "sm:ml-auto flex items-center gap-2 shrink-0",
|
|
7
7
|
iconStyle: "flex items-center justify-center shrink-0 text-[var(--color-text-muted)]",
|
|
8
8
|
separatorStyle: "border-b border-[var(--color-border)] mt-4",
|
|
@@ -5,7 +5,7 @@ const popoverTheme = {
|
|
|
5
5
|
// Base styles for the popover
|
|
6
6
|
baseStyle: "z-50 outline-none",
|
|
7
7
|
// Body styles
|
|
8
|
-
bodyStyle: "bg-[var(--color-surface-overlay)] border border-[var(--color-border)] rounded-[var(--popover-radius)] shadow-real-xl p-4 max-w-[min(24rem,calc(100vw-2rem))]
|
|
8
|
+
bodyStyle: "bg-[var(--color-surface-overlay)]/80 backdrop-blur-md border border-[var(--color-border)] rounded-[var(--popover-radius)] shadow-real-xl p-4 max-w-[min(24rem,calc(100vw-2rem))]",
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export { popoverTheme };
|
|
@@ -48,8 +48,12 @@ export interface PopoverBodyProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
48
48
|
children: ReactNode;
|
|
49
49
|
animation?: boolean;
|
|
50
50
|
portal?: boolean;
|
|
51
|
-
/**
|
|
52
|
-
*
|
|
51
|
+
/** Cap the body to the viewport-available height (space below/above the
|
|
52
|
+
* trigger, computed by the positioning hook; falls back to 400px) and add
|
|
53
|
+
* `overflow-y-auto`, so tall content scrolls inside the popover instead of
|
|
54
|
+
* extending past the viewport unreachably. `max-height` + `auto` means short
|
|
55
|
+
* popovers show no scrollbar. Set `false` to opt out (uncapped, may overflow).
|
|
56
|
+
* @default true */
|
|
53
57
|
scrollable?: boolean;
|
|
54
58
|
/** Custom max-height when scrollable is true (e.g. "300px", "20rem").
|
|
55
59
|
* Overrides the default viewport-aware height. */
|
|
@@ -26,7 +26,7 @@ const overlayContentAnimations = {
|
|
|
26
26
|
/**
|
|
27
27
|
* PopoverBody component displays the body/content of the popover
|
|
28
28
|
*/
|
|
29
|
-
const PopoverBody = React__default.forwardRef(({ children, className, animation = true, portal = true, scrollable =
|
|
29
|
+
const PopoverBody = React__default.forwardRef(({ children, className, animation = true, portal = true, scrollable = true, maxHeight, ...props }, ref) => {
|
|
30
30
|
const { isOpen, onOpenChange, triggerRef, contentRef, placement, offset, triggerType, closeOnClickOutside, closeOnEsc, preventClose, hasBackdrop, theme, contentId, } = usePopoverContext();
|
|
31
31
|
const shouldReduceMotion = useReducedMotion();
|
|
32
32
|
const localRef = useRef(null);
|
|
@@ -45,13 +45,20 @@ const PopoverBody = React__default.forwardRef(({ children, className, animation
|
|
|
45
45
|
});
|
|
46
46
|
// Click outside detection (active when no backdrop — with backdrop, Overlay handles it)
|
|
47
47
|
useClickOutside(localRef, (e) => {
|
|
48
|
-
var _a;
|
|
48
|
+
var _a, _b, _c;
|
|
49
49
|
if (hasBackdrop)
|
|
50
50
|
return; // Overlay handles click-outside via backdrop
|
|
51
51
|
if (e.target === triggerRef.current ||
|
|
52
52
|
((_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target))) {
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
|
+
// Ignore clicks that land inside any FlikkUI overlay portal (a nested
|
|
56
|
+
// Select/Tooltip/Dropdown/Popover renders to document.body, outside our
|
|
57
|
+
// content ref — without this it would count as an outside click and
|
|
58
|
+
// dismiss the popover). See the `data-flikkui-portal` convention.
|
|
59
|
+
if ((_c = (_b = e.target) === null || _b === void 0 ? void 0 : _b.closest) === null || _c === void 0 ? void 0 : _c.call(_b, "[data-flikkui-portal]")) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
55
62
|
if (closeOnClickOutside && !preventClose) {
|
|
56
63
|
onOpenChange(false);
|
|
57
64
|
}
|
|
@@ -120,7 +127,7 @@ const PopoverBody = React__default.forwardRef(({ children, className, animation
|
|
|
120
127
|
? { duration: 0 }
|
|
121
128
|
: popoverTransitions.content, "data-state": isOpen ? "open" : "closed", "data-placement": placement, "data-trigger": triggerType, onClick: (e) => e.stopPropagation(), ...domProps, children: children })) }));
|
|
122
129
|
if (portal && isClient) {
|
|
123
|
-
return createPortal(jsx("div", { className: isDarkMode ? "dark" : undefined, children: popoverContent }), document.body);
|
|
130
|
+
return createPortal(jsx("div", { "data-flikkui-portal": "", className: isDarkMode ? "dark" : undefined, children: popoverContent }), document.body);
|
|
124
131
|
}
|
|
125
132
|
return popoverContent;
|
|
126
133
|
});
|