@estiva-app/ui 0.12.0 → 0.12.2
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/AppShell.d.ts.map +1 -1
- package/dist/CollapsibleSection.d.ts +3 -1
- package/dist/CollapsibleSection.d.ts.map +1 -1
- package/dist/DialogShell.d.ts +14 -2
- package/dist/DialogShell.d.ts.map +1 -1
- package/dist/Field.d.ts +36 -0
- package/dist/Field.d.ts.map +1 -1
- package/dist/Popover.d.ts +11 -2
- package/dist/Popover.d.ts.map +1 -1
- package/dist/ScrollArea.d.ts +14 -2
- package/dist/ScrollArea.d.ts.map +1 -1
- package/dist/SectionHeader.d.ts +10 -1
- package/dist/SectionHeader.d.ts.map +1 -1
- package/dist/Toast.d.ts +17 -7
- package/dist/Toast.d.ts.map +1 -1
- package/dist/cn.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +138 -99
- package/dist/index.js.map +4 -4
- package/package.json +1 -1
- package/src/AppShell.mdx +15 -0
- package/src/AppShell.stories.tsx +15 -0
- package/src/AppShell.test.tsx +39 -0
- package/src/AppShell.tsx +22 -7
- package/src/CollapsibleSection.tsx +4 -2
- package/src/DialogShell.mdx +9 -3
- package/src/DialogShell.stories.tsx +29 -0
- package/src/DialogShell.test.tsx +35 -0
- package/src/DialogShell.tsx +31 -4
- package/src/EmptyState.mdx +5 -4
- package/src/Field.mdx +3 -2
- package/src/Field.tsx +57 -2
- package/src/FieldLine.mdx +57 -0
- package/src/FieldLine.stories.tsx +80 -0
- package/src/FieldLine.test.tsx +56 -0
- package/src/Popover.mdx +3 -1
- package/src/Popover.stories.tsx +15 -0
- package/src/Popover.test.tsx +20 -0
- package/src/Popover.tsx +12 -3
- package/src/ScrollArea.mdx +5 -0
- package/src/ScrollArea.test.tsx +27 -1
- package/src/ScrollArea.tsx +16 -2
- package/src/SectionHeader.mdx +4 -0
- package/src/SectionHeader.stories.tsx +10 -1
- package/src/SectionHeader.test.tsx +25 -0
- package/src/SectionHeader.tsx +14 -1
- package/src/Toast.mdx +8 -2
- package/src/Toast.stories.tsx +13 -3
- package/src/Toast.tsx +44 -11
- package/src/cn.ts +1 -1
- package/src/index.ts +1 -1
- package/stories/Choosing.mdx +2 -0
- package/tailwind-preset.js +4 -0
package/dist/AppShell.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../src/AppShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../src/AppShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKtC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;IAC9B,uEAAuE;IACvE,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,oEAAoE;IACpE,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,gEAAgE;IAChE,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,qEAAqE;IACrE,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,qFAAqF;IACrF,GAAG,EAAE,SAAS,CAAA;IACd,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,OAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,aAAa,+BA6DjH"}
|
|
@@ -28,6 +28,8 @@ export interface CollapsibleSectionProps {
|
|
|
28
28
|
onOpenChange?: (open: boolean) => void;
|
|
29
29
|
/** Remember open or closed in this browser, under this key. The app prefixes it. */
|
|
30
30
|
storageKey?: string;
|
|
31
|
+
/** Beside the title and always visible, before the actions — a count. `SectionHeader`'s. */
|
|
32
|
+
trailing?: ReactNode;
|
|
31
33
|
/** Beside the title, revealed on hover or focus — `SectionHeader`'s. */
|
|
32
34
|
actions?: SectionAction[];
|
|
33
35
|
showActions?: 'hover' | 'always';
|
|
@@ -38,5 +40,5 @@ export interface CollapsibleSectionProps {
|
|
|
38
40
|
/** On the box the rows sit in: the gap between them. */
|
|
39
41
|
contentClassName?: string;
|
|
40
42
|
}
|
|
41
|
-
export declare function CollapsibleSection({ title, defaultOpen, open: openProp, onOpenChange, storageKey, actions, showActions, children, className, contentClassName }: CollapsibleSectionProps): import("react").JSX.Element;
|
|
43
|
+
export declare function CollapsibleSection({ title, defaultOpen, open: openProp, onOpenChange, storageKey, trailing, actions, showActions, children, className, contentClassName }: CollapsibleSectionProps): import("react").JSX.Element;
|
|
42
44
|
//# sourceMappingURL=CollapsibleSection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsibleSection.d.ts","sourceRoot":"","sources":["../src/CollapsibleSection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGhD,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,kCAAkC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,iCAAiC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IAChC,gBAAgB;IAChB,QAAQ,EAAE,SAAS,CAAA;IACnB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAwBD,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,WAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,uBAAuB,+
|
|
1
|
+
{"version":3,"file":"CollapsibleSection.d.ts","sourceRoot":"","sources":["../src/CollapsibleSection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGhD,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,kCAAkC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,iCAAiC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,wEAAwE;IACxE,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IAChC,gBAAgB;IAChB,QAAQ,EAAE,SAAS,CAAA;IACnB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAwBD,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,WAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,uBAAuB,+BAyBzM"}
|
package/dist/DialogShell.d.ts
CHANGED
|
@@ -35,8 +35,20 @@ export interface DialogShellProps {
|
|
|
35
35
|
* (a roster that simply ends). */
|
|
36
36
|
footer?: ReactNode;
|
|
37
37
|
children: ReactNode;
|
|
38
|
-
/** Extra classes on the body (
|
|
38
|
+
/** Extra classes on the body: its layout and any padding override (`flex flex-col gap-6`, `p-0 py-2`). */
|
|
39
39
|
bodyClassName?: string;
|
|
40
|
+
/**
|
|
41
|
+
* How tall the body may get before it scrolls, as the cap class —
|
|
42
|
+
* `max-h-[400px]`, `max-h-[70vh]`. Setting it makes the body a `ScrollArea`,
|
|
43
|
+
* so a long roster or a tall form scrolls in the package's bar rather than
|
|
44
|
+
* the browser's (D40, ADOPTION B19).
|
|
45
|
+
*
|
|
46
|
+
* Without it the body is what it always was and grows to its content, so no
|
|
47
|
+
* dialog written before 0.12.2 moves a pixel. A `bodyClassName` carrying
|
|
48
|
+
* `overflow-y-auto` and no cap never scrolled anything — the box grew — and
|
|
49
|
+
* is the case this replaces.
|
|
50
|
+
*/
|
|
51
|
+
bodyMaxHeight?: string;
|
|
40
52
|
width?: number;
|
|
41
53
|
/**
|
|
42
54
|
* A question that has to be answered rather than clicked away: a press on
|
|
@@ -46,5 +58,5 @@ export interface DialogShellProps {
|
|
|
46
58
|
*/
|
|
47
59
|
alert?: boolean;
|
|
48
60
|
}
|
|
49
|
-
export declare function DialogShell({ title, onClose, headerContent, footer, children, bodyClassName, width, alert }: DialogShellProps): import("react").JSX.Element;
|
|
61
|
+
export declare function DialogShell({ title, onClose, headerContent, footer, children, bodyClassName, bodyMaxHeight, width, alert }: DialogShellProps): import("react").JSX.Element;
|
|
50
62
|
//# sourceMappingURL=DialogShell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogShell.d.ts","sourceRoot":"","sources":["../src/DialogShell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"DialogShell.d.ts","sourceRoot":"","sources":["../src/DialogShell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAQ9C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,gBAAgB;IAC/B;8CAC0C;IAC1C,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB;yDACqD;IACrD,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB;uCACmC;IACnC,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,QAAQ,EAAE,SAAS,CAAA;IACnB,0GAA0G;IAC1G,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,KAAW,EAAE,KAAa,EAAE,EAAE,gBAAgB,+BAmG1J"}
|
package/dist/Field.d.ts
CHANGED
|
@@ -54,4 +54,40 @@ export interface FieldProps {
|
|
|
54
54
|
children: ReactNode;
|
|
55
55
|
}
|
|
56
56
|
export declare function Field({ label, required, helper, error, children }: FieldProps): import("react").JSX.Element;
|
|
57
|
+
/**
|
|
58
|
+
* The line on its own — the same small line `Field` draws under a control,
|
|
59
|
+
* for the places where there is no single control to draw it under.
|
|
60
|
+
*
|
|
61
|
+
* **Why it is not a `Field`.** Three surfaces in Peek put this line under a
|
|
62
|
+
* *group*: the rename row (a field and two buttons), a Folder's action
|
|
63
|
+
* controls, another app's action controls. Each already has a section heading
|
|
64
|
+
* above it, and `Field` comes with a label of its own — so wrapping the group
|
|
65
|
+
* in one would either say the heading twice or restyle it. Found at step 4 of
|
|
66
|
+
* Peek's adoption (`ADOPTION.md` B24); until this existed, all three spelled
|
|
67
|
+
* `text-xs text-error-default` by hand.
|
|
68
|
+
*
|
|
69
|
+
* **It announces itself**, which is the half the hand-written spans never had.
|
|
70
|
+
* These lines appear *after* something was done — a rename that the relay
|
|
71
|
+
* refused, an action that failed — so a reader who cannot see them is told:
|
|
72
|
+
* `role="alert"` for an error, `role="status"` for the rest. That is `Banner`'s
|
|
73
|
+
* rule (2026-09-02), kept here so the two agree.
|
|
74
|
+
*
|
|
75
|
+
* **`warning` is the tone `Field` has not got**, and deliberately: `Field`'s
|
|
76
|
+
* `error` also marks its control invalid, and a warning is not invalid — the
|
|
77
|
+
* rename went through, and something about it needs saying. A group has no
|
|
78
|
+
* single control to mark, so the distinction is free here and would not be
|
|
79
|
+
* there.
|
|
80
|
+
*
|
|
81
|
+
* When the line belongs to one control, it is `Field`'s `helper` or `error`:
|
|
82
|
+
* those are wired to the control with `aria-describedby` and `aria-invalid`,
|
|
83
|
+
* which this cannot be.
|
|
84
|
+
*/
|
|
85
|
+
export type FieldLineTone = 'helper' | 'warning' | 'error';
|
|
86
|
+
export interface FieldLineProps {
|
|
87
|
+
/** `helper` (muted) is a hint; `warning` (amber) and `error` (red) are outcomes. Default `helper`. */
|
|
88
|
+
tone?: FieldLineTone;
|
|
89
|
+
children: ReactNode;
|
|
90
|
+
className?: string;
|
|
91
|
+
}
|
|
92
|
+
export declare function FieldLine({ tone, children, className }: FieldLineProps): import("react").JSX.Element;
|
|
57
93
|
//# sourceMappingURL=Field.d.ts.map
|
package/dist/Field.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../src/Field.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIvF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,SAAS,CAAA;CACpB;
|
|
1
|
+
{"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../src/Field.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIvF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,SAAS,CAAA;CACpB;AAYD,wBAAgB,KAAK,CAAC,EAAE,KAAK,EAAE,QAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,UAAU,+BAqDrF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,cAAc;IAC7B,sGAAsG;IACtG,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,QAAQ,EAAE,SAAS,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,cAAc,+BAMjF"}
|
package/dist/Popover.d.ts
CHANGED
|
@@ -45,8 +45,17 @@ export interface PopoverProps {
|
|
|
45
45
|
* Render it always and toggle `open`; do not mount it only while it is open.
|
|
46
46
|
*/
|
|
47
47
|
anchor?: HTMLElement | DOMRect | null;
|
|
48
|
-
/**
|
|
49
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Which of the panel's edges hangs from the trigger's, or `center` to put
|
|
50
|
+
* the panel's middle over the anchor's. Default left.
|
|
51
|
+
*
|
|
52
|
+
* **`center` is what a toolbar over a text selection wants** (Katerina,
|
|
53
|
+
* PEE-19, after Linear): the panel sits over the middle of what you
|
|
54
|
+
* selected, wherever in the line that is. Until 0.12.2 only the two edges
|
|
55
|
+
* were mapped, so Peek's selection toolbar kept the placement arithmetic
|
|
56
|
+
* the move onto this component was meant to delete (ADOPTION B21).
|
|
57
|
+
*/
|
|
58
|
+
align?: 'left' | 'center' | 'right';
|
|
50
59
|
/**
|
|
51
60
|
* Which side of the trigger, or of the anchor, the panel prefers. Default
|
|
52
61
|
* `bottom`.
|
package/dist/Popover.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../src/Popover.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAOlF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,IAAI,CAAA;IACrC
|
|
1
|
+
{"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../src/Popover.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAOlF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,IAAI,CAAA;IACrC;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IACnC;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;IACvB;kFAC8E;IAC9E,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAC1C;kEAC8D;IAC9D,UAAU,CAAC,EAAE,SAAS,CAAC;QAAE,KAAK,EAAE,MAAM,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IACzE;uDACmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,SAAS,CAAA;IACnB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAOD,wBAAgB,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAc,EAAE,IAAe,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,YAAY,+BAkErK"}
|
package/dist/ScrollArea.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
1
|
+
import type { ReactNode, Ref, UIEventHandler } from 'react';
|
|
2
2
|
/**
|
|
3
3
|
* A region that scrolls without taking width for its scrollbar.
|
|
4
4
|
*
|
|
@@ -40,7 +40,19 @@ export interface ScrollAreaProps {
|
|
|
40
40
|
viewportClassName?: string;
|
|
41
41
|
/** On the content, the box the children sit in: padding, gap, layout. */
|
|
42
42
|
contentClassName?: string;
|
|
43
|
+
/**
|
|
44
|
+
* The scrolling box itself, for a region that reads or drives its own
|
|
45
|
+
* scrolling: `ref.current.scrollTop`, `scrollTo`, `scrollHeight`.
|
|
46
|
+
*
|
|
47
|
+
* A conversation is the case this exists for (ADOPTION B20): it arrives at
|
|
48
|
+
* the newest message, keeps its place when older ones load above, and jumps
|
|
49
|
+
* to the bottom when a reply is sent — none of which the region can do for
|
|
50
|
+
* the caller, and all of which the caller cannot do without the box.
|
|
51
|
+
*/
|
|
52
|
+
viewportRef?: Ref<HTMLDivElement>;
|
|
53
|
+
/** Fires as the viewport scrolls — the unread policy's input, beside `viewportRef`. */
|
|
54
|
+
onScroll?: UIEventHandler<HTMLDivElement>;
|
|
43
55
|
children: ReactNode;
|
|
44
56
|
}
|
|
45
|
-
export declare function ScrollArea({ orientation, className, viewportClassName, contentClassName, children }: ScrollAreaProps): import("react").JSX.Element;
|
|
57
|
+
export declare function ScrollArea({ orientation, className, viewportClassName, contentClassName, viewportRef, onScroll, children }: ScrollAreaProps): import("react").JSX.Element;
|
|
46
58
|
//# sourceMappingURL=ScrollArea.d.ts.map
|
package/dist/ScrollArea.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollArea.d.ts","sourceRoot":"","sources":["../src/ScrollArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ScrollArea.d.ts","sourceRoot":"","sources":["../src/ScrollArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAA;IAChD,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;IACjC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IACzC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAKD,wBAAgB,UAAU,CAAC,EAAE,WAAwB,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,eAAe,+BA4CxJ"}
|
package/dist/SectionHeader.d.ts
CHANGED
|
@@ -40,6 +40,15 @@ export interface SectionHeaderProps {
|
|
|
40
40
|
chevron?: boolean;
|
|
41
41
|
isExpanded?: boolean;
|
|
42
42
|
onToggle?: () => void;
|
|
43
|
+
/**
|
|
44
|
+
* Beside the title and always visible, before the actions — a count.
|
|
45
|
+
*
|
|
46
|
+
* The actions come and go with the hover; this does not, because a count is
|
|
47
|
+
* information rather than an affordance. Peek's Screener header carries its
|
|
48
|
+
* number as a `Chip` here, and was the last hand-drawn folding header in the
|
|
49
|
+
* app for want of the slot (ADOPTION B23).
|
|
50
|
+
*/
|
|
51
|
+
trailing?: ReactNode;
|
|
43
52
|
/** Right-aligned, in the order given. */
|
|
44
53
|
actions?: SectionAction[];
|
|
45
54
|
/** `hover` reveals the actions while the row is hovered or focused; `always` keeps them. */
|
|
@@ -51,5 +60,5 @@ export interface SectionHeaderProps {
|
|
|
51
60
|
render?: useRender.RenderProp;
|
|
52
61
|
className?: string;
|
|
53
62
|
}
|
|
54
|
-
export declare function SectionHeader({ title, chevron, isExpanded, onToggle, actions, showActions, render, className }: SectionHeaderProps): import("react").JSX.Element;
|
|
63
|
+
export declare function SectionHeader({ title, chevron, isExpanded, onToggle, trailing, actions, showActions, render, className }: SectionHeaderProps): import("react").JSX.Element;
|
|
55
64
|
//# sourceMappingURL=SectionHeader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionHeader.d.ts","sourceRoot":"","sources":["../src/SectionHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAKrD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,yCAAyC;IACzC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,4FAA4F;IAC5F,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC,UAAU,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,OAAe,EAAE,UAAiB,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,+
|
|
1
|
+
{"version":3,"file":"SectionHeader.d.ts","sourceRoot":"","sources":["../src/SectionHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAKrD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,4FAA4F;IAC5F,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC,UAAU,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,OAAe,EAAE,UAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,+BA2DrK"}
|
package/dist/Toast.d.ts
CHANGED
|
@@ -2,8 +2,9 @@ import { type ReactNode } from 'react';
|
|
|
2
2
|
/**
|
|
3
3
|
* Peek's Toast (Figma: Alert) and its provider (2026-09-01), verbatim.
|
|
4
4
|
*
|
|
5
|
-
* The pill:
|
|
6
|
-
*
|
|
5
|
+
* The pill: five types — `success`, `brand`, `neutral`, `warning`, `error` —
|
|
6
|
+
* a leading icon that says which (a check, a `!`, an `×`), an optional action
|
|
7
|
+
* on the right. Under Signal every toast is
|
|
7
8
|
* the same dark overlay pill; the type lives in the icon's colour and glow,
|
|
8
9
|
* not the surface.
|
|
9
10
|
*
|
|
@@ -11,12 +12,21 @@ import { type ReactNode } from 'react';
|
|
|
11
12
|
* (5 s; pass `durationMs: 0` to keep one up). One toast at a time — a new
|
|
12
13
|
* one replaces the standing one, it does not queue.
|
|
13
14
|
*/
|
|
14
|
-
export type ToastType = 'success' | 'brand' | 'neutral';
|
|
15
|
+
export type ToastType = 'success' | 'brand' | 'neutral' | 'warning' | 'error';
|
|
15
16
|
export interface ToastProps {
|
|
16
17
|
label: string;
|
|
17
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* Which of the five this is. It decides the surface in the light themes,
|
|
20
|
+
* and under Signal — where every pill is the same dark overlay — the icon
|
|
21
|
+
* and its colour.
|
|
22
|
+
*
|
|
23
|
+
* `warning` and `error` arrived at 0.12.2, for a notice that has to stay up
|
|
24
|
+
* and for one that reports a failure. Until then the set had no way to say
|
|
25
|
+
* either, so a caller with bad news passed `leadingIcon: false` rather than
|
|
26
|
+
* put a tick beside it.
|
|
27
|
+
*/
|
|
18
28
|
type?: ToastType;
|
|
19
|
-
/** Show the leading
|
|
29
|
+
/** Show the leading icon — a check, a `!` or an `×`, per `type`. Defaults to true. */
|
|
20
30
|
leadingIcon?: boolean;
|
|
21
31
|
/** When set together with onAction, renders a clickable action on the right side. */
|
|
22
32
|
actionLabel?: string;
|
|
@@ -26,12 +36,12 @@ export interface ToastProps {
|
|
|
26
36
|
export declare function Toast({ label, type, leadingIcon, actionLabel, onAction, className }: ToastProps): import("react").JSX.Element;
|
|
27
37
|
export interface ToastOptions {
|
|
28
38
|
label: string;
|
|
29
|
-
/**
|
|
39
|
+
/** Which of the five this is — it decides the surface and the leading icon. Defaults to 'neutral'. */
|
|
30
40
|
type?: ToastType;
|
|
31
41
|
/** When set, renders a clickable action on the right side. */
|
|
32
42
|
actionLabel?: string;
|
|
33
43
|
onAction?: () => void;
|
|
34
|
-
/** Show the leading
|
|
44
|
+
/** Show the leading icon — a check, a `!` or an `×`, per `type`. Defaults to true. */
|
|
35
45
|
leadingIcon?: boolean;
|
|
36
46
|
/** Auto-dismiss after this many ms. Defaults to 5000. Pass 0 to disable. */
|
|
37
47
|
durationMs?: number;
|
package/dist/Toast.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../src/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAK5G
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../src/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAK5G;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;AAE7E,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,sFAAsF;IACtF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA8CD,wBAAgB,KAAK,CAAC,EAAE,KAAK,EAAE,IAAgB,EAAE,WAAkB,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,UAAU,+BAiClH;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,sGAAsG;IACtG,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,sFAAsF;IACtF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAMD,UAAU,UAAU;IAClB,SAAS,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;IACvC,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB;AAMD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAiDlE;AAED,wBAAgB,QAAQ,IAAI,UAAU,CAIrC"}
|
package/dist/cn.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../src/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAG5C;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,gBAAgB,UAIrB,CAAA;AAED;;;;;;GAMG;AACH,QAAA,MAAM,iBAAiB,UAAqG,CAAA;AAC5H,QAAA,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../src/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAG5C;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,gBAAgB,UAIrB,CAAA;AAED;;;;;;GAMG;AACH,QAAA,MAAM,iBAAiB,UAAqG,CAAA;AAC5H,QAAA,MAAM,kBAAkB,UAAkD,CAAA;AAY1E,0EAA0E;AAC1E,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC;AAED,OAAO,EAAE,gBAAgB,IAAI,eAAe,EAAE,iBAAiB,IAAI,gBAAgB,EAAE,kBAAkB,IAAI,iBAAiB,EAAE,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export { IconButton, type IconButtonProps, type IconButtonVariant } from './Icon
|
|
|
21
21
|
export { Kbd, type KbdProps } from './Kbd';
|
|
22
22
|
export { IdentityMenu, IdentityPanel, type Identity, type IdentityMenuProps, type IdentityPanelProps } from './IdentityMenu';
|
|
23
23
|
export { Tooltip, TooltipProvider, WithTooltip, type TooltipProps, type TooltipProviderProps, type WithTooltipProps } from './Tooltip';
|
|
24
|
-
export { Field, type FieldProps } from './Field';
|
|
24
|
+
export { Field, FieldLine, type FieldLineProps, type FieldLineTone, type FieldProps } from './Field';
|
|
25
25
|
export { Select, type SelectOption, type SelectProps } from './Select';
|
|
26
26
|
export { TextInput, type TextInputProps } from './TextInput';
|
|
27
27
|
export { Textarea, type TextareaProps } from './Textarea';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC1F,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AACxF,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AAClH,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACvF,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAC5H,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACtI,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|