@charcuterie/ui 4.23.0 → 4.24.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/dist/GroupedList/GroupedList.d.ts +26 -1
- package/dist/GroupedList/GroupedList.d.ts.map +1 -1
- package/dist/GroupedList/GroupedList.js +10 -2
- package/dist/GroupedList/GroupedList.js.map +1 -1
- package/dist/GroupedList/groupedListStickyHeading.d.ts +20 -0
- package/dist/GroupedList/groupedListStickyHeading.d.ts.map +1 -0
- package/dist/GroupedList/groupedListStickyHeading.js +20 -0
- package/dist/GroupedList/groupedListStickyHeading.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/GroupedList/GroupedList.mdx +28 -0
- package/src/GroupedList/GroupedList.stories.tsx +88 -0
- package/src/GroupedList/GroupedList.test.tsx +119 -0
- package/src/GroupedList/GroupedList.tsx +37 -2
- package/src/GroupedList/groupedListStickyHeading.ts +24 -0
- package/src/index.ts +4 -0
|
@@ -56,6 +56,24 @@ export type GroupedListProps = {
|
|
|
56
56
|
* a document-outline break no gate here can see.
|
|
57
57
|
*/
|
|
58
58
|
headingLevel?: GroupedListHeadingLevel;
|
|
59
|
+
/**
|
|
60
|
+
* `true` pins each group's heading to the top of the nearest
|
|
61
|
+
* scrolling ancestor while that group's rows scroll under it, and
|
|
62
|
+
* the next group's heading pushes it away. For a list inside a
|
|
63
|
+
* scrolling pane, where the heading is the only thing that says
|
|
64
|
+
* which screen or team a row belongs to once it scrolls out of
|
|
65
|
+
* sight. `false` (the default) scrolls the heading with its rows.
|
|
66
|
+
*
|
|
67
|
+
* A stuck heading needs an opaque background or the rows show
|
|
68
|
+
* through it, and no one surface fits every host — a page is
|
|
69
|
+
* `surface-base`, a settings pane is `surface-raised`. So the
|
|
70
|
+
* background is read from `--charcuterie-grouped-list-heading-surface`,
|
|
71
|
+
* which falls back to `--color-surface-base`. Set it on any
|
|
72
|
+
* ancestor to match the surface the list sits on. Under a sticky
|
|
73
|
+
* page `Header`, set `--charcuterie-grouped-list-heading-offset`
|
|
74
|
+
* to the header's height so the headings stop below it.
|
|
75
|
+
*/
|
|
76
|
+
isHeadingSticky?: boolean;
|
|
59
77
|
/**
|
|
60
78
|
* `true` (the default) clips a long label or description to one
|
|
61
79
|
* line, with the full text as a tooltip while it is clipped.
|
|
@@ -96,10 +114,17 @@ export type GroupedListProps = {
|
|
|
96
114
|
* component does it, and when every group is empty it draws
|
|
97
115
|
* `emptyState` instead.
|
|
98
116
|
*
|
|
117
|
+
* ### A sticky heading is opt-in
|
|
118
|
+
*
|
|
119
|
+
* castkit's copy pinned its headings, and a pinned heading needs a
|
|
120
|
+
* background that matches whatever it sits on. The component cannot
|
|
121
|
+
* know that surface, so `isHeadingSticky` reads it from a custom
|
|
122
|
+
* property the host can set, falling back to `surface-base`.
|
|
123
|
+
*
|
|
99
124
|
* ### Not collapsible
|
|
100
125
|
*
|
|
101
126
|
* A group you can close is `Accordion`. This is for a list that is
|
|
102
127
|
* short enough to read whole and long enough to want headings.
|
|
103
128
|
*/
|
|
104
|
-
export declare const GroupedList: ({ className, emptyState, groups, headingLevel, isTextTruncated, size, }: GroupedListProps) => ReactNode;
|
|
129
|
+
export declare const GroupedList: ({ className, emptyState, groups, headingLevel, isHeadingSticky, isTextTruncated, size, }: GroupedListProps) => ReactNode;
|
|
105
130
|
//# sourceMappingURL=GroupedList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupedList.d.ts","sourceRoot":"","sources":["../../src/GroupedList/GroupedList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"GroupedList.d.ts","sourceRoot":"","sources":["../../src/GroupedList/GroupedList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAMtC,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEvD,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAA;AAEzC,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,kGAAkG;IAClG,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,4GAA4G;IAC5G,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,SAAS,eAAe,EAAE,CAAA;IACjC,GAAG,EAAE,MAAM,CAAA;IACX;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAA;IACnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,uBAAuB,CAAA;IACtC;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,eAAe,CAAA;CACvB,CAAA;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,WAAW,GAAI,0FAQzB,gBAAgB,KAAG,SAuErB,CAAA"}
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useUniqueId } from "@charcuterie/logic";
|
|
3
3
|
import { toClassName } from "../toClassName.js";
|
|
4
4
|
import { GroupedListRow } from "./GroupedListRow.js";
|
|
5
|
+
import { STICKY_HEADING_CLASS } from "./groupedListStickyHeading.js";
|
|
5
6
|
/**
|
|
6
7
|
* Written out rather than interpolated into a tag name, matching
|
|
7
8
|
* `Accordion`: "which heading levels does this component emit"
|
|
@@ -44,12 +45,19 @@ const HEADING_TAG = {
|
|
|
44
45
|
* component does it, and when every group is empty it draws
|
|
45
46
|
* `emptyState` instead.
|
|
46
47
|
*
|
|
48
|
+
* ### A sticky heading is opt-in
|
|
49
|
+
*
|
|
50
|
+
* castkit's copy pinned its headings, and a pinned heading needs a
|
|
51
|
+
* background that matches whatever it sits on. The component cannot
|
|
52
|
+
* know that surface, so `isHeadingSticky` reads it from a custom
|
|
53
|
+
* property the host can set, falling back to `surface-base`.
|
|
54
|
+
*
|
|
47
55
|
* ### Not collapsible
|
|
48
56
|
*
|
|
49
57
|
* A group you can close is `Accordion`. This is for a list that is
|
|
50
58
|
* short enough to read whole and long enough to want headings.
|
|
51
59
|
*/
|
|
52
|
-
export const GroupedList = ({ className, emptyState, groups, headingLevel = 3, isTextTruncated = true, size = "md", }) => {
|
|
60
|
+
export const GroupedList = ({ className, emptyState, groups, headingLevel = 3, isHeadingSticky = false, isTextTruncated = true, size = "md", }) => {
|
|
53
61
|
const baseId = useUniqueId();
|
|
54
62
|
const shownGroups = groups.filter((group) => group.items.length > 0);
|
|
55
63
|
const Heading = HEADING_TAG[headingLevel];
|
|
@@ -57,7 +65,7 @@ export const GroupedList = ({ className, emptyState, groups, headingLevel = 3, i
|
|
|
57
65
|
? (emptyState ?? null)
|
|
58
66
|
: shownGroups.map((group, index) => {
|
|
59
67
|
const headingId = `${baseId}-heading-${index}`;
|
|
60
|
-
return (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsxs("div", { className: "flex flex-wrap items-baseline gap-x-3 gap-y-0.5", children: [_jsx(Heading, { className: toClassName("m-0 min-w-0 wrap-anywhere font-semibold text-content-primary", size === "sm" ? "text-sm" : "text-md"), id: headingId, children: group.heading }), group.summary ? (_jsx("span", { className: "min-w-0 wrap-anywhere text-content-secondary text-sm", children: group.summary })) : null] }), _jsx("ul", { "aria-labelledby": headingId, className: "m-0 flex list-none flex-col divide-y divide-border-subtle overflow-hidden rounded-md border border-border-subtle bg-surface-raised p-0", children: group.items.map((item) => (_jsx(GroupedListRow, { isTextTruncated: isTextTruncated, item: item, size: size }, item.key))) })] }, group.key));
|
|
68
|
+
return (_jsxs("div", { className: toClassName("flex flex-col", isHeadingSticky ? "gap-0" : "gap-2"), children: [_jsxs("div", { className: toClassName("flex flex-wrap items-baseline gap-x-3 gap-y-0.5", isHeadingSticky && STICKY_HEADING_CLASS), children: [_jsx(Heading, { className: toClassName("m-0 min-w-0 wrap-anywhere font-semibold text-content-primary", size === "sm" ? "text-sm" : "text-md"), id: headingId, children: group.heading }), group.summary ? (_jsx("span", { className: "min-w-0 wrap-anywhere text-content-secondary text-sm", children: group.summary })) : null] }), _jsx("ul", { "aria-labelledby": headingId, className: "m-0 flex list-none flex-col divide-y divide-border-subtle overflow-hidden rounded-md border border-border-subtle bg-surface-raised p-0", children: group.items.map((item) => (_jsx(GroupedListRow, { isTextTruncated: isTextTruncated, item: item, size: size }, item.key))) })] }, group.key));
|
|
61
69
|
}) }));
|
|
62
70
|
};
|
|
63
71
|
//# sourceMappingURL=GroupedList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupedList.js","sourceRoot":"","sources":["../../src/GroupedList/GroupedList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"GroupedList.js","sourceRoot":"","sources":["../../src/GroupedList/GroupedList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AA4FpE;;;;GAIG;AACH,MAAM,WAAW,GAGb;IACF,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;CACR,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,SAAS,EACT,UAAU,EACV,MAAM,EACN,YAAY,GAAG,CAAC,EAChB,eAAe,GAAG,KAAK,EACvB,eAAe,GAAG,IAAI,EACtB,IAAI,GAAG,IAAI,GACM,EAAa,EAAE;IAChC,MAAM,MAAM,GAAG,WAAW,EAAE,CAAA;IAE5B,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAC/B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAClC,CAAA;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;IAEzC,OAAO,CACL,cACE,SAAS,EAAE,WAAW,CACpB,eAAe,EACf,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EACjC,SAAS,CACV,YAEA,WAAW,CAAC,MAAM,KAAK,CAAC;YACvB,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;YACtB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC/B,MAAM,SAAS,GAAG,GAAG,MAAM,YAAY,KAAK,EAAE,CAAA;gBAE9C,OAAO,CACL,eACE,SAAS,EAAE,WAAW,CACpB,eAAe,EACf,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CACpC,aAGD,eACE,SAAS,EAAE,WAAW,CACpB,iDAAiD,EACjD,eAAe,IAAI,oBAAoB,CACxC,aAED,KAAC,OAAO,IACN,SAAS,EAAE,WAAW,CACpB,8DAA8D,EAC9D,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CACtC,EACD,EAAE,EAAE,SAAS,YAEZ,KAAK,CAAC,OAAO,GACN,EAET,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CACf,eAAM,SAAS,EAAC,sDAAsD,YACnE,KAAK,CAAC,OAAO,GACT,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,EAEN,gCACmB,SAAS,EAC1B,SAAS,EAAC,wIAAwI,YAEjJ,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,KAAC,cAAc,IACb,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,IAAI,EAEV,IAAI,EAAE,IAAI,IADL,IAAI,CAAC,GAAG,CAEb,CACH,CAAC,GACC,KArCA,KAAK,CAAC,GAAG,CAsCV,CACP,CAAA;YACH,CAAC,CAAC,GACF,CACP,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The custom property a stuck heading reads its background from.
|
|
3
|
+
* Set it on any ancestor; it falls back to `--color-surface-base`.
|
|
4
|
+
*/
|
|
5
|
+
export declare const GROUPED_LIST_HEADING_SURFACE_PROPERTY = "--charcuterie-grouped-list-heading-surface";
|
|
6
|
+
/**
|
|
7
|
+
* The custom property a stuck heading reads its distance from the
|
|
8
|
+
* scroll container's top edge from. It falls back to `0px`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const GROUPED_LIST_HEADING_OFFSET_PROPERTY = "--charcuterie-grouped-list-heading-offset";
|
|
11
|
+
/**
|
|
12
|
+
* Written out in full because Tailwind scans source text for whole
|
|
13
|
+
* class strings: an interpolated property name generates nothing.
|
|
14
|
+
*
|
|
15
|
+
* The heading row carries the space under it as padding rather than
|
|
16
|
+
* the group's `gap`, because a gap is transparent and the rows would
|
|
17
|
+
* show through it while the heading is stuck.
|
|
18
|
+
*/
|
|
19
|
+
export declare const STICKY_HEADING_CLASS = "sticky top-[var(--charcuterie-grouped-list-heading-offset,0px)] z-[var(--layer-sticky)] bg-[color:var(--charcuterie-grouped-list-heading-surface,var(--color-surface-base))] pb-2";
|
|
20
|
+
//# sourceMappingURL=groupedListStickyHeading.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupedListStickyHeading.d.ts","sourceRoot":"","sources":["../../src/GroupedList/groupedListStickyHeading.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,qCAAqC,+CACJ,CAAA;AAE9C;;;GAGG;AACH,eAAO,MAAM,oCAAoC,8CACJ,CAAA;AAE7C;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,sLACoJ,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The custom property a stuck heading reads its background from.
|
|
3
|
+
* Set it on any ancestor; it falls back to `--color-surface-base`.
|
|
4
|
+
*/
|
|
5
|
+
export const GROUPED_LIST_HEADING_SURFACE_PROPERTY = "--charcuterie-grouped-list-heading-surface";
|
|
6
|
+
/**
|
|
7
|
+
* The custom property a stuck heading reads its distance from the
|
|
8
|
+
* scroll container's top edge from. It falls back to `0px`.
|
|
9
|
+
*/
|
|
10
|
+
export const GROUPED_LIST_HEADING_OFFSET_PROPERTY = "--charcuterie-grouped-list-heading-offset";
|
|
11
|
+
/**
|
|
12
|
+
* Written out in full because Tailwind scans source text for whole
|
|
13
|
+
* class strings: an interpolated property name generates nothing.
|
|
14
|
+
*
|
|
15
|
+
* The heading row carries the space under it as padding rather than
|
|
16
|
+
* the group's `gap`, because a gap is transparent and the rows would
|
|
17
|
+
* show through it while the heading is stuck.
|
|
18
|
+
*/
|
|
19
|
+
export const STICKY_HEADING_CLASS = "sticky top-[var(--charcuterie-grouped-list-heading-offset,0px)] z-[var(--layer-sticky)] bg-[color:var(--charcuterie-grouped-list-heading-surface,var(--color-surface-base))] pb-2";
|
|
20
|
+
//# sourceMappingURL=groupedListStickyHeading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupedListStickyHeading.js","sourceRoot":"","sources":["../../src/GroupedList/groupedListStickyHeading.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAChD,4CAA4C,CAAA;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAC/C,2CAA2C,CAAA;AAE7C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,mLAAmL,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -110,6 +110,7 @@ export type { FileDropZoneProps } from "./FileDropZone/FileDropZone.tsx";
|
|
|
110
110
|
export { FileDropZone } from "./FileDropZone/FileDropZone.tsx";
|
|
111
111
|
export type { GroupedListGroup, GroupedListHeadingLevel, GroupedListItem, GroupedListProps, GroupedListSize, } from "./GroupedList/GroupedList.tsx";
|
|
112
112
|
export { GroupedList } from "./GroupedList/GroupedList.tsx";
|
|
113
|
+
export { GROUPED_LIST_HEADING_OFFSET_PROPERTY, GROUPED_LIST_HEADING_SURFACE_PROPERTY, } from "./GroupedList/groupedListStickyHeading.ts";
|
|
113
114
|
export type { HeaderProps } from "./Header/Header.tsx";
|
|
114
115
|
export { Header } from "./Header/Header.tsx";
|
|
115
116
|
export type { IconButtonProps } from "./IconButton/IconButton.tsx";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,cAAc,GACf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,YAAY,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,iCAAiC,CAAA;AACxC,YAAY,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,sCAAsC,CAAA;AAC7C,YAAY,EACV,UAAU,EACV,SAAS,GACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,YAAY,EACV,WAAW,EACX,UAAU,GACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,YAAY,EACV,SAAS,EACT,UAAU,GACX,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,YAAY,EACV,aAAa,EACb,eAAe,EACf,UAAU,EACV,SAAS,GACV,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,cAAc,GACf,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,YAAY,EACV,WAAW,EACX,SAAS,EACT,WAAW,GACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,YAAY,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAA;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AACnF,YAAY,EACV,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AAC7E,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,YAAY,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAA;AACvE,YAAY,EACV,eAAe,EACf,UAAU,GACX,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,GACd,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,qBAAqB,GACtB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,2BAA2B,EAC3B,cAAc,GACf,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACV,SAAS,EACT,SAAS,EACT,sBAAsB,GACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,OAAO,EACP,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EACzB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,SAAS,GACV,MAAM,2BAA2B,CAAA;AAClC,YAAY,EACV,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,2CAA2C,CAAA;AAClD,OAAO,EACL,8BAA8B,EAC9B,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,2CAA2C,CAAA;AAClD,YAAY,EACV,WAAW,EACX,UAAU,GACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,YAAY,EACV,aAAa,EACb,cAAc,GACf,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,YAAY,EACV,eAAe,EACf,cAAc,GACf,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,YAAY,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EACL,oCAAoC,EACpC,qCAAqC,GACtC,MAAM,2CAA2C,CAAA;AAClD,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,YAAY,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACtE,YAAY,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AACvE,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,cAAc,EACd,cAAc,GACf,MAAM,wCAAwC,CAAA;AAC/C,YAAY,EACV,aAAa,EACb,aAAa,GACd,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,YAAY,EACV,WAAW,EACX,YAAY,GACb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,YAAY,EACV,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AACnF,YAAY,EACV,OAAO,EACP,cAAc,GACf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,YAAY,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAA;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,YAAY,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AACtE,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,GACjB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EACL,WAAW,EACX,eAAe,GAChB,MAAM,mCAAmC,CAAA;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,kCAAkC,CAAA;AACzC,YAAY,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,YAAY,EACV,cAAc,EACd,cAAc,GACf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,YAAY,EACV,QAAQ,EACR,SAAS,GACV,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,YAAY,EACV,SAAS,EACT,QAAQ,GACT,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACnC,YAAY,EACV,OAAO,EACP,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,YAAY,EACV,UAAU,EACV,WAAW,GACZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C;;;;GAIG;AACH,YAAY,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAC5E,YAAY,EACV,YAAY,EACZ,WAAW,GACZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACjE,YAAY,EACV,gBAAgB,EAChB,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,YAAY,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,YAAY,EACV,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,YAAY,EACV,eAAe,EACf,SAAS,GACV,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,YAAY,EACV,YAAY,EACZ,SAAS,EACT,QAAQ,GACT,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,YAAY,EACV,gBAAgB,EAChB,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACzE,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EACL,kBAAkB,EAClB,aAAa,GACd,MAAM,qCAAqC,CAAA;AAC5C,YAAY,EACV,mBAAmB,EACnB,eAAe,GAChB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,cAAc,GACf,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AACrE,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,YAAY,EACV,qBAAqB,EACrB,aAAa,GACd,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAM1E,YAAY,EACV,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,WAAW,GACZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,YAAY,EACV,YAAY,EACZ,UAAU,GACX,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,YAAY,EACV,aAAa,EACb,aAAa,GACd,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,YAAY,EACV,WAAW,EACX,UAAU,GACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,YAAY,EACV,wBAAwB,EACxB,aAAa,GACd,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AACnF,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,YAAY,EACV,IAAI,EACJ,kBAAkB,EAClB,YAAY,EACZ,UAAU,GACX,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,UAAU,GACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EACL,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACjE,YAAY,EACV,aAAa,EACb,cAAc,EACd,SAAS,GACV,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,YAAY,EACV,OAAO,EACP,WAAW,EACX,cAAc,EACd,eAAe,GAChB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,kBAAkB,EAClB,aAAa,GACd,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACjE,YAAY,EACV,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,GACd,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,MAAM,6BAA6B,CAAA;AACpC,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,YAAY,EACV,WAAW,EACX,gBAAgB,GACjB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,YAAY,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,GACb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,YAAY,EACV,SAAS,EACT,eAAe,GAChB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAClE,YAAY,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAA;AACvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,YAAY,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -69,6 +69,7 @@ export { Field } from "./Field/Field.js";
|
|
|
69
69
|
export { FieldGroup } from "./Field/FieldGroup.js";
|
|
70
70
|
export { FileDropZone } from "./FileDropZone/FileDropZone.js";
|
|
71
71
|
export { GroupedList } from "./GroupedList/GroupedList.js";
|
|
72
|
+
export { GROUPED_LIST_HEADING_OFFSET_PROPERTY, GROUPED_LIST_HEADING_SURFACE_PROPERTY, } from "./GroupedList/groupedListStickyHeading.js";
|
|
72
73
|
export { Header } from "./Header/Header.js";
|
|
73
74
|
export { IconButton } from "./IconButton/IconButton.js";
|
|
74
75
|
export { ARIA_DISABLED_CLASS, DISABLED_CLASS, FOCUS_RING_CLASS, INTENT_APPEARANCE_CLASS, INTENT_CONTENT_CLASS, INTENT_HOVER_CLASS, INTENT_SOLID_FILL_CLASS, } from "./intentStyles.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -56,6 +56,34 @@ There is no container query and no media query: the content decides.
|
|
|
56
56
|
|
|
57
57
|
<Canvas of={GroupedListStories.Responsive} />
|
|
58
58
|
|
|
59
|
+
## Sticky headings
|
|
60
|
+
|
|
61
|
+
`isHeadingSticky` pins each group's heading to the top of the nearest scrolling ancestor while
|
|
62
|
+
that group's rows scroll under it, and the next group's heading pushes it away. Use it for a
|
|
63
|
+
list inside a scrolling pane, where the heading is the only thing that says which screen or
|
|
64
|
+
team a row belongs to once the row scrolls out of sight. It is off by default.
|
|
65
|
+
|
|
66
|
+
A stuck heading needs an opaque background, or the rows show through it. The component cannot
|
|
67
|
+
know which surface it sits on — a page is `surface-base`, a settings pane is
|
|
68
|
+
`surface-raised` — so the host says so with a custom property:
|
|
69
|
+
|
|
70
|
+
| Property | Default | Set it to |
|
|
71
|
+
| --- | --- | --- |
|
|
72
|
+
| `--charcuterie-grouped-list-heading-surface` | `var(--color-surface-base)` | The background of the pane the list sits on. |
|
|
73
|
+
| `--charcuterie-grouped-list-heading-offset` | `0px` | The height of anything already stuck to the top of the same scroll container, such as a sticky `Header`. |
|
|
74
|
+
|
|
75
|
+
Set either one on any ancestor of the list. The names are exported as
|
|
76
|
+
`GROUPED_LIST_HEADING_SURFACE_PROPERTY` and `GROUPED_LIST_HEADING_OFFSET_PROPERTY` for a host
|
|
77
|
+
that sets them through a `style` object.
|
|
78
|
+
|
|
79
|
+
```css
|
|
80
|
+
.settings-panel {
|
|
81
|
+
--charcuterie-grouped-list-heading-surface: var(--color-surface-raised);
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
<Canvas of={GroupedListStories.StickyHeadings} />
|
|
86
|
+
|
|
59
87
|
## Name a repeated action after its row
|
|
60
88
|
|
|
61
89
|
Ten rows of "Open" are ten buttons an agent cannot tell apart. Give each one a name that
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
2
2
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
3
|
+
import type { CSSProperties } from "react"
|
|
3
4
|
|
|
4
5
|
import { Badge } from "../Badge/Badge.tsx"
|
|
5
6
|
import { Button } from "../Button/Button.tsx"
|
|
@@ -11,6 +12,7 @@ import {
|
|
|
11
12
|
import { EmptyState } from "../EmptyState/EmptyState.tsx"
|
|
12
13
|
import type { GroupedListGroup } from "./GroupedList.tsx"
|
|
13
14
|
import { GroupedList } from "./GroupedList.tsx"
|
|
15
|
+
import { GROUPED_LIST_HEADING_SURFACE_PROPERTY } from "./groupedListStickyHeading.ts"
|
|
14
16
|
|
|
15
17
|
/**
|
|
16
18
|
* Fixture data only. A signage app's pages, grouped by the screen
|
|
@@ -220,6 +222,45 @@ const LONG_GROUPS: GroupedListGroup[] = [
|
|
|
220
222
|
},
|
|
221
223
|
]
|
|
222
224
|
|
|
225
|
+
/**
|
|
226
|
+
* Fixture data only. Enough screens that the pane has to scroll, so
|
|
227
|
+
* a stuck heading has rows to sit over.
|
|
228
|
+
*/
|
|
229
|
+
const MANY_SCREEN_GROUPS: GroupedListGroup[] = [
|
|
230
|
+
"Lobby",
|
|
231
|
+
"Break Room",
|
|
232
|
+
"Loading Dock",
|
|
233
|
+
].map((screen) => ({
|
|
234
|
+
heading: `On the ${screen} screen`,
|
|
235
|
+
items: ["Welcome", "Weather", "Schedule", "Menu"].map(
|
|
236
|
+
(view) => ({
|
|
237
|
+
actions: openButton(`${view} on ${screen}`),
|
|
238
|
+
description: `/views/${view.toLowerCase()}`,
|
|
239
|
+
key: view,
|
|
240
|
+
label: view,
|
|
241
|
+
}),
|
|
242
|
+
),
|
|
243
|
+
key: screen,
|
|
244
|
+
}))
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* A fixed block size is what makes the pane scroll; the heading
|
|
248
|
+
* sticks to the pane, the nearest scrolling ancestor.
|
|
249
|
+
*/
|
|
250
|
+
const SCROLL_PANE_STYLE: CSSProperties = {
|
|
251
|
+
blockSize: "16rem",
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* The host says which surface the list sits on. The pane is raised,
|
|
256
|
+
* so the stuck heading is raised too.
|
|
257
|
+
*/
|
|
258
|
+
const RAISED_PANE_STYLE = {
|
|
259
|
+
...SCROLL_PANE_STYLE,
|
|
260
|
+
[GROUPED_LIST_HEADING_SURFACE_PROPERTY]:
|
|
261
|
+
"var(--color-surface-raised)",
|
|
262
|
+
} as CSSProperties
|
|
263
|
+
|
|
223
264
|
/**
|
|
224
265
|
* A cap rather than a width, so the long label clips in every window
|
|
225
266
|
* — an ultrawide grid cell would otherwise hold it whole and the
|
|
@@ -436,6 +477,53 @@ export const NarrowView: Story = {
|
|
|
436
477
|
globals: { viewport: { value: "mobile1" } },
|
|
437
478
|
}
|
|
438
479
|
|
|
480
|
+
/**
|
|
481
|
+
* `isHeadingSticky` pins each heading to the top of the scrolling
|
|
482
|
+
* pane while its rows scroll under it. On the left the pane is the
|
|
483
|
+
* page surface, which is the default heading background. On the
|
|
484
|
+
* right the pane is raised, and it sets
|
|
485
|
+
* `--charcuterie-grouped-list-heading-surface` to match.
|
|
486
|
+
*/
|
|
487
|
+
export const StickyHeadings: Story = {
|
|
488
|
+
render: () => (
|
|
489
|
+
<StoryGrid columns={2}>
|
|
490
|
+
<StoryCell
|
|
491
|
+
align="stretch"
|
|
492
|
+
label="default: surface-base"
|
|
493
|
+
>
|
|
494
|
+
<section
|
|
495
|
+
aria-label="Pages on a base surface"
|
|
496
|
+
className="overflow-y-auto rounded-lg border border-border-subtle bg-surface-base px-3"
|
|
497
|
+
style={SCROLL_PANE_STYLE}
|
|
498
|
+
>
|
|
499
|
+
<GroupedList
|
|
500
|
+
groups={MANY_SCREEN_GROUPS}
|
|
501
|
+
isHeadingSticky
|
|
502
|
+
size="sm"
|
|
503
|
+
/>
|
|
504
|
+
</section>
|
|
505
|
+
</StoryCell>
|
|
506
|
+
|
|
507
|
+
<StoryCell
|
|
508
|
+
align="stretch"
|
|
509
|
+
label="host sets the surface: surface-raised"
|
|
510
|
+
>
|
|
511
|
+
<section
|
|
512
|
+
aria-label="Pages on a raised surface"
|
|
513
|
+
className="overflow-y-auto rounded-lg border border-border-subtle bg-surface-raised px-3"
|
|
514
|
+
style={RAISED_PANE_STYLE}
|
|
515
|
+
>
|
|
516
|
+
<GroupedList
|
|
517
|
+
groups={MANY_SCREEN_GROUPS}
|
|
518
|
+
isHeadingSticky
|
|
519
|
+
size="sm"
|
|
520
|
+
/>
|
|
521
|
+
</section>
|
|
522
|
+
</StoryCell>
|
|
523
|
+
</StoryGrid>
|
|
524
|
+
),
|
|
525
|
+
}
|
|
526
|
+
|
|
439
527
|
/**
|
|
440
528
|
* Light and dark side by side, each panel scoped with its own
|
|
441
529
|
* `data-scheme`, so both read at once whatever the toolbar says.
|
|
@@ -25,6 +25,7 @@ const {
|
|
|
25
25
|
NarrowView,
|
|
26
26
|
Playground,
|
|
27
27
|
Responsive,
|
|
28
|
+
StickyHeadings,
|
|
28
29
|
} = composeStories(stories)
|
|
29
30
|
|
|
30
31
|
test("a group's heading names its list", async () => {
|
|
@@ -269,3 +270,121 @@ test("both schemes pass axe, contrast included", async () => {
|
|
|
269
270
|
|
|
270
271
|
await expectNoAxeViolations(canvasElement)
|
|
271
272
|
})
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* The element `isHeadingSticky` pins: the heading's row, which also
|
|
276
|
+
* holds the summary.
|
|
277
|
+
*/
|
|
278
|
+
const headingRowOf = (heading: HTMLElement) =>
|
|
279
|
+
heading.parentElement as HTMLElement
|
|
280
|
+
|
|
281
|
+
test("a heading scrolls with its rows unless isHeadingSticky is set", async () => {
|
|
282
|
+
const { canvas } = await mountStory(Playground)
|
|
283
|
+
|
|
284
|
+
const heading = expectAgentDrivable(canvas, {
|
|
285
|
+
name: "Screens",
|
|
286
|
+
role: "heading",
|
|
287
|
+
})
|
|
288
|
+
|
|
289
|
+
await expect(
|
|
290
|
+
getComputedStyle(headingRowOf(heading)).position,
|
|
291
|
+
).toBe("static")
|
|
292
|
+
})
|
|
293
|
+
|
|
294
|
+
test("a sticky heading stays at the top of its pane while its rows scroll under it", async () => {
|
|
295
|
+
const { canvas, canvasElement } =
|
|
296
|
+
await mountStory(StickyHeadings)
|
|
297
|
+
|
|
298
|
+
const pane = expectAgentDrivable(canvas, {
|
|
299
|
+
name: "Pages on a raised surface",
|
|
300
|
+
role: "region",
|
|
301
|
+
})
|
|
302
|
+
|
|
303
|
+
const paneCanvas = within(pane)
|
|
304
|
+
|
|
305
|
+
const heading = paneCanvas.getByRole("heading", {
|
|
306
|
+
name: "On the Lobby screen",
|
|
307
|
+
})
|
|
308
|
+
|
|
309
|
+
const list = paneCanvas.getByRole("list", {
|
|
310
|
+
name: "On the Lobby screen",
|
|
311
|
+
})
|
|
312
|
+
|
|
313
|
+
// The space under a stuck heading is its own padding, not a
|
|
314
|
+
// transparent gap the rows would show through.
|
|
315
|
+
await expect(
|
|
316
|
+
headingRowOf(heading).getBoundingClientRect().bottom,
|
|
317
|
+
).toBeCloseTo(list.getBoundingClientRect().top, 0)
|
|
318
|
+
|
|
319
|
+
pane.scrollTop = 96
|
|
320
|
+
|
|
321
|
+
await waitFor(() => {
|
|
322
|
+
expect(pane.scrollTop).toBe(96)
|
|
323
|
+
})
|
|
324
|
+
|
|
325
|
+
const paneTop =
|
|
326
|
+
pane.getBoundingClientRect().top + pane.clientTop
|
|
327
|
+
|
|
328
|
+
await expect(
|
|
329
|
+
headingRowOf(heading).getBoundingClientRect().top,
|
|
330
|
+
).toBeCloseTo(paneTop, 0)
|
|
331
|
+
|
|
332
|
+
// The first row has scrolled up past the heading, under it.
|
|
333
|
+
const firstRow = within(list).getAllByRole(
|
|
334
|
+
"listitem",
|
|
335
|
+
)[0] as HTMLElement
|
|
336
|
+
|
|
337
|
+
await expect(
|
|
338
|
+
firstRow.getBoundingClientRect().top,
|
|
339
|
+
).toBeLessThan(paneTop)
|
|
340
|
+
|
|
341
|
+
await expectNoAxeViolations(canvasElement)
|
|
342
|
+
})
|
|
343
|
+
|
|
344
|
+
test("a stuck heading's background is the surface its host names, and surface-base by default", async () => {
|
|
345
|
+
const { canvas } = await mountStory(StickyHeadings)
|
|
346
|
+
|
|
347
|
+
for (const name of [
|
|
348
|
+
"Pages on a base surface",
|
|
349
|
+
"Pages on a raised surface",
|
|
350
|
+
]) {
|
|
351
|
+
const pane = expectAgentDrivable(canvas, {
|
|
352
|
+
name,
|
|
353
|
+
role: "region",
|
|
354
|
+
})
|
|
355
|
+
|
|
356
|
+
const heading = within(pane).getByRole("heading", {
|
|
357
|
+
name: "On the Break Room screen",
|
|
358
|
+
})
|
|
359
|
+
|
|
360
|
+
const headingBackground = getComputedStyle(
|
|
361
|
+
headingRowOf(heading),
|
|
362
|
+
).backgroundColor
|
|
363
|
+
|
|
364
|
+
await expect(headingBackground).toBe(
|
|
365
|
+
getComputedStyle(pane).backgroundColor,
|
|
366
|
+
)
|
|
367
|
+
|
|
368
|
+
await expect(headingBackground).not.toBe(
|
|
369
|
+
"rgba(0, 0, 0, 0)",
|
|
370
|
+
)
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
// And the two surfaces are different, or the assertion above
|
|
374
|
+
// could pass with the property ignored.
|
|
375
|
+
await expect(
|
|
376
|
+
getComputedStyle(
|
|
377
|
+
expectAgentDrivable(canvas, {
|
|
378
|
+
name: "Pages on a base surface",
|
|
379
|
+
role: "region",
|
|
380
|
+
}),
|
|
381
|
+
).backgroundColor,
|
|
382
|
+
).not.toBe(
|
|
383
|
+
getComputedStyle(
|
|
384
|
+
expectAgentDrivable(canvas, {
|
|
385
|
+
name: "Pages on a raised surface",
|
|
386
|
+
role: "region",
|
|
387
|
+
}),
|
|
388
|
+
).backgroundColor,
|
|
389
|
+
)
|
|
390
|
+
})
|
|
@@ -3,6 +3,7 @@ import type { ReactNode } from "react"
|
|
|
3
3
|
|
|
4
4
|
import { toClassName } from "../toClassName.ts"
|
|
5
5
|
import { GroupedListRow } from "./GroupedListRow.tsx"
|
|
6
|
+
import { STICKY_HEADING_CLASS } from "./groupedListStickyHeading.ts"
|
|
6
7
|
|
|
7
8
|
export type GroupedListHeadingLevel = 2 | 3 | 4 | 5 | 6
|
|
8
9
|
|
|
@@ -65,6 +66,24 @@ export type GroupedListProps = {
|
|
|
65
66
|
* a document-outline break no gate here can see.
|
|
66
67
|
*/
|
|
67
68
|
headingLevel?: GroupedListHeadingLevel
|
|
69
|
+
/**
|
|
70
|
+
* `true` pins each group's heading to the top of the nearest
|
|
71
|
+
* scrolling ancestor while that group's rows scroll under it, and
|
|
72
|
+
* the next group's heading pushes it away. For a list inside a
|
|
73
|
+
* scrolling pane, where the heading is the only thing that says
|
|
74
|
+
* which screen or team a row belongs to once it scrolls out of
|
|
75
|
+
* sight. `false` (the default) scrolls the heading with its rows.
|
|
76
|
+
*
|
|
77
|
+
* A stuck heading needs an opaque background or the rows show
|
|
78
|
+
* through it, and no one surface fits every host — a page is
|
|
79
|
+
* `surface-base`, a settings pane is `surface-raised`. So the
|
|
80
|
+
* background is read from `--charcuterie-grouped-list-heading-surface`,
|
|
81
|
+
* which falls back to `--color-surface-base`. Set it on any
|
|
82
|
+
* ancestor to match the surface the list sits on. Under a sticky
|
|
83
|
+
* page `Header`, set `--charcuterie-grouped-list-heading-offset`
|
|
84
|
+
* to the header's height so the headings stop below it.
|
|
85
|
+
*/
|
|
86
|
+
isHeadingSticky?: boolean
|
|
68
87
|
/**
|
|
69
88
|
* `true` (the default) clips a long label or description to one
|
|
70
89
|
* line, with the full text as a tooltip while it is clipped.
|
|
@@ -122,6 +141,13 @@ const HEADING_TAG: Record<
|
|
|
122
141
|
* component does it, and when every group is empty it draws
|
|
123
142
|
* `emptyState` instead.
|
|
124
143
|
*
|
|
144
|
+
* ### A sticky heading is opt-in
|
|
145
|
+
*
|
|
146
|
+
* castkit's copy pinned its headings, and a pinned heading needs a
|
|
147
|
+
* background that matches whatever it sits on. The component cannot
|
|
148
|
+
* know that surface, so `isHeadingSticky` reads it from a custom
|
|
149
|
+
* property the host can set, falling back to `surface-base`.
|
|
150
|
+
*
|
|
125
151
|
* ### Not collapsible
|
|
126
152
|
*
|
|
127
153
|
* A group you can close is `Accordion`. This is for a list that is
|
|
@@ -132,6 +158,7 @@ export const GroupedList = ({
|
|
|
132
158
|
emptyState,
|
|
133
159
|
groups,
|
|
134
160
|
headingLevel = 3,
|
|
161
|
+
isHeadingSticky = false,
|
|
135
162
|
isTextTruncated = true,
|
|
136
163
|
size = "md",
|
|
137
164
|
}: GroupedListProps): ReactNode => {
|
|
@@ -158,10 +185,18 @@ export const GroupedList = ({
|
|
|
158
185
|
|
|
159
186
|
return (
|
|
160
187
|
<div
|
|
161
|
-
className=
|
|
188
|
+
className={toClassName(
|
|
189
|
+
"flex flex-col",
|
|
190
|
+
isHeadingSticky ? "gap-0" : "gap-2",
|
|
191
|
+
)}
|
|
162
192
|
key={group.key}
|
|
163
193
|
>
|
|
164
|
-
<div
|
|
194
|
+
<div
|
|
195
|
+
className={toClassName(
|
|
196
|
+
"flex flex-wrap items-baseline gap-x-3 gap-y-0.5",
|
|
197
|
+
isHeadingSticky && STICKY_HEADING_CLASS,
|
|
198
|
+
)}
|
|
199
|
+
>
|
|
165
200
|
<Heading
|
|
166
201
|
className={toClassName(
|
|
167
202
|
"m-0 min-w-0 wrap-anywhere font-semibold text-content-primary",
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The custom property a stuck heading reads its background from.
|
|
3
|
+
* Set it on any ancestor; it falls back to `--color-surface-base`.
|
|
4
|
+
*/
|
|
5
|
+
export const GROUPED_LIST_HEADING_SURFACE_PROPERTY =
|
|
6
|
+
"--charcuterie-grouped-list-heading-surface"
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The custom property a stuck heading reads its distance from the
|
|
10
|
+
* scroll container's top edge from. It falls back to `0px`.
|
|
11
|
+
*/
|
|
12
|
+
export const GROUPED_LIST_HEADING_OFFSET_PROPERTY =
|
|
13
|
+
"--charcuterie-grouped-list-heading-offset"
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Written out in full because Tailwind scans source text for whole
|
|
17
|
+
* class strings: an interpolated property name generates nothing.
|
|
18
|
+
*
|
|
19
|
+
* The heading row carries the space under it as padding rather than
|
|
20
|
+
* the group's `gap`, because a gap is transparent and the rows would
|
|
21
|
+
* show through it while the heading is stuck.
|
|
22
|
+
*/
|
|
23
|
+
export const STICKY_HEADING_CLASS =
|
|
24
|
+
"sticky top-[var(--charcuterie-grouped-list-heading-offset,0px)] z-[var(--layer-sticky)] bg-[color:var(--charcuterie-grouped-list-heading-surface,var(--color-surface-base))] pb-2"
|
package/src/index.ts
CHANGED
|
@@ -243,6 +243,10 @@ export type {
|
|
|
243
243
|
GroupedListSize,
|
|
244
244
|
} from "./GroupedList/GroupedList.tsx"
|
|
245
245
|
export { GroupedList } from "./GroupedList/GroupedList.tsx"
|
|
246
|
+
export {
|
|
247
|
+
GROUPED_LIST_HEADING_OFFSET_PROPERTY,
|
|
248
|
+
GROUPED_LIST_HEADING_SURFACE_PROPERTY,
|
|
249
|
+
} from "./GroupedList/groupedListStickyHeading.ts"
|
|
246
250
|
export type { HeaderProps } from "./Header/Header.tsx"
|
|
247
251
|
export { Header } from "./Header/Header.tsx"
|
|
248
252
|
export type { IconButtonProps } from "./IconButton/IconButton.tsx"
|