@stll/ui 0.67.0 → 0.69.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.
Files changed (53) hide show
  1. package/dist/calendar/day-calendar.d.ts +22 -6
  2. package/dist/calendar/day-calendar.js +97 -26
  3. package/dist/calendar/resource-calendar.js +7 -9
  4. package/dist/calendar/topic-colors.d.ts +3 -0
  5. package/dist/calendar/topic-colors.js +19 -0
  6. package/dist/components/button.js +4 -4
  7. package/dist/components/composer-tokens.d.ts +6 -2
  8. package/dist/components/composer-tokens.js +6 -2
  9. package/dist/components/composer.d.ts +13 -0
  10. package/dist/components/composer.js +19 -3
  11. package/dist/components/court-filter.js +4 -4
  12. package/dist/components/date-picker-popover.js +3 -2
  13. package/dist/components/document-identity-badge.js +9 -4
  14. package/dist/components/file-input.js +3 -2
  15. package/dist/components/identity-text.js +4 -2
  16. package/dist/components/input-group.js +3 -2
  17. package/dist/components/landing.js +6 -5
  18. package/dist/components/list.d.ts +11 -5
  19. package/dist/components/list.js +28 -9
  20. package/dist/components/loader.js +4 -2
  21. package/dist/components/outline-rail.js +6 -4
  22. package/dist/components/run-state-mark.d.ts +8 -0
  23. package/dist/components/run-state-mark.js +30 -0
  24. package/dist/components/run-state-mark.native.d.ts +9 -0
  25. package/dist/components/run-state-mark.native.js +98 -0
  26. package/dist/components/run-state-mark.shared.d.ts +53 -0
  27. package/dist/components/run-state-mark.shared.js +45 -0
  28. package/dist/components/status-mark.js +6 -6
  29. package/dist/components/status-mark.shared.d.ts +12 -0
  30. package/dist/components/status-mark.shared.js +14 -0
  31. package/dist/components/table.d.ts +1 -1
  32. package/dist/components/table.js +14 -8
  33. package/dist/components/text.native.d.ts +3 -1
  34. package/dist/components/text.native.js +4 -2
  35. package/dist/components/truncated-text.d.ts +14 -3
  36. package/dist/components/truncated-text.js +21 -5
  37. package/dist/components/view-toolbar.d.ts +5 -1
  38. package/dist/components/view-toolbar.js +6 -2
  39. package/dist/index.d.ts +2 -2
  40. package/dist/index.js +2 -2
  41. package/dist/inspector/chrome.d.ts +3 -3
  42. package/dist/inspector/chrome.js +28 -17
  43. package/dist/kanban/column-band-header.js +3 -2
  44. package/dist/kanban/column-header.js +3 -2
  45. package/dist/kanban/sticky-lane.js +3 -2
  46. package/dist/lib/matter-colors.js +2 -5
  47. package/dist/lib/stable-hash.d.ts +2 -0
  48. package/dist/lib/stable-hash.js +8 -0
  49. package/dist/review/review-comment-card.js +7 -6
  50. package/dist/review/review-decision-actions.d.ts +8 -1
  51. package/dist/review/review-decision-actions.js +13 -4
  52. package/dist/styles/theme.css +24 -0
  53. package/package.json +11 -3
@@ -1,6 +1,10 @@
1
1
  import { Button } from "./button.js";
2
2
  import { ComponentProps } from "react";
3
- /** Shared view controls stay compact and scroll horizontally on small screens. */
3
+ /**
4
+ * Shared view controls stay compact and scroll horizontally on small screens:
5
+ * the row never grows past its container, so a control past the edge is
6
+ * scrolled to rather than clipped.
7
+ */
4
8
  export declare const ViewToolbarChrome: ({ className, ...props }: ComponentProps<"div">) => import("react").JSX.Element;
5
9
  type ViewFilterButtonProps = Omit<ComponentProps<typeof Button>, "children" | "size" | "variant" | "aria-label" | "title"> & {
6
10
  label: string;
@@ -3,9 +3,13 @@ import { cn } from "../lib/utils.js";
3
3
  import { Button } from "./button.js";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  // src/components/view-toolbar.tsx
6
- /** Shared view controls stay compact and scroll horizontally on small screens. */
6
+ /**
7
+ * Shared view controls stay compact and scroll horizontally on small screens:
8
+ * the row never grows past its container, so a control past the edge is
9
+ * scrolled to rather than clipped.
10
+ */
7
11
  const ViewToolbarChrome = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
8
- className: cn("flex min-w-0 shrink-0 [scrollbar-width:none] flex-nowrap items-center gap-1 overflow-x-auto px-2 py-1 [-ms-overflow-style:none] md:flex-wrap md:overflow-visible [&::-webkit-scrollbar]:hidden", className),
12
+ className: cn("flex max-w-full min-w-0 shrink-0 [scrollbar-width:none] flex-nowrap items-center gap-1 overflow-x-auto px-2 py-1 [-ms-overflow-style:none] md:flex-wrap md:overflow-visible [&::-webkit-scrollbar]:hidden", className),
9
13
  ...props
10
14
  });
11
15
  const ViewFilterButton = ({ label, ...props }) => /* @__PURE__ */ jsx(Button, {
package/dist/index.d.ts CHANGED
@@ -80,7 +80,7 @@ import { ResizeSeparator, Separator, TextSeparator } from "./components/separato
80
80
  import { ResourceCalendar, ResourceCalendarColumn, ResourceCalendarEntry, ResourceCalendarEntryTone, ResourceCalendarResource } from "./calendar/resource-calendar.js";
81
81
  import { ReviewAuthorAvatar, UNKNOWN_AUTHOR_LABEL } from "./review/review-author-avatar.js";
82
82
  import { ReviewCommentAuthor, ReviewCommentCard } from "./review/review-comment-card.js";
83
- import { ReviewDecisionActions, ReviewDecisionSize, ReviewDecisionState } from "./review/review-decision-actions.js";
83
+ import { ReviewDecisionActions, ReviewDecisionEmphasis, ReviewDecisionSize, ReviewDecisionState } from "./review/review-decision-actions.js";
84
84
  import { ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffSegmentType, ReviewDiffText, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, reviewDiffSegmentKeys } from "./review/review-diff-text.js";
85
85
  import { ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone } from "./review/review-out-of-date-notice.js";
86
86
  import { ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusDot, reviewSeverityTone } from "./review/review-severity-dot.js";
@@ -113,4 +113,4 @@ import { getInitials } from "./lib/initials.js";
113
113
  import { useIsMobile } from "./hooks/use-mobile.js";
114
114
  import { useLatest } from "./hooks/use-latest.js";
115
115
  import { useViewportWidth } from "./hooks/use-viewport-width.js";
116
- 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, BUTTON_CONTENT, BUTTON_SIZE_CONTENT, Badge, type BadgeProps, type BadgeSize, type BadgeTone, type BidiDirection, BidiText, type BidiTextProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, type BuildKanbanBoardMatrixParams, Button, type ButtonFocusRing, type ButtonPlainShape, type ButtonProps, type ButtonSize, ButtonTextRun, type ButtonVariant, CONTROL_SIZE, CONTROL_SIZES, COPIED_RESET_MS, CalendarCell, CalendarDateRange, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow, Checkbox, Collapsible, CollapsiblePanel, CollapsibleTrigger, 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, CopyButton, CopyFeedback, type CreateKanbanDropIntentParams, DEFAULT_PRESETS, DIALOG_MOBILE_LAYOUT, DIALOG_SIZE_CLASS_NAMES, DataTable, type DataTableAriaSort, type DataTableColumn, type DataTableProps, type DataTableRowAction, DatePickerPopover, type DatePickerPopoverProps, DestructiveActionConfirmation, DestructiveConfirmDialog, type DestructiveConfirmDialogProps, type DestructiveConfirmOutcome, DetailsGrid, DetailsItem, type DetailsLabelWidth, type DetailsOrientation, type DetailsVariant, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogFormState, DialogHeader, type DialogLabels, type DialogMobileLayout, DialogPanel, DialogPortal, DialogProvider, type DialogSize, 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, MenuLinkItem as DropdownMenuLinkItem, MenuLinkItem, 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, FileInput, type FileInputProps, Form, type FormErrors, type FormProps, 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, InlineRenameInput, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, type InspectorDockMount, InspectorEmptyRow, InspectorEntityTab, type InspectorEntityTabInactiveIcon, InspectorFacetBar, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle, KANBAN_BAND_CAPTION_ROW_HEIGHT, KANBAN_BAND_CAPTION_ROW_HEIGHT_PX, KANBAN_BAND_PEEK_DELAY_MS, KANBAN_BAND_PEEK_LINGER_MS, KANBAN_BOARD_AUTO_SCROLL_OPTIONS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_BOARD_COLLISION_DETECTION, KANBAN_CARD_DRAG_MIME, KANBAN_CARD_STICKY_TOP_VAR, KANBAN_CHROME_ROW_HEIGHT, KANBAN_CHROME_ROW_HEIGHT_PX, KANBAN_COLLAPSED_BAND_WIDTH_CLASS, KANBAN_COLLAPSED_BAND_WIDTH_PX, KANBAN_COLUMN_GAP_PX, KANBAN_COLUMN_WIDTH_CLASS, KANBAN_COLUMN_WIDTH_PX, KANBAN_DIRECTIONS, KANBAN_DRAG_OVERLAY_Z_INDEX, KANBAN_HORIZONTAL_EDGES, KANBAN_MOUSE_ACTIVATION_DISTANCE, KANBAN_SORTABLE_ACTIVATION_MODES, KANBAN_STICKY_TOP_VAR, KANBAN_TOUCH_ACTIVATION_CONSTRAINT, KANBAN_VIRTUAL_CELL_PAGINATION, type KanbanBandToggleActivation, type KanbanBoardAxis, type KanbanBoardCell, type KanbanBoardColumn, type KanbanBoardCoordinate, type KanbanBoardDestination, type KanbanBoardLane, type KanbanBoardMatrix, type KanbanBuiltInGroup, type KanbanCardDragPreview, KanbanCardDragSurface, type KanbanCardDragSurfaceProps, type KanbanCardFieldSelection, type KanbanCardSelectionModifiers, KanbanCardShell, type KanbanCardShellProps, KanbanCellAction, type KanbanCellActionProps, type KanbanCellVirtualNavigation, KanbanCollapsedBandCaption, type KanbanCollapsedBandCaptionProps, type KanbanColumnBand, KanbanColumnBandHeader, type KanbanColumnBandHeaderProps, type KanbanColumnBandSpan, 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, type KanbanSubgroupBandHeaderContext, KanbanSubgroupBoard, type KanbanSubgroupBoardProps, type KanbanSubgroupCellContext, type KanbanSubgroupCollapsedBandCellContext, type KanbanSubgroupColumnHeaderContext, type KanbanSubgroupLaneColumnActionContext, type KanbanSubgroupLaneColumnSummaryContext, type KanbanSubgroupLaneIdentityContext, KanbanVirtualCell, type KanbanVirtualCellPagination, type KanbanVirtualCellProps, type KanbanVirtualCellSortableContext, type KanbanVirtualScrollRequest, Kbd, type KbdKey, type KbdKeys, type KbdNamedKey, type KbdNavigator, type KbdPlatform, type KbdProps, type KbdVariant, LEGAL_TEXT_CLASS_NAME, Label, type LabelVariant, List, ListEmpty, ListGroup, ListGroupAction, ListGroupCount, ListGroupDescription, ListGroupHeader, ListGroupHeading, ListGroupTitle, ListItem, ListItemActions, ListItemContent, ListItemDescription, ListItemMedia, ListItemStatus, ListItemTitle, MenuAnchor, MenuPreviewLayout, MenuSection, OUTLINE_CONTROL_MIN_SIZE, OUTLINE_EMPHASIS, OVERLAY_COLLISION_PADDING, OVERLAY_LAYER_CLASS_NAMES, OptionColor, type OrderKanbanCellsByColumnsParams, OutlineEmphasis, OutlineItem, OutlinePortrait, OutlineRail, OutlineRailProps, OverlayLayer, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PanelTrigger, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, Prose, type RegisterKanbanBoardAutoScrollOptions, type RegisterKanbanCardDragOptions, ResizeSeparator, type ResolveKanbanGroupValueParams, type ResolveKanbanGroupingParams, ResourceCalendar, ResourceCalendarColumn, ResourceCalendarEntry, ResourceCalendarEntryTone, ResourceCalendarLaneLayout, ResourceCalendarLanePlacement, ResourceCalendarPlacement, ResourceCalendarResource, ReviewAuthorAvatar, ReviewCommentAuthor, ReviewCommentCard, ReviewDecisionActions, ReviewDecisionSize, ReviewDecisionState, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffSegmentType, ReviewDiffText, ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone, ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusBadge, ReviewStatusDot, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant, SHELL_CHROME_LAYER_CLASS_NAME, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, ScrollToTopProps, SearchField, type SearchFieldProps, 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, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarIdentityButton, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SortDirection, SortableHead, type StatusTone, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TOOLTIP_OPEN_DELAY_MS, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, type TableAlign, TableBody, TableCaption, TableCell, type TableCellProps, type TableColumnCapabilities, type TableColumnDescriptor, type TableDensity, TableFooter, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableInset, type TableProps, TableRow, type TableSchema, type TableScroll, type TableTone, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, type TextareaProps, type ToastPosition, ToastProvider, Toggle, ToggleGroup, ToggleGroupItem, type ToggleGroupProps, type ToggleProps, type ToggleVariant, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipFactTrigger, TooltipProvider, TooltipTrigger, TruncatedText, type TruncatedTextLines, type TruncatedTextProps, TypedCharacterEvent, UNKNOWN_AUTHOR_LABEL, type UseKanbanDropTargetOptions, type UseKanbanSortableOptions, UserText, type WorkspaceCompactNavigation, WorkspaceEndRail, type WorkspaceEndRailChatAction, type WorkspaceEndRailProps, type WorkspaceNavigation, WorkspaceShell, type WorkspaceShellProps, type WorkspaceTopBarContext, XLogoIcon, assertConsecutiveCalendarDates, badgeVariants, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, entityTabGlyph, findTableColumn, formVariants, formatKeys, getFirstWeekday, getInitials, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, getKanbanGroupingPropertyId, getKanbanGroups, getKanbanHorizontalEdge, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hasKanbanColumnBands, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, isTextOverflowing, kanbanKeyboardCoordinates, kbdPlatformOf, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, outlineEntryText, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanColumnBands, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, resolveToastUpdateTimeout, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sidebarIdentityTriggerClassName, sortableColumnIds, stellaToast, stripDirectionalControls, tableColumnIds, tableColumnSizing, toastCountdownMs, toastDedupeId, typedCharacter, useContentDir, useCopiedFeedback, useCopyConfirmation, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useKanbanDropTarget, useKanbanSortable, useKanbanSortableSensors, useKbdPlatform, useLatest, useSidebar, useSidebarInlineSize, useSidebarLayout, useViewportWidth, visibleColumnIds, withoutDirectionalControls };
116
+ 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, BUTTON_CONTENT, BUTTON_SIZE_CONTENT, Badge, type BadgeProps, type BadgeSize, type BadgeTone, type BidiDirection, BidiText, type BidiTextProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, type BuildKanbanBoardMatrixParams, Button, type ButtonFocusRing, type ButtonPlainShape, type ButtonProps, type ButtonSize, ButtonTextRun, type ButtonVariant, CONTROL_SIZE, CONTROL_SIZES, COPIED_RESET_MS, CalendarCell, CalendarDateRange, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow, Checkbox, Collapsible, CollapsiblePanel, CollapsibleTrigger, 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, CopyButton, CopyFeedback, type CreateKanbanDropIntentParams, DEFAULT_PRESETS, DIALOG_MOBILE_LAYOUT, DIALOG_SIZE_CLASS_NAMES, DataTable, type DataTableAriaSort, type DataTableColumn, type DataTableProps, type DataTableRowAction, DatePickerPopover, type DatePickerPopoverProps, DestructiveActionConfirmation, DestructiveConfirmDialog, type DestructiveConfirmDialogProps, type DestructiveConfirmOutcome, DetailsGrid, DetailsItem, type DetailsLabelWidth, type DetailsOrientation, type DetailsVariant, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogFormState, DialogHeader, type DialogLabels, type DialogMobileLayout, DialogPanel, DialogPortal, DialogProvider, type DialogSize, 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, MenuLinkItem as DropdownMenuLinkItem, MenuLinkItem, 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, FileInput, type FileInputProps, Form, type FormErrors, type FormProps, 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, InlineRenameInput, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, type InspectorDockMount, InspectorEmptyRow, InspectorEntityTab, type InspectorEntityTabInactiveIcon, InspectorFacetBar, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle, KANBAN_BAND_CAPTION_ROW_HEIGHT, KANBAN_BAND_CAPTION_ROW_HEIGHT_PX, KANBAN_BAND_PEEK_DELAY_MS, KANBAN_BAND_PEEK_LINGER_MS, KANBAN_BOARD_AUTO_SCROLL_OPTIONS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_BOARD_COLLISION_DETECTION, KANBAN_CARD_DRAG_MIME, KANBAN_CARD_STICKY_TOP_VAR, KANBAN_CHROME_ROW_HEIGHT, KANBAN_CHROME_ROW_HEIGHT_PX, KANBAN_COLLAPSED_BAND_WIDTH_CLASS, KANBAN_COLLAPSED_BAND_WIDTH_PX, KANBAN_COLUMN_GAP_PX, KANBAN_COLUMN_WIDTH_CLASS, KANBAN_COLUMN_WIDTH_PX, KANBAN_DIRECTIONS, KANBAN_DRAG_OVERLAY_Z_INDEX, KANBAN_HORIZONTAL_EDGES, KANBAN_MOUSE_ACTIVATION_DISTANCE, KANBAN_SORTABLE_ACTIVATION_MODES, KANBAN_STICKY_TOP_VAR, KANBAN_TOUCH_ACTIVATION_CONSTRAINT, KANBAN_VIRTUAL_CELL_PAGINATION, type KanbanBandToggleActivation, type KanbanBoardAxis, type KanbanBoardCell, type KanbanBoardColumn, type KanbanBoardCoordinate, type KanbanBoardDestination, type KanbanBoardLane, type KanbanBoardMatrix, type KanbanBuiltInGroup, type KanbanCardDragPreview, KanbanCardDragSurface, type KanbanCardDragSurfaceProps, type KanbanCardFieldSelection, type KanbanCardSelectionModifiers, KanbanCardShell, type KanbanCardShellProps, KanbanCellAction, type KanbanCellActionProps, type KanbanCellVirtualNavigation, KanbanCollapsedBandCaption, type KanbanCollapsedBandCaptionProps, type KanbanColumnBand, KanbanColumnBandHeader, type KanbanColumnBandHeaderProps, type KanbanColumnBandSpan, 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, type KanbanSubgroupBandHeaderContext, KanbanSubgroupBoard, type KanbanSubgroupBoardProps, type KanbanSubgroupCellContext, type KanbanSubgroupCollapsedBandCellContext, type KanbanSubgroupColumnHeaderContext, type KanbanSubgroupLaneColumnActionContext, type KanbanSubgroupLaneColumnSummaryContext, type KanbanSubgroupLaneIdentityContext, KanbanVirtualCell, type KanbanVirtualCellPagination, type KanbanVirtualCellProps, type KanbanVirtualCellSortableContext, type KanbanVirtualScrollRequest, Kbd, type KbdKey, type KbdKeys, type KbdNamedKey, type KbdNavigator, type KbdPlatform, type KbdProps, type KbdVariant, LEGAL_TEXT_CLASS_NAME, Label, type LabelVariant, List, ListEmpty, ListGroup, ListGroupAction, ListGroupCount, ListGroupDescription, ListGroupHeader, ListGroupHeading, ListGroupTitle, ListItem, ListItemActions, ListItemContent, ListItemDescription, ListItemMedia, ListItemStatus, ListItemTitle, MenuAnchor, MenuPreviewLayout, MenuSection, OUTLINE_CONTROL_MIN_SIZE, OUTLINE_EMPHASIS, OVERLAY_COLLISION_PADDING, OVERLAY_LAYER_CLASS_NAMES, OptionColor, type OrderKanbanCellsByColumnsParams, OutlineEmphasis, OutlineItem, OutlinePortrait, OutlineRail, OutlineRailProps, OverlayLayer, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PanelTrigger, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, Prose, type RegisterKanbanBoardAutoScrollOptions, type RegisterKanbanCardDragOptions, ResizeSeparator, type ResolveKanbanGroupValueParams, type ResolveKanbanGroupingParams, ResourceCalendar, ResourceCalendarColumn, ResourceCalendarEntry, ResourceCalendarEntryTone, ResourceCalendarLaneLayout, ResourceCalendarLanePlacement, ResourceCalendarPlacement, ResourceCalendarResource, ReviewAuthorAvatar, ReviewCommentAuthor, ReviewCommentCard, ReviewDecisionActions, ReviewDecisionEmphasis, ReviewDecisionSize, ReviewDecisionState, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffSegmentType, ReviewDiffText, ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone, ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusBadge, ReviewStatusDot, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant, SHELL_CHROME_LAYER_CLASS_NAME, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, ScrollToTopProps, SearchField, type SearchFieldProps, 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, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarIdentityButton, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SortDirection, SortableHead, type StatusTone, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TOOLTIP_OPEN_DELAY_MS, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, type TableAlign, TableBody, TableCaption, TableCell, type TableCellProps, type TableColumnCapabilities, type TableColumnDescriptor, type TableDensity, TableFooter, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableInset, type TableProps, TableRow, type TableSchema, type TableScroll, type TableTone, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, type TextareaProps, type ToastPosition, ToastProvider, Toggle, ToggleGroup, ToggleGroupItem, type ToggleGroupProps, type ToggleProps, type ToggleVariant, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipFactTrigger, TooltipProvider, TooltipTrigger, TruncatedText, type TruncatedTextLines, type TruncatedTextProps, TypedCharacterEvent, UNKNOWN_AUTHOR_LABEL, type UseKanbanDropTargetOptions, type UseKanbanSortableOptions, UserText, type WorkspaceCompactNavigation, WorkspaceEndRail, type WorkspaceEndRailChatAction, type WorkspaceEndRailProps, type WorkspaceNavigation, WorkspaceShell, type WorkspaceShellProps, type WorkspaceTopBarContext, XLogoIcon, assertConsecutiveCalendarDates, badgeVariants, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, entityTabGlyph, findTableColumn, formVariants, formatKeys, getFirstWeekday, getInitials, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, getKanbanGroupingPropertyId, getKanbanGroups, getKanbanHorizontalEdge, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hasKanbanColumnBands, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, isTextOverflowing, kanbanKeyboardCoordinates, kbdPlatformOf, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, outlineEntryText, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanColumnBands, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, resolveToastUpdateTimeout, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sidebarIdentityTriggerClassName, sortableColumnIds, stellaToast, stripDirectionalControls, tableColumnIds, tableColumnSizing, toastCountdownMs, toastDedupeId, typedCharacter, useContentDir, useCopiedFeedback, useCopyConfirmation, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useKanbanDropTarget, useKanbanSortable, useKanbanSortableSensors, useKbdPlatform, useLatest, useSidebar, useSidebarInlineSize, useSidebarLayout, useViewportWidth, visibleColumnIds, withoutDirectionalControls };
package/dist/index.js CHANGED
@@ -8,10 +8,10 @@ import { Badge, badgeVariants } from "./components/badge.js";
8
8
  import { BidiText, UserText, stripDirectionalControls, withoutDirectionalControls } from "./components/bidi-text.js";
9
9
  import { DiscordLogoIcon, GitHubLogoIcon, XLogoIcon } from "./components/brand-icons.js";
10
10
  import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./components/breadcrumb.js";
11
- import { Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle } from "./inspector/chrome.js";
12
11
  import { BUTTON_CONTENT, BUTTON_SIZE_CONTENT, Button, ButtonTextRun, buttonAccessibleDisabledClass, buttonVariants } from "./components/button.js";
13
12
  import { Checkbox } from "./components/checkbox.js";
14
13
  import { Collapsible, CollapsiblePanel, CollapsibleTrigger } from "./components/collapsible.js";
14
+ import { Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle } from "./inspector/chrome.js";
15
15
  import { ColorPicker, ColorPickerContent, DEFAULT_PRESETS } from "./components/color-picker.js";
16
16
  import { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue } from "./components/combobox.js";
17
17
  import { Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut } from "./components/command.js";
@@ -27,9 +27,9 @@ import { DIALOG_MOBILE_LAYOUT, DIALOG_SIZE_CLASS_NAMES, Dialog, DialogBackdrop,
27
27
  import { DirectionalIcon } from "./components/directional-icon.js";
28
28
  import { Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity } from "./components/field.js";
29
29
  import { FileInput } from "./components/file-input.js";
30
- import { DialogFormState } from "./components/dialog-form-state.js";
31
30
  import { Form, formVariants } from "./components/form.js";
32
31
  import { Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle } from "./components/frame.js";
32
+ import { DialogFormState } from "./components/dialog-form-state.js";
33
33
  import { HexColorPicker } from "./components/hex-color-picker.js";
34
34
  import { Input } from "./components/input.js";
35
35
  import { InlineRenameInput } from "./components/inline-rename.js";
@@ -46,7 +46,7 @@ export declare const InspectorRailTab: ({ active, className, ...props }: React$1
46
46
  export declare const InspectorHeader: ({ className, ...props }: React$1.ComponentProps<"header">) => React$1.JSX.Element;
47
47
  export declare const InspectorHeaderText: ({ className, ...props }: React$1.ComponentProps<"div">) => React$1.JSX.Element;
48
48
  export declare const InspectorTitle: ({ children, className, ...props }: React$1.ComponentProps<"h2">) => React$1.JSX.Element;
49
- export declare const InspectorDescription: ({ className, ...props }: React$1.ComponentProps<"p">) => React$1.JSX.Element;
49
+ export declare const InspectorDescription: ({ children, className, ...props }: React$1.ComponentProps<"p">) => React$1.JSX.Element;
50
50
  export declare const InspectorActions: ({ className, ...props }: React$1.ComponentProps<"div">) => React$1.JSX.Element;
51
51
  /**
52
52
  * Scroll owner for the active tab. Exactly one of these is mounted at a
@@ -68,7 +68,7 @@ export declare const InspectorPropertyList: ({ className, ...props }: React$1.Co
68
68
  * an expanded view, not in a taller row.
69
69
  */
70
70
  export declare const InspectorProperty: ({ className, ...props }: React$1.ComponentProps<"div">) => React$1.JSX.Element;
71
- export declare const InspectorPropertyLabel: ({ className, ...props }: React$1.ComponentProps<"dt">) => React$1.JSX.Element;
72
- export declare const InspectorPropertyValue: ({ className, ...props }: React$1.ComponentProps<"dd">) => React$1.JSX.Element;
71
+ export declare const InspectorPropertyLabel: ({ children, className, ...props }: React$1.ComponentProps<"dt">) => React$1.JSX.Element;
72
+ export declare const InspectorPropertyValue: ({ children, className, ...props }: React$1.ComponentProps<"dd">) => React$1.JSX.Element;
73
73
  /** Row-height empty state, so an empty list keeps the list's rhythm. */
74
74
  export declare const InspectorEmptyRow: ({ className, ...props }: React$1.ComponentProps<"p">) => React$1.JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import { withoutDirectionalControls } from "../components/bidi-text.js";
2
+ import { TruncatedText } from "../components/truncated-text.js";
2
3
  import { cn } from "../lib/utils.js";
3
4
  import { PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, TOOLBAR_ROW_HEIGHT } from "./layout-tokens.js";
4
5
  import { jsx } from "react/jsx-runtime";
@@ -87,18 +88,24 @@ const InspectorHeaderText = ({ className, ...props }) => /* @__PURE__ */ jsx("di
87
88
  "data-slot": "inspector-header-text",
88
89
  ...props
89
90
  });
90
- const InspectorTitle = ({ children, className, ...props }) => /* @__PURE__ */ jsx("h2", {
91
- className: cn("truncate text-xs font-medium [unicode-bidi:isolate]", className),
91
+ const InspectorTitle = ({ children, className, ...props }) => /* @__PURE__ */ jsx(TruncatedText, {
92
+ className: cn("text-xs font-medium [unicode-bidi:isolate]", className),
92
93
  "data-slot": "inspector-title",
93
- dir: "auto",
94
- ...props,
95
- children: withoutDirectionalControls(children)
96
- });
97
- const InspectorDescription = ({ className, ...props }) => /* @__PURE__ */ jsx("p", {
98
- className: cn("text-muted-foreground text-2xs truncate [unicode-bidi:isolate]", className),
94
+ render: /* @__PURE__ */ jsx("h2", {
95
+ dir: "auto",
96
+ ...props,
97
+ children: withoutDirectionalControls(children)
98
+ }),
99
+ tooltip: withoutDirectionalControls(children)
100
+ });
101
+ const InspectorDescription = ({ children, className, ...props }) => /* @__PURE__ */ jsx(TruncatedText, {
102
+ className: cn("text-muted-foreground text-2xs [unicode-bidi:isolate]", className),
99
103
  "data-slot": "inspector-description",
100
- dir: "auto",
101
- ...props
104
+ render: /* @__PURE__ */ jsx("p", {
105
+ dir: "auto",
106
+ ...props
107
+ }),
108
+ children
102
109
  });
103
110
  const InspectorActions = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
104
111
  className: cn("flex shrink-0 items-center gap-1 ps-4", className),
@@ -146,16 +153,20 @@ const InspectorProperty = ({ className, ...props }) => /* @__PURE__ */ jsx("div"
146
153
  "data-slot": "inspector-property",
147
154
  ...props
148
155
  });
149
- const InspectorPropertyLabel = ({ className, ...props }) => /* @__PURE__ */ jsx("dt", {
150
- className: cn("text-muted-foreground min-w-0 truncate text-sm font-medium", className),
156
+ const InspectorPropertyLabel = ({ children, className, ...props }) => /* @__PURE__ */ jsx(TruncatedText, {
157
+ className: cn("text-muted-foreground text-sm font-medium", className),
151
158
  "data-slot": "inspector-property-label",
152
- ...props
159
+ render: /* @__PURE__ */ jsx("dt", { ...props }),
160
+ children
153
161
  });
154
- const InspectorPropertyValue = ({ className, ...props }) => /* @__PURE__ */ jsx("dd", {
155
- className: cn("min-w-0 truncate text-sm [unicode-bidi:isolate]", className),
162
+ const InspectorPropertyValue = ({ children, className, ...props }) => /* @__PURE__ */ jsx(TruncatedText, {
163
+ className: cn("text-sm [unicode-bidi:isolate]", className),
156
164
  "data-slot": "inspector-property-value",
157
- dir: "auto",
158
- ...props
165
+ render: /* @__PURE__ */ jsx("dd", {
166
+ dir: "auto",
167
+ ...props
168
+ }),
169
+ children
159
170
  });
160
171
  /** Row-height empty state, so an empty list keeps the list's rhythm. */
161
172
  const InspectorEmptyRow = ({ className, ...props }) => /* @__PURE__ */ jsx("p", {
@@ -1,4 +1,5 @@
1
1
  import { DirectionalIcon } from "../components/directional-icon.js";
2
+ import { TruncatedText } from "../components/truncated-text.js";
2
3
  import { ChevronDownIcon } from "../icons.js";
3
4
  import { cn } from "../lib/utils.js";
4
5
  import { KANBAN_CHROME_TOGGLE_COARSE_TARGET_CLASS } from "./layout-tokens.js";
@@ -33,8 +34,8 @@ const KanbanColumnBandHeader = ({ title, swatch, meta, collapsed, compact = coll
33
34
  })
34
35
  }), compact ? null : /* @__PURE__ */ jsxs(Fragment, { children: [
35
36
  swatch,
36
- /* @__PURE__ */ jsxs("span", {
37
- className: "flex min-w-0 flex-1 items-baseline gap-1.5 truncate text-sm font-semibold",
37
+ /* @__PURE__ */ jsxs(TruncatedText, {
38
+ className: "flex flex-1 items-baseline gap-1.5 text-sm font-semibold",
38
39
  children: [title, meta !== void 0 && /* @__PURE__ */ jsx("span", {
39
40
  className: "text-muted-foreground text-xs font-normal tabular-nums",
40
41
  children: meta
@@ -1,3 +1,4 @@
1
+ import { TruncatedText } from "../components/truncated-text.js";
1
2
  import { cn } from "../lib/utils.js";
2
3
  import "./layout-tokens.js";
3
4
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -20,8 +21,8 @@ const KanbanColumnHeader = ({ swatch, title, meta, calculation, dragHandle, acti
20
21
  children: /* @__PURE__ */ jsxs("div", {
21
22
  className: "sticky start-0 z-10 flex w-fit max-w-full items-center gap-2 bg-inherit",
22
23
  "data-kanban-column-title": "",
23
- children: [swatch, /* @__PURE__ */ jsxs("span", {
24
- className: "flex min-w-0 flex-1 items-center gap-1.5 truncate text-sm font-medium",
24
+ children: [swatch, /* @__PURE__ */ jsxs(TruncatedText, {
25
+ className: "flex flex-1 items-center gap-1.5 text-sm font-medium",
25
26
  children: [title, meta !== void 0 && /* @__PURE__ */ jsx("span", {
26
27
  className: "text-muted-foreground text-xs",
27
28
  children: meta
@@ -1,3 +1,4 @@
1
+ import { TruncatedText } from "../components/truncated-text.js";
1
2
  import { cn } from "../lib/utils.js";
2
3
  import { jsx, jsxs } from "react/jsx-runtime";
3
4
  // src/kanban/sticky-lane.tsx
@@ -58,8 +59,8 @@ const resolveKanbanCardStickyTop = ({ pinnedAbove, rowOffset }) => {
58
59
  const KanbanCollapsedBandCaption = ({ className, label, meta }) => /* @__PURE__ */ jsxs("div", {
59
60
  className: cn("text-muted-foreground sticky flex w-full flex-col items-center gap-2 self-start py-2 text-xs", KANBAN_STICKY_TOP_CLASS, className),
60
61
  "data-kanban-collapsed-band-caption": "",
61
- children: [/* @__PURE__ */ jsx("span", {
62
- className: "max-h-40 truncate font-semibold [writing-mode:vertical-rl]",
62
+ children: [/* @__PURE__ */ jsx(TruncatedText, {
63
+ className: "max-h-40 font-semibold [writing-mode:vertical-rl]",
63
64
  children: label
64
65
  }), /* @__PURE__ */ jsx("span", {
65
66
  className: "tabular-nums",
@@ -1,3 +1,4 @@
1
+ import { stableHash } from "./stable-hash.js";
1
2
  // src/lib/matter-colors.ts
2
3
  const DEFAULT_MATTER_SWATCH = "--option-blue";
3
4
  const MATTER_SWATCHES = [
@@ -10,11 +11,7 @@ const MATTER_SWATCHES = [
10
11
  "--option-orange",
11
12
  "--option-teal"
12
13
  ];
13
- const getMatterSwatch = (id) => {
14
- let hash = 0;
15
- for (let i = 0; i < id.length; i++) hash = Math.imul(hash, 31) + (id.codePointAt(i) ?? 0);
16
- return MATTER_SWATCHES[Math.abs(hash) % MATTER_SWATCHES.length] ?? DEFAULT_MATTER_SWATCH;
17
- };
14
+ const getMatterSwatch = (id) => MATTER_SWATCHES[stableHash(id) % MATTER_SWATCHES.length] ?? DEFAULT_MATTER_SWATCH;
18
15
  const getMatterColor = (id) => `var(${getMatterSwatch(id)})`;
19
16
  const hexColorPattern = /^#?[0-9A-Fa-f]{6}$/u;
20
17
  const toPickerColor = (color) => {
@@ -0,0 +1,2 @@
1
+ /** A stable, non-negative hash of a key, so one key always picks one swatch. */
2
+ export declare const stableHash: (key: string) => number;
@@ -0,0 +1,8 @@
1
+ // src/lib/stable-hash.ts
2
+ /** A stable, non-negative hash of a key, so one key always picks one swatch. */
3
+ const stableHash = (key) => {
4
+ let hash = 0;
5
+ for (let i = 0; i < key.length; i++) hash = Math.imul(hash, 31) + (key.codePointAt(i) ?? 0);
6
+ return Math.abs(hash);
7
+ };
8
+ export { stableHash };
@@ -1,5 +1,6 @@
1
1
  import { BidiText } from "../components/bidi-text.js";
2
2
  import { Button } from "../components/button.js";
3
+ import { TruncatedText } from "../components/truncated-text.js";
3
4
  import { CheckIcon, RotateCcwIcon, Trash2Icon } from "../icons.js";
4
5
  import { cn } from "../lib/utils.js";
5
6
  import { ReviewAuthorAvatar } from "./review-author-avatar.js";
@@ -23,9 +24,9 @@ const ReviewCommentCard = ({ author, timestamp, formattedTime, body, anchorText,
23
24
  children: [
24
25
  /* @__PURE__ */ jsxs("p", {
25
26
  className: "text-muted-foreground text-2xs flex min-w-0 items-baseline gap-1.5",
26
- children: [/* @__PURE__ */ jsx(BidiText, {
27
- as: "span",
28
- className: "text-foreground-strong-muted truncate font-medium",
27
+ children: [/* @__PURE__ */ jsx(TruncatedText, {
28
+ className: "text-foreground-strong-muted font-medium",
29
+ render: /* @__PURE__ */ jsx(BidiText, { as: "span" }),
29
30
  children: author.name
30
31
  }), /* @__PURE__ */ jsx("time", {
31
32
  className: "shrink-0 tabular-nums",
@@ -38,9 +39,9 @@ const ReviewCommentCard = ({ author, timestamp, formattedTime, body, anchorText,
38
39
  className: "text-foreground text-xs wrap-anywhere",
39
40
  children: body
40
41
  }),
41
- anchorText === void 0 || anchorText === "" ? null : /* @__PURE__ */ jsx(BidiText, {
42
- as: "p",
43
- className: "text-muted-foreground text-2xs mt-0.5 truncate italic",
42
+ anchorText === void 0 || anchorText === "" ? null : /* @__PURE__ */ jsx(TruncatedText, {
43
+ className: "text-muted-foreground text-2xs mt-0.5 italic",
44
+ render: /* @__PURE__ */ jsx(BidiText, { as: "p" }),
44
45
  children: anchorText
45
46
  }),
46
47
  isStale && staleLabel !== void 0 ? /* @__PURE__ */ jsx("p", {
@@ -7,6 +7,12 @@ import { ReactNode } from "react";
7
7
  */
8
8
  export type ReviewDecisionState = "pending" | "accepted" | "rejected" | "dismissed" | "applying";
9
9
  export type ReviewDecisionSize = "xs" | "sm";
10
+ /**
11
+ * How loudly the pair speaks. `primary` fills Accept, for a surface with one
12
+ * item under review; `quiet` keeps both outlined and ghosted, for a list of
13
+ * items whose one accent is a batch action such as "Accept all".
14
+ */
15
+ export type ReviewDecisionEmphasis = "primary" | "quiet";
10
16
  type ReviewDecisionActionsProps = {
11
17
  state: ReviewDecisionState;
12
18
  onAccept?: (() => void) | undefined;
@@ -14,6 +20,7 @@ type ReviewDecisionActionsProps = {
14
20
  onRevert?: (() => void) | undefined;
15
21
  onReopen?: (() => void) | undefined;
16
22
  size?: ReviewDecisionSize;
23
+ emphasis?: ReviewDecisionEmphasis;
17
24
  /** Labels are supplied by the host: this package carries no catalogs. */
18
25
  acceptLabel?: ReactNode;
19
26
  rejectLabel?: ReactNode;
@@ -26,5 +33,5 @@ type ReviewDecisionActionsProps = {
26
33
  className?: string;
27
34
  };
28
35
  /** Accept / reject / revert / reopen, in one shape, for every review surface. */
29
- export declare const ReviewDecisionActions: ({ state, onAccept, onReject, onRevert, onReopen, size, acceptLabel, rejectLabel, revertLabel, reopenLabel, acceptTooltip, rejectTooltip, disabled, className }: ReviewDecisionActionsProps) => import("react").JSX.Element | null;
36
+ export declare const ReviewDecisionActions: ({ state, onAccept, onReject, onRevert, onReopen, size, emphasis, acceptLabel, rejectLabel, revertLabel, reopenLabel, acceptTooltip, rejectTooltip, disabled, className }: ReviewDecisionActionsProps) => import("react").JSX.Element | null;
30
37
  export {};
@@ -4,12 +4,21 @@ import { cn } from "../lib/utils.js";
4
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
5
  import { panic } from "better-result";
6
6
  // src/review/review-decision-actions.tsx
7
+ const ACCEPT_VARIANT = {
8
+ primary: "default",
9
+ quiet: "outline"
10
+ };
11
+ const REJECT_VARIANT = {
12
+ primary: "outline",
13
+ quiet: "ghost"
14
+ };
7
15
  /** Accept / reject / revert / reopen, in one shape, for every review surface. */
8
- const ReviewDecisionActions = ({ state, onAccept, onReject, onRevert, onReopen, size = "sm", acceptLabel, rejectLabel, revertLabel, reopenLabel, acceptTooltip, rejectTooltip, disabled = false, className }) => {
16
+ const ReviewDecisionActions = ({ state, onAccept, onReject, onRevert, onReopen, size = "sm", emphasis = "primary", acceptLabel, rejectLabel, revertLabel, reopenLabel, acceptTooltip, rejectTooltip, disabled = false, className }) => {
9
17
  const controls = renderControls({
10
18
  acceptLabel,
11
19
  acceptTooltip,
12
20
  disabled,
21
+ emphasis,
13
22
  onAccept,
14
23
  onReject,
15
24
  onReopen,
@@ -28,7 +37,7 @@ const ReviewDecisionActions = ({ state, onAccept, onReject, onRevert, onReopen,
28
37
  children: controls
29
38
  });
30
39
  };
31
- const renderControls = ({ acceptLabel, acceptTooltip, disabled, onAccept, onReject, onReopen, onRevert, rejectLabel, rejectTooltip, reopenLabel, revertLabel, size, state }) => {
40
+ const renderControls = ({ acceptLabel, acceptTooltip, disabled, emphasis, onAccept, onReject, onReopen, onRevert, rejectLabel, rejectTooltip, reopenLabel, revertLabel, size, state }) => {
32
41
  switch (state) {
33
42
  case "pending":
34
43
  case "applying": {
@@ -38,14 +47,14 @@ const renderControls = ({ acceptLabel, acceptTooltip, disabled, onAccept, onReje
38
47
  onClick: onAccept,
39
48
  size,
40
49
  tooltip: acceptTooltip,
41
- variant: "default",
50
+ variant: ACCEPT_VARIANT[emphasis],
42
51
  children: [/* @__PURE__ */ jsx(CheckIcon, {}), acceptLabel]
43
52
  }), onReject === void 0 ? null : /* @__PURE__ */ jsxs(Button, {
44
53
  disabled: inert,
45
54
  onClick: onReject,
46
55
  size,
47
56
  tooltip: rejectTooltip,
48
- variant: "outline",
57
+ variant: REJECT_VARIANT[emphasis],
49
58
  children: [/* @__PURE__ */ jsx(XIcon, {}), rejectLabel]
50
59
  })] });
51
60
  }
@@ -659,6 +659,30 @@
659
659
  --option-empty: color-mix(in oklch, #4c566a 60%, #d8dee9);
660
660
  }
661
661
 
662
+ /* ---- Topic swatches ----
663
+ * Time no matter claimed yet, grouped by what it was spent on (a document, a
664
+ * window, an app). A fixed low chroma, a fraction of the default matter
665
+ * swatches', and no matter edge where they are drawn, so a topic never reads
666
+ * as a matter; the hues only tell neighbouring topics apart. Lightness is set
667
+ * per colour scheme so the tint mixed from it stays readable under text. */
668
+ :root {
669
+ --topic-sand: oklch(0.68 0.05 80);
670
+ --topic-sage: oklch(0.68 0.05 150);
671
+ --topic-mist: oklch(0.68 0.05 220);
672
+ --topic-heather: oklch(0.68 0.05 320);
673
+ --topic-clay: oklch(0.68 0.05 40);
674
+ --topic-slate: oklch(0.68 0.05 265);
675
+ }
676
+
677
+ .dark {
678
+ --topic-sand: oklch(0.7 0.05 80);
679
+ --topic-sage: oklch(0.7 0.05 150);
680
+ --topic-mist: oklch(0.7 0.05 220);
681
+ --topic-heather: oklch(0.7 0.05 320);
682
+ --topic-clay: oklch(0.7 0.05 40);
683
+ --topic-slate: oklch(0.7 0.05 265);
684
+ }
685
+
662
686
  /* ---- Derived backgrounds and foregrounds: light ---- */
663
687
  :root {
664
688
  --option-red-bg: color-mix(in srgb, var(--option-red) 12%, var(--background));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stll/ui",
3
- "version": "0.67.0",
3
+ "version": "0.69.0",
4
4
  "description": "Stella's design system: bidi-aware React primitives built on Base UI, the dockable inspector pane, and the Tailwind v4 theme they are styled with.",
5
5
  "keywords": [
6
6
  "base-ui",
@@ -406,6 +406,14 @@
406
406
  "types": "./dist/review/text-mark.d.ts",
407
407
  "import": "./dist/review/text-mark.js"
408
408
  },
409
+ "./run-state-mark": {
410
+ "react-native": {
411
+ "types": "./dist/components/run-state-mark.native.d.ts",
412
+ "import": "./dist/components/run-state-mark.native.js"
413
+ },
414
+ "types": "./dist/components/run-state-mark.d.ts",
415
+ "import": "./dist/components/run-state-mark.js"
416
+ },
409
417
  "./scroll-area": {
410
418
  "types": "./dist/components/scroll-area.d.ts",
411
419
  "import": "./dist/components/scroll-area.js"
@@ -909,8 +917,8 @@
909
917
  "test:browser": "playwright test --config playwright.config.ts",
910
918
  "pack:check": "cd ../.. && bun scripts/check-published-exports.ts packages/ui",
911
919
  "typecheck": "bun check --no-pretty --all --project=tsconfig.json",
912
- "lint": "cd ../.. && bun --bun oxlint -c oxlint.config.ts --report-unused-disable-directives-severity=error --type-aware --type-check packages/ui",
913
- "lint:fix": "cd ../.. && bun --bun oxlint -c oxlint.config.ts --type-aware --fix packages/ui",
920
+ "lint": "cd ../.. && bun scripts/lint.ts packages/ui",
921
+ "lint:fix": "cd ../.. && bun scripts/lint.ts --fix packages/ui",
914
922
  "prepack": "bun run build"
915
923
  },
916
924
  "dependencies": {