fluxo-ui 0.0.1
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/README.md +237 -0
- package/chunk-Do9eywBl.cjs +35 -0
- package/classnames-B4qHndiD.cjs +48 -0
- package/classnames-CEAOwX3h.js +66 -0
- package/components-C_HbdZhO.js +22556 -0
- package/components-DdojqcZ7.cjs +23236 -0
- package/dnd.cjs +6 -0
- package/dnd.d.ts +1 -0
- package/dnd.js +2 -0
- package/drag-drop-BF3uukc4.cjs +258 -0
- package/drag-drop-UWg0agsw.js +233 -0
- package/draw.cjs +3156 -0
- package/draw.d.ts +1 -0
- package/draw.js +3147 -0
- package/favicon.svg +14 -0
- package/hooks-BLbZ4aKB.cjs +137 -0
- package/hooks-D0CAM9v9.js +107 -0
- package/hooks.cjs +7 -0
- package/hooks.d.ts +1 -0
- package/hooks.js +2 -0
- package/icons-BRgMxTPy.js +1641 -0
- package/icons-CNooH6LA.cjs +2038 -0
- package/icons.cjs +85 -0
- package/icons.d.ts +1 -0
- package/icons.js +2 -0
- package/index.cjs +115 -0
- package/index.d.ts +1 -0
- package/index.js +2 -0
- package/kanban.cjs +969 -0
- package/kanban.d.ts +1 -0
- package/kanban.js +967 -0
- package/logo.svg +26 -0
- package/package.json +110 -0
- package/services.cjs +331 -0
- package/services.d.ts +1 -0
- package/services.js +321 -0
- package/src/assets/icons.d.ts +86 -0
- package/src/components/Autocomplete.d.ts +22 -0
- package/src/components/AutocompleteMulti.d.ts +24 -0
- package/src/components/Breadcrumb.d.ts +17 -0
- package/src/components/Button.d.ts +26 -0
- package/src/components/Checkbox.d.ts +12 -0
- package/src/components/Chips.d.ts +16 -0
- package/src/components/DeferredView.d.ts +13 -0
- package/src/components/Dropdown.d.ts +22 -0
- package/src/components/Fab.d.ts +23 -0
- package/src/components/FieldLabel.d.ts +15 -0
- package/src/components/Icon.d.ts +6 -0
- package/src/components/InfiniteScroll.d.ts +19 -0
- package/src/components/InputGroup.d.ts +7 -0
- package/src/components/InputSwitch.d.ts +12 -0
- package/src/components/Link.d.ts +5 -0
- package/src/components/ListBox.d.ts +38 -0
- package/src/components/MaskedInput.d.ts +28 -0
- package/src/components/Modal.d.ts +12 -0
- package/src/components/MultiStateCheckbox.d.ts +11 -0
- package/src/components/Multiselect.d.ts +25 -0
- package/src/components/NumericInput.d.ts +16 -0
- package/src/components/Password.d.ts +18 -0
- package/src/components/Popover.d.ts +20 -0
- package/src/components/ProgressBar.d.ts +31 -0
- package/src/components/RadioButton.d.ts +20 -0
- package/src/components/SelectButton.d.ts +20 -0
- package/src/components/SpeedDial.d.ts +40 -0
- package/src/components/Stepper.d.ts +41 -0
- package/src/components/TextArea.d.ts +19 -0
- package/src/components/TextInput.d.ts +19 -0
- package/src/components/ToggleButton.d.ts +12 -0
- package/src/components/animate-on-view/AnimateOnView.d.ts +23 -0
- package/src/components/animate-on-view/index.d.ts +2 -0
- package/src/components/calendar/Calendar.d.ts +4 -0
- package/src/components/calendar/CalendarContext.d.ts +4 -0
- package/src/components/calendar/calendar-constants.d.ts +8 -0
- package/src/components/calendar/calendar-types.d.ts +413 -0
- package/src/components/calendar/calendar-utils.d.ts +61 -0
- package/src/components/calendar/entries/CalendarEntry.d.ts +20 -0
- package/src/components/calendar/entries/DefaultEntry.d.ts +8 -0
- package/src/components/calendar/entries/EntryContainer.d.ts +19 -0
- package/src/components/calendar/entries/OverflowPopover.d.ts +12 -0
- package/src/components/calendar/entries/index.d.ts +4 -0
- package/src/components/calendar/hooks/index.d.ts +4 -0
- package/src/components/calendar/hooks/useCalendarEntries.d.ts +8 -0
- package/src/components/calendar/hooks/useCalendarNavigation.d.ts +24 -0
- package/src/components/calendar/hooks/useNowIndicator.d.ts +10 -0
- package/src/components/calendar/hooks/useViewTitle.d.ts +2 -0
- package/src/components/calendar/index.d.ts +9 -0
- package/src/components/calendar/interactions/index.d.ts +3 -0
- package/src/components/calendar/interactions/useDragMove.d.ts +11 -0
- package/src/components/calendar/interactions/useDragResize.d.ts +11 -0
- package/src/components/calendar/interactions/useSelection.d.ts +11 -0
- package/src/components/calendar/plugin-registry.d.ts +17 -0
- package/src/components/calendar/plugins/agenda-plugin.d.ts +6 -0
- package/src/components/calendar/plugins/create-plugin.d.ts +20 -0
- package/src/components/calendar/plugins/day-grid-plugin.d.ts +2 -0
- package/src/components/calendar/plugins/default-plugins.d.ts +2 -0
- package/src/components/calendar/plugins/index.d.ts +14 -0
- package/src/components/calendar/plugins/list-view-plugin.d.ts +2 -0
- package/src/components/calendar/plugins/month-grid-plugin.d.ts +2 -0
- package/src/components/calendar/plugins/multi-month-plugin.d.ts +2 -0
- package/src/components/calendar/plugins/scroll-month-plugin.d.ts +2 -0
- package/src/components/calendar/plugins/time-grid-custom-plugin.d.ts +6 -0
- package/src/components/calendar/plugins/time-grid-plugin.d.ts +2 -0
- package/src/components/calendar/plugins/year-grid-plugin.d.ts +2 -0
- package/src/components/calendar/toolbar/CalendarToolbar.d.ts +27 -0
- package/src/components/calendar/toolbar/ToolbarNavigation.d.ts +8 -0
- package/src/components/calendar/toolbar/ToolbarTitle.d.ts +6 -0
- package/src/components/calendar/toolbar/ToolbarViewSwitcher.d.ts +9 -0
- package/src/components/calendar/toolbar/index.d.ts +4 -0
- package/src/components/calendar/views/ViewRenderer.d.ts +7 -0
- package/src/components/calendar/views/agenda/AgendaView.d.ts +6 -0
- package/src/components/calendar/views/agenda/index.d.ts +1 -0
- package/src/components/calendar/views/day-grid/DayGrid.d.ts +9 -0
- package/src/components/calendar/views/day-grid/DayGridCell.d.ts +15 -0
- package/src/components/calendar/views/day-grid/index.d.ts +2 -0
- package/src/components/calendar/views/index.d.ts +10 -0
- package/src/components/calendar/views/list-view/ListView.d.ts +7 -0
- package/src/components/calendar/views/list-view/ListViewGroup.d.ts +11 -0
- package/src/components/calendar/views/list-view/ListViewItem.d.ts +10 -0
- package/src/components/calendar/views/list-view/index.d.ts +3 -0
- package/src/components/calendar/views/month-grid/MonthGrid.d.ts +5 -0
- package/src/components/calendar/views/month-grid/MonthGridCell.d.ts +22 -0
- package/src/components/calendar/views/month-grid/MonthGridHeader.d.ts +8 -0
- package/src/components/calendar/views/month-grid/index.d.ts +3 -0
- package/src/components/calendar/views/multi-month/MultiMonthGrid.d.ts +5 -0
- package/src/components/calendar/views/multi-month/index.d.ts +1 -0
- package/src/components/calendar/views/scroll-month/ScrollMonthView.d.ts +5 -0
- package/src/components/calendar/views/scroll-month/index.d.ts +1 -0
- package/src/components/calendar/views/time-grid/NowIndicator.d.ts +9 -0
- package/src/components/calendar/views/time-grid/TimeGrid.d.ts +9 -0
- package/src/components/calendar/views/time-grid/TimeGridAllDay.d.ts +14 -0
- package/src/components/calendar/views/time-grid/TimeGridBody.d.ts +21 -0
- package/src/components/calendar/views/time-grid/TimeGridColumn.d.ts +22 -0
- package/src/components/calendar/views/time-grid/TimeGridHeader.d.ts +9 -0
- package/src/components/calendar/views/time-grid/TimeGridSlot.d.ts +12 -0
- package/src/components/calendar/views/time-grid/index.d.ts +7 -0
- package/src/components/calendar/views/time-grid-custom/TimeGridCustomDays.d.ts +7 -0
- package/src/components/calendar/views/time-grid-custom/index.d.ts +1 -0
- package/src/components/calendar/views/year-grid/YearGrid.d.ts +5 -0
- package/src/components/calendar/views/year-grid/index.d.ts +1 -0
- package/src/components/canvas-draw/CanvasDraw.d.ts +18 -0
- package/src/components/canvas-draw/CanvasDrawOverlay.d.ts +27 -0
- package/src/components/canvas-draw/CanvasDrawToolbar.d.ts +32 -0
- package/src/components/canvas-draw/MediaTimeline.d.ts +36 -0
- package/src/components/canvas-draw/canvas-draw-types.d.ts +200 -0
- package/src/components/canvas-draw/index.d.ts +10 -0
- package/src/components/carousel/Carousel.d.ts +35 -0
- package/src/components/carousel/CarouselSlide.d.ts +22 -0
- package/src/components/carousel/CarouselThumbnails.d.ts +10 -0
- package/src/components/carousel/index.d.ts +2 -0
- package/src/components/collapsible-panel/CollapsiblePanel.d.ts +45 -0
- package/src/components/collapsible-panel/CollapsibleTabs.d.ts +24 -0
- package/src/components/collapsible-panel/index.d.ts +4 -0
- package/src/components/confirm-popover/ConfirmPopoverManager.d.ts +18 -0
- package/src/components/confirm-popover/ConfirmPopoverPanel.d.ts +7 -0
- package/src/components/confirm-popover/index.d.ts +3 -0
- package/src/components/confirm-popover/types.d.ts +20 -0
- package/src/components/confirm-popover/useConfirmPopoverPosition.d.ts +10 -0
- package/src/components/context/ThemeContext.d.ts +24 -0
- package/src/components/context-menu/ContextMenuManager.d.ts +3 -0
- package/src/components/context-menu/index.d.ts +2 -0
- package/src/components/context-menu/types.d.ts +28 -0
- package/src/components/context-menu/utils.d.ts +3 -0
- package/src/components/date-range/Calendar.d.ts +15 -0
- package/src/components/date-range/CustomDatePicker.d.ts +2 -0
- package/src/components/date-range/DatePopover.d.ts +5 -0
- package/src/components/date-range/DateRangePicker.d.ts +3 -0
- package/src/components/date-range/Footer.d.ts +2 -0
- package/src/components/date-range/MonthPicker.d.ts +10 -0
- package/src/components/date-range/QuickRangeDropdown.d.ts +2 -0
- package/src/components/date-range/QuickRangeList.d.ts +2 -0
- package/src/components/date-range/YearPicker.d.ts +11 -0
- package/src/components/date-range/index.d.ts +2 -0
- package/src/components/date-range/types.d.ts +65 -0
- package/src/components/date-range/utils.d.ts +6 -0
- package/src/components/drag-drop/DragDropProvider.d.ts +33 -0
- package/src/components/drag-drop/Draggable.d.ts +86 -0
- package/src/components/drag-drop/Droppable.d.ts +60 -0
- package/src/components/drag-drop/Sortable.d.ts +98 -0
- package/src/components/drag-drop/index.d.ts +9 -0
- package/src/components/drawer/Drawer.d.ts +19 -0
- package/src/components/drawer/index.d.ts +2 -0
- package/src/components/file-upload/FilePreview.d.ts +9 -0
- package/src/components/file-upload/FileUpload.d.ts +4 -0
- package/src/components/file-upload/file-upload-types.d.ts +23 -0
- package/src/components/file-upload/index.d.ts +2 -0
- package/src/components/gantt-chart/DependencyLines.d.ts +4 -0
- package/src/components/gantt-chart/FieldsPanel.d.ts +11 -0
- package/src/components/gantt-chart/GanttChart.d.ts +3 -0
- package/src/components/gantt-chart/GanttContext.d.ts +4 -0
- package/src/components/gantt-chart/Markers.d.ts +4 -0
- package/src/components/gantt-chart/TaskBar.d.ts +9 -0
- package/src/components/gantt-chart/TimelineGrid.d.ts +4 -0
- package/src/components/gantt-chart/TimelineHeader.d.ts +8 -0
- package/src/components/gantt-chart/TimelinePanel.d.ts +10 -0
- package/src/components/gantt-chart/gantt-types.d.ts +191 -0
- package/src/components/gantt-chart/gantt-utils.d.ts +27 -0
- package/src/components/gantt-chart/index.d.ts +2 -0
- package/src/components/image-editor/ImageEditor.d.ts +5 -0
- package/src/components/image-editor/image-editor-types.d.ts +51 -0
- package/src/components/image-editor/index.d.ts +2 -0
- package/src/components/index.d.ts +75 -0
- package/src/components/json-editor/AddEntry.d.ts +10 -0
- package/src/components/json-editor/ArrayEditor.d.ts +4 -0
- package/src/components/json-editor/ItemNameDisplay.d.ts +4 -0
- package/src/components/json-editor/ItemValueDisplay.d.ts +4 -0
- package/src/components/json-editor/JsonEditor.d.ts +5 -0
- package/src/components/json-editor/NodeSelector.d.ts +6 -0
- package/src/components/json-editor/ObjectEditor.d.ts +4 -0
- package/src/components/json-editor/SimpleEditor.d.ts +4 -0
- package/src/components/json-editor/Toolbar.d.ts +14 -0
- package/src/components/json-editor/index.d.ts +2 -0
- package/src/components/json-editor/json-editor-types.d.ts +83 -0
- package/src/components/json-editor/json-editor-utils.d.ts +11 -0
- package/src/components/kanban-board/KanbanBoard.d.ts +3 -0
- package/src/components/kanban-board/KanbanCard.d.ts +3 -0
- package/src/components/kanban-board/KanbanColumn.d.ts +3 -0
- package/src/components/kanban-board/KanbanColumnHeader.d.ts +8 -0
- package/src/components/kanban-board/KanbanContext.d.ts +5 -0
- package/src/components/kanban-board/index.d.ts +2 -0
- package/src/components/kanban-board/kanban-types.d.ts +152 -0
- package/src/components/kanban-board/kanban-utils.d.ts +14 -0
- package/src/components/lightbox/Lightbox.d.ts +32 -0
- package/src/components/lightbox/index.d.ts +2 -0
- package/src/components/menu-nav/MenuNav.d.ts +5 -0
- package/src/components/menu-nav/MenuNavItem.d.ts +18 -0
- package/src/components/menu-nav/index.d.ts +2 -0
- package/src/components/menu-nav/menu-nav-types.d.ts +49 -0
- package/src/components/notification-center/NotificationCenter.d.ts +3 -0
- package/src/components/notification-center/NotificationItemRow.d.ts +10 -0
- package/src/components/notification-center/index.d.ts +2 -0
- package/src/components/notification-center/notification-center-types.d.ts +32 -0
- package/src/components/page-banner/PageBanner.d.ts +23 -0
- package/src/components/page-banner/index.d.ts +2 -0
- package/src/components/pivot-table/PivotCellEditor.d.ts +14 -0
- package/src/components/pivot-table/PivotConfigPanel.d.ts +23 -0
- package/src/components/pivot-table/PivotFilterEditor.d.ts +12 -0
- package/src/components/pivot-table/PivotTable.d.ts +4 -0
- package/src/components/pivot-table/index.d.ts +2 -0
- package/src/components/pivot-table/pivot-engine.d.ts +23 -0
- package/src/components/pivot-table/pivot-table-types.d.ts +166 -0
- package/src/components/shimmer/ShimmerBarChart.d.ts +12 -0
- package/src/components/shimmer/ShimmerDiv.d.ts +5 -0
- package/src/components/shimmer/ShimmerFeed.d.ts +14 -0
- package/src/components/shimmer/ShimmerLegends.d.ts +8 -0
- package/src/components/shimmer/ShimmerPieChart.d.ts +10 -0
- package/src/components/shimmer/ShimmerTable.d.ts +12 -0
- package/src/components/shimmer/SkeletonAvatar.d.ts +8 -0
- package/src/components/shimmer/SkeletonButton.d.ts +9 -0
- package/src/components/shimmer/SkeletonCard.d.ts +15 -0
- package/src/components/shimmer/SkeletonImage.d.ts +10 -0
- package/src/components/shimmer/SkeletonText.d.ts +11 -0
- package/src/components/shimmer/index.d.ts +10 -0
- package/src/components/slider/Slider.d.ts +45 -0
- package/src/components/slider/index.d.ts +2 -0
- package/src/components/snackbar/Snackbar.d.ts +3 -0
- package/src/components/snackbar/SnackbarManager.d.ts +6 -0
- package/src/components/snackbar/constants.d.ts +4 -0
- package/src/components/snackbar/index.d.ts +1 -0
- package/src/components/snackbar/types.d.ts +30 -0
- package/src/components/splitter/Splitter.d.ts +20 -0
- package/src/components/splitter/index.d.ts +4 -0
- package/src/components/tab-view/TabHeader.d.ts +19 -0
- package/src/components/tab-view/TabNav.d.ts +15 -0
- package/src/components/tab-view/TabPage.d.ts +13 -0
- package/src/components/tab-view/TabView.d.ts +28 -0
- package/src/components/tab-view/index.d.ts +4 -0
- package/src/components/tab-view/tabview-utils.d.ts +5 -0
- package/src/components/table/Table.d.ts +35 -0
- package/src/components/table/TableBody.d.ts +13 -0
- package/src/components/table/TableFooter.d.ts +12 -0
- package/src/components/table/TableHeader.d.ts +9 -0
- package/src/components/table/table-types.d.ts +16 -0
- package/src/components/table/useSortedData.d.ts +2 -0
- package/src/components/timeline/Timeline.d.ts +27 -0
- package/src/components/timeline/TimelineItem.d.ts +11 -0
- package/src/components/timeline/index.d.ts +2 -0
- package/src/components/tooltip/Tooltip.d.ts +17 -0
- package/src/components/tooltip/TooltipManager.d.ts +3 -0
- package/src/components/tooltip/utils.d.ts +6 -0
- package/src/components/tour/StepTour.d.ts +18 -0
- package/src/components/tour/TourTooltip.d.ts +18 -0
- package/src/components/tour/types.d.ts +12 -0
- package/src/components/tour/useWindowResize.d.ts +4 -0
- package/src/components/tour/utils.d.ts +10 -0
- package/src/components/tree-view/TreeNodeComponent.d.ts +4 -0
- package/src/components/tree-view/TreeView.d.ts +4 -0
- package/src/components/tree-view/index.d.ts +2 -0
- package/src/components/tree-view/tree-view-types.d.ts +55 -0
- package/src/hooks/index.d.ts +5 -0
- package/src/hooks/useClickOutside.d.ts +1 -0
- package/src/hooks/useDebounce.d.ts +1 -0
- package/src/hooks/useKeyboard.d.ts +1 -0
- package/src/hooks/useMobile.d.ts +1 -0
- package/src/hooks/usePosition.d.ts +8 -0
- package/src/plugins/vite/index.d.ts +8 -0
- package/src/services/container.d.ts +29 -0
- package/src/services/index.d.ts +3 -0
- package/src/services/react.d.ts +23 -0
- package/src/services/types.d.ts +36 -0
- package/src/store/core/model.d.ts +2 -0
- package/src/store/core/state.d.ts +2 -0
- package/src/store/factory/react-hooks.d.ts +19 -0
- package/src/store/index.d.ts +4 -0
- package/src/store/middlewares/broadcast.d.ts +6 -0
- package/src/store/middlewares/debounce.d.ts +2 -0
- package/src/store/middlewares/devtools.d.ts +4 -0
- package/src/store/middlewares/immer.d.ts +2 -0
- package/src/store/middlewares/index.d.ts +11 -0
- package/src/store/middlewares/logging.d.ts +2 -0
- package/src/store/middlewares/persist.d.ts +2 -0
- package/src/store/middlewares/throttle.d.ts +2 -0
- package/src/store/middlewares/undo-redo.d.ts +13 -0
- package/src/store/middlewares/validation.d.ts +2 -0
- package/src/store/types.d.ts +99 -0
- package/src/story/CodeBlock.d.ts +9 -0
- package/src/story/ComponentDemo.d.ts +10 -0
- package/src/story/FeatureCard.d.ts +16 -0
- package/src/story/IconShowcase.d.ts +6 -0
- package/src/story/Layout.d.ts +6 -0
- package/src/story/Navigation.d.ts +6 -0
- package/src/story/PageLayout.d.ts +8 -0
- package/src/story/PropsTable.d.ts +13 -0
- package/src/story/SectionNav.d.ts +11 -0
- package/src/story/StoryThemeContext.d.ts +16 -0
- package/src/story/pages/HomePage.d.ts +3 -0
- package/src/story/pages/IconsPage.d.ts +2 -0
- package/src/story/pages/InstallationPage.d.ts +3 -0
- package/src/story/pages/animate-on-view/AllAnimations.d.ts +3 -0
- package/src/story/pages/animate-on-view/AnimateOnViewPage.d.ts +3 -0
- package/src/story/pages/animate-on-view/BasicUsage.d.ts +3 -0
- package/src/story/pages/animate-on-view/ConfigOptions.d.ts +3 -0
- package/src/story/pages/animate-on-view/ScrollDemo.d.ts +3 -0
- package/src/story/pages/animate-on-view/StaggeredAnimations.d.ts +3 -0
- package/src/story/pages/autocomplete/AutocompletePage.d.ts +3 -0
- package/src/story/pages/autocomplete/BasicUsage.d.ts +3 -0
- package/src/story/pages/autocomplete/CustomConfiguration.d.ts +3 -0
- package/src/story/pages/autocomplete/DisabledState.d.ts +3 -0
- package/src/story/pages/autocomplete/UsageExamples.d.ts +3 -0
- package/src/story/pages/autocomplete/autocomplete-story-data.d.ts +6 -0
- package/src/story/pages/autocomplete-multi/AutocompleteMultiPage.d.ts +3 -0
- package/src/story/pages/autocomplete-multi/BasicUsage.d.ts +3 -0
- package/src/story/pages/autocomplete-multi/DisabledState.d.ts +3 -0
- package/src/story/pages/autocomplete-multi/LimitedSelections.d.ts +3 -0
- package/src/story/pages/autocomplete-multi/PresetValues.d.ts +3 -0
- package/src/story/pages/autocomplete-multi/UsageExamples.d.ts +3 -0
- package/src/story/pages/autocomplete-multi/autocomplete-multi-story-data.d.ts +6 -0
- package/src/story/pages/breadcrumb/BasicUsage.d.ts +3 -0
- package/src/story/pages/breadcrumb/BreadcrumbPage.d.ts +3 -0
- package/src/story/pages/breadcrumb/CollapsedItems.d.ts +3 -0
- package/src/story/pages/breadcrumb/CustomSeparator.d.ts +3 -0
- package/src/story/pages/button/AsLink.d.ts +3 -0
- package/src/story/pages/button/AsyncAction.d.ts +3 -0
- package/src/story/pages/button/BasicUsage.d.ts +3 -0
- package/src/story/pages/button/ButtonPage.d.ts +3 -0
- package/src/story/pages/button/Combinations.d.ts +3 -0
- package/src/story/pages/button/CountdownTimer.d.ts +3 -0
- package/src/story/pages/button/FullWidth.d.ts +3 -0
- package/src/story/pages/button/Layouts.d.ts +3 -0
- package/src/story/pages/button/Sizes.d.ts +3 -0
- package/src/story/pages/button/States.d.ts +3 -0
- package/src/story/pages/button/Variants.d.ts +3 -0
- package/src/story/pages/button/WithIcons.d.ts +3 -0
- package/src/story/pages/calendar/BasicUsage.d.ts +3 -0
- package/src/story/pages/calendar/CalendarPage.d.ts +3 -0
- package/src/story/pages/calendar/CompactMode.d.ts +3 -0
- package/src/story/pages/calendar/CustomRendering.d.ts +3 -0
- package/src/story/pages/calendar/CustomToolbarEnd.d.ts +3 -0
- package/src/story/pages/calendar/DateBackgrounds.d.ts +3 -0
- package/src/story/pages/calendar/DragDropResize.d.ts +3 -0
- package/src/story/pages/calendar/ExternalDragDrop.d.ts +3 -0
- package/src/story/pages/calendar/ImperativeApi.d.ts +3 -0
- package/src/story/pages/calendar/NavigationPickerDemo.d.ts +3 -0
- package/src/story/pages/calendar/PluginSystem.d.ts +3 -0
- package/src/story/pages/calendar/PluginViews.d.ts +3 -0
- package/src/story/pages/calendar/TimeGridConfig.d.ts +3 -0
- package/src/story/pages/calendar/ViewModes.d.ts +3 -0
- package/src/story/pages/calendar/calendar-story-data.d.ts +18 -0
- package/src/story/pages/calendar-playground/CalendarPlaygroundPage.d.ts +3 -0
- package/src/story/pages/calendar-playground/PlaygroundSettings.d.ts +65 -0
- package/src/story/pages/canvas-draw/CanvasDrawPage.d.ts +3 -0
- package/src/story/pages/canvas-draw/ControlledMode.d.ts +3 -0
- package/src/story/pages/canvas-draw/DrawingCanvas.d.ts +3 -0
- package/src/story/pages/canvas-draw/ExportDemo.d.ts +3 -0
- package/src/story/pages/canvas-draw/FeatureFlags.d.ts +3 -0
- package/src/story/pages/canvas-draw/ImageAnnotation.d.ts +3 -0
- package/src/story/pages/canvas-draw/MediaTimelineDemo.d.ts +3 -0
- package/src/story/pages/canvas-draw/ReadOnlyMode.d.ts +3 -0
- package/src/story/pages/canvas-draw/TimedAnnotations.d.ts +3 -0
- package/src/story/pages/canvas-draw/ToolSubset.d.ts +3 -0
- package/src/story/pages/canvas-draw/ToolbarPlacement.d.ts +3 -0
- package/src/story/pages/canvas-draw/canvas-draw-story-data.d.ts +7 -0
- package/src/story/pages/carousel/Autoplay.d.ts +3 -0
- package/src/story/pages/carousel/BasicUsage.d.ts +3 -0
- package/src/story/pages/carousel/CarouselPage.d.ts +3 -0
- package/src/story/pages/carousel/ThumbnailNav.d.ts +3 -0
- package/src/story/pages/checkbox/BasicUsage.d.ts +3 -0
- package/src/story/pages/checkbox/CheckboxGroup.d.ts +3 -0
- package/src/story/pages/checkbox/CheckboxPage.d.ts +3 -0
- package/src/story/pages/checkbox/IndeterminateState.d.ts +3 -0
- package/src/story/pages/checkbox/States.d.ts +3 -0
- package/src/story/pages/chips/BasicUsage.d.ts +3 -0
- package/src/story/pages/chips/ChipsPage.d.ts +3 -0
- package/src/story/pages/chips/LimitedChips.d.ts +3 -0
- package/src/story/pages/chips/States.d.ts +3 -0
- package/src/story/pages/chips/chips-story-data.d.ts +2 -0
- package/src/story/pages/collapsible-panel/AccordionGroup.d.ts +3 -0
- package/src/story/pages/collapsible-panel/BasicUsage.d.ts +3 -0
- package/src/story/pages/collapsible-panel/CollapsiblePanelPage.d.ts +3 -0
- package/src/story/pages/collapsible-panel/Controlled.d.ts +3 -0
- package/src/story/pages/collapsible-panel/CustomHeaderTemplate.d.ts +3 -0
- package/src/story/pages/collapsible-panel/DisabledState.d.ts +3 -0
- package/src/story/pages/collapsible-panel/HeaderActions.d.ts +3 -0
- package/src/story/pages/collapsible-panel/HorizontalTabs.d.ts +3 -0
- package/src/story/pages/collapsible-panel/HorizontalTabsVariants.d.ts +3 -0
- package/src/story/pages/collapsible-panel/IconPositions.d.ts +3 -0
- package/src/story/pages/collapsible-panel/MultiOpenGroup.d.ts +3 -0
- package/src/story/pages/collapsible-panel/Sizes.d.ts +3 -0
- package/src/story/pages/collapsible-panel/Variants.d.ts +3 -0
- package/src/story/pages/collapsible-panel/WithIcons.d.ts +3 -0
- package/src/story/pages/confirm-popover/ConfirmCustomDemo.d.ts +3 -0
- package/src/story/pages/confirm-popover/ConfirmPopoverPage.d.ts +3 -0
- package/src/story/pages/confirm-popover/CustomActionsDemo.d.ts +3 -0
- package/src/story/pages/confirm-popover/InfoOkDemo.d.ts +3 -0
- package/src/story/pages/confirm-popover/RichJsxDemo.d.ts +3 -0
- package/src/story/pages/confirm-popover/SetupSection.d.ts +3 -0
- package/src/story/pages/confirm-popover/YesNoDemo.d.ts +3 -0
- package/src/story/pages/context-menu/ButtonTriggered.d.ts +3 -0
- package/src/story/pages/context-menu/ContextMenuPage.d.ts +3 -0
- package/src/story/pages/context-menu/NestedSubmenus.d.ts +3 -0
- package/src/story/pages/context-menu/RightClickMenu.d.ts +3 -0
- package/src/story/pages/context-menu/ScrollableMenu.d.ts +3 -0
- package/src/story/pages/context-menu/SetupSection.d.ts +3 -0
- package/src/story/pages/context-menu/TableRowMenu.d.ts +3 -0
- package/src/story/pages/context-menu/context-menu-story-data.d.ts +52 -0
- package/src/story/pages/date-range-picker/BasicUsage.d.ts +3 -0
- package/src/story/pages/date-range-picker/Constraints.d.ts +3 -0
- package/src/story/pages/date-range-picker/CustomFormat.d.ts +3 -0
- package/src/story/pages/date-range-picker/DateRangePickerPage.d.ts +3 -0
- package/src/story/pages/date-range-picker/DisabledState.d.ts +3 -0
- package/src/story/pages/date-range-picker/FirstDayOfWeek.d.ts +3 -0
- package/src/story/pages/date-range-picker/PositionDemo.d.ts +3 -0
- package/src/story/pages/date-range-picker/PresetDates.d.ts +3 -0
- package/src/story/pages/date-range-picker/QuickSelect.d.ts +3 -0
- package/src/story/pages/date-range-picker/SelectionModes.d.ts +3 -0
- package/src/story/pages/date-range-picker/SingleDatePicker.d.ts +3 -0
- package/src/story/pages/date-range-picker/TodayButton.d.ts +3 -0
- package/src/story/pages/date-range-picker/date-range-picker-story-data.d.ts +8 -0
- package/src/story/pages/deferred-view/BasicUsageDemo.d.ts +3 -0
- package/src/story/pages/deferred-view/DeferredViewPage.d.ts +3 -0
- package/src/story/pages/deferred-view/KeepMountedDemo.d.ts +3 -0
- package/src/story/pages/deferred-view/LazyImageDemo.d.ts +3 -0
- package/src/story/pages/deferred-view/PlaceholderDemo.d.ts +3 -0
- package/src/story/pages/deferred-view/RootMarginDemo.d.ts +3 -0
- package/src/story/pages/demo-showcase/DemoShowcasePage.d.ts +3 -0
- package/src/story/pages/demo-showcase/FormSection.d.ts +8 -0
- package/src/story/pages/demo-showcase/TableSection.d.ts +6 -0
- package/src/story/pages/demo-showcase/TabsAndProgressSection.d.ts +6 -0
- package/src/story/pages/drag-drop/BasicDragDrop.d.ts +3 -0
- package/src/story/pages/drag-drop/DragDropPage.d.ts +3 -0
- package/src/story/pages/drag-drop/MultiContainer.d.ts +3 -0
- package/src/story/pages/drag-drop/RenderProps.d.ts +3 -0
- package/src/story/pages/drag-drop/SetupSection.d.ts +3 -0
- package/src/story/pages/drag-drop/TypeBasedDragDrop.d.ts +3 -0
- package/src/story/pages/drag-drop/drag-drop-story-data.d.ts +6 -0
- package/src/story/pages/drawer/BasicUsage.d.ts +3 -0
- package/src/story/pages/drawer/CustomContent.d.ts +3 -0
- package/src/story/pages/drawer/DrawerPage.d.ts +3 -0
- package/src/story/pages/drawer/Positions.d.ts +3 -0
- package/src/story/pages/dropdown/BasicUsage.d.ts +3 -0
- package/src/story/pages/dropdown/ClearableDropdown.d.ts +3 -0
- package/src/story/pages/dropdown/CustomFieldMapping.d.ts +3 -0
- package/src/story/pages/dropdown/DropdownPage.d.ts +3 -0
- package/src/story/pages/dropdown/DropdownStates.d.ts +3 -0
- package/src/story/pages/dropdown/GroupedOptions.d.ts +3 -0
- package/src/story/pages/dropdown/SearchableDropdown.d.ts +3 -0
- package/src/story/pages/dropdown/dropdown-story-data.d.ts +33 -0
- package/src/story/pages/fab-speed-dial/FabBasic.d.ts +3 -0
- package/src/story/pages/fab-speed-dial/FabExtended.d.ts +3 -0
- package/src/story/pages/fab-speed-dial/FabSizes.d.ts +3 -0
- package/src/story/pages/fab-speed-dial/FabSpeedDialPage.d.ts +3 -0
- package/src/story/pages/fab-speed-dial/SpeedDialBasic.d.ts +3 -0
- package/src/story/pages/fab-speed-dial/SpeedDialClick.d.ts +3 -0
- package/src/story/pages/fab-speed-dial/SpeedDialDirections.d.ts +3 -0
- package/src/story/pages/fab-speed-dial/SpeedDialSizes.d.ts +3 -0
- package/src/story/pages/fab-speed-dial/SpeedDialVariants.d.ts +3 -0
- package/src/story/pages/fab-speed-dial/fab-story-icons.d.ts +11 -0
- package/src/story/pages/field-label/BasicLabel.d.ts +3 -0
- package/src/story/pages/field-label/CombinedStates.d.ts +3 -0
- package/src/story/pages/field-label/DisabledState.d.ts +3 -0
- package/src/story/pages/field-label/ErrorState.d.ts +3 -0
- package/src/story/pages/field-label/FieldLabelPage.d.ts +3 -0
- package/src/story/pages/field-label/OptionalField.d.ts +3 -0
- package/src/story/pages/field-label/RequiredField.d.ts +3 -0
- package/src/story/pages/file-upload/BasicUsage.d.ts +3 -0
- package/src/story/pages/file-upload/FileUploadPage.d.ts +3 -0
- package/src/story/pages/file-upload/ImagePreview.d.ts +3 -0
- package/src/story/pages/file-upload/Validation.d.ts +3 -0
- package/src/story/pages/gantt-chart/BasicUsage.d.ts +3 -0
- package/src/story/pages/gantt-chart/CustomColumns.d.ts +3 -0
- package/src/story/pages/gantt-chart/DateMarkers.d.ts +3 -0
- package/src/story/pages/gantt-chart/Dependencies.d.ts +3 -0
- package/src/story/pages/gantt-chart/DragAndDrop.d.ts +3 -0
- package/src/story/pages/gantt-chart/GanttChartPage.d.ts +3 -0
- package/src/story/pages/gantt-chart/HierarchicalTasks.d.ts +3 -0
- package/src/story/pages/gantt-chart/QuarterlyView.d.ts +3 -0
- package/src/story/pages/gantt-chart/ReadOnly.d.ts +3 -0
- package/src/story/pages/gantt-chart/SprintPlanning.d.ts +3 -0
- package/src/story/pages/gantt-chart/TaskCreation.d.ts +3 -0
- package/src/story/pages/gantt-chart/TimelineOnly.d.ts +3 -0
- package/src/story/pages/gantt-chart/ViewModes.d.ts +3 -0
- package/src/story/pages/gantt-chart/gantt-chart-story-data.d.ts +10 -0
- package/src/story/pages/hooks-utils/HooksUtilsPage.d.ts +3 -0
- package/src/story/pages/hooks-utils/UseClickOutsideDemo.d.ts +3 -0
- package/src/story/pages/hooks-utils/UseDebounceDemo.d.ts +3 -0
- package/src/story/pages/hooks-utils/UseKeyboardDemo.d.ts +3 -0
- package/src/story/pages/hooks-utils/UseMobileDemo.d.ts +3 -0
- package/src/story/pages/hooks-utils/UtilFunctionsDemo.d.ts +3 -0
- package/src/story/pages/hooks-utils/WithFieldLabelDemo.d.ts +3 -0
- package/src/story/pages/image-editor/BasicUsage.d.ts +3 -0
- package/src/story/pages/image-editor/CropOnly.d.ts +3 -0
- package/src/story/pages/image-editor/CustomTools.d.ts +3 -0
- package/src/story/pages/image-editor/ExportOptions.d.ts +3 -0
- package/src/story/pages/image-editor/ImageEditorPage.d.ts +3 -0
- package/src/story/pages/infinite-scroll/BasicUsage.d.ts +3 -0
- package/src/story/pages/infinite-scroll/ErrorHandling.d.ts +3 -0
- package/src/story/pages/infinite-scroll/InfiniteScrollPage.d.ts +3 -0
- package/src/story/pages/input-group/EmailInput.d.ts +3 -0
- package/src/story/pages/input-group/FileUpload.d.ts +3 -0
- package/src/story/pages/input-group/InputGroupPage.d.ts +3 -0
- package/src/story/pages/input-group/PhoneNumber.d.ts +3 -0
- package/src/story/pages/input-group/PriceInput.d.ts +3 -0
- package/src/story/pages/input-group/SearchInput.d.ts +3 -0
- package/src/story/pages/input-group/UrlInput.d.ts +3 -0
- package/src/story/pages/input-switch/BasicUsage.d.ts +3 -0
- package/src/story/pages/input-switch/CustomLabels.d.ts +3 -0
- package/src/story/pages/input-switch/DisabledStates.d.ts +3 -0
- package/src/story/pages/input-switch/FormIntegration.d.ts +3 -0
- package/src/story/pages/input-switch/InputSwitchPage.d.ts +3 -0
- package/src/story/pages/input-switch/SettingsPanel.d.ts +3 -0
- package/src/story/pages/json-editor/ArrayEditing.d.ts +3 -0
- package/src/story/pages/json-editor/BasicUsage.d.ts +3 -0
- package/src/story/pages/json-editor/ComplexData.d.ts +3 -0
- package/src/story/pages/json-editor/JsonEditorPage.d.ts +3 -0
- package/src/story/pages/json-editor/NestedObjects.d.ts +3 -0
- package/src/story/pages/json-editor/PermissionControls.d.ts +3 -0
- package/src/story/pages/json-editor/ReadOnlyMode.d.ts +3 -0
- package/src/story/pages/json-editor/SizeVariants.d.ts +3 -0
- package/src/story/pages/json-editor/SortedKeys.d.ts +3 -0
- package/src/story/pages/json-editor/TypeShowcase.d.ts +3 -0
- package/src/story/pages/json-editor/json-editor-story-data.d.ts +8 -0
- package/src/story/pages/kanban-board/BasicUsage.d.ts +3 -0
- package/src/story/pages/kanban-board/BlockedCards.d.ts +3 -0
- package/src/story/pages/kanban-board/CardActions.d.ts +3 -0
- package/src/story/pages/kanban-board/CollapsibleColumns.d.ts +3 -0
- package/src/story/pages/kanban-board/ColumnLimits.d.ts +3 -0
- package/src/story/pages/kanban-board/CompactMode.d.ts +3 -0
- package/src/story/pages/kanban-board/CustomColumnHeader.d.ts +3 -0
- package/src/story/pages/kanban-board/CustomTemplates.d.ts +3 -0
- package/src/story/pages/kanban-board/DetailedCards.d.ts +3 -0
- package/src/story/pages/kanban-board/InteractiveBoard.d.ts +3 -0
- package/src/story/pages/kanban-board/KanbanBoardPage.d.ts +3 -0
- package/src/story/pages/kanban-board/LockedColumns.d.ts +3 -0
- package/src/story/pages/kanban-board/StickyHeaders.d.ts +3 -0
- package/src/story/pages/kanban-board/VerticalLayout.d.ts +3 -0
- package/src/story/pages/kanban-board/kanban-story-data.d.ts +19 -0
- package/src/story/pages/lightbox/BasicUsage.d.ts +3 -0
- package/src/story/pages/lightbox/LightboxPage.d.ts +3 -0
- package/src/story/pages/list-box/DisabledState.d.ts +3 -0
- package/src/story/pages/list-box/GroupedList.d.ts +3 -0
- package/src/story/pages/list-box/ListBoxPage.d.ts +3 -0
- package/src/story/pages/list-box/MultipleSelection.d.ts +3 -0
- package/src/story/pages/list-box/SearchableList.d.ts +3 -0
- package/src/story/pages/list-box/SingleSelection.d.ts +3 -0
- package/src/story/pages/list-box/list-box-story-data.d.ts +4 -0
- package/src/story/pages/masked-input/CustomSlotChar.d.ts +3 -0
- package/src/story/pages/masked-input/IncludeLiterals.d.ts +3 -0
- package/src/story/pages/masked-input/InputStates.d.ts +3 -0
- package/src/story/pages/masked-input/KeyboardNavigation.d.ts +3 -0
- package/src/story/pages/masked-input/MaskExamples.d.ts +8 -0
- package/src/story/pages/masked-input/MaskSyntax.d.ts +3 -0
- package/src/story/pages/masked-input/MaskedInputPage.d.ts +3 -0
- package/src/story/pages/masked-input/PrefilledValue.d.ts +3 -0
- package/src/story/pages/menu-nav/BasicUsage.d.ts +3 -0
- package/src/story/pages/menu-nav/Collapsible.d.ts +3 -0
- package/src/story/pages/menu-nav/CustomSlots.d.ts +3 -0
- package/src/story/pages/menu-nav/GroupedMenus.d.ts +3 -0
- package/src/story/pages/menu-nav/Horizontal.d.ts +3 -0
- package/src/story/pages/menu-nav/MenuNavPage.d.ts +3 -0
- package/src/story/pages/menu-nav/NestedMenus.d.ts +3 -0
- package/src/story/pages/menu-nav/SelectionStyles.d.ts +3 -0
- package/src/story/pages/menu-nav/Sizes.d.ts +3 -0
- package/src/story/pages/menu-nav/ToolbarMode.d.ts +3 -0
- package/src/story/pages/menu-nav/menu-nav-story-data.d.ts +7 -0
- package/src/story/pages/modal/BasicUsage.d.ts +3 -0
- package/src/story/pages/modal/CustomLayout.d.ts +3 -0
- package/src/story/pages/modal/FormExample.d.ts +3 -0
- package/src/story/pages/modal/ModalPage.d.ts +3 -0
- package/src/story/pages/modal/NestedModals.d.ts +3 -0
- package/src/story/pages/modal/NonClosable.d.ts +3 -0
- package/src/story/pages/modal/ScrollableContent.d.ts +3 -0
- package/src/story/pages/modal/Sizes.d.ts +3 -0
- package/src/story/pages/modal/WithoutTitle.d.ts +3 -0
- package/src/story/pages/multi-state-checkbox/BasicUsage.d.ts +3 -0
- package/src/story/pages/multi-state-checkbox/ControlledState.d.ts +3 -0
- package/src/story/pages/multi-state-checkbox/CustomStates.d.ts +3 -0
- package/src/story/pages/multi-state-checkbox/MultiStateCheckboxPage.d.ts +3 -0
- package/src/story/pages/multi-state-checkbox/multi-state-checkbox-story-data.d.ts +4 -0
- package/src/story/pages/multiselect/BasicUsage.d.ts +3 -0
- package/src/story/pages/multiselect/CustomFieldMapping.d.ts +3 -0
- package/src/story/pages/multiselect/GroupedOptions.d.ts +3 -0
- package/src/story/pages/multiselect/MultiselectPage.d.ts +3 -0
- package/src/story/pages/multiselect/MultiselectStates.d.ts +3 -0
- package/src/story/pages/multiselect/SelectAll.d.ts +3 -0
- package/src/story/pages/multiselect/SelectionLimit.d.ts +3 -0
- package/src/story/pages/multiselect/WithoutSearch.d.ts +3 -0
- package/src/story/pages/multiselect/multiselect-story-data.d.ts +28 -0
- package/src/story/pages/notification-center/BasicUsage.d.ts +3 -0
- package/src/story/pages/notification-center/Categories.d.ts +3 -0
- package/src/story/pages/notification-center/CustomTrigger.d.ts +3 -0
- package/src/story/pages/notification-center/NotificationCenterPage.d.ts +3 -0
- package/src/story/pages/numeric-input/BasicUsage.d.ts +3 -0
- package/src/story/pages/numeric-input/DecimalPrecision.d.ts +3 -0
- package/src/story/pages/numeric-input/MinMaxRange.d.ts +3 -0
- package/src/story/pages/numeric-input/NumericInputPage.d.ts +3 -0
- package/src/story/pages/numeric-input/NumericInputStates.d.ts +3 -0
- package/src/story/pages/page-banner/BasicUsage.d.ts +3 -0
- package/src/story/pages/page-banner/CustomContent.d.ts +3 -0
- package/src/story/pages/page-banner/Dismissible.d.ts +3 -0
- package/src/story/pages/page-banner/PageBannerPage.d.ts +3 -0
- package/src/story/pages/page-banner/PageLevel.d.ts +3 -0
- package/src/story/pages/page-banner/WithActions.d.ts +3 -0
- package/src/story/pages/password/BasicUsage.d.ts +3 -0
- package/src/story/pages/password/PasswordPage.d.ts +3 -0
- package/src/story/pages/password/PasswordStates.d.ts +3 -0
- package/src/story/pages/pivot-table/BasicUsage.d.ts +3 -0
- package/src/story/pages/pivot-table/ColumnPivot.d.ts +3 -0
- package/src/story/pages/pivot-table/Filtering.d.ts +3 -0
- package/src/story/pages/pivot-table/InteractiveDemo.d.ts +3 -0
- package/src/story/pages/pivot-table/MultiLevelPivot.d.ts +3 -0
- package/src/story/pages/pivot-table/MultipleFunctions.d.ts +3 -0
- package/src/story/pages/pivot-table/PivotTablePage.d.ts +3 -0
- package/src/story/pages/pivot-table/pivot-table-story-data.d.ts +17 -0
- package/src/story/pages/pivot-table-playground/PivotTablePlaygroundPage.d.ts +3 -0
- package/src/story/pages/popover/BasicUsage.d.ts +3 -0
- package/src/story/pages/popover/ControlledPopover.d.ts +3 -0
- package/src/story/pages/popover/CustomContent.d.ts +3 -0
- package/src/story/pages/popover/FilterablePopover.d.ts +3 -0
- package/src/story/pages/popover/GroupedItems.d.ts +3 -0
- package/src/story/pages/popover/PopoverPage.d.ts +3 -0
- package/src/story/pages/popover/popover-story-data.d.ts +5 -0
- package/src/story/pages/progress-bar/BasicUsage.d.ts +3 -0
- package/src/story/pages/progress-bar/BufferProgress.d.ts +3 -0
- package/src/story/pages/progress-bar/DynamicProgress.d.ts +3 -0
- package/src/story/pages/progress-bar/Indeterminate.d.ts +3 -0
- package/src/story/pages/progress-bar/LabelsAndValues.d.ts +3 -0
- package/src/story/pages/progress-bar/Layouts.d.ts +3 -0
- package/src/story/pages/progress-bar/MultiSegment.d.ts +3 -0
- package/src/story/pages/progress-bar/ProgressBarPage.d.ts +3 -0
- package/src/story/pages/progress-bar/Sizes.d.ts +3 -0
- package/src/story/pages/progress-bar/Variants.d.ts +3 -0
- package/src/story/pages/radio-button/BasicUsage.d.ts +3 -0
- package/src/story/pages/radio-button/ControlledUncontrolled.d.ts +3 -0
- package/src/story/pages/radio-button/HorizontalLayout.d.ts +3 -0
- package/src/story/pages/radio-button/RadioButtonPage.d.ts +3 -0
- package/src/story/pages/radio-button/States.d.ts +3 -0
- package/src/story/pages/radio-button/radio-button-story-data.d.ts +13 -0
- package/src/story/pages/select-button/BasicUsage.d.ts +3 -0
- package/src/story/pages/select-button/DisabledItems.d.ts +3 -0
- package/src/story/pages/select-button/DisabledState.d.ts +3 -0
- package/src/story/pages/select-button/MultipleSelection.d.ts +3 -0
- package/src/story/pages/select-button/RealWorldExamples.d.ts +3 -0
- package/src/story/pages/select-button/SelectButtonPage.d.ts +3 -0
- package/src/story/pages/select-button/SizeVariants.d.ts +3 -0
- package/src/story/pages/select-button/ThemeVariants.d.ts +3 -0
- package/src/story/pages/select-button/UsageNotes.d.ts +3 -0
- package/src/story/pages/select-button/VerticalDirection.d.ts +3 -0
- package/src/story/pages/select-button/WithIcons.d.ts +3 -0
- package/src/story/pages/select-button/select-button-story-data.d.ts +30 -0
- package/src/story/pages/services/BasicUsage.d.ts +3 -0
- package/src/story/pages/services/Lifetimes.d.ts +3 -0
- package/src/story/pages/services/Parameterized.d.ts +3 -0
- package/src/story/pages/services/ReactIntegration.d.ts +3 -0
- package/src/story/pages/services/ServicesPage.d.ts +3 -0
- package/src/story/pages/services/SwappingImplementations.d.ts +3 -0
- package/src/story/pages/services/services-story-data.d.ts +92 -0
- package/src/story/pages/shimmer/ProfileCard.d.ts +3 -0
- package/src/story/pages/shimmer/ShimmerBarChartDemo.d.ts +3 -0
- package/src/story/pages/shimmer/ShimmerDivDemo.d.ts +3 -0
- package/src/story/pages/shimmer/ShimmerFeedDemo.d.ts +3 -0
- package/src/story/pages/shimmer/ShimmerPage.d.ts +3 -0
- package/src/story/pages/shimmer/ShimmerPieChartDemo.d.ts +3 -0
- package/src/story/pages/shimmer/ShimmerTableDemo.d.ts +3 -0
- package/src/story/pages/slider/BasicUsage.d.ts +3 -0
- package/src/story/pages/slider/Formatting.d.ts +3 -0
- package/src/story/pages/slider/GridSnap.d.ts +3 -0
- package/src/story/pages/slider/RangeSlider.d.ts +3 -0
- package/src/story/pages/slider/Sizes.d.ts +3 -0
- package/src/story/pages/slider/SliderPage.d.ts +3 -0
- package/src/story/pages/slider/StringValues.d.ts +3 -0
- package/src/story/pages/slider/Variants.d.ts +3 -0
- package/src/story/pages/slider/VerticalSlider.d.ts +3 -0
- package/src/story/pages/slider/WithMarks.d.ts +3 -0
- package/src/story/pages/snackbar/AnimationsDemo.d.ts +3 -0
- package/src/story/pages/snackbar/ClickCallback.d.ts +3 -0
- package/src/story/pages/snackbar/LightBackground.d.ts +3 -0
- package/src/story/pages/snackbar/PersistentTimeout.d.ts +3 -0
- package/src/story/pages/snackbar/PositionsDemo.d.ts +3 -0
- package/src/story/pages/snackbar/SetupSection.d.ts +3 -0
- package/src/story/pages/snackbar/SnackbarPage.d.ts +3 -0
- package/src/story/pages/snackbar/TypesDemo.d.ts +3 -0
- package/src/story/pages/sortable/BasicSortable.d.ts +3 -0
- package/src/story/pages/sortable/ComplexItems.d.ts +3 -0
- package/src/story/pages/sortable/DragHandles.d.ts +3 -0
- package/src/story/pages/sortable/MultipleLists.d.ts +3 -0
- package/src/story/pages/sortable/SetupSection.d.ts +3 -0
- package/src/story/pages/sortable/SortablePage.d.ts +3 -0
- package/src/story/pages/sortable/TypeBasedSortable.d.ts +3 -0
- package/src/story/pages/sortable/sortable-story-data.d.ts +15 -0
- package/src/story/pages/splitter/DefaultSizePct.d.ts +3 -0
- package/src/story/pages/splitter/DefaultSizePx.d.ts +3 -0
- package/src/story/pages/splitter/FixedPanel.d.ts +3 -0
- package/src/story/pages/splitter/GutterSize.d.ts +3 -0
- package/src/story/pages/splitter/HorizontalSplit.d.ts +3 -0
- package/src/story/pages/splitter/KeyboardNavigation.d.ts +3 -0
- package/src/story/pages/splitter/MinSize.d.ts +3 -0
- package/src/story/pages/splitter/NestedSplitters.d.ts +3 -0
- package/src/story/pages/splitter/OnResizeEnd.d.ts +3 -0
- package/src/story/pages/splitter/PersistingLayout.d.ts +3 -0
- package/src/story/pages/splitter/SplitterPage.d.ts +3 -0
- package/src/story/pages/splitter/VerticalSplit.d.ts +3 -0
- package/src/story/pages/stepper/BasicUsage.d.ts +3 -0
- package/src/story/pages/stepper/ColorVariants.d.ts +3 -0
- package/src/story/pages/stepper/InteractiveSteps.d.ts +3 -0
- package/src/story/pages/stepper/LabelPlacement.d.ts +3 -0
- package/src/story/pages/stepper/LayoutShapes.d.ts +3 -0
- package/src/story/pages/stepper/SizeOptions.d.ts +3 -0
- package/src/story/pages/stepper/StepStatus.d.ts +3 -0
- package/src/story/pages/stepper/StepperPage.d.ts +3 -0
- package/src/story/pages/stepper/TextOnly.d.ts +3 -0
- package/src/story/pages/stepper/VerticalOrientation.d.ts +3 -0
- package/src/story/pages/stepper/WithIcons.d.ts +3 -0
- package/src/story/pages/stepper/stepper-story-data.d.ts +7 -0
- package/src/story/pages/store-basic/BasicUsage.d.ts +3 -0
- package/src/story/pages/store-basic/BatchedUpdates.d.ts +3 -0
- package/src/story/pages/store-basic/ComputedProperties.d.ts +3 -0
- package/src/story/pages/store-basic/MiddlewareDemo.d.ts +3 -0
- package/src/story/pages/store-basic/MultipleStores.d.ts +3 -0
- package/src/story/pages/store-basic/PathSubscriptions.d.ts +3 -0
- package/src/story/pages/store-basic/StoreBasicPage.d.ts +3 -0
- package/src/story/pages/store-middleware/BroadcastDemo.d.ts +3 -0
- package/src/story/pages/store-middleware/DebounceDemo.d.ts +3 -0
- package/src/story/pages/store-middleware/LoggingDemo.d.ts +3 -0
- package/src/story/pages/store-middleware/PersistDemo.d.ts +3 -0
- package/src/story/pages/store-middleware/StoreMiddlewarePage.d.ts +3 -0
- package/src/story/pages/store-middleware/ThrottleDemo.d.ts +3 -0
- package/src/story/pages/store-middleware/UndoRedoDemo.d.ts +3 -0
- package/src/story/pages/store-middleware/ValidationDemo.d.ts +3 -0
- package/src/story/pages/store-model/BasicCRUD.d.ts +3 -0
- package/src/story/pages/store-model/CombinedDemo.d.ts +3 -0
- package/src/story/pages/store-model/ListManagement.d.ts +3 -0
- package/src/story/pages/store-model/PersistenceDemo.d.ts +3 -0
- package/src/story/pages/store-model/StoreModelPage.d.ts +3 -0
- package/src/story/pages/store-model/ValidationDemo.d.ts +3 -0
- package/src/story/pages/tab-view/BasicUsage.d.ts +3 -0
- package/src/story/pages/tab-view/ClosableTabs.d.ts +3 -0
- package/src/story/pages/tab-view/EventHandling.d.ts +3 -0
- package/src/story/pages/tab-view/HeaderEnd.d.ts +3 -0
- package/src/story/pages/tab-view/Positions.d.ts +3 -0
- package/src/story/pages/tab-view/ScrollableTabs.d.ts +3 -0
- package/src/story/pages/tab-view/StyleVariants.d.ts +3 -0
- package/src/story/pages/tab-view/TabViewPage.d.ts +3 -0
- package/src/story/pages/tab-view/WithIcons.d.ts +3 -0
- package/src/story/pages/table/BasicUsage.d.ts +3 -0
- package/src/story/pages/table/CustomRendering.d.ts +3 -0
- package/src/story/pages/table/LoadingAndEmpty.d.ts +3 -0
- package/src/story/pages/table/ResponsiveColumns.d.ts +3 -0
- package/src/story/pages/table/RowSelection.d.ts +3 -0
- package/src/story/pages/table/SortableColumns.d.ts +3 -0
- package/src/story/pages/table/StyleVariants.d.ts +3 -0
- package/src/story/pages/table/TablePage.d.ts +3 -0
- package/src/story/pages/table/WithActions.d.ts +3 -0
- package/src/story/pages/table/WithPagination.d.ts +3 -0
- package/src/story/pages/table/table-story-data.d.ts +13 -0
- package/src/story/pages/text-input/BasicUsage.d.ts +3 -0
- package/src/story/pages/text-input/TextInputPage.d.ts +3 -0
- package/src/story/pages/text-input/TextInputStates.d.ts +3 -0
- package/src/story/pages/text-input/Validation.d.ts +3 -0
- package/src/story/pages/text-input/WithIcons.d.ts +3 -0
- package/src/story/pages/text-input/WithLabel.d.ts +3 -0
- package/src/story/pages/textarea/AutoResize.d.ts +3 -0
- package/src/story/pages/textarea/BasicUsage.d.ts +3 -0
- package/src/story/pages/textarea/CharacterLimit.d.ts +3 -0
- package/src/story/pages/textarea/RowHeights.d.ts +3 -0
- package/src/story/pages/textarea/TextAreaPage.d.ts +3 -0
- package/src/story/pages/textarea/TextAreaStates.d.ts +3 -0
- package/src/story/pages/timeline/AlternateAlignment.d.ts +3 -0
- package/src/story/pages/timeline/BasicUsage.d.ts +3 -0
- package/src/story/pages/timeline/CustomMarkers.d.ts +3 -0
- package/src/story/pages/timeline/HorizontalLayout.d.ts +3 -0
- package/src/story/pages/timeline/TimelinePage.d.ts +3 -0
- package/src/story/pages/toggle-button/BasicUsage.d.ts +3 -0
- package/src/story/pages/toggle-button/CustomLabels.d.ts +3 -0
- package/src/story/pages/toggle-button/CustomStyling.d.ts +3 -0
- package/src/story/pages/toggle-button/EventHandling.d.ts +3 -0
- package/src/story/pages/toggle-button/FormIntegration.d.ts +3 -0
- package/src/story/pages/toggle-button/MultipleToggles.d.ts +3 -0
- package/src/story/pages/toggle-button/Sizes.d.ts +3 -0
- package/src/story/pages/toggle-button/States.d.ts +3 -0
- package/src/story/pages/toggle-button/ToggleButtonPage.d.ts +3 -0
- package/src/story/pages/toggle-button/Variants.d.ts +3 -0
- package/src/story/pages/tooltip/BasicUsage.d.ts +3 -0
- package/src/story/pages/tooltip/CustomTimeout.d.ts +3 -0
- package/src/story/pages/tooltip/OnAnyElement.d.ts +3 -0
- package/src/story/pages/tooltip/Placements.d.ts +3 -0
- package/src/story/pages/tooltip/RichContent.d.ts +3 -0
- package/src/story/pages/tooltip/SetupSection.d.ts +3 -0
- package/src/story/pages/tooltip/TooltipPage.d.ts +3 -0
- package/src/story/pages/tour/BasicTour.d.ts +3 -0
- package/src/story/pages/tour/DarkModeSection.d.ts +3 -0
- package/src/story/pages/tour/PlacementOptions.d.ts +3 -0
- package/src/story/pages/tour/RichContent.d.ts +3 -0
- package/src/story/pages/tour/StartAtStep.d.ts +3 -0
- package/src/story/pages/tour/StepCallbacks.d.ts +3 -0
- package/src/story/pages/tour/TourPage.d.ts +3 -0
- package/src/story/pages/tour/tour-story-data.d.ts +13 -0
- package/src/story/pages/tree-view/AsyncLoading.d.ts +3 -0
- package/src/story/pages/tree-view/BasicUsage.d.ts +3 -0
- package/src/story/pages/tree-view/CheckboxMode.d.ts +3 -0
- package/src/story/pages/tree-view/DragDrop.d.ts +3 -0
- package/src/story/pages/tree-view/TreeViewPage.d.ts +3 -0
- package/src/themes/index.d.ts +2 -0
- package/src/types/index.d.ts +97 -0
- package/src/utils/common-fns.d.ts +8 -0
- package/src/utils/field-label.d.ts +12 -0
- package/src/utils/index.d.ts +10 -0
- package/src/utils/layout.d.ts +1 -0
- package/src/utils/lib.d.ts +2 -0
- package/store-middlewares.cjs +299 -0
- package/store-middlewares.d.ts +1 -0
- package/store-middlewares.js +290 -0
- package/store.cjs +683 -0
- package/store.d.ts +1 -0
- package/store.js +675 -0
- package/styles/components.css +16368 -0
- package/styles/drag-drop.css +88 -0
- package/styles/draw.css +994 -0
- package/styles/kanban.css +814 -0
- package/utils.cjs +25 -0
- package/utils.d.ts +1 -0
- package/utils.js +23 -0
- package/vite-plugin.cjs +42 -0
- package/vite-plugin.d.ts +1 -0
- package/vite-plugin.js +38 -0
package/kanban.js
ADDED
|
@@ -0,0 +1,967 @@
|
|
|
1
|
+
import { n as __toESM, t as require_classnames } from "./classnames-CEAOwX3h.js";
|
|
2
|
+
import { t as Sortable } from "./drag-drop-UWg0agsw.js";
|
|
3
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import './styles/kanban.css';//#region src/components/kanban-board/KanbanContext.ts
|
|
6
|
+
var import_classnames = /* @__PURE__ */ __toESM(require_classnames(), 1);
|
|
7
|
+
var KanbanContext = createContext(null);
|
|
8
|
+
function useKanban() {
|
|
9
|
+
const ctx = useContext(KanbanContext);
|
|
10
|
+
if (!ctx) throw new Error("useKanban must be used within a KanbanBoard");
|
|
11
|
+
return ctx;
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/components/kanban-board/kanban-utils.ts
|
|
15
|
+
function getCardsForColumn(cards, columnId) {
|
|
16
|
+
return cards.filter((card) => card.columnId === columnId).sort((a, b) => a.order - b.order);
|
|
17
|
+
}
|
|
18
|
+
function filterCards(cards, filter) {
|
|
19
|
+
let result = cards;
|
|
20
|
+
if (filter.query) {
|
|
21
|
+
const q = filter.query.toLowerCase();
|
|
22
|
+
result = result.filter((card) => card.title.toLowerCase().includes(q) || card.description?.toLowerCase().includes(q));
|
|
23
|
+
}
|
|
24
|
+
if (filter.priority?.length) result = result.filter((card) => card.priority && filter.priority.includes(card.priority));
|
|
25
|
+
if (filter.labels?.length) result = result.filter((card) => card.labels?.some((label) => filter.labels.includes(label.id)));
|
|
26
|
+
if (filter.assignees?.length) result = result.filter((card) => {
|
|
27
|
+
if (card.assignees?.length) return card.assignees.some((a) => filter.assignees.includes(a.id));
|
|
28
|
+
return card.assignee && filter.assignees.includes(card.assignee.id);
|
|
29
|
+
});
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
function isColumnOverLimit(column, cardCount) {
|
|
33
|
+
return column.limit !== void 0 && column.limit > 0 && cardCount > column.limit;
|
|
34
|
+
}
|
|
35
|
+
function getInitials(name) {
|
|
36
|
+
return name.split(" ").map((part) => part[0]).join("").toUpperCase().slice(0, 2);
|
|
37
|
+
}
|
|
38
|
+
function formatDueDate(date) {
|
|
39
|
+
const d = typeof date === "string" ? new Date(date) : date;
|
|
40
|
+
const now = /* @__PURE__ */ new Date();
|
|
41
|
+
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
|
|
42
|
+
const target = new Date(d.getFullYear(), d.getMonth(), d.getDate());
|
|
43
|
+
const diffDays = Math.round((target.getTime() - today.getTime()) / (1e3 * 60 * 60 * 24));
|
|
44
|
+
if (diffDays < 0) return {
|
|
45
|
+
text: `${Math.abs(diffDays)}d overdue`,
|
|
46
|
+
isOverdue: true,
|
|
47
|
+
isDueSoon: false
|
|
48
|
+
};
|
|
49
|
+
if (diffDays === 0) return {
|
|
50
|
+
text: "Due today",
|
|
51
|
+
isOverdue: false,
|
|
52
|
+
isDueSoon: true
|
|
53
|
+
};
|
|
54
|
+
if (diffDays === 1) return {
|
|
55
|
+
text: "Due tomorrow",
|
|
56
|
+
isOverdue: false,
|
|
57
|
+
isDueSoon: true
|
|
58
|
+
};
|
|
59
|
+
if (diffDays <= 3) return {
|
|
60
|
+
text: `Due in ${diffDays}d`,
|
|
61
|
+
isOverdue: false,
|
|
62
|
+
isDueSoon: true
|
|
63
|
+
};
|
|
64
|
+
return {
|
|
65
|
+
text: `${[
|
|
66
|
+
"Jan",
|
|
67
|
+
"Feb",
|
|
68
|
+
"Mar",
|
|
69
|
+
"Apr",
|
|
70
|
+
"May",
|
|
71
|
+
"Jun",
|
|
72
|
+
"Jul",
|
|
73
|
+
"Aug",
|
|
74
|
+
"Sep",
|
|
75
|
+
"Oct",
|
|
76
|
+
"Nov",
|
|
77
|
+
"Dec"
|
|
78
|
+
][d.getMonth()]} ${d.getDate()}`,
|
|
79
|
+
isOverdue: false,
|
|
80
|
+
isDueSoon: false
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//#endregion
|
|
84
|
+
//#region src/components/kanban-board/KanbanCard.tsx
|
|
85
|
+
var priorityConfig = {
|
|
86
|
+
critical: {
|
|
87
|
+
className: "eui-kanban-priority-critical",
|
|
88
|
+
label: "Critical"
|
|
89
|
+
},
|
|
90
|
+
high: {
|
|
91
|
+
className: "eui-kanban-priority-high",
|
|
92
|
+
label: "High"
|
|
93
|
+
},
|
|
94
|
+
medium: {
|
|
95
|
+
className: "eui-kanban-priority-medium",
|
|
96
|
+
label: "Medium"
|
|
97
|
+
},
|
|
98
|
+
low: {
|
|
99
|
+
className: "eui-kanban-priority-low",
|
|
100
|
+
label: "Low"
|
|
101
|
+
},
|
|
102
|
+
none: {
|
|
103
|
+
className: "eui-kanban-priority-none",
|
|
104
|
+
label: "None"
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
function KanbanCard({ card, column, index }) {
|
|
108
|
+
const { props } = useKanban();
|
|
109
|
+
const { cardSize = "default", cardTemplate, cardActionsTemplate, allowDeleteCard, onCardClick, onCardDoubleClick, onCardDelete } = props;
|
|
110
|
+
const handleClick = useCallback((e) => {
|
|
111
|
+
onCardClick?.({
|
|
112
|
+
card,
|
|
113
|
+
column,
|
|
114
|
+
event: e
|
|
115
|
+
});
|
|
116
|
+
}, [
|
|
117
|
+
card,
|
|
118
|
+
column,
|
|
119
|
+
onCardClick
|
|
120
|
+
]);
|
|
121
|
+
const handleDoubleClick = useCallback((e) => {
|
|
122
|
+
onCardDoubleClick?.({
|
|
123
|
+
card,
|
|
124
|
+
column,
|
|
125
|
+
event: e
|
|
126
|
+
});
|
|
127
|
+
}, [
|
|
128
|
+
card,
|
|
129
|
+
column,
|
|
130
|
+
onCardDoubleClick
|
|
131
|
+
]);
|
|
132
|
+
const handleDelete = useCallback((e) => {
|
|
133
|
+
e.stopPropagation();
|
|
134
|
+
onCardDelete?.({
|
|
135
|
+
card,
|
|
136
|
+
columnId: column.id
|
|
137
|
+
});
|
|
138
|
+
}, [
|
|
139
|
+
card,
|
|
140
|
+
column.id,
|
|
141
|
+
onCardDelete
|
|
142
|
+
]);
|
|
143
|
+
const handleKeyDown = useCallback((e) => {
|
|
144
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
145
|
+
e.preventDefault();
|
|
146
|
+
onCardClick?.({
|
|
147
|
+
card,
|
|
148
|
+
column,
|
|
149
|
+
event: e
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
if (e.key === "Delete" && allowDeleteCard) onCardDelete?.({
|
|
153
|
+
card,
|
|
154
|
+
columnId: column.id
|
|
155
|
+
});
|
|
156
|
+
}, [
|
|
157
|
+
card,
|
|
158
|
+
column,
|
|
159
|
+
allowDeleteCard,
|
|
160
|
+
onCardClick,
|
|
161
|
+
onCardDelete
|
|
162
|
+
]);
|
|
163
|
+
const dueInfo = useMemo(() => card.dueDate ? formatDueDate(card.dueDate) : null, [card.dueDate]);
|
|
164
|
+
const allAssignees = useMemo(() => {
|
|
165
|
+
if (card.assignees?.length) return card.assignees;
|
|
166
|
+
if (card.assignee) return [card.assignee];
|
|
167
|
+
return [];
|
|
168
|
+
}, [card.assignee, card.assignees]);
|
|
169
|
+
const hasSubtasks = card.subtaskCount !== void 0 && card.subtaskCount > 0;
|
|
170
|
+
const subtaskPercent = hasSubtasks ? Math.round((card.subtaskCompleted ?? 0) / card.subtaskCount * 100) : 0;
|
|
171
|
+
if (cardTemplate) return /* @__PURE__ */ jsx("div", {
|
|
172
|
+
className: (0, import_classnames.default)("eui-kanban-card", `eui-kanban-card-${cardSize}`),
|
|
173
|
+
onClick: handleClick,
|
|
174
|
+
onDoubleClick: handleDoubleClick,
|
|
175
|
+
onKeyDown: handleKeyDown,
|
|
176
|
+
role: "article",
|
|
177
|
+
tabIndex: 0,
|
|
178
|
+
"aria-label": card.title,
|
|
179
|
+
"data-card-id": card.id,
|
|
180
|
+
"data-card-index": index,
|
|
181
|
+
children: cardTemplate(card, column)
|
|
182
|
+
});
|
|
183
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
184
|
+
className: (0, import_classnames.default)("eui-kanban-card", `eui-kanban-card-${cardSize}`, {
|
|
185
|
+
"eui-kanban-card-blocked": card.blocked,
|
|
186
|
+
"eui-kanban-card-clickable": !!onCardClick
|
|
187
|
+
}),
|
|
188
|
+
style: card.color ? { borderLeftColor: card.color } : void 0,
|
|
189
|
+
onClick: handleClick,
|
|
190
|
+
onDoubleClick: handleDoubleClick,
|
|
191
|
+
onKeyDown: handleKeyDown,
|
|
192
|
+
role: "article",
|
|
193
|
+
tabIndex: 0,
|
|
194
|
+
"aria-label": `${card.title}${card.priority ? `, priority: ${card.priority}` : ""}${dueInfo ? `, ${dueInfo.text}` : ""}`,
|
|
195
|
+
"data-card-id": card.id,
|
|
196
|
+
"data-card-index": index,
|
|
197
|
+
children: [card.coverImage && cardSize === "detailed" && /* @__PURE__ */ jsx("div", {
|
|
198
|
+
className: "eui-kanban-card-cover",
|
|
199
|
+
children: /* @__PURE__ */ jsx("img", {
|
|
200
|
+
src: card.coverImage,
|
|
201
|
+
alt: "",
|
|
202
|
+
loading: "lazy"
|
|
203
|
+
})
|
|
204
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
205
|
+
className: "eui-kanban-card-body",
|
|
206
|
+
children: [
|
|
207
|
+
card.labels && card.labels.length > 0 && cardSize !== "compact" && /* @__PURE__ */ jsx("div", {
|
|
208
|
+
className: "eui-kanban-card-labels",
|
|
209
|
+
role: "list",
|
|
210
|
+
"aria-label": "Labels",
|
|
211
|
+
children: card.labels.map((label) => /* @__PURE__ */ jsx("span", {
|
|
212
|
+
className: "eui-kanban-label",
|
|
213
|
+
style: { backgroundColor: label.color },
|
|
214
|
+
role: "listitem",
|
|
215
|
+
title: label.text,
|
|
216
|
+
children: cardSize === "detailed" ? label.text : ""
|
|
217
|
+
}, label.id))
|
|
218
|
+
}),
|
|
219
|
+
/* @__PURE__ */ jsx("div", {
|
|
220
|
+
className: "eui-kanban-card-title",
|
|
221
|
+
children: card.title
|
|
222
|
+
}),
|
|
223
|
+
card.description && cardSize === "detailed" && /* @__PURE__ */ jsx("div", {
|
|
224
|
+
className: "eui-kanban-card-description",
|
|
225
|
+
children: card.description
|
|
226
|
+
}),
|
|
227
|
+
card.progress !== void 0 && cardSize !== "compact" && /* @__PURE__ */ jsxs("div", {
|
|
228
|
+
className: "eui-kanban-card-progress",
|
|
229
|
+
role: "progressbar",
|
|
230
|
+
"aria-valuenow": card.progress,
|
|
231
|
+
"aria-valuemin": 0,
|
|
232
|
+
"aria-valuemax": 100,
|
|
233
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
234
|
+
className: "eui-kanban-card-progress-track",
|
|
235
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
236
|
+
className: "eui-kanban-card-progress-fill",
|
|
237
|
+
style: { width: `${card.progress}%` }
|
|
238
|
+
})
|
|
239
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
240
|
+
className: "eui-kanban-card-progress-text",
|
|
241
|
+
children: [card.progress, "%"]
|
|
242
|
+
})]
|
|
243
|
+
}),
|
|
244
|
+
/* @__PURE__ */ jsxs("div", {
|
|
245
|
+
className: "eui-kanban-card-footer",
|
|
246
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
247
|
+
className: "eui-kanban-card-meta",
|
|
248
|
+
children: [
|
|
249
|
+
card.priority && card.priority !== "none" && /* @__PURE__ */ jsx("span", {
|
|
250
|
+
className: (0, import_classnames.default)("eui-kanban-card-priority", priorityConfig[card.priority].className),
|
|
251
|
+
title: `Priority: ${priorityConfig[card.priority].label}`,
|
|
252
|
+
"aria-label": `Priority: ${priorityConfig[card.priority].label}`,
|
|
253
|
+
children: /* @__PURE__ */ jsxs("svg", {
|
|
254
|
+
viewBox: "0 0 16 16",
|
|
255
|
+
fill: "currentColor",
|
|
256
|
+
width: "12",
|
|
257
|
+
height: "12",
|
|
258
|
+
"aria-hidden": "true",
|
|
259
|
+
children: [
|
|
260
|
+
card.priority === "critical" && /* @__PURE__ */ jsx("path", { d: "M8 1l2 5h5l-4 3.5 1.5 5L8 11.5 3.5 14.5 5 9.5 1 6h5z" }),
|
|
261
|
+
card.priority === "high" && /* @__PURE__ */ jsx("path", { d: "M3 13V5l5-3 5 3v8l-5 2z" }),
|
|
262
|
+
card.priority === "medium" && /* @__PURE__ */ jsx("path", { d: "M4 12V6l4-2 4 2v6l-4 2z" }),
|
|
263
|
+
card.priority === "low" && /* @__PURE__ */ jsx("path", { d: "M5 11V7l3-1.5L11 7v4l-3 1.5z" })
|
|
264
|
+
]
|
|
265
|
+
})
|
|
266
|
+
}),
|
|
267
|
+
dueInfo && /* @__PURE__ */ jsxs("span", {
|
|
268
|
+
className: (0, import_classnames.default)("eui-kanban-card-due", {
|
|
269
|
+
"eui-kanban-due-overdue": dueInfo.isOverdue,
|
|
270
|
+
"eui-kanban-due-soon": dueInfo.isDueSoon
|
|
271
|
+
}),
|
|
272
|
+
title: dueInfo.text,
|
|
273
|
+
children: [/* @__PURE__ */ jsxs("svg", {
|
|
274
|
+
viewBox: "0 0 16 16",
|
|
275
|
+
fill: "none",
|
|
276
|
+
stroke: "currentColor",
|
|
277
|
+
strokeWidth: "1.5",
|
|
278
|
+
width: "12",
|
|
279
|
+
height: "12",
|
|
280
|
+
"aria-hidden": "true",
|
|
281
|
+
children: [/* @__PURE__ */ jsx("circle", {
|
|
282
|
+
cx: "8",
|
|
283
|
+
cy: "8",
|
|
284
|
+
r: "6.5"
|
|
285
|
+
}), /* @__PURE__ */ jsx("path", { d: "M8 4.5V8l2.5 1.5" })]
|
|
286
|
+
}), dueInfo.text]
|
|
287
|
+
}),
|
|
288
|
+
hasSubtasks && /* @__PURE__ */ jsxs("span", {
|
|
289
|
+
className: "eui-kanban-card-subtasks",
|
|
290
|
+
title: `${card.subtaskCompleted ?? 0}/${card.subtaskCount} subtasks`,
|
|
291
|
+
children: [
|
|
292
|
+
/* @__PURE__ */ jsx("svg", {
|
|
293
|
+
viewBox: "0 0 16 16",
|
|
294
|
+
fill: "none",
|
|
295
|
+
stroke: "currentColor",
|
|
296
|
+
strokeWidth: "1.5",
|
|
297
|
+
width: "12",
|
|
298
|
+
height: "12",
|
|
299
|
+
"aria-hidden": "true",
|
|
300
|
+
children: /* @__PURE__ */ jsx("path", { d: "M2 4h12M2 8h12M2 12h8" })
|
|
301
|
+
}),
|
|
302
|
+
card.subtaskCompleted ?? 0,
|
|
303
|
+
"/",
|
|
304
|
+
card.subtaskCount
|
|
305
|
+
]
|
|
306
|
+
}),
|
|
307
|
+
(card.commentCount ?? 0) > 0 && /* @__PURE__ */ jsxs("span", {
|
|
308
|
+
className: "eui-kanban-card-comments",
|
|
309
|
+
title: `${card.commentCount} comments`,
|
|
310
|
+
children: [/* @__PURE__ */ jsx("svg", {
|
|
311
|
+
viewBox: "0 0 16 16",
|
|
312
|
+
fill: "none",
|
|
313
|
+
stroke: "currentColor",
|
|
314
|
+
strokeWidth: "1.5",
|
|
315
|
+
width: "12",
|
|
316
|
+
height: "12",
|
|
317
|
+
"aria-hidden": "true",
|
|
318
|
+
children: /* @__PURE__ */ jsx("path", { d: "M2 3h12v8H5l-3 3V3z" })
|
|
319
|
+
}), card.commentCount]
|
|
320
|
+
}),
|
|
321
|
+
(card.attachmentCount ?? 0) > 0 && /* @__PURE__ */ jsxs("span", {
|
|
322
|
+
className: "eui-kanban-card-attachments",
|
|
323
|
+
title: `${card.attachmentCount} attachments`,
|
|
324
|
+
children: [/* @__PURE__ */ jsx("svg", {
|
|
325
|
+
viewBox: "0 0 16 16",
|
|
326
|
+
fill: "none",
|
|
327
|
+
stroke: "currentColor",
|
|
328
|
+
strokeWidth: "1.5",
|
|
329
|
+
width: "12",
|
|
330
|
+
height: "12",
|
|
331
|
+
"aria-hidden": "true",
|
|
332
|
+
children: /* @__PURE__ */ jsx("path", { d: "M10.5 5L6 9.5a2 2 0 102.8 2.8L13.5 7.5a3.5 3.5 0 00-5-5L4 7a2 2 0 002.8 2.8" })
|
|
333
|
+
}), card.attachmentCount]
|
|
334
|
+
})
|
|
335
|
+
]
|
|
336
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
337
|
+
className: "eui-kanban-card-actions-row",
|
|
338
|
+
children: [
|
|
339
|
+
cardActionsTemplate && cardActionsTemplate(card, column),
|
|
340
|
+
allAssignees.length > 0 && /* @__PURE__ */ jsxs("div", {
|
|
341
|
+
className: "eui-kanban-card-assignees",
|
|
342
|
+
"aria-label": "Assignees",
|
|
343
|
+
children: [allAssignees.slice(0, 3).map((assignee) => /* @__PURE__ */ jsx("span", {
|
|
344
|
+
className: "eui-kanban-avatar",
|
|
345
|
+
title: assignee.name,
|
|
346
|
+
children: assignee.avatar ? /* @__PURE__ */ jsx("img", {
|
|
347
|
+
src: assignee.avatar,
|
|
348
|
+
alt: assignee.name,
|
|
349
|
+
loading: "lazy"
|
|
350
|
+
}) : getInitials(assignee.name)
|
|
351
|
+
}, assignee.id)), allAssignees.length > 3 && /* @__PURE__ */ jsxs("span", {
|
|
352
|
+
className: "eui-kanban-avatar eui-kanban-avatar-overflow",
|
|
353
|
+
children: ["+", allAssignees.length - 3]
|
|
354
|
+
})]
|
|
355
|
+
}),
|
|
356
|
+
allowDeleteCard && /* @__PURE__ */ jsx("button", {
|
|
357
|
+
className: "eui-kanban-card-delete",
|
|
358
|
+
onClick: handleDelete,
|
|
359
|
+
"aria-label": `Delete card: ${card.title}`,
|
|
360
|
+
title: "Delete card",
|
|
361
|
+
type: "button",
|
|
362
|
+
children: /* @__PURE__ */ jsx("svg", {
|
|
363
|
+
viewBox: "0 0 16 16",
|
|
364
|
+
fill: "none",
|
|
365
|
+
stroke: "currentColor",
|
|
366
|
+
strokeWidth: "1.5",
|
|
367
|
+
width: "14",
|
|
368
|
+
height: "14",
|
|
369
|
+
"aria-hidden": "true",
|
|
370
|
+
children: /* @__PURE__ */ jsx("path", { d: "M4 4l8 8M12 4l-8 8" })
|
|
371
|
+
})
|
|
372
|
+
})
|
|
373
|
+
]
|
|
374
|
+
})]
|
|
375
|
+
}),
|
|
376
|
+
hasSubtasks && cardSize !== "compact" && /* @__PURE__ */ jsx("div", {
|
|
377
|
+
className: "eui-kanban-card-subtask-bar",
|
|
378
|
+
role: "progressbar",
|
|
379
|
+
"aria-valuenow": subtaskPercent,
|
|
380
|
+
"aria-valuemin": 0,
|
|
381
|
+
"aria-valuemax": 100,
|
|
382
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
383
|
+
className: "eui-kanban-card-subtask-fill",
|
|
384
|
+
style: { width: `${subtaskPercent}%` }
|
|
385
|
+
})
|
|
386
|
+
})
|
|
387
|
+
]
|
|
388
|
+
})]
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
//#endregion
|
|
392
|
+
//#region src/components/kanban-board/KanbanColumnHeader.tsx
|
|
393
|
+
function KanbanColumnHeader({ column, cardCount, isCollapsed }) {
|
|
394
|
+
const { props, toggleCollapse, editingColumnId, setEditingColumnId } = useKanban();
|
|
395
|
+
const { columnHeaderTemplate, allowCollapse, allowEditColumn, allowDeleteColumn, showCardCount, showColumnLimit, onColumnDelete, onColumnUpdate } = props;
|
|
396
|
+
const [editTitle, setEditTitle] = useState(column.title);
|
|
397
|
+
const inputRef = useRef(null);
|
|
398
|
+
const isEditing = editingColumnId === column.id;
|
|
399
|
+
const overLimit = isColumnOverLimit(column, cardCount);
|
|
400
|
+
useEffect(() => {
|
|
401
|
+
if (isEditing && inputRef.current) {
|
|
402
|
+
inputRef.current.focus();
|
|
403
|
+
inputRef.current.select();
|
|
404
|
+
}
|
|
405
|
+
}, [isEditing]);
|
|
406
|
+
const handleStartEdit = useCallback(() => {
|
|
407
|
+
if (!allowEditColumn || column.locked) return;
|
|
408
|
+
setEditTitle(column.title);
|
|
409
|
+
setEditingColumnId(column.id);
|
|
410
|
+
}, [
|
|
411
|
+
allowEditColumn,
|
|
412
|
+
column.locked,
|
|
413
|
+
column.title,
|
|
414
|
+
column.id,
|
|
415
|
+
setEditingColumnId
|
|
416
|
+
]);
|
|
417
|
+
const handleSaveEdit = useCallback(() => {
|
|
418
|
+
const trimmed = editTitle.trim();
|
|
419
|
+
if (trimmed && trimmed !== column.title) onColumnUpdate?.({
|
|
420
|
+
column,
|
|
421
|
+
field: "title",
|
|
422
|
+
value: trimmed
|
|
423
|
+
});
|
|
424
|
+
setEditingColumnId(null);
|
|
425
|
+
}, [
|
|
426
|
+
editTitle,
|
|
427
|
+
column,
|
|
428
|
+
onColumnUpdate,
|
|
429
|
+
setEditingColumnId
|
|
430
|
+
]);
|
|
431
|
+
const handleEditKeyDown = useCallback((e) => {
|
|
432
|
+
if (e.key === "Enter") handleSaveEdit();
|
|
433
|
+
else if (e.key === "Escape") setEditingColumnId(null);
|
|
434
|
+
}, [handleSaveEdit, setEditingColumnId]);
|
|
435
|
+
const handleDelete = useCallback((e) => {
|
|
436
|
+
e.stopPropagation();
|
|
437
|
+
onColumnDelete?.({ column });
|
|
438
|
+
}, [column, onColumnDelete]);
|
|
439
|
+
const handleCollapse = useCallback(() => {
|
|
440
|
+
toggleCollapse(column.id);
|
|
441
|
+
}, [column.id, toggleCollapse]);
|
|
442
|
+
if (isCollapsed) return /* @__PURE__ */ jsx("div", {
|
|
443
|
+
className: "eui-kanban-column-header eui-kanban-column-header-collapsed",
|
|
444
|
+
onClick: handleCollapse,
|
|
445
|
+
onKeyDown: (e) => {
|
|
446
|
+
if (e.key === "Enter") handleCollapse();
|
|
447
|
+
},
|
|
448
|
+
role: "button",
|
|
449
|
+
tabIndex: 0,
|
|
450
|
+
"aria-label": `Expand ${column.title} column`,
|
|
451
|
+
title: `Expand ${column.title}`,
|
|
452
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
453
|
+
className: "eui-kanban-column-header-collapsed-content",
|
|
454
|
+
children: [
|
|
455
|
+
column.color && /* @__PURE__ */ jsx("span", {
|
|
456
|
+
className: "eui-kanban-column-color",
|
|
457
|
+
style: { backgroundColor: column.color },
|
|
458
|
+
"aria-hidden": "true"
|
|
459
|
+
}),
|
|
460
|
+
/* @__PURE__ */ jsx("span", {
|
|
461
|
+
className: "eui-kanban-column-title-collapsed",
|
|
462
|
+
children: column.title
|
|
463
|
+
}),
|
|
464
|
+
showCardCount && /* @__PURE__ */ jsx("span", {
|
|
465
|
+
className: "eui-kanban-column-count",
|
|
466
|
+
children: cardCount
|
|
467
|
+
})
|
|
468
|
+
]
|
|
469
|
+
})
|
|
470
|
+
});
|
|
471
|
+
if (columnHeaderTemplate) return /* @__PURE__ */ jsx("div", {
|
|
472
|
+
className: "eui-kanban-column-header",
|
|
473
|
+
role: "heading",
|
|
474
|
+
"aria-level": 3,
|
|
475
|
+
children: columnHeaderTemplate(column, cardCount)
|
|
476
|
+
});
|
|
477
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
478
|
+
className: (0, import_classnames.default)("eui-kanban-column-header", { "eui-kanban-column-over-limit": overLimit }),
|
|
479
|
+
role: "heading",
|
|
480
|
+
"aria-level": 3,
|
|
481
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
482
|
+
className: "eui-kanban-column-header-left",
|
|
483
|
+
children: [
|
|
484
|
+
column.color && /* @__PURE__ */ jsx("span", {
|
|
485
|
+
className: "eui-kanban-column-color",
|
|
486
|
+
style: { backgroundColor: column.color },
|
|
487
|
+
"aria-hidden": "true"
|
|
488
|
+
}),
|
|
489
|
+
column.icon && /* @__PURE__ */ jsx("span", {
|
|
490
|
+
className: "eui-kanban-column-icon",
|
|
491
|
+
"aria-hidden": "true",
|
|
492
|
+
children: column.icon
|
|
493
|
+
}),
|
|
494
|
+
isEditing ? /* @__PURE__ */ jsx("input", {
|
|
495
|
+
ref: inputRef,
|
|
496
|
+
className: "eui-kanban-column-title-input",
|
|
497
|
+
value: editTitle,
|
|
498
|
+
onChange: (e) => setEditTitle(e.target.value),
|
|
499
|
+
onBlur: handleSaveEdit,
|
|
500
|
+
onKeyDown: handleEditKeyDown,
|
|
501
|
+
"aria-label": "Edit column title"
|
|
502
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
503
|
+
className: "eui-kanban-column-title",
|
|
504
|
+
onDoubleClick: handleStartEdit,
|
|
505
|
+
title: allowEditColumn && !column.locked ? "Double-click to edit" : column.title,
|
|
506
|
+
children: column.title
|
|
507
|
+
}),
|
|
508
|
+
showCardCount && /* @__PURE__ */ jsxs("span", {
|
|
509
|
+
className: (0, import_classnames.default)("eui-kanban-column-count", { "eui-kanban-column-count-over": overLimit }),
|
|
510
|
+
"aria-label": `${cardCount} cards${column.limit ? ` of ${column.limit} limit` : ""}`,
|
|
511
|
+
children: [cardCount, showColumnLimit && column.limit ? `/${column.limit}` : ""]
|
|
512
|
+
})
|
|
513
|
+
]
|
|
514
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
515
|
+
className: "eui-kanban-column-header-right",
|
|
516
|
+
children: [allowDeleteColumn && !column.locked && /* @__PURE__ */ jsx("button", {
|
|
517
|
+
className: "eui-kanban-column-action",
|
|
518
|
+
onClick: handleDelete,
|
|
519
|
+
"aria-label": `Delete ${column.title} column`,
|
|
520
|
+
title: "Delete column",
|
|
521
|
+
type: "button",
|
|
522
|
+
children: /* @__PURE__ */ jsx("svg", {
|
|
523
|
+
viewBox: "0 0 16 16",
|
|
524
|
+
fill: "none",
|
|
525
|
+
stroke: "currentColor",
|
|
526
|
+
strokeWidth: "1.5",
|
|
527
|
+
width: "14",
|
|
528
|
+
height: "14",
|
|
529
|
+
"aria-hidden": "true",
|
|
530
|
+
children: /* @__PURE__ */ jsx("path", { d: "M3 5h10M5.5 5V3.5a1 1 0 011-1h3a1 1 0 011 1V5M6.5 7.5v4M9.5 7.5v4M4.5 5l.5 8.5a1 1 0 001 1h4a1 1 0 001-1L11.5 5" })
|
|
531
|
+
})
|
|
532
|
+
}), allowCollapse && /* @__PURE__ */ jsx("button", {
|
|
533
|
+
className: "eui-kanban-column-action",
|
|
534
|
+
onClick: handleCollapse,
|
|
535
|
+
"aria-label": `Collapse ${column.title} column`,
|
|
536
|
+
title: "Collapse column",
|
|
537
|
+
type: "button",
|
|
538
|
+
children: /* @__PURE__ */ jsx("svg", {
|
|
539
|
+
viewBox: "0 0 16 16",
|
|
540
|
+
fill: "none",
|
|
541
|
+
stroke: "currentColor",
|
|
542
|
+
strokeWidth: "1.5",
|
|
543
|
+
width: "14",
|
|
544
|
+
height: "14",
|
|
545
|
+
"aria-hidden": "true",
|
|
546
|
+
children: /* @__PURE__ */ jsx("path", { d: "M4 6l4 4 4-4" })
|
|
547
|
+
})
|
|
548
|
+
})]
|
|
549
|
+
})]
|
|
550
|
+
});
|
|
551
|
+
}
|
|
552
|
+
//#endregion
|
|
553
|
+
//#region src/components/kanban-board/KanbanColumn.tsx
|
|
554
|
+
var kanbanItemType = "kanban-card";
|
|
555
|
+
function KanbanColumn({ column, cards, index, isCollapsed }) {
|
|
556
|
+
const { props } = useKanban();
|
|
557
|
+
const { draggable = true, allowAddCard, columnFooterTemplate, emptyColumnTemplate, maxColumnHeight, onCardMove, onCardReorder, onCardCreate } = props;
|
|
558
|
+
const [isAddingCard, setIsAddingCard] = useState(false);
|
|
559
|
+
const [newCardTitle, setNewCardTitle] = useState("");
|
|
560
|
+
const addInputRef = useRef(null);
|
|
561
|
+
const columnCards = useMemo(() => getCardsForColumn(cards, column.id), [cards, column.id]);
|
|
562
|
+
const overLimit = isColumnOverLimit(column, columnCards.length);
|
|
563
|
+
const handleSortChange = useCallback((newItems, _args, event) => {
|
|
564
|
+
if (!event) return;
|
|
565
|
+
const { source, target } = event;
|
|
566
|
+
if (source && target) if (source.containerId !== target.containerId) {
|
|
567
|
+
const fromColumnId = source.args?.columnId ?? source.item?.columnId;
|
|
568
|
+
onCardMove?.({
|
|
569
|
+
cardId: source.item.id,
|
|
570
|
+
card: source.item,
|
|
571
|
+
fromColumnId,
|
|
572
|
+
toColumnId: column.id,
|
|
573
|
+
fromIndex: source.index,
|
|
574
|
+
toIndex: target.index
|
|
575
|
+
});
|
|
576
|
+
} else onCardReorder?.({
|
|
577
|
+
columnId: column.id,
|
|
578
|
+
cards: newItems
|
|
579
|
+
});
|
|
580
|
+
else if (event.removed) onCardReorder?.({
|
|
581
|
+
columnId: column.id,
|
|
582
|
+
cards: newItems
|
|
583
|
+
});
|
|
584
|
+
}, [
|
|
585
|
+
column.id,
|
|
586
|
+
onCardMove,
|
|
587
|
+
onCardReorder
|
|
588
|
+
]);
|
|
589
|
+
const handleStartAddCard = useCallback(() => {
|
|
590
|
+
setIsAddingCard(true);
|
|
591
|
+
setNewCardTitle("");
|
|
592
|
+
setTimeout(() => addInputRef.current?.focus(), 0);
|
|
593
|
+
}, []);
|
|
594
|
+
const handleAddCard = useCallback(() => {
|
|
595
|
+
const title = newCardTitle.trim();
|
|
596
|
+
if (title) onCardCreate?.({
|
|
597
|
+
columnId: column.id,
|
|
598
|
+
title
|
|
599
|
+
});
|
|
600
|
+
setNewCardTitle("");
|
|
601
|
+
setIsAddingCard(false);
|
|
602
|
+
}, [
|
|
603
|
+
newCardTitle,
|
|
604
|
+
column.id,
|
|
605
|
+
onCardCreate
|
|
606
|
+
]);
|
|
607
|
+
const handleAddCardKeyDown = useCallback((e) => {
|
|
608
|
+
if (e.key === "Enter") handleAddCard();
|
|
609
|
+
else if (e.key === "Escape") {
|
|
610
|
+
setIsAddingCard(false);
|
|
611
|
+
setNewCardTitle("");
|
|
612
|
+
}
|
|
613
|
+
}, [handleAddCard]);
|
|
614
|
+
if (isCollapsed) return /* @__PURE__ */ jsx("div", {
|
|
615
|
+
className: "eui-kanban-column eui-kanban-column-collapsed",
|
|
616
|
+
role: "region",
|
|
617
|
+
"aria-label": `${column.title} column (collapsed)`,
|
|
618
|
+
"data-column-id": column.id,
|
|
619
|
+
children: /* @__PURE__ */ jsx(KanbanColumnHeader, {
|
|
620
|
+
column,
|
|
621
|
+
cardCount: columnCards.length,
|
|
622
|
+
isCollapsed: true
|
|
623
|
+
})
|
|
624
|
+
});
|
|
625
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
626
|
+
className: (0, import_classnames.default)("eui-kanban-column", {
|
|
627
|
+
"eui-kanban-column-over-limit": overLimit,
|
|
628
|
+
"eui-kanban-column-locked": column.locked
|
|
629
|
+
}),
|
|
630
|
+
role: "region",
|
|
631
|
+
"aria-label": `${column.title} column, ${columnCards.length} cards`,
|
|
632
|
+
"data-column-id": column.id,
|
|
633
|
+
"data-column-index": index,
|
|
634
|
+
children: [
|
|
635
|
+
/* @__PURE__ */ jsx(KanbanColumnHeader, {
|
|
636
|
+
column,
|
|
637
|
+
cardCount: columnCards.length,
|
|
638
|
+
isCollapsed: false
|
|
639
|
+
}),
|
|
640
|
+
/* @__PURE__ */ jsx("div", {
|
|
641
|
+
className: "eui-kanban-column-body",
|
|
642
|
+
style: maxColumnHeight ? { maxHeight: maxColumnHeight } : void 0,
|
|
643
|
+
children: draggable && !column.locked ? /* @__PURE__ */ jsx(Sortable, {
|
|
644
|
+
items: columnCards,
|
|
645
|
+
itemType: kanbanItemType,
|
|
646
|
+
accept: kanbanItemType,
|
|
647
|
+
args: { columnId: column.id },
|
|
648
|
+
className: "eui-kanban-sortable",
|
|
649
|
+
onChange: handleSortChange,
|
|
650
|
+
showPlaceholder: true,
|
|
651
|
+
placeholder: columnCards.length === 0 && emptyColumnTemplate ? emptyColumnTemplate(column) : /* @__PURE__ */ jsx("div", {
|
|
652
|
+
className: "eui-kanban-drop-placeholder",
|
|
653
|
+
role: "presentation",
|
|
654
|
+
children: "Drop here"
|
|
655
|
+
}),
|
|
656
|
+
children: (card, idx) => /* @__PURE__ */ jsx(KanbanCard, {
|
|
657
|
+
card,
|
|
658
|
+
column,
|
|
659
|
+
index: idx
|
|
660
|
+
}, card.id)
|
|
661
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
662
|
+
className: "eui-kanban-card-list",
|
|
663
|
+
children: columnCards.length === 0 && emptyColumnTemplate ? emptyColumnTemplate(column) : columnCards.length === 0 ? /* @__PURE__ */ jsx("div", {
|
|
664
|
+
className: "eui-kanban-empty",
|
|
665
|
+
children: "No cards"
|
|
666
|
+
}) : columnCards.map((card, idx) => /* @__PURE__ */ jsx(KanbanCard, {
|
|
667
|
+
card,
|
|
668
|
+
column,
|
|
669
|
+
index: idx
|
|
670
|
+
}, card.id))
|
|
671
|
+
})
|
|
672
|
+
}),
|
|
673
|
+
allowAddCard && !column.locked && /* @__PURE__ */ jsx("div", {
|
|
674
|
+
className: "eui-kanban-column-footer",
|
|
675
|
+
children: isAddingCard ? /* @__PURE__ */ jsx("div", {
|
|
676
|
+
className: "eui-kanban-add-card-form",
|
|
677
|
+
children: /* @__PURE__ */ jsx("input", {
|
|
678
|
+
ref: addInputRef,
|
|
679
|
+
className: "eui-kanban-add-card-input",
|
|
680
|
+
value: newCardTitle,
|
|
681
|
+
onChange: (e) => setNewCardTitle(e.target.value),
|
|
682
|
+
onKeyDown: handleAddCardKeyDown,
|
|
683
|
+
onBlur: handleAddCard,
|
|
684
|
+
placeholder: "Enter card title...",
|
|
685
|
+
"aria-label": "New card title"
|
|
686
|
+
})
|
|
687
|
+
}) : /* @__PURE__ */ jsxs("button", {
|
|
688
|
+
className: "eui-kanban-add-card-btn",
|
|
689
|
+
onClick: handleStartAddCard,
|
|
690
|
+
type: "button",
|
|
691
|
+
"aria-label": `Add card to ${column.title}`,
|
|
692
|
+
children: [/* @__PURE__ */ jsx("svg", {
|
|
693
|
+
viewBox: "0 0 16 16",
|
|
694
|
+
fill: "none",
|
|
695
|
+
stroke: "currentColor",
|
|
696
|
+
strokeWidth: "1.5",
|
|
697
|
+
width: "14",
|
|
698
|
+
height: "14",
|
|
699
|
+
"aria-hidden": "true",
|
|
700
|
+
children: /* @__PURE__ */ jsx("path", { d: "M8 3v10M3 8h10" })
|
|
701
|
+
}), "Add card"]
|
|
702
|
+
})
|
|
703
|
+
}),
|
|
704
|
+
columnFooterTemplate && /* @__PURE__ */ jsx("div", {
|
|
705
|
+
className: "eui-kanban-column-custom-footer",
|
|
706
|
+
children: columnFooterTemplate(column, columnCards)
|
|
707
|
+
})
|
|
708
|
+
]
|
|
709
|
+
});
|
|
710
|
+
}
|
|
711
|
+
//#endregion
|
|
712
|
+
//#region src/components/kanban-board/KanbanBoard.tsx
|
|
713
|
+
var columnItemType = "kanban-column";
|
|
714
|
+
function KanbanBoard(props) {
|
|
715
|
+
const { columns, cards, layout = "horizontal", className, columnWidth, columnMinHeight, columnDraggable = false, allowAddColumn, showSearch, stickyColumnHeaders, onCardMove, onCardReorder, onColumnReorder, onColumnCreate, onSearchChange } = props;
|
|
716
|
+
const isControlled = !!(onCardMove || onCardReorder);
|
|
717
|
+
const [internalCards, setInternalCards] = useState(cards);
|
|
718
|
+
useEffect(() => {
|
|
719
|
+
setInternalCards(cards);
|
|
720
|
+
}, [cards]);
|
|
721
|
+
const activeCards = isControlled ? cards : internalCards;
|
|
722
|
+
const handleInternalCardMove = useCallback((event) => {
|
|
723
|
+
if (onCardMove) {
|
|
724
|
+
onCardMove(event);
|
|
725
|
+
return;
|
|
726
|
+
}
|
|
727
|
+
setInternalCards((prev) => {
|
|
728
|
+
const withoutCard = prev.filter((c) => c.id !== event.cardId);
|
|
729
|
+
const targetCards = withoutCard.filter((c) => c.columnId === event.toColumnId).sort((a, b) => a.order - b.order);
|
|
730
|
+
const otherCards = withoutCard.filter((c) => c.columnId !== event.toColumnId);
|
|
731
|
+
const movedCard = {
|
|
732
|
+
...event.card,
|
|
733
|
+
columnId: event.toColumnId,
|
|
734
|
+
order: event.toIndex
|
|
735
|
+
};
|
|
736
|
+
targetCards.splice(event.toIndex, 0, movedCard);
|
|
737
|
+
const reordered = targetCards.map((c, i) => ({
|
|
738
|
+
...c,
|
|
739
|
+
order: i
|
|
740
|
+
}));
|
|
741
|
+
return [...otherCards, ...reordered];
|
|
742
|
+
});
|
|
743
|
+
}, [onCardMove]);
|
|
744
|
+
const handleInternalCardReorder = useCallback((event) => {
|
|
745
|
+
if (onCardReorder) {
|
|
746
|
+
onCardReorder(event);
|
|
747
|
+
return;
|
|
748
|
+
}
|
|
749
|
+
setInternalCards((prev) => {
|
|
750
|
+
const other = prev.filter((c) => c.columnId !== event.columnId);
|
|
751
|
+
const reordered = event.cards.map((c, i) => ({
|
|
752
|
+
...c,
|
|
753
|
+
order: i
|
|
754
|
+
}));
|
|
755
|
+
return [...other, ...reordered];
|
|
756
|
+
});
|
|
757
|
+
}, [onCardReorder]);
|
|
758
|
+
const [collapsedColumns, setCollapsedColumns] = useState(() => {
|
|
759
|
+
const initial = /* @__PURE__ */ new Set();
|
|
760
|
+
columns.forEach((col) => {
|
|
761
|
+
if (col.collapsed) initial.add(col.id);
|
|
762
|
+
});
|
|
763
|
+
return initial;
|
|
764
|
+
});
|
|
765
|
+
const [searchFilter, setSearchFilterState] = useState({});
|
|
766
|
+
const [editingColumnId, setEditingColumnId] = useState(null);
|
|
767
|
+
const [isAddingColumn, setIsAddingColumn] = useState(false);
|
|
768
|
+
const [newColumnTitle, setNewColumnTitle] = useState("");
|
|
769
|
+
const addColumnInputRef = useRef(null);
|
|
770
|
+
const toggleCollapse = useCallback((columnId) => {
|
|
771
|
+
setCollapsedColumns((prev) => {
|
|
772
|
+
const next = new Set(prev);
|
|
773
|
+
const newState = !next.has(columnId);
|
|
774
|
+
if (newState) next.add(columnId);
|
|
775
|
+
else next.delete(columnId);
|
|
776
|
+
props.onColumnCollapse?.(columnId, newState);
|
|
777
|
+
return next;
|
|
778
|
+
});
|
|
779
|
+
}, [props.onColumnCollapse]);
|
|
780
|
+
const setSearchFilter = useCallback((filter) => {
|
|
781
|
+
setSearchFilterState(filter);
|
|
782
|
+
onSearchChange?.(filter);
|
|
783
|
+
}, [onSearchChange]);
|
|
784
|
+
const filteredCards = useMemo(() => filterCards(activeCards, searchFilter), [activeCards, searchFilter]);
|
|
785
|
+
const internalProps = useMemo(() => ({
|
|
786
|
+
...props,
|
|
787
|
+
onCardMove: handleInternalCardMove,
|
|
788
|
+
onCardReorder: handleInternalCardReorder
|
|
789
|
+
}), [
|
|
790
|
+
props,
|
|
791
|
+
handleInternalCardMove,
|
|
792
|
+
handleInternalCardReorder
|
|
793
|
+
]);
|
|
794
|
+
const contextValue = useMemo(() => ({
|
|
795
|
+
props: internalProps,
|
|
796
|
+
collapsedColumns,
|
|
797
|
+
toggleCollapse,
|
|
798
|
+
searchFilter,
|
|
799
|
+
setSearchFilter,
|
|
800
|
+
editingColumnId,
|
|
801
|
+
setEditingColumnId
|
|
802
|
+
}), [
|
|
803
|
+
internalProps,
|
|
804
|
+
collapsedColumns,
|
|
805
|
+
toggleCollapse,
|
|
806
|
+
searchFilter,
|
|
807
|
+
setSearchFilter,
|
|
808
|
+
editingColumnId
|
|
809
|
+
]);
|
|
810
|
+
const handleColumnReorder = useCallback((newColumns, _args, _event) => {
|
|
811
|
+
onColumnReorder?.({ columns: newColumns });
|
|
812
|
+
}, [onColumnReorder]);
|
|
813
|
+
const handleStartAddColumn = useCallback(() => {
|
|
814
|
+
setIsAddingColumn(true);
|
|
815
|
+
setNewColumnTitle("");
|
|
816
|
+
setTimeout(() => addColumnInputRef.current?.focus(), 0);
|
|
817
|
+
}, []);
|
|
818
|
+
const handleAddColumn = useCallback(() => {
|
|
819
|
+
const title = newColumnTitle.trim();
|
|
820
|
+
if (title) onColumnCreate?.({ title });
|
|
821
|
+
setNewColumnTitle("");
|
|
822
|
+
setIsAddingColumn(false);
|
|
823
|
+
}, [newColumnTitle, onColumnCreate]);
|
|
824
|
+
const handleAddColumnKeyDown = useCallback((e) => {
|
|
825
|
+
if (e.key === "Enter") handleAddColumn();
|
|
826
|
+
else if (e.key === "Escape") {
|
|
827
|
+
setIsAddingColumn(false);
|
|
828
|
+
setNewColumnTitle("");
|
|
829
|
+
}
|
|
830
|
+
}, [handleAddColumn]);
|
|
831
|
+
const handleSearchInput = useCallback((e) => {
|
|
832
|
+
setSearchFilter({
|
|
833
|
+
...searchFilter,
|
|
834
|
+
query: e.target.value || void 0
|
|
835
|
+
});
|
|
836
|
+
}, [searchFilter, setSearchFilter]);
|
|
837
|
+
const columnStyle = useMemo(() => {
|
|
838
|
+
const style = {};
|
|
839
|
+
if (columnWidth) {
|
|
840
|
+
style.width = typeof columnWidth === "number" ? `${columnWidth}px` : columnWidth;
|
|
841
|
+
style.minWidth = style.width;
|
|
842
|
+
style.maxWidth = style.width;
|
|
843
|
+
}
|
|
844
|
+
if (columnMinHeight) style.minHeight = typeof columnMinHeight === "number" ? `${columnMinHeight}px` : columnMinHeight;
|
|
845
|
+
return style;
|
|
846
|
+
}, [columnWidth, columnMinHeight]);
|
|
847
|
+
const collapsedStyle = useMemo(() => ({
|
|
848
|
+
width: "40px",
|
|
849
|
+
minWidth: "40px",
|
|
850
|
+
maxWidth: "40px",
|
|
851
|
+
flexShrink: 0
|
|
852
|
+
}), []);
|
|
853
|
+
const renderColumn = (col, idx) => {
|
|
854
|
+
const isCollapsed = collapsedColumns.has(col.id);
|
|
855
|
+
return /* @__PURE__ */ jsx("div", {
|
|
856
|
+
className: (0, import_classnames.default)("eui-kanban-column-wrapper", { "eui-kanban-column-wrapper-collapsed": isCollapsed }),
|
|
857
|
+
style: isCollapsed ? collapsedStyle : columnStyle,
|
|
858
|
+
children: /* @__PURE__ */ jsx(KanbanColumn, {
|
|
859
|
+
column: col,
|
|
860
|
+
cards: filteredCards,
|
|
861
|
+
index: idx,
|
|
862
|
+
isCollapsed
|
|
863
|
+
})
|
|
864
|
+
}, col.id);
|
|
865
|
+
};
|
|
866
|
+
return /* @__PURE__ */ jsx(KanbanContext.Provider, {
|
|
867
|
+
value: contextValue,
|
|
868
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
869
|
+
className: (0, import_classnames.default)("eui-kanban-board", `eui-kanban-layout-${layout}`, { "eui-kanban-sticky-headers": stickyColumnHeaders }, className),
|
|
870
|
+
role: "region",
|
|
871
|
+
"aria-label": "Kanban board",
|
|
872
|
+
children: [showSearch && /* @__PURE__ */ jsx("div", {
|
|
873
|
+
className: "eui-kanban-search",
|
|
874
|
+
role: "search",
|
|
875
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
876
|
+
className: "eui-kanban-search-wrapper",
|
|
877
|
+
children: [
|
|
878
|
+
/* @__PURE__ */ jsxs("svg", {
|
|
879
|
+
className: "eui-kanban-search-icon",
|
|
880
|
+
viewBox: "0 0 16 16",
|
|
881
|
+
fill: "none",
|
|
882
|
+
stroke: "currentColor",
|
|
883
|
+
strokeWidth: "1.5",
|
|
884
|
+
width: "14",
|
|
885
|
+
height: "14",
|
|
886
|
+
"aria-hidden": "true",
|
|
887
|
+
children: [/* @__PURE__ */ jsx("circle", {
|
|
888
|
+
cx: "6.5",
|
|
889
|
+
cy: "6.5",
|
|
890
|
+
r: "4.5"
|
|
891
|
+
}), /* @__PURE__ */ jsx("path", { d: "M10 10l4 4" })]
|
|
892
|
+
}),
|
|
893
|
+
/* @__PURE__ */ jsx("input", {
|
|
894
|
+
className: "eui-kanban-search-input",
|
|
895
|
+
type: "text",
|
|
896
|
+
placeholder: "Search cards...",
|
|
897
|
+
value: searchFilter.query ?? "",
|
|
898
|
+
onChange: handleSearchInput,
|
|
899
|
+
"aria-label": "Search kanban cards"
|
|
900
|
+
}),
|
|
901
|
+
searchFilter.query && /* @__PURE__ */ jsx("button", {
|
|
902
|
+
className: "eui-kanban-search-clear",
|
|
903
|
+
onClick: () => setSearchFilter({
|
|
904
|
+
...searchFilter,
|
|
905
|
+
query: void 0
|
|
906
|
+
}),
|
|
907
|
+
"aria-label": "Clear search",
|
|
908
|
+
type: "button",
|
|
909
|
+
children: /* @__PURE__ */ jsx("svg", {
|
|
910
|
+
viewBox: "0 0 16 16",
|
|
911
|
+
fill: "none",
|
|
912
|
+
stroke: "currentColor",
|
|
913
|
+
strokeWidth: "1.5",
|
|
914
|
+
width: "12",
|
|
915
|
+
height: "12",
|
|
916
|
+
"aria-hidden": "true",
|
|
917
|
+
children: /* @__PURE__ */ jsx("path", { d: "M4 4l8 8M12 4l-8 8" })
|
|
918
|
+
})
|
|
919
|
+
})
|
|
920
|
+
]
|
|
921
|
+
})
|
|
922
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
923
|
+
className: "eui-kanban-columns",
|
|
924
|
+
children: [columnDraggable ? /* @__PURE__ */ jsx(Sortable, {
|
|
925
|
+
items: columns,
|
|
926
|
+
itemType: columnItemType,
|
|
927
|
+
accept: columnItemType,
|
|
928
|
+
className: "eui-kanban-columns-sortable",
|
|
929
|
+
onChange: handleColumnReorder,
|
|
930
|
+
children: (col, idx) => renderColumn(col, idx)
|
|
931
|
+
}) : columns.map((col, idx) => renderColumn(col, idx)), allowAddColumn && /* @__PURE__ */ jsx("div", {
|
|
932
|
+
className: "eui-kanban-column-wrapper eui-kanban-add-column-wrapper",
|
|
933
|
+
children: isAddingColumn ? /* @__PURE__ */ jsx("div", {
|
|
934
|
+
className: "eui-kanban-add-column-form",
|
|
935
|
+
children: /* @__PURE__ */ jsx("input", {
|
|
936
|
+
ref: addColumnInputRef,
|
|
937
|
+
className: "eui-kanban-add-column-input",
|
|
938
|
+
value: newColumnTitle,
|
|
939
|
+
onChange: (e) => setNewColumnTitle(e.target.value),
|
|
940
|
+
onKeyDown: handleAddColumnKeyDown,
|
|
941
|
+
onBlur: handleAddColumn,
|
|
942
|
+
placeholder: "Column title...",
|
|
943
|
+
"aria-label": "New column title"
|
|
944
|
+
})
|
|
945
|
+
}) : /* @__PURE__ */ jsxs("button", {
|
|
946
|
+
className: "eui-kanban-add-column-btn",
|
|
947
|
+
onClick: handleStartAddColumn,
|
|
948
|
+
type: "button",
|
|
949
|
+
"aria-label": "Add new column",
|
|
950
|
+
children: [/* @__PURE__ */ jsx("svg", {
|
|
951
|
+
viewBox: "0 0 16 16",
|
|
952
|
+
fill: "none",
|
|
953
|
+
stroke: "currentColor",
|
|
954
|
+
strokeWidth: "1.5",
|
|
955
|
+
width: "16",
|
|
956
|
+
height: "16",
|
|
957
|
+
"aria-hidden": "true",
|
|
958
|
+
children: /* @__PURE__ */ jsx("path", { d: "M8 3v10M3 8h10" })
|
|
959
|
+
}), "Add Column"]
|
|
960
|
+
})
|
|
961
|
+
})]
|
|
962
|
+
})]
|
|
963
|
+
})
|
|
964
|
+
});
|
|
965
|
+
}
|
|
966
|
+
//#endregion
|
|
967
|
+
export { KanbanBoard };
|