@flikk/ui 1.0.0-beta.2 → 1.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ai/ApprovalCard/ApprovalCard.js +2 -2
- package/dist/components/ai/ApprovalCard/ApprovalCard.types.d.ts +2 -2
- package/dist/components/ai/PromptInput/PromptInput.js +173 -13
- package/dist/components/ai/PromptInput/PromptInput.theme.js +1 -0
- package/dist/components/ai/PromptInput/PromptInput.types.d.ts +20 -0
- package/dist/components/core/Accordion/Accordion.theme.js +2 -2
- package/dist/components/core/Alert/Alert.js +2 -2
- package/dist/components/core/Alert/Alert.types.d.ts +2 -2
- package/dist/components/core/AlertDialog/AlertDialog.d.ts +1 -1
- package/dist/components/core/AlertDialog/AlertDialog.js +2 -2
- package/dist/components/core/AlertDialog/AlertDialog.types.d.ts +2 -2
- package/dist/components/core/Badge/Badge.js +11 -9
- package/dist/components/core/Badge/Badge.theme.js +13 -14
- package/dist/components/core/Badge/Badge.types.d.ts +6 -1
- package/dist/components/core/Button/Button.theme.js +8 -9
- package/dist/components/core/Calendar/Calendar.theme.js +1 -1
- package/dist/components/core/Card/Card.d.ts +2 -2
- package/dist/components/core/Card/Card.js +6 -7
- package/dist/components/core/Card/Card.theme.js +4 -4
- package/dist/components/core/Card/Card.types.d.ts +5 -20
- package/dist/components/core/Card/CardSubtitle.d.ts +3 -0
- package/dist/components/core/Card/CardSubtitle.js +11 -0
- package/dist/components/core/Card/index.d.ts +2 -2
- package/dist/components/core/CommandPalette/CommandItem.d.ts +1 -1
- package/dist/components/core/CommandPalette/CommandItem.js +2 -2
- package/dist/components/core/CommandPalette/CommandPalette.js +2 -2
- package/dist/components/core/CommandPalette/CommandPalette.theme.js +2 -2
- package/dist/components/core/CommandPalette/CommandPalette.types.d.ts +2 -2
- package/dist/components/core/ContextMenu/ContextMenu.types.d.ts +1 -1
- package/dist/components/core/ContextMenu/ContextMenuItem.js +2 -2
- package/dist/components/core/Drawer/Drawer.d.ts +13 -1
- package/dist/components/core/Drawer/Drawer.js +23 -10
- package/dist/components/core/Drawer/Drawer.theme.js +1 -1
- package/dist/components/core/Drawer/Drawer.types.d.ts +21 -4
- package/dist/components/core/Drawer/DrawerHeader.d.ts +5 -0
- package/dist/components/core/Drawer/DrawerHeader.js +14 -0
- package/dist/components/core/Drawer/DrawerSubtitle.d.ts +5 -0
- package/dist/components/core/Drawer/DrawerSubtitle.js +11 -0
- package/dist/components/core/Drawer/DrawerTitle.d.ts +5 -0
- package/dist/components/core/Drawer/DrawerTitle.js +11 -0
- package/dist/components/core/Drawer/index.d.ts +1 -1
- package/dist/components/core/Dropdown/Dropdown.types.d.ts +4 -4
- package/dist/components/core/Dropdown/DropdownItem.js +2 -2
- package/dist/components/core/Empty/Empty.js +2 -2
- package/dist/components/core/Empty/Empty.theme.d.ts +1 -1
- package/dist/components/core/Empty/Empty.theme.js +3 -3
- package/dist/components/core/Empty/Empty.types.d.ts +2 -2
- package/dist/components/core/MenuItem/MenuItem.js +2 -2
- package/dist/components/core/MenuItem/MenuItem.theme.d.ts +1 -2
- package/dist/components/core/MenuItem/MenuItem.theme.js +7 -9
- package/dist/components/core/MenuItem/MenuItem.types.d.ts +1 -1
- package/dist/components/core/Message/Message.d.ts +3 -2
- package/dist/components/core/Message/Message.js +30 -24
- package/dist/components/core/Message/Message.theme.d.ts +1 -1
- package/dist/components/core/Message/Message.theme.js +22 -24
- package/dist/components/core/Message/Message.types.d.ts +0 -7
- package/dist/components/core/Message/MessageList.animations.d.ts +6 -0
- package/dist/components/core/Message/MessageList.animations.js +32 -0
- package/dist/components/core/Message/MessageList.d.ts +5 -0
- package/dist/components/core/Message/MessageList.js +78 -0
- package/dist/components/core/Message/MessageList.theme.d.ts +2 -0
- package/dist/components/core/Message/MessageList.theme.js +6 -0
- package/dist/components/core/Message/MessageList.types.d.ts +32 -0
- package/dist/components/core/Message/index.d.ts +2 -0
- package/dist/components/core/Modal/Modal.d.ts +2 -2
- package/dist/components/core/Modal/Modal.js +5 -5
- package/dist/components/core/Modal/Modal.theme.js +5 -5
- package/dist/components/core/Modal/Modal.types.d.ts +4 -4
- package/dist/components/core/Modal/ModalSubtitle.d.ts +5 -0
- package/dist/components/core/Modal/ModalSubtitle.js +11 -0
- package/dist/components/core/ModalStack/ModalStack.animations.js +3 -3
- package/dist/components/core/ModalStack/ModalStackModal.js +3 -3
- package/dist/components/core/PageHeading/PageHeading.d.ts +8 -0
- package/dist/components/core/PageHeading/PageHeading.js +28 -0
- package/dist/components/core/PageHeading/PageHeading.theme.d.ts +2 -0
- package/dist/components/core/PageHeading/PageHeading.theme.js +11 -0
- package/dist/components/core/PageHeading/PageHeading.types.d.ts +55 -0
- package/dist/components/core/PageHeading/PageHeadingActions.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingActions.js +11 -0
- package/dist/components/core/PageHeading/PageHeadingBackButton.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingBackButton.js +12 -0
- package/dist/components/core/PageHeading/PageHeadingIcon.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingIcon.js +11 -0
- package/dist/components/core/PageHeading/PageHeadingSubtitle.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingSubtitle.js +11 -0
- package/dist/components/core/PageHeading/PageHeadingTitle.d.ts +3 -0
- package/dist/components/core/PageHeading/PageHeadingTitle.js +11 -0
- package/dist/components/core/PageHeading/index.d.ts +2 -0
- package/dist/components/core/Popover/Popover.theme.js +1 -1
- package/dist/components/core/Segmented/Segmented.theme.js +3 -3
- package/dist/components/core/Sidebar/Sidebar.js +1 -0
- package/dist/components/core/SocialIcon/SocialIcon.d.ts +3 -0
- package/dist/components/core/SocialIcon/SocialIcon.js +30 -0
- package/dist/components/core/SocialIcon/SocialIcon.theme.d.ts +2 -0
- package/dist/components/core/SocialIcon/SocialIcon.theme.js +12 -0
- package/dist/components/core/SocialIcon/SocialIcon.types.d.ts +18 -0
- package/dist/components/core/SocialIcon/index.d.ts +2 -0
- package/dist/components/core/SocialIcon/platforms.d.ts +17 -0
- package/dist/components/core/SocialIcon/platforms.js +234 -0
- package/dist/components/core/Toast/Toast.js +4 -4
- package/dist/components/core/Toast/Toast.theme.js +1 -1
- package/dist/components/core/Toast/Toast.types.d.ts +9 -9
- package/dist/components/core/Toast/useToast.js +6 -6
- package/dist/components/core/index.d.ts +2 -7
- package/dist/components/core/index.js +9 -19
- package/dist/components/{core → data-display}/DescriptionList/DescriptionList.theme.js +1 -1
- package/dist/components/{core → data-display}/Feed/Feed.js +2 -2
- package/dist/components/data-display/GanttChart/GanttChart.animations.d.ts +4 -0
- package/dist/components/data-display/GanttChart/GanttChart.animations.js +21 -0
- package/dist/components/data-display/GanttChart/GanttChart.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttChart.js +170 -0
- package/dist/components/data-display/GanttChart/GanttChart.theme.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttChart.theme.js +23 -0
- package/dist/components/data-display/GanttChart/GanttChart.types.d.ts +162 -0
- package/dist/components/data-display/GanttChart/GanttChart.types.js +9 -0
- package/dist/components/data-display/GanttChart/GanttChart.utils.d.ts +80 -0
- package/dist/components/data-display/GanttChart/GanttChart.utils.js +274 -0
- package/dist/components/data-display/GanttChart/GanttChartPanel.d.ts +9 -0
- package/dist/components/data-display/GanttChart/GanttChartPanel.js +82 -0
- package/dist/components/data-display/GanttChart/GanttDependencyArrows.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttDependencyArrows.js +35 -0
- package/dist/components/data-display/GanttChart/GanttGroupBar.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttGroupBar.js +26 -0
- package/dist/components/data-display/GanttChart/GanttMilestone.d.ts +9 -0
- package/dist/components/data-display/GanttChart/GanttMilestone.js +44 -0
- package/dist/components/data-display/GanttChart/GanttProgressCircle.d.ts +9 -0
- package/dist/components/data-display/GanttChart/GanttProgressCircle.js +11 -0
- package/dist/components/data-display/GanttChart/GanttSplitter.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttSplitter.js +39 -0
- package/dist/components/data-display/GanttChart/GanttTableGroupRow.d.ts +7 -0
- package/dist/components/data-display/GanttChart/GanttTableGroupRow.js +23 -0
- package/dist/components/data-display/GanttChart/GanttTableHeader.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttTableHeader.js +13 -0
- package/dist/components/data-display/GanttChart/GanttTablePanel.d.ts +6 -0
- package/dist/components/data-display/GanttChart/GanttTablePanel.js +20 -0
- package/dist/components/data-display/GanttChart/GanttTableTaskRow.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttTableTaskRow.js +30 -0
- package/dist/components/data-display/GanttChart/GanttTaskBar.d.ts +9 -0
- package/dist/components/data-display/GanttChart/GanttTaskBar.js +206 -0
- package/dist/components/data-display/GanttChart/GanttTaskContextMenu.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttTaskContextMenu.js +17 -0
- package/dist/components/data-display/GanttChart/GanttTimelineGrid.d.ts +7 -0
- package/dist/components/data-display/GanttChart/GanttTimelineGrid.js +33 -0
- package/dist/components/data-display/GanttChart/GanttTimelineHeader.d.ts +8 -0
- package/dist/components/data-display/GanttChart/GanttTimelineHeader.js +43 -0
- package/dist/components/data-display/GanttChart/GanttToolbar.d.ts +2 -0
- package/dist/components/data-display/GanttChart/GanttToolbar.js +28 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttDates.d.ts +12 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttDates.js +25 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttDrag.d.ts +25 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttDrag.js +144 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttLayout.d.ts +2 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttLayout.js +33 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.d.ts +6 -0
- package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.js +32 -0
- package/dist/components/data-display/GanttChart/index.d.ts +3 -0
- package/dist/components/{core → data-display}/KPI/KPI.js +10 -8
- package/dist/components/{core → data-display}/KPI/KPI.theme.js +2 -1
- package/dist/components/{core → data-display}/KPI/KPI.types.d.ts +5 -5
- package/dist/components/{core → data-display}/KPI/index.d.ts +1 -0
- package/dist/components/{core → data-display}/Metric/Metric.js +4 -7
- package/dist/components/{core → data-display}/Metric/Metric.theme.js +9 -9
- package/dist/components/{core → data-display}/Metric/Metric.types.d.ts +6 -6
- package/dist/components/{core → data-display}/Table/Table.theme.js +2 -2
- package/dist/components/{core → data-display}/Table/TableActions.js +8 -8
- package/dist/components/{core → data-display}/Table/TableColumnManager.js +4 -4
- package/dist/components/{core → data-display}/Table/TableFilter.js +3 -3
- package/dist/components/data-display/Table/TablePagination.js +25 -0
- package/dist/components/{core → data-display}/Table/TableRow.js +1 -1
- package/dist/components/{core → data-display}/Table/TableSelectionHeader.js +1 -1
- package/dist/components/data-display/index.d.ts +7 -0
- package/dist/components/data-display/index.js +20 -0
- package/dist/components/effects/Aurora/Aurora.d.ts +24 -0
- package/dist/components/effects/Aurora/Aurora.js +119 -0
- package/dist/components/effects/Aurora/Aurora.types.d.ts +15 -0
- package/dist/components/effects/Aurora/index.d.ts +2 -0
- package/dist/components/effects/DotPattern/DotPattern.d.ts +18 -0
- package/dist/components/effects/DotPattern/DotPattern.js +65 -0
- package/dist/components/effects/DotPattern/DotPattern.types.d.ts +47 -0
- package/dist/components/effects/DotPattern/index.d.ts +2 -0
- package/dist/components/effects/GridPattern/GridPattern.d.ts +18 -0
- package/dist/components/effects/GridPattern/GridPattern.js +64 -0
- package/dist/components/effects/GridPattern/GridPattern.types.d.ts +47 -0
- package/dist/components/effects/GridPattern/index.d.ts +2 -0
- package/dist/components/effects/MagneticElement/MagneticElement.d.ts +30 -0
- package/dist/components/effects/MagneticElement/MagneticElement.js +110 -0
- package/dist/components/effects/MagneticElement/MagneticElement.types.d.ts +44 -0
- package/dist/components/effects/MagneticElement/index.d.ts +2 -0
- package/dist/components/effects/MorphingText/MorphingText.d.ts +17 -0
- package/dist/components/effects/MorphingText/MorphingText.js +91 -0
- package/dist/components/effects/MorphingText/MorphingText.types.d.ts +18 -0
- package/dist/components/effects/MorphingText/index.d.ts +2 -0
- package/dist/components/effects/NoiseOverlay/NoiseOverlay.d.ts +28 -0
- package/dist/components/effects/NoiseOverlay/NoiseOverlay.js +61 -0
- package/dist/components/effects/NoiseOverlay/NoiseOverlay.types.d.ts +35 -0
- package/dist/components/effects/NoiseOverlay/index.d.ts +2 -0
- package/dist/components/effects/ParallaxSection/ParallaxSection.d.ts +26 -0
- package/dist/components/effects/ParallaxSection/ParallaxSection.js +71 -0
- package/dist/components/effects/ParallaxSection/ParallaxSection.types.d.ts +11 -0
- package/dist/components/effects/ParallaxSection/index.d.ts +2 -0
- package/dist/components/effects/Particles/Particles.d.ts +22 -0
- package/dist/components/effects/Particles/Particles.js +33 -0
- package/dist/components/effects/Particles/Particles.scene.d.ts +3 -0
- package/dist/components/effects/Particles/Particles.scene.js +284 -0
- package/dist/components/effects/Particles/Particles.types.d.ts +65 -0
- package/dist/components/effects/Particles/index.d.ts +2 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.d.ts +3 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.js +75 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.theme.d.ts +7 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.theme.js +12 -0
- package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.types.d.ts +47 -0
- package/dist/components/effects/ProgressiveBlur/index.d.ts +2 -0
- package/dist/components/effects/ScrollReveal/ScrollReveal.d.ts +29 -0
- package/dist/components/effects/ScrollReveal/ScrollReveal.js +121 -0
- package/dist/components/effects/ScrollReveal/ScrollReveal.types.d.ts +25 -0
- package/dist/components/effects/ScrollReveal/index.d.ts +2 -0
- package/dist/components/effects/Spotlight/Spotlight.d.ts +36 -0
- package/dist/components/effects/Spotlight/Spotlight.js +112 -0
- package/dist/components/effects/Spotlight/Spotlight.types.d.ts +29 -0
- package/dist/components/effects/Spotlight/index.d.ts +2 -0
- package/dist/components/effects/StickyScroll/StickyScroll.d.ts +30 -0
- package/dist/components/effects/StickyScroll/StickyScroll.js +128 -0
- package/dist/components/effects/StickyScroll/StickyScroll.types.d.ts +19 -0
- package/dist/components/effects/StickyScroll/index.d.ts +2 -0
- package/dist/components/effects/index.d.ts +24 -0
- package/dist/components/effects/index.js +12 -0
- package/dist/components/forms/Checkbox/Checkbox.js +3 -3
- package/dist/components/forms/Checkbox/Checkbox.theme.js +3 -5
- package/dist/components/forms/ColorPicker/ColorPicker.theme.js +2 -2
- package/dist/components/forms/CronInput/CronInput.d.ts +3 -0
- package/dist/components/forms/CronInput/CronInput.js +107 -0
- package/dist/components/forms/CronInput/CronInput.theme.d.ts +6 -0
- package/dist/components/forms/CronInput/CronInput.theme.js +84 -0
- package/dist/components/forms/CronInput/CronInput.types.d.ts +98 -0
- package/dist/components/forms/CronInput/CronInput.utils.d.ts +67 -0
- package/dist/components/forms/CronInput/CronInput.utils.js +505 -0
- package/dist/components/forms/CronInput/index.d.ts +4 -0
- package/dist/components/forms/DatePicker/DatePicker.theme.js +2 -2
- package/dist/components/forms/FileUpload/FileUpload.js +78 -0
- package/dist/components/forms/InputOTP/InputOTP.theme.js +1 -1
- package/dist/components/forms/Mention/Mention.d.ts +3 -0
- package/dist/components/forms/Mention/Mention.js +410 -0
- package/dist/components/forms/Mention/Mention.theme.d.ts +6 -0
- package/dist/components/forms/Mention/Mention.theme.js +56 -0
- package/dist/components/forms/Mention/Mention.types.d.ts +111 -0
- package/dist/components/forms/Mention/index.d.ts +3 -0
- package/dist/components/forms/Radio/Radio.js +8 -12
- package/dist/components/forms/Radio/Radio.theme.js +28 -5
- package/dist/components/forms/SelectableCard/SelectableCard.animations.d.ts +2 -0
- package/dist/components/forms/SelectableCard/SelectableCard.animations.js +9 -0
- package/dist/components/forms/SelectableCard/SelectableCard.d.ts +5 -0
- package/dist/components/forms/SelectableCard/SelectableCard.js +58 -0
- package/dist/components/forms/SelectableCard/SelectableCard.theme.d.ts +2 -0
- package/dist/components/forms/SelectableCard/SelectableCard.theme.js +38 -0
- package/dist/components/forms/SelectableCard/SelectableCard.types.d.ts +34 -0
- package/dist/components/forms/SelectableCard/SelectableCardContext.d.ts +3 -0
- package/dist/components/forms/SelectableCard/SelectableCardContext.js +12 -0
- package/dist/components/forms/SelectableCard/SelectableCardGroup.d.ts +3 -0
- package/dist/components/forms/SelectableCard/SelectableCardGroup.js +37 -0
- package/dist/components/forms/SelectableCard/index.d.ts +3 -0
- package/dist/components/forms/TimePicker/TimePickerContent.js +78 -1
- package/dist/components/forms/TransferList/TransferList.animations.d.ts +10 -0
- package/dist/components/forms/TransferList/TransferList.animations.js +32 -0
- package/dist/components/forms/TransferList/TransferList.d.ts +28 -0
- package/dist/components/forms/TransferList/TransferList.js +199 -0
- package/dist/components/forms/TransferList/TransferList.theme.d.ts +6 -0
- package/dist/components/forms/TransferList/TransferList.theme.js +60 -0
- package/dist/components/forms/TransferList/TransferList.types.d.ts +101 -0
- package/dist/components/forms/TransferList/index.d.ts +3 -0
- package/dist/components/forms/index.d.ts +13 -0
- package/dist/components/forms/index.js +87 -0
- package/dist/components/layout/FormLayout/FormLayout.d.ts +8 -0
- package/dist/components/layout/FormLayout/FormLayout.js +22 -0
- package/dist/components/layout/FormLayout/FormLayout.theme.d.ts +2 -0
- package/dist/components/layout/FormLayout/FormLayout.theme.js +16 -0
- package/dist/components/layout/FormLayout/FormLayout.types.d.ts +61 -0
- package/dist/components/layout/FormLayout/FormLayoutBody.d.ts +3 -0
- package/dist/components/layout/FormLayout/FormLayoutBody.js +91 -0
- package/dist/components/layout/FormLayout/FormLayoutFooter.d.ts +3 -0
- package/dist/components/layout/FormLayout/FormLayoutFooter.js +12 -0
- package/dist/components/layout/FormLayout/FormLayoutHeader.d.ts +3 -0
- package/dist/components/layout/FormLayout/FormLayoutHeader.js +12 -0
- package/dist/components/layout/FormLayout/FormLayoutSection.d.ts +3 -0
- package/dist/components/layout/FormLayout/FormLayoutSection.js +12 -0
- package/dist/components/layout/FormLayout/index.d.ts +3 -0
- package/dist/components/layout/PageLayout/PageLayout.d.ts +7 -0
- package/dist/components/layout/PageLayout/PageLayout.js +33 -0
- package/dist/components/layout/PageLayout/PageLayout.theme.d.ts +2 -0
- package/dist/components/layout/PageLayout/PageLayout.theme.js +10 -0
- package/dist/components/layout/PageLayout/PageLayout.types.d.ts +39 -0
- package/dist/components/layout/PageLayout/PageLayoutContent.d.ts +3 -0
- package/dist/components/layout/PageLayout/PageLayoutContent.js +12 -0
- package/dist/components/layout/PageLayout/PageLayoutHeader.d.ts +3 -0
- package/dist/components/layout/PageLayout/PageLayoutHeader.js +12 -0
- package/dist/components/layout/PageLayout/PageLayoutSidebar.d.ts +3 -0
- package/dist/components/layout/PageLayout/PageLayoutSidebar.js +12 -0
- package/dist/components/layout/PageLayout/index.d.ts +3 -0
- package/dist/components/layout/index.d.ts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +208 -167
- package/dist/styles.css +1 -1
- package/dist/utils/dateUtils.d.ts +30 -0
- package/dist/utils/dateUtils.js +58 -1
- package/dist/utils/index.d.ts +1 -1
- package/package.json +5 -1
- package/dist/components/core/Card/CardDescription.d.ts +0 -3
- package/dist/components/core/Card/CardDescription.js +0 -11
- package/dist/components/core/Modal/ModalDescription.d.ts +0 -5
- package/dist/components/core/Modal/ModalDescription.js +0 -11
- package/dist/components/core/ProgressiveBlur/ProgressiveBlur.d.ts +0 -34
- package/dist/components/core/ProgressiveBlur/ProgressiveBlur.js +0 -218
- package/dist/components/core/ProgressiveBlur/ProgressiveBlur.theme.d.ts +0 -9
- package/dist/components/core/ProgressiveBlur/ProgressiveBlur.types.d.ts +0 -48
- package/dist/components/core/ProgressiveBlur/index.d.ts +0 -2
- package/dist/components/core/Table/TablePagination.js +0 -25
- /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.d.ts +0 -0
- /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.js +0 -0
- /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.types.d.ts +0 -0
- /package/dist/components/{core → data-display}/DescriptionList/index.d.ts +0 -0
- /package/dist/components/{core → data-display}/Feed/Feed.d.ts +0 -0
- /package/dist/components/{core → data-display}/Feed/Feed.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/Feed/Feed.theme.js +0 -0
- /package/dist/components/{core → data-display}/Feed/Feed.types.d.ts +0 -0
- /package/dist/components/{core → data-display}/Feed/index.d.ts +0 -0
- /package/dist/components/{core → data-display}/KPI/KPI.d.ts +0 -0
- /package/dist/components/{core → data-display}/KPI/KPI.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/Metric/Metric.d.ts +0 -0
- /package/dist/components/{core → data-display}/Metric/Metric.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/Metric/index.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.animations.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.animations.js +0 -0
- /package/dist/components/{core → data-display}/Table/Table.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.filterUtils.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.filterUtils.js +0 -0
- /package/dist/components/{core → data-display}/Table/Table.js +0 -0
- /package/dist/components/{core → data-display}/Table/Table.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.types.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.utils.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/Table.utils.js +0 -0
- /package/dist/components/{core → data-display}/Table/TableActions.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableActionsMenu.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableActionsMenu.js +0 -0
- /package/dist/components/{core → data-display}/Table/TableBody.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableBody.js +0 -0
- /package/dist/components/{core → data-display}/Table/TableCell.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableCell.js +0 -0
- /package/dist/components/{core → data-display}/Table/TableColumnManager.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableDeclarative.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableDeclarative.js +0 -0
- /package/dist/components/{core → data-display}/Table/TableFilter.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableHeader.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableHeader.js +0 -0
- /package/dist/components/{core → data-display}/Table/TablePagination.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableRow.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/TableSelectionHeader.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/index.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableColumns.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableColumns.js +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableExpansion.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableExpansion.js +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableFilter.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableFilter.js +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTablePagination.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTablePagination.js +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableSelection.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/hooks/useTableSelection.js +0 -0
- /package/dist/components/{core → data-display}/Table/index.d.ts +0 -0
- /package/dist/components/{core → data-display}/Table/index.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.animations.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.animations.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.theme.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.theme.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/Timeline.types.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineContent.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineContent.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineItem.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineItem.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineMarker.d.ts +0 -0
- /package/dist/components/{core → data-display}/Timeline/TimelineMarker.js +0 -0
- /package/dist/components/{core → data-display}/Timeline/index.d.ts +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import { computeGroupSummary } from '../GanttChart.utils.js';
|
|
3
|
+
|
|
4
|
+
function useGanttLayout(groups, tasks, collapsedGroups, hideCompleted) {
|
|
5
|
+
return useMemo(() => {
|
|
6
|
+
const sorted = [...groups].sort((a, b) => { var _a, _b; return ((_a = a.order) !== null && _a !== void 0 ? _a : 0) - ((_b = b.order) !== null && _b !== void 0 ? _b : 0); });
|
|
7
|
+
const rows = [];
|
|
8
|
+
for (const group of sorted) {
|
|
9
|
+
const groupTasks = tasks.filter((t) => t.groupId === group.id);
|
|
10
|
+
const visibleTasks = hideCompleted
|
|
11
|
+
? groupTasks.filter((t) => !t.completed)
|
|
12
|
+
: groupTasks;
|
|
13
|
+
const summary = computeGroupSummary(group, groupTasks);
|
|
14
|
+
rows.push({
|
|
15
|
+
type: "group",
|
|
16
|
+
group,
|
|
17
|
+
taskCount: visibleTasks.length,
|
|
18
|
+
completedCount: summary.completedCount,
|
|
19
|
+
earliestStart: summary.earliestStart,
|
|
20
|
+
latestEnd: summary.latestEnd,
|
|
21
|
+
});
|
|
22
|
+
const isCollapsed = collapsedGroups.includes(group.id);
|
|
23
|
+
if (!isCollapsed) {
|
|
24
|
+
for (const task of visibleTasks) {
|
|
25
|
+
rows.push({ type: "task", task, group });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return rows;
|
|
30
|
+
}, [groups, tasks, collapsedGroups, hideCompleted]);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { useGanttLayout };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useRef, useCallback } from 'react';
|
|
2
|
+
|
|
3
|
+
function useGanttScrollSync() {
|
|
4
|
+
const tableRef = useRef(null);
|
|
5
|
+
const chartRef = useRef(null);
|
|
6
|
+
const isSyncing = useRef(false);
|
|
7
|
+
const handleTableScroll = useCallback(() => {
|
|
8
|
+
if (isSyncing.current)
|
|
9
|
+
return;
|
|
10
|
+
isSyncing.current = true;
|
|
11
|
+
requestAnimationFrame(() => {
|
|
12
|
+
if (tableRef.current && chartRef.current) {
|
|
13
|
+
chartRef.current.scrollTop = tableRef.current.scrollTop;
|
|
14
|
+
}
|
|
15
|
+
isSyncing.current = false;
|
|
16
|
+
});
|
|
17
|
+
}, []);
|
|
18
|
+
const handleChartScroll = useCallback(() => {
|
|
19
|
+
if (isSyncing.current)
|
|
20
|
+
return;
|
|
21
|
+
isSyncing.current = true;
|
|
22
|
+
requestAnimationFrame(() => {
|
|
23
|
+
if (chartRef.current && tableRef.current) {
|
|
24
|
+
tableRef.current.scrollTop = chartRef.current.scrollTop;
|
|
25
|
+
}
|
|
26
|
+
isSyncing.current = false;
|
|
27
|
+
});
|
|
28
|
+
}, []);
|
|
29
|
+
return { tableRef, chartRef, handleTableScroll, handleChartScroll };
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export { useGanttScrollSync };
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import React__default, { useMemo } from 'react';
|
|
3
|
+
import { motion } from 'motion/react';
|
|
3
4
|
import { ArrowUpRightIcon, ArrowDownRightIcon } from '@heroicons/react/20/solid';
|
|
4
5
|
import { cn } from '../../../utils/cn.js';
|
|
5
6
|
import { kpiTheme } from './KPI.theme.js';
|
|
6
7
|
|
|
7
|
-
const KPI = React__default.forwardRef(({ value, label, trend, trendLabel, progress, barCount = 24,
|
|
8
|
+
const KPI = React__default.forwardRef(({ value, label, trend, trendLabel, progress, barCount = 24, subtitle, icon, size = "md", color = "primary", className, theme: customTheme = {}, ...props }, ref) => {
|
|
8
9
|
const theme = useMemo(() => ({
|
|
9
10
|
...kpiTheme,
|
|
10
11
|
...customTheme,
|
|
@@ -33,15 +34,16 @@ const KPI = React__default.forwardRef(({ value, label, trend, trendLabel, progre
|
|
|
33
34
|
const barSize = kpiTheme.barSizes[size];
|
|
34
35
|
return (jsxs("div", { ref: ref, className: cn(theme.baseStyle, className), ...props, children: [jsxs("div", { className: "flex items-start justify-between", children: [jsxs("div", { className: "flex items-baseline gap-2", children: [jsx("span", { className: cn(theme.valueSizes[size]), children: value }), label && (jsxs("span", { className: cn(theme.labelStyle, theme.labelSizes[size]), children: [icon && (jsx("span", { className: "inline-flex items-center mr-1", children: icon })), label] }))] }), formattedTrend && trendDirection && (jsxs("span", { className: cn("inline-flex items-center gap-0.5 font-medium", theme.trendSizes[size], trendDirection === "up" && theme.trendPositive, trendDirection === "down" && theme.trendNegative, trendDirection === "neutral" && theme.trendNeutral), children: [formattedTrend, trendDirection === "up" && jsx(ArrowUpRightIcon, { className: "size-4" }), trendDirection === "down" && jsx(ArrowDownRightIcon, { className: "size-4" })] }))] }), progress !== undefined && (jsx("div", { className: cn("flex items-end", barSize.gap), role: "img", "aria-label": `Progress: ${progress}%`, children: Array.from({ length: barCount }, (_, i) => {
|
|
35
36
|
const isFilled = i < filledBars;
|
|
36
|
-
// Fade the last 2-3 filled bars for a smooth transition
|
|
37
37
|
const fadeDistance = filledBars - i;
|
|
38
|
-
const
|
|
38
|
+
const fillOpacity = isFilled && fadeDistance <= 3
|
|
39
39
|
? 0.4 + (fadeDistance / 3) * 0.6
|
|
40
|
-
:
|
|
41
|
-
return (jsx("div", { className: cn("rounded-sm flex-1", barSize.height, isFilled
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
: 1;
|
|
41
|
+
return (jsx("div", { className: cn("relative rounded-sm flex-1", barSize.height, theme.barEmptyColor), children: isFilled && (jsx(motion.div, { className: cn("absolute inset-0 rounded-sm", theme.barFilledColors[color]), initial: { opacity: 0 }, animate: { opacity: fillOpacity }, transition: {
|
|
42
|
+
duration: 0.25,
|
|
43
|
+
ease: "easeOut",
|
|
44
|
+
delay: i * 0.03,
|
|
45
|
+
} })) }, i));
|
|
46
|
+
}) })), subtitle && (jsx("span", { className: cn(theme.subtitleStyle, size === "sm" ? "text-xs" : "text-sm"), children: subtitle }))] }));
|
|
45
47
|
});
|
|
46
48
|
KPI.displayName = "KPI";
|
|
47
49
|
|
|
@@ -24,6 +24,7 @@ const kpiTheme = {
|
|
|
24
24
|
success: "bg-[var(--color-success)]",
|
|
25
25
|
warning: "bg-[var(--color-warning)]",
|
|
26
26
|
danger: "bg-[var(--color-danger)]",
|
|
27
|
+
neutral: "bg-[var(--color-text-secondary)]",
|
|
27
28
|
},
|
|
28
29
|
barEmptyColor: "bg-[var(--color-background-tertiary)]",
|
|
29
30
|
barSizes: {
|
|
@@ -31,7 +32,7 @@ const kpiTheme = {
|
|
|
31
32
|
md: { height: "h-6", width: "w-[3px]", gap: "gap-[3px]" },
|
|
32
33
|
lg: { height: "h-8", width: "w-1", gap: "gap-1" },
|
|
33
34
|
},
|
|
34
|
-
|
|
35
|
+
subtitleStyle: "text-[var(--color-text-muted)]",
|
|
35
36
|
};
|
|
36
37
|
|
|
37
38
|
export { kpiTheme };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode, HTMLAttributes } from "react";
|
|
2
2
|
export type KPISize = "sm" | "md" | "lg";
|
|
3
|
-
export type KPIColor = "primary" | "success" | "warning" | "danger";
|
|
3
|
+
export type KPIColor = "primary" | "success" | "warning" | "danger" | "neutral";
|
|
4
4
|
export interface KPITheme {
|
|
5
5
|
baseStyle: string;
|
|
6
6
|
valueSizes: Record<KPISize, string>;
|
|
@@ -17,7 +17,7 @@ export interface KPITheme {
|
|
|
17
17
|
width: string;
|
|
18
18
|
gap: string;
|
|
19
19
|
}>;
|
|
20
|
-
|
|
20
|
+
subtitleStyle: string;
|
|
21
21
|
}
|
|
22
22
|
export interface KPIThemeOverrides {
|
|
23
23
|
baseStyle?: string;
|
|
@@ -27,7 +27,7 @@ export interface KPIThemeOverrides {
|
|
|
27
27
|
trendNegative?: string;
|
|
28
28
|
barFilledColors?: Partial<Record<KPIColor, string>>;
|
|
29
29
|
barEmptyColor?: string;
|
|
30
|
-
|
|
30
|
+
subtitleStyle?: string;
|
|
31
31
|
}
|
|
32
32
|
export interface KPIProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
|
|
33
33
|
/**
|
|
@@ -56,9 +56,9 @@ export interface KPIProps extends Omit<HTMLAttributes<HTMLDivElement>, "title">
|
|
|
56
56
|
*/
|
|
57
57
|
barCount?: number;
|
|
58
58
|
/**
|
|
59
|
-
*
|
|
59
|
+
* Subtitle text below the bars (e.g. "Compared to last month")
|
|
60
60
|
*/
|
|
61
|
-
|
|
61
|
+
subtitle?: string;
|
|
62
62
|
/**
|
|
63
63
|
* Icon to display before the label.
|
|
64
64
|
*/
|
|
@@ -2,21 +2,18 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import { cn } from '../../../utils/cn.js';
|
|
4
4
|
import { metricTheme } from './Metric.theme.js';
|
|
5
|
-
import { Badge } from '../Badge/Badge.js';
|
|
6
5
|
import { ArrowTrendingUpIcon, ArrowTrendingDownIcon } from '@heroicons/react/24/outline';
|
|
7
6
|
|
|
8
|
-
const Metric = React__default.forwardRef(({ value, label,
|
|
7
|
+
const Metric = React__default.forwardRef(({ value, label, subtitle, trendValue, trendDirection = "up", trendChart, size = "md", variant = "filled", color = "primary", icon, className, ...props }, ref) => {
|
|
9
8
|
var _a;
|
|
10
9
|
const trendIcon = trendDirection === "up" ? (jsx(ArrowTrendingUpIcon, { className: "size-3.5", strokeWidth: 2.5 })) : (jsx(ArrowTrendingDownIcon, { className: "size-3.5", strokeWidth: 2.5 }));
|
|
11
10
|
const sizeStyles = metricTheme.sizes[size];
|
|
12
11
|
const variantStyles = metricTheme.variants[variant];
|
|
13
12
|
const variantColorStyles = metricTheme.variantColors[variant] || "";
|
|
14
13
|
const iconStyles = ((_a = metricTheme.iconContainerVariantColors[variant]) === null || _a === void 0 ? void 0 : _a[color]) || "";
|
|
15
|
-
return (jsx("div", { ref: ref, className: cn(metricTheme.baseStyle, variantStyles, variantColorStyles, sizeStyles.container, className), "data-size": size, ...props, children: jsxs("div", { className: "flex flex-col gap-3 ", children: [jsxs("div", { className: cn("flex items-start gap-3", sizeStyles.contentPadding), children: [icon && (jsx("div", { className: cn(metricTheme.iconContainerStyle, iconStyles, sizeStyles.iconContainer), children: icon })), jsxs("div", { className: "flex flex-col flex-1", children: [jsx("div", { className: cn(metricTheme.labelStyle, sizeStyles.label), children: label }), jsxs("div", { className: "flex items-center gap-2", children: [jsx("div", { className: cn(metricTheme.valueStyle, sizeStyles.value), children: value }), trendValue && (jsxs("div", { className: "flex items-center
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
? "text-[var(--color-success)]"
|
|
19
|
-
: "text-[var(--color-danger)]"), children: trendValue })] }))] }), description && (jsx("div", { className: cn(metricTheme.descriptionStyle, sizeStyles.description), children: description }))] })] }), trendChart && (jsx("div", { className: "w-full h-12 flex-shrink-0 -mt-4", children: trendChart }))] }) }));
|
|
14
|
+
return (jsx("div", { ref: ref, className: cn(metricTheme.baseStyle, variantStyles, variantColorStyles, sizeStyles.container, className), "data-size": size, ...props, children: jsxs("div", { className: "flex flex-col gap-3 ", children: [jsxs("div", { className: cn("flex items-start gap-3", sizeStyles.contentPadding), children: [icon && (jsx("div", { className: cn(metricTheme.iconContainerStyle, iconStyles, sizeStyles.iconContainer), children: icon })), jsxs("div", { className: "flex flex-col flex-1", children: [jsx("div", { className: cn(metricTheme.labelStyle, sizeStyles.label), children: label }), jsxs("div", { className: "flex items-center gap-2", children: [jsx("div", { className: cn(metricTheme.valueStyle, sizeStyles.value), children: value }), trendValue && (jsxs("div", { className: cn("flex items-center w-fit gap-1 text-sm font-medium", trendDirection === "up"
|
|
15
|
+
? "text-[var(--color-success)]"
|
|
16
|
+
: "text-[var(--color-danger)]"), children: [trendIcon, " ", trendValue] }))] }), subtitle && (jsx("div", { className: cn(metricTheme.subtitleStyle, sizeStyles.subtitle), children: subtitle }))] })] }), trendChart && (jsx("div", { className: "w-full h-12 flex-shrink-0 -mt-4", children: trendChart }))] }) }));
|
|
20
17
|
});
|
|
21
18
|
Metric.displayName = "Metric";
|
|
22
19
|
|
|
@@ -19,15 +19,15 @@ const metricTheme = {
|
|
|
19
19
|
iconContainerVariantColors: {
|
|
20
20
|
filled: {
|
|
21
21
|
neutral: "bg-white text-[var(--color-text-primary)] border border-[var(--color-border)] " +
|
|
22
|
-
"dark:bg-[var(--color-background-secondary)]
|
|
22
|
+
"dark:bg-[var(--color-background-secondary)]",
|
|
23
23
|
primary: "bg-white text-[var(--color-primary)] border border-[var(--color-border)] " +
|
|
24
|
-
"dark:bg-[var(--color-background-secondary)]
|
|
24
|
+
"dark:bg-[var(--color-background-secondary)]",
|
|
25
25
|
success: "bg-white text-[var(--color-success)] border border-[var(--color-border)] " +
|
|
26
|
-
"dark:bg-[var(--color-background-secondary)]
|
|
26
|
+
"dark:bg-[var(--color-background-secondary)]",
|
|
27
27
|
warning: "bg-white text-[var(--color-warning)] border border-[var(--color-border)] " +
|
|
28
|
-
"dark:bg-[var(--color-background-secondary)]
|
|
28
|
+
"dark:bg-[var(--color-background-secondary)]",
|
|
29
29
|
danger: "bg-white text-[var(--color-danger)] border border-[var(--color-border)] " +
|
|
30
|
-
"dark:bg-[var(--color-background-secondary)]
|
|
30
|
+
"dark:bg-[var(--color-background-secondary)]",
|
|
31
31
|
},
|
|
32
32
|
glass: {
|
|
33
33
|
neutral: "glass-effect-1 !ring-0 text-[var(--color-text-primary)]",
|
|
@@ -49,7 +49,7 @@ const metricTheme = {
|
|
|
49
49
|
iconContainer: "size-10",
|
|
50
50
|
label: "text-xs",
|
|
51
51
|
value: "text-xl",
|
|
52
|
-
|
|
52
|
+
subtitle: "text-xs mt-1",
|
|
53
53
|
},
|
|
54
54
|
md: {
|
|
55
55
|
container: "", // Padding moved to content section
|
|
@@ -57,7 +57,7 @@ const metricTheme = {
|
|
|
57
57
|
iconContainer: "size-14",
|
|
58
58
|
label: "text-sm",
|
|
59
59
|
value: "text-2xl",
|
|
60
|
-
|
|
60
|
+
subtitle: "text-xs mt-0.5",
|
|
61
61
|
},
|
|
62
62
|
lg: {
|
|
63
63
|
container: "", // Padding moved to content section
|
|
@@ -65,13 +65,13 @@ const metricTheme = {
|
|
|
65
65
|
iconContainer: "size-16",
|
|
66
66
|
label: "text-base",
|
|
67
67
|
value: "text-3xl",
|
|
68
|
-
|
|
68
|
+
subtitle: "text-sm mt-1",
|
|
69
69
|
},
|
|
70
70
|
},
|
|
71
71
|
// Common element styles
|
|
72
72
|
labelStyle: "font-semibold text-[var(--color-text-secondary)] mb-1",
|
|
73
73
|
valueStyle: "font-bold text-[var(--color-text-primary)] tracking-tight",
|
|
74
|
-
|
|
74
|
+
subtitleStyle: "text-[var(--color-text-secondary)]/80",
|
|
75
75
|
iconContainerStyle: "rounded-full flex items-center justify-center flex-shrink-0 p-3.5",
|
|
76
76
|
};
|
|
77
77
|
|
|
@@ -13,9 +13,9 @@ export interface MetricProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
13
13
|
*/
|
|
14
14
|
label: string;
|
|
15
15
|
/**
|
|
16
|
-
* Optional
|
|
16
|
+
* Optional subtitle or secondary text
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
subtitle?: string;
|
|
19
19
|
/**
|
|
20
20
|
* Trend value to display (e.g., "+10.34%", "-5.2%")
|
|
21
21
|
* Also acts as boolean - if provided, trend badge is shown
|
|
@@ -65,11 +65,11 @@ export interface MetricTheme {
|
|
|
65
65
|
iconContainer: string;
|
|
66
66
|
label: string;
|
|
67
67
|
value: string;
|
|
68
|
-
|
|
68
|
+
subtitle: string;
|
|
69
69
|
}>;
|
|
70
70
|
labelStyle: string;
|
|
71
71
|
valueStyle: string;
|
|
72
|
-
|
|
72
|
+
subtitleStyle: string;
|
|
73
73
|
iconContainerStyle: string;
|
|
74
74
|
}
|
|
75
75
|
export interface MetricThemeOverrides {
|
|
@@ -83,10 +83,10 @@ export interface MetricThemeOverrides {
|
|
|
83
83
|
iconContainer: string;
|
|
84
84
|
label: string;
|
|
85
85
|
value: string;
|
|
86
|
-
|
|
86
|
+
subtitle: string;
|
|
87
87
|
}>>>;
|
|
88
88
|
labelStyle?: string;
|
|
89
89
|
valueStyle?: string;
|
|
90
|
-
|
|
90
|
+
subtitleStyle?: string;
|
|
91
91
|
iconContainerStyle?: string;
|
|
92
92
|
}
|
|
@@ -22,8 +22,8 @@ const tableTheme = {
|
|
|
22
22
|
},
|
|
23
23
|
// Header styles
|
|
24
24
|
// Light: primary text, light border | Dark: neutral-200 text, neutral-700 border
|
|
25
|
-
headerStyle: "text-left font-
|
|
26
|
-
"text-[var(--color-text-
|
|
25
|
+
headerStyle: "text-left font-semibold sticky top-0 border-b first:pl-4 last:pr-4 " +
|
|
26
|
+
"text-[var(--color-text-secondary)]/80 text-sm border-[var(--color-border)] ",
|
|
27
27
|
// Cell styles — borders on cells (not rows) so sticky columns keep them
|
|
28
28
|
// Light: primary text | Dark: neutral-300 text
|
|
29
29
|
cellStyle: "border-b border-b-[var(--color-border)] first:pl-4 last:pr-4 " +
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { cn } from '../../../utils/cn.js';
|
|
4
|
-
import { Dropdown } from '
|
|
5
|
-
import '
|
|
6
|
-
import '
|
|
7
|
-
import '
|
|
8
|
-
import '
|
|
9
|
-
import '
|
|
10
|
-
import '
|
|
11
|
-
import { Button } from '
|
|
4
|
+
import { Dropdown } from '../../core/Dropdown/Dropdown.js';
|
|
5
|
+
import '../../core/Dropdown/DropdownTrigger.js';
|
|
6
|
+
import '../../core/Dropdown/DropdownMenu.js';
|
|
7
|
+
import '../../core/Dropdown/DropdownItem.js';
|
|
8
|
+
import '../../core/Dropdown/DropdownSection.js';
|
|
9
|
+
import '../../core/Dropdown/DropdownSeparator.js';
|
|
10
|
+
import '../../core/Dropdown/Dropdown.theme.js';
|
|
11
|
+
import { Button } from '../../core/Button/Button.js';
|
|
12
12
|
import { EllipsisHorizontalIcon } from '@heroicons/react/20/solid';
|
|
13
13
|
|
|
14
14
|
/**
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { Popover } from '
|
|
3
|
-
import '
|
|
2
|
+
import { Popover } from '../../core/Popover/Popover.js';
|
|
3
|
+
import '../../core/Popover/PopoverContext.js';
|
|
4
4
|
import { Cog6ToothIcon } from '@heroicons/react/24/outline';
|
|
5
|
-
import { Button } from '
|
|
5
|
+
import { Button } from '../../core/Button/Button.js';
|
|
6
6
|
import { Checkbox } from '../../forms/Checkbox/Checkbox.js';
|
|
7
|
-
import { Sortable, SortableItem } from '
|
|
7
|
+
import { Sortable, SortableItem } from '../../core/Sortable/Sortable.js';
|
|
8
8
|
|
|
9
9
|
function TableColumnManagerComponent({ columns, visibleColumns, columnOrder, onToggleColumn, onResetToDefault, onColumnReorder, }) {
|
|
10
10
|
const orderedColumns = columnOrder.length > 0
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useState, useCallback } from 'react';
|
|
3
3
|
import { inferFilterType, getDefaultOperator, isUnaryOperator, getOperatorsForFilterType, isBetweenOperator } from './Table.filterUtils.js';
|
|
4
|
-
import { Button } from '
|
|
4
|
+
import { Button } from '../../core/Button/Button.js';
|
|
5
5
|
import { Input } from '../../forms/Input/Input.js';
|
|
6
6
|
import '../../forms/Input/Input.theme.js';
|
|
7
7
|
import { Select } from '../../forms/Select/Select.js';
|
|
8
8
|
import '../../forms/Select/Select.theme.js';
|
|
9
|
-
import { Popover } from '
|
|
10
|
-
import '
|
|
9
|
+
import { Popover } from '../../core/Popover/Popover.js';
|
|
10
|
+
import '../../core/Popover/PopoverContext.js';
|
|
11
11
|
import { FunnelIcon, XMarkIcon, PlusIcon } from '@heroicons/react/24/outline';
|
|
12
12
|
import { cn } from '../../../utils/cn.js';
|
|
13
13
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
import { Pagination } from '../../core/Pagination/Pagination.js';
|
|
4
|
+
import { Select } from '../../forms/Select/Select.js';
|
|
5
|
+
import '../../forms/Select/Select.theme.js';
|
|
6
|
+
import { cn } from '../../../utils/cn.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* TablePagination provides a standardized pagination interface for tables
|
|
10
|
+
* Combines the core Pagination component with page size selection controls
|
|
11
|
+
*/
|
|
12
|
+
const TablePagination = React__default.forwardRef(({ currentPage, totalItems, pageSize, pageSizeOptions = [10, 25, 50, 100], onPageChange, onPageSizeChange, showPageSizeSelector = true, className, }, ref) => {
|
|
13
|
+
const totalPages = Math.ceil(totalItems / pageSize);
|
|
14
|
+
const startItem = (currentPage - 1) * pageSize + 1;
|
|
15
|
+
const endItem = Math.min(currentPage * pageSize, totalItems);
|
|
16
|
+
const pageSizeSelectOptions = pageSizeOptions.map((option) => ({
|
|
17
|
+
id: option,
|
|
18
|
+
label: option.toString(),
|
|
19
|
+
value: option,
|
|
20
|
+
}));
|
|
21
|
+
return (jsxs("div", { ref: ref, className: cn("flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 px-4 py-3 border-t border-[var(--color-border)] bg-[var(--color-background)]", className), children: [jsxs("div", { className: "flex items-center gap-4", children: [showPageSizeSelector && (jsxs("div", { className: "flex items-center gap-2", children: [jsx("span", { className: "text-sm text-[var(--color-text-muted)]", children: "Rows per page:" }), jsx(Select, { value: pageSize, onChange: (value) => onPageSizeChange(value), options: pageSizeSelectOptions, size: "sm", className: "w-20" })] })), jsx("div", { className: "text-sm text-[var(--color-text-muted)]", children: totalItems > 0 ? (jsxs(Fragment, { children: ["Showing ", startItem.toLocaleString(), " to ", endItem.toLocaleString(), " of", " ", totalItems.toLocaleString(), " results"] })) : ("No results") })] }), totalPages > 1 && (jsx(Pagination, { currentPage: currentPage, totalPages: totalPages, onPageChange: onPageChange, showPrevNext: true, showFirstLast: false, siblingCount: 1 }))] }));
|
|
22
|
+
});
|
|
23
|
+
TablePagination.displayName = "Table.Pagination";
|
|
24
|
+
|
|
25
|
+
export { TablePagination };
|
|
@@ -2,7 +2,7 @@ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import { AnimatePresence, motion } from 'motion/react';
|
|
4
4
|
import { TableCell } from './TableCell.js';
|
|
5
|
-
import { Button } from '
|
|
5
|
+
import { Button } from '../../core/Button/Button.js';
|
|
6
6
|
import { Checkbox } from '../../forms/Checkbox/Checkbox.js';
|
|
7
7
|
import { Radio } from '../../forms/Radio/Radio.js';
|
|
8
8
|
import { MinusIcon, PlusIcon } from '@heroicons/react/24/outline';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { XMarkIcon } from '@heroicons/react/24/outline';
|
|
3
|
-
import { Button } from '
|
|
3
|
+
import { Button } from '../../core/Button/Button.js';
|
|
4
4
|
import { cn } from '../../../utils/cn.js';
|
|
5
5
|
import 'react';
|
|
6
6
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export { Table } from './Table/index.js';
|
|
2
|
+
export { KPI } from './KPI/KPI.js';
|
|
3
|
+
export { kpiTheme } from './KPI/KPI.theme.js';
|
|
4
|
+
export { Metric } from './Metric/Metric.js';
|
|
5
|
+
export { metricTheme } from './Metric/Metric.theme.js';
|
|
6
|
+
export { DescriptionList } from './DescriptionList/DescriptionList.js';
|
|
7
|
+
export { Timeline } from './Timeline/Timeline.js';
|
|
8
|
+
export { Feed } from './Feed/Feed.js';
|
|
9
|
+
export { GanttChart } from './GanttChart/GanttChart.js';
|
|
10
|
+
export { ganttChartTheme } from './GanttChart/GanttChart.theme.js';
|
|
11
|
+
export { TableActions } from './Table/TableActions.js';
|
|
12
|
+
export { TableActionsMenu } from './Table/TableActionsMenu.js';
|
|
13
|
+
export { TableFilter } from './Table/TableFilter.js';
|
|
14
|
+
export { TablePagination } from './Table/TablePagination.js';
|
|
15
|
+
export { filterData, getDefaultOperator, getOperatorsForFilterType, inferFilterType, isBetweenOperator, isUnaryOperator, operatorLabels } from './Table/Table.filterUtils.js';
|
|
16
|
+
export { useTableColumns } from './Table/hooks/useTableColumns.js';
|
|
17
|
+
export { useTableExpansion } from './Table/hooks/useTableExpansion.js';
|
|
18
|
+
export { useTableFilter } from './Table/hooks/useTableFilter.js';
|
|
19
|
+
export { useTablePagination } from './Table/hooks/useTablePagination.js';
|
|
20
|
+
export { useTableSelection } from './Table/hooks/useTableSelection.js';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AuroraProps } from './Aurora.types';
|
|
3
|
+
/**
|
|
4
|
+
* Aurora creates an animated multi-color gradient background effect.
|
|
5
|
+
*
|
|
6
|
+
* Renders several large, blurred, semi-transparent blobs that slowly drift
|
|
7
|
+
* and morph, producing an organic aurora-like glow. Ideal for hero sections
|
|
8
|
+
* and decorative backgrounds.
|
|
9
|
+
*
|
|
10
|
+
* The component renders as an absolutely-positioned layer with
|
|
11
|
+
* `pointer-events-none`, so it will not interfere with interactive content.
|
|
12
|
+
* The parent element should have `position: relative` and `overflow: hidden`.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* <div className="relative overflow-hidden h-96 bg-gray-950">
|
|
17
|
+
* <Aurora />
|
|
18
|
+
* <div className="relative z-10 text-white p-8">
|
|
19
|
+
* <h1>Hero Content</h1>
|
|
20
|
+
* </div>
|
|
21
|
+
* </div>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const Aurora: React.FC<AuroraProps>;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useReducedMotion, motion } from 'motion/react';
|
|
3
|
+
import { cn } from '../../../utils/cn.js';
|
|
4
|
+
|
|
5
|
+
const DEFAULT_COLORS = ['#3b82f6', '#8b5cf6', '#ec4899', '#06b6d4'];
|
|
6
|
+
/**
|
|
7
|
+
* Each blob follows a unique organic path using keyframed x/y translations
|
|
8
|
+
* and scale changes. The durations are intentionally varied so the blobs
|
|
9
|
+
* never synchronize, producing a natural morphing look.
|
|
10
|
+
*/
|
|
11
|
+
const blobAnimations = [
|
|
12
|
+
{
|
|
13
|
+
// Blob 0 -- slow horizontal drift with vertical bob
|
|
14
|
+
x: ['0%', '30%', '-20%', '10%', '0%'],
|
|
15
|
+
y: ['0%', '-25%', '15%', '-10%', '0%'],
|
|
16
|
+
scale: [1, 1.15, 0.9, 1.05, 1],
|
|
17
|
+
baseDuration: 20,
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
// Blob 1 -- figure-8-ish path, slightly faster
|
|
21
|
+
x: ['0%', '-35%', '25%', '-15%', '0%'],
|
|
22
|
+
y: ['0%', '20%', '-30%', '25%', '0%'],
|
|
23
|
+
scale: [1, 0.9, 1.2, 0.95, 1],
|
|
24
|
+
baseDuration: 23,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
// Blob 2 -- wide circular sweep
|
|
28
|
+
x: ['0%', '25%', '0%', '-25%', '0%'],
|
|
29
|
+
y: ['0%', '-20%', '25%', '-15%', '0%'],
|
|
30
|
+
scale: [1, 1.1, 0.85, 1.15, 1],
|
|
31
|
+
baseDuration: 27,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
// Blob 3 -- gentle diagonal drift
|
|
35
|
+
x: ['0%', '-20%', '30%', '-10%', '0%'],
|
|
36
|
+
y: ['0%', '30%', '-20%', '10%', '0%'],
|
|
37
|
+
scale: [1, 0.95, 1.1, 0.9, 1],
|
|
38
|
+
baseDuration: 31,
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
/**
|
|
42
|
+
* Positions each blob at a different quadrant of the container so they
|
|
43
|
+
* begin spread out. Additional blobs beyond 4 cycle through positions.
|
|
44
|
+
*/
|
|
45
|
+
const blobPositions = [
|
|
46
|
+
{ top: '10%', left: '15%' },
|
|
47
|
+
{ top: '5%', right: '10%' },
|
|
48
|
+
{ bottom: '10%', left: '20%' },
|
|
49
|
+
{ bottom: '5%', right: '15%' },
|
|
50
|
+
];
|
|
51
|
+
/**
|
|
52
|
+
* Aurora creates an animated multi-color gradient background effect.
|
|
53
|
+
*
|
|
54
|
+
* Renders several large, blurred, semi-transparent blobs that slowly drift
|
|
55
|
+
* and morph, producing an organic aurora-like glow. Ideal for hero sections
|
|
56
|
+
* and decorative backgrounds.
|
|
57
|
+
*
|
|
58
|
+
* The component renders as an absolutely-positioned layer with
|
|
59
|
+
* `pointer-events-none`, so it will not interfere with interactive content.
|
|
60
|
+
* The parent element should have `position: relative` and `overflow: hidden`.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```tsx
|
|
64
|
+
* <div className="relative overflow-hidden h-96 bg-gray-950">
|
|
65
|
+
* <Aurora />
|
|
66
|
+
* <div className="relative z-10 text-white p-8">
|
|
67
|
+
* <h1>Hero Content</h1>
|
|
68
|
+
* </div>
|
|
69
|
+
* </div>
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
const Aurora = ({ colors = DEFAULT_COLORS, blur = 80, speed = 1, opacity = 0.3, size = 1, className, style, ...props }) => {
|
|
73
|
+
const shouldReduceMotion = useReducedMotion();
|
|
74
|
+
// Compute base blob dimension from the size multiplier.
|
|
75
|
+
// Using percentage-based sizing so it scales with the container.
|
|
76
|
+
const blobDimension = `${40 * size}%`;
|
|
77
|
+
return (jsx("div", { className: cn('absolute inset-0 overflow-hidden pointer-events-none', className), style: {
|
|
78
|
+
opacity,
|
|
79
|
+
filter: `blur(${blur}px)`,
|
|
80
|
+
...style,
|
|
81
|
+
}, "aria-hidden": "true", ...props, children: colors.map((color, index) => {
|
|
82
|
+
const anim = blobAnimations[index % blobAnimations.length];
|
|
83
|
+
const position = blobPositions[index % blobPositions.length];
|
|
84
|
+
const duration = anim.baseDuration / speed;
|
|
85
|
+
// When reduced motion is preferred, render static blobs with no animation.
|
|
86
|
+
if (shouldReduceMotion) {
|
|
87
|
+
return (jsx("div", { style: {
|
|
88
|
+
position: 'absolute',
|
|
89
|
+
...position,
|
|
90
|
+
width: blobDimension,
|
|
91
|
+
height: blobDimension,
|
|
92
|
+
borderRadius: '50%',
|
|
93
|
+
background: `radial-gradient(circle at center, ${color}, transparent 70%)`,
|
|
94
|
+
mixBlendMode: 'screen',
|
|
95
|
+
} }, index));
|
|
96
|
+
}
|
|
97
|
+
return (jsx(motion.div, { animate: {
|
|
98
|
+
x: anim.x,
|
|
99
|
+
y: anim.y,
|
|
100
|
+
scale: anim.scale,
|
|
101
|
+
}, transition: {
|
|
102
|
+
duration,
|
|
103
|
+
repeat: Infinity,
|
|
104
|
+
repeatType: 'loop',
|
|
105
|
+
ease: 'easeInOut',
|
|
106
|
+
}, style: {
|
|
107
|
+
position: 'absolute',
|
|
108
|
+
...position,
|
|
109
|
+
width: blobDimension,
|
|
110
|
+
height: blobDimension,
|
|
111
|
+
borderRadius: '50%',
|
|
112
|
+
background: `radial-gradient(circle at center, ${color}, transparent 70%)`,
|
|
113
|
+
mixBlendMode: 'screen',
|
|
114
|
+
willChange: 'transform',
|
|
115
|
+
} }, index));
|
|
116
|
+
}) }));
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export { Aurora };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
export interface AuroraProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Array of CSS color values for the gradient blobs (default: ['#3b82f6', '#8b5cf6', '#ec4899', '#06b6d4']) */
|
|
4
|
+
colors?: string[];
|
|
5
|
+
/** Blur amount in pixels applied to blobs (default: 80) */
|
|
6
|
+
blur?: number;
|
|
7
|
+
/** Animation speed multiplier. Higher values = faster movement (default: 1) */
|
|
8
|
+
speed?: number;
|
|
9
|
+
/** Overall opacity of the aurora layer, 0-1 (default: 0.3) */
|
|
10
|
+
opacity?: number;
|
|
11
|
+
/** Blob size multiplier. Higher values = larger blobs (default: 1) */
|
|
12
|
+
size?: number;
|
|
13
|
+
/** Additional className for the container */
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|