@sequenceholdings/atlas-ui 0.1.5 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -18,6 +18,7 @@ import { JSX } from 'react/jsx-runtime';
18
18
  import * as LabelPrimitive from '@radix-ui/react-label';
19
19
  import * as PopoverPrimitive from '@radix-ui/react-popover';
20
20
  import { QueryKey } from '@tanstack/react-query';
21
+ import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
21
22
  import * as React_2 from 'react';
22
23
  import { ReactNode } from 'react';
23
24
  import * as RechartsPrimitive from 'recharts';
@@ -40,39 +41,39 @@ import { UseMutationResult } from '@tanstack/react-query';
40
41
  import { VariantProps } from 'class-variance-authority';
41
42
 
42
43
  export declare const AGENT_TINTS: {
43
- readonly teal: {
44
- readonly bg: "bg-teal-50 dark:bg-teal-500/10";
45
- readonly fg: "text-teal-700 dark:text-teal-300";
44
+ readonly 'identity-1': {
45
+ readonly bg: "bg-identity-1";
46
+ readonly fg: "text-identity-1-text";
46
47
  };
47
- readonly violet: {
48
- readonly bg: "bg-violet-50 dark:bg-violet-500/10";
49
- readonly fg: "text-violet-700 dark:text-violet-300";
48
+ readonly 'identity-2': {
49
+ readonly bg: "bg-identity-2";
50
+ readonly fg: "text-identity-2-text";
50
51
  };
51
- readonly amber: {
52
- readonly bg: "bg-amber-50 dark:bg-amber-500/10";
53
- readonly fg: "text-amber-700 dark:text-amber-300";
52
+ readonly 'identity-3': {
53
+ readonly bg: "bg-identity-3";
54
+ readonly fg: "text-identity-3-text";
54
55
  };
55
- readonly rose: {
56
- readonly bg: "bg-rose-50 dark:bg-rose-500/10";
57
- readonly fg: "text-rose-700 dark:text-rose-300";
56
+ readonly 'identity-4': {
57
+ readonly bg: "bg-identity-4";
58
+ readonly fg: "text-identity-4-text";
58
59
  };
59
- readonly sky: {
60
- readonly bg: "bg-sky-50 dark:bg-sky-500/10";
61
- readonly fg: "text-sky-700 dark:text-sky-300";
60
+ readonly 'identity-5': {
61
+ readonly bg: "bg-identity-5";
62
+ readonly fg: "text-identity-5-text";
62
63
  };
63
- readonly emerald: {
64
- readonly bg: "bg-emerald-50 dark:bg-emerald-500/10";
65
- readonly fg: "text-emerald-700 dark:text-emerald-300";
64
+ readonly 'identity-6': {
65
+ readonly bg: "bg-identity-6";
66
+ readonly fg: "text-identity-6-text";
66
67
  };
67
- readonly orange: {
68
- readonly bg: "bg-orange-50 dark:bg-orange-500/10";
69
- readonly fg: "text-orange-700 dark:text-orange-300";
68
+ readonly 'identity-7': {
69
+ readonly bg: "bg-identity-7";
70
+ readonly fg: "text-identity-7-text";
70
71
  };
71
- readonly indigo: {
72
- readonly bg: "bg-indigo-50 dark:bg-indigo-500/10";
73
- readonly fg: "text-indigo-700 dark:text-indigo-300";
72
+ readonly 'identity-8': {
73
+ readonly bg: "bg-identity-8";
74
+ readonly fg: "text-identity-8-text";
74
75
  };
75
- readonly graphite: {
76
+ readonly neutral: {
76
77
  readonly bg: "bg-muted";
77
78
  readonly fg: "text-foreground";
78
79
  };
@@ -406,7 +407,7 @@ export declare function ChartLegendContent({ className, hideIcon, payload, verti
406
407
 
407
408
  export declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
408
409
 
409
- export declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }: {
410
+ export declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, footer, }: {
410
411
  active?: boolean;
411
412
  payload?: TooltipPayloadItem[];
412
413
  className?: string;
@@ -420,16 +421,22 @@ export declare function ChartTooltipContent({ active, payload, className, indica
420
421
  color?: string;
421
422
  nameKey?: string;
422
423
  labelKey?: string;
424
+ footer?: (visible: TooltipPayloadItem[]) => React_2.ReactNode;
423
425
  }): JSX.Element | null;
424
426
 
425
427
  /**
426
428
  * Checkbox — matches shadcn's canonical 16×16 design:
427
429
  *
428
430
  * - `size-4` (16px)
429
- * - `rounded-xs` (4px, `--radius-xs`) — a square with softened corners,
430
- * NOT a circle. Atlas's scale shifted `--radius-sm` up to 8px, which
431
- * would render a 16px checkbox as a 50% pill. `--radius-xs` closes
432
- * the gap at the tight end specifically for cases like this.
431
+ * - `rounded-badge` (4px) — a square with softened corners, NOT a
432
+ * circle. This is chosen for its VALUE, not its name: a checkbox is
433
+ * not a label about something, but `badge` is the only radius role
434
+ * that stays 4px in both flag states, and 4px is the only step that
435
+ * keeps a 16px box reading as a square. `rounded-control` would make
436
+ * it a full circle — that is a radio button, not a checkbox — and
437
+ * `rounded-surface-nested` (8px) would render it as a 50% pill.
438
+ * Kept off the legacy `rounded-xs` so it survives the DES-324
439
+ * deletion of the legacy scale (DES-379).
433
440
  * - Neutral `border-input` when unchecked; flips to `border-primary`
434
441
  * when checked/indeterminate so the outline blends with the fill.
435
442
  * - No drop shadow — consistent with the rest of Atlas's form
@@ -472,9 +479,9 @@ export declare interface CheckboxOption<T extends string> {
472
479
 
473
480
  declare const CHIP_TONES: {
474
481
  readonly default: "border-border bg-accent text-muted-foreground";
475
- readonly danger: "border-red-200 bg-red-50 text-red-700 dark:border-red-500/30 dark:bg-red-500/15 dark:text-red-300";
476
- readonly warning: "border-amber-200 bg-amber-50 text-amber-700 dark:border-amber-500/30 dark:bg-amber-500/15 dark:text-amber-300";
477
- readonly success: "border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-500/30 dark:bg-emerald-500/15 dark:text-emerald-300";
482
+ readonly danger: "border-danger/30 bg-danger-tint text-danger-text";
483
+ readonly warning: "border-warning/30 bg-warning-tint text-warning-text";
484
+ readonly success: "border-success/30 bg-success-tint text-success-text";
478
485
  };
479
486
 
480
487
  export declare const ChoiceCard: React_2.ForwardRefExoticComponent<ChoiceCardProps & React_2.RefAttributes<HTMLLabelElement>>;
@@ -792,7 +799,7 @@ export declare function DashboardShell({ title, range, actions, children, classN
792
799
  * >
793
800
  * <KpiTileGrid columns={4}>…</KpiTileGrid>
794
801
  * <ChartCard />
795
- * <ProDataTable … />
802
+ * <Table … />
796
803
  * </DashboardShell>
797
804
  * ```
798
805
  *
@@ -815,19 +822,6 @@ declare interface DashboardShellProps {
815
822
  bodyClassName?: string;
816
823
  }
817
824
 
818
- export declare function DataTable<T>({ columns, data, pageSize, defaultSort, emptyMessage, onRowClick, rowClassName, className, }: DataTableProps<T>): JSX.Element;
819
-
820
- declare interface DataTableProps<T> {
821
- columns: ColumnDef<T, unknown>[];
822
- data: T[];
823
- pageSize?: number;
824
- defaultSort?: SortingState;
825
- emptyMessage?: string;
826
- onRowClick?: (row: T) => void;
827
- rowClassName?: (row: Row<T>) => string | undefined;
828
- className?: string;
829
- }
830
-
831
825
  /**
832
826
  * Date picker working in `Date | null` (or `DateRange | null` in `mode="range"`).
833
827
  * Radix popover + react-day-picker calendar + free-text parsing + presets.
@@ -1312,6 +1306,10 @@ export declare function EditorTopBarStatusBadge({ tone, label, }: {
1312
1306
 
1313
1307
  /**
1314
1308
  * Consistent empty-state placeholder for tables and content areas.
1309
+ *
1310
+ * For a full-route / full-panel "instead of content" screen (404, access
1311
+ * denied, page error), use {@link PageState} from `./page-state` instead —
1312
+ * this component is the small inline placeholder, not the page template.
1315
1313
  */
1316
1314
  export declare function EmptyState({ icon, message, detail, className }: EmptyStateProps): JSX.Element;
1317
1315
 
@@ -1326,10 +1324,9 @@ export declare interface EmptyStateProps {
1326
1324
  * The canonical inline failure banner — one treatment for "this panel could not
1327
1325
  * load", used across apps so a failure reads the same everywhere.
1328
1326
  *
1329
- * The red hue is fixed on purpose: it carries meaning, not theme. What it does
1330
- * carry is a dark pair — the `-50`/`-200`/`-700` triplet is tuned for a white
1331
- * surface and goes near-illegible on a dark one, so `.dark` lifts the fill to a
1332
- * translucent step and lightens the ink. Light is byte-identical.
1327
+ * Status roles (`danger-tint` / `danger-text` / `danger`) carry the hue and
1328
+ * flip under dark mode — no hand-rolled `dark:` pairs needed here. Distinct
1329
+ * from {@link PageState}, which is the full-surface utility layout.
1333
1330
  */
1334
1331
  export declare function ErrorState({ message, className }: ErrorStateProps): JSX.Element;
1335
1332
 
@@ -1522,7 +1519,7 @@ export declare function FilterPill({ label, options, selected, onChange }: Filte
1522
1519
  * grab-bag of visual treatments:
1523
1520
  *
1524
1521
  * - Height: h-9 (36px)
1525
- * - Radius: rounded-sm (8px, `--radius-sm`)
1522
+ * - Radius: `rounded-control` — operable and one line tall
1526
1523
  * - Border/bg: `border bg-card` — `--input` border, raised surface,
1527
1524
  * same palette as Select/Input. NOT `background`: that is
1528
1525
  * the PAGE role (ds-neutral-50 under v2, not white), which
@@ -1744,24 +1741,6 @@ export declare const HoverCardContent: React_2.ForwardRefExoticComponent<Omit<Ho
1744
1741
 
1745
1742
  export declare const HoverCardTrigger: React_2.ForwardRefExoticComponent<HoverCardPrimitive.HoverCardTriggerProps & React_2.RefAttributes<HTMLAnchorElement>>;
1746
1743
 
1747
- /**
1748
- * Click-to-edit date cell. Shows a custom (or default) display until clicked,
1749
- * then a native date input that commits on change/blur. The closed display is a
1750
- * render prop so callers can style it (e.g. a due-date heat pill).
1751
- */
1752
- export declare function InlineDateCell({ value, onCommit, renderDisplay, placeholder, title, className, }: InlineDateCellProps): JSX.Element;
1753
-
1754
- export declare interface InlineDateCellProps {
1755
- /** ISO date string (YYYY-MM-DD) or null. */
1756
- value: string | null;
1757
- onCommit: (value: string | null) => void | Promise<void>;
1758
- /** Closed-state display for the value; defaults to the raw date or a dash. */
1759
- renderDisplay?: (value: string | null) => ReactNode;
1760
- placeholder?: string;
1761
- title?: string;
1762
- className?: string;
1763
- }
1764
-
1765
1744
  /**
1766
1745
  * Click-to-edit text cell. Reads as plain text until clicked, then becomes a
1767
1746
  * borderless auto-growing textarea that commits on blur / Enter (⌘/Ctrl+Enter
@@ -1870,32 +1849,6 @@ declare type KpiTone = 'neutral' | 'warn' | 'info';
1870
1849
 
1871
1850
  export declare const Label: React_2.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React_2.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: ClassProp | undefined) => string> & LabelOwnProps & React_2.RefAttributes<HTMLLabelElement>>;
1872
1851
 
1873
- export declare function LabeledSelect({ label, icon, value, options, onChange, ariaLabel, prefixHiddenValues, className, }: LabeledSelectProps): JSX.Element;
1874
-
1875
- export declare interface LabeledSelectOption {
1876
- value: string;
1877
- label: string;
1878
- }
1879
-
1880
- export declare interface LabeledSelectProps {
1881
- /** Muted prefix shown before the value, e.g. `"Group by"` / `"Sorted by"`. */
1882
- label: string;
1883
- /** Leading glyph (kept small + muted by the pill). */
1884
- icon?: React_2.ReactNode;
1885
- value: string;
1886
- options: LabeledSelectOption[];
1887
- onChange: (value: string) => void;
1888
- /** Accessible name for the trigger. Defaults to `label`. */
1889
- ariaLabel?: string;
1890
- /**
1891
- * Values for which the muted prefix is hidden — the pill shows just the
1892
- * value. Use for "off"/"none" states where the prefix reads awkwardly
1893
- * (e.g. `'none'` → "No grouping", not "Group by No grouping").
1894
- */
1895
- prefixHiddenValues?: readonly string[];
1896
- className?: string;
1897
- }
1898
-
1899
1852
  declare interface LabelOwnProps {
1900
1853
  /**
1901
1854
  * When true, appends a red `*` marker after the label text. Prefer this
@@ -2019,7 +1972,7 @@ declare interface MultiSelectListProps extends MultiSelectCoreProps {
2019
1972
  * - Command (cmdk) for the searchable list and keyboard nav.
2020
1973
  * - Checkbox (Radix) for per-row selection state.
2021
1974
  *
2022
- * Visual contract for the trigger mirrors `SelectTrigger` (h-9, rounded-sm,
1975
+ * Visual contract for the trigger mirrors `SelectTrigger` (h-9, rounded-field,
2023
1976
  * border + bg-field) so a toolbar of MultiSelect + Input + Select reads
2024
1977
  * as one coherent control row. Active state stacks up to `maxStackedIcons`
2025
1978
  * selected-row icons (with a generic silhouette for icon-less rows) and
@@ -2111,25 +2064,30 @@ export declare interface OptimisticResourceContext<TData> {
2111
2064
  }
2112
2065
 
2113
2066
  /**
2114
- * A small, reusable inline picker: the current value renders as a clickable
2115
- * badge/dot that opens a popover of the actual options (each shown with its own
2116
- * swatch + a check on the active one). A nicer, on-brand replacement for a
2117
- * native <select> for short, visual enum fields like status and health.
2067
+ * Overlay scope (DES-368) — how far an overlay's scrim and panel reach.
2068
+ *
2069
+ * "viewport" — covers the whole shell, chrome included. A modal is a
2070
+ * platform-level interruption: it blocks everything, so it dims
2071
+ * everything. This is Dialog / AlertDialog, and it is why they stay
2072
+ * `fixed`.
2073
+ *
2074
+ * "surface" — covers only the app it belongs to. A slide-out panel is
2075
+ * an extension of the current app, not an interruption of the
2076
+ * platform, so it must not black out the sidebar and header. This is
2077
+ * Sheet's default.
2078
+ *
2079
+ * Surface scope is plain `absolute` — it bounds itself against the nearest
2080
+ * positioned ancestor, which is each app's own root (`.atlas-shell-routes`
2081
+ * for most apps, `#chat-container` in Chat). No portal retargeting and no
2082
+ * app-surface context: overlays already portal in-tree at the app layout
2083
+ * root, so the app box is the containing block on offer.
2084
+ *
2085
+ * The attribute is stamped into the DOM as well as driving the classes.
2086
+ * It is the seam other layers key off — chat.css rebinds surface-scoped
2087
+ * overlays, and the artifact sandbox bridge reads it to decide whether a
2088
+ * scrim should elevate to the host shell.
2118
2089
  */
2119
- export declare function OptionPicker<T extends string>({ value, options, onChange, children, ariaLabel, align, triggerClassName, contentClassName, }: OptionPickerProps<T>): JSX.Element;
2120
-
2121
- export declare interface OptionPickerProps<T extends string> {
2122
- value: T;
2123
- options: PickerOption<T>[];
2124
- onChange: (value: T) => void;
2125
- /** Closed-state trigger content (the badge / dot shown in the row). */
2126
- children: ReactNode;
2127
- ariaLabel?: string;
2128
- align?: 'start' | 'center' | 'end';
2129
- /** Extra classes for the trigger button (e.g. padding around a small dot). */
2130
- triggerClassName?: string;
2131
- contentClassName?: string;
2132
- }
2090
+ declare type OverlayScope = "viewport" | "surface";
2133
2091
 
2134
2092
  export declare function PageSkeleton({ variant, className }: PageSkeletonProps): JSX.Element;
2135
2093
 
@@ -2140,6 +2098,28 @@ export declare interface PageSkeletonProps {
2140
2098
 
2141
2099
  export declare type PageSkeletonVariant = 'default' | 'list' | 'detail' | 'dashboard';
2142
2100
 
2101
+ export declare function PageState({ icon, tone, title, description, actions, details, detailsLabel, size, className, align, }: PageStateProps): JSX.Element;
2102
+
2103
+ export declare interface PageStateProps {
2104
+ /** Tabler (or other) icon element — never an emoji. The template owns the medallion. */
2105
+ icon: ReactNode;
2106
+ tone?: PageStateTone;
2107
+ title: string;
2108
+ description?: ReactNode;
2109
+ /** Shared `Button`s (primary + optional secondary). */
2110
+ actions?: ReactNode;
2111
+ /** Optional disclosure body (stack trace / error digest). Uses Collapsible + Button — never a native `<button>`. */
2112
+ details?: ReactNode;
2113
+ detailsLabel?: string;
2114
+ size?: PageStateSize;
2115
+ className?: string;
2116
+ align?: 'start' | 'center';
2117
+ }
2118
+
2119
+ export declare type PageStateSize = NonNullable<VariantProps<typeof sizeShell>['size']>;
2120
+
2121
+ export declare type PageStateTone = NonNullable<VariantProps<typeof toneMedallion>['tone']>;
2122
+
2143
2123
  export declare function pctChange(current: number, previous: number): number | null;
2144
2124
 
2145
2125
  export declare function PercentCell({ value, dangerBelow, className, }: {
@@ -2148,14 +2128,6 @@ export declare function PercentCell({ value, dangerBelow, className, }: {
2148
2128
  className?: string;
2149
2129
  }): JSX.Element;
2150
2130
 
2151
- export declare interface PickerOption<T extends string> {
2152
- value: T;
2153
- /** Optional text label; omit when the swatch already reads as the option. */
2154
- label?: string;
2155
- /** The option's visual — a colored badge, dot, etc. */
2156
- swatch: ReactNode;
2157
- }
2158
-
2159
2131
  export declare const Popover: React_2.FC<PopoverPrimitive.PopoverProps>;
2160
2132
 
2161
2133
  export declare const PopoverAnchor: React_2.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React_2.RefAttributes<HTMLDivElement>>;
@@ -2181,8 +2153,9 @@ export declare type ProColumnDef<T> = ColumnDef<T, unknown> & {
2181
2153
  };
2182
2154
 
2183
2155
  /**
2184
- * ProDataTable — opinionated extension of the shadcn table for dashboard-style
2185
- * lists. Layered on top of `DataTable` so apps can opt into richer chrome:
2156
+ * Table — opinionated data table for dashboard-style lists (DES-267 canonical).
2157
+ * Formerly `ProDataTable`; that name remains as a temporary alias (DES-262).
2158
+ * Layered on the shadcn `TablePrimitive` parts for richer chrome:
2186
2159
  * - toolbar slot (search + filters + extras) above the header row
2187
2160
  * - uppercase, compact header cells with sort arrows (stateful)
2188
2161
  * - sticky-left columns for "name" identity (horizontal-scroll safe)
@@ -2354,8 +2327,6 @@ declare interface ProColumnMetaSticky extends ProColumnMetaBase {
2354
2327
  grow?: never;
2355
2328
  }
2356
2329
 
2357
- export declare function ProDataTable<T>({ columns, data, selectable, getRowId, selectedRowIds, onSelectionChange, enableRowSelection, rowActions, getRowLabel, searchable, filters, toolbar, actions, footer, pageSize, disablePagination, resizableColumns, columnSizingStorageKey, defaultSort, manualPagination, rowCount, pageIndex, onPageChange, manualSorting, sorting: controlledSorting, onSortingChange, manualFiltering, columnFilters: controlledColumnFilters, onColumnFiltersChange, loading, emptyMessage, onRowClick, rowHref, rowClassName, minWidth, height, bordered, variant, ariaLabel, className, }: ProDataTableProps<T>): JSX.Element;
2358
-
2359
2330
  /**
2360
2331
  * Native segmented filter for the toolbar (e.g. All / Groups / People). The
2361
2332
  * table renders the pills; the caller owns the active value and the actual
@@ -2563,6 +2534,11 @@ declare interface ProDataTableProps<T> {
2563
2534
  variant?: 'table' | 'list';
2564
2535
  /** Shown when the table is selected in a multi-table shell (optional). */
2565
2536
  ariaLabel?: string;
2537
+ /**
2538
+ * Layout only (`h-auto`, `flex-none`, width). Card fill (`bg-card`) and
2539
+ * toolbar/header chrome colors/sizes are owned by the component — do not
2540
+ * pass `bg-*` here expecting it to restyle the table surface.
2541
+ */
2566
2542
  className?: string;
2567
2543
  }
2568
2544
 
@@ -2637,24 +2613,32 @@ declare interface ProgressBarProps {
2637
2613
  }
2638
2614
 
2639
2615
  /**
2640
- * A quiet live/refresh indicator: a small green dot (muted when paused) that
2641
- * pulses subtly while a refresh is in flight, doubling as a manual-refresh
2642
- * button. Deliberately text-free — the freshness detail lives in the tooltip so
2643
- * the UI doesn't churn a ticking label.
2616
+ * Radio group — sibling of `checkbox.tsx`, sized + tokened to match.
2617
+ *
2618
+ * - 16×16 (`size-4`) so the controls align next to the same line-height
2619
+ * body text the existing Checkbox does.
2620
+ * - `rounded-full` (radios are circles).
2621
+ * - `border-input` when unchecked; flips to `border-primary` when checked
2622
+ * so the outline blends with the fill, same pattern as `checkbox.tsx`.
2623
+ * - Inner dot is a `RadioGroupPrimitive.Indicator` filled `bg-primary`,
2624
+ * sized to leave a 3px gap to the outer ring — the canonical shadcn
2625
+ * radio look.
2626
+ * - No drop shadow; matches Input/Select/Button/Checkbox primitives.
2627
+ *
2628
+ * Usage:
2629
+ *
2630
+ * <RadioGroup value={selected} onValueChange={setSelected}>
2631
+ * <RadioGroupItem value="a" id="a" />
2632
+ * <Label htmlFor="a">Option A</Label>
2633
+ * ...
2634
+ * </RadioGroup>
2635
+ *
2636
+ * Each item must have a stable `value` — that's what Radix uses for the
2637
+ * controlled group state.
2644
2638
  */
2645
- export declare function RefreshIndicator({ onRefresh, isFetching, isPaused, updatedAt, className, }: RefreshIndicatorProps): JSX.Element;
2639
+ export declare const RadioGroup: React_2.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
2646
2640
 
2647
- export declare interface RefreshIndicatorProps {
2648
- /** Manually trigger a refresh. */
2649
- onRefresh: () => void;
2650
- /** A background refresh is in flight — shows a subtle pulse. */
2651
- isFetching?: boolean;
2652
- /** Auto-refresh is paused (e.g. while editing) — shows a muted dot. */
2653
- isPaused?: boolean;
2654
- /** Last successful refresh time (ms epoch) — surfaced in the tooltip only. */
2655
- updatedAt?: number;
2656
- className?: string;
2657
- }
2641
+ export declare const RadioGroupItem: React_2.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
2658
2642
 
2659
2643
  export declare function RelativeTimeCell({ primary, secondary, className, }: {
2660
2644
  primary: React_2.ReactNode;
@@ -2831,6 +2815,20 @@ export declare const SheetContent: React_2.ForwardRefExoticComponent<SheetConten
2831
2815
 
2832
2816
  declare interface SheetContentProps extends React_2.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
2833
2817
  hideCloseButton?: boolean;
2818
+ /**
2819
+ * How far the panel and its scrim reach. Defaults to `"surface"` — a
2820
+ * slide-out belongs to the app that opened it and should leave the
2821
+ * shell's sidebar and header reachable and undimmed.
2822
+ *
2823
+ * Use `"viewport"` only for a panel that genuinely speaks for the
2824
+ * platform rather than the current app (a shell-level nav drawer, say).
2825
+ * If you are reaching for it to escape a clipping ancestor, fix the
2826
+ * ancestor instead — covering the whole shell to dodge `overflow:hidden`
2827
+ * is the bug DES-368 was filed about.
2828
+ */
2829
+ scope?: OverlayScope;
2830
+ /** Classes for the scrim, mirroring `DialogContent`'s `overlayClassName`. */
2831
+ overlayClassName?: string;
2834
2832
  }
2835
2833
 
2836
2834
  export declare const SheetDescription: React_2.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React_2.RefAttributes<HTMLParagraphElement>, "ref"> & React_2.RefAttributes<HTMLParagraphElement>>;
@@ -2845,7 +2843,9 @@ export declare const SheetHeader: {
2845
2843
  displayName: string;
2846
2844
  };
2847
2845
 
2848
- export declare const SheetOverlay: React_2.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
2846
+ export declare const SheetOverlay: React_2.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & {
2847
+ scope?: OverlayScope;
2848
+ } & React_2.RefAttributes<HTMLDivElement>>;
2849
2849
 
2850
2850
  export declare function SheetPortal({ container, ...props }: React_2.ComponentProps<typeof DialogPrimitive.Portal>): JSX.Element;
2851
2851
 
@@ -2854,6 +2854,7 @@ export declare const SheetTitle: React_2.ForwardRefExoticComponent<Omit<DialogPr
2854
2854
  export declare const SheetTrigger: React_2.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
2855
2855
 
2856
2856
  declare const sheetVariants: (props?: ({
2857
+ scope?: "surface" | "viewport" | null | undefined;
2857
2858
  side?: "bottom" | "left" | "right" | "top" | null | undefined;
2858
2859
  } & ClassProp) | undefined) => string;
2859
2860
 
@@ -2905,6 +2906,10 @@ declare interface SingleSelectListProps {
2905
2906
  searchable?: boolean;
2906
2907
  }
2907
2908
 
2909
+ declare const sizeShell: (props?: ({
2910
+ size?: "page" | "panel" | null | undefined;
2911
+ } & ClassProp) | undefined) => string;
2912
+
2908
2913
  export declare function Skeleton({ className, ...props }: React.ComponentProps<'div'>): JSX.Element;
2909
2914
 
2910
2915
  export declare function SkeletonBlock({ className, style }: {
@@ -2944,64 +2949,64 @@ export declare const spinnerVariants: (props?: ({
2944
2949
 
2945
2950
  export declare const STATUS_TONES: {
2946
2951
  readonly healthy: {
2947
- readonly bg: "bg-emerald-50 dark:bg-emerald-500/15";
2948
- readonly fg: "text-emerald-700 dark:text-emerald-300";
2949
- readonly dot: "bg-emerald-500";
2952
+ readonly bg: "bg-success-tint";
2953
+ readonly fg: "text-success-text";
2954
+ readonly dot: "bg-success";
2950
2955
  };
2951
2956
  readonly active: {
2952
- readonly bg: "bg-emerald-50 dark:bg-emerald-500/15";
2953
- readonly fg: "text-emerald-700 dark:text-emerald-300";
2954
- readonly dot: "bg-emerald-500";
2957
+ readonly bg: "bg-success-tint";
2958
+ readonly fg: "text-success-text";
2959
+ readonly dot: "bg-success";
2955
2960
  };
2956
2961
  readonly completed: {
2957
- readonly bg: "bg-emerald-50 dark:bg-emerald-500/15";
2958
- readonly fg: "text-emerald-700 dark:text-emerald-300";
2959
- readonly dot: "bg-emerald-500";
2962
+ readonly bg: "bg-success-tint";
2963
+ readonly fg: "text-success-text";
2964
+ readonly dot: "bg-success";
2960
2965
  };
2961
2966
  readonly success: {
2962
- readonly bg: "bg-emerald-50 dark:bg-emerald-500/15";
2963
- readonly fg: "text-emerald-700 dark:text-emerald-300";
2964
- readonly dot: "bg-emerald-500";
2967
+ readonly bg: "bg-success-tint";
2968
+ readonly fg: "text-success-text";
2969
+ readonly dot: "bg-success";
2965
2970
  };
2966
2971
  readonly running: {
2967
- readonly bg: "bg-sky-50 dark:bg-sky-500/15";
2968
- readonly fg: "text-sky-700 dark:text-sky-300";
2969
- readonly dot: "bg-sky-500";
2972
+ readonly bg: "bg-info-tint";
2973
+ readonly fg: "text-info-text";
2974
+ readonly dot: "bg-info";
2970
2975
  };
2971
2976
  readonly info: {
2972
- readonly bg: "bg-sky-50 dark:bg-sky-500/15";
2973
- readonly fg: "text-sky-700 dark:text-sky-300";
2974
- readonly dot: "bg-sky-500";
2977
+ readonly bg: "bg-info-tint";
2978
+ readonly fg: "text-info-text";
2979
+ readonly dot: "bg-info";
2975
2980
  };
2976
2981
  readonly queued: {
2977
- readonly bg: "bg-sky-50 dark:bg-sky-500/15";
2978
- readonly fg: "text-sky-700 dark:text-sky-300";
2979
- readonly dot: "bg-sky-500";
2982
+ readonly bg: "bg-info-tint";
2983
+ readonly fg: "text-info-text";
2984
+ readonly dot: "bg-info";
2980
2985
  };
2981
2986
  readonly drift: {
2982
- readonly bg: "bg-amber-50 dark:bg-amber-500/15";
2983
- readonly fg: "text-amber-700 dark:text-amber-300";
2984
- readonly dot: "bg-amber-500";
2987
+ readonly bg: "bg-warning-tint";
2988
+ readonly fg: "text-warning-text";
2989
+ readonly dot: "bg-warning";
2985
2990
  };
2986
2991
  readonly warn: {
2987
- readonly bg: "bg-amber-50 dark:bg-amber-500/15";
2988
- readonly fg: "text-amber-700 dark:text-amber-300";
2989
- readonly dot: "bg-amber-500";
2992
+ readonly bg: "bg-warning-tint";
2993
+ readonly fg: "text-warning-text";
2994
+ readonly dot: "bg-warning";
2990
2995
  };
2991
2996
  readonly failing: {
2992
- readonly bg: "bg-rose-50 dark:bg-rose-500/15";
2993
- readonly fg: "text-rose-700 dark:text-rose-300";
2994
- readonly dot: "bg-rose-500";
2997
+ readonly bg: "bg-danger-tint";
2998
+ readonly fg: "text-danger-text";
2999
+ readonly dot: "bg-danger";
2995
3000
  };
2996
3001
  readonly failed: {
2997
- readonly bg: "bg-rose-50 dark:bg-rose-500/15";
2998
- readonly fg: "text-rose-700 dark:text-rose-300";
2999
- readonly dot: "bg-rose-500";
3002
+ readonly bg: "bg-danger-tint";
3003
+ readonly fg: "text-danger-text";
3004
+ readonly dot: "bg-danger";
3000
3005
  };
3001
3006
  readonly error: {
3002
- readonly bg: "bg-rose-50 dark:bg-rose-500/15";
3003
- readonly fg: "text-rose-700 dark:text-rose-300";
3004
- readonly dot: "bg-rose-500";
3007
+ readonly bg: "bg-danger-tint";
3008
+ readonly fg: "text-danger-text";
3009
+ readonly dot: "bg-danger";
3005
3010
  };
3006
3011
  readonly paused: {
3007
3012
  readonly bg: "bg-muted";
@@ -3044,7 +3049,10 @@ export declare type StatusTone = keyof typeof STATUS_TONES;
3044
3049
  */
3045
3050
  export declare const Switch: React_2.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
3046
3051
 
3047
- export declare const Table: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableElement> & React_2.RefAttributes<HTMLTableElement>>;
3052
+ declare function Table<T>({ columns, data, selectable, getRowId, selectedRowIds, onSelectionChange, enableRowSelection, rowActions, getRowLabel, searchable, filters, toolbar, actions, footer, pageSize, disablePagination, resizableColumns, columnSizingStorageKey, defaultSort, manualPagination, rowCount, pageIndex, onPageChange, manualSorting, sorting: controlledSorting, onSortingChange, manualFiltering, columnFilters: controlledColumnFilters, onColumnFiltersChange, loading, emptyMessage, onRowClick, rowHref, rowClassName, minWidth, height, bordered, variant, ariaLabel, className, }: ProDataTableProps<T>): JSX.Element;
3053
+ export { Table as DataTable }
3054
+ export { Table as ProDataTable }
3055
+ export { Table }
3048
3056
 
3049
3057
  export declare const TableBody: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableSectionElement> & React_2.RefAttributes<HTMLTableSectionElement>>;
3050
3058
 
@@ -3058,6 +3066,17 @@ export declare const TableHead: React_2.ForwardRefExoticComponent<React_2.ThHTML
3058
3066
 
3059
3067
  export declare const TableHeader: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableSectionElement> & React_2.RefAttributes<HTMLTableSectionElement>>;
3060
3068
 
3069
+ export declare const TablePrimitive: {
3070
+ Root: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableElement> & React_2.RefAttributes<HTMLTableElement>>;
3071
+ Header: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableSectionElement> & React_2.RefAttributes<HTMLTableSectionElement>>;
3072
+ Body: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableSectionElement> & React_2.RefAttributes<HTMLTableSectionElement>>;
3073
+ Footer: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableSectionElement> & React_2.RefAttributes<HTMLTableSectionElement>>;
3074
+ Head: React_2.ForwardRefExoticComponent<React_2.ThHTMLAttributes<HTMLTableCellElement> & React_2.RefAttributes<HTMLTableCellElement>>;
3075
+ Row: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableRowElement> & React_2.RefAttributes<HTMLTableRowElement>>;
3076
+ Cell: React_2.ForwardRefExoticComponent<React_2.TdHTMLAttributes<HTMLTableCellElement> & React_2.RefAttributes<HTMLTableCellElement>>;
3077
+ Caption: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableCaptionElement> & React_2.RefAttributes<HTMLTableCaptionElement>>;
3078
+ };
3079
+
3061
3080
  export declare const TableRow: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableRowElement> & React_2.RefAttributes<HTMLTableRowElement>>;
3062
3081
 
3063
3082
  export declare const Tabs: React_2.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React_2.RefAttributes<HTMLDivElement>>;
@@ -3590,7 +3609,7 @@ export { toast }
3590
3609
  * the same without re-specifying options at the call site.
3591
3610
  * 2. Binds Sonner's internal classes to Atlas design tokens via
3592
3611
  * `toastOptions.classNames` — `bg-card`, `border-border`,
3593
- * `shadow-popover`, `rounded-md`, and the `--destructive` /
3612
+ * `shadow-popover`, `rounded-surface`, and the `--destructive` /
3594
3613
  * `--primary` / `--muted` pairs. Matches Dialog / Popover /
3595
3614
  * DropdownMenu so all floating UI reads as one visual family.
3596
3615
  * 3. Uses `richColors` for the semantic variants
@@ -3644,6 +3663,21 @@ export declare const toggleVariants: (props?: ({
3644
3663
  size?: "default" | "sm" | "lg" | null | undefined;
3645
3664
  } & ClassProp) | undefined) => string;
3646
3665
 
3666
+ /**
3667
+ * Full-surface utility layout for "instead of content" screens — 404, access
3668
+ * denied, page error, empty route. Distinct from {@link EmptyState} in
3669
+ * `loading-state.tsx`, which is the small inline placeholder for tables and
3670
+ * section panels. Reach for `PageState` when the whole content area (or a
3671
+ * bounded panel) is the message; reach for `EmptyState` when a table/list
3672
+ * inside an otherwise-loaded page has no rows.
3673
+ *
3674
+ * Tone → status-role mapping lives **once** here. Call sites pass a Tabler
3675
+ * glyph via `icon` and never write medallion colors themselves.
3676
+ */
3677
+ declare const toneMedallion: (props?: ({
3678
+ tone?: "neutral" | "warning" | "danger" | "restricted" | null | undefined;
3679
+ } & ClassProp) | undefined) => string;
3680
+
3647
3681
  export declare const Tooltip: React_2.FC<TooltipPrimitive.TooltipProps>;
3648
3682
 
3649
3683
  /**
@@ -4055,10 +4089,3 @@ export declare interface UserChipUser {
4055
4089
  declare type YearBias = 'past' | 'future';
4056
4090
 
4057
4091
  export { }
4058
-
4059
-
4060
- declare module 'chart.js' {
4061
- interface TooltipPositionerMap {
4062
- cursor: TooltipPositionerFunction<ChartType>;
4063
- }
4064
- }