@sequenceholdings/atlas-ui 0.3.2 → 1.0.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 +24 -58
- package/dist/index.mjs +336 -397
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1506,68 +1506,13 @@ export declare interface FilterOption<T extends string> {
|
|
|
1506
1506
|
swatch?: ReactNode;
|
|
1507
1507
|
}
|
|
1508
1508
|
|
|
1509
|
-
export declare function FilterPill({ label, options, selected, onChange }: FilterPillProps): JSX.Element | null;
|
|
1510
|
-
|
|
1511
|
-
/**
|
|
1512
|
-
* @deprecated Do not use in new code, and migrate existing usages off it.
|
|
1513
|
-
* `FilterPill` is being retired from the design system: filtering must go
|
|
1514
|
-
* through the canonical support — `ProDataTable`'s native filter funnel
|
|
1515
|
-
* (`meta.filter` → `FilterMenu`), which owns state, ordering (search always
|
|
1516
|
-
* before filter), and DS-composed controls. This standalone pill is removed
|
|
1517
|
-
* from the design-system gallery; it is still exported from
|
|
1518
|
-
* `@sequenceholdings/atlas-ui` (deprecated) purely so existing consumers keep
|
|
1519
|
-
* compiling — kept only until the remaining app consumers (chat / crm /
|
|
1520
|
-
* permissions / groups / jarvis / billing) are migrated to the funnel, after
|
|
1521
|
-
* which the exports and this file go away (DES-126).
|
|
1522
|
-
*
|
|
1523
|
-
* FilterPill — a compact multi-select filter anchored to a table toolbar.
|
|
1524
|
-
*
|
|
1525
|
-
* Visual contract mirrors `SelectTrigger` so a toolbar of FilterPills +
|
|
1526
|
-
* SearchInput + Select reads as one coherent row of controls, not a
|
|
1527
|
-
* grab-bag of visual treatments:
|
|
1528
|
-
*
|
|
1529
|
-
* - Height: h-9 (36px)
|
|
1530
|
-
* - Radius: `rounded-control` — operable and one line tall
|
|
1531
|
-
* - Border/bg: `border bg-card` — `--input` border, raised surface,
|
|
1532
|
-
* same palette as Select/Input. NOT `background`: that is
|
|
1533
|
-
* the PAGE role (ds-neutral-50 under v2, not white), which
|
|
1534
|
-
* rendered the pill as a grey chip next to the white
|
|
1535
|
-
* outline controls beside it. `Button variant="outline"`
|
|
1536
|
-
* carries the same note and the same `dark:bg-input/30`
|
|
1537
|
-
* lift, since in dark the resting fill matches the darkest
|
|
1538
|
-
* surface and vanishes.
|
|
1539
|
-
* - Padding: px-3 py-1
|
|
1540
|
-
* - Text: text-base md:text-sm (14px on desktop)
|
|
1541
|
-
* - Focus ring: focus:ring-1 focus:ring-ring (keyboard-visible)
|
|
1542
|
-
*
|
|
1543
|
-
* Rationale for NOT using `rounded-full` + primary fill (the old shape):
|
|
1544
|
-
* 1. Visual noise. When a toolbar mixes a SearchInput (8px radius),
|
|
1545
|
-
* two FilterPills (full radius), and a Select (8px radius), the
|
|
1546
|
-
* eye has to re-parse each control. A consistent radius reads as
|
|
1547
|
-
* one group.
|
|
1548
|
-
* 2. Active state hierarchy. A solid primary-colored pill made the
|
|
1549
|
-
* active filter feel like a CTA. Filters are not CTAs — the
|
|
1550
|
-
* primary action on a dashboard is "run query" / "save", not
|
|
1551
|
-
* "I've narrowed my view". A subtle count chip communicates
|
|
1552
|
-
* activity without competing with real buttons.
|
|
1553
|
-
*
|
|
1554
|
-
* Active state now uses a tiny pill-shaped count badge next to the
|
|
1555
|
-
* label. The trigger itself stays in the Select-aligned neutral look.
|
|
1556
|
-
*/
|
|
1557
|
-
declare interface FilterPillProps {
|
|
1558
|
-
label: string;
|
|
1559
|
-
options: string[];
|
|
1560
|
-
selected: string[];
|
|
1561
|
-
onChange: (values: string[]) => void;
|
|
1562
|
-
}
|
|
1563
|
-
|
|
1564
1509
|
/**
|
|
1565
1510
|
* @deprecated Do not use in new code, and migrate existing usages off it.
|
|
1566
1511
|
* `FilterSelect` is retired in favor of `MultiSelect` (searchable cmdk list,
|
|
1567
1512
|
* always-visible checkboxes, stacked trigger icons). It is still exported from
|
|
1568
1513
|
* `@sequenceholdings/atlas-ui` (deprecated) so remaining consumers keep
|
|
1569
|
-
* compiling — remove only after the blast-radius scan is clean (
|
|
1570
|
-
*
|
|
1514
|
+
* compiling — remove only after the blast-radius scan is clean (DES-261
|
|
1515
|
+
* deprecate-before-delete pattern).
|
|
1571
1516
|
*
|
|
1572
1517
|
* A compact multi-select filter for a table/list toolbar: a trigger with a count
|
|
1573
1518
|
* chip when active, and a popover of swatch + label rows with a check on the
|
|
@@ -1933,7 +1878,7 @@ declare interface MetricGridProps {
|
|
|
1933
1878
|
className?: string;
|
|
1934
1879
|
}
|
|
1935
1880
|
|
|
1936
|
-
export declare function MultiSelect({ label, countLabel, options, selected, onChange, searchPlaceholder, emptyMessage, maxStackedIcons, hideWhenEmpty, className, }: MultiSelectProps): JSX.Element | null;
|
|
1881
|
+
export declare function MultiSelect({ label, countLabel, options, selected, onChange, searchPlaceholder, emptyMessage, maxStackedIcons, hideWhenEmpty, modal, className, }: MultiSelectProps): JSX.Element | null;
|
|
1937
1882
|
|
|
1938
1883
|
/**
|
|
1939
1884
|
* Fields shared by `MultiSelect` (trigger + popover) and the standalone
|
|
@@ -2050,6 +1995,27 @@ declare interface MultiSelectProps extends MultiSelectCoreProps {
|
|
|
2050
1995
|
* that hasn't loaded yet).
|
|
2051
1996
|
*/
|
|
2052
1997
|
hideWhenEmpty?: boolean;
|
|
1998
|
+
/**
|
|
1999
|
+
* Render the popover as a modal layer. Pass `true` when the MultiSelect
|
|
2000
|
+
* lives inside a Dialog.
|
|
2001
|
+
*
|
|
2002
|
+
* A Dialog scroll-locks the page with react-remove-scroll, allowing wheel
|
|
2003
|
+
* events only within the dialog's own content subtree. This popover portals
|
|
2004
|
+
* to the body, so it sits outside that subtree and the lock swallows every
|
|
2005
|
+
* wheel event over the option list — the list is a real scroll container
|
|
2006
|
+
* (`max-h-[300px] overflow-y-auto`) but cannot be scrolled, stranding every
|
|
2007
|
+
* option past the ~7th. Radix `Select` is unaffected because it implements
|
|
2008
|
+
* its own scrolling rather than relying on native overflow.
|
|
2009
|
+
*
|
|
2010
|
+
* Modal mode gives the popover its own scroll lock. react-remove-scroll
|
|
2011
|
+
* keeps a stack of locks with only the innermost active, so the popover's
|
|
2012
|
+
* lock supersedes the dialog's and allows wheel within the popover.
|
|
2013
|
+
*
|
|
2014
|
+
* Defaults to `false` because modal mode also traps focus and blocks outside
|
|
2015
|
+
* pointer events — in a filter toolbar that breaks clicking straight from one
|
|
2016
|
+
* open facet to the next, which is the dominant use of this component.
|
|
2017
|
+
*/
|
|
2018
|
+
modal?: boolean;
|
|
2053
2019
|
className?: string;
|
|
2054
2020
|
}
|
|
2055
2021
|
|