@stll/ui 0.12.1 → 0.14.0
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/button-variants.d.ts +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/inspector/dock.d.ts +3 -1
- package/dist/inspector/dock.js +10 -6
- package/dist/inspector/index.d.ts +2 -2
- package/dist/inspector/index.js +2 -2
- package/dist/inspector/pane-width.d.ts +16 -2
- package/dist/inspector/pane-width.js +18 -3
- package/dist/inspector/use-pane-width.js +9 -5
- package/dist/kanban/index.d.ts +2 -2
- package/dist/kanban/matrix.d.ts +28 -6
- package/dist/kanban/matrix.js +39 -12
- package/dist/kanban/sortable-interactions.d.ts +4 -2
- package/dist/kanban/sortable-interactions.js +3 -3
- package/dist/kanban/subgroup-board.d.ts +4 -2
- package/dist/kanban/subgroup-board.js +51 -33
- package/dist/lib/control-size.d.ts +1 -1
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
declare const buttonAccessibleDisabledClass = "cursor-not-allowed opacity-64";
|
|
12
12
|
declare const buttonVariants: (props?: ({
|
|
13
|
-
size?: "
|
|
13
|
+
size?: "default" | "icon" | "icon-lg" | "icon-sm" | "icon-xl" | "icon-xs" | "lg" | "sm" | "xl" | "xs" | null | undefined;
|
|
14
14
|
variant?: "link" | "default" | "destructive" | "destructive-outline" | "ghost" | "outline" | "secondary" | null | undefined;
|
|
15
15
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
16
16
|
//#endregion
|
package/dist/index.d.ts
CHANGED
|
@@ -64,7 +64,7 @@ import { Inspector, InspectorActions, InspectorContent, InspectorDescription, In
|
|
|
64
64
|
import { InspectorDock } from "./inspector/dock.js";
|
|
65
65
|
import { InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs } from "./inspector/tabs.js";
|
|
66
66
|
import { PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX } from "./inspector/layout-tokens.js";
|
|
67
|
-
import { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed } from "./inspector/pane-width.js";
|
|
67
|
+
import { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed } from "./inspector/pane-width.js";
|
|
68
68
|
import { INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, parsePersistedPaneWidth, resolveDragWidth, resolveKeyboardWidth, useInspectorPaneWidth } from "./inspector/use-pane-width.js";
|
|
69
69
|
import "./inspector/index.js";
|
|
70
70
|
import { KanbanCardFieldSelection, selectKanbanCardFieldIds } from "./kanban/card-properties.js";
|
|
@@ -76,7 +76,7 @@ import { KANBAN_DIRECTIONS, KANBAN_HORIZONTAL_EDGES, KanbanDirection, KanbanHori
|
|
|
76
76
|
import { KANBAN_BOARD_AUTO_SCROLL_SOURCES, RegisterKanbanBoardAutoScrollOptions, RegisterKanbanCardDragOptions, registerKanbanBoardAutoScroll, registerKanbanCardDrag } from "./kanban/drag-interactions.js";
|
|
77
77
|
import { ColorVariants, OptionColor, emptyColor, optionColors, resolveOptionColor } from "./lib/option-color.js";
|
|
78
78
|
import { KanbanBuiltInGroup, KanbanGroup, KanbanGroupOption, KanbanGrouping, KanbanSchema, ResolveKanbanGroupingParams, getKanbanGroupingPropertyId, getKanbanGroups, isKanbanGroupingRenderable, resolveKanbanGroupOptions, resolveKanbanGrouping, selectKanbanRows } from "./kanban/grouping.js";
|
|
79
|
-
import { BuildKanbanBoardMatrixParams, CreateKanbanDropIntentParams, KANBAN_BOARD_AXES, KanbanBoardAxis, KanbanBoardCell, KanbanBoardCoordinate, KanbanBoardLane, KanbanBoardMatrix, KanbanDropAxisChange, KanbanDropIntent, OrderKanbanCellsByColumnsParams, ResolveKanbanGroupValueParams, buildKanbanBoardMatrix, createKanbanDropIntent, orderKanbanCellsByColumns } from "./kanban/matrix.js";
|
|
79
|
+
import { BuildKanbanBoardMatrixParams, CreateKanbanDropIntentParams, KANBAN_BOARD_AXES, KanbanBoardAxis, KanbanBoardCell, KanbanBoardColumn, KanbanBoardCoordinate, KanbanBoardDestination, KanbanBoardLane, KanbanBoardMatrix, KanbanDropAxisChange, KanbanDropIntent, OrderKanbanCellsByColumnsParams, ResolveKanbanGroupValueParams, buildKanbanBoardMatrix, createKanbanDropIntent, orderKanbanCellsByColumns } from "./kanban/matrix.js";
|
|
80
80
|
import { KanbanSubgroupBoard, KanbanSubgroupBoardProps, KanbanSubgroupCellContext, KanbanSubgroupColumnHeaderContext, KanbanSubgroupLaneIdentityContext } from "./kanban/subgroup-board.js";
|
|
81
81
|
import { KANBAN_VIRTUAL_CELL_PAGINATION, KanbanVirtualCell, KanbanVirtualCellPagination, KanbanVirtualCellProps, KanbanVirtualCellSortableContext } from "./kanban/virtual-cell.js";
|
|
82
82
|
import "./kanban/index.js";
|
|
@@ -90,4 +90,4 @@ import { ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffS
|
|
|
90
90
|
import { ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone } from "./review/review-out-of-date-notice.js";
|
|
91
91
|
import { ReviewStatusBadge, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant } from "./review/review-status-badge.js";
|
|
92
92
|
import { ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusDot, reviewSeverityTone } from "./review/review-severity-dot.js";
|
|
93
|
-
export { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, Accordion, AccordionPanel as AccordionContent, AccordionPanel, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogBackdrop, AlertDialogBackdrop as AlertDialogOverlay, AlertDialogClose, AlertDialogPopup as AlertDialogContent, AlertDialogPopup, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPanel, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AnchoredToastProvider, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator, Avatar, AvatarFallback, AvatarImage, BOARD_DRAG_OVERLAY_Z_INDEX, type BidiDirection, BidiText, type BidiTextProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, type BuildKanbanBoardMatrixParams, Button, CONTROL_SIZE, CONTROL_SIZES, CalendarCell, type CalendarDateRange, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow, Checkbox, ColorPicker, ColorPickerContent, type ColorPickerContentProps, type ColorPickerProps, type ColorPreset, ColorVariants, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut, type ControlSize, type CreateKanbanDropIntentParams, DEFAULT_PRESETS, DataTable, type DataTableAriaSort, type DataTableColumn, type DataTableProps, type DataTableRowAction, DatePickerPopover, type DatePickerPopoverProps, DestructiveActionConfirmation, DestructiveConfirmDialog, type DestructiveConfirmDialogProps, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogHeader, DialogPanel, DialogPortal, DialogTitle, DialogTrigger, DialogViewport, DirectionalIcon, DiscordLogoIcon, Menu as DropdownMenu, Menu, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuCheckboxItem, MenuPopup as DropdownMenuContent, MenuPopup, MenuCreateHandle as DropdownMenuCreateHandle, MenuCreateHandle, MenuGroup as DropdownMenuGroup, MenuGroup, MenuItem as DropdownMenuItem, MenuItem, MenuGroupLabel as DropdownMenuLabel, MenuGroupLabel, MenuPortal as DropdownMenuPortal, MenuPortal, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuRadioItem, MenuSeparator as DropdownMenuSeparator, MenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuShortcut, MenuSub as DropdownMenuSub, MenuSub, MenuSubPopup as DropdownMenuSubContent, MenuSubPopup, MenuSubTrigger as DropdownMenuSubTrigger, MenuSubTrigger, MenuTrigger as DropdownMenuTrigger, MenuTrigger, Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity, Form, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GitHubLogoIcon, HexColorPicker, type HexColorPickerProps, PreviewCard as HoverCard, PreviewCard, PreviewCardPopup as HoverCardContent, PreviewCardPopup, PreviewCardTrigger as HoverCardTrigger, PreviewCardTrigger, INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs, InspectorTitle, KANBAN_BOARD_AUTO_SCROLL_OPTIONS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_BOARD_COLLISION_DETECTION, KANBAN_DIRECTIONS, KANBAN_DRAG_OVERLAY_Z_INDEX, KANBAN_HORIZONTAL_EDGES, KANBAN_MOUSE_ACTIVATION_DISTANCE, KANBAN_SORTABLE_ACTIVATION_MODES, KANBAN_TOUCH_ACTIVATION_CONSTRAINT, KANBAN_VIRTUAL_CELL_PAGINATION, type KanbanBoardAxis, type KanbanBoardCell, type KanbanBoardCoordinate, type KanbanBoardLane, type KanbanBoardMatrix, type KanbanBuiltInGroup, KanbanCardDragSurface, type KanbanCardDragSurfaceProps, type KanbanCardFieldSelection, KanbanCardShell, type KanbanCardShellProps, type KanbanCellVirtualNavigation, KanbanColumnHeader, type KanbanColumnHeaderProps, type KanbanDirection, type KanbanDragCancelEvent, type KanbanDragEndEvent, KanbanDragHandle, type KanbanDragHandleProps, type KanbanDragOverEvent, type KanbanDragStartEvent, type KanbanDropAxisChange, type KanbanDropIntent, type KanbanGroup, type KanbanGroupOption, type KanbanGrouping, type KanbanHorizontalEdge, type KanbanSchema, type KanbanSortableActivationMode, type KanbanSortableBindings, KanbanSortableBoard, type KanbanSortableBoardProps, type KanbanSortableCellPosition, KanbanSortableColumns, type KanbanSortableColumnsProps, KanbanSortableList, type KanbanSortableListProps, KanbanSubgroupBoard, type KanbanSubgroupBoardProps, type KanbanSubgroupCellContext, type KanbanSubgroupColumnHeaderContext, type KanbanSubgroupLaneIdentityContext, KanbanVirtualCell, type KanbanVirtualCellPagination, type KanbanVirtualCellProps, type KanbanVirtualCellSortableContext, type KanbanVirtualScrollRequest, Label, MenuPreviewLayout, OVERLAY_LAYER_CLASS_NAMES, OptionColor, type OrderKanbanCellsByColumnsParams, OutlineItem, OutlineRail, OutlineRailProps, OverlayLayer, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, type RegisterKanbanBoardAutoScrollOptions, type RegisterKanbanCardDragOptions, type ResolveKanbanGroupValueParams, type ResolveKanbanGroupingParams, ResourceCalendar, type ResourceCalendarColumn, type ResourceCalendarEntry, type ResourceCalendarEntryTone, type ResourceCalendarLaneLayout, type ResourceCalendarLanePlacement, type ResourceCalendarPlacement, type ResourceCalendarResource, ReviewAuthorAvatar, ReviewCommentAuthor, ReviewCommentCard, ReviewDecisionActions, ReviewDecisionSize, ReviewDecisionState, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffSegmentType, ReviewDiffText, ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone, ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusBadge, ReviewStatusDot, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, ScrollToTopProps, SecretInput, type SecretInputProps, SegmentedIconToggle, Select, SelectPopup as SelectContent, SelectPopup, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBackdrop, SheetBackdrop as SheetOverlay, SheetClose, SheetPopup as SheetContent, SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, type SheetSide, SheetTitle, SheetTrigger, Skeleton, type SortDirection, SortableHead, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, TableBody, TableCaption, TableCell, type TableColumnCapabilities, type TableColumnDescriptor, TableFooter, TableHead, TableHeader, TableRow, type TableSchema, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, type TextareaProps, type ToastPosition, ToastProvider, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger, UNKNOWN_AUTHOR_LABEL, type UseKanbanDropTargetOptions, type UseKanbanSortableOptions, UserText, type WorkspaceCompactNavigation, WorkspaceEndRail, type WorkspaceEndRailChatAction, type WorkspaceEndRailProps, type WorkspaceNavigation, WorkspaceShell, type WorkspaceShellProps, type WorkspaceTopBarContext, assertConsecutiveCalendarDates, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, findTableColumn, getFirstWeekday, getInitials, getKanbanGroupingPropertyId, getKanbanGroups, getKanbanHorizontalEdge, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, kanbanKeyboardCoordinates, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, parsePersistedPaneWidth, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sortableColumnIds, stellaToast, tableColumnIds, tableColumnSizing, useComboboxFilter, useContentDir, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useKanbanDropTarget, useKanbanSortable, useKanbanSortableSensors, useLatest, useViewportWidth, visibleColumnIds };
|
|
93
|
+
export { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, Accordion, AccordionPanel as AccordionContent, AccordionPanel, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogBackdrop, AlertDialogBackdrop as AlertDialogOverlay, AlertDialogClose, AlertDialogPopup as AlertDialogContent, AlertDialogPopup, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPanel, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AnchoredToastProvider, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator, Avatar, AvatarFallback, AvatarImage, BOARD_DRAG_OVERLAY_Z_INDEX, type BidiDirection, BidiText, type BidiTextProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, type BuildKanbanBoardMatrixParams, Button, CONTROL_SIZE, CONTROL_SIZES, CalendarCell, type CalendarDateRange, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow, Checkbox, ColorPicker, ColorPickerContent, type ColorPickerContentProps, type ColorPickerProps, type ColorPreset, ColorVariants, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut, type ControlSize, type CreateKanbanDropIntentParams, DEFAULT_PRESETS, DataTable, type DataTableAriaSort, type DataTableColumn, type DataTableProps, type DataTableRowAction, DatePickerPopover, type DatePickerPopoverProps, DestructiveActionConfirmation, DestructiveConfirmDialog, type DestructiveConfirmDialogProps, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogHeader, DialogPanel, DialogPortal, DialogTitle, DialogTrigger, DialogViewport, DirectionalIcon, DiscordLogoIcon, Menu as DropdownMenu, Menu, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuCheckboxItem, MenuPopup as DropdownMenuContent, MenuPopup, MenuCreateHandle as DropdownMenuCreateHandle, MenuCreateHandle, MenuGroup as DropdownMenuGroup, MenuGroup, MenuItem as DropdownMenuItem, MenuItem, MenuGroupLabel as DropdownMenuLabel, MenuGroupLabel, MenuPortal as DropdownMenuPortal, MenuPortal, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuRadioItem, MenuSeparator as DropdownMenuSeparator, MenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuShortcut, MenuSub as DropdownMenuSub, MenuSub, MenuSubPopup as DropdownMenuSubContent, MenuSubPopup, MenuSubTrigger as DropdownMenuSubTrigger, MenuSubTrigger, MenuTrigger as DropdownMenuTrigger, MenuTrigger, Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity, Form, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GitHubLogoIcon, HexColorPicker, type HexColorPickerProps, PreviewCard as HoverCard, PreviewCard, PreviewCardPopup as HoverCardContent, PreviewCardPopup, PreviewCardTrigger as HoverCardTrigger, PreviewCardTrigger, INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs, InspectorTitle, KANBAN_BOARD_AUTO_SCROLL_OPTIONS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_BOARD_COLLISION_DETECTION, KANBAN_DIRECTIONS, KANBAN_DRAG_OVERLAY_Z_INDEX, KANBAN_HORIZONTAL_EDGES, KANBAN_MOUSE_ACTIVATION_DISTANCE, KANBAN_SORTABLE_ACTIVATION_MODES, KANBAN_TOUCH_ACTIVATION_CONSTRAINT, KANBAN_VIRTUAL_CELL_PAGINATION, type KanbanBoardAxis, type KanbanBoardCell, type KanbanBoardColumn, type KanbanBoardCoordinate, type KanbanBoardDestination, type KanbanBoardLane, type KanbanBoardMatrix, type KanbanBuiltInGroup, KanbanCardDragSurface, type KanbanCardDragSurfaceProps, type KanbanCardFieldSelection, KanbanCardShell, type KanbanCardShellProps, type KanbanCellVirtualNavigation, KanbanColumnHeader, type KanbanColumnHeaderProps, type KanbanDirection, type KanbanDragCancelEvent, type KanbanDragEndEvent, KanbanDragHandle, type KanbanDragHandleProps, type KanbanDragOverEvent, type KanbanDragStartEvent, type KanbanDropAxisChange, type KanbanDropIntent, type KanbanGroup, type KanbanGroupOption, type KanbanGrouping, type KanbanHorizontalEdge, type KanbanSchema, type KanbanSortableActivationMode, type KanbanSortableBindings, KanbanSortableBoard, type KanbanSortableBoardProps, type KanbanSortableCellPosition, KanbanSortableColumns, type KanbanSortableColumnsProps, KanbanSortableList, type KanbanSortableListProps, KanbanSubgroupBoard, type KanbanSubgroupBoardProps, type KanbanSubgroupCellContext, type KanbanSubgroupColumnHeaderContext, type KanbanSubgroupLaneIdentityContext, KanbanVirtualCell, type KanbanVirtualCellPagination, type KanbanVirtualCellProps, type KanbanVirtualCellSortableContext, type KanbanVirtualScrollRequest, Label, MenuPreviewLayout, OVERLAY_LAYER_CLASS_NAMES, OptionColor, type OrderKanbanCellsByColumnsParams, OutlineItem, OutlineRail, OutlineRailProps, OverlayLayer, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, type RegisterKanbanBoardAutoScrollOptions, type RegisterKanbanCardDragOptions, type ResolveKanbanGroupValueParams, type ResolveKanbanGroupingParams, ResourceCalendar, type ResourceCalendarColumn, type ResourceCalendarEntry, type ResourceCalendarEntryTone, type ResourceCalendarLaneLayout, type ResourceCalendarLanePlacement, type ResourceCalendarPlacement, type ResourceCalendarResource, ReviewAuthorAvatar, ReviewCommentAuthor, ReviewCommentCard, ReviewDecisionActions, ReviewDecisionSize, ReviewDecisionState, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffSegmentType, ReviewDiffText, ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone, ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusBadge, ReviewStatusDot, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, ScrollToTopProps, SecretInput, type SecretInputProps, SegmentedIconToggle, Select, SelectPopup as SelectContent, SelectPopup, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBackdrop, SheetBackdrop as SheetOverlay, SheetClose, SheetPopup as SheetContent, SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, type SheetSide, SheetTitle, SheetTrigger, Skeleton, type SortDirection, SortableHead, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, TableBody, TableCaption, TableCell, type TableColumnCapabilities, type TableColumnDescriptor, TableFooter, TableHead, TableHeader, TableRow, type TableSchema, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, type TextareaProps, type ToastPosition, ToastProvider, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger, UNKNOWN_AUTHOR_LABEL, type UseKanbanDropTargetOptions, type UseKanbanSortableOptions, UserText, type WorkspaceCompactNavigation, WorkspaceEndRail, type WorkspaceEndRailChatAction, type WorkspaceEndRailProps, type WorkspaceNavigation, WorkspaceShell, type WorkspaceShellProps, type WorkspaceTopBarContext, assertConsecutiveCalendarDates, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, findTableColumn, getFirstWeekday, getInitials, getKanbanGroupingPropertyId, getKanbanGroups, getKanbanHorizontalEdge, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, kanbanKeyboardCoordinates, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, parsePersistedPaneWidth, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sortableColumnIds, stellaToast, tableColumnIds, tableColumnSizing, useComboboxFilter, useContentDir, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useKanbanDropTarget, useKanbanSortable, useKanbanSortableSensors, useLatest, useViewportWidth, visibleColumnIds };
|
package/dist/index.js
CHANGED
|
@@ -62,9 +62,9 @@ import { AnchoredToastProvider, TOAST_RIGHT_OFFSET_VAR, ToastProvider, stellaToa
|
|
|
62
62
|
import { duplicateColumnIds, findTableColumn, hideableColumnIds, sortableColumnIds, tableColumnIds, tableColumnSizing, visibleColumnIds } from "./data-table/schema.js";
|
|
63
63
|
import { DataTable } from "./data-table/table.js";
|
|
64
64
|
import { useViewportWidth } from "./hooks/use-viewport-width.js";
|
|
65
|
+
import { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed } from "./inspector/pane-width.js";
|
|
65
66
|
import { InspectorDock } from "./inspector/dock.js";
|
|
66
67
|
import { InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs } from "./inspector/tabs.js";
|
|
67
|
-
import { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed } from "./inspector/pane-width.js";
|
|
68
68
|
import { INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, parsePersistedPaneWidth, resolveDragWidth, resolveKeyboardWidth, useInspectorPaneWidth } from "./inspector/use-pane-width.js";
|
|
69
69
|
import { selectKanbanCardFieldIds } from "./kanban/card-properties.js";
|
|
70
70
|
import { KanbanCardShell } from "./kanban/card-shell.js";
|
|
@@ -86,4 +86,4 @@ import { ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffText, TRACKED_DELETI
|
|
|
86
86
|
import { ReviewOutOfDateNotice } from "./review/review-out-of-date-notice.js";
|
|
87
87
|
import { ReviewSeverityDot, ReviewStatusDot, reviewSeverityTone } from "./review/review-severity-dot.js";
|
|
88
88
|
import { ReviewStatusBadge } from "./review/review-status-badge.js";
|
|
89
|
-
export { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, Accordion, AccordionPanel as AccordionContent, AccordionPanel, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogBackdrop, AlertDialogBackdrop as AlertDialogOverlay, AlertDialogClose, AlertDialogPopup as AlertDialogContent, AlertDialogPopup, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPanel, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AnchoredToastProvider, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator, Avatar, AvatarFallback, AvatarImage, BOARD_DRAG_OVERLAY_Z_INDEX, BidiText, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, CONTROL_SIZE, CONTROL_SIZES, CalendarCell, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow, Checkbox, ColorPicker, ColorPickerContent, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut, DEFAULT_PRESETS, DataTable, DatePickerPopover, DestructiveActionConfirmation, DestructiveConfirmDialog, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogHeader, DialogPanel, DialogPortal, DialogTitle, DialogTrigger, DialogViewport, DirectionalIcon, DiscordLogoIcon, Menu as DropdownMenu, Menu, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuCheckboxItem, MenuPopup as DropdownMenuContent, MenuPopup, MenuCreateHandle as DropdownMenuCreateHandle, MenuCreateHandle, MenuGroup as DropdownMenuGroup, MenuGroup, MenuItem as DropdownMenuItem, MenuItem, MenuGroupLabel as DropdownMenuLabel, MenuGroupLabel, MenuPortal as DropdownMenuPortal, MenuPortal, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuRadioItem, MenuSeparator as DropdownMenuSeparator, MenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuShortcut, MenuSub as DropdownMenuSub, MenuSub, MenuSubPopup as DropdownMenuSubContent, MenuSubPopup, MenuSubTrigger as DropdownMenuSubTrigger, MenuSubTrigger, MenuTrigger as DropdownMenuTrigger, MenuTrigger, Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity, Form, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GitHubLogoIcon, HexColorPicker, PreviewCard as HoverCard, PreviewCard, PreviewCardPopup as HoverCardContent, PreviewCardPopup, PreviewCardTrigger as HoverCardTrigger, PreviewCardTrigger, INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs, InspectorTitle, KANBAN_BOARD_AUTO_SCROLL_OPTIONS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_BOARD_COLLISION_DETECTION, KANBAN_DIRECTIONS, KANBAN_DRAG_OVERLAY_Z_INDEX, KANBAN_HORIZONTAL_EDGES, KANBAN_MOUSE_ACTIVATION_DISTANCE, KANBAN_SORTABLE_ACTIVATION_MODES, KANBAN_TOUCH_ACTIVATION_CONSTRAINT, KANBAN_VIRTUAL_CELL_PAGINATION, KanbanCardDragSurface, KanbanCardShell, KanbanColumnHeader, KanbanDragHandle, KanbanSortableBoard, KanbanSortableColumns, KanbanSortableList, KanbanSubgroupBoard, KanbanVirtualCell, Label, MenuPreviewLayout, OVERLAY_LAYER_CLASS_NAMES, OutlineRail, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, ResourceCalendar, ReviewAuthorAvatar, ReviewCommentCard, ReviewDecisionActions, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffText, ReviewOutOfDateNotice, ReviewSeverityDot, ReviewStatusBadge, ReviewStatusDot, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, SecretInput, SegmentedIconToggle, Select, SelectPopup as SelectContent, SelectPopup, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBackdrop, SheetBackdrop as SheetOverlay, SheetClose, SheetPopup as SheetContent, SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, SheetTitle, SheetTrigger, Skeleton, SortableHead, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, ToastProvider, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger, UNKNOWN_AUTHOR_LABEL, UserText, WorkspaceEndRail, WorkspaceShell, assertConsecutiveCalendarDates, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, findTableColumn, getFirstWeekday, getInitials, getKanbanGroupingPropertyId, getKanbanGroups, getKanbanHorizontalEdge, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, kanbanKeyboardCoordinates, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, parsePersistedPaneWidth, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sortableColumnIds, stellaToast, tableColumnIds, tableColumnSizing, useComboboxFilter, useContentDir, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useKanbanDropTarget, useKanbanSortable, useKanbanSortableSensors, useLatest, useViewportWidth, visibleColumnIds };
|
|
89
|
+
export { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, Accordion, AccordionPanel as AccordionContent, AccordionPanel, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogBackdrop, AlertDialogBackdrop as AlertDialogOverlay, AlertDialogClose, AlertDialogPopup as AlertDialogContent, AlertDialogPopup, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPanel, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AnchoredToastProvider, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator, Avatar, AvatarFallback, AvatarImage, BOARD_DRAG_OVERLAY_Z_INDEX, BidiText, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, CONTROL_SIZE, CONTROL_SIZES, CalendarCell, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow, Checkbox, ColorPicker, ColorPickerContent, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut, DEFAULT_PRESETS, DataTable, DatePickerPopover, DestructiveActionConfirmation, DestructiveConfirmDialog, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogHeader, DialogPanel, DialogPortal, DialogTitle, DialogTrigger, DialogViewport, DirectionalIcon, DiscordLogoIcon, Menu as DropdownMenu, Menu, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuCheckboxItem, MenuPopup as DropdownMenuContent, MenuPopup, MenuCreateHandle as DropdownMenuCreateHandle, MenuCreateHandle, MenuGroup as DropdownMenuGroup, MenuGroup, MenuItem as DropdownMenuItem, MenuItem, MenuGroupLabel as DropdownMenuLabel, MenuGroupLabel, MenuPortal as DropdownMenuPortal, MenuPortal, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuRadioItem, MenuSeparator as DropdownMenuSeparator, MenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuShortcut, MenuSub as DropdownMenuSub, MenuSub, MenuSubPopup as DropdownMenuSubContent, MenuSubPopup, MenuSubTrigger as DropdownMenuSubTrigger, MenuSubTrigger, MenuTrigger as DropdownMenuTrigger, MenuTrigger, Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity, Form, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GitHubLogoIcon, HexColorPicker, PreviewCard as HoverCard, PreviewCard, PreviewCardPopup as HoverCardContent, PreviewCardPopup, PreviewCardTrigger as HoverCardTrigger, PreviewCardTrigger, INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs, InspectorTitle, KANBAN_BOARD_AUTO_SCROLL_OPTIONS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_BOARD_COLLISION_DETECTION, KANBAN_DIRECTIONS, KANBAN_DRAG_OVERLAY_Z_INDEX, KANBAN_HORIZONTAL_EDGES, KANBAN_MOUSE_ACTIVATION_DISTANCE, KANBAN_SORTABLE_ACTIVATION_MODES, KANBAN_TOUCH_ACTIVATION_CONSTRAINT, KANBAN_VIRTUAL_CELL_PAGINATION, KanbanCardDragSurface, KanbanCardShell, KanbanColumnHeader, KanbanDragHandle, KanbanSortableBoard, KanbanSortableColumns, KanbanSortableList, KanbanSubgroupBoard, KanbanVirtualCell, Label, MenuPreviewLayout, OVERLAY_LAYER_CLASS_NAMES, OutlineRail, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, ResourceCalendar, ReviewAuthorAvatar, ReviewCommentCard, ReviewDecisionActions, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffText, ReviewOutOfDateNotice, ReviewSeverityDot, ReviewStatusBadge, ReviewStatusDot, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, SecretInput, SegmentedIconToggle, Select, SelectPopup as SelectContent, SelectPopup, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBackdrop, SheetBackdrop as SheetOverlay, SheetClose, SheetPopup as SheetContent, SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, SheetTitle, SheetTrigger, Skeleton, SortableHead, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, ToastProvider, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger, UNKNOWN_AUTHOR_LABEL, UserText, WorkspaceEndRail, WorkspaceShell, assertConsecutiveCalendarDates, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, findTableColumn, getFirstWeekday, getInitials, getKanbanGroupingPropertyId, getKanbanGroups, getKanbanHorizontalEdge, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, kanbanKeyboardCoordinates, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, parsePersistedPaneWidth, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sortableColumnIds, stellaToast, tableColumnIds, tableColumnSizing, useComboboxFilter, useContentDir, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useKanbanDropTarget, useKanbanSortable, useKanbanSortableSensors, useLatest, useViewportWidth, visibleColumnIds };
|
package/dist/inspector/dock.d.ts
CHANGED
|
@@ -32,6 +32,8 @@ type InspectorResizeHandleProps = {
|
|
|
32
32
|
type InspectorDockProps = {
|
|
33
33
|
children: ReactNode;
|
|
34
34
|
className?: string | undefined;
|
|
35
|
+
/** Permanent inline-end rail shown beside the pane, or by itself when collapsed. */
|
|
36
|
+
rail?: ReactNode | undefined;
|
|
35
37
|
/** Accessible name for the drag handle. */
|
|
36
38
|
resizeHandleLabel: string;
|
|
37
39
|
/** Handlers and ARIA state from `useInspectorPaneWidth`. */
|
|
@@ -43,6 +45,6 @@ type InspectorDockProps = {
|
|
|
43
45
|
/** Inline size the dock reserves, in CSS pixels. */
|
|
44
46
|
width: number;
|
|
45
47
|
};
|
|
46
|
-
declare const InspectorDock: ({ children, className, onResetWidth, resizeHandleLabel, resizeHandleProps, showPaneContent, width }: InspectorDockProps) => import("react").JSX.Element;
|
|
48
|
+
declare const InspectorDock: ({ children, className, onResetWidth, rail, resizeHandleLabel, resizeHandleProps, showPaneContent, width }: InspectorDockProps) => import("react").JSX.Element;
|
|
47
49
|
//#endregion
|
|
48
50
|
export { InspectorDock };
|
package/dist/inspector/dock.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { cn } from "../lib/utils.js";
|
|
2
|
+
import "./pane-width.js";
|
|
2
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
4
|
//#region src/inspector/dock.tsx
|
|
4
|
-
const InspectorDock = ({ children, className, onResetWidth, resizeHandleLabel, resizeHandleProps, showPaneContent, width }) => {
|
|
5
|
-
const widthPx = `${width}px`;
|
|
5
|
+
const InspectorDock = ({ children, className, onResetWidth, rail, resizeHandleLabel, resizeHandleProps, showPaneContent, width }) => {
|
|
6
|
+
const widthPx = `${rail !== void 0 && !showPaneContent ? 48 : width}px`;
|
|
6
7
|
return /* @__PURE__ */ jsxs("div", {
|
|
7
8
|
className: cn("text-sidebar-foreground hidden shrink-0 md:block", className),
|
|
8
9
|
"data-side": "inline-end",
|
|
@@ -25,10 +26,13 @@ const InspectorDock = ({ children, className, onResetWidth, resizeHandleLabel, r
|
|
|
25
26
|
...resizeHandleProps,
|
|
26
27
|
tabIndex: 0,
|
|
27
28
|
onDoubleClick: onResetWidth
|
|
28
|
-
}), /* @__PURE__ */
|
|
29
|
-
className: "bg-sidebar flex h-full w-full flex-
|
|
30
|
-
children
|
|
31
|
-
|
|
29
|
+
}), showPaneContent || rail === void 0 ? /* @__PURE__ */ jsxs("div", {
|
|
30
|
+
className: "bg-sidebar flex h-full w-full flex-row",
|
|
31
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
32
|
+
className: "min-w-0 flex-1",
|
|
33
|
+
children
|
|
34
|
+
}), rail]
|
|
35
|
+
}) : rail]
|
|
32
36
|
})]
|
|
33
37
|
});
|
|
34
38
|
};
|
|
@@ -2,6 +2,6 @@ import { Inspector, InspectorActions, InspectorContent, InspectorDescription, In
|
|
|
2
2
|
import { InspectorDock } from "./dock.js";
|
|
3
3
|
import { InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs } from "./tabs.js";
|
|
4
4
|
import { PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX } from "./layout-tokens.js";
|
|
5
|
-
import { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed } from "./pane-width.js";
|
|
5
|
+
import { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed } from "./pane-width.js";
|
|
6
6
|
import { INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, parsePersistedPaneWidth, resolveDragWidth, resolveKeyboardWidth, useInspectorPaneWidth } from "./use-pane-width.js";
|
|
7
|
-
export { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs, InspectorTitle, PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, parsePersistedPaneWidth, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKeyboardWidth, shouldForceSidebarCollapsed, useInspectorPaneWidth };
|
|
7
|
+
export { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs, InspectorTitle, PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, parsePersistedPaneWidth, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKeyboardWidth, shouldForceSidebarCollapsed, useInspectorPaneWidth };
|
package/dist/inspector/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX } from "./layout-tokens.js";
|
|
2
2
|
import { Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle } from "./chrome.js";
|
|
3
|
+
import { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed } from "./pane-width.js";
|
|
3
4
|
import { InspectorDock } from "./dock.js";
|
|
4
5
|
import { InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs } from "./tabs.js";
|
|
5
|
-
import { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed } from "./pane-width.js";
|
|
6
6
|
import { INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, parsePersistedPaneWidth, resolveDragWidth, resolveKeyboardWidth, useInspectorPaneWidth } from "./use-pane-width.js";
|
|
7
|
-
export { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs, InspectorTitle, PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, parsePersistedPaneWidth, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKeyboardWidth, shouldForceSidebarCollapsed, useInspectorPaneWidth };
|
|
7
|
+
export { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs, InspectorTitle, PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, parsePersistedPaneWidth, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKeyboardWidth, shouldForceSidebarCollapsed, useInspectorPaneWidth };
|
|
@@ -13,12 +13,26 @@
|
|
|
13
13
|
*/
|
|
14
14
|
declare const INSPECTOR_PANE_DEFAULT_WIDTH = 512;
|
|
15
15
|
declare const INSPECTOR_PANE_MIN_WIDTH = 320;
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Absolute ceiling, reached only on a very wide viewport. Past this the pane
|
|
18
|
+
* is no longer a reading column, and the two documents it compares stop
|
|
19
|
+
* being scannable side by side.
|
|
20
|
+
*/
|
|
21
|
+
declare const INSPECTOR_PANE_MAX_WIDTH = 1400;
|
|
17
22
|
/**
|
|
18
23
|
* Floor for the content column beside the pane. Below this the content
|
|
19
24
|
* surface stops being usable, so the pane yields space first.
|
|
20
25
|
*/
|
|
21
26
|
declare const INSPECTOR_CONTENT_MIN_WIDTH = 400;
|
|
27
|
+
/**
|
|
28
|
+
* Comfortable measure for the document editor beside the pane, distinct from
|
|
29
|
+
* {@link INSPECTOR_CONTENT_MIN_WIDTH}: that one is the hard floor any content
|
|
30
|
+
* surface must keep (and the width the sidebar collapses to protect), this
|
|
31
|
+
* one is the width a page of prose still reads at. The pane's *ceiling*
|
|
32
|
+
* respects the readable measure; the hard floor still wins when the viewport
|
|
33
|
+
* cannot give both.
|
|
34
|
+
*/
|
|
35
|
+
declare const INSPECTOR_EDITOR_MIN_WIDTH = 560;
|
|
22
36
|
/** Inline size of the collapsed icon rail, in CSS pixels. */
|
|
23
37
|
declare const INSPECTOR_RAIL_WIDTH = 48;
|
|
24
38
|
type ForceSidebarCollapsedInput = {
|
|
@@ -61,4 +75,4 @@ declare const resolveInspectorDockWidth: ({ paneWidth, showPaneContent }: {
|
|
|
61
75
|
showPaneContent: boolean;
|
|
62
76
|
}) => number;
|
|
63
77
|
//#endregion
|
|
64
|
-
export { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed };
|
|
78
|
+
export { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed };
|
|
@@ -13,12 +13,26 @@
|
|
|
13
13
|
*/
|
|
14
14
|
const INSPECTOR_PANE_DEFAULT_WIDTH = 512;
|
|
15
15
|
const INSPECTOR_PANE_MIN_WIDTH = 320;
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Absolute ceiling, reached only on a very wide viewport. Past this the pane
|
|
18
|
+
* is no longer a reading column, and the two documents it compares stop
|
|
19
|
+
* being scannable side by side.
|
|
20
|
+
*/
|
|
21
|
+
const INSPECTOR_PANE_MAX_WIDTH = 1400;
|
|
17
22
|
/**
|
|
18
23
|
* Floor for the content column beside the pane. Below this the content
|
|
19
24
|
* surface stops being usable, so the pane yields space first.
|
|
20
25
|
*/
|
|
21
26
|
const INSPECTOR_CONTENT_MIN_WIDTH = 400;
|
|
27
|
+
/**
|
|
28
|
+
* Comfortable measure for the document editor beside the pane, distinct from
|
|
29
|
+
* {@link INSPECTOR_CONTENT_MIN_WIDTH}: that one is the hard floor any content
|
|
30
|
+
* surface must keep (and the width the sidebar collapses to protect), this
|
|
31
|
+
* one is the width a page of prose still reads at. The pane's *ceiling*
|
|
32
|
+
* respects the readable measure; the hard floor still wins when the viewport
|
|
33
|
+
* cannot give both.
|
|
34
|
+
*/
|
|
35
|
+
const INSPECTOR_EDITOR_MIN_WIDTH = 560;
|
|
22
36
|
/** Inline size of the collapsed icon rail, in CSS pixels. */
|
|
23
37
|
const INSPECTOR_RAIL_WIDTH = 48;
|
|
24
38
|
/**
|
|
@@ -36,8 +50,9 @@ const shouldForceSidebarCollapsed = ({ expandedSidebarWidth, inspectorPaneOpen,
|
|
|
36
50
|
*/
|
|
37
51
|
const resolveInspectorPaneMaxWidth = ({ sidebarWidth, viewportWidth }) => {
|
|
38
52
|
if (viewportWidth <= 0) return 320;
|
|
53
|
+
const readable = viewportWidth - 560;
|
|
39
54
|
const available = viewportWidth - sidebarWidth - 400;
|
|
40
|
-
return Math.max(320, Math.min(
|
|
55
|
+
return Math.max(320, Math.min(INSPECTOR_PANE_MAX_WIDTH, readable, available));
|
|
41
56
|
};
|
|
42
57
|
/** Width the pane renders at, given the width the user asked for. */
|
|
43
58
|
const resolveInspectorPaneWidth = ({ desiredWidth, sidebarWidth, viewportWidth }) => Math.min(Math.max(desiredWidth, 320), resolveInspectorPaneMaxWidth({
|
|
@@ -50,4 +65,4 @@ const resolveInspectorPaneWidth = ({ desiredWidth, sidebarWidth, viewportWidth }
|
|
|
50
65
|
*/
|
|
51
66
|
const resolveInspectorDockWidth = ({ paneWidth, showPaneContent }) => showPaneContent ? paneWidth : 48;
|
|
52
67
|
//#endregion
|
|
53
|
-
export { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed };
|
|
68
|
+
export { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { resolveInspectorPaneWidth } from "./pane-width.js";
|
|
1
|
+
import { INSPECTOR_PANE_MAX_WIDTH, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth } from "./pane-width.js";
|
|
2
2
|
import { useEffect, useRef, useState } from "react";
|
|
3
3
|
//#region src/inspector/use-pane-width.ts
|
|
4
4
|
/**
|
|
@@ -11,7 +11,7 @@ import { useEffect, useRef, useState } from "react";
|
|
|
11
11
|
const parsePersistedPaneWidth = (raw) => {
|
|
12
12
|
if (raw === null) return 512;
|
|
13
13
|
const parsed = Number.parseInt(raw, 10);
|
|
14
|
-
if (!Number.isFinite(parsed) || parsed < 320 || parsed >
|
|
14
|
+
if (!Number.isFinite(parsed) || parsed < 320 || parsed > 1400) return 512;
|
|
15
15
|
return parsed;
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
@@ -43,7 +43,7 @@ const resolveKeyboardWidth = ({ currentWidth, isRtl, key }) => {
|
|
|
43
43
|
case "PageUp": return currentWidth + 64;
|
|
44
44
|
case "PageDown": return currentWidth - 64;
|
|
45
45
|
case "Home": return 320;
|
|
46
|
-
case "End": return
|
|
46
|
+
case "End": return INSPECTOR_PANE_MAX_WIDTH;
|
|
47
47
|
case "Enter": return 512;
|
|
48
48
|
default: return null;
|
|
49
49
|
}
|
|
@@ -109,6 +109,10 @@ const useInspectorPaneWidth = ({ sidebarWidth, storageKey, viewportWidth }) => {
|
|
|
109
109
|
isDragging.current = false;
|
|
110
110
|
if (event.currentTarget.hasPointerCapture(event.pointerId)) event.currentTarget.releasePointerCapture(event.pointerId);
|
|
111
111
|
};
|
|
112
|
+
const maxWidth = resolveInspectorPaneMaxWidth({
|
|
113
|
+
sidebarWidth,
|
|
114
|
+
viewportWidth
|
|
115
|
+
});
|
|
112
116
|
const handleKeyDown = (event) => {
|
|
113
117
|
const next = resolveKeyboardWidth({
|
|
114
118
|
currentWidth: desiredWidth,
|
|
@@ -117,7 +121,7 @@ const useInspectorPaneWidth = ({ sidebarWidth, storageKey, viewportWidth }) => {
|
|
|
117
121
|
});
|
|
118
122
|
if (next === null) return;
|
|
119
123
|
event.preventDefault();
|
|
120
|
-
setDesiredWidth(Math.min(Math.max(next, 320),
|
|
124
|
+
setDesiredWidth(Math.min(Math.max(next, 320), maxWidth));
|
|
121
125
|
};
|
|
122
126
|
const resetWidth = () => {
|
|
123
127
|
setDesiredWidth(512);
|
|
@@ -131,7 +135,7 @@ const useInspectorPaneWidth = ({ sidebarWidth, storageKey, viewportWidth }) => {
|
|
|
131
135
|
resetWidth,
|
|
132
136
|
resizeHandleProps: {
|
|
133
137
|
"aria-orientation": "vertical",
|
|
134
|
-
"aria-valuemax":
|
|
138
|
+
"aria-valuemax": maxWidth,
|
|
135
139
|
"aria-valuemin": 320,
|
|
136
140
|
"aria-valuenow": width,
|
|
137
141
|
onKeyDown: handleKeyDown,
|
package/dist/kanban/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { KANBAN_BOARD_AUTO_SCROLL_OPTIONS, KANBAN_DRAG_OVERLAY_Z_INDEX, KANBAN_M
|
|
|
6
6
|
import { KANBAN_DIRECTIONS, KANBAN_HORIZONTAL_EDGES, KanbanDirection, KanbanHorizontalEdge, getKanbanHorizontalEdge } from "./sortable-edge.js";
|
|
7
7
|
import { KANBAN_BOARD_AUTO_SCROLL_SOURCES, RegisterKanbanBoardAutoScrollOptions, RegisterKanbanCardDragOptions, registerKanbanBoardAutoScroll, registerKanbanCardDrag } from "./drag-interactions.js";
|
|
8
8
|
import { KanbanBuiltInGroup, KanbanGroup, KanbanGroupOption, KanbanGrouping, KanbanSchema, ResolveKanbanGroupingParams, getKanbanGroupingPropertyId, getKanbanGroups, isKanbanGroupingRenderable, resolveKanbanGroupOptions, resolveKanbanGrouping, selectKanbanRows } from "./grouping.js";
|
|
9
|
-
import { BuildKanbanBoardMatrixParams, CreateKanbanDropIntentParams, KANBAN_BOARD_AXES, KanbanBoardAxis, KanbanBoardCell, KanbanBoardCoordinate, KanbanBoardLane, KanbanBoardMatrix, KanbanDropAxisChange, KanbanDropIntent, OrderKanbanCellsByColumnsParams, ResolveKanbanGroupValueParams, buildKanbanBoardMatrix, createKanbanDropIntent, orderKanbanCellsByColumns } from "./matrix.js";
|
|
9
|
+
import { BuildKanbanBoardMatrixParams, CreateKanbanDropIntentParams, KANBAN_BOARD_AXES, KanbanBoardAxis, KanbanBoardCell, KanbanBoardColumn, KanbanBoardCoordinate, KanbanBoardDestination, KanbanBoardLane, KanbanBoardMatrix, KanbanDropAxisChange, KanbanDropIntent, OrderKanbanCellsByColumnsParams, ResolveKanbanGroupValueParams, buildKanbanBoardMatrix, createKanbanDropIntent, orderKanbanCellsByColumns } from "./matrix.js";
|
|
10
10
|
import { KanbanSubgroupBoard, KanbanSubgroupBoardProps, KanbanSubgroupCellContext, KanbanSubgroupColumnHeaderContext, KanbanSubgroupLaneIdentityContext } from "./subgroup-board.js";
|
|
11
11
|
import { KANBAN_VIRTUAL_CELL_PAGINATION, KanbanVirtualCell, KanbanVirtualCellPagination, KanbanVirtualCellProps, KanbanVirtualCellSortableContext } from "./virtual-cell.js";
|
|
12
|
-
export { type BuildKanbanBoardMatrixParams, type CreateKanbanDropIntentParams, KANBAN_BOARD_AUTO_SCROLL_OPTIONS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_BOARD_COLLISION_DETECTION, KANBAN_DIRECTIONS, KANBAN_DRAG_OVERLAY_Z_INDEX, KANBAN_HORIZONTAL_EDGES, KANBAN_MOUSE_ACTIVATION_DISTANCE, KANBAN_SORTABLE_ACTIVATION_MODES, KANBAN_TOUCH_ACTIVATION_CONSTRAINT, KANBAN_VIRTUAL_CELL_PAGINATION, type KanbanBoardAxis, type KanbanBoardCell, type KanbanBoardCoordinate, type KanbanBoardLane, type KanbanBoardMatrix, type KanbanBuiltInGroup, KanbanCardDragSurface, type KanbanCardDragSurfaceProps, type KanbanCardFieldSelection, KanbanCardShell, type KanbanCardShellProps, type KanbanCellVirtualNavigation, KanbanColumnHeader, type KanbanColumnHeaderProps, type KanbanDirection, type KanbanDragCancelEvent, type KanbanDragEndEvent, KanbanDragHandle, type KanbanDragHandleProps, type KanbanDragOverEvent, type KanbanDragStartEvent, type KanbanDropAxisChange, type KanbanDropIntent, type KanbanGroup, type KanbanGroupOption, type KanbanGrouping, type KanbanHorizontalEdge, type KanbanSchema, type KanbanSortableActivationMode, type KanbanSortableBindings, KanbanSortableBoard, type KanbanSortableBoardProps, type KanbanSortableCellPosition, KanbanSortableColumns, type KanbanSortableColumnsProps, KanbanSortableList, type KanbanSortableListProps, KanbanSubgroupBoard, type KanbanSubgroupBoardProps, type KanbanSubgroupCellContext, type KanbanSubgroupColumnHeaderContext, type KanbanSubgroupLaneIdentityContext, KanbanVirtualCell, type KanbanVirtualCellPagination, type KanbanVirtualCellProps, type KanbanVirtualCellSortableContext, type KanbanVirtualScrollRequest, type OrderKanbanCellsByColumnsParams, type RegisterKanbanBoardAutoScrollOptions, type RegisterKanbanCardDragOptions, type ResolveKanbanGroupValueParams, type ResolveKanbanGroupingParams, type UseKanbanDropTargetOptions, type UseKanbanSortableOptions, buildKanbanBoardMatrix, createKanbanDropIntent, getKanbanGroupingPropertyId, getKanbanGroups, getKanbanHorizontalEdge, isKanbanGroupingRenderable, kanbanKeyboardCoordinates, orderKanbanCellsByColumns, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveKanbanGroupOptions, resolveKanbanGrouping, selectKanbanCardFieldIds, selectKanbanRows, useKanbanDropTarget, useKanbanSortable, useKanbanSortableSensors };
|
|
12
|
+
export { type BuildKanbanBoardMatrixParams, type CreateKanbanDropIntentParams, KANBAN_BOARD_AUTO_SCROLL_OPTIONS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_BOARD_COLLISION_DETECTION, KANBAN_DIRECTIONS, KANBAN_DRAG_OVERLAY_Z_INDEX, KANBAN_HORIZONTAL_EDGES, KANBAN_MOUSE_ACTIVATION_DISTANCE, KANBAN_SORTABLE_ACTIVATION_MODES, KANBAN_TOUCH_ACTIVATION_CONSTRAINT, KANBAN_VIRTUAL_CELL_PAGINATION, type KanbanBoardAxis, type KanbanBoardCell, type KanbanBoardColumn, type KanbanBoardCoordinate, type KanbanBoardDestination, type KanbanBoardLane, type KanbanBoardMatrix, type KanbanBuiltInGroup, KanbanCardDragSurface, type KanbanCardDragSurfaceProps, type KanbanCardFieldSelection, KanbanCardShell, type KanbanCardShellProps, type KanbanCellVirtualNavigation, KanbanColumnHeader, type KanbanColumnHeaderProps, type KanbanDirection, type KanbanDragCancelEvent, type KanbanDragEndEvent, KanbanDragHandle, type KanbanDragHandleProps, type KanbanDragOverEvent, type KanbanDragStartEvent, type KanbanDropAxisChange, type KanbanDropIntent, type KanbanGroup, type KanbanGroupOption, type KanbanGrouping, type KanbanHorizontalEdge, type KanbanSchema, type KanbanSortableActivationMode, type KanbanSortableBindings, KanbanSortableBoard, type KanbanSortableBoardProps, type KanbanSortableCellPosition, KanbanSortableColumns, type KanbanSortableColumnsProps, KanbanSortableList, type KanbanSortableListProps, KanbanSubgroupBoard, type KanbanSubgroupBoardProps, type KanbanSubgroupCellContext, type KanbanSubgroupColumnHeaderContext, type KanbanSubgroupLaneIdentityContext, KanbanVirtualCell, type KanbanVirtualCellPagination, type KanbanVirtualCellProps, type KanbanVirtualCellSortableContext, type KanbanVirtualScrollRequest, type OrderKanbanCellsByColumnsParams, type RegisterKanbanBoardAutoScrollOptions, type RegisterKanbanCardDragOptions, type ResolveKanbanGroupValueParams, type ResolveKanbanGroupingParams, type UseKanbanDropTargetOptions, type UseKanbanSortableOptions, buildKanbanBoardMatrix, createKanbanDropIntent, getKanbanGroupingPropertyId, getKanbanGroups, getKanbanHorizontalEdge, isKanbanGroupingRenderable, kanbanKeyboardCoordinates, orderKanbanCellsByColumns, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveKanbanGroupOptions, resolveKanbanGrouping, selectKanbanCardFieldIds, selectKanbanRows, useKanbanDropTarget, useKanbanSortable, useKanbanSortableSensors };
|
package/dist/kanban/matrix.d.ts
CHANGED
|
@@ -14,13 +14,25 @@ type KanbanBoardLane = {
|
|
|
14
14
|
type: "group";
|
|
15
15
|
};
|
|
16
16
|
type KanbanBoardCoordinate = {
|
|
17
|
-
column:
|
|
17
|
+
column: KanbanBoardColumn;
|
|
18
18
|
lane: KanbanBoardLane;
|
|
19
19
|
};
|
|
20
20
|
type KanbanBoardCell<TRow> = {
|
|
21
21
|
coordinate: KanbanBoardCoordinate;
|
|
22
22
|
rows: TRow[];
|
|
23
23
|
};
|
|
24
|
+
/** A non-grouping destination rendered as a terminal board column. */
|
|
25
|
+
type KanbanBoardDestination = {
|
|
26
|
+
id: string;
|
|
27
|
+
label: string;
|
|
28
|
+
};
|
|
29
|
+
type KanbanBoardColumn = {
|
|
30
|
+
group: KanbanGroup;
|
|
31
|
+
type: "group";
|
|
32
|
+
} | {
|
|
33
|
+
destination: KanbanBoardDestination;
|
|
34
|
+
type: "destination";
|
|
35
|
+
};
|
|
24
36
|
/**
|
|
25
37
|
* The full, ordered cartesian board. Presentation may hide or collapse parts
|
|
26
38
|
* of it, but it must not derive cards independently: every board row is in
|
|
@@ -28,7 +40,7 @@ type KanbanBoardCell<TRow> = {
|
|
|
28
40
|
*/
|
|
29
41
|
type KanbanBoardMatrix<TRow> = {
|
|
30
42
|
cells: KanbanBoardCell<TRow>[];
|
|
31
|
-
columns:
|
|
43
|
+
columns: KanbanBoardColumn[];
|
|
32
44
|
lanes: KanbanBoardLane[];
|
|
33
45
|
rows: TRow[];
|
|
34
46
|
};
|
|
@@ -41,14 +53,20 @@ type BuildKanbanBoardMatrixParams<TRow, TProperty, TGroupId extends string = str
|
|
|
41
53
|
group: KanbanGrouping<TRow, TProperty, TGroupId>;
|
|
42
54
|
/** Optional horizontal swimlanes. `none` makes this a one-lane board. */
|
|
43
55
|
subgroup: KanbanGrouping<TRow, TProperty, TGroupId>;
|
|
56
|
+
/** Terminal columns, rendered after grouping columns and empty by default. */
|
|
57
|
+
destinations?: readonly KanbanBoardDestination[];
|
|
44
58
|
rows: readonly TRow[];
|
|
45
59
|
uncategorizedLabel: string;
|
|
46
60
|
resolveGroupValue: (params: ResolveKanbanGroupValueParams<TRow, TProperty, TGroupId>) => string | null;
|
|
47
61
|
};
|
|
48
62
|
type OrderKanbanCellsByColumnsParams<TRow> = {
|
|
49
63
|
cells: readonly KanbanBoardCell<TRow>[];
|
|
50
|
-
columns: readonly
|
|
64
|
+
columns: readonly KanbanBoardColumn[];
|
|
51
65
|
};
|
|
66
|
+
/** Stable identity for a visible board column; group and destination domains stay distinct. */
|
|
67
|
+
declare const getKanbanBoardColumnIdentity: (column: KanbanBoardColumn) => string;
|
|
68
|
+
/** Stable identity for a swimlane; it can never alias a visible column. */
|
|
69
|
+
declare const getKanbanBoardLaneIdentity: (lane: KanbanBoardLane) => string;
|
|
52
70
|
/** Apply the visible header order to any lane's cells. */
|
|
53
71
|
declare const orderKanbanCellsByColumns: <TRow>({ cells, columns }: OrderKanbanCellsByColumnsParams<TRow>) => KanbanBoardCell<TRow>[];
|
|
54
72
|
/**
|
|
@@ -57,7 +75,7 @@ declare const orderKanbanCellsByColumns: <TRow>({ cells, columns }: OrderKanbanC
|
|
|
57
75
|
* A subgroup never filters the primary board scope. A row outside a subgroup's
|
|
58
76
|
* declared values goes to its explicit No value lane, rather than disappearing.
|
|
59
77
|
*/
|
|
60
|
-
declare const buildKanbanBoardMatrix: <TRow, TProperty, TGroupId extends string = string>({ group, subgroup, rows, uncategorizedLabel, resolveGroupValue }: BuildKanbanBoardMatrixParams<TRow, TProperty, TGroupId>) => KanbanBoardMatrix<TRow>;
|
|
78
|
+
declare const buildKanbanBoardMatrix: <TRow, TProperty, TGroupId extends string = string>({ group, subgroup, destinations, rows, uncategorizedLabel, resolveGroupValue }: BuildKanbanBoardMatrixParams<TRow, TProperty, TGroupId>) => KanbanBoardMatrix<TRow>;
|
|
61
79
|
type KanbanDropAxisChange<TGroupId extends string = string> = {
|
|
62
80
|
groupBy: TGroupId;
|
|
63
81
|
value: string | null;
|
|
@@ -65,8 +83,12 @@ type KanbanDropAxisChange<TGroupId extends string = string> = {
|
|
|
65
83
|
/** A complete, atomic move request for a domain mutation adapter. */
|
|
66
84
|
type KanbanDropIntent<TCardId, TGroupId extends string = string> = {
|
|
67
85
|
cardId: TCardId;
|
|
68
|
-
changes: readonly KanbanDropAxisChange<TGroupId>[];
|
|
86
|
+
changes: readonly [KanbanDropAxisChange<TGroupId>, ...KanbanDropAxisChange<TGroupId>[]];
|
|
69
87
|
type: "move";
|
|
88
|
+
} | {
|
|
89
|
+
cardId: TCardId;
|
|
90
|
+
destination: KanbanBoardDestination;
|
|
91
|
+
type: "destination";
|
|
70
92
|
};
|
|
71
93
|
type CreateKanbanDropIntentParams<TRow, TProperty, TCardId, TGroupId extends string = string> = {
|
|
72
94
|
cardId: TCardId;
|
|
@@ -82,4 +104,4 @@ type CreateKanbanDropIntentParams<TRow, TProperty, TCardId, TGroupId extends str
|
|
|
82
104
|
*/
|
|
83
105
|
declare const createKanbanDropIntent: <TRow, TProperty, TCardId, TGroupId extends string = string>({ cardId, group, source, subgroup, target }: CreateKanbanDropIntentParams<TRow, TProperty, TCardId, TGroupId>) => KanbanDropIntent<TCardId, TGroupId> | null;
|
|
84
106
|
//#endregion
|
|
85
|
-
export { BuildKanbanBoardMatrixParams, CreateKanbanDropIntentParams, KANBAN_BOARD_AXES, KanbanBoardAxis, KanbanBoardCell, KanbanBoardCoordinate, KanbanBoardLane, KanbanBoardMatrix, KanbanDropAxisChange, KanbanDropIntent, OrderKanbanCellsByColumnsParams, ResolveKanbanGroupValueParams, buildKanbanBoardMatrix, createKanbanDropIntent, orderKanbanCellsByColumns };
|
|
107
|
+
export { BuildKanbanBoardMatrixParams, CreateKanbanDropIntentParams, KANBAN_BOARD_AXES, KanbanBoardAxis, KanbanBoardCell, KanbanBoardColumn, KanbanBoardCoordinate, KanbanBoardDestination, KanbanBoardLane, KanbanBoardMatrix, KanbanDropAxisChange, KanbanDropIntent, OrderKanbanCellsByColumnsParams, ResolveKanbanGroupValueParams, buildKanbanBoardMatrix, createKanbanDropIntent, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, orderKanbanCellsByColumns };
|
package/dist/kanban/matrix.js
CHANGED
|
@@ -7,15 +7,27 @@ const KANBAN_BOARD_AXES = {
|
|
|
7
7
|
subgroup: "subgroup"
|
|
8
8
|
};
|
|
9
9
|
const optionValueKey = (value) => value === null ? "null" : `string:${value.length}:${value}`;
|
|
10
|
+
/** Stable identity for a visible board column; group and destination domains stay distinct. */
|
|
11
|
+
const getKanbanBoardColumnIdentity = (column) => column.type === "group" ? `group:${optionValueKey(column.group.value)}` : `destination:${column.destination.id}`;
|
|
12
|
+
/** Stable identity for a swimlane; it can never alias a visible column. */
|
|
13
|
+
const getKanbanBoardLaneIdentity = (lane) => lane.type === "none" ? "lane:none" : `lane:${optionValueKey(lane.group.value)}`;
|
|
14
|
+
const assertUniqueColumnIdentities = (columns) => {
|
|
15
|
+
const identities = /* @__PURE__ */ new Set();
|
|
16
|
+
for (const column of columns) {
|
|
17
|
+
const identity = getKanbanBoardColumnIdentity(column);
|
|
18
|
+
if (identities.has(identity)) return panic(`Duplicate Kanban board column identity: ${identity}`);
|
|
19
|
+
identities.add(identity);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
10
22
|
/** Apply the visible header order to any lane's cells. */
|
|
11
23
|
const orderKanbanCellsByColumns = ({ cells, columns }) => {
|
|
12
|
-
const orderByValue = new Map(columns.map((column, index) => [
|
|
24
|
+
const orderByValue = new Map(columns.map((column, index) => [getKanbanBoardColumnIdentity(column), index]));
|
|
13
25
|
const getColumnOrder = (cell) => {
|
|
14
|
-
return orderByValue.get(
|
|
26
|
+
return orderByValue.get(getKanbanBoardColumnIdentity(cell.coordinate.column)) ?? panic("Visible Kanban cell has no column order");
|
|
15
27
|
};
|
|
16
|
-
return cells.filter((cell) => orderByValue.has(
|
|
28
|
+
return cells.filter((cell) => orderByValue.has(getKanbanBoardColumnIdentity(cell.coordinate.column))).toSorted((left, right) => getColumnOrder(left) - getColumnOrder(right));
|
|
17
29
|
};
|
|
18
|
-
const cellKey = ({ column, lane }) => `${
|
|
30
|
+
const cellKey = ({ column, lane }) => `${getKanbanBoardColumnIdentity(column)}|${getKanbanBoardLaneIdentity(lane)}`;
|
|
19
31
|
const groupContainsValue = (groups, value) => groups.some((group) => group.value === value);
|
|
20
32
|
const normalizeGroupValue = (groups, value) => groupContainsValue(groups, value) ? value : null;
|
|
21
33
|
const getRenderableGroups = (grouping, uncategorizedLabel) => {
|
|
@@ -35,14 +47,22 @@ const makeLanes = (subgroup, uncategorizedLabel) => {
|
|
|
35
47
|
* A subgroup never filters the primary board scope. A row outside a subgroup's
|
|
36
48
|
* declared values goes to its explicit No value lane, rather than disappearing.
|
|
37
49
|
*/
|
|
38
|
-
const buildKanbanBoardMatrix = ({ group, subgroup, rows, uncategorizedLabel, resolveGroupValue }) => {
|
|
50
|
+
const buildKanbanBoardMatrix = ({ group, subgroup, destinations = [], rows, uncategorizedLabel, resolveGroupValue }) => {
|
|
39
51
|
if (!isKanbanGroupingRenderable(group)) return {
|
|
40
52
|
cells: [],
|
|
41
53
|
columns: [],
|
|
42
54
|
lanes: [],
|
|
43
55
|
rows: []
|
|
44
56
|
};
|
|
45
|
-
const columns = getRenderableGroups(group, uncategorizedLabel)
|
|
57
|
+
const columns = getRenderableGroups(group, uncategorizedLabel).map((column) => ({
|
|
58
|
+
group: column,
|
|
59
|
+
type: "group"
|
|
60
|
+
}));
|
|
61
|
+
for (const destination of destinations) columns.push({
|
|
62
|
+
destination,
|
|
63
|
+
type: "destination"
|
|
64
|
+
});
|
|
65
|
+
assertUniqueColumnIdentities(columns);
|
|
46
66
|
const scopedRows = selectKanbanRows(rows, group);
|
|
47
67
|
const hasRenderableSubgroup = isKanbanGroupingRenderable(subgroup);
|
|
48
68
|
const lanes = hasRenderableSubgroup ? makeLanes(subgroup, uncategorizedLabel) : [{ type: "none" }];
|
|
@@ -61,7 +81,7 @@ const buildKanbanBoardMatrix = ({ group, subgroup, rows, uncategorizedLabel, res
|
|
|
61
81
|
cellsByKey.set(cellKey(coordinate), cell);
|
|
62
82
|
}
|
|
63
83
|
for (const row of scopedRows) {
|
|
64
|
-
const columnValue = normalizeGroupValue(columns, resolveGroupValue({
|
|
84
|
+
const columnValue = normalizeGroupValue(columns.filter((column) => column.type === "group").map((column) => column.group), resolveGroupValue({
|
|
65
85
|
grouping: group,
|
|
66
86
|
row
|
|
67
87
|
}));
|
|
@@ -75,7 +95,7 @@ const buildKanbanBoardMatrix = ({ group, subgroup, rows, uncategorizedLabel, res
|
|
|
75
95
|
},
|
|
76
96
|
type: "group"
|
|
77
97
|
};
|
|
78
|
-
const column = columns.find((candidate) => candidate.value === columnValue);
|
|
98
|
+
const column = columns.find((candidate) => candidate.type === "group" && candidate.group.value === columnValue);
|
|
79
99
|
const resolvedLane = lane.type === "none" ? lane : lanes.find((candidate) => candidate.type === "group" && candidate.group.value === lane.group.value);
|
|
80
100
|
if (column === void 0 || resolvedLane === void 0) return panic("Kanban matrix cannot place a row in a declared cell");
|
|
81
101
|
const cell = cellsByKey.get(cellKey({
|
|
@@ -101,21 +121,28 @@ const createKanbanDropIntent = ({ cardId, group, source, subgroup, target }) =>
|
|
|
101
121
|
const groupBy = getKanbanGroupingPropertyId(group);
|
|
102
122
|
const subgroupBy = getKanbanGroupingPropertyId(subgroup);
|
|
103
123
|
if (groupBy === null || subgroupBy !== null && subgroupBy === groupBy) return null;
|
|
124
|
+
if (target.column.type === "destination") return {
|
|
125
|
+
cardId,
|
|
126
|
+
destination: target.column.destination,
|
|
127
|
+
type: "destination"
|
|
128
|
+
};
|
|
104
129
|
const changes = [];
|
|
105
|
-
if (source.column.value !== target.column.value) changes.push({
|
|
130
|
+
if (source.column.type !== "group" || source.column.group.value !== target.column.group.value) changes.push({
|
|
106
131
|
groupBy,
|
|
107
|
-
value: target.column.value
|
|
132
|
+
value: target.column.group.value
|
|
108
133
|
});
|
|
109
134
|
if (subgroupBy !== null && source.lane.type === "group" && target.lane.type === "group" && source.lane.group.value !== target.lane.group.value) changes.push({
|
|
110
135
|
groupBy: subgroupBy,
|
|
111
136
|
value: target.lane.group.value
|
|
112
137
|
});
|
|
113
138
|
if (changes.length === 0) return null;
|
|
139
|
+
const firstChange = changes.at(0);
|
|
140
|
+
if (firstChange === void 0) return null;
|
|
114
141
|
return {
|
|
115
142
|
cardId,
|
|
116
|
-
changes,
|
|
143
|
+
changes: [firstChange, ...changes.slice(1)],
|
|
117
144
|
type: "move"
|
|
118
145
|
};
|
|
119
146
|
};
|
|
120
147
|
//#endregion
|
|
121
|
-
export { KANBAN_BOARD_AXES, buildKanbanBoardMatrix, createKanbanDropIntent, orderKanbanCellsByColumns };
|
|
148
|
+
export { KANBAN_BOARD_AXES, buildKanbanBoardMatrix, createKanbanDropIntent, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, orderKanbanCellsByColumns };
|
|
@@ -31,6 +31,8 @@ type KanbanDragStartEvent = DragStartEvent;
|
|
|
31
31
|
type KanbanSortableBoardProps = {
|
|
32
32
|
children: React$1.ReactNode;
|
|
33
33
|
onDragEnd: (event: KanbanDragEndEvent) => void;
|
|
34
|
+
/** Minimum pointer movement before a mouse drag activates. */
|
|
35
|
+
mouseActivationDistance?: number | undefined;
|
|
34
36
|
collisionDetection?: CollisionDetection | undefined;
|
|
35
37
|
keyboardCoordinates?: KeyboardCoordinateGetter | undefined;
|
|
36
38
|
autoScroll?: boolean | AutoScrollOptions | undefined;
|
|
@@ -72,8 +74,8 @@ declare const useKanbanDropTarget: ({ disabled, id, itemIds, navigation, positio
|
|
|
72
74
|
* the sensor activation rules, keyboard navigation, auto-scroll configuration,
|
|
73
75
|
* and overlay lifecycle shared by sortable board UIs.
|
|
74
76
|
*/
|
|
75
|
-
declare const KanbanSortableBoard: ({ children, onDragEnd, collisionDetection, keyboardCoordinates, autoScroll, sensors, accessibility, onDragStart, onDragOver, onDragCancel, onInteractionReady, overlay, overlayProps }: KanbanSortableBoardProps) => React$1.JSX.Element;
|
|
76
|
-
declare const useKanbanSortableSensors: (keyboardCoordinates?: KeyboardCoordinateGetter) => import("@dnd-kit/core").SensorDescriptor<import("@dnd-kit/core").SensorOptions>[];
|
|
77
|
+
declare const KanbanSortableBoard: ({ children, onDragEnd, mouseActivationDistance, collisionDetection, keyboardCoordinates, autoScroll, sensors, accessibility, onDragStart, onDragOver, onDragCancel, onInteractionReady, overlay, overlayProps }: KanbanSortableBoardProps) => React$1.JSX.Element;
|
|
78
|
+
declare const useKanbanSortableSensors: (keyboardCoordinates?: KeyboardCoordinateGetter, mouseActivationDistance?: number) => import("@dnd-kit/core").SensorDescriptor<import("@dnd-kit/core").SensorOptions>[];
|
|
77
79
|
type KanbanSortableListProps = SortableContextProps & React$1.ComponentProps<"div">;
|
|
78
80
|
/** A vertical card list that preserves native vertical touch scrolling. */
|
|
79
81
|
declare const KanbanSortableList: ({ className, children, id, items, strategy, disabled, ...props }: KanbanSortableListProps) => React$1.JSX.Element;
|
|
@@ -338,11 +338,11 @@ const useKanbanDropTarget = ({ disabled, id, itemIds, navigation, position }) =>
|
|
|
338
338
|
* the sensor activation rules, keyboard navigation, auto-scroll configuration,
|
|
339
339
|
* and overlay lifecycle shared by sortable board UIs.
|
|
340
340
|
*/
|
|
341
|
-
const KanbanSortableBoard = ({ children, onDragEnd, collisionDetection, keyboardCoordinates, autoScroll, sensors, accessibility, onDragStart, onDragOver, onDragCancel, onInteractionReady, overlay, overlayProps }) => {
|
|
341
|
+
const KanbanSortableBoard = ({ children, onDragEnd, mouseActivationDistance, collisionDetection, keyboardCoordinates, autoScroll, sensors, accessibility, onDragStart, onDragOver, onDragCancel, onInteractionReady, overlay, overlayProps }) => {
|
|
342
342
|
const [activeId, setActiveId] = React$1.useState(null);
|
|
343
343
|
const [interactionReady, setInteractionReady] = React$1.useState(false);
|
|
344
344
|
const interactionReadyNotified = React$1.useRef(false);
|
|
345
|
-
const defaultSensors = useKanbanSortableSensors(keyboardCoordinates);
|
|
345
|
+
const defaultSensors = useKanbanSortableSensors(keyboardCoordinates, mouseActivationDistance);
|
|
346
346
|
React$1.useEffect(() => {
|
|
347
347
|
const frame = requestAnimationFrame(() => {
|
|
348
348
|
setInteractionReady(true);
|
|
@@ -387,7 +387,7 @@ const KanbanSortableBoard = ({ children, onDragEnd, collisionDetection, keyboard
|
|
|
387
387
|
})
|
|
388
388
|
});
|
|
389
389
|
};
|
|
390
|
-
const useKanbanSortableSensors = (keyboardCoordinates = kanbanKeyboardCoordinates) => useSensors(useSensor(KanbanMouseSensor, { activationConstraint: { distance:
|
|
390
|
+
const useKanbanSortableSensors = (keyboardCoordinates = kanbanKeyboardCoordinates, mouseActivationDistance = 8) => useSensors(useSensor(KanbanMouseSensor, { activationConstraint: { distance: mouseActivationDistance } }), useSensor(KanbanTouchSensor, { activationConstraint: KANBAN_TOUCH_ACTIVATION_CONSTRAINT }), useSensor(KanbanKeyboardSensor, { coordinateGetter: keyboardCoordinates }));
|
|
391
391
|
/** A vertical card list that preserves native vertical touch scrolling. */
|
|
392
392
|
const KanbanSortableList = ({ className, children, id, items, strategy, disabled, ...props }) => /* @__PURE__ */ jsx(SortableContext, {
|
|
393
393
|
...disabled === void 0 ? {} : { disabled },
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { KanbanGroup } from "./grouping.js";
|
|
2
|
-
import { KanbanBoardCell, KanbanBoardMatrix } from "./matrix.js";
|
|
2
|
+
import { KanbanBoardCell, KanbanBoardColumn, KanbanBoardMatrix } from "./matrix.js";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
4
|
//#region src/kanban/subgroup-board.d.ts
|
|
5
5
|
type KanbanSubgroupColumnHeaderContext = {
|
|
6
|
-
column:
|
|
6
|
+
column: KanbanBoardColumn;
|
|
7
7
|
count: number;
|
|
8
8
|
};
|
|
9
9
|
type KanbanSubgroupLaneIdentityContext = {
|
|
@@ -12,6 +12,8 @@ type KanbanSubgroupLaneIdentityContext = {
|
|
|
12
12
|
};
|
|
13
13
|
type KanbanSubgroupCellContext<TRow> = {
|
|
14
14
|
cell: KanbanBoardCell<TRow>;
|
|
15
|
+
/** Number of rows in this lane/column intersection, including zero. */
|
|
16
|
+
count: number;
|
|
15
17
|
laneValue: string | null;
|
|
16
18
|
};
|
|
17
19
|
type KanbanSubgroupCollapseControl = {
|
|
@@ -5,6 +5,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
5
5
|
import { useMemo, useState } from "react";
|
|
6
6
|
//#region src/kanban/subgroup-board.tsx
|
|
7
7
|
const groupValueKey = (value) => value === null ? "null" : `value:${value.length}:${value}`;
|
|
8
|
+
const columnKey = (column) => column.type === "group" ? `group:${groupValueKey(column.group.value)}` : `destination:${column.destination.id}`;
|
|
8
9
|
/** Reusable swimlane layout over the canonical two-axis Kanban matrix. */
|
|
9
10
|
const KanbanSubgroupBoard = ({ matrix, renderColumnHeader, renderLaneIdentity, renderCell, formatCount = String, isLaneCollapsed, onLaneCollapsedChange, footer, className }) => {
|
|
10
11
|
const [collapsedLaneValues, setCollapsedLaneValues] = useState(() => /* @__PURE__ */ new Set());
|
|
@@ -13,7 +14,8 @@ const KanbanSubgroupBoard = ({ matrix, renderColumnHeader, renderLaneIdentity, r
|
|
|
13
14
|
const laneCells = /* @__PURE__ */ new Map();
|
|
14
15
|
const columnCounts = /* @__PURE__ */ new Map();
|
|
15
16
|
for (const cell of matrix.cells) {
|
|
16
|
-
|
|
17
|
+
const key = columnKey(cell.coordinate.column);
|
|
18
|
+
columnCounts.set(key, (columnCounts.get(key) ?? 0) + cell.rows.length);
|
|
17
19
|
if (cell.coordinate.lane.type === "none") continue;
|
|
18
20
|
const laneValue = cell.coordinate.lane.group.value;
|
|
19
21
|
const currentLaneCells = laneCells.get(laneValue);
|
|
@@ -58,9 +60,9 @@ const KanbanSubgroupBoard = ({ matrix, renderColumnHeader, renderLaneIdentity, r
|
|
|
58
60
|
className: "w-[300px] shrink-0",
|
|
59
61
|
children: renderColumnHeader({
|
|
60
62
|
column,
|
|
61
|
-
count: countByColumnValue.get(column
|
|
63
|
+
count: countByColumnValue.get(columnKey(column)) ?? 0
|
|
62
64
|
})
|
|
63
|
-
},
|
|
65
|
+
}, columnKey(column)))
|
|
64
66
|
}),
|
|
65
67
|
matrix.lanes.map((lane) => {
|
|
66
68
|
if (lane.type === "none") return null;
|
|
@@ -71,39 +73,55 @@ const KanbanSubgroupBoard = ({ matrix, renderColumnHeader, renderLaneIdentity, r
|
|
|
71
73
|
const collapsed = isLaneCollapsed ? isLaneCollapsed(group, count) : defaultCollapsed;
|
|
72
74
|
return /* @__PURE__ */ jsxs("section", {
|
|
73
75
|
className: "border-border/60 border-b py-2 first:pt-0 last:border-b-0",
|
|
74
|
-
children: [
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
76
|
+
children: [
|
|
77
|
+
/* @__PURE__ */ jsx("div", {
|
|
78
|
+
className: "bg-background/95 sticky start-0 z-10 flex min-h-11 items-center backdrop-blur-sm",
|
|
79
|
+
children: /* @__PURE__ */ jsxs("button", {
|
|
80
|
+
"aria-expanded": !collapsed,
|
|
81
|
+
className: "hover:bg-muted/60 flex min-h-11 items-center gap-2 rounded-lg px-2 text-start transition-[background-color]",
|
|
82
|
+
onClick: () => setLaneCollapsed(group, count, !collapsed),
|
|
83
|
+
type: "button",
|
|
84
|
+
children: [
|
|
85
|
+
/* @__PURE__ */ jsx(DirectionalIcon, {
|
|
86
|
+
className: cn("text-muted-foreground size-4 shrink-0 transition-transform", collapsed && "-rotate-90"),
|
|
87
|
+
flip: collapsed,
|
|
88
|
+
icon: ChevronDownIcon
|
|
89
|
+
}),
|
|
90
|
+
renderLaneIdentity({
|
|
91
|
+
group,
|
|
92
|
+
count
|
|
93
|
+
}),
|
|
94
|
+
/* @__PURE__ */ jsx("span", {
|
|
95
|
+
className: "text-muted-foreground text-xs tabular-nums",
|
|
96
|
+
children: formatCount(count)
|
|
97
|
+
})
|
|
98
|
+
]
|
|
99
|
+
})
|
|
100
|
+
}),
|
|
101
|
+
/* @__PURE__ */ jsx("div", {
|
|
102
|
+
className: "flex gap-3",
|
|
103
|
+
"aria-label": "Lane column counts",
|
|
104
|
+
children: cells.map((cell) => /* @__PURE__ */ jsx("div", {
|
|
105
|
+
className: "w-[300px] shrink-0 px-3",
|
|
106
|
+
"data-kanban-lane-column-count": cell.rows.length,
|
|
107
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
92
108
|
className: "text-muted-foreground text-xs tabular-nums",
|
|
93
|
-
children: formatCount(
|
|
109
|
+
children: formatCount(cell.rows.length)
|
|
110
|
+
})
|
|
111
|
+
}, columnKey(cell.coordinate.column)))
|
|
112
|
+
}),
|
|
113
|
+
!collapsed && /* @__PURE__ */ jsx("div", {
|
|
114
|
+
className: "flex gap-3 pb-1",
|
|
115
|
+
children: cells.map((cell) => /* @__PURE__ */ jsx("div", {
|
|
116
|
+
className: "w-[300px] shrink-0",
|
|
117
|
+
children: renderCell({
|
|
118
|
+
cell,
|
|
119
|
+
count: cell.rows.length,
|
|
120
|
+
laneValue: group.value
|
|
94
121
|
})
|
|
95
|
-
|
|
122
|
+
}, columnKey(cell.coordinate.column)))
|
|
96
123
|
})
|
|
97
|
-
|
|
98
|
-
className: "flex gap-3 pb-1",
|
|
99
|
-
children: cells.map((cell) => /* @__PURE__ */ jsx("div", {
|
|
100
|
-
className: "w-[300px] shrink-0",
|
|
101
|
-
children: renderCell({
|
|
102
|
-
cell,
|
|
103
|
-
laneValue: group.value
|
|
104
|
-
})
|
|
105
|
-
}, groupValueKey(cell.coordinate.column.value)))
|
|
106
|
-
})]
|
|
124
|
+
]
|
|
107
125
|
}, groupValueKey(group.value));
|
|
108
126
|
}),
|
|
109
127
|
footer
|
|
@@ -5,6 +5,6 @@ declare const CONTROL_SIZE: Readonly<{
|
|
|
5
5
|
readonly lg: "lg";
|
|
6
6
|
}>;
|
|
7
7
|
type ControlSize = (typeof CONTROL_SIZE)[keyof typeof CONTROL_SIZE];
|
|
8
|
-
declare const CONTROL_SIZES: readonly ("
|
|
8
|
+
declare const CONTROL_SIZES: readonly ("default" | "lg" | "sm")[];
|
|
9
9
|
//#endregion
|
|
10
10
|
export { CONTROL_SIZE, CONTROL_SIZES, type ControlSize };
|
package/package.json
CHANGED