@ketvietlab/design-system 0.1.20 → 0.1.24
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 +30 -1
- package/dist/catalogue/index.js +1 -1
- package/dist/catalogue/inventory-policy.json +7 -0
- package/dist/catalogue/inventory.css +7 -7
- package/dist/catalogue/inventory.generated.js +1 -1
- package/dist/catalogue/inventory.generated.js.map +1 -1
- package/dist/catalogue/inventory.generated.json +431 -144
- package/dist/catalogue/registry.d.ts.map +1 -1
- package/dist/catalogue/registry.js +3 -0
- package/dist/catalogue/registry.js.map +1 -1
- package/dist/catalogue/specimens.d.ts.map +1 -1
- package/dist/catalogue/specimens.js +16 -3
- package/dist/catalogue/specimens.js.map +1 -1
- package/dist/foundations/tokens.css +14 -10
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interactions/menu/index.d.ts +28 -1
- package/dist/interactions/menu/index.d.ts.map +1 -1
- package/dist/interactions/menu/index.js +16 -13
- package/dist/interactions/menu/index.js.map +1 -1
- package/dist/interactions/menu/styles.css +53 -1
- package/dist/layouts/app-navigation/styles.css +9 -0
- package/dist/patterns/data-table/styles.css +15 -2
- package/dist/patterns/list-chrome/index.d.ts +6 -1
- package/dist/patterns/list-chrome/index.d.ts.map +1 -1
- package/dist/patterns/list-chrome/index.js +5 -1
- package/dist/patterns/list-chrome/index.js.map +1 -1
- package/dist/patterns/list-chrome/styles.css +9 -0
- package/dist/patterns/modal-sheet/index.d.ts +23 -1
- package/dist/patterns/modal-sheet/index.d.ts.map +1 -1
- package/dist/patterns/modal-sheet/index.js +2 -1
- package/dist/patterns/modal-sheet/index.js.map +1 -1
- package/dist/patterns/modal-sheet/styles.css +25 -0
- package/dist/primitives/feedback/styles.css +37 -18
- package/dist/primitives/field/index.d.ts +5 -0
- package/dist/primitives/field/index.d.ts.map +1 -1
- package/dist/primitives/field/index.js +2 -2
- package/dist/primitives/field/index.js.map +1 -1
- package/dist/primitives/field/styles.css +8 -0
- package/dist/primitives/navigation/index.d.ts +36 -3
- package/dist/primitives/navigation/index.d.ts.map +1 -1
- package/dist/primitives/navigation/index.js +18 -1
- package/dist/primitives/navigation/index.js.map +1 -1
- package/dist/primitives/navigation/styles.css +27 -0
- package/dist/runtime/index.d.ts +1 -8
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +19 -0
- package/dist/runtime/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -2
|
@@ -3,7 +3,10 @@ import { each } from '@ketvietlab/ketjs-view';
|
|
|
3
3
|
export const HOOKS = [
|
|
4
4
|
'menu',
|
|
5
5
|
'menu-trigger',
|
|
6
|
+
'menu-trigger-count',
|
|
6
7
|
'menu-panel',
|
|
8
|
+
'menu-search',
|
|
9
|
+
'menu-search-input',
|
|
7
10
|
'menu-label',
|
|
8
11
|
'menu-separator',
|
|
9
12
|
'menu-item',
|
|
@@ -12,18 +15,18 @@ export const HOOKS = [
|
|
|
12
15
|
'menu-item-check',
|
|
13
16
|
'menu-item-shortcut',
|
|
14
17
|
];
|
|
15
|
-
export const Menu = (props) => (_jsxs("details", { "data-ui": "menu", "data-align": props.align ?? 'start', open: props.open === true ? true : undefined, children: [
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
export const Menu = (props) => (_jsxs("details", { "data-ui": "menu", "data-align": props.align ?? 'start', "data-size": props.size === 'compact' ? 'compact' : null, "data-active": props.count ? 'true' : null, "data-placement": props.placement ?? 'bottom', open: props.open === true ? true : undefined, children: [_jsxs("summary", { "data-ui": "menu-trigger", "aria-haspopup": "menu", "aria-controls": `${props.id}-panel`, "aria-label": props.trigger !== undefined ? props.label : undefined, title: props.trigger !== undefined ? props.label : undefined, children: [props.trigger ?? props.label, !!props.count && _jsx("span", { "data-ui": "menu-trigger-count", children: String(props.count) })] }), _jsxs("div", { "data-ui": "menu-panel", id: `${props.id}-panel`, role: "menu", "aria-label": props.label, children: [props.search && (_jsxs("form", { "data-ui": "menu-search", role: "search", method: "get", action: props.search.action, children: [each(Object.entries(props.search.hidden ?? {}), ([name]) => name, ([name, value]) => (_jsx("input", { type: "hidden", name: name, value: value }))), _jsx("input", { "data-ui": "menu-search-input", type: "search", name: props.search.name, value: props.search.value ?? '', placeholder: props.search.placeholder ?? props.search.label, "aria-label": props.search.label, autocomplete: "off" })] })), each(props.items, (item) => item.id, (item) => {
|
|
19
|
+
if (item.kind === 'separator')
|
|
20
|
+
return _jsx("hr", { "data-ui": "menu-separator" });
|
|
21
|
+
if (item.kind === 'label')
|
|
22
|
+
return (_jsx("span", { "data-ui": "menu-label", role: "presentation", children: item.label }));
|
|
23
|
+
const role = item.checked === undefined ? 'menuitem' : 'menuitemcheckbox';
|
|
24
|
+
const content = (_jsxs(_Fragment, { children: [item.checked !== undefined && (_jsx("span", { "data-ui": "menu-item-check", "aria-hidden": "true", children: item.checked ? '✓' : '' })), item.leading !== undefined && (_jsx("span", { "data-ui": "menu-item-leading", "aria-hidden": "true", children: item.leading })), _jsxs("span", { "data-ui": "menu-item-copy", children: [_jsx("span", { children: item.label }), item.description && _jsx("small", { children: item.description })] }), item.shortcut && _jsx("kbd", { "data-ui": "menu-item-shortcut", children: item.shortcut })] }));
|
|
25
|
+
if (item.disabled)
|
|
26
|
+
return (_jsx("span", { "data-ui": "menu-item", role: role, "aria-checked": item.checked === undefined ? null : String(item.checked), "aria-disabled": "true", tabIndex: "-1", children: content }));
|
|
27
|
+
if (item.href)
|
|
28
|
+
return (_jsx("a", { "data-ui": "menu-item", "data-destructive": item.destructive ? 'true' : null, role: role, "aria-checked": item.checked === undefined ? null : String(item.checked), href: item.href, children: content }));
|
|
29
|
+
return (_jsx("button", { "data-ui": "menu-item", "data-destructive": item.destructive ? 'true' : null, role: role, "aria-checked": item.checked === undefined ? null : String(item.checked), type: "submit", name: item.name ?? 'intent', value: item.value ?? item.id, form: item.form ?? null, children: content }));
|
|
30
|
+
})] })] }));
|
|
28
31
|
export const ActionMenu = (props) => (_jsx(Menu, { ...props, trigger: _jsxs("span", { children: [props.triggerLabel ?? props.label, " \u00B7\u00B7\u00B7"] }), align: props.align ?? 'end' }));
|
|
29
32
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/interactions/menu/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAG7C,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM;IACN,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,mBAAmB;IACnB,gBAAgB;IAChB,iBAAiB;IACjB,oBAAoB;CACZ,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/interactions/menu/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAG7C,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM;IACN,cAAc;IACd,oBAAoB;IACpB,YAAY;IACZ,aAAa;IACb,mBAAmB;IACnB,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,mBAAmB;IACnB,gBAAgB;IAChB,iBAAiB;IACjB,oBAAoB;CACZ,CAAA;AA6DV,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAgB,EAAkB,EAAE,CAAC,CACxD,8BACU,MAAM,gBACF,KAAK,CAAC,KAAK,IAAI,OAAO,eACvB,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,iBACzC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,oBACxB,KAAK,CAAC,SAAS,IAAI,QAAQ,EAC3C,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,aAG5C,8BACU,cAAc,mBACR,MAAM,mBACL,GAAG,KAAK,CAAC,EAAE,QAAQ,gBAEtB,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACjE,KAAK,EAAE,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,aAE3D,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,EAC5B,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,0BAAc,oBAAoB,YAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAQ,IACzE,EACV,0BAAa,YAAY,EAAC,EAAE,EAAE,GAAG,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,gBAAa,KAAK,CAAC,KAAK,aACnF,KAAK,CAAC,MAAM,IAAI,CACf,2BAAc,aAAa,EAAC,IAAI,EAAC,QAAQ,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,aAC/E,IAAI,CACH,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EACzC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,EAChB,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACjB,gBAAO,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,CAClD,CACF,EACD,2BACU,mBAAmB,EAC3B,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EACvB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAC/B,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,gBAC/C,KAAK,CAAC,MAAM,CAAC,KAAK,EAC9B,YAAY,EAAC,KAAK,GAClB,IACG,CACR,EACA,IAAI,CACH,KAAK,CAAC,KAAK,EACX,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EACjB,CAAC,IAAI,EAAE,EAAE;oBACP,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;wBAAE,OAAO,wBAAY,gBAAgB,GAAG,CAAA;oBACrE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;wBACvB,OAAO,CACL,0BAAc,YAAY,EAAC,IAAI,EAAC,cAAc,YAC3C,IAAI,CAAC,KAAK,GACN,CACR,CAAA;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAA;oBACzE,MAAM,OAAO,GAAG,CACd,8BACG,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAC7B,0BAAc,iBAAiB,iBAAa,MAAM,YAC/C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GACnB,CACR,EACA,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAC7B,0BAAc,mBAAmB,iBAAa,MAAM,YACjD,IAAI,CAAC,OAAO,GACR,CACR,EACD,2BAAc,gBAAgB,aAC5B,yBAAO,IAAI,CAAC,KAAK,GAAQ,EACxB,IAAI,CAAC,WAAW,IAAI,0BAAQ,IAAI,CAAC,WAAW,GAAS,IACjD,EACN,IAAI,CAAC,QAAQ,IAAI,yBAAa,oBAAoB,YAAE,IAAI,CAAC,QAAQ,GAAO,IACxE,CACJ,CAAA;oBACD,IAAI,IAAI,CAAC,QAAQ;wBACf,OAAO,CAEL,0BACU,WAAW,EACnB,IAAI,EAAE,IAAI,kBACI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,mBACxD,MAAM,EACpB,QAAQ,EAAC,IAAI,YAEZ,OAAO,GACH,CACR,CAAA;oBACH,IAAI,IAAI,CAAC,IAAI;wBACX,OAAO,CAEL,uBACU,WAAW,sBACD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAClD,IAAI,EAAE,IAAI,kBACI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EACtE,IAAI,EAAE,IAAI,CAAC,IAAI,YAEd,OAAO,GACN,CACL,CAAA;oBACH,OAAO,CAEL,4BACU,WAAW,sBACD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAClD,IAAI,EAAE,IAAI,kBACI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EACtE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,QAAQ,EAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,EAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,YAEtB,OAAO,GACD,CACV,CAAA;gBACH,CAAC,CACF,IACG,IACE,CACX,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA6D,EAAkB,EAAE,CAAC,CAC3G,KAAC,IAAI,OACC,KAAK,EACT,OAAO,EAAE,2BAAO,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,2BAAY,EAC7D,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,GAC3B,CACH,CAAA"}
|
|
@@ -20,6 +20,53 @@
|
|
|
20
20
|
list-style: none;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
/* In a row of list facets: their height, their shape, their active colour. */
|
|
24
|
+
:where([data-kv-design-system]) [data-ui="menu"][data-size="compact"] [data-ui="menu-trigger"] {
|
|
25
|
+
min-height: var(--kv-control-height-compact);
|
|
26
|
+
gap: var(--kv-space-1);
|
|
27
|
+
padding: 0 var(--kv-space-2);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
:where([data-kv-design-system]) [data-ui="menu"][data-active="true"] [data-ui="menu-trigger"] {
|
|
31
|
+
border-color: var(--kv-color-accent);
|
|
32
|
+
background: var(--kv-color-accent-soft);
|
|
33
|
+
color: var(--kv-color-accent);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
:where([data-kv-design-system]) [data-ui="menu-trigger-count"] {
|
|
37
|
+
display: inline-grid;
|
|
38
|
+
min-width: 1.125rem;
|
|
39
|
+
padding: 0 var(--kv-space-1);
|
|
40
|
+
border-radius: var(--kv-radius-full);
|
|
41
|
+
background: var(--kv-color-accent);
|
|
42
|
+
color: var(--kv-color-on-accent);
|
|
43
|
+
font-size: var(--kv-text-xs);
|
|
44
|
+
line-height: 1.5;
|
|
45
|
+
place-items: center;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:where([data-kv-design-system]) [data-ui="menu-search"] {
|
|
49
|
+
position: sticky;
|
|
50
|
+
top: calc(-1 * var(--kv-space-1));
|
|
51
|
+
z-index: 1;
|
|
52
|
+
padding: var(--kv-space-1);
|
|
53
|
+
margin: calc(-1 * var(--kv-space-1)) calc(-1 * var(--kv-space-1)) var(--kv-space-1);
|
|
54
|
+
border-bottom: 1px solid var(--kv-color-line);
|
|
55
|
+
background: var(--kv-panel-bg);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
:where([data-kv-design-system]) [data-ui="menu-search-input"] {
|
|
59
|
+
width: 100%;
|
|
60
|
+
min-height: var(--kv-control-height-compact);
|
|
61
|
+
padding: 0 var(--kv-space-2);
|
|
62
|
+
border: 1px solid var(--kv-border-default);
|
|
63
|
+
border-radius: var(--kv-radius-sm);
|
|
64
|
+
background: var(--kv-input-bg);
|
|
65
|
+
color: var(--kv-text-main);
|
|
66
|
+
font: inherit;
|
|
67
|
+
font-size: var(--kv-text-sm);
|
|
68
|
+
}
|
|
69
|
+
|
|
23
70
|
:where([data-kv-design-system]) [data-ui="menu-trigger"]::-webkit-details-marker {
|
|
24
71
|
display: none;
|
|
25
72
|
}
|
|
@@ -63,6 +110,11 @@
|
|
|
63
110
|
left: auto;
|
|
64
111
|
}
|
|
65
112
|
|
|
113
|
+
:where([data-kv-design-system]) [data-ui="menu"][data-placement="top"] [data-ui="menu-panel"] {
|
|
114
|
+
top: auto;
|
|
115
|
+
bottom: calc(100% + var(--kv-space-1));
|
|
116
|
+
}
|
|
117
|
+
|
|
66
118
|
:where([data-kv-design-system]) [data-ui="menu-item"] {
|
|
67
119
|
display: flex;
|
|
68
120
|
width: 100%;
|
|
@@ -102,7 +154,7 @@
|
|
|
102
154
|
|
|
103
155
|
:where([data-kv-design-system]) :is([data-ui="menu-item-leading"], [data-ui="menu-item-check"]) {
|
|
104
156
|
display: inline-grid;
|
|
105
|
-
width: 1rem;
|
|
157
|
+
min-width: 1rem;
|
|
106
158
|
flex: none;
|
|
107
159
|
place-items: center;
|
|
108
160
|
}
|
|
@@ -171,6 +171,15 @@
|
|
|
171
171
|
color: var(--kv-text-main);
|
|
172
172
|
}
|
|
173
173
|
|
|
174
|
+
/* Root sections read one weight step above their children: the section list is
|
|
175
|
+
the page's primary navigation, the children are its detail. */
|
|
176
|
+
:where([data-kv-design-system])
|
|
177
|
+
:is([data-ui="navigation-item"], [data-ui="navigation-branch-trigger"]):not(
|
|
178
|
+
[data-ui="navigation-children"] *
|
|
179
|
+
) {
|
|
180
|
+
font-weight: var(--kv-weight-medium);
|
|
181
|
+
}
|
|
182
|
+
|
|
174
183
|
:where([data-kv-design-system]) [data-ui="navigation-item"][data-active="true"] {
|
|
175
184
|
border-color: var(--kv-border-default);
|
|
176
185
|
background: var(--kv-accent-subtle);
|
|
@@ -77,10 +77,11 @@
|
|
|
77
77
|
vertical-align: middle;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
/* Selection controls sit at the table's text size, not the 16px native default. */
|
|
80
81
|
:where([data-kv-design-system]) [data-ui="table-scroll"][data-pattern="data-table"] [data-ui="select-all"],
|
|
81
82
|
:where([data-kv-design-system]) [data-ui="table-scroll"][data-pattern="data-table"] [data-ui="row-select"] {
|
|
82
|
-
width:
|
|
83
|
-
height:
|
|
83
|
+
width: 0.875rem;
|
|
84
|
+
height: 0.875rem;
|
|
84
85
|
margin: 0;
|
|
85
86
|
accent-color: var(--kv-color-accent);
|
|
86
87
|
}
|
|
@@ -326,6 +327,18 @@
|
|
|
326
327
|
z-index: 1;
|
|
327
328
|
}
|
|
328
329
|
|
|
330
|
+
/* A row that is itself a link may still carry its own controls — a milestone
|
|
331
|
+
that opens one tab of the record, a per-row action. The row link's overlay
|
|
332
|
+
covers the whole row, so anything else a reader can press has to sit above
|
|
333
|
+
it or the row swallows the click. */
|
|
334
|
+
:where([data-kv-design-system])
|
|
335
|
+
[data-ui="table-scroll"][data-pattern="data-table"]
|
|
336
|
+
[data-ui="cell"]
|
|
337
|
+
:is(a, button, summary, input, select, textarea):not([data-ui="row-link"]) {
|
|
338
|
+
position: relative;
|
|
339
|
+
z-index: 1;
|
|
340
|
+
}
|
|
341
|
+
|
|
329
342
|
:where([data-kv-design-system])
|
|
330
343
|
[data-ui="table-scroll"][data-pattern="data-table"]
|
|
331
344
|
[data-ui="row"]:focus-within {
|
|
@@ -63,6 +63,11 @@ export type PagerBarProps = {
|
|
|
63
63
|
};
|
|
64
64
|
export type ListChromeProps = {
|
|
65
65
|
filtersLabel?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Filters that pick from a list rather than toggle — a compact `Menu` each.
|
|
68
|
+
* They lead the facet row, at the facets' height.
|
|
69
|
+
*/
|
|
70
|
+
filterMenus?: JSXChild;
|
|
66
71
|
viewsLabel?: string;
|
|
67
72
|
search?: ListSearch;
|
|
68
73
|
facets?: readonly ListFacet[];
|
|
@@ -73,7 +78,7 @@ export type ListChromeProps = {
|
|
|
73
78
|
bulk?: BulkActionsProps;
|
|
74
79
|
pager?: PagerBarProps;
|
|
75
80
|
};
|
|
76
|
-
export declare const HOOKS: readonly ['list-chrome', 'list-chrome-row', 'list-search', 'list-search-label', 'list-search-input', 'list-search-submit', 'list-facets', 'list-facet', 'list-facet-count', 'list-view-switch', 'list-view', 'list-sort', 'list-sort-label', 'list-sort-select', 'list-status', 'list-actions', 'bulk-actions', 'bulk-summary', 'bulk-count', 'bulk-action-list', 'pager-bar', 'pager-summary', 'pager-pages', 'pager-page', 'pager-actions', 'pager-link'];
|
|
81
|
+
export declare const HOOKS: readonly ['list-chrome', 'list-chrome-row', 'list-search', 'list-search-label', 'list-search-input', 'list-search-submit', 'list-filter-menus', 'list-facets', 'list-facet', 'list-facet-count', 'list-view-switch', 'list-view', 'list-sort', 'list-sort-label', 'list-sort-select', 'list-status', 'list-actions', 'bulk-actions', 'bulk-summary', 'bulk-count', 'bulk-action-list', 'pager-bar', 'pager-summary', 'pager-pages', 'pager-page', 'pager-actions', 'pager-link'];
|
|
77
82
|
export declare const BulkActions: (props: BulkActionsProps) => TemplateResult;
|
|
78
83
|
export declare const PagerBar: (props: PagerBarProps) => TemplateResult;
|
|
79
84
|
export declare const ListChrome: (props: ListChromeProps) => TemplateResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/patterns/list-chrome/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/patterns/list-chrome/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export const HOOKS = [
|
|
|
8
8
|
'list-search-label',
|
|
9
9
|
'list-search-input',
|
|
10
10
|
'list-search-submit',
|
|
11
|
+
'list-filter-menus',
|
|
11
12
|
'list-facets',
|
|
12
13
|
'list-facet',
|
|
13
14
|
'list-facet-count',
|
|
@@ -38,7 +39,10 @@ const SortControl = (props) => (_jsxs("form", { "data-ui": "list-sort", action:
|
|
|
38
39
|
export const BulkActions = (props) => (_jsxs("div", { "data-ui": "bulk-actions", "data-form": props.form ?? null, "data-has-selection": props.selectedCount && props.selectedCount > 0 ? 'true' : null, children: [_jsxs("div", { "data-ui": "bulk-summary", children: [props.summary ?? (_jsxs(_Fragment, { children: [_jsx("span", { "data-ui": "bulk-count", children: String(props.selectedCount ?? 0) }), " selected"] })), props.clearHref && (_jsx(LinkButton, { href: props.clearHref, label: props.clearLabel ?? 'Clear', variant: "tertiary", size: "compact" }))] }), _jsx("div", { "data-ui": "bulk-action-list", children: each(props.actions, (action) => action.id, (action) => (_jsx(Button, { type: "submit", form: props.form ?? null, name: action.name, value: action.value, label: action.label, variant: action.variant ?? 'secondary', size: "compact", disabled: action.disabled === true || !(props.selectedCount && props.selectedCount > 0) }))) })] }));
|
|
39
40
|
export const PagerBar = (props) => (_jsxs("nav", { "data-ui": "pager-bar", "aria-label": props.label ?? 'Pagination', children: [props.summary !== undefined && _jsx("span", { "data-ui": "pager-summary", children: props.summary }), props.pages && props.pages.length > 0 && (_jsx("span", { "data-ui": "pager-pages", children: each(props.pages, (page) => page.href, (page) => (_jsx("a", { "data-ui": "pager-page", "data-active": page.active === true ? 'true' : null, href: page.href, "aria-current": page.active === true ? 'page' : null, children: page.label }))) })), _jsxs("span", { "data-ui": "pager-actions", children: [props.previousHref ? (_jsx("a", { "data-ui": "pager-link", href: props.previousHref, rel: "prev", "aria-label": props.previousLabel ?? 'Previous page', children: "\u2039" })) : (_jsx("span", { "data-ui": "pager-link", "data-disabled": "true", "aria-hidden": "true", children: "\u2039" })), props.nextHref ? (_jsx("a", { "data-ui": "pager-link", href: props.nextHref, rel: "next", "aria-label": props.nextLabel ?? 'Next page', children: "\u203A" })) : (_jsx("span", { "data-ui": "pager-link", "data-disabled": "true", "aria-hidden": "true", children: "\u203A" }))] })] }));
|
|
40
41
|
export const ListChrome = (props) => {
|
|
41
|
-
const filters =
|
|
42
|
+
const filters = props.filterMenus !== undefined ||
|
|
43
|
+
(props.facets?.length ?? 0) > 0 ||
|
|
44
|
+
(props.views?.length ?? 0) > 0 ||
|
|
45
|
+
props.sort ? (_jsxs("div", { "data-ui": "list-chrome-row", "data-row": "filters", children: [props.filterMenus !== undefined && _jsx("div", { "data-ui": "list-filter-menus", children: props.filterMenus }), props.facets && props.facets.length > 0 && (_jsx(FacetNav, { label: props.filtersLabel ?? 'Filters', ui: "list-facets", itemUi: "list-facet", items: props.facets })), props.views && props.views.length > 0 && (_jsx(FacetNav, { label: props.viewsLabel ?? 'Views', ui: "list-view-switch", itemUi: "list-view", items: props.views })), props.sort && _jsx(SortControl, { ...props.sort })] })) : null;
|
|
42
46
|
const meta = props.status !== undefined || props.actions !== undefined || props.pager ? (_jsxs("div", { "data-ui": "list-chrome-row", "data-row": "meta", children: [props.status !== undefined && _jsx("div", { "data-ui": "list-status", children: props.status }), props.actions !== undefined && _jsx("div", { "data-ui": "list-actions", children: props.actions }), props.pager && _jsx(PagerBar, { ...props.pager })] })) : null;
|
|
43
47
|
const tail = filters || meta ? (_jsxs("div", { "data-ui": "list-chrome-row", "data-row": "tail", children: [filters, meta] })) : null;
|
|
44
48
|
return (_jsxs("div", { "data-ui": "list-chrome", "data-pattern": "list-chrome", children: [_jsxs("div", { "data-ui": "list-chrome-row", "data-row": "query", children: [props.search && _jsx(SearchControl, { ...props.search }), tail] }), props.bulk && _jsx(BulkActions, { ...props.bulk })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/patterns/list-chrome/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAE7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,6BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/patterns/list-chrome/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,15 @@
|
|
|
36
36
|
min-width: 0;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
:where([data-kv-design-system])
|
|
40
|
+
[data-ui="list-chrome"][data-pattern="list-chrome"]
|
|
41
|
+
[data-ui="list-filter-menus"] {
|
|
42
|
+
display: flex;
|
|
43
|
+
flex: none;
|
|
44
|
+
align-items: center;
|
|
45
|
+
gap: var(--kv-space-2);
|
|
46
|
+
}
|
|
47
|
+
|
|
39
48
|
:where([data-kv-design-system])
|
|
40
49
|
[data-ui="list-chrome"][data-pattern="list-chrome"]
|
|
41
50
|
[data-ui="list-chrome-row"][data-row="tail"] {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { JSXChild, TemplateResult } from '@ketvietlab/ketjs-view';
|
|
2
|
-
export declare const HOOKS: readonly ['modal-layer', 'modal-backdrop', 'modal-sheet', 'modal-head', 'modal-heading', 'modal-title', 'modal-description', 'modal-close', 'modal-body', 'modal-actions'];
|
|
2
|
+
export declare const HOOKS: readonly ['modal-layer', 'modal-backdrop', 'modal-sheet', 'modal-head', 'modal-heading', 'modal-title-row', 'modal-title', 'modal-description', 'modal-close', 'modal-body', 'modal-actions'];
|
|
3
3
|
export declare const ModalSheet: (props: {
|
|
4
4
|
id: string;
|
|
5
5
|
title: string;
|
|
@@ -8,9 +8,31 @@ export declare const ModalSheet: (props: {
|
|
|
8
8
|
closeHref?: string;
|
|
9
9
|
closeLabel: string;
|
|
10
10
|
description?: string | null;
|
|
11
|
+
/**
|
|
12
|
+
* What state the thing in this dialog is in, beside its title — a badge, not a
|
|
13
|
+
* sentence. It belongs to the heading, so it stays put when the body scrolls
|
|
14
|
+
* and is read out with the title rather than after it.
|
|
15
|
+
*/
|
|
16
|
+
status?: JSXChild;
|
|
11
17
|
actions?: JSXChild;
|
|
12
18
|
presentation?: 'sheet' | 'dialog';
|
|
13
19
|
size?: 'default' | 'large';
|
|
20
|
+
/**
|
|
21
|
+
* `content` (default) lets a dialog grow with its body up to the viewport cap. `fixed`
|
|
22
|
+
* holds the dialog at that cap so switching between tabs of different heights does not
|
|
23
|
+
* resize it; the body scrolls inside while the head stays put.
|
|
24
|
+
*/
|
|
25
|
+
height?: 'content' | 'fixed';
|
|
26
|
+
/**
|
|
27
|
+
* Overrides `fixed`'s height (default: the viewport cap, `100dvh` minus a margin —
|
|
28
|
+
* tall on most screens). A CSS length or `calc()`/`min()` expression, for a dialog
|
|
29
|
+
* whose own content is shorter than the viewport and would otherwise sit in a mostly
|
|
30
|
+
* empty frame. Set inline with `!important`, not as a plain CSS rule: a legacy
|
|
31
|
+
* admin stylesheet (`packages/ketsuite/src/modules/backend/design/forms.css`)
|
|
32
|
+
* still targets these same `data-ui` hooks at equal specificity and would
|
|
33
|
+
* otherwise win the cascade by loading later. Ignored when `height` isn't `fixed`.
|
|
34
|
+
*/
|
|
35
|
+
fixedHeight?: string;
|
|
14
36
|
/**
|
|
15
37
|
* `overlay` is URL-owned: its close controls are links the route runtime
|
|
16
38
|
* follows. `client` belongs to a modal island that opens and closes it in the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/patterns/modal-sheet/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEtE,eAAO,MAAM,KAAK,YAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,eAAe,CACP,CAAA;AAEV,eAAO,MAAM,UAAU,UAAW;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,QAAQ,CAAA;IACd,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACjC,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IAC1B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAA;IACxC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B,KAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/patterns/modal-sheet/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEtE,eAAO,MAAM,KAAK,YAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,eAAe,CACP,CAAA;AAEV,eAAO,MAAM,UAAU,UAAW;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,QAAQ,CAAA;IACd,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACjC,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IAC5B;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAA;IACxC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B,KAAG,cAwEH,CAAA"}
|
|
@@ -5,6 +5,7 @@ export const HOOKS = [
|
|
|
5
5
|
'modal-sheet',
|
|
6
6
|
'modal-head',
|
|
7
7
|
'modal-heading',
|
|
8
|
+
'modal-title-row',
|
|
8
9
|
'modal-title',
|
|
9
10
|
'modal-description',
|
|
10
11
|
'modal-close',
|
|
@@ -14,6 +15,6 @@ export const HOOKS = [
|
|
|
14
15
|
export const ModalSheet = (props) => {
|
|
15
16
|
const client = props.mode === 'client';
|
|
16
17
|
const embedded = props.mode === 'embedded';
|
|
17
|
-
return (_jsxs("div", { "data-ui": "modal-layer", "data-mode": props.mode ?? 'overlay', "data-route-modal": embedded || client ? null : 'true', "data-client-modal": client ? 'true' : null, "data-presentation": props.presentation ?? 'sheet', "data-unsaved-prompt": props.unsavedPrompt ?? null, children: [client ? (_jsx("button", { "data-ui": "modal-backdrop", type: "button", "aria-label": props.closeLabel, tabindex: "-1", children: _jsx("span", { children: props.closeLabel }) })) : (_jsx("a", { "data-ui": "modal-backdrop", href: props.closeHref ?? '#', "aria-label": props.closeLabel, children: _jsx("span", { children: props.closeLabel }) })), _jsxs("section", { id: props.id, "data-ui": "modal-sheet", "data-size": props.size ?? 'default', role: "dialog", "aria-modal": embedded ? 'false' : 'true', "aria-labelledby": `${props.id}-title`, "aria-describedby": props.description ? `${props.id}-description` : null, tabindex: embedded ? null : '-1', children: [_jsxs("header", { "data-ui": "modal-head", children: [_jsxs("div", { "data-ui": "modal-heading", children: [_jsx("h2", { "data-ui": "modal-title", id: `${props.id}-title`, children: props.title }), !!props.description && (_jsx("p", { "data-ui": "modal-description", id: `${props.id}-description`, children: props.description }))] }), client ? (_jsx("button", { "data-ui": "modal-close", type: "button", "aria-label": props.closeLabel, title: props.closeLabel, children: "\u00D7" })) : (_jsx("a", { "data-ui": "modal-close", href: props.closeHref ?? '#', "aria-label": props.closeLabel, title: props.closeLabel, children: "\u00D7" }))] }), _jsx("div", { "data-ui": "modal-body", children: props.body }), props.actions !== undefined && _jsx("footer", { "data-ui": "modal-actions", children: props.actions })] })] }));
|
|
18
|
+
return (_jsxs("div", { "data-ui": "modal-layer", "data-mode": props.mode ?? 'overlay', "data-route-modal": embedded || client ? null : 'true', "data-client-modal": client ? 'true' : null, "data-presentation": props.presentation ?? 'sheet', "data-unsaved-prompt": props.unsavedPrompt ?? null, children: [client ? (_jsx("button", { "data-ui": "modal-backdrop", type: "button", "aria-label": props.closeLabel, tabindex: "-1", children: _jsx("span", { children: props.closeLabel }) })) : (_jsx("a", { "data-ui": "modal-backdrop", href: props.closeHref ?? '#', "aria-label": props.closeLabel, children: _jsx("span", { children: props.closeLabel }) })), _jsxs("section", { id: props.id, "data-ui": "modal-sheet", "data-size": props.size ?? 'default', "data-height": props.height === 'fixed' ? 'fixed' : null, style: props.height === 'fixed' && props.fixedHeight ? `height: ${props.fixedHeight} !important` : '', role: "dialog", "aria-modal": embedded ? 'false' : 'true', "aria-labelledby": `${props.id}-title`, "aria-describedby": props.description ? `${props.id}-description` : null, tabindex: embedded ? null : '-1', children: [_jsxs("header", { "data-ui": "modal-head", children: [_jsxs("div", { "data-ui": "modal-heading", children: [_jsxs("div", { "data-ui": "modal-title-row", children: [_jsx("h2", { "data-ui": "modal-title", id: `${props.id}-title`, children: props.title }), props.status !== undefined && props.status] }), !!props.description && (_jsx("p", { "data-ui": "modal-description", id: `${props.id}-description`, children: props.description }))] }), client ? (_jsx("button", { "data-ui": "modal-close", type: "button", "aria-label": props.closeLabel, title: props.closeLabel, children: "\u00D7" })) : (_jsx("a", { "data-ui": "modal-close", href: props.closeHref ?? '#', "aria-label": props.closeLabel, title: props.closeLabel, children: "\u00D7" }))] }), _jsx("div", { "data-ui": "modal-body", children: props.body }), props.actions !== undefined && _jsx("footer", { "data-ui": "modal-actions", children: props.actions })] })] }));
|
|
18
19
|
};
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/patterns/modal-sheet/index.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,eAAe;IACf,aAAa;IACb,mBAAmB;IACnB,aAAa;IACb,YAAY;IACZ,eAAe;CACP,CAAA;AAEV,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/patterns/modal-sheet/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -90,6 +90,13 @@
|
|
|
90
90
|
height: auto;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
/* A tabbed dialog keeps one height so switching tabs never resizes it; the body scrolls. */
|
|
94
|
+
:where([data-kv-design-system])
|
|
95
|
+
[data-ui="modal-layer"][data-presentation="dialog"]
|
|
96
|
+
[data-ui="modal-sheet"][data-height="fixed"] {
|
|
97
|
+
height: calc(100dvh - var(--kv-space-12));
|
|
98
|
+
}
|
|
99
|
+
|
|
93
100
|
:where([data-kv-design-system]) [data-ui="modal-layer"][data-mode="embedded"] [data-ui="modal-sheet"] {
|
|
94
101
|
width: min(34rem, 100%);
|
|
95
102
|
height: auto;
|
|
@@ -115,6 +122,14 @@
|
|
|
115
122
|
gap: var(--kv-space-1);
|
|
116
123
|
}
|
|
117
124
|
|
|
125
|
+
/* The title and what state its record is in read as one line. */
|
|
126
|
+
:where([data-kv-design-system]) [data-ui="modal-title-row"] {
|
|
127
|
+
display: flex;
|
|
128
|
+
min-width: 0;
|
|
129
|
+
align-items: center;
|
|
130
|
+
gap: var(--kv-space-2);
|
|
131
|
+
}
|
|
132
|
+
|
|
118
133
|
:where([data-kv-design-system]) [data-ui="modal-title"] {
|
|
119
134
|
min-width: 0;
|
|
120
135
|
margin: 0;
|
|
@@ -141,11 +156,15 @@
|
|
|
141
156
|
width: 2rem;
|
|
142
157
|
height: 2rem;
|
|
143
158
|
place-items: center;
|
|
159
|
+
appearance: none;
|
|
160
|
+
border: none;
|
|
144
161
|
border-radius: 50%;
|
|
162
|
+
background: none;
|
|
145
163
|
color: var(--kv-color-ink-muted);
|
|
146
164
|
font-size: 1.4rem;
|
|
147
165
|
line-height: 1;
|
|
148
166
|
text-decoration: none;
|
|
167
|
+
cursor: pointer;
|
|
149
168
|
}
|
|
150
169
|
|
|
151
170
|
:where([data-kv-design-system]) [data-ui="modal-close"]:hover {
|
|
@@ -160,6 +179,12 @@
|
|
|
160
179
|
overscroll-behavior: contain;
|
|
161
180
|
}
|
|
162
181
|
|
|
182
|
+
/* TabbedView owns the scroll container so its navigation stays visible. */
|
|
183
|
+
:where([data-kv-design-system]) [data-ui="modal-body"]:has(> [data-ui="tabbed-view"]) {
|
|
184
|
+
min-height: 0;
|
|
185
|
+
overflow: hidden;
|
|
186
|
+
}
|
|
187
|
+
|
|
163
188
|
:where([data-kv-design-system]) [data-ui="modal-actions"] {
|
|
164
189
|
display: flex;
|
|
165
190
|
flex-wrap: wrap;
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
@layer ket.app {
|
|
2
|
+
/*
|
|
3
|
+
* One line by default — an icon, then title and message flowing together as
|
|
4
|
+
* a single sentence ("Saved: the change is in."), not a heading over a
|
|
5
|
+
* paragraph. `notice-copy` wraps on its own when a message is genuinely too
|
|
6
|
+
* long for the width available, so nothing is lost for a longer error list;
|
|
7
|
+
* it just stops reading as "one line" for that one case.
|
|
8
|
+
*/
|
|
2
9
|
:where([data-kv-design-system]) [data-ui="notice"][data-pattern="notice"] {
|
|
3
|
-
display:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
padding: var(--kv-space-
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-wrap: wrap;
|
|
12
|
+
align-items: center;
|
|
13
|
+
gap: var(--kv-space-1) var(--kv-space-2);
|
|
14
|
+
padding: var(--kv-space-2) var(--kv-space-3);
|
|
8
15
|
border: 1px solid var(--kv-color-line);
|
|
9
16
|
border-left: 3px solid var(--kv-color-info);
|
|
10
17
|
border-radius: var(--kv-radius-sm);
|
|
@@ -28,15 +35,16 @@
|
|
|
28
35
|
|
|
29
36
|
:where([data-kv-design-system]) [data-ui="notice"][data-pattern="notice"] [data-ui="notice-mark"] {
|
|
30
37
|
display: inline-flex;
|
|
31
|
-
|
|
32
|
-
|
|
38
|
+
flex: none;
|
|
39
|
+
width: 1rem;
|
|
40
|
+
height: 1rem;
|
|
33
41
|
align-items: center;
|
|
34
42
|
color: var(--kv-color-info);
|
|
35
43
|
}
|
|
36
44
|
|
|
37
45
|
:where([data-kv-design-system]) [data-ui="notice"][data-pattern="notice"] [data-ui="notice-mark"] svg {
|
|
38
|
-
width:
|
|
39
|
-
height:
|
|
46
|
+
width: 1rem;
|
|
47
|
+
height: 1rem;
|
|
40
48
|
}
|
|
41
49
|
|
|
42
50
|
:where([data-kv-design-system])
|
|
@@ -58,24 +66,36 @@
|
|
|
58
66
|
}
|
|
59
67
|
|
|
60
68
|
:where([data-kv-design-system]) [data-ui="notice"][data-pattern="notice"] [data-ui="notice-copy"] {
|
|
69
|
+
display: flex;
|
|
70
|
+
flex: 1 1 auto;
|
|
71
|
+
flex-wrap: wrap;
|
|
72
|
+
align-items: baseline;
|
|
73
|
+
column-gap: 0.3em;
|
|
61
74
|
min-width: 0;
|
|
62
75
|
}
|
|
63
76
|
|
|
64
77
|
:where([data-kv-design-system]) [data-ui="notice"][data-pattern="notice"] [data-ui="notice-title"] {
|
|
65
|
-
margin
|
|
66
|
-
|
|
78
|
+
margin: 0;
|
|
79
|
+
color: var(--kv-color-ink);
|
|
80
|
+
font-size: var(--kv-text-sm);
|
|
67
81
|
font-weight: var(--kv-weight-semibold);
|
|
68
82
|
line-height: var(--kv-leading-normal);
|
|
69
83
|
}
|
|
70
84
|
|
|
85
|
+
:where([data-kv-design-system]) [data-ui="notice"][data-pattern="notice"] [data-ui="notice-title"]::after {
|
|
86
|
+
content: ":";
|
|
87
|
+
}
|
|
88
|
+
|
|
71
89
|
:where([data-kv-design-system]) [data-ui="notice"][data-pattern="notice"] [data-ui="notice-message"] {
|
|
72
|
-
margin
|
|
90
|
+
margin: 0;
|
|
73
91
|
color: var(--kv-color-ink-secondary);
|
|
74
92
|
font-size: var(--kv-text-sm);
|
|
93
|
+
line-height: var(--kv-leading-normal);
|
|
75
94
|
}
|
|
76
95
|
|
|
77
96
|
:where([data-kv-design-system]) [data-ui="notice"][data-pattern="notice"] [data-ui="notice-actions"] {
|
|
78
|
-
|
|
97
|
+
flex: none;
|
|
98
|
+
margin-left: auto;
|
|
79
99
|
}
|
|
80
100
|
|
|
81
101
|
:where([data-kv-design-system]) [data-ui="empty"] {
|
|
@@ -131,12 +151,11 @@
|
|
|
131
151
|
}
|
|
132
152
|
|
|
133
153
|
@media (max-width: 42rem) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
154
|
+
/* Flex-wrap already reflows icon/copy/actions onto their own lines as
|
|
155
|
+
needed; only the auto margin — meant to pin actions to the far end of
|
|
156
|
+
a shared row — needs to give way once actions wrap onto a row alone. */
|
|
138
157
|
:where([data-kv-design-system]) [data-ui="notice"][data-pattern="notice"] [data-ui="notice-actions"] {
|
|
139
|
-
|
|
158
|
+
margin-left: 0;
|
|
140
159
|
}
|
|
141
160
|
}
|
|
142
161
|
}
|
|
@@ -27,6 +27,11 @@ export type FieldProps = {
|
|
|
27
27
|
help?: string | null;
|
|
28
28
|
error?: string | null;
|
|
29
29
|
options?: readonly FieldOption[];
|
|
30
|
+
/**
|
|
31
|
+
* How checkbox-group and radio options flow. `horizontal` (default) wraps them on a line; `vertical` lists
|
|
32
|
+
* one option per line under the shared label, for choices whose labels should scan as a column.
|
|
33
|
+
*/
|
|
34
|
+
optionsOrientation?: 'horizontal' | 'vertical';
|
|
30
35
|
span?: 'half' | 'full';
|
|
31
36
|
step?: string | null;
|
|
32
37
|
autocomplete?: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/primitives/field/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAItE,eAAO,MAAM,KAAK,YAChB,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,aAAa,CACL,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AACD,MAAM,MAAM,UAAU,GAAG;IACvB,yEAAyE;IACzE,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAA;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,IAAI,CAAC,EACD,MAAM,GACN,OAAO,GACP,KAAK,GACL,QAAQ,GACR,SAAS,GACT,UAAU,GACV,MAAM,GACN,OAAO,GACP,MAAM,GACN,gBAAgB,GAChB,OAAO,GACP,MAAM,GACN,QAAQ,GACR,UAAU,GACV,UAAU,GACV,gBAAgB,GAChB,OAAO,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B,CAAA;AAID,eAAO,MAAM,KAAK,UAAW,UAAU,KAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/primitives/field/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAItE,eAAO,MAAM,KAAK,YAChB,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,aAAa,CACL,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AACD,MAAM,MAAM,UAAU,GAAG;IACvB,yEAAyE;IACzE,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAA;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,IAAI,CAAC,EACD,MAAM,GACN,OAAO,GACP,KAAK,GACL,QAAQ,GACR,SAAS,GACT,UAAU,GACV,MAAM,GACN,OAAO,GACP,MAAM,GACN,gBAAgB,GAChB,OAAO,GACP,MAAM,GACN,QAAQ,GACR,UAAU,GACV,UAAU,GACV,gBAAgB,GAChB,OAAO,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IAChC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B,CAAA;AAID,eAAO,MAAM,KAAK,UAAW,UAAU,KAAG,cA0LzC,CAAA"}
|
|
@@ -26,9 +26,9 @@ export const Field = (props) => {
|
|
|
26
26
|
readOnly: props.readOnly || field.readOnly,
|
|
27
27
|
})), (field) => field.id, (field) => (_jsx(Field, { ...field }))) }) }), !!props.help && (_jsx("small", { "data-ui": "field-help", id: helpId ?? undefined, children: props.help })), !!props.error && (_jsx("small", { "data-ui": "field-error", id: errorId ?? undefined, children: props.error }))] }));
|
|
28
28
|
if (props.type === 'checkbox-group')
|
|
29
|
-
return (_jsxs("div", { "data-ui": "field", "data-kind": "checkbox-group", "data-span": props.span ?? 'half', "data-invalid": String(!!props.error), children: [_jsxs("span", { "data-ui": "field-label", id: `${props.id}-label`, children: [props.label, props.required && (_jsx("span", { "data-ui": "field-required", "aria-hidden": "true", children: ' *' }))] }), _jsx("div", { "data-ui": "field-options", role: "group", "aria-labelledby": `${props.id}-label`, children: each(props.options ?? [], (option) => option.name ?? option.value, (option) => (_jsxs("label", { "data-ui": "field-option", children: [_jsx("input", { "data-ui": "field-option-input", type: "checkbox", name: option.name ?? `${props.name}[]`, value: option.value, checked: option.checked === true, disabled: props.disabled === true || option.disabled === true, "aria-invalid": props.error ? 'true' : null, "aria-describedby": describedBy, autocomplete: "off" }), _jsx("span", { children: option.label })] }))) }), !!props.help && (_jsx("small", { "data-ui": "field-help", id: helpId ?? undefined, children: props.help })), !!props.error && (_jsx("small", { "data-ui": "field-error", id: errorId ?? undefined, children: props.error }))] }));
|
|
29
|
+
return (_jsxs("div", { "data-ui": "field", "data-kind": "checkbox-group", "data-span": props.span ?? 'half', "data-invalid": String(!!props.error), children: [_jsxs("span", { "data-ui": "field-label", id: `${props.id}-label`, children: [props.label, props.required && (_jsx("span", { "data-ui": "field-required", "aria-hidden": "true", children: ' *' }))] }), _jsx("div", { "data-ui": "field-options", "data-orientation": props.optionsOrientation === 'vertical' ? 'vertical' : null, role: "group", "aria-labelledby": `${props.id}-label`, children: each(props.options ?? [], (option) => option.name ?? option.value, (option) => (_jsxs("label", { "data-ui": "field-option", children: [_jsx("input", { "data-ui": "field-option-input", type: "checkbox", name: option.name ?? `${props.name}[]`, value: option.value, checked: option.checked === true, disabled: props.disabled === true || option.disabled === true, "aria-invalid": props.error ? 'true' : null, "aria-describedby": describedBy, autocomplete: "off" }), _jsx("span", { children: option.label })] }))) }), !!props.help && (_jsx("small", { "data-ui": "field-help", id: helpId ?? undefined, children: props.help })), !!props.error && (_jsx("small", { "data-ui": "field-error", id: errorId ?? undefined, children: props.error }))] }));
|
|
30
30
|
if (props.type === 'radio')
|
|
31
|
-
return (_jsxs("div", { "data-ui": "field", "data-kind": "radio", "data-span": props.span ?? 'half', "data-invalid": String(!!props.error), children: [_jsxs("span", { "data-ui": "field-label", id: `${props.id}-label`, children: [props.label, props.required && (_jsx("span", { "data-ui": "field-required", "aria-hidden": "true", children: ' *' }))] }), _jsx("div", { "data-ui": "field-options", role: "radiogroup", "aria-labelledby": `${props.id}-label`, children: each(props.options ?? [], (option) => option.value, (option) => (_jsxs("label", { "data-ui": "field-option", children: [_jsx("input", { "data-ui": "field-option-input", type: "radio", name: props.name, value: option.value, checked: String(props.value ?? '') === option.value, required: props.required === true, disabled: props.disabled === true || option.disabled === true, "aria-invalid": props.error ? 'true' : null, "aria-describedby": describedBy, autocomplete: "off" }), _jsx("span", { children: option.label })] }))) }), !!props.help && (_jsx("small", { "data-ui": "field-help", id: helpId ?? undefined, children: props.help })), !!props.error && (_jsx("small", { "data-ui": "field-error", id: errorId ?? undefined, children: props.error }))] }));
|
|
31
|
+
return (_jsxs("div", { "data-ui": "field", "data-kind": "radio", "data-span": props.span ?? 'half', "data-invalid": String(!!props.error), children: [_jsxs("span", { "data-ui": "field-label", id: `${props.id}-label`, children: [props.label, props.required && (_jsx("span", { "data-ui": "field-required", "aria-hidden": "true", children: ' *' }))] }), _jsx("div", { "data-ui": "field-options", "data-orientation": props.optionsOrientation === 'vertical' ? 'vertical' : null, role: "radiogroup", "aria-labelledby": `${props.id}-label`, children: each(props.options ?? [], (option) => option.value, (option) => (_jsxs("label", { "data-ui": "field-option", children: [_jsx("input", { "data-ui": "field-option-input", type: "radio", name: props.name, value: option.value, checked: String(props.value ?? '') === option.value, required: props.required === true, disabled: props.disabled === true || option.disabled === true, "aria-invalid": props.error ? 'true' : null, "aria-describedby": describedBy, autocomplete: "off" }), _jsx("span", { children: option.label })] }))) }), !!props.help && (_jsx("small", { "data-ui": "field-help", id: helpId ?? undefined, children: props.help })), !!props.error && (_jsx("small", { "data-ui": "field-error", id: errorId ?? undefined, children: props.error }))] }));
|
|
32
32
|
return (_jsxs("label", { "data-ui": "field", "data-kind": props.type ?? 'text', "data-span": props.span ?? 'half', "data-invalid": String(!!props.error), for: props.id, children: [props.type === 'checkbox' && NativeFieldControl(props, describedBy), label, props.type !== 'checkbox' && NativeFieldControl(props, describedBy), !!props.help && (_jsx("small", { "data-ui": "field-help", id: helpId ?? undefined, children: props.help })), !!props.error && (_jsx("small", { "data-ui": "field-error", id: errorId ?? undefined, children: props.error }))] }));
|
|
33
33
|
};
|
|
34
34
|
//# sourceMappingURL=index.js.map
|