@sequenceholdings/atlas-ui 2.0.0 → 3.0.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.
@@ -1743,6 +1743,7 @@ var M = (e, t) => {
1743
1743
  "control",
1744
1744
  "badge",
1745
1745
  "field",
1746
+ "surface-inset",
1746
1747
  "surface-nested",
1747
1748
  "surface"
1748
1749
  ], Dt = [
@@ -18287,7 +18288,7 @@ function eM({ active: t, payload: n, className: r, indicator: i = "dot", hideLab
18287
18288
  if (x.length === 0 && !S) return null;
18288
18289
  let C = m && b.length > 0 ? m(b) : null;
18289
18290
  return /* @__PURE__ */ y("div", {
18290
- className: At("grid min-w-[8rem] items-start gap-1.5 rounded-surface border border-border bg-card px-2.5 py-1.5 text-xs shadow-popover", r),
18291
+ className: At("grid min-w-32 items-start gap-1.5 rounded-surface border border-border bg-card px-2.5 py-1.5 text-xs shadow-popover", r),
18291
18292
  children: [
18292
18293
  S,
18293
18294
  x.length > 0 ? /* @__PURE__ */ v("div", {
package/dist/charts.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, J as u, K as d, L as f, M as p, O as m, P as h, R as g, S as _, T as v, U as y, V as b, W as x, X as S, Y as C, Z as ee, _ as te, a as w, b as T, c as ne, d as re, f as ie, g as ae, h as oe, i as se, j as ce, k as le, l as ue, m as de, o as fe, p as pe, q as me, s as E, t as he, u as ge, v as _e, w as ve, x as ye, y as be, z as xe } from "./chart-D6BE0zF5.js";
1
+ import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, J as u, K as d, L as f, M as p, O as m, P as h, R as g, S as _, T as v, U as y, V as b, W as x, X as S, Y as C, Z as ee, _ as te, a as w, b as T, c as ne, d as re, f as ie, g as ae, h as oe, i as se, j as ce, k as le, l as ue, m as de, o as fe, p as pe, q as me, s as E, t as he, u as ge, v as _e, w as ve, x as ye, y as be, z as xe } from "./chart-DeLyjZqf.js";
2
2
  import D, { PureComponent as Se, useMemo as O } from "react";
3
3
  import { jsx as k, jsxs as A } from "react/jsx-runtime";
4
4
  //#region ../../../node_modules/.pnpm/recharts@2.15.0_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/recharts/es6/shape/Polygon.js
package/dist/index.d.ts CHANGED
@@ -1681,8 +1681,8 @@ export declare interface HeatmapTableProps<T> {
1681
1681
  onRowClick?: (row: T) => void;
1682
1682
  /** Label used in pagination ("1–10 of 42 {entityLabel}") and empty state. */
1683
1683
  entityLabel?: string;
1684
- /** Tightens cell padding for dense, many-column matrices. */
1685
- density?: 'default' | 'compact' | 'dense';
1684
+ /** Component-owned density mode for this matrix. */
1685
+ density?: 'default' | 'compact';
1686
1686
  className?: string;
1687
1687
  }
1688
1688
 
@@ -1767,7 +1767,13 @@ declare interface KpiTileProps {
1767
1767
  deltaTone?: 'positive' | 'negative' | 'neutral';
1768
1768
  /** Optional small line of text below the value (captions, context). */
1769
1769
  footer?: React_2.ReactNode;
1770
- /** When 'warn', the tile picks up an amber tint to flag attention. */
1770
+ /**
1771
+ * Tints the tile to carry a signal: 'warn' amber for an attention threshold,
1772
+ * 'danger' red for an alarm. Prefer this over passing a coloured ring through
1773
+ * `className` — a `ring-<role>/30` outline measures 1.34:1 against the tile in
1774
+ * light, which is not a signal. The tonal states read because the label and
1775
+ * value turn coloured (7.3:1 on the tint), not because the fill is strong.
1776
+ */
1771
1777
  tone?: KpiTone;
1772
1778
  /** Inline adornment rendered next to the value (e.g. live dot). */
1773
1779
  valueAdornment?: React_2.ReactNode;
@@ -1789,14 +1795,15 @@ declare interface KpiTileProps {
1789
1795
  * KpiTile — compact metric card for the top of dashboards.
1790
1796
  *
1791
1797
  * Differs from `MetricCard` in two deliberate ways:
1792
- * - supports a colored "warn" state (tinted background/border) for KPIs that
1793
- * themselves carry an attention signal (e.g. "Needs attention: 1")
1798
+ * - supports colored tonal states (tinted background/border) for KPIs that
1799
+ * themselves carry a signal: `warn` for an attention threshold, `danger`
1800
+ * for an alarm the viewer is expected to act on (e.g. "Flagged: 3")
1794
1801
  * - exposes `delta`, `deltaTone`, and `footer` slots so the monitoring-style
1795
1802
  * copy ("+0.4pp vs prev 24h", "5 agents live") renders consistently
1796
1803
  *
1797
1804
  * When you only need a static label + value + subtitle, prefer MetricCard.
1798
1805
  */
1799
- declare type KpiTone = 'neutral' | 'warn' | 'info';
1806
+ declare type KpiTone = 'neutral' | 'warn' | 'info' | 'danger';
1800
1807
 
1801
1808
  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>>;
1802
1809
 
@@ -1856,13 +1863,14 @@ export declare interface MetricAreaChartProps {
1856
1863
  className?: string;
1857
1864
  }
1858
1865
 
1859
- export declare function MetricCard({ label, value, subtitle, compact, className, onClick, children }: MetricCardProps): JSX.Element;
1866
+ export declare function MetricCard({ label, value, subtitle, density, className, onClick, children, }: MetricCardProps): JSX.Element;
1860
1867
 
1861
1868
  declare interface MetricCardProps {
1862
1869
  label: string;
1863
1870
  value: ReactNode;
1864
1871
  subtitle?: ReactNode;
1865
- compact?: boolean;
1872
+ /** Component-owned density mode for metric grids. */
1873
+ density?: 'default' | 'compact';
1866
1874
  className?: string;
1867
1875
  onClick?: () => void;
1868
1876
  children?: ReactNode;
@@ -2001,7 +2009,7 @@ declare interface MultiSelectProps extends MultiSelectCoreProps {
2001
2009
  * events only within the dialog's own content subtree. This popover portals
2002
2010
  * to the body, so it sits outside that subtree and the lock swallows every
2003
2011
  * wheel event over the option list — the list is a real scroll container
2004
- * (`max-h-[300px] overflow-y-auto`) but cannot be scrolled, stranding every
2012
+ * (`max-h-75 overflow-y-auto`) but cannot be scrolled, stranding every
2005
2013
  * option past the ~7th. Radix `Select` is unaffected because it implements
2006
2014
  * its own scrolling rather than relying on native overflow.
2007
2015
  *
@@ -2512,6 +2520,55 @@ declare interface ProDataTableProps<T> {
2512
2520
  * pass `bg-*` here expecting it to restyle the table surface.
2513
2521
  */
2514
2522
  className?: string;
2523
+ /**
2524
+ * Opt-in row grouping. Returns a stable group key per row; the table inserts
2525
+ * a full-width section-header row before each group's members. Group order
2526
+ * follows first appearance in the filtered/sorted row model. Pair with
2527
+ * `renderGroupHeader` for custom header content.
2528
+ *
2529
+ * Grouping + client pagination is unsupported in v1 — when `groupBy` is set
2530
+ * without `manualPagination`, the client pager is forced off (same as
2531
+ * `disablePagination`). Server-paginated tables keep their pager.
2532
+ */
2533
+ groupBy?: (row: T) => string;
2534
+ /**
2535
+ * Optional stable group order, including keys that currently have zero rows
2536
+ * (vocabulary-only teams, empty buckets). Without it, headers are derived
2537
+ * from the row model and empty groups disappear.
2538
+ *
2539
+ * While the table is searching, empty keys are still omitted so the result
2540
+ * stays dense — matching the prior Roster `filterGroups` contract.
2541
+ */
2542
+ groupKeys?: readonly string[];
2543
+ /**
2544
+ * Render the section-header cell for a group. Receives the group's key, the
2545
+ * filtered member rows in that group, whether the body is expanded, and a
2546
+ * `toggle` callback (no-op when `collapsibleGroups` is off). Defaults to the
2547
+ * group key as plain text when omitted.
2548
+ */
2549
+ renderGroupHeader?: (ctx: {
2550
+ groupKey: string;
2551
+ rows: T[];
2552
+ expanded: boolean;
2553
+ toggle: () => void;
2554
+ }) => React_2.ReactNode;
2555
+ /**
2556
+ * When true with `groupBy`, section bodies can collapse (headers stay).
2557
+ * Defaults to false — groups always show their rows.
2558
+ */
2559
+ collapsibleGroups?: boolean;
2560
+ /**
2561
+ * Controlled set of expanded group keys. Omit for uncontrolled
2562
+ * (`defaultExpandedGroups`). Ignored when `collapsibleGroups` is false.
2563
+ */
2564
+ expandedGroups?: ReadonlySet<string>;
2565
+ /**
2566
+ * Uncontrolled initial expansion. `'all'` (default) expands every group;
2567
+ * `'none'` collapses all; a string array expands those keys only.
2568
+ */
2569
+ defaultExpandedGroups?: 'all' | 'none' | string[];
2570
+ /** Called whenever the expanded set changes (controlled or uncontrolled). */
2571
+ onExpandedGroupsChange?: (next: ReadonlySet<string>) => void;
2515
2572
  }
2516
2573
 
2517
2574
  /**
@@ -3016,12 +3073,12 @@ export declare type StatusTone = keyof typeof STATUS_TONES;
3016
3073
  * No drop shadows — neither on the track nor the thumb — consistent
3017
3074
  * with the rest of Atlas's form primitives (Input, Select, Textarea,
3018
3075
  * Button, Checkbox). Affordance comes from the bg-color transition
3019
- * (`bg-input` → `bg-primary`) and the thumb's translate + opaque
3076
+ * (`bg-input` → `bg-expressive`) and the thumb's translate + opaque
3020
3077
  * contrast against the track.
3021
3078
  */
3022
3079
  export declare const Switch: React_2.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
3023
3080
 
3024
- 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;
3081
+ declare function Table<T>(props: ProDataTableProps<T>): JSX.Element;
3025
3082
  export { Table as DataTable }
3026
3083
  export { Table as ProDataTable }
3027
3084
  export { Table }
@@ -3056,7 +3113,7 @@ export declare const Tabs: React_2.ForwardRefExoticComponent<TabsPrimitive.TabsP
3056
3113
  export declare const TabsContent: React_2.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
3057
3114
 
3058
3115
  export declare const TabsList: React_2.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
3059
- variant?: "default" | "line" | "sidebar" | null | undefined;
3116
+ variant?: "default" | "line" | "pills" | "sidebar" | null | undefined;
3060
3117
  } & ClassProp) | undefined) => string> & React_2.RefAttributes<HTMLDivElement>>;
3061
3118
 
3062
3119
  export declare const TabsTrigger: React_2.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
@@ -3752,11 +3809,11 @@ declare interface TrendBadgeProps {
3752
3809
  * body or long-form copy: that should wrap, not truncate.
3753
3810
  *
3754
3811
  * ```tsx
3755
- * <TruncatedText className="max-w-[16rem]">{customer.name}</TruncatedText>
3812
+ * <TruncatedText className="max-w-64">{customer.name}</TruncatedText>
3756
3813
  *
3757
3814
  * // asChild — the link itself truncates; pass the text as `tooltip`:
3758
3815
  * <TruncatedText asChild tooltip={repo.name}>
3759
- * <a href={href} className="max-w-[14rem]">{repo.name}</a>
3816
+ * <a href={href} className="max-w-56">{repo.name}</a>
3760
3817
  * </TruncatedText>
3761
3818
  * ```
3762
3819
  */