@ai-matrx/design-system 0.86.351 → 0.86.352

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/desktop.css CHANGED
@@ -549,6 +549,16 @@
549
549
  padding-inline: var(--dialog-pad);
550
550
  border-block: 1px solid transparent;
551
551
  }
552
+ /* A body's least height (DialogBody minHeight): it grows with its content above it, up to the sheet's max. */
553
+ [data-desktop-sheet] > [data-slot="sheet-body"][data-min-height="sm"] {
554
+ min-height: 10rem;
555
+ }
556
+ [data-desktop-sheet] > [data-slot="sheet-body"][data-min-height="md"] {
557
+ min-height: 15rem;
558
+ }
559
+ [data-desktop-sheet] > [data-slot="sheet-body"][data-min-height="lg"] {
560
+ min-height: 20rem;
561
+ }
552
562
  [data-desktop-sheet] > [data-slot="sheet-body"][data-overflowing] {
553
563
  border-block-color: var(--mx-separator);
554
564
  padding-block: 0.75rem;
@@ -1338,13 +1338,15 @@ interface TableFilterBarProps<T> extends TableFilterMenuProps<T> {
1338
1338
  shown: number;
1339
1339
  /** What the rows are, for the search field's name ("Search processes"). */
1340
1340
  label: string;
1341
+ /** What one row is, singular and plural (["chat", "chats"]): the count then says "2 chats", "1 of 2 chats", never a bare number. */
1342
+ noun?: readonly [string, string] | undefined;
1341
1343
  }
1342
1344
  /**
1343
1345
  * The table's own filter bar (Finder's search bar, Mail's filter tokens), drawn above its header
1344
1346
  * at one fixed height whether or not a filter is on, so the rows never move when one changes: the
1345
1347
  * active filters' tokens (or the row count) lead; the search field and the filter button trail.
1346
1348
  */
1347
- declare function TableFilterBar<T>({ columns, rows, state, onChange, shown, label }: TableFilterBarProps<T>): React.JSX.Element;
1349
+ declare function TableFilterBar<T>({ columns, rows, state, onChange, shown, label, noun }: TableFilterBarProps<T>): React.JSX.Element;
1348
1350
  declare function ClearFiltersButton({ onClear, className }: {
1349
1351
  onClear: () => void;
1350
1352
  className?: string;
@@ -1508,6 +1510,8 @@ interface DataTableProps<T> extends Omit<React.HTMLAttributes<HTMLDivElement>, "
1508
1510
  * when the page draws the controls itself (`SearchField` + `TableFilterMenu` in its header's
1509
1511
  * actions) and passes `filterState`. */
1510
1512
  filterBar?: boolean;
1513
+ /** What one row is, singular and plural (["chat", "chats"]): the filter bar's count says "2 chats". */
1514
+ noun?: readonly [string, string];
1511
1515
  className?: string;
1512
1516
  }
1513
1517
  /** Which optional columns start hidden (`Column.optional === "hidden"`). */
@@ -1519,7 +1523,7 @@ declare function initiallyHiddenColumns(columns: ReadonlyArray<Pick<Column<never
1519
1523
  * column kinds sized like Activity Monitor's, the accent selection while focused. Arrow keys move
1520
1524
  * between rows when rows are selectable.
1521
1525
  */
1522
- declare function DataTable<T>({ rowKey, onRowSelect, selectedKey, selectedKeys, onSelectedKeysChange, empty, striped, detail, isDisabled, rowAction, rowMenu, rowButtons, defaultSort, rowData, limit, sort: sortProp, onSortChange, selection, onRowOpen, subRows, outline, expandable, onOutlineChange, rowSize, fill, spare, rowContextMenu, hiddenColumns, onHiddenColumnsChange, groups, filterState, onFilterStateChange, defaultFilter, filterBar, className, "aria-label": ariaLabel, columns: allColumns, rows: givenRows, ...rest }: DataTableProps<T>): React.JSX.Element;
1526
+ declare function DataTable<T>({ rowKey, onRowSelect, selectedKey, selectedKeys, onSelectedKeysChange, empty, striped, detail, isDisabled, rowAction, rowMenu, rowButtons, defaultSort, rowData, limit, sort: sortProp, onSortChange, selection, onRowOpen, subRows, outline, expandable, onOutlineChange, rowSize, fill, spare, rowContextMenu, hiddenColumns, onHiddenColumnsChange, groups, filterState, onFilterStateChange, defaultFilter, filterBar, noun, className, "aria-label": ariaLabel, columns: allColumns, rows: givenRows, ...rest }: DataTableProps<T>): React.JSX.Element;
1523
1527
  interface NameCellProps {
1524
1528
  /** The thing's name: it gets the room first, ends in an ellipsis when it must, and its tooltip
1525
1529
  * is the whole name. */
@@ -2875,7 +2879,15 @@ declare function DialogHeader({ className, ...props }: React.HTMLAttributes<HTML
2875
2879
  * button bar stay put, and only this body scrolls between them. When it holds more than shows, a
2876
2880
  * hairline marks each edge it scrolls under, as System Settings' sheets do; a short body has none.
2877
2881
  */
2878
- declare function DialogBody({ className, children, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
2882
+ interface DialogBodyProps extends React.HTMLAttributes<HTMLDivElement> {
2883
+ /**
2884
+ * The least the body is tall (a result sheet: Finder's and Xcode's keep a few rows of room however
2885
+ * few rows there are): `sm` 10 rem, `md` 15 rem, `lg` 20 rem. Above it the sheet grows with its
2886
+ * content up to its max height, then only the body scrolls. Unset: as short as its content.
2887
+ */
2888
+ minHeight?: "sm" | "md" | "lg";
2889
+ }
2890
+ declare function DialogBody({ className, children, minHeight, ...props }: DialogBodyProps): React.JSX.Element;
2879
2891
  /** The sheet's buttons: trailing, 8 px apart, the default (primary) one rightmost. */
2880
2892
  declare function DialogFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
2881
2893
  declare const DialogTitle: React.ForwardRefExoticComponent<Omit<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
@@ -3344,4 +3356,4 @@ interface OrganizationPickerSheetProps {
3344
3356
  declare function OrganizationPickerSheet({ open, onOpenChange, organizations, activeOrganizationId, favoriteOrganizationIds, onSwitch, onToggleFavorite, }: OrganizationPickerSheetProps): React.JSX.Element;
3345
3357
 
3346
3358
  export { ActivityChart, AppRail, AppRailAvatar, AppRailGroup, AppRailItem, AppRailSpacer, Avatar, Banner, Button, CONSOLE_LINE_PX, CREDENTIAL_DOTS, CallButton, CanvasLayout, Checkbox, ChecklistAddRow, ChecklistRow, ClearFiltersButton, CodeBlock, Collapsible, CollapsibleContent, CollapsibleTrigger, ColumnBrowser, ComingSoon, CompareLines, CompareView, ConfirmDialog, ConfirmDialogHost, ContextMenu, ContextMenuContent, ContextMenuEntries, ContextMenuItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuTrigger, ConversationHeader, CredentialField, CredentialFields, CredentialHeader, DataTable, DateStepper, DeviceFrame, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Disclosure, DisplayArrangement, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuEntries, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EMPTY_TABLE_FILTER, EdgeResizer, EmptyContent, ErrorBanner, FIELD, FactList, FavoriteTile, FieldRow, GetButton, GroupTable, HelpButton, INFO_HINT_MAX, IconButton, IconView, IconViewItem, InfoButton, InfoFacts, InfoHeader, InfoHint, InfoStrip, InspectorPanel, Kbd, LOG_LINE_PX, LevelIndicator, LinkButton, ListHeading, ListRow, LogView, METER_THRESHOLDS, MenuItemLabel, MessageComposer, MessageList, Meter, MiddleTruncate, ModeSwitch, NameCell, NativeConfirmProvider, NavigatorColumn, NavigatorCustomizeSheet, NavigatorItem, NoticeSlot, Notices, OrganizationMark, OrganizationPickerSheet, POPOVER_ARROW, Page, PageHeader, PaneHeader, PathBar, PlaceMark, PlaceStrip, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, ProgressRing, PullDownButton, QuickLookSheet, RecordButton, RemovableTag, RenameField, ResizablePane, Resource, Row, ScopeBar, SearchField, Section, SectionButtons, SectionContent, Segmented, Select, ShortcutTile, Skeleton, Slider, SourceList, SourceListItem, SourceListMore, SourceListSection, SourceText, Sparkline, Spinner, SplitView, StartPage, StartPageSection, StateCell, StateView, StatusBar, StatusDot, StatusLight, StoreHeader, StoreLockup, StoreShelf, SummaryFact, SummaryPane, SummaryStrip, Switch, SymbolProvider, SymbolTile, SystemSymbol, TERMINAL_PROFILE, TEXT_STYLE_POINTS, TEXT_TONE, TOOLTIP_TEXT_BUDGET, TableFilterBar, TableFilterMenu, TableFilterTokens, Tag, Text, TextArea, TextField, TileGrid, TimedCode, Toolbar, ToolbarDivider, ToolbarGroup, ToolbarOverflow, ToolbarSpacer, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UnreadDot, UsageBar, Waveform, WindowToolbarActions, WindowToolbarHostMenu, WindowToolbarProvider, WindowToolbarTitle, baseNameEnd, buttonVariants, clipTooltipText, cn, columnKind, columnName, dateSectionOf, describeError, errorMessage, filterActive, filterChoices, filterRows, filterValues, formatAge, formatBytes, formatClockTime, formatDuration, formatFinderDate, formatMemory, formatMemoryUsage, formatUsage, groupByDateSection, infoHintText, initiallyHiddenColumns, meterTone, moveItem, organizationColor, peaksOf, tableFilters, tileColorFor, useWindowToolbarFull, useWindowToolbarOwnsMore };
3347
- export type { ActivityBar, ActivityChartProps, AppRailAvatarProps, AppRailItemProps, ArrangedDisplay, AvatarProps, BannerProps, BannerTone, ButtonProps, CallButtonProps, CanvasColumnDef, CanvasLayoutProps, CanvasPanelDef, CheckboxProps, ChecklistAddRowProps, ChecklistRowProps, CodeBlockProps, Column, ColumnBrowserColumn, ColumnBrowserProps, ColumnFilter, ColumnKind, ColumnValuesFilter, ComingSoonProps, CompareChange, CompareLinesProps, ComparePane, CompareViewProps, ConfirmDialogProps, ConversationHeaderProps, CredentialFieldProps, CredentialHeaderProps, DataTableProps, DateSection, DateSectionKey, DateStepperProps, DatedSection, DescribedError, DesktopPickerOrganization, DesktopPopoverContentProps, DeviceFrameProps, DisclosureProps, DisplayArrangementProps, EdgeResizerProps, EmptyContentProps, ErrorBannerProps, Fact, FactListProps, FavoriteTileProps, FieldRowProps, FilterChoice, FilterableColumn, FinderDateOptions, GetButtonProps, GetButtonState, GroupTableColumn, GroupTableProps, GroupTableRow, HelpButtonProps, IconButtonProps, IconViewItemProps, IconViewProps, InfoButtonProps, InfoFact, InfoFactsProps, InfoHeaderProps, InfoHintProps, InfoStripItem, InfoStripProps, InspectorPanelProps, LevelIndicatorProps, LinkButtonProps, ListColor, ListHeadingProps, ListRowProps, LogColumns, LogLine, LogViewProps, MessageComposerProps, MessageListProps, MeterProps, ModeSwitchOption, ModeSwitchProps, NameCellProps, NativeConfirm, NativeConfirmRequest, NavigatorCustomizeItem, NavigatorCustomizeSheetProps, NavigatorItemProps, OrganizationPickerSheetProps, PageHeaderProps, PageProps, PageWidth, PaneHeaderProps, PathBarItem, PlaceMarkProps, PlaceMarkState, ProgressRingProps, PullDownButtonProps, QuickLookSheetProps, RecordButtonProps, RemovableTagProps, RenameFieldProps, ResizablePaneProps, ResourceProps, ResourceState, RowAction, RowMenuItem, RowProps, Scope, ScopeBarProps, SearchFieldProps, SectionButtonsProps, SectionProps, Segment, SegmentedProps, SelectOption, SelectProps, ShortcutTileProps, SliderProps, SortState, SourceLanguage, SourceListItemProps, SourceListMoreProps, SourceListProps, SourceListSectionProps, SparklineProps, SpinnerProps, SplitViewProps, StartPageProps, StartPageSectionProps, StateCellProps, StateViewProps, StatusBarProps, StatusDotProps, StatusLightProps, StatusTone$1 as StatusLightTone, StatusTone, StoreHeaderProps, StoreLockupProps, StoreShelfProps, SummaryFactProps, SummaryPaneProps, SwitchProps, SymbolImage, SymbolResolver, SymbolTileColor, SymbolTileProps, SymbolTileSize, SymbolWeight, SystemSymbolProps, TableFilterBarProps, TableFilterMenuProps, TableFilterState, TableGroups, TagProps, TagTone, TextAreaProps, TextFieldProps, TextProps, TextTone, TextVariant, TileGridProps, TimedCodeProps, ToolbarOverflowItem, ToolbarOverflowProps, ToolbarProps, TooltipContentProps, UsageBarProps, UsageColor, UsageSegment, WaveformProps, WindowToolbarTitleProps };
3359
+ export type { ActivityBar, ActivityChartProps, AppRailAvatarProps, AppRailItemProps, ArrangedDisplay, AvatarProps, BannerProps, BannerTone, ButtonProps, CallButtonProps, CanvasColumnDef, CanvasLayoutProps, CanvasPanelDef, CheckboxProps, ChecklistAddRowProps, ChecklistRowProps, CodeBlockProps, Column, ColumnBrowserColumn, ColumnBrowserProps, ColumnFilter, ColumnKind, ColumnValuesFilter, ComingSoonProps, CompareChange, CompareLinesProps, ComparePane, CompareViewProps, ConfirmDialogProps, ConversationHeaderProps, CredentialFieldProps, CredentialHeaderProps, DataTableProps, DateSection, DateSectionKey, DateStepperProps, DatedSection, DescribedError, DesktopPickerOrganization, DesktopPopoverContentProps, DeviceFrameProps, DialogBodyProps, DisclosureProps, DisplayArrangementProps, EdgeResizerProps, EmptyContentProps, ErrorBannerProps, Fact, FactListProps, FavoriteTileProps, FieldRowProps, FilterChoice, FilterableColumn, FinderDateOptions, GetButtonProps, GetButtonState, GroupTableColumn, GroupTableProps, GroupTableRow, HelpButtonProps, IconButtonProps, IconViewItemProps, IconViewProps, InfoButtonProps, InfoFact, InfoFactsProps, InfoHeaderProps, InfoHintProps, InfoStripItem, InfoStripProps, InspectorPanelProps, LevelIndicatorProps, LinkButtonProps, ListColor, ListHeadingProps, ListRowProps, LogColumns, LogLine, LogViewProps, MessageComposerProps, MessageListProps, MeterProps, ModeSwitchOption, ModeSwitchProps, NameCellProps, NativeConfirm, NativeConfirmRequest, NavigatorCustomizeItem, NavigatorCustomizeSheetProps, NavigatorItemProps, OrganizationPickerSheetProps, PageHeaderProps, PageProps, PageWidth, PaneHeaderProps, PathBarItem, PlaceMarkProps, PlaceMarkState, ProgressRingProps, PullDownButtonProps, QuickLookSheetProps, RecordButtonProps, RemovableTagProps, RenameFieldProps, ResizablePaneProps, ResourceProps, ResourceState, RowAction, RowMenuItem, RowProps, Scope, ScopeBarProps, SearchFieldProps, SectionButtonsProps, SectionProps, Segment, SegmentedProps, SelectOption, SelectProps, ShortcutTileProps, SliderProps, SortState, SourceLanguage, SourceListItemProps, SourceListMoreProps, SourceListProps, SourceListSectionProps, SparklineProps, SpinnerProps, SplitViewProps, StartPageProps, StartPageSectionProps, StateCellProps, StateViewProps, StatusBarProps, StatusDotProps, StatusLightProps, StatusTone$1 as StatusLightTone, StatusTone, StoreHeaderProps, StoreLockupProps, StoreShelfProps, SummaryFactProps, SummaryPaneProps, SwitchProps, SymbolImage, SymbolResolver, SymbolTileColor, SymbolTileProps, SymbolTileSize, SymbolWeight, SystemSymbolProps, TableFilterBarProps, TableFilterMenuProps, TableFilterState, TableGroups, TagProps, TagTone, TextAreaProps, TextFieldProps, TextProps, TextTone, TextVariant, TileGridProps, TimedCodeProps, ToolbarOverflowItem, ToolbarOverflowProps, ToolbarProps, TooltipContentProps, UsageBarProps, UsageColor, UsageSegment, WaveformProps, WindowToolbarTitleProps };
package/dist/desktop.d.ts CHANGED
@@ -1338,13 +1338,15 @@ interface TableFilterBarProps<T> extends TableFilterMenuProps<T> {
1338
1338
  shown: number;
1339
1339
  /** What the rows are, for the search field's name ("Search processes"). */
1340
1340
  label: string;
1341
+ /** What one row is, singular and plural (["chat", "chats"]): the count then says "2 chats", "1 of 2 chats", never a bare number. */
1342
+ noun?: readonly [string, string] | undefined;
1341
1343
  }
1342
1344
  /**
1343
1345
  * The table's own filter bar (Finder's search bar, Mail's filter tokens), drawn above its header
1344
1346
  * at one fixed height whether or not a filter is on, so the rows never move when one changes: the
1345
1347
  * active filters' tokens (or the row count) lead; the search field and the filter button trail.
1346
1348
  */
1347
- declare function TableFilterBar<T>({ columns, rows, state, onChange, shown, label }: TableFilterBarProps<T>): React.JSX.Element;
1349
+ declare function TableFilterBar<T>({ columns, rows, state, onChange, shown, label, noun }: TableFilterBarProps<T>): React.JSX.Element;
1348
1350
  declare function ClearFiltersButton({ onClear, className }: {
1349
1351
  onClear: () => void;
1350
1352
  className?: string;
@@ -1508,6 +1510,8 @@ interface DataTableProps<T> extends Omit<React.HTMLAttributes<HTMLDivElement>, "
1508
1510
  * when the page draws the controls itself (`SearchField` + `TableFilterMenu` in its header's
1509
1511
  * actions) and passes `filterState`. */
1510
1512
  filterBar?: boolean;
1513
+ /** What one row is, singular and plural (["chat", "chats"]): the filter bar's count says "2 chats". */
1514
+ noun?: readonly [string, string];
1511
1515
  className?: string;
1512
1516
  }
1513
1517
  /** Which optional columns start hidden (`Column.optional === "hidden"`). */
@@ -1519,7 +1523,7 @@ declare function initiallyHiddenColumns(columns: ReadonlyArray<Pick<Column<never
1519
1523
  * column kinds sized like Activity Monitor's, the accent selection while focused. Arrow keys move
1520
1524
  * between rows when rows are selectable.
1521
1525
  */
1522
- declare function DataTable<T>({ rowKey, onRowSelect, selectedKey, selectedKeys, onSelectedKeysChange, empty, striped, detail, isDisabled, rowAction, rowMenu, rowButtons, defaultSort, rowData, limit, sort: sortProp, onSortChange, selection, onRowOpen, subRows, outline, expandable, onOutlineChange, rowSize, fill, spare, rowContextMenu, hiddenColumns, onHiddenColumnsChange, groups, filterState, onFilterStateChange, defaultFilter, filterBar, className, "aria-label": ariaLabel, columns: allColumns, rows: givenRows, ...rest }: DataTableProps<T>): React.JSX.Element;
1526
+ declare function DataTable<T>({ rowKey, onRowSelect, selectedKey, selectedKeys, onSelectedKeysChange, empty, striped, detail, isDisabled, rowAction, rowMenu, rowButtons, defaultSort, rowData, limit, sort: sortProp, onSortChange, selection, onRowOpen, subRows, outline, expandable, onOutlineChange, rowSize, fill, spare, rowContextMenu, hiddenColumns, onHiddenColumnsChange, groups, filterState, onFilterStateChange, defaultFilter, filterBar, noun, className, "aria-label": ariaLabel, columns: allColumns, rows: givenRows, ...rest }: DataTableProps<T>): React.JSX.Element;
1523
1527
  interface NameCellProps {
1524
1528
  /** The thing's name: it gets the room first, ends in an ellipsis when it must, and its tooltip
1525
1529
  * is the whole name. */
@@ -2875,7 +2879,15 @@ declare function DialogHeader({ className, ...props }: React.HTMLAttributes<HTML
2875
2879
  * button bar stay put, and only this body scrolls between them. When it holds more than shows, a
2876
2880
  * hairline marks each edge it scrolls under, as System Settings' sheets do; a short body has none.
2877
2881
  */
2878
- declare function DialogBody({ className, children, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
2882
+ interface DialogBodyProps extends React.HTMLAttributes<HTMLDivElement> {
2883
+ /**
2884
+ * The least the body is tall (a result sheet: Finder's and Xcode's keep a few rows of room however
2885
+ * few rows there are): `sm` 10 rem, `md` 15 rem, `lg` 20 rem. Above it the sheet grows with its
2886
+ * content up to its max height, then only the body scrolls. Unset: as short as its content.
2887
+ */
2888
+ minHeight?: "sm" | "md" | "lg";
2889
+ }
2890
+ declare function DialogBody({ className, children, minHeight, ...props }: DialogBodyProps): React.JSX.Element;
2879
2891
  /** The sheet's buttons: trailing, 8 px apart, the default (primary) one rightmost. */
2880
2892
  declare function DialogFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
2881
2893
  declare const DialogTitle: React.ForwardRefExoticComponent<Omit<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
@@ -3344,4 +3356,4 @@ interface OrganizationPickerSheetProps {
3344
3356
  declare function OrganizationPickerSheet({ open, onOpenChange, organizations, activeOrganizationId, favoriteOrganizationIds, onSwitch, onToggleFavorite, }: OrganizationPickerSheetProps): React.JSX.Element;
3345
3357
 
3346
3358
  export { ActivityChart, AppRail, AppRailAvatar, AppRailGroup, AppRailItem, AppRailSpacer, Avatar, Banner, Button, CONSOLE_LINE_PX, CREDENTIAL_DOTS, CallButton, CanvasLayout, Checkbox, ChecklistAddRow, ChecklistRow, ClearFiltersButton, CodeBlock, Collapsible, CollapsibleContent, CollapsibleTrigger, ColumnBrowser, ComingSoon, CompareLines, CompareView, ConfirmDialog, ConfirmDialogHost, ContextMenu, ContextMenuContent, ContextMenuEntries, ContextMenuItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuTrigger, ConversationHeader, CredentialField, CredentialFields, CredentialHeader, DataTable, DateStepper, DeviceFrame, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Disclosure, DisplayArrangement, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuEntries, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EMPTY_TABLE_FILTER, EdgeResizer, EmptyContent, ErrorBanner, FIELD, FactList, FavoriteTile, FieldRow, GetButton, GroupTable, HelpButton, INFO_HINT_MAX, IconButton, IconView, IconViewItem, InfoButton, InfoFacts, InfoHeader, InfoHint, InfoStrip, InspectorPanel, Kbd, LOG_LINE_PX, LevelIndicator, LinkButton, ListHeading, ListRow, LogView, METER_THRESHOLDS, MenuItemLabel, MessageComposer, MessageList, Meter, MiddleTruncate, ModeSwitch, NameCell, NativeConfirmProvider, NavigatorColumn, NavigatorCustomizeSheet, NavigatorItem, NoticeSlot, Notices, OrganizationMark, OrganizationPickerSheet, POPOVER_ARROW, Page, PageHeader, PaneHeader, PathBar, PlaceMark, PlaceStrip, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, ProgressRing, PullDownButton, QuickLookSheet, RecordButton, RemovableTag, RenameField, ResizablePane, Resource, Row, ScopeBar, SearchField, Section, SectionButtons, SectionContent, Segmented, Select, ShortcutTile, Skeleton, Slider, SourceList, SourceListItem, SourceListMore, SourceListSection, SourceText, Sparkline, Spinner, SplitView, StartPage, StartPageSection, StateCell, StateView, StatusBar, StatusDot, StatusLight, StoreHeader, StoreLockup, StoreShelf, SummaryFact, SummaryPane, SummaryStrip, Switch, SymbolProvider, SymbolTile, SystemSymbol, TERMINAL_PROFILE, TEXT_STYLE_POINTS, TEXT_TONE, TOOLTIP_TEXT_BUDGET, TableFilterBar, TableFilterMenu, TableFilterTokens, Tag, Text, TextArea, TextField, TileGrid, TimedCode, Toolbar, ToolbarDivider, ToolbarGroup, ToolbarOverflow, ToolbarSpacer, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UnreadDot, UsageBar, Waveform, WindowToolbarActions, WindowToolbarHostMenu, WindowToolbarProvider, WindowToolbarTitle, baseNameEnd, buttonVariants, clipTooltipText, cn, columnKind, columnName, dateSectionOf, describeError, errorMessage, filterActive, filterChoices, filterRows, filterValues, formatAge, formatBytes, formatClockTime, formatDuration, formatFinderDate, formatMemory, formatMemoryUsage, formatUsage, groupByDateSection, infoHintText, initiallyHiddenColumns, meterTone, moveItem, organizationColor, peaksOf, tableFilters, tileColorFor, useWindowToolbarFull, useWindowToolbarOwnsMore };
3347
- export type { ActivityBar, ActivityChartProps, AppRailAvatarProps, AppRailItemProps, ArrangedDisplay, AvatarProps, BannerProps, BannerTone, ButtonProps, CallButtonProps, CanvasColumnDef, CanvasLayoutProps, CanvasPanelDef, CheckboxProps, ChecklistAddRowProps, ChecklistRowProps, CodeBlockProps, Column, ColumnBrowserColumn, ColumnBrowserProps, ColumnFilter, ColumnKind, ColumnValuesFilter, ComingSoonProps, CompareChange, CompareLinesProps, ComparePane, CompareViewProps, ConfirmDialogProps, ConversationHeaderProps, CredentialFieldProps, CredentialHeaderProps, DataTableProps, DateSection, DateSectionKey, DateStepperProps, DatedSection, DescribedError, DesktopPickerOrganization, DesktopPopoverContentProps, DeviceFrameProps, DisclosureProps, DisplayArrangementProps, EdgeResizerProps, EmptyContentProps, ErrorBannerProps, Fact, FactListProps, FavoriteTileProps, FieldRowProps, FilterChoice, FilterableColumn, FinderDateOptions, GetButtonProps, GetButtonState, GroupTableColumn, GroupTableProps, GroupTableRow, HelpButtonProps, IconButtonProps, IconViewItemProps, IconViewProps, InfoButtonProps, InfoFact, InfoFactsProps, InfoHeaderProps, InfoHintProps, InfoStripItem, InfoStripProps, InspectorPanelProps, LevelIndicatorProps, LinkButtonProps, ListColor, ListHeadingProps, ListRowProps, LogColumns, LogLine, LogViewProps, MessageComposerProps, MessageListProps, MeterProps, ModeSwitchOption, ModeSwitchProps, NameCellProps, NativeConfirm, NativeConfirmRequest, NavigatorCustomizeItem, NavigatorCustomizeSheetProps, NavigatorItemProps, OrganizationPickerSheetProps, PageHeaderProps, PageProps, PageWidth, PaneHeaderProps, PathBarItem, PlaceMarkProps, PlaceMarkState, ProgressRingProps, PullDownButtonProps, QuickLookSheetProps, RecordButtonProps, RemovableTagProps, RenameFieldProps, ResizablePaneProps, ResourceProps, ResourceState, RowAction, RowMenuItem, RowProps, Scope, ScopeBarProps, SearchFieldProps, SectionButtonsProps, SectionProps, Segment, SegmentedProps, SelectOption, SelectProps, ShortcutTileProps, SliderProps, SortState, SourceLanguage, SourceListItemProps, SourceListMoreProps, SourceListProps, SourceListSectionProps, SparklineProps, SpinnerProps, SplitViewProps, StartPageProps, StartPageSectionProps, StateCellProps, StateViewProps, StatusBarProps, StatusDotProps, StatusLightProps, StatusTone$1 as StatusLightTone, StatusTone, StoreHeaderProps, StoreLockupProps, StoreShelfProps, SummaryFactProps, SummaryPaneProps, SwitchProps, SymbolImage, SymbolResolver, SymbolTileColor, SymbolTileProps, SymbolTileSize, SymbolWeight, SystemSymbolProps, TableFilterBarProps, TableFilterMenuProps, TableFilterState, TableGroups, TagProps, TagTone, TextAreaProps, TextFieldProps, TextProps, TextTone, TextVariant, TileGridProps, TimedCodeProps, ToolbarOverflowItem, ToolbarOverflowProps, ToolbarProps, TooltipContentProps, UsageBarProps, UsageColor, UsageSegment, WaveformProps, WindowToolbarTitleProps };
3359
+ export type { ActivityBar, ActivityChartProps, AppRailAvatarProps, AppRailItemProps, ArrangedDisplay, AvatarProps, BannerProps, BannerTone, ButtonProps, CallButtonProps, CanvasColumnDef, CanvasLayoutProps, CanvasPanelDef, CheckboxProps, ChecklistAddRowProps, ChecklistRowProps, CodeBlockProps, Column, ColumnBrowserColumn, ColumnBrowserProps, ColumnFilter, ColumnKind, ColumnValuesFilter, ComingSoonProps, CompareChange, CompareLinesProps, ComparePane, CompareViewProps, ConfirmDialogProps, ConversationHeaderProps, CredentialFieldProps, CredentialHeaderProps, DataTableProps, DateSection, DateSectionKey, DateStepperProps, DatedSection, DescribedError, DesktopPickerOrganization, DesktopPopoverContentProps, DeviceFrameProps, DialogBodyProps, DisclosureProps, DisplayArrangementProps, EdgeResizerProps, EmptyContentProps, ErrorBannerProps, Fact, FactListProps, FavoriteTileProps, FieldRowProps, FilterChoice, FilterableColumn, FinderDateOptions, GetButtonProps, GetButtonState, GroupTableColumn, GroupTableProps, GroupTableRow, HelpButtonProps, IconButtonProps, IconViewItemProps, IconViewProps, InfoButtonProps, InfoFact, InfoFactsProps, InfoHeaderProps, InfoHintProps, InfoStripItem, InfoStripProps, InspectorPanelProps, LevelIndicatorProps, LinkButtonProps, ListColor, ListHeadingProps, ListRowProps, LogColumns, LogLine, LogViewProps, MessageComposerProps, MessageListProps, MeterProps, ModeSwitchOption, ModeSwitchProps, NameCellProps, NativeConfirm, NativeConfirmRequest, NavigatorCustomizeItem, NavigatorCustomizeSheetProps, NavigatorItemProps, OrganizationPickerSheetProps, PageHeaderProps, PageProps, PageWidth, PaneHeaderProps, PathBarItem, PlaceMarkProps, PlaceMarkState, ProgressRingProps, PullDownButtonProps, QuickLookSheetProps, RecordButtonProps, RemovableTagProps, RenameFieldProps, ResizablePaneProps, ResourceProps, ResourceState, RowAction, RowMenuItem, RowProps, Scope, ScopeBarProps, SearchFieldProps, SectionButtonsProps, SectionProps, Segment, SegmentedProps, SelectOption, SelectProps, ShortcutTileProps, SliderProps, SortState, SourceLanguage, SourceListItemProps, SourceListMoreProps, SourceListProps, SourceListSectionProps, SparklineProps, SpinnerProps, SplitViewProps, StartPageProps, StartPageSectionProps, StateCellProps, StateViewProps, StatusBarProps, StatusDotProps, StatusLightProps, StatusTone$1 as StatusLightTone, StatusTone, StoreHeaderProps, StoreLockupProps, StoreShelfProps, SummaryFactProps, SummaryPaneProps, SwitchProps, SymbolImage, SymbolResolver, SymbolTileColor, SymbolTileProps, SymbolTileSize, SymbolWeight, SystemSymbolProps, TableFilterBarProps, TableFilterMenuProps, TableFilterState, TableGroups, TagProps, TagTone, TextAreaProps, TextFieldProps, TextProps, TextTone, TextVariant, TileGridProps, TimedCodeProps, ToolbarOverflowItem, ToolbarOverflowProps, ToolbarProps, TooltipContentProps, UsageBarProps, UsageColor, UsageSegment, WaveformProps, WindowToolbarTitleProps };
package/dist/desktop.js CHANGED
@@ -675,7 +675,7 @@ var DialogContent2 = React6.forwardRef(function DialogContent3({ className, show
675
675
  function DialogHeader2({ className, ...props }) {
676
676
  return /* @__PURE__ */ jsx9(DialogHeader, { className: cn2("gap-1 space-y-0 pr-0 text-left sm:text-left", className), ...props });
677
677
  }
678
- function DialogBody({ className, children, ...props }) {
678
+ function DialogBody({ className, children, minHeight, ...props }) {
679
679
  const ref = React6.useRef(null);
680
680
  const [overflowing, setOverflowing] = React6.useState(false);
681
681
  React6.useLayoutEffect(() => {
@@ -689,7 +689,7 @@ function DialogBody({ className, children, ...props }) {
689
689
  for (const child of Array.from(el.children)) observer.observe(child);
690
690
  return () => observer.disconnect();
691
691
  }, [children]);
692
- return /* @__PURE__ */ jsx9("div", { ref, "data-slot": "sheet-body", "data-overflowing": overflowing ? "" : void 0, className: cn2("flex min-h-0 flex-col gap-4", className), ...props, children });
692
+ return /* @__PURE__ */ jsx9("div", { ref, "data-slot": "sheet-body", "data-min-height": minHeight, "data-overflowing": overflowing ? "" : void 0, className: cn2("flex min-h-0 flex-col gap-4", className), ...props, children });
693
693
  }
694
694
  function DialogFooter2({ className, ...props }) {
695
695
  return /* @__PURE__ */ jsx9(DialogFooter, { className: cn2("flex-row justify-end gap-2 space-x-0 bg-content pt-1 sm:gap-2 sm:space-x-0", className), ...props });
@@ -1185,6 +1185,7 @@ function holdsElements(children) {
1185
1185
  }
1186
1186
  function Notices({ children, className, onHeight, ...props }) {
1187
1187
  const stack = React8.useRef(null);
1188
+ const parent = React8.useContext(NoticeStackContext);
1188
1189
  const [registry] = React8.useState(createNoticeRegistry);
1189
1190
  const layout = useNoticeStackLayout(registry);
1190
1191
  const drawn = layout.total > 0;
@@ -1202,6 +1203,7 @@ function Notices({ children, className, onHeight, ...props }) {
1202
1203
  onHeight(0);
1203
1204
  };
1204
1205
  }, [onHeight, drawn]);
1206
+ if (parent) return /* @__PURE__ */ jsx11(Fragment3, { children });
1205
1207
  if (!holdsElements(children)) return null;
1206
1208
  return /* @__PURE__ */ jsx11(
1207
1209
  "div",
@@ -3370,13 +3372,13 @@ function TableFilterTokens({ columns, state, onChange }) {
3370
3372
  return /* @__PURE__ */ jsx29(RemovableTag, { "data-table-filter-token": column.key, className: "shrink-0", removeLabel: `Remove the ${name} filter`, onRemove: () => onChange(setValues(state, column.key, [])), children: `${name}: ${labels.join(", ")}` }, column.key);
3371
3373
  }) });
3372
3374
  }
3373
- function TableFilterBar({ columns, rows, state, onChange, shown, label }) {
3375
+ function TableFilterBar({ columns, rows, state, onChange, shown, label, noun }) {
3374
3376
  const searchable = columns.some((c) => c.search);
3375
3377
  const active = filterActive(state);
3376
3378
  return /* @__PURE__ */ jsxs23("div", { "data-slot": "data-table-filter-bar", className: "flex h-table-filter-bar shrink-0 items-center gap-2 border-b border-separator px-3", children: [
3377
3379
  /* @__PURE__ */ jsxs23("div", { className: "flex min-w-0 flex-1 items-center gap-1.5 overflow-hidden", children: [
3378
3380
  /* @__PURE__ */ jsx29(TableFilterTokens, { columns, state, onChange }),
3379
- /* @__PURE__ */ jsx29(Text, { tone: "secondary", className: "shrink-0 tabular-nums", "data-table-filter-count": shown, children: active ? `${shown} of ${rows.length}` : `${rows.length}` })
3381
+ /* @__PURE__ */ jsx29(Text, { tone: "secondary", className: "shrink-0 tabular-nums", "data-table-filter-count": shown, children: `${active ? `${shown} of ${rows.length}` : `${rows.length}`}${noun ? ` ${rows.length === 1 ? noun[0] : noun[1]}` : ""}` })
3380
3382
  ] }),
3381
3383
  searchable ? /* @__PURE__ */ jsx29(
3382
3384
  SearchField,
@@ -3489,6 +3491,7 @@ function DataTable({
3489
3491
  onFilterStateChange,
3490
3492
  defaultFilter,
3491
3493
  filterBar = true,
3494
+ noun,
3492
3495
  className,
3493
3496
  "aria-label": ariaLabel,
3494
3497
  columns: allColumns,
@@ -3679,7 +3682,7 @@ function DataTable({
3679
3682
  }
3680
3683
  };
3681
3684
  const contextItems = menuRow !== null && rowContextMenu ? rowContextMenu(menuRow) ?? null : null;
3682
- const bar = filterable && filterBar && givenRows.length > 0 ? /* @__PURE__ */ jsx30(TableFilterBar, { columns: allColumns, rows: givenRows, state: filter, onChange: setFilter, shown: rows.length, label: ariaLabel.toLowerCase() }) : null;
3685
+ const bar = filterable && filterBar && givenRows.length > 0 ? /* @__PURE__ */ jsx30(TableFilterBar, { columns: allColumns, rows: givenRows, state: filter, onChange: setFilter, shown: rows.length, label: ariaLabel.toLowerCase(), noun }) : null;
3683
3686
  const framed = (body) => bar ? /* @__PURE__ */ jsxs24(
3684
3687
  "div",
3685
3688
  {