@handamade/psi-react 0.20.0 → 0.22.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.
- package/README.md +1 -1
- package/dist/AppShell/AppShell.d.ts +51 -0
- package/dist/AppShell/AppShell.d.ts.map +1 -0
- package/dist/Banner/Banner.d.ts +35 -0
- package/dist/Banner/Banner.d.ts.map +1 -0
- package/dist/Button/Button.d.ts +4 -0
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/CopyButton/CopyButton.d.ts +23 -0
- package/dist/CopyButton/CopyButton.d.ts.map +1 -0
- package/dist/CursorPagination/CursorPagination.d.ts +29 -0
- package/dist/CursorPagination/CursorPagination.d.ts.map +1 -0
- package/dist/Field/Field.d.ts +16 -2
- package/dist/Field/Field.d.ts.map +1 -1
- package/dist/Field/useFieldControl.d.ts +40 -0
- package/dist/Field/useFieldControl.d.ts.map +1 -0
- package/dist/InlineAlert/InlineAlert.d.ts +32 -0
- package/dist/InlineAlert/InlineAlert.d.ts.map +1 -0
- package/dist/NavBar/NavBar.d.ts +10 -2
- package/dist/NavBar/NavBar.d.ts.map +1 -1
- package/dist/NavTree/NavGroup.d.ts +22 -0
- package/dist/NavTree/NavGroup.d.ts.map +1 -0
- package/dist/NavTree/NavItem.d.ts +29 -0
- package/dist/NavTree/NavItem.d.ts.map +1 -0
- package/dist/NavTree/NavTree.d.ts +23 -0
- package/dist/NavTree/NavTree.d.ts.map +1 -0
- package/dist/Skeleton/Skeleton.d.ts +22 -0
- package/dist/Skeleton/Skeleton.d.ts.map +1 -0
- package/dist/SkipLink/SkipLink.d.ts +25 -0
- package/dist/SkipLink/SkipLink.d.ts.map +1 -0
- package/dist/Table/Table.d.ts +6 -3
- package/dist/Table/Table.d.ts.map +1 -1
- package/dist/Table/TableBody.d.ts +7 -4
- package/dist/Table/TableBody.d.ts.map +1 -1
- package/dist/Table/TableCaption.d.ts +21 -0
- package/dist/Table/TableCaption.d.ts.map +1 -0
- package/dist/Table/TableCell.d.ts +15 -5
- package/dist/Table/TableCell.d.ts.map +1 -1
- package/dist/Table/TableHead.d.ts +5 -3
- package/dist/Table/TableHead.d.ts.map +1 -1
- package/dist/Table/TableHeaderCell.d.ts +5 -3
- package/dist/Table/TableHeaderCell.d.ts.map +1 -1
- package/dist/Table/TableRow.d.ts +5 -3
- package/dist/Table/TableRow.d.ts.map +1 -1
- package/dist/Tabs/Tab.d.ts.map +1 -1
- package/dist/Tabs/Tabs.d.ts +20 -1
- package/dist/Tabs/Tabs.d.ts.map +1 -1
- package/dist/Toast/Announcement.d.ts +38 -0
- package/dist/Toast/Announcement.d.ts.map +1 -0
- package/dist/Toast/Toast.d.ts +16 -2
- package/dist/Toast/Toast.d.ts.map +1 -1
- package/dist/Toast/ToastProvider.d.ts +27 -4
- package/dist/Toast/ToastProvider.d.ts.map +1 -1
- package/dist/Toast/ToastRegion.d.ts +26 -8
- package/dist/Toast/ToastRegion.d.ts.map +1 -1
- package/dist/Toast/status.d.ts +15 -0
- package/dist/Toast/status.d.ts.map +1 -0
- package/dist/Toast/useToast.d.ts +17 -3
- package/dist/Toast/useToast.d.ts.map +1 -1
- package/dist/Toolbar/Toolbar.d.ts +26 -4
- package/dist/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/a11y-meta.d.ts.map +1 -1
- package/dist/index.d.ts +30 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1305 -958
- package/dist/manifest.json +1049 -235
- package/dist/patterns.json +671 -3
- package/dist/styles.css +1 -1
- package/docs/Announcement.md +37 -0
- package/docs/AppShell.md +46 -0
- package/docs/AspectRatio.md +1 -1
- package/docs/Banner.md +54 -0
- package/docs/Button.md +2 -1
- package/docs/Card.md +1 -1
- package/docs/Checkbox.md +1 -1
- package/docs/CopyButton.md +51 -0
- package/docs/CursorPagination.md +45 -0
- package/docs/DescriptionItem.md +1 -1
- package/docs/DescriptionList.md +1 -1
- package/docs/Dialog.md +1 -1
- package/docs/Field.md +4 -3
- package/docs/IconButton.md +1 -1
- package/docs/InlineAlert.md +53 -0
- package/docs/Input.md +1 -1
- package/docs/Menu.md +1 -1
- package/docs/MenuItem.md +1 -1
- package/docs/MenuSeparator.md +1 -1
- package/docs/NavBar.md +4 -2
- package/docs/NavGroup.md +40 -0
- package/docs/NavItem.md +40 -0
- package/docs/NavTree.md +39 -0
- package/docs/Pagination.md +1 -1
- package/docs/Panel.md +1 -1
- package/docs/Select.md +1 -1
- package/docs/Skeleton.md +50 -0
- package/docs/SkipLink.md +40 -0
- package/docs/Switch.md +1 -1
- package/docs/Tab.md +1 -1
- package/docs/TabList.md +1 -1
- package/docs/TabPanel.md +1 -1
- package/docs/Table.md +1 -1
- package/docs/TableBody.md +3 -2
- package/docs/TableCaption.md +39 -0
- package/docs/TableCell.md +5 -2
- package/docs/TableHead.md +2 -1
- package/docs/TableHeaderCell.md +2 -1
- package/docs/TableRow.md +2 -1
- package/docs/Tabs.md +3 -3
- package/docs/Tag.md +1 -1
- package/docs/Toast.md +5 -3
- package/docs/ToastProvider.md +6 -3
- package/docs/ToastRegion.md +5 -5
- package/docs/Toolbar.md +5 -3
- package/docs/Tooltip.md +1 -1
- package/llms.txt +41 -9
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableCell.d.ts","sourceRoot":"","sources":["../../src/Table/TableCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TableCell.d.ts","sourceRoot":"","sources":["../../src/Table/TableCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAG9D,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAC9F,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;4DAEwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,GAAG,CAAC,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC;CACjC;AAED;;;YAGY;AACZ,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,+BAc3G"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import type { ReactNode } from "react";
|
|
2
|
-
export interface TableHeadProps {
|
|
1
|
+
import type { HTMLAttributes, ReactNode, Ref } from "react";
|
|
2
|
+
export interface TableHeadProps extends Omit<HTMLAttributes<HTMLTableSectionElement>, "children"> {
|
|
3
3
|
/** The header TableRow. */
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
className?: string;
|
|
6
|
+
/** Forwarded ref to the `<thead>`. */
|
|
7
|
+
ref?: Ref<HTMLTableSectionElement>;
|
|
6
8
|
}
|
|
7
9
|
/** `<thead>`. When the table is selectable, prepends the select-all cell to
|
|
8
10
|
* the FIRST header row so the header's column count matches the body's — the
|
|
9
11
|
* checkbox column is Table's, not the consumer's schema. Clones the row
|
|
10
12
|
* rather than rebuilding it, so the consumer's own props on that `TableRow`
|
|
11
13
|
* survive. */
|
|
12
|
-
export declare function TableHead({ children, className }: TableHeadProps): import("react").JSX.Element;
|
|
14
|
+
export declare function TableHead({ children, className, ref, ...rest }: TableHeadProps): import("react").JSX.Element;
|
|
13
15
|
//# sourceMappingURL=TableHead.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHead.d.ts","sourceRoot":"","sources":["../../src/Table/TableHead.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TableHead.d.ts","sourceRoot":"","sources":["../../src/Table/TableHead.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAgB,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAK1E,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,EAAE,UAAU,CAAC;IAC/F,2BAA2B;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,GAAG,CAAC,EAAE,GAAG,CAAC,uBAAuB,CAAC,CAAC;CACpC;AAED;;;;cAIc;AACd,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,+BAyB9E"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ReactNode } from "react";
|
|
2
|
-
export interface TableHeaderCellProps {
|
|
1
|
+
import type { ReactNode, Ref, ThHTMLAttributes } from "react";
|
|
2
|
+
export interface TableHeaderCellProps extends Omit<ThHTMLAttributes<HTMLTableCellElement>, "children"> {
|
|
3
3
|
/** Sort key this column emits. Enables the sort control when the table is `sortable`. */
|
|
4
4
|
sortKey?: string;
|
|
5
5
|
/** Right-aligns and renders tabular figures (D62). */
|
|
@@ -7,8 +7,10 @@ export interface TableHeaderCellProps {
|
|
|
7
7
|
/** Header label. */
|
|
8
8
|
children?: ReactNode;
|
|
9
9
|
className?: string;
|
|
10
|
+
/** Forwarded ref to the `<th>`. */
|
|
11
|
+
ref?: Ref<HTMLTableCellElement>;
|
|
10
12
|
}
|
|
11
13
|
/** `<th scope="col">`. `aria-sort` belongs on the th, never on the inner
|
|
12
14
|
* button — assistive tech reads the sort state from the column header. */
|
|
13
|
-
export declare function TableHeaderCell({ sortKey, numeric, children, className }: TableHeaderCellProps): import("react").JSX.Element;
|
|
15
|
+
export declare function TableHeaderCell({ sortKey, numeric, children, className, ref, ...rest }: TableHeaderCellProps): import("react").JSX.Element;
|
|
14
16
|
//# sourceMappingURL=TableHeaderCell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeaderCell.d.ts","sourceRoot":"","sources":["../../src/Table/TableHeaderCell.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TableHeaderCell.d.ts","sourceRoot":"","sources":["../../src/Table/TableHeaderCell.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAI9D,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAAE,UAAU,CAAC;IACpG,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,GAAG,CAAC,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC;CACjC;AAED;0EAC0E;AAC1E,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,oBAAoB,+BAwC5G"}
|
package/dist/Table/TableRow.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ReactNode } from "react";
|
|
2
|
-
export interface TableRowProps {
|
|
1
|
+
import type { HTMLAttributes, ReactNode, Ref } from "react";
|
|
2
|
+
export interface TableRowProps extends Omit<HTMLAttributes<HTMLTableRowElement>, "children"> {
|
|
3
3
|
/** Stable identity for selection. Required for selectable tables (D62). */
|
|
4
4
|
rowId?: string;
|
|
5
5
|
/** Accessible name for this row's selection checkbox. */
|
|
@@ -7,7 +7,9 @@ export interface TableRowProps {
|
|
|
7
7
|
/** The row's cells. */
|
|
8
8
|
children: ReactNode;
|
|
9
9
|
className?: string;
|
|
10
|
+
/** Forwarded ref to the `<tr>`. */
|
|
11
|
+
ref?: Ref<HTMLTableRowElement>;
|
|
10
12
|
}
|
|
11
13
|
/** `<tr>`. `rowId` is the key the `selected` set holds. */
|
|
12
|
-
export declare function TableRow({ rowId, selectLabel, children, className }: TableRowProps): import("react").JSX.Element;
|
|
14
|
+
export declare function TableRow({ rowId, selectLabel, children, className, ref, ...rest }: TableRowProps): import("react").JSX.Element;
|
|
13
15
|
//# sourceMappingURL=TableRow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRow.d.ts","sourceRoot":"","sources":["../../src/Table/TableRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TableRow.d.ts","sourceRoot":"","sources":["../../src/Table/TableRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAK5D,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,UAAU,CAAC;IAC1F,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,GAAG,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;CAChC;AAED,2DAA2D;AAC3D,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa,+BAiBhG"}
|
package/dist/Tabs/Tab.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.d.ts","sourceRoot":"","sources":["../../src/Tabs/Tab.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Tab.d.ts","sourceRoot":"","sources":["../../src/Tabs/Tab.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAI5C,MAAM,WAAW,QAAQ;IACvB,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,QAAQ,EAAE,SAAS,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;CAC9B;AAED;;;;wDAIwD;AACxD,wBAAgB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAgB,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,QAAQ,+BAyClF"}
|
package/dist/Tabs/Tabs.d.ts
CHANGED
|
@@ -6,6 +6,23 @@ export interface TabsContextValue {
|
|
|
6
6
|
orientation: TabsOrientation;
|
|
7
7
|
/** Stable per-instance prefix, so two tab sets on one page never collide. */
|
|
8
8
|
idPrefix: string;
|
|
9
|
+
/** The value of the one tab that holds the list's tab stop (D93). Equal to
|
|
10
|
+
* `value` when `value` names a registered tab, disabled or not; otherwise
|
|
11
|
+
* the first enabled tab in document order (the first tab when all are
|
|
12
|
+
* disabled), so a `value` that matches nothing still leaves the list
|
|
13
|
+
* reachable. `Tab` reads this rather than recomputing it. Optional: a
|
|
14
|
+
* hand-written provider that omits it gets `value`, as before D93. */
|
|
15
|
+
tabStop?: string;
|
|
16
|
+
/** Called by each `Tab` from a layout effect; returns the unregister.
|
|
17
|
+
* Optional for the same reason as `tabStop`. */
|
|
18
|
+
registerTab?: (entry: TabEntry) => () => void;
|
|
19
|
+
}
|
|
20
|
+
/** What a `Tab` tells its `Tabs`, so the provider can pick the tab stop. */
|
|
21
|
+
export interface TabEntry {
|
|
22
|
+
value: string;
|
|
23
|
+
disabled: boolean;
|
|
24
|
+
/** For document-order sorting; set by the time the layout effect runs. */
|
|
25
|
+
el: HTMLElement | null;
|
|
9
26
|
}
|
|
10
27
|
export declare const TabsContext: import("react").Context<TabsContextValue | null>;
|
|
11
28
|
/** Throws rather than returning a default: a `Tab` outside `Tabs` would
|
|
@@ -13,7 +30,9 @@ export declare const TabsContext: import("react").Context<TabsContextValue | nul
|
|
|
13
30
|
* surface far from its cause. */
|
|
14
31
|
export declare function useTabsContext(component: string): TabsContextValue;
|
|
15
32
|
export interface TabsProps {
|
|
16
|
-
/** Controlled selected tab, matched against each `Tab`/`TabPanel` value.
|
|
33
|
+
/** Controlled selected tab, matched against each `Tab`/`TabPanel` value. A
|
|
34
|
+
* value that matches no tab selects nothing, and the first enabled
|
|
35
|
+
* tab holds the list's tab stop (D93); development builds warn. */
|
|
17
36
|
value: string;
|
|
18
37
|
/** Fires with the newly selected value; the consumer flips `value`. */
|
|
19
38
|
onValueChange: (value: string) => void;
|
package/dist/Tabs/Tabs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../src/Tabs/Tabs.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5C,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,EAAE,eAAe,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../src/Tabs/Tabs.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5C,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,EAAE,eAAe,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;0EAKsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;oDACgD;IAChD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,MAAM,IAAI,CAAC;CAC/C;AAED,4EAA4E;AAC5E,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,EAAE,EAAE,WAAW,GAAG,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,WAAW,kDAA+C,CAAC;AAExE;;iCAEiC;AACjC,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAUlE;AAED,MAAM,WAAW,SAAS;IACxB;;uEAEmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mFAAmF;IACnF,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,8CAA8C;IAC9C,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B;AAED;;;;;;;;;;;8EAW8E;AAC9E,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,aAAa,EACb,WAA0B,EAC1B,QAAQ,EACR,SAAS,EACT,GAAG,GACJ,EAAE,SAAS,+BAwDX;AAED;4EAC4E;AAC5E,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { ToastPoliteness } from "./Toast.js";
|
|
3
|
+
export interface AnnouncementProps {
|
|
4
|
+
/** Which of ToastRegion's two live wrappers speaks it. @default "polite" */
|
|
5
|
+
politeness?: ToastPoliteness;
|
|
6
|
+
/** The text to announce. */
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
/** Text for a screen reader only, spoken through ToastRegion (D83).
|
|
10
|
+
*
|
|
11
|
+
* **It is not a live region.** It renders no `role` and no `aria-live`, and
|
|
12
|
+
* outside a ToastRegion it announces nothing — the region's two persistent
|
|
13
|
+
* wrappers are the only live regions, and an Announcement is content for one
|
|
14
|
+
* of them. Do not use it as a second announcer.
|
|
15
|
+
*
|
|
16
|
+
* Use it where an event must be spoken and there is nothing to show: a state
|
|
17
|
+
* change of the object on screen, or field errors the form already displays.
|
|
18
|
+
*
|
|
19
|
+
* `politeness` is not read here. ToastRegion reads it off the element to pick
|
|
20
|
+
* a wrapper, the same way it reads a Toast's.
|
|
21
|
+
*
|
|
22
|
+
* The usual way to render one is `useToast().announce(message)` (D91), which
|
|
23
|
+
* puts it in ToastProvider's region and gives it a lifetime: it leaves one
|
|
24
|
+
* second (the dwell) after it was added, and a later announcement does not
|
|
25
|
+
* remove it early — removing a node just after it was added can cut its
|
|
26
|
+
* speech, and the region's non-atomic wrappers (D90) speak each added node on
|
|
27
|
+
* its own. It never counts against the provider's toast `limit`.
|
|
28
|
+
*
|
|
29
|
+
* Rendered by hand, it is controlled, like Toast: it holds no state and never
|
|
30
|
+
* removes itself, so follow the same rule — remove it after a one-second
|
|
31
|
+
* dwell, not before. To announce the same text again, remove it and render it
|
|
32
|
+
* again with a new `key` — a live region speaks changes, and an unchanged node
|
|
33
|
+
* is not one.
|
|
34
|
+
*
|
|
35
|
+
* It takes no `className`: the one thing a class could do to it is make it
|
|
36
|
+
* visible, and then it is a Toast. */
|
|
37
|
+
export declare function Announcement({ children }: AnnouncementProps): import("react").JSX.Element;
|
|
38
|
+
//# sourceMappingURL=Announcement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Announcement.d.ts","sourceRoot":"","sources":["../../src/Toast/Announcement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,4BAA4B;IAC5B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;sCA2BsC;AACtC,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,+BAM3D"}
|
package/dist/Toast/Toast.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { ReactNode, Ref } from "react";
|
|
2
|
-
|
|
2
|
+
import type { StatusVariant } from "./status.js";
|
|
3
|
+
/** Toast's variants are the shared status axis (see status.ts). */
|
|
4
|
+
export type ToastVariant = StatusVariant;
|
|
5
|
+
/** Which of ToastRegion's two live wrappers speaks a child (D83). */
|
|
6
|
+
export type ToastPoliteness = "polite" | "assertive";
|
|
3
7
|
export interface ToastProps {
|
|
4
8
|
/** Status variant. @default "neutral" */
|
|
5
9
|
variant?: ToastVariant;
|
|
@@ -10,6 +14,15 @@ export interface ToastProps {
|
|
|
10
14
|
/** When provided, renders the dismiss button and calls this. Toast does not
|
|
11
15
|
* remove itself; the owner disposes. */
|
|
12
16
|
onDismiss?: () => void;
|
|
17
|
+
/** Which live wrapper ToastRegion routes this toast into (D83). Unset, the
|
|
18
|
+
* variant decides: neutral and success are polite, warning and danger
|
|
19
|
+
* assertive. Set it when the kind of event, not its tone, decides — the
|
|
20
|
+
* outcome of the user's own action may interrupt even when it succeeded. */
|
|
21
|
+
politeness?: ToastPoliteness;
|
|
22
|
+
/** The visually hidden status word (D83). A string replaces the default
|
|
23
|
+
* ("Success:", "Warning:", "Error:") — pass the translated word; `null`
|
|
24
|
+
* drops it. Unset keeps the default, and `neutral` has none. */
|
|
25
|
+
statusLabel?: string | null;
|
|
13
26
|
className?: string;
|
|
14
27
|
/** Forwarded ref to the underlying `<div>`. */
|
|
15
28
|
ref?: Ref<HTMLDivElement>;
|
|
@@ -22,8 +35,9 @@ export interface ToastProps {
|
|
|
22
35
|
* two persistent wrappers inside ToastRegion, because a live region must
|
|
23
36
|
* pre-exist the content it announces; a role on the toast itself would
|
|
24
37
|
* reintroduce the mount-with-content problem one level down.
|
|
38
|
+
* `politeness` (D83) only tells the region which wrapper to use.
|
|
25
39
|
*
|
|
26
40
|
* Composed by hand with ToastRegion for full control, or driven by
|
|
27
41
|
* ToastProvider's queue. */
|
|
28
|
-
export declare function Toast({ variant, children, action, onDismiss, className, ref, }: ToastProps): import("react").JSX.Element;
|
|
42
|
+
export declare function Toast({ variant, children, action, onDismiss, statusLabel, className, ref, }: ToastProps): import("react").JSX.Element;
|
|
29
43
|
//# sourceMappingURL=Toast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/Toast/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/Toast/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAI5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,mEAAmE;AACnE,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC,qEAAqE;AACrE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,WAAW,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,mBAAmB;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,gEAAgE;IAChE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;4CACwC;IACxC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;gFAG4E;IAC5E,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;;oEAEgE;IAChE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B;AASD;;;;;;;;;;;4BAW4B;AAC5B,wBAAgB,KAAK,CAAC,EACpB,OAAmB,EACnB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,WAAW,EACX,SAAS,EACT,GAAG,GACJ,EAAE,UAAU,+BA6BZ"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import type { ReactNode } from "react";
|
|
1
|
+
import type { HTMLAttributes, ReactNode, Ref } from "react";
|
|
2
2
|
import type { ToastPlacement } from "./ToastRegion.js";
|
|
3
|
-
|
|
3
|
+
/** Everything but the provider's own props is forwarded to its ToastRegion
|
|
4
|
+
* (D91) — the same surface ToastRegion takes, so `aria-label`, `ref`,
|
|
5
|
+
* `className` and `data-*` attributes land on the region element. */
|
|
6
|
+
export interface ToastProviderProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
|
|
4
7
|
/** Max simultaneous toasts; the oldest is evicted first. @default 3 */
|
|
5
8
|
limit?: number;
|
|
6
9
|
/** Auto-dismiss for toasts with no action, in ms. @default 5000 */
|
|
@@ -12,6 +15,13 @@ export interface ToastProviderProps {
|
|
|
12
15
|
placement?: ToastPlacement;
|
|
13
16
|
/** The subtree that may call `useToast()`. The region is rendered alongside it. */
|
|
14
17
|
children: ReactNode;
|
|
18
|
+
/** Accessible name for the region landmark, forwarded to ToastRegion.
|
|
19
|
+
* @default "Notifications" */
|
|
20
|
+
"aria-label"?: string;
|
|
21
|
+
/** Forwarded to the region element. */
|
|
22
|
+
className?: string;
|
|
23
|
+
/** Forwarded ref to the region element. */
|
|
24
|
+
ref?: Ref<HTMLDivElement>;
|
|
15
25
|
}
|
|
16
26
|
/** Owns the toast queue, its auto-dismiss timers, and the single ToastRegion
|
|
17
27
|
* (D65).
|
|
@@ -29,6 +39,19 @@ export interface ToastProviderProps {
|
|
|
29
39
|
* Timers pause while the pointer or focus is inside the region (WCAG 2.2.1),
|
|
30
40
|
* and resume with the time *remaining* rather than a fresh full duration —
|
|
31
41
|
* restarting would let a user hold a toast open indefinitely by jiggling the
|
|
32
|
-
* mouse.
|
|
33
|
-
|
|
42
|
+
* mouse.
|
|
43
|
+
*
|
|
44
|
+
* **Announcements share the queue, not the limit (D91).** `announce()` adds a
|
|
45
|
+
* speech-only Announcement to the same region — never a live region of its
|
|
46
|
+
* own — and it leaves after a one-second dwell. A later announcement does not
|
|
47
|
+
* remove an earlier one early: removing a node just after it was added can cut
|
|
48
|
+
* its speech, and with non-atomic wrappers (D90) each added node is spoken on
|
|
49
|
+
* its own. Announcements live in their own list, so they never evict a visible
|
|
50
|
+
* toast; their timers live in the same map, so `dismiss`, `clear()` and
|
|
51
|
+
* unmount dispose them as they do a toast's, and they pause with the region.
|
|
52
|
+
*
|
|
53
|
+
* Remaining props go to the ToastRegion (D91): its `aria-label`, a `ref` to the
|
|
54
|
+
* region element, a `className`, and `data-*` attributes such as
|
|
55
|
+
* `data-react-aria-top-layer`. */
|
|
56
|
+
export declare function ToastProvider({ limit, duration, actionDuration, placement, children, ...regionProps }: ToastProviderProps): import("react").JSX.Element;
|
|
34
57
|
//# sourceMappingURL=ToastProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../src/Toast/ToastProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../src/Toast/ToastProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAK5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAUvD;;qEAEqE;AACrE,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC1F,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;gFAC4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,mFAAmF;IACnF,QAAQ,EAAE,SAAS,CAAC;IACpB;kCAC8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B;AA6BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA6BkC;AAClC,wBAAgB,aAAa,CAAC,EAC5B,KAAS,EACT,QAAe,EACf,cAAsB,EACtB,SAAwB,EACxB,QAAQ,EACR,GAAG,WAAW,EACf,EAAE,kBAAkB,+BAyJpB"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import type { ReactNode, Ref } from "react";
|
|
1
|
+
import type { HTMLAttributes, ReactNode, Ref } from "react";
|
|
2
2
|
export type ToastPlacement = "top-start" | "top-end" | "bottom-start" | "bottom-end";
|
|
3
|
-
|
|
3
|
+
/** The region is a `region` landmark (D90), named by `aria-label` — a name on a
|
|
4
|
+
* role-less `div` is prohibited by ARIA — and `role` is not overridable. */
|
|
5
|
+
export interface ToastRegionProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
|
|
4
6
|
/** Corner the stack occupies. @default "bottom-end" */
|
|
5
7
|
placement?: ToastPlacement;
|
|
6
|
-
/** Accessible name for the region. @default "Notifications" */
|
|
8
|
+
/** Accessible name for the region landmark. @default "Notifications" */
|
|
7
9
|
"aria-label"?: string;
|
|
8
|
-
/** The
|
|
10
|
+
/** The stack — `Toast` and `Announcement` elements, each routed to a live
|
|
11
|
+
* wrapper by its `politeness`, or by a Toast's variant when it names none. */
|
|
9
12
|
children: ReactNode;
|
|
10
13
|
className?: string;
|
|
11
14
|
/** Forwarded ref to the region element. */
|
|
@@ -27,8 +30,10 @@ export interface ToastRegionProps {
|
|
|
27
30
|
* confirmation for the action a user just took inside a dialog. And `auto`
|
|
28
31
|
* would be dismissed by the very click that raised the toast.
|
|
29
32
|
*
|
|
30
|
-
* Routing reads `variant
|
|
31
|
-
* Table uses for select-all injection.
|
|
33
|
+
* Routing reads `politeness`, then `variant`, off each child — the same
|
|
34
|
+
* Children.map technique Table uses for select-all injection. `politeness`
|
|
35
|
+
* wins (D83): the owner of an announcement knows what kind of event it is,
|
|
36
|
+
* and tone is only the default.
|
|
32
37
|
*
|
|
33
38
|
* Consequence of the split, visible in the `InRegion` VR baseline: the stack is
|
|
34
39
|
* grouped by politeness, not strictly chronological — every assertive toast
|
|
@@ -37,6 +42,19 @@ export interface ToastRegionProps {
|
|
|
37
42
|
* live region with a politeness that changes per message, which is the thing
|
|
38
43
|
* the two wrappers exist to avoid. Accepted: at `limit` 3 the grouping reads as
|
|
39
44
|
* severity ordering, and the newest toast still lands nearest the screen edge
|
|
40
|
-
* within its group.
|
|
41
|
-
|
|
45
|
+
* within its group.
|
|
46
|
+
*
|
|
47
|
+
* Remaining HTML attributes, `data-*` included, are spread onto the root
|
|
48
|
+
* element (D83). That is how an application marks the region
|
|
49
|
+
* `data-react-aria-top-layer`, so that a React Aria overlay — which hides
|
|
50
|
+
* everything outside itself with `aria-hidden` — leaves the two live regions
|
|
51
|
+
* exposed. The region's own attributes always win — `role` included.
|
|
52
|
+
*
|
|
53
|
+
* **The region is a landmark, and the wrappers speak only what is new (D90).**
|
|
54
|
+
* `role="region"` makes the `aria-label` legal (a name on a role-less `div` is
|
|
55
|
+
* prohibited) and gives the stack a place in the landmark list. Both wrappers
|
|
56
|
+
* set `aria-atomic="false"` explicitly: `role="status"` and `role="alert"`
|
|
57
|
+
* carry an implicit `true`, which lets a screen reader re-speak everything
|
|
58
|
+
* already in the wrapper whenever one message is added beside it. */
|
|
59
|
+
export declare function ToastRegion({ placement, "aria-label": ariaLabel, children, className, ref, ...rest }: ToastRegionProps): import("react").JSX.Element;
|
|
42
60
|
//# sourceMappingURL=ToastRegion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastRegion.d.ts","sourceRoot":"","sources":["../../src/Toast/ToastRegion.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ToastRegion.d.ts","sourceRoot":"","sources":["../../src/Toast/ToastRegion.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAM5D,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,SAAS,GAAG,cAAc,GAAG,YAAY,CAAC;AAErF;4EAC4E;AAC5E,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACxF,uDAAuD;IACvD,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;kFAC8E;IAC9E,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEAyCqE;AACrE,wBAAgB,WAAW,CAAC,EAC1B,SAAwB,EACxB,YAAY,EAAE,SAA2B,EACzC,QAAQ,EACR,SAAS,EACT,GAAG,EACH,GAAG,IAAI,EACR,EAAE,gBAAgB,+BAuDlB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IconInfo } from "../icons/index.js";
|
|
2
|
+
/** The status axis every feedback component shares: Toast (D64), and Banner
|
|
3
|
+
* and InlineAlert (D86). `neutral` carries no status. */
|
|
4
|
+
export type StatusVariant = "neutral" | "success" | "warning" | "danger";
|
|
5
|
+
/** The variant's icon, always rendered `aria-hidden`: the meaning is carried
|
|
6
|
+
* by the status word, never by colour and shape alone. */
|
|
7
|
+
export declare const statusIcons: Record<StatusVariant, typeof IconInfo>;
|
|
8
|
+
/** Visually hidden status word, so the variant's meaning never rests on
|
|
9
|
+
* colour and shape alone. `neutral` carries no status, so it gets no prefix.
|
|
10
|
+
* A component's `statusLabel` (D83) replaces it (string) or drops it (null). */
|
|
11
|
+
export declare const statusPrefix: Record<StatusVariant, string | null>;
|
|
12
|
+
/** The word a component renders: the default for the variant unless the
|
|
13
|
+
* consumer set `statusLabel`. */
|
|
14
|
+
export declare function resolveStatusPrefix(variant: StatusVariant, statusLabel: string | null | undefined): string | null;
|
|
15
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/Toast/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAE3B;yDACyD;AACzD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEzE;0DAC0D;AAC1D,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,QAAQ,CAK9D,CAAC;AAEF;;gFAEgF;AAChF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAK7D,CAAC;AAEF;iCACiC;AACjC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAEjH"}
|
package/dist/Toast/useToast.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
|
-
import type { ToastVariant } from "./Toast.js";
|
|
2
|
+
import type { ToastPoliteness, ToastVariant } from "./Toast.js";
|
|
3
3
|
export interface ToastOptions {
|
|
4
4
|
/** @default "neutral" */
|
|
5
5
|
variant?: ToastVariant;
|
|
@@ -8,13 +8,27 @@ export interface ToastOptions {
|
|
|
8
8
|
/** Trailing affordance — a ghost Button. Its presence also selects the
|
|
9
9
|
* longer auto-dismiss (`actionDuration`). */
|
|
10
10
|
action?: ReactNode;
|
|
11
|
+
/** Which live wrapper speaks the toast (D83). Unset, the variant decides. */
|
|
12
|
+
politeness?: ToastPoliteness;
|
|
13
|
+
/** The visually hidden status word (D83): a string replaces the default,
|
|
14
|
+
* `null` drops it, unset keeps it. */
|
|
15
|
+
statusLabel?: string | null;
|
|
16
|
+
}
|
|
17
|
+
export interface AnnounceOptions {
|
|
18
|
+
/** Which live wrapper speaks it. @default "polite" */
|
|
19
|
+
politeness?: ToastPoliteness;
|
|
11
20
|
}
|
|
12
21
|
export interface ToastHandle {
|
|
13
22
|
/** Queue a toast; returns its id. */
|
|
14
23
|
show: (toast: ToastOptions) => string;
|
|
15
|
-
/**
|
|
24
|
+
/** Speak a message through the same region without showing anything (D91):
|
|
25
|
+
* an Announcement in the wrapper `politeness` names. It leaves after a
|
|
26
|
+
* one-second dwell, never counts against `limit`, and is not removed early
|
|
27
|
+
* by a later one. Returns an id `dismiss` accepts. */
|
|
28
|
+
announce: (message: ReactNode, options?: AnnounceOptions) => string;
|
|
29
|
+
/** Remove one toast or announcement by id. No-op if it has already gone. */
|
|
16
30
|
dismiss: (id: string) => void;
|
|
17
|
-
/** Remove every queued toast. */
|
|
31
|
+
/** Remove every queued toast and announcement. */
|
|
18
32
|
clear: () => void;
|
|
19
33
|
}
|
|
20
34
|
export declare const ToastContext: import("react").Context<ToastHandle | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../src/Toast/useToast.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../src/Toast/useToast.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,wBAAwB;IACxB,OAAO,EAAE,SAAS,CAAC;IACnB;iDAC6C;IAC7C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;0CACsC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,MAAM,CAAC;IACtC;;;0DAGsD;IACtD,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,MAAM,CAAC;IACpE,4EAA4E;IAC5E,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,kDAAkD;IAClD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,6CAA0C,CAAC;AAEpE;;;;+CAI+C;AAC/C,wBAAgB,QAAQ,IAAI,WAAW,CAUtC"}
|
|
@@ -1,17 +1,39 @@
|
|
|
1
1
|
import type { HTMLAttributes, Ref, ReactNode } from "react";
|
|
2
2
|
type Gap = 8 | 12 | 16;
|
|
3
|
-
export interface ToolbarProps extends HTMLAttributes<
|
|
3
|
+
export interface ToolbarProps extends HTMLAttributes<HTMLElement> {
|
|
4
4
|
/** The controls. */
|
|
5
5
|
children?: ReactNode;
|
|
6
6
|
/** Gap between controls in px. @default 8 */
|
|
7
7
|
gap?: Gap;
|
|
8
|
+
/** Cross-axis alignment of the row's items. `center` (the default) centres
|
|
9
|
+
* them, for a row of controls without visible labels such as
|
|
10
|
+
* filter-toolbar. `end` and `start` are for a row of Fields with visible
|
|
11
|
+
* labels beside an unlabelled button.
|
|
12
|
+
* `end` (D87) lines items up on their bottom edge. It lines up each item's
|
|
13
|
+
* *last* line, so a Field in an end-aligned row must end on its control —
|
|
14
|
+
* no description or error line under it; use `start` for one.
|
|
15
|
+
* `start` (D92) lines up the controls: items share their top edge, and a
|
|
16
|
+
* *direct* `button` or `a` child drops by `--psi-toolbar-action-offset`
|
|
17
|
+
* (one Field label line plus the Field gap) onto the control line. Only a
|
|
18
|
+
* direct child is offset: a wrapped trigger (a Tooltip-wrapped button, a
|
|
19
|
+
* Menu trigger) is not. A Field's description or error line hangs below
|
|
20
|
+
* its control and moves nothing else. Every label in the row must fit on
|
|
21
|
+
* one line; a label that wraps pushes its control below the others.
|
|
22
|
+
* @default "center" */
|
|
23
|
+
align?: "center" | "end" | "start";
|
|
24
|
+
/** Root element. `form` renders a real `<form>`, so a submit Button
|
|
25
|
+
* submits it and Enter in a field does too; with `aria-label` it is a
|
|
26
|
+
* named form landmark, so it takes no `role="group"` (D87). Wire
|
|
27
|
+
* `onSubmit`. @default "div" */
|
|
28
|
+
as?: "div" | "form";
|
|
8
29
|
/** Forwarded ref to the root element. */
|
|
9
|
-
ref?: Ref<HTMLDivElement>;
|
|
30
|
+
ref?: Ref<HTMLDivElement | HTMLFormElement>;
|
|
10
31
|
}
|
|
11
32
|
/** Horizontal grouping row for filter/search controls (D52). Wraps on
|
|
12
33
|
* overflow; zero JS. Deliberately NOT ARIA role="toolbar" — that role
|
|
13
34
|
* contracts roving-tabindex arrow-key navigation, wrong for form controls.
|
|
14
|
-
* With aria-label it announces as role="group"
|
|
15
|
-
|
|
35
|
+
* With aria-label it announces as role="group"; as a form, as a named form
|
|
36
|
+
* landmark instead (D87). */
|
|
37
|
+
export declare function Toolbar({ gap, align, as, className, children, ref, ...rest }: ToolbarProps): import("react").JSX.Element;
|
|
16
38
|
export {};
|
|
17
39
|
//# sourceMappingURL=Toolbar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../src/Toolbar/Toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG5D,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAEvB,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../src/Toolbar/Toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG5D,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAEvB,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,WAAW,CAAC;IAC/D,oBAAoB;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,6CAA6C;IAC7C,GAAG,CAAC,EAAE,GAAG,CAAC;IACV;;;;;;;;;;;;;;2BAcuB;IACvB,KAAK,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;IACnC;;;oCAGgC;IAChC,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACpB,yCAAyC;IACzC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,GAAG,eAAe,CAAC,CAAC;CAC7C;AASD;;;;6BAI6B;AAC7B,wBAAgB,OAAO,CAAC,EAAE,GAAO,EAAE,KAAgB,EAAE,EAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,YAAY,+BAqBjH"}
|
package/dist/a11y-meta.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y-meta.d.ts","sourceRoot":"","sources":["../src/a11y-meta.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"a11y-meta.d.ts","sourceRoot":"","sources":["../src/a11y-meta.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAqO9C,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,10 +12,22 @@ export { DescriptionItem } from "./DescriptionList/DescriptionItem.js";
|
|
|
12
12
|
export type { DescriptionItemProps } from "./DescriptionList/DescriptionItem.js";
|
|
13
13
|
export { NavBar } from "./NavBar/NavBar.js";
|
|
14
14
|
export type { NavBarProps } from "./NavBar/NavBar.js";
|
|
15
|
+
export { SkipLink } from "./SkipLink/SkipLink.js";
|
|
16
|
+
export type { SkipLinkProps } from "./SkipLink/SkipLink.js";
|
|
17
|
+
export { NavTree } from "./NavTree/NavTree.js";
|
|
18
|
+
export type { NavTreeProps } from "./NavTree/NavTree.js";
|
|
19
|
+
export { NavGroup } from "./NavTree/NavGroup.js";
|
|
20
|
+
export type { NavGroupProps } from "./NavTree/NavGroup.js";
|
|
21
|
+
export { NavItem } from "./NavTree/NavItem.js";
|
|
22
|
+
export type { NavItemProps } from "./NavTree/NavItem.js";
|
|
23
|
+
export { AppShell } from "./AppShell/AppShell.js";
|
|
24
|
+
export type { AppShellProps } from "./AppShell/AppShell.js";
|
|
15
25
|
export { AspectRatio } from "./AspectRatio/AspectRatio.js";
|
|
16
26
|
export type { AspectRatioProps } from "./AspectRatio/AspectRatio.js";
|
|
17
|
-
export { Field } from "./Field/Field.js";
|
|
18
|
-
export type { FieldProps } from "./Field/Field.js";
|
|
27
|
+
export { Field, FieldContext } from "./Field/Field.js";
|
|
28
|
+
export type { FieldProps, FieldContextValue } from "./Field/Field.js";
|
|
29
|
+
export { useFieldControl } from "./Field/useFieldControl.js";
|
|
30
|
+
export type { FieldControlProps } from "./Field/useFieldControl.js";
|
|
19
31
|
export { Dialog } from "./Dialog/Dialog.js";
|
|
20
32
|
export type { DialogProps } from "./Dialog/Dialog.js";
|
|
21
33
|
export { Input } from "./Input/Input.js";
|
|
@@ -49,14 +61,28 @@ export { TableHeaderCell } from "./Table/TableHeaderCell.js";
|
|
|
49
61
|
export type { TableHeaderCellProps } from "./Table/TableHeaderCell.js";
|
|
50
62
|
export { TableCell } from "./Table/TableCell.js";
|
|
51
63
|
export type { TableCellProps } from "./Table/TableCell.js";
|
|
64
|
+
export { TableCaption } from "./Table/TableCaption.js";
|
|
65
|
+
export type { TableCaptionProps } from "./Table/TableCaption.js";
|
|
52
66
|
export { Pagination } from "./Pagination/Pagination.js";
|
|
53
67
|
export type { PaginationProps } from "./Pagination/Pagination.js";
|
|
68
|
+
export { CursorPagination } from "./CursorPagination/CursorPagination.js";
|
|
69
|
+
export type { CursorPaginationProps } from "./CursorPagination/CursorPagination.js";
|
|
54
70
|
export { Toast } from "./Toast/Toast.js";
|
|
55
|
-
export type { ToastProps, ToastVariant } from "./Toast/Toast.js";
|
|
71
|
+
export type { ToastProps, ToastVariant, ToastPoliteness } from "./Toast/Toast.js";
|
|
56
72
|
export { ToastRegion } from "./Toast/ToastRegion.js";
|
|
57
73
|
export type { ToastRegionProps, ToastPlacement } from "./Toast/ToastRegion.js";
|
|
58
74
|
export { ToastProvider } from "./Toast/ToastProvider.js";
|
|
59
75
|
export type { ToastProviderProps } from "./Toast/ToastProvider.js";
|
|
76
|
+
export { Announcement } from "./Toast/Announcement.js";
|
|
77
|
+
export type { AnnouncementProps } from "./Toast/Announcement.js";
|
|
78
|
+
export { Banner } from "./Banner/Banner.js";
|
|
79
|
+
export type { BannerProps, BannerVariant } from "./Banner/Banner.js";
|
|
80
|
+
export { InlineAlert } from "./InlineAlert/InlineAlert.js";
|
|
81
|
+
export type { InlineAlertProps, InlineAlertVariant } from "./InlineAlert/InlineAlert.js";
|
|
82
|
+
export { Skeleton } from "./Skeleton/Skeleton.js";
|
|
83
|
+
export type { SkeletonProps } from "./Skeleton/Skeleton.js";
|
|
84
|
+
export { CopyButton } from "./CopyButton/CopyButton.js";
|
|
85
|
+
export type { CopyButtonProps } from "./CopyButton/CopyButton.js";
|
|
60
86
|
export { Tabs, TabsContext } from "./Tabs/Tabs.js";
|
|
61
87
|
export type { TabsProps, TabsOrientation, TabsContextValue } from "./Tabs/Tabs.js";
|
|
62
88
|
export { TabList } from "./Tabs/TabList.js";
|
|
@@ -66,6 +92,6 @@ export type { TabProps } from "./Tabs/Tab.js";
|
|
|
66
92
|
export { TabPanel } from "./Tabs/TabPanel.js";
|
|
67
93
|
export type { TabPanelProps } from "./Tabs/TabPanel.js";
|
|
68
94
|
export { useToast, ToastContext } from "./Toast/useToast.js";
|
|
69
|
-
export type { ToastHandle, ToastOptions } from "./Toast/useToast.js";
|
|
95
|
+
export type { AnnounceOptions, ToastHandle, ToastOptions } from "./Toast/useToast.js";
|
|
70
96
|
export { IconPlus, IconMinus, IconClose, IconCheck, IconChevronDown, IconChevronRight, IconChevronLeft, IconSearch, IconSettings, IconUser, IconEdit, IconTrash, IconCopy, IconExternalLink, IconEye, IconEyeOff, IconLoader, IconArrowDown, IconArrowUpRight, IconLinkedIn, IconGitHub, IconX, IconInstagram, IconInfo, IconAlertTriangle, IconAlertCircle, IconMoreHorizontal, IconMenu, IconLogOut, IconSimCard, } from "./icons/index.js";
|
|
71
97
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|