@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.
Files changed (52) hide show
  1. package/README.md +30 -1
  2. package/dist/catalogue/index.js +1 -1
  3. package/dist/catalogue/inventory-policy.json +7 -0
  4. package/dist/catalogue/inventory.css +7 -7
  5. package/dist/catalogue/inventory.generated.js +1 -1
  6. package/dist/catalogue/inventory.generated.js.map +1 -1
  7. package/dist/catalogue/inventory.generated.json +431 -144
  8. package/dist/catalogue/registry.d.ts.map +1 -1
  9. package/dist/catalogue/registry.js +3 -0
  10. package/dist/catalogue/registry.js.map +1 -1
  11. package/dist/catalogue/specimens.d.ts.map +1 -1
  12. package/dist/catalogue/specimens.js +16 -3
  13. package/dist/catalogue/specimens.js.map +1 -1
  14. package/dist/foundations/tokens.css +14 -10
  15. package/dist/index.d.ts +2 -2
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/interactions/menu/index.d.ts +28 -1
  20. package/dist/interactions/menu/index.d.ts.map +1 -1
  21. package/dist/interactions/menu/index.js +16 -13
  22. package/dist/interactions/menu/index.js.map +1 -1
  23. package/dist/interactions/menu/styles.css +53 -1
  24. package/dist/layouts/app-navigation/styles.css +9 -0
  25. package/dist/patterns/data-table/styles.css +15 -2
  26. package/dist/patterns/list-chrome/index.d.ts +6 -1
  27. package/dist/patterns/list-chrome/index.d.ts.map +1 -1
  28. package/dist/patterns/list-chrome/index.js +5 -1
  29. package/dist/patterns/list-chrome/index.js.map +1 -1
  30. package/dist/patterns/list-chrome/styles.css +9 -0
  31. package/dist/patterns/modal-sheet/index.d.ts +23 -1
  32. package/dist/patterns/modal-sheet/index.d.ts.map +1 -1
  33. package/dist/patterns/modal-sheet/index.js +2 -1
  34. package/dist/patterns/modal-sheet/index.js.map +1 -1
  35. package/dist/patterns/modal-sheet/styles.css +25 -0
  36. package/dist/primitives/feedback/styles.css +37 -18
  37. package/dist/primitives/field/index.d.ts +5 -0
  38. package/dist/primitives/field/index.d.ts.map +1 -1
  39. package/dist/primitives/field/index.js +2 -2
  40. package/dist/primitives/field/index.js.map +1 -1
  41. package/dist/primitives/field/styles.css +8 -0
  42. package/dist/primitives/navigation/index.d.ts +36 -3
  43. package/dist/primitives/navigation/index.d.ts.map +1 -1
  44. package/dist/primitives/navigation/index.js +18 -1
  45. package/dist/primitives/navigation/index.js.map +1 -1
  46. package/dist/primitives/navigation/styles.css +27 -0
  47. package/dist/runtime/index.d.ts +1 -8
  48. package/dist/runtime/index.d.ts.map +1 -1
  49. package/dist/runtime/index.js +19 -0
  50. package/dist/runtime/index.js.map +1 -1
  51. package/dist/styles.css +1 -1
  52. 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: [_jsx("summary", { "data-ui": "menu-trigger", "aria-haspopup": "menu", "aria-controls": `${props.id}-panel`, children: props.trigger ?? props.label }), _jsx("div", { "data-ui": "menu-panel", id: `${props.id}-panel`, role: "menu", "aria-label": props.label, children: each(props.items, (item) => item.id, (item) => {
16
- if (item.kind === 'separator')
17
- return _jsx("hr", { "data-ui": "menu-separator" });
18
- if (item.kind === 'label')
19
- return (_jsx("span", { "data-ui": "menu-label", role: "presentation", children: item.label }));
20
- const role = item.checked === undefined ? 'menuitem' : 'menuitemcheckbox';
21
- 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 })] }));
22
- if (item.disabled)
23
- 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 }));
24
- if (item.href)
25
- 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 }));
26
- 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 }));
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/interactions/menu/index.tsx"],"names":[],"mappings":"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"}
@@ -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: 1rem;
83
- height: 1rem;
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 = (props.facets?.length ?? 0) > 0 || (props.views?.length ?? 0) > 0 || props.sort ? (_jsxs("div", { "data-ui": "list-chrome-row", "data-row": "filters", children: [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
+ 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":"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"}
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,cAmEH,CAAA"}
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,KAmB1B,EAAkB,EAAE;IACnB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAA;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,UAAU,CAAA;IAC1C,OAAO,CACL,0BACU,aAAa,eACV,KAAK,CAAC,IAAI,IAAI,SAAS,sBAChB,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,uBACjC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,uBACtB,KAAK,CAAC,YAAY,IAAI,OAAO,yBAC3B,KAAK,CAAC,aAAa,IAAI,IAAI,aAE/C,MAAM,CAAC,CAAC,CAAC,CACR,4BAAgB,gBAAgB,EAAC,IAAI,EAAC,QAAQ,gBAAa,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAC,IAAI,YACxF,yBAAO,KAAK,CAAC,UAAU,GAAQ,GACxB,CACV,CAAC,CAAC,CAAC,CACF,uBAAW,gBAAgB,EAAC,IAAI,EAAE,KAAK,CAAC,SAAS,IAAI,GAAG,gBAAc,KAAK,CAAC,UAAU,YACpF,yBAAO,KAAK,CAAC,UAAU,GAAQ,GAC7B,CACL,EACD,mBACE,EAAE,EAAE,KAAK,CAAC,EAAE,aACJ,aAAa,eACV,KAAK,CAAC,IAAI,IAAI,SAAS,EAClC,IAAI,EAAC,QAAQ,gBACD,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,qBACtB,GAAG,KAAK,CAAC,EAAE,QAAQ,sBAClB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,EACtE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,aAEhC,6BAAgB,YAAY,aAC1B,0BAAa,eAAe,aAC1B,wBAAY,aAAa,EAAC,EAAE,EAAE,GAAG,KAAK,CAAC,EAAE,QAAQ,YAC9C,KAAK,CAAC,KAAK,GACT,EACJ,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,CACtB,uBAAW,mBAAmB,EAAC,EAAE,EAAE,GAAG,KAAK,CAAC,EAAE,cAAc,YACzD,KAAK,CAAC,WAAW,GAChB,CACL,IACG,EACL,MAAM,CAAC,CAAC,CAAC,CACR,4BACU,aAAa,EACrB,IAAI,EAAC,QAAQ,gBACD,KAAK,CAAC,UAAU,EAC5B,KAAK,EAAE,KAAK,CAAC,UAAU,uBAGhB,CACV,CAAC,CAAC,CAAC,CACF,uBACU,aAAa,EACrB,IAAI,EAAE,KAAK,CAAC,SAAS,IAAI,GAAG,gBAChB,KAAK,CAAC,UAAU,EAC5B,KAAK,EAAE,KAAK,CAAC,UAAU,uBAGrB,CACL,IACM,EACT,yBAAa,YAAY,YAAE,KAAK,CAAC,IAAI,GAAO,EAC3C,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,4BAAgB,eAAe,YAAE,KAAK,CAAC,OAAO,GAAU,IAChF,IACN,CACP,CAAA;AACH,CAAC,CAAA"}
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: grid;
4
- grid-template-columns: auto minmax(0, 1fr) auto;
5
- gap: var(--kv-space-3);
6
- align-items: start;
7
- padding: var(--kv-space-3) var(--kv-space-4);
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
- width: 1.25rem;
32
- height: calc(var(--kv-text-base) * var(--kv-leading-normal));
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: 1.25rem;
39
- height: 1.25rem;
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-bottom: var(--kv-space-1);
66
- font-size: var(--kv-text-base);
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-bottom: 0;
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
- align-self: center;
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
- :where([data-kv-design-system]) [data-ui="notice"][data-pattern="notice"] {
135
- grid-template-columns: auto minmax(0, 1fr);
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
- grid-column: 1 / -1;
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,cAgLzC,CAAA"}
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