@ai-matrx/design-system 0.49.59 → 0.50.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/index.d.cts CHANGED
@@ -1698,34 +1698,17 @@ declare const SheetTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.D
1698
1698
  * Studio and the dashboard each had a bare `<Select>` with different copy,
1699
1699
  * different placement and no default control. Three UIs for one fact.
1700
1700
  *
1701
- * WHAT IT SAYS, IN WORDS (the rule the origin learned the hard way, five
1702
- * reports across three rounds): the panel states which organization is
1703
- * ACTIVE — "Working in Acme" — because a check mark and an accent colour are
1704
- * not an answer to "which one am I in", and the default switch's sentence is
1705
- * about STARTUP, not about now. A control whose only sentence describes a
1706
- * different fact than the one the reader is looking for lies by omission.
1707
- *
1708
- * It is PRESENTATIONAL. The host supplies the memberships, the active id, the
1709
- * default id, and two callbacks; it owns no fetch, no storage, no resolution.
1710
- * The resolution order (this device's stored selection → sole membership →
1711
- * make the person pick) and the shared cookie that carries the stored
1712
- * selection live in the host's org-context module and `@ai-matrx/data/db`'s
1713
- * `createActiveOrgCookie`. Persistence boundary (C10): none.
1714
- *
1715
- * 🚨 THE STAR DOES NOT PICK AN ORGANIZATION, AND MUST NOT SAY IT DOES.
1716
- * Until 2026-09-21 this switch read "Set as my default" and promised "Next
1717
- * startup opens Acme" / "Auto-select this at startup". That stopped being true
1718
- * on 2026-09-19, when the owner deleted the durable-default rung from the
1719
- * resolver — "a default organization is at most a per-client DISPLAY
1720
- * preference; the org picker may show it and nothing else may read it" — and
1721
- * nobody changed the words. Crew D2 met exactly that on 2026-09-21: the
1722
- * selection gone on a fresh browser profile "with no persistence despite a
1723
- * 'Set as my default' toggle implying it should stick". A control wearing a
1724
- * false sentence is the one thing a screen may never do, so the switch now
1725
- * says the thing it actually does — and DOES it: the starred organization is
1726
- * drawn first, which is what a star is for in Slack and in Linear, and which
1727
- * is the difference between finding your own workspace instantly and hunting
1728
- * it among ninety.
1701
+ * THE ACTIVE ROW IS THE ANSWER (owner, 2026-10-01). The active organization is
1702
+ * the highlighted row — tinted, bold, ringed and checked — and nothing else:
1703
+ * the "Working in …" sentence above the list is gone ("It should be
1704
+ * highlighted and clear"), and so is the "Keep it at the top" switch.
1705
+ *
1706
+ * FAVORITES (owner, 2026-10-01: "add a star you can click to favorite any of
1707
+ * them"). Every row carries its own star; a person favorites as many as they
1708
+ * like, and favorites are drawn first. The star never selects the row — it is
1709
+ * a sibling button, not part of the row — and it picks no organization for
1710
+ * anyone: which organization you are working in is this device's own
1711
+ * remembered choice (the host's resolver), never a star.
1729
1712
  *
1730
1713
  * 🚨 A HUNDRED ROWS IS NOT A LIST (VERIFIER-8 MEDIUM-3, 2026-09-21).
1731
1714
  * The first screen of the data product offered the admin account's 116
@@ -1802,43 +1785,47 @@ interface OrganizationPickerProps {
1802
1785
  organizations: readonly OrganizationPickerOrganization[];
1803
1786
  /** The organization the person is acting in right now; null = nothing chosen. */
1804
1787
  activeOrganizationId: string | null;
1805
- /** The durable "open this at startup" preference; null = none pinned. */
1806
- defaultOrganizationId?: string | null;
1788
+ /** The person's favorite organizations, drawn first and starred. */
1789
+ favoriteOrganizationIds?: readonly string[];
1807
1790
  loading?: boolean;
1808
1791
  /** Memberships could not be read. The panel says so instead of showing an empty list. */
1809
1792
  loadFailed?: boolean;
1810
1793
  /** Choose the active organization. Hosts persist + refetch here. */
1811
1794
  onSelect: (organization: OrganizationPickerOrganization) => void;
1812
1795
  /**
1813
- * Pin (id) or clear (null) the default organization. Omit to hide the
1814
- * default switch entirely — a host with no write path must not show a
1815
- * control that does nothing.
1796
+ * Favorite (true) or unfavorite (false) one organization. Omit to draw no
1797
+ * star buttons — a host with no write path must not show a control that
1798
+ * does nothing (a favorite is still marked, read-only).
1816
1799
  */
1817
- onSetDefault?: ((organizationId: string | null) => void) | undefined;
1800
+ onToggleFavorite?: ((organizationId: string, favorite: boolean) => void) | undefined;
1818
1801
  /** Hide the "Organization" eyebrow when the host already labels the section. */
1819
1802
  hideHeading?: boolean;
1820
1803
  /** Extra classes on each row button (e.g. a host menu's item class). */
1821
1804
  itemClassName?: string;
1822
- /**
1823
- * Hide the "Working in …" / "No organization selected" line — for a host
1824
- * whose choice is not the ACTIVE organization (HR's employer chooser).
1825
- */
1826
- hideStatus?: boolean;
1827
1805
  /** The noun on the disclosure that holds `folded` rows. Default "More". */
1828
1806
  foldedLabel?: string;
1829
1807
  className?: string;
1830
1808
  }
1809
+ declare function organizationColor(seed: string): {
1810
+ background: string;
1811
+ color: string;
1812
+ };
1831
1813
  /**
1832
- * The compact organization identity mark — the same 2–3 letter tile every
1833
- * Matrx surface draws. Falls back to the first letter of the name when the
1834
- * report has no abbreviation, so a row never renders an empty tile.
1814
+ * THE organization mark — its own logo when it has one, otherwise its 2–3
1815
+ * letter abbreviation on its colour tile (the first letter of the name when the
1816
+ * report has no abbreviation, so a tile is never empty). Three letters get a
1817
+ * smaller face than two so they fit the tile. Every Matrx surface draws this.
1835
1818
  */
1836
- declare function OrganizationAbbreviation({ abbreviation, name, className, }: {
1837
- abbreviation?: string | null | undefined;
1819
+ declare function OrganizationMark({ id, name, abbreviation, logoUrl, size, className, }: {
1820
+ /** Seeds the colour; the name is used when absent. */
1821
+ id?: string | null | undefined;
1838
1822
  name: string;
1823
+ abbreviation?: string | null | undefined;
1824
+ logoUrl?: string | null | undefined;
1825
+ size?: number;
1839
1826
  className?: string | undefined;
1840
1827
  }): React.JSX.Element;
1841
- declare function OrganizationPicker({ organizations, activeOrganizationId, defaultOrganizationId, loading, loadFailed, onSelect, onSetDefault, hideHeading, itemClassName, hideStatus, foldedLabel, className, }: OrganizationPickerProps): React.JSX.Element;
1828
+ declare function OrganizationPicker({ organizations, activeOrganizationId, favoriteOrganizationIds, loading, loadFailed, onSelect, onToggleFavorite, hideHeading, itemClassName, foldedLabel, className, }: OrganizationPickerProps): React.JSX.Element;
1842
1829
 
1843
1830
  /**
1844
1831
  * Skeleton — the "content is coming" placeholder.
@@ -2509,4 +2496,4 @@ declare const FORBIDDEN_HOST_MOTION_UTILITIES: readonly ["animate-in", "animate-
2509
2496
  */
2510
2497
  declare const FIELD_SURFACE_CLASS = "border border-border bg-card";
2511
2498
 
2512
- export { ALL_MOTION_CLASSES, ARCHIVE_FILTER_LABELS, ARCHIVE_FILTER_VALUES, ARCHIVE_LABEL, Accordion, AccordionContent, AccordionItem, type AccordionProps, type AccordionSize, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogContentPrimitive, type AlertDialogContentProps, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, ArchiveFilter, type ArchiveFilterProps, type ArchiveFilterValue, ArchivedDisclosure, type ArchivedDisclosureProps, Avatar, AvatarFallback, AvatarImage, type AvatarProps, type AvatarSize, Badge, type BadgeProps, BasicInput, BasicTextarea, BottomSheet, BottomSheetBody, type BottomSheetBodyProps, BottomSheetFooter, type BottomSheetFooterProps, BottomSheetHeader, type BottomSheetHeaderProps, type BottomSheetProps, Button, type ButtonProps, CENTERED_DIALOG, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, type CardSize, CardTitle, Checkbox, type CheckboxProps, type CheckboxSize, Collapsible, CollapsibleContent, type CollapsibleContentProps, CollapsibleTrigger, Command, CommandDialog, type CommandDialogProps, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, ConfirmDialogHost, type ConfirmDialogProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, type ContextMenuContentProps, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, type CreatableOption, CreatablePicker, type CreatablePickerProps, DEFAULT_ARCHIVE_FILTER, DEFAULT_SCORE_THRESHOLDS, Dialog, DialogClose, DialogContent, DialogContentPrimitive, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerContentPrimitive, type DrawerContentProps, DrawerDescription, type DrawerDirection, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, type DrawerProps, type DrawerSize, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableLabel, type EditableLabelActivation, type EditableLabelCommitMode, type EditableLabelProps, EnterInput, type EnterInputProps, ErrorActions, type ErrorActionsInput, ErrorActionsProvider, type ErrorActionsRecord, type ErrorActionsRenderer, ErrorBox, type ErrorBoxProps, FIELD_SURFACE_CLASS, FLOATING_LAYER_ATTR, FORBIDDEN_HOST_MOTION_UTILITIES, FloatingLayer, HoverCard, HoverCardContent, type HoverCardContentProps, HoverCardTrigger, Input, type InputProps, type InputVariant, InputWithPrefix, type InputWithPrefixProps, LAYER_FRONT_EVENT, Label, type LayerFrontDetail, MOBILE_BREAKPOINT, MODAL_LAYER_Z, MOTION_BOTTOM_SHEET, MOTION_DIALOG, MOTION_OVERLAY, MOTION_POPPER, MOTION_PULSE, MOTION_SHEET, MOTION_SPIN, NATIVE_TITLE_OPT_OUT_ATTR, OrganizationAbbreviation, OrganizationPicker, type OrganizationPickerOrganization, type OrganizationPickerProps, OverflowToolbar, type OverflowToolbarProps, POPPER_OFFSET, type PickerIcon, Popover, PopoverAnchor, PopoverContent, type PopoverContentProps, PopoverTrigger, PortalContainerProvider, type PortalContainerProviderProps, Progress, type ProgressProps, type ProgressTone, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RadioGroupSize, RadixDialogModalProvider, type RadixDialogModalProviderProps, ResizableHandle, type ResizableHandleProps, type ResizableHandleSize, ResizablePanel, ResizablePanelGroup, ScoreRing, type ScoreRingProps, type ScoreThresholds, ScrollArea, type ScrollAreaProps, ScrollBar, type ScrollFadeState, type SegmentOption, SegmentedControl, type SegmentedControlProps, Select, SelectChevron, SelectContent, type SelectContentProps, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, type SelectTriggerProps, SelectValue, Separator, Sheet, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderSize, Switch, type SwitchProps, type SwitchSize, TabbedBottomSheet, type TabbedBottomSheetProps, type TabbedBottomSheetTab, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableSize, Tabs, TabsContent, TabsList, TabsTrigger, TabsTriggerCore, Textarea, type TextareaProps, TextareaWithPrefix, type TextareaWithPrefixProps, Toggle, ToggleGroup, ToggleGroupItem, type ToggleGroupItemProps, type ToggleGroupProps, type ToggleProps, type ToolbarAction, type ToolbarActionTone, type ToolbarIcon, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, type TooltipProviderProps, TooltipTrigger, type UseScrollFadeResult, acquireTitleTooltips, alertVariants, announceLayerFront, archiveFilterFromDisclosure, badgeVariants, buttonVariants, cn, floatingLayerZIndex, isInsideFloatingLayer, isModalLayerOpen, keepFloatingLayersInside, registerModalLayer, scoreAccentBgClasses, scoreRingColorClasses, selectTriggerVariants, sheetVariants, toArchiveFilter, toggleVariants, useAccordionSize, useCardSize, useDialogContainer, useDrawerDirection, useErrorActions, useFloatingLayerZIndex, useIsMobile, useModalLayer, useModalLayerOpen, usePortalContainer, useRadixDialogModal, useScrollFade, useTableSize };
2499
+ export { ALL_MOTION_CLASSES, ARCHIVE_FILTER_LABELS, ARCHIVE_FILTER_VALUES, ARCHIVE_LABEL, Accordion, AccordionContent, AccordionItem, type AccordionProps, type AccordionSize, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogContentPrimitive, type AlertDialogContentProps, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, ArchiveFilter, type ArchiveFilterProps, type ArchiveFilterValue, ArchivedDisclosure, type ArchivedDisclosureProps, Avatar, AvatarFallback, AvatarImage, type AvatarProps, type AvatarSize, Badge, type BadgeProps, BasicInput, BasicTextarea, BottomSheet, BottomSheetBody, type BottomSheetBodyProps, BottomSheetFooter, type BottomSheetFooterProps, BottomSheetHeader, type BottomSheetHeaderProps, type BottomSheetProps, Button, type ButtonProps, CENTERED_DIALOG, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, type CardSize, CardTitle, Checkbox, type CheckboxProps, type CheckboxSize, Collapsible, CollapsibleContent, type CollapsibleContentProps, CollapsibleTrigger, Command, CommandDialog, type CommandDialogProps, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, ConfirmDialogHost, type ConfirmDialogProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, type ContextMenuContentProps, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, type CreatableOption, CreatablePicker, type CreatablePickerProps, DEFAULT_ARCHIVE_FILTER, DEFAULT_SCORE_THRESHOLDS, Dialog, DialogClose, DialogContent, DialogContentPrimitive, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerContentPrimitive, type DrawerContentProps, DrawerDescription, type DrawerDirection, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, type DrawerProps, type DrawerSize, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableLabel, type EditableLabelActivation, type EditableLabelCommitMode, type EditableLabelProps, EnterInput, type EnterInputProps, ErrorActions, type ErrorActionsInput, ErrorActionsProvider, type ErrorActionsRecord, type ErrorActionsRenderer, ErrorBox, type ErrorBoxProps, FIELD_SURFACE_CLASS, FLOATING_LAYER_ATTR, FORBIDDEN_HOST_MOTION_UTILITIES, FloatingLayer, HoverCard, HoverCardContent, type HoverCardContentProps, HoverCardTrigger, Input, type InputProps, type InputVariant, InputWithPrefix, type InputWithPrefixProps, LAYER_FRONT_EVENT, Label, type LayerFrontDetail, MOBILE_BREAKPOINT, MODAL_LAYER_Z, MOTION_BOTTOM_SHEET, MOTION_DIALOG, MOTION_OVERLAY, MOTION_POPPER, MOTION_PULSE, MOTION_SHEET, MOTION_SPIN, NATIVE_TITLE_OPT_OUT_ATTR, OrganizationMark, OrganizationPicker, type OrganizationPickerOrganization, type OrganizationPickerProps, OverflowToolbar, type OverflowToolbarProps, POPPER_OFFSET, type PickerIcon, Popover, PopoverAnchor, PopoverContent, type PopoverContentProps, PopoverTrigger, PortalContainerProvider, type PortalContainerProviderProps, Progress, type ProgressProps, type ProgressTone, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RadioGroupSize, RadixDialogModalProvider, type RadixDialogModalProviderProps, ResizableHandle, type ResizableHandleProps, type ResizableHandleSize, ResizablePanel, ResizablePanelGroup, ScoreRing, type ScoreRingProps, type ScoreThresholds, ScrollArea, type ScrollAreaProps, ScrollBar, type ScrollFadeState, type SegmentOption, SegmentedControl, type SegmentedControlProps, Select, SelectChevron, SelectContent, type SelectContentProps, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, type SelectTriggerProps, SelectValue, Separator, Sheet, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderSize, Switch, type SwitchProps, type SwitchSize, TabbedBottomSheet, type TabbedBottomSheetProps, type TabbedBottomSheetTab, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableSize, Tabs, TabsContent, TabsList, TabsTrigger, TabsTriggerCore, Textarea, type TextareaProps, TextareaWithPrefix, type TextareaWithPrefixProps, Toggle, ToggleGroup, ToggleGroupItem, type ToggleGroupItemProps, type ToggleGroupProps, type ToggleProps, type ToolbarAction, type ToolbarActionTone, type ToolbarIcon, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, type TooltipProviderProps, TooltipTrigger, type UseScrollFadeResult, acquireTitleTooltips, alertVariants, announceLayerFront, archiveFilterFromDisclosure, badgeVariants, buttonVariants, cn, floatingLayerZIndex, isInsideFloatingLayer, isModalLayerOpen, keepFloatingLayersInside, organizationColor, registerModalLayer, scoreAccentBgClasses, scoreRingColorClasses, selectTriggerVariants, sheetVariants, toArchiveFilter, toggleVariants, useAccordionSize, useCardSize, useDialogContainer, useDrawerDirection, useErrorActions, useFloatingLayerZIndex, useIsMobile, useModalLayer, useModalLayerOpen, usePortalContainer, useRadixDialogModal, useScrollFade, useTableSize };
package/dist/index.d.ts CHANGED
@@ -1698,34 +1698,17 @@ declare const SheetTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.D
1698
1698
  * Studio and the dashboard each had a bare `<Select>` with different copy,
1699
1699
  * different placement and no default control. Three UIs for one fact.
1700
1700
  *
1701
- * WHAT IT SAYS, IN WORDS (the rule the origin learned the hard way, five
1702
- * reports across three rounds): the panel states which organization is
1703
- * ACTIVE — "Working in Acme" — because a check mark and an accent colour are
1704
- * not an answer to "which one am I in", and the default switch's sentence is
1705
- * about STARTUP, not about now. A control whose only sentence describes a
1706
- * different fact than the one the reader is looking for lies by omission.
1707
- *
1708
- * It is PRESENTATIONAL. The host supplies the memberships, the active id, the
1709
- * default id, and two callbacks; it owns no fetch, no storage, no resolution.
1710
- * The resolution order (this device's stored selection → sole membership →
1711
- * make the person pick) and the shared cookie that carries the stored
1712
- * selection live in the host's org-context module and `@ai-matrx/data/db`'s
1713
- * `createActiveOrgCookie`. Persistence boundary (C10): none.
1714
- *
1715
- * 🚨 THE STAR DOES NOT PICK AN ORGANIZATION, AND MUST NOT SAY IT DOES.
1716
- * Until 2026-09-21 this switch read "Set as my default" and promised "Next
1717
- * startup opens Acme" / "Auto-select this at startup". That stopped being true
1718
- * on 2026-09-19, when the owner deleted the durable-default rung from the
1719
- * resolver — "a default organization is at most a per-client DISPLAY
1720
- * preference; the org picker may show it and nothing else may read it" — and
1721
- * nobody changed the words. Crew D2 met exactly that on 2026-09-21: the
1722
- * selection gone on a fresh browser profile "with no persistence despite a
1723
- * 'Set as my default' toggle implying it should stick". A control wearing a
1724
- * false sentence is the one thing a screen may never do, so the switch now
1725
- * says the thing it actually does — and DOES it: the starred organization is
1726
- * drawn first, which is what a star is for in Slack and in Linear, and which
1727
- * is the difference between finding your own workspace instantly and hunting
1728
- * it among ninety.
1701
+ * THE ACTIVE ROW IS THE ANSWER (owner, 2026-10-01). The active organization is
1702
+ * the highlighted row — tinted, bold, ringed and checked — and nothing else:
1703
+ * the "Working in …" sentence above the list is gone ("It should be
1704
+ * highlighted and clear"), and so is the "Keep it at the top" switch.
1705
+ *
1706
+ * FAVORITES (owner, 2026-10-01: "add a star you can click to favorite any of
1707
+ * them"). Every row carries its own star; a person favorites as many as they
1708
+ * like, and favorites are drawn first. The star never selects the row — it is
1709
+ * a sibling button, not part of the row — and it picks no organization for
1710
+ * anyone: which organization you are working in is this device's own
1711
+ * remembered choice (the host's resolver), never a star.
1729
1712
  *
1730
1713
  * 🚨 A HUNDRED ROWS IS NOT A LIST (VERIFIER-8 MEDIUM-3, 2026-09-21).
1731
1714
  * The first screen of the data product offered the admin account's 116
@@ -1802,43 +1785,47 @@ interface OrganizationPickerProps {
1802
1785
  organizations: readonly OrganizationPickerOrganization[];
1803
1786
  /** The organization the person is acting in right now; null = nothing chosen. */
1804
1787
  activeOrganizationId: string | null;
1805
- /** The durable "open this at startup" preference; null = none pinned. */
1806
- defaultOrganizationId?: string | null;
1788
+ /** The person's favorite organizations, drawn first and starred. */
1789
+ favoriteOrganizationIds?: readonly string[];
1807
1790
  loading?: boolean;
1808
1791
  /** Memberships could not be read. The panel says so instead of showing an empty list. */
1809
1792
  loadFailed?: boolean;
1810
1793
  /** Choose the active organization. Hosts persist + refetch here. */
1811
1794
  onSelect: (organization: OrganizationPickerOrganization) => void;
1812
1795
  /**
1813
- * Pin (id) or clear (null) the default organization. Omit to hide the
1814
- * default switch entirely — a host with no write path must not show a
1815
- * control that does nothing.
1796
+ * Favorite (true) or unfavorite (false) one organization. Omit to draw no
1797
+ * star buttons — a host with no write path must not show a control that
1798
+ * does nothing (a favorite is still marked, read-only).
1816
1799
  */
1817
- onSetDefault?: ((organizationId: string | null) => void) | undefined;
1800
+ onToggleFavorite?: ((organizationId: string, favorite: boolean) => void) | undefined;
1818
1801
  /** Hide the "Organization" eyebrow when the host already labels the section. */
1819
1802
  hideHeading?: boolean;
1820
1803
  /** Extra classes on each row button (e.g. a host menu's item class). */
1821
1804
  itemClassName?: string;
1822
- /**
1823
- * Hide the "Working in …" / "No organization selected" line — for a host
1824
- * whose choice is not the ACTIVE organization (HR's employer chooser).
1825
- */
1826
- hideStatus?: boolean;
1827
1805
  /** The noun on the disclosure that holds `folded` rows. Default "More". */
1828
1806
  foldedLabel?: string;
1829
1807
  className?: string;
1830
1808
  }
1809
+ declare function organizationColor(seed: string): {
1810
+ background: string;
1811
+ color: string;
1812
+ };
1831
1813
  /**
1832
- * The compact organization identity mark — the same 2–3 letter tile every
1833
- * Matrx surface draws. Falls back to the first letter of the name when the
1834
- * report has no abbreviation, so a row never renders an empty tile.
1814
+ * THE organization mark — its own logo when it has one, otherwise its 2–3
1815
+ * letter abbreviation on its colour tile (the first letter of the name when the
1816
+ * report has no abbreviation, so a tile is never empty). Three letters get a
1817
+ * smaller face than two so they fit the tile. Every Matrx surface draws this.
1835
1818
  */
1836
- declare function OrganizationAbbreviation({ abbreviation, name, className, }: {
1837
- abbreviation?: string | null | undefined;
1819
+ declare function OrganizationMark({ id, name, abbreviation, logoUrl, size, className, }: {
1820
+ /** Seeds the colour; the name is used when absent. */
1821
+ id?: string | null | undefined;
1838
1822
  name: string;
1823
+ abbreviation?: string | null | undefined;
1824
+ logoUrl?: string | null | undefined;
1825
+ size?: number;
1839
1826
  className?: string | undefined;
1840
1827
  }): React.JSX.Element;
1841
- declare function OrganizationPicker({ organizations, activeOrganizationId, defaultOrganizationId, loading, loadFailed, onSelect, onSetDefault, hideHeading, itemClassName, hideStatus, foldedLabel, className, }: OrganizationPickerProps): React.JSX.Element;
1828
+ declare function OrganizationPicker({ organizations, activeOrganizationId, favoriteOrganizationIds, loading, loadFailed, onSelect, onToggleFavorite, hideHeading, itemClassName, foldedLabel, className, }: OrganizationPickerProps): React.JSX.Element;
1842
1829
 
1843
1830
  /**
1844
1831
  * Skeleton — the "content is coming" placeholder.
@@ -2509,4 +2496,4 @@ declare const FORBIDDEN_HOST_MOTION_UTILITIES: readonly ["animate-in", "animate-
2509
2496
  */
2510
2497
  declare const FIELD_SURFACE_CLASS = "border border-border bg-card";
2511
2498
 
2512
- export { ALL_MOTION_CLASSES, ARCHIVE_FILTER_LABELS, ARCHIVE_FILTER_VALUES, ARCHIVE_LABEL, Accordion, AccordionContent, AccordionItem, type AccordionProps, type AccordionSize, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogContentPrimitive, type AlertDialogContentProps, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, ArchiveFilter, type ArchiveFilterProps, type ArchiveFilterValue, ArchivedDisclosure, type ArchivedDisclosureProps, Avatar, AvatarFallback, AvatarImage, type AvatarProps, type AvatarSize, Badge, type BadgeProps, BasicInput, BasicTextarea, BottomSheet, BottomSheetBody, type BottomSheetBodyProps, BottomSheetFooter, type BottomSheetFooterProps, BottomSheetHeader, type BottomSheetHeaderProps, type BottomSheetProps, Button, type ButtonProps, CENTERED_DIALOG, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, type CardSize, CardTitle, Checkbox, type CheckboxProps, type CheckboxSize, Collapsible, CollapsibleContent, type CollapsibleContentProps, CollapsibleTrigger, Command, CommandDialog, type CommandDialogProps, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, ConfirmDialogHost, type ConfirmDialogProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, type ContextMenuContentProps, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, type CreatableOption, CreatablePicker, type CreatablePickerProps, DEFAULT_ARCHIVE_FILTER, DEFAULT_SCORE_THRESHOLDS, Dialog, DialogClose, DialogContent, DialogContentPrimitive, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerContentPrimitive, type DrawerContentProps, DrawerDescription, type DrawerDirection, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, type DrawerProps, type DrawerSize, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableLabel, type EditableLabelActivation, type EditableLabelCommitMode, type EditableLabelProps, EnterInput, type EnterInputProps, ErrorActions, type ErrorActionsInput, ErrorActionsProvider, type ErrorActionsRecord, type ErrorActionsRenderer, ErrorBox, type ErrorBoxProps, FIELD_SURFACE_CLASS, FLOATING_LAYER_ATTR, FORBIDDEN_HOST_MOTION_UTILITIES, FloatingLayer, HoverCard, HoverCardContent, type HoverCardContentProps, HoverCardTrigger, Input, type InputProps, type InputVariant, InputWithPrefix, type InputWithPrefixProps, LAYER_FRONT_EVENT, Label, type LayerFrontDetail, MOBILE_BREAKPOINT, MODAL_LAYER_Z, MOTION_BOTTOM_SHEET, MOTION_DIALOG, MOTION_OVERLAY, MOTION_POPPER, MOTION_PULSE, MOTION_SHEET, MOTION_SPIN, NATIVE_TITLE_OPT_OUT_ATTR, OrganizationAbbreviation, OrganizationPicker, type OrganizationPickerOrganization, type OrganizationPickerProps, OverflowToolbar, type OverflowToolbarProps, POPPER_OFFSET, type PickerIcon, Popover, PopoverAnchor, PopoverContent, type PopoverContentProps, PopoverTrigger, PortalContainerProvider, type PortalContainerProviderProps, Progress, type ProgressProps, type ProgressTone, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RadioGroupSize, RadixDialogModalProvider, type RadixDialogModalProviderProps, ResizableHandle, type ResizableHandleProps, type ResizableHandleSize, ResizablePanel, ResizablePanelGroup, ScoreRing, type ScoreRingProps, type ScoreThresholds, ScrollArea, type ScrollAreaProps, ScrollBar, type ScrollFadeState, type SegmentOption, SegmentedControl, type SegmentedControlProps, Select, SelectChevron, SelectContent, type SelectContentProps, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, type SelectTriggerProps, SelectValue, Separator, Sheet, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderSize, Switch, type SwitchProps, type SwitchSize, TabbedBottomSheet, type TabbedBottomSheetProps, type TabbedBottomSheetTab, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableSize, Tabs, TabsContent, TabsList, TabsTrigger, TabsTriggerCore, Textarea, type TextareaProps, TextareaWithPrefix, type TextareaWithPrefixProps, Toggle, ToggleGroup, ToggleGroupItem, type ToggleGroupItemProps, type ToggleGroupProps, type ToggleProps, type ToolbarAction, type ToolbarActionTone, type ToolbarIcon, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, type TooltipProviderProps, TooltipTrigger, type UseScrollFadeResult, acquireTitleTooltips, alertVariants, announceLayerFront, archiveFilterFromDisclosure, badgeVariants, buttonVariants, cn, floatingLayerZIndex, isInsideFloatingLayer, isModalLayerOpen, keepFloatingLayersInside, registerModalLayer, scoreAccentBgClasses, scoreRingColorClasses, selectTriggerVariants, sheetVariants, toArchiveFilter, toggleVariants, useAccordionSize, useCardSize, useDialogContainer, useDrawerDirection, useErrorActions, useFloatingLayerZIndex, useIsMobile, useModalLayer, useModalLayerOpen, usePortalContainer, useRadixDialogModal, useScrollFade, useTableSize };
2499
+ export { ALL_MOTION_CLASSES, ARCHIVE_FILTER_LABELS, ARCHIVE_FILTER_VALUES, ARCHIVE_LABEL, Accordion, AccordionContent, AccordionItem, type AccordionProps, type AccordionSize, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogContentPrimitive, type AlertDialogContentProps, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, ArchiveFilter, type ArchiveFilterProps, type ArchiveFilterValue, ArchivedDisclosure, type ArchivedDisclosureProps, Avatar, AvatarFallback, AvatarImage, type AvatarProps, type AvatarSize, Badge, type BadgeProps, BasicInput, BasicTextarea, BottomSheet, BottomSheetBody, type BottomSheetBodyProps, BottomSheetFooter, type BottomSheetFooterProps, BottomSheetHeader, type BottomSheetHeaderProps, type BottomSheetProps, Button, type ButtonProps, CENTERED_DIALOG, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, type CardSize, CardTitle, Checkbox, type CheckboxProps, type CheckboxSize, Collapsible, CollapsibleContent, type CollapsibleContentProps, CollapsibleTrigger, Command, CommandDialog, type CommandDialogProps, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, ConfirmDialogHost, type ConfirmDialogProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, type ContextMenuContentProps, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, type CreatableOption, CreatablePicker, type CreatablePickerProps, DEFAULT_ARCHIVE_FILTER, DEFAULT_SCORE_THRESHOLDS, Dialog, DialogClose, DialogContent, DialogContentPrimitive, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerContentPrimitive, type DrawerContentProps, DrawerDescription, type DrawerDirection, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, type DrawerProps, type DrawerSize, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableLabel, type EditableLabelActivation, type EditableLabelCommitMode, type EditableLabelProps, EnterInput, type EnterInputProps, ErrorActions, type ErrorActionsInput, ErrorActionsProvider, type ErrorActionsRecord, type ErrorActionsRenderer, ErrorBox, type ErrorBoxProps, FIELD_SURFACE_CLASS, FLOATING_LAYER_ATTR, FORBIDDEN_HOST_MOTION_UTILITIES, FloatingLayer, HoverCard, HoverCardContent, type HoverCardContentProps, HoverCardTrigger, Input, type InputProps, type InputVariant, InputWithPrefix, type InputWithPrefixProps, LAYER_FRONT_EVENT, Label, type LayerFrontDetail, MOBILE_BREAKPOINT, MODAL_LAYER_Z, MOTION_BOTTOM_SHEET, MOTION_DIALOG, MOTION_OVERLAY, MOTION_POPPER, MOTION_PULSE, MOTION_SHEET, MOTION_SPIN, NATIVE_TITLE_OPT_OUT_ATTR, OrganizationMark, OrganizationPicker, type OrganizationPickerOrganization, type OrganizationPickerProps, OverflowToolbar, type OverflowToolbarProps, POPPER_OFFSET, type PickerIcon, Popover, PopoverAnchor, PopoverContent, type PopoverContentProps, PopoverTrigger, PortalContainerProvider, type PortalContainerProviderProps, Progress, type ProgressProps, type ProgressTone, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RadioGroupSize, RadixDialogModalProvider, type RadixDialogModalProviderProps, ResizableHandle, type ResizableHandleProps, type ResizableHandleSize, ResizablePanel, ResizablePanelGroup, ScoreRing, type ScoreRingProps, type ScoreThresholds, ScrollArea, type ScrollAreaProps, ScrollBar, type ScrollFadeState, type SegmentOption, SegmentedControl, type SegmentedControlProps, Select, SelectChevron, SelectContent, type SelectContentProps, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, type SelectTriggerProps, SelectValue, Separator, Sheet, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderSize, Switch, type SwitchProps, type SwitchSize, TabbedBottomSheet, type TabbedBottomSheetProps, type TabbedBottomSheetTab, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableSize, Tabs, TabsContent, TabsList, TabsTrigger, TabsTriggerCore, Textarea, type TextareaProps, TextareaWithPrefix, type TextareaWithPrefixProps, Toggle, ToggleGroup, ToggleGroupItem, type ToggleGroupItemProps, type ToggleGroupProps, type ToggleProps, type ToolbarAction, type ToolbarActionTone, type ToolbarIcon, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, type TooltipProviderProps, TooltipTrigger, type UseScrollFadeResult, acquireTitleTooltips, alertVariants, announceLayerFront, archiveFilterFromDisclosure, badgeVariants, buttonVariants, cn, floatingLayerZIndex, isInsideFloatingLayer, isModalLayerOpen, keepFloatingLayersInside, organizationColor, registerModalLayer, scoreAccentBgClasses, scoreRingColorClasses, selectTriggerVariants, sheetVariants, toArchiveFilter, toggleVariants, useAccordionSize, useCardSize, useDialogContainer, useDrawerDirection, useErrorActions, useFloatingLayerZIndex, useIsMobile, useModalLayer, useModalLayerOpen, usePortalContainer, useRadixDialogModal, useScrollFade, useTableSize };