@xeonr/platform-ui 1.5.1 → 1.6.1

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 (94) hide show
  1. package/dist/index.d.ts +12 -5
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +12 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/kit/Anchored.d.ts.map +1 -1
  6. package/dist/kit/Anchored.js +4 -1
  7. package/dist/kit/Anchored.js.map +1 -1
  8. package/dist/kit/Blocks.d.ts +6 -1
  9. package/dist/kit/Blocks.d.ts.map +1 -1
  10. package/dist/kit/Blocks.js +13 -2
  11. package/dist/kit/Blocks.js.map +1 -1
  12. package/dist/kit/Card.d.ts +6 -1
  13. package/dist/kit/Card.d.ts.map +1 -1
  14. package/dist/kit/Card.js +19 -4
  15. package/dist/kit/Card.js.map +1 -1
  16. package/dist/kit/Charts.d.ts +39 -3
  17. package/dist/kit/Charts.d.ts.map +1 -1
  18. package/dist/kit/Charts.js +70 -15
  19. package/dist/kit/Charts.js.map +1 -1
  20. package/dist/kit/CommandPalette.d.ts +47 -0
  21. package/dist/kit/CommandPalette.d.ts.map +1 -0
  22. package/dist/kit/CommandPalette.js +204 -0
  23. package/dist/kit/CommandPalette.js.map +1 -0
  24. package/dist/kit/DataTable.d.ts +18 -2
  25. package/dist/kit/DataTable.d.ts.map +1 -1
  26. package/dist/kit/DataTable.js +45 -6
  27. package/dist/kit/DataTable.js.map +1 -1
  28. package/dist/kit/Editable.d.ts +30 -0
  29. package/dist/kit/Editable.d.ts.map +1 -1
  30. package/dist/kit/Editable.js +150 -3
  31. package/dist/kit/Editable.js.map +1 -1
  32. package/dist/kit/EmptyState.d.ts +9 -2
  33. package/dist/kit/EmptyState.d.ts.map +1 -1
  34. package/dist/kit/EmptyState.js +16 -2
  35. package/dist/kit/EmptyState.js.map +1 -1
  36. package/dist/kit/GroupedMultiSelect.d.ts +57 -0
  37. package/dist/kit/GroupedMultiSelect.d.ts.map +1 -0
  38. package/dist/kit/GroupedMultiSelect.js +219 -0
  39. package/dist/kit/GroupedMultiSelect.js.map +1 -0
  40. package/dist/kit/List.d.ts +18 -1
  41. package/dist/kit/List.d.ts.map +1 -1
  42. package/dist/kit/List.js +38 -10
  43. package/dist/kit/List.js.map +1 -1
  44. package/dist/kit/LogView.d.ts +39 -3
  45. package/dist/kit/LogView.d.ts.map +1 -1
  46. package/dist/kit/LogView.js +52 -10
  47. package/dist/kit/LogView.js.map +1 -1
  48. package/dist/kit/Marker.d.ts +19 -0
  49. package/dist/kit/Marker.d.ts.map +1 -1
  50. package/dist/kit/Marker.js +50 -0
  51. package/dist/kit/Marker.js.map +1 -1
  52. package/dist/kit/Modal.d.ts +13 -3
  53. package/dist/kit/Modal.d.ts.map +1 -1
  54. package/dist/kit/Modal.js +39 -9
  55. package/dist/kit/Modal.js.map +1 -1
  56. package/dist/kit/Panel.d.ts +21 -0
  57. package/dist/kit/Panel.d.ts.map +1 -1
  58. package/dist/kit/Panel.js +36 -0
  59. package/dist/kit/Panel.js.map +1 -1
  60. package/dist/kit/PipelineFlow.d.ts +44 -0
  61. package/dist/kit/PipelineFlow.d.ts.map +1 -0
  62. package/dist/kit/PipelineFlow.js +215 -0
  63. package/dist/kit/PipelineFlow.js.map +1 -0
  64. package/dist/kit/Popover.d.ts.map +1 -1
  65. package/dist/kit/Popover.js +4 -1
  66. package/dist/kit/Popover.js.map +1 -1
  67. package/dist/kit/Reorder.d.ts +54 -0
  68. package/dist/kit/Reorder.d.ts.map +1 -0
  69. package/dist/kit/Reorder.js +171 -0
  70. package/dist/kit/Reorder.js.map +1 -0
  71. package/dist/kit/Stat.d.ts +38 -5
  72. package/dist/kit/Stat.d.ts.map +1 -1
  73. package/dist/kit/Stat.js +99 -11
  74. package/dist/kit/Stat.js.map +1 -1
  75. package/dist/kit/Tooltip.d.ts.map +1 -1
  76. package/dist/kit/Tooltip.js +5 -2
  77. package/dist/kit/Tooltip.js.map +1 -1
  78. package/dist/theme/ThemeScope.d.ts +30 -0
  79. package/dist/theme/ThemeScope.d.ts.map +1 -0
  80. package/dist/theme/ThemeScope.js +61 -0
  81. package/dist/theme/ThemeScope.js.map +1 -0
  82. package/dist/theme/brand.d.ts +2 -1
  83. package/dist/theme/brand.d.ts.map +1 -1
  84. package/dist/theme/brand.js +10 -6
  85. package/dist/theme/brand.js.map +1 -1
  86. package/dist/theme/scope.d.ts +23 -0
  87. package/dist/theme/scope.d.ts.map +1 -0
  88. package/dist/theme/scope.js +32 -0
  89. package/dist/theme/scope.js.map +1 -0
  90. package/dist/theme/tokens.d.ts +2 -1
  91. package/dist/theme/tokens.d.ts.map +1 -1
  92. package/dist/theme/tokens.js +65 -100
  93. package/dist/theme/tokens.js.map +1 -1
  94. package/package.json +1 -1
@@ -39,4 +39,23 @@ export declare function PersonChip({ name, email, avatarUrl, size, nameless, emp
39
39
  }): import("react").JSX.Element;
40
40
  /** initials: the one or two letters that stand in for a name or an address. */
41
41
  export declare function initials(name: string): string;
42
+ export interface AvatarStackPerson {
43
+ name?: string | undefined;
44
+ email?: string | undefined;
45
+ avatarUrl?: string | undefined;
46
+ }
47
+ /**
48
+ * AvatarStack: who, several at once — overlapping avatars (picture, else
49
+ * initials) with the surplus past `max` folded into a "+N". It is a single
50
+ * image to assistive tech, labelled with the names (or `label`); hovering an
51
+ * avatar shows that person.
52
+ */
53
+ export declare function AvatarStack({ people, max, size, label }: {
54
+ people: AvatarStackPerson[];
55
+ /** avatars shown before the rest become "+N" */
56
+ max?: number | undefined;
57
+ size?: number | undefined;
58
+ /** the accessible label; defaults to the names, "Ann, Bo and 3 more" */
59
+ label?: string | undefined;
60
+ }): import("react").JSX.Element | null;
42
61
  //# sourceMappingURL=Marker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Marker.d.ts","sourceRoot":"","sources":["../../src/kit/Marker.tsx"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,IAAS,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IACxD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,+BAEA;AAmBD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,MAAU,EAAE,KAAK,EAAE,EAAE;IACtD,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,+BAQA;AA2BD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAS,EAAE,QAAQ,EAAE,KAAoB,EAAE,EAAE;IAChG,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,+BAgBA;AAED,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK7C"}
1
+ {"version":3,"file":"Marker.d.ts","sourceRoot":"","sources":["../../src/kit/Marker.tsx"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,IAAS,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IACxD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,+BAEA;AAmBD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,MAAU,EAAE,KAAK,EAAE,EAAE;IACtD,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,+BAQA;AA2BD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAS,EAAE,QAAQ,EAAE,KAAoB,EAAE,EAAE;IAChG,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,+BAgBA;AAED,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAiCD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,GAAO,EAAE,IAAS,EAAE,KAAK,EAAE,EAAE;IACjE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,sCAuBA"}
@@ -96,4 +96,54 @@ export function initials(name) {
96
96
  return parts[0].slice(0, 2).toUpperCase();
97
97
  return (parts[0][0] + parts[1][0]).toUpperCase();
98
98
  }
99
+ const StackWrap = styled.span `
100
+ display: inline-flex;
101
+ align-items: center;
102
+ flex: none;
103
+ > .slot {
104
+ display: inline-grid;
105
+ border-radius: 50%;
106
+ /* opaque ground and a ring, so the translucent avatar fill does not show
107
+ the one underneath and neighbours read as separate */
108
+ background: ${v.surface};
109
+ box-shadow: 0 0 0 2px ${v.surface};
110
+ & + .slot { margin-left: -${(p) => Math.round(p.$size * 0.3)}px; }
111
+ }
112
+ > .more {
113
+ display: inline-grid;
114
+ place-items: center;
115
+ height: ${(p) => p.$size}px;
116
+ min-width: ${(p) => p.$size}px;
117
+ padding: 0 4px;
118
+ box-sizing: border-box;
119
+ margin-left: -${(p) => Math.round(p.$size * 0.3)}px;
120
+ border-radius: 999px;
121
+ background: ${v.hover};
122
+ color: ${v.muted};
123
+ box-shadow: 0 0 0 2px ${v.surface};
124
+ font-size: ${(p) => Math.max(9, Math.round(p.$size * 0.42))}px;
125
+ font-weight: 700;
126
+ font-variant-numeric: tabular-nums;
127
+ }
128
+ `;
129
+ /**
130
+ * AvatarStack: who, several at once — overlapping avatars (picture, else
131
+ * initials) with the surplus past `max` folded into a "+N". It is a single
132
+ * image to assistive tech, labelled with the names (or `label`); hovering an
133
+ * avatar shows that person.
134
+ */
135
+ export function AvatarStack({ people, max = 4, size = 24, label }) {
136
+ if (people.length === 0)
137
+ return null;
138
+ const names = people.map((p) => p.name || p.email || "Unknown");
139
+ const shown = people.slice(0, Math.max(1, max));
140
+ const rest = people.length - shown.length;
141
+ const auto = rest > 0
142
+ ? `${names.slice(0, shown.length).join(", ")} and ${rest} more`
143
+ : names.length > 1 ? `${names.slice(0, -1).join(", ")} and ${names[names.length - 1]}` : names[0];
144
+ return (_jsxs(StackWrap, { "$size": size, role: "img", "aria-label": label ?? auto, children: [shown.map((p, i) => {
145
+ const n = p.name || p.email || "";
146
+ return (_jsx("span", { className: "slot", title: p.email || n || undefined, "aria-hidden": "true", children: _jsx(Avatar, { "$size": size, "$empty": !n, children: !n ? _jsx(Icon, { name: "user", size: Math.round(size * 0.5) }) : p.avatarUrl ? _jsx("img", { src: p.avatarUrl, alt: "" }) : initials(n) }) }, i));
147
+ }), rest > 0 ? _jsxs("span", { className: "more", "aria-hidden": "true", title: names.slice(shown.length).join(", "), children: ["+", rest] }) : null] }));
148
+ }
99
149
  //# sourceMappingURL=Marker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Marker.js","sourceRoot":"","sources":["../../src/kit/Marker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Marker.js","sourceRoot":"","sources":["../../src/kit/Marker.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type ReactNode } from "react";
1
+ import { type FormEvent, type ReactNode } from "react";
2
2
  import { type IconName } from "./Icon.tsx";
3
3
  declare const sizes: {
4
4
  readonly sm: 420;
@@ -8,7 +8,7 @@ declare const sizes: {
8
8
  readonly full: 0;
9
9
  };
10
10
  export type EntityModalSize = keyof typeof sizes;
11
- export declare function EntityModal({ title, sub, icon, size, onClose, dismissable, footer, flush, head, portal, children }: {
11
+ export declare function EntityModal({ title, sub, icon, size, onClose, dismissable, footer, flush, head, portal, onSubmit, children }: {
12
12
  title: string;
13
13
  /** the line under the title: what is being created, or the entity acted on */
14
14
  sub?: ReactNode | undefined;
@@ -36,7 +36,8 @@ export declare function EntityModal({ title, sub, icon, size, onClose, dismissab
36
36
  */
37
37
  head?: boolean | undefined;
38
38
  /**
39
- * Render into document.body rather than in place. Rendered in place, a
39
+ * Render into document.body (inside a ThemeScope, into the scope's host in
40
+ * body, so it keeps the scope's tokens) rather than in place. Rendered in place, a
40
41
  * modal opened from inside a transformed element (a draggable card, an
41
42
  * animated list) is positioned against that element, not the viewport, and
42
43
  * a card with `overflow: hidden` can clip it. Opt-in (1.4) so a modal that
@@ -46,6 +47,15 @@ export declare function EntityModal({ title, sub, icon, size, onClose, dismissab
46
47
  * mounted, so a modal open on first load hydrates without a mismatch.
47
48
  */
48
49
  portal?: boolean | undefined;
50
+ /**
51
+ * Wrap the body and the footer in a <form> with this as its submit (1.5,
52
+ * CON-132), so Enter in a field submits. Give the footer's primary action
53
+ * `type="submit"`: a click then goes through the browser's field validation
54
+ * too, and disabling it disables Enter with it. The default is prevented and
55
+ * the event stops here, so a modal opened from inside another form never
56
+ * submits that one. Without it there is no form, as before.
57
+ */
58
+ onSubmit?: ((e: FormEvent<HTMLFormElement>) => void) | undefined;
49
59
  children: ReactNode;
50
60
  }): import("react").JSX.Element;
51
61
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/kit/Modal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/kit/Modal.tsx"],"names":[],"mappings":"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"}
package/dist/kit/Modal.js CHANGED
@@ -1,6 +1,7 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useRef, useState, useSyncExternalStore } from "react";
3
3
  import { createPortal } from "react-dom";
4
+ import { usePortalTarget } from "../theme/ThemeScope.js";
4
5
  import styled, { css, keyframes } from "styled-components";
5
6
  import { v } from "../theme/tokens.js";
6
7
  import { Icon } from "./Icon.js";
@@ -78,14 +79,39 @@ const Body = styled.div `
78
79
  > * { flex: 1 1 auto; min-height: 0; }
79
80
  `}
80
81
  `;
81
- export function EntityModal({ title, sub, icon, size = "md", onClose, dismissable = true, footer, flush, head = true, portal, children }) {
82
+ // The form `onSubmit` wraps the body and footer in: it takes the card's place
83
+ // in the column, so the body still scrolls under a pinned footer.
84
+ const ModalForm = styled.form `
85
+ flex: 1 1 auto;
86
+ min-height: 0;
87
+ display: flex;
88
+ flex-direction: column;
89
+ `;
90
+ // Enter in a field submits the form natively only when the form has a submit
91
+ // button (or a lone text field). A footer whose primary is still type=button
92
+ // would leave Enter dead, so in that case the modal submits it itself.
93
+ const ENTER_SUBMITS = /^(text|search|email|url|tel|password|number|date|datetime-local|month|time|week)$/;
94
+ function submitOnEnter(e) {
95
+ const t = e.target;
96
+ if (e.key !== "Enter" || e.defaultPrevented || e.nativeEvent.isComposing)
97
+ return;
98
+ if (!(t instanceof HTMLInputElement) || !ENTER_SUBMITS.test(t.type))
99
+ return;
100
+ if (e.currentTarget.querySelector('button[type="submit"], input[type="submit"]'))
101
+ return;
102
+ e.preventDefault();
103
+ e.currentTarget.requestSubmit();
104
+ }
105
+ export function EntityModal({ title, sub, icon, size = "md", onClose, dismissable = true, footer, flush, head = true, portal, onSubmit, children }) {
82
106
  const ref = useRef(null);
83
107
  // Portal only on the client: the server has no document.body, so it renders
84
108
  // in place, and a hydrating render must match it or hydration fails. The
85
109
  // server snapshot (false) is what hydration renders with; React re-renders
86
110
  // with the client's (true) straight after. A plain client render portals at once.
87
111
  const mounted = useSyncExternalStore(noSubscribe, () => true, () => false);
88
- const portalled = !!portal && mounted;
112
+ // into the nearest ThemeScope's host, so a scoped theme reaches it (CON-148)
113
+ const target = usePortalTarget();
114
+ const portalled = !!portal && mounted && !!target;
89
115
  // Always a layer, so Escape never reaches the drawer under a non-dismissable modal.
90
116
  useEscapeLayer(true, dismissable ? onClose : undefined);
91
117
  // focus goes back to what had it when the modal closes
@@ -98,10 +124,10 @@ export function EntityModal({ title, sub, icon, size = "md", onClose, dismissabl
98
124
  ref.current?.focus();
99
125
  }, [portalled]);
100
126
  const node = (_jsx(Backdrop, { "$full": size === "full", onMouseDown: (e) => { if (dismissable && e.target === e.currentTarget)
101
- onClose(); }, children: _jsxs(Card, { "$size": size, ref: ref, tabIndex: -1, role: "dialog", "aria-modal": "true", "aria-label": title, children: [head ? (_jsxs(Head, { children: [icon ? _jsx(HeadIcon, { children: _jsx(Icon, { name: icon }) }) : null, _jsxs("div", { style: { minWidth: 0 }, children: [_jsx(Title, { children: title }), sub ? _jsx(Sub, { children: sub }) : null] }), dismissable ? (_jsx(IconButton, { onClick: onClose, "aria-label": "Close", style: { marginLeft: "auto" }, children: _jsx(Icon, { name: "close" }) })) : null] })) : null, _jsx(Body, { "$flush": flush, children: children }), footer ? _jsx(Foot, { children: footer }) : null] }) }));
127
+ onClose(); }, children: _jsxs(Card, { "$size": size, ref: ref, tabIndex: -1, role: "dialog", "aria-modal": "true", "aria-label": title, children: [head ? (_jsxs(Head, { children: [icon ? _jsx(HeadIcon, { children: _jsx(Icon, { name: icon }) }) : null, _jsxs("div", { style: { minWidth: 0 }, children: [_jsx(Title, { children: title }), sub ? _jsx(Sub, { children: sub }) : null] }), dismissable ? (_jsx(IconButton, { onClick: onClose, "aria-label": "Close", style: { marginLeft: "auto" }, children: _jsx(Icon, { name: "close" }) })) : null] })) : null, onSubmit ? (_jsxs(ModalForm, { onSubmit: (e) => { e.preventDefault(); e.stopPropagation(); onSubmit(e); }, onKeyDown: submitOnEnter, children: [_jsx(Body, { "$flush": flush, children: children }), footer ? _jsx(Foot, { children: footer }) : null] })) : (_jsxs(_Fragment, { children: [_jsx(Body, { "$flush": flush, children: children }), footer ? _jsx(Foot, { children: footer }) : null] }))] }) }));
102
128
  // in place on the server and the first client render (so hydration matches),
103
129
  // portalled from the effect after mount on
104
- return portalled ? createPortal(node, document.body) : node;
130
+ return portalled && target ? createPortal(node, target) : node;
105
131
  }
106
132
  const HeadIcon = styled.span `
107
133
  width: 34px; height: 34px; flex: none;
@@ -136,7 +162,12 @@ const ConfirmText = styled.p `
136
162
  export function ConfirmDialog({ title, body, actionLabel, typedValue, danger = true, busy, extra, portal, onConfirm, onClose }) {
137
163
  const [typed, setTyped] = useState("");
138
164
  const armed = !typedValue || typed === typedValue;
139
- return (_jsxs(EntityModal, { title: title, size: "sm", onClose: onClose, portal: portal, children: [_jsx(ConfirmText, { children: body }), extra, typedValue ? (_jsxs("div", { style: { margin: "0 0 14px" }, children: [_jsxs(ConfirmText, { style: { marginBottom: 6 }, children: ["Type ", _jsx("b", { children: typedValue }), " to confirm."] }), _jsx(MonoInput, { autoFocus: true, value: typed, onChange: (e) => setTyped(e.target.value), placeholder: typedValue })] })) : null, _jsxs(ButtonRow, { style: { justifyContent: "flex-end" }, children: [_jsx(AppButton, { variant: "quiet", onClick: onClose, children: "Cancel" }), _jsx(AppButton, { variant: danger ? "danger" : "grad", disabled: !armed, loading: busy, onClick: onConfirm, children: actionLabel })] })] }));
165
+ // With a typed name, Enter in that field confirms once it matches, as the
166
+ // button does. Without one there is no field of ours to press it in, and a
167
+ // field a caller put in `extra` must not confirm a destructive action.
168
+ const submit = typedValue ? () => { if (armed && !busy)
169
+ onConfirm(); } : undefined;
170
+ return (_jsxs(EntityModal, { title: title, size: "sm", onClose: onClose, portal: portal, onSubmit: submit, children: [_jsx(ConfirmText, { children: body }), extra, typedValue ? (_jsxs("div", { style: { margin: "0 0 14px" }, children: [_jsxs(ConfirmText, { style: { marginBottom: 6 }, children: ["Type ", _jsx("b", { children: typedValue }), " to confirm."] }), _jsx(MonoInput, { autoFocus: true, value: typed, onChange: (e) => setTyped(e.target.value), placeholder: typedValue })] })) : null, _jsxs(ButtonRow, { style: { justifyContent: "flex-end" }, children: [_jsx(AppButton, { variant: "quiet", onClick: onClose, children: "Cancel" }), _jsx(AppButton, { type: submit ? "submit" : "button", variant: danger ? "danger" : "grad", disabled: !armed, loading: busy, onClick: submit ? undefined : onConfirm, children: actionLabel })] })] }));
140
171
  }
141
172
  /**
142
173
  * PromptDialog: a one-field modal for naming things (new file, rename) — the
@@ -152,11 +183,10 @@ export function PromptDialog({ title, sub, body, label, initial = "", value: con
152
183
  const setValue = (next) => { setLocal(next); onChange?.(next); };
153
184
  const problem = validate ? validate(value) : null;
154
185
  const submit = () => {
155
- if (!value.trim() || problem)
186
+ if (!value.trim() || problem || busy)
156
187
  return;
157
188
  onSubmit(value.trim());
158
189
  };
159
- return (_jsxs(EntityModal, { title: title, sub: sub, size: "sm", onClose: onClose, portal: portal, children: [body ? _jsx(ConfirmText, { children: body }) : null, extra ? _jsx("div", { style: { margin: "0 0 12px" }, children: extra }) : null, _jsxs("div", { style: { margin: "0 0 6px" }, children: [_jsx(ConfirmText, { style: { marginBottom: 6 }, children: label }), _jsx(MonoInput, { ref: inputRef, autoFocus: !readOnly, value: value, readOnly: readOnly, onChange: (e) => setValue(e.target.value), onKeyDown: (e) => { if (e.key === "Enter")
160
- submit(); }, ...(placeholder !== undefined ? { placeholder } : {}) }), problem && value ? _jsx(ConfirmText, { style: { margin: "6px 0 0", color: "var(--x-danger)" }, children: problem }) : null, hint && !(problem && value) ? _jsx(Hint, { style: { margin: "6px 0 0" }, children: hint }) : null] }), _jsxs(ButtonRow, { style: { justifyContent: "flex-end", marginTop: 12 }, children: [_jsx(AppButton, { variant: "quiet", onClick: onClose, children: "Cancel" }), _jsx(AppButton, { variant: "grad", icon: actionIcon, disabled: !value.trim() || !!problem, loading: busy, onClick: submit, children: actionLabel })] })] }));
190
+ return (_jsxs(EntityModal, { title: title, sub: sub, size: "sm", onClose: onClose, portal: portal, onSubmit: submit, children: [body ? _jsx(ConfirmText, { children: body }) : null, extra ? _jsx("div", { style: { margin: "0 0 12px" }, children: extra }) : null, _jsxs("div", { style: { margin: "0 0 6px" }, children: [_jsx(ConfirmText, { style: { marginBottom: 6 }, children: label }), _jsx(MonoInput, { ref: inputRef, autoFocus: !readOnly, value: value, readOnly: readOnly, onChange: (e) => setValue(e.target.value), ...(placeholder !== undefined ? { placeholder } : {}) }), problem && value ? _jsx(ConfirmText, { style: { margin: "6px 0 0", color: "var(--x-danger)" }, children: problem }) : null, hint && !(problem && value) ? _jsx(Hint, { style: { margin: "6px 0 0" }, children: hint }) : null] }), _jsxs(ButtonRow, { style: { justifyContent: "flex-end", marginTop: 12 }, children: [_jsx(AppButton, { variant: "quiet", onClick: onClose, children: "Cancel" }), _jsx(AppButton, { type: "submit", variant: "grad", icon: actionIcon, disabled: !value.trim() || !!problem, loading: busy, children: actionLabel })] })] }));
161
191
  }
162
192
  //# sourceMappingURL=Modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/kit/Modal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/kit/Modal.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { ReactNode } from "react";
1
2
  /** Panel: the standard bordered surface; brand-tinted inset on the top edge. */
2
3
  export declare const Panel: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "style"> & {
3
4
  style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
@@ -16,6 +17,26 @@ export declare const PanelBody: import("styled-components/dist/types").IStyledCo
16
17
  }, {
17
18
  $pad?: boolean | undefined;
18
19
  }>> & string;
20
+ /**
21
+ * PanelFooter: the band under a panel's body — a quiet line on the left saying
22
+ * what will happen (`PanelFooter` children), the buttons on the right
23
+ * (`PanelActions`, which pushes itself to the end).
24
+ */
25
+ export declare const PanelFooter: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "style"> & {
26
+ style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
27
+ }> & string;
28
+ /**
29
+ * PanelSettingRow: one independent fact and its control inside a settings
30
+ * panel — label and description on the left, the control (a Toggle, a Select,
31
+ * a button) on the right. Rows hairline-separate themselves; put them in a
32
+ * `PanelBody $pad={false}` so they sit flush to the panel's edges.
33
+ */
34
+ export declare function PanelSettingRow({ label, description, children }: {
35
+ label: ReactNode;
36
+ description?: ReactNode | undefined;
37
+ /** the control */
38
+ children?: ReactNode | undefined;
39
+ }): import("react").JSX.Element;
19
40
  /** MicroLabel: uppercase mono kicker used for section heads and field labels. */
20
41
  export declare const MicroLabel: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "style"> & {
21
42
  style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../src/kit/Panel.tsx"],"names":[],"mappings":"AAGA,gFAAgF;AAChF,eAAO,MAAM,KAAK;;WAMjB,CAAC;AAEF,eAAO,MAAM,SAAS;;WAQrB,CAAC;AAEF,eAAO,MAAM,UAAU;;WAItB,CAAC;AAEF,eAAO,MAAM,YAAY;;WAKxB,CAAC;AAEF,eAAO,MAAM,SAAS;;;WAAuB,OAAO,GAAG,SAAS;YAE/D,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,UAAU;;WAQtB,CAAC;AAEF;;uBAEuB;AACvB,eAAO,MAAM,WAAW;;WAavB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;gBAA2B,OAAO,GAAG,SAAS;YAIlE,CAAC"}
1
+ {"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../src/kit/Panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,gFAAgF;AAChF,eAAO,MAAM,KAAK;;WAMjB,CAAC;AAEF,eAAO,MAAM,SAAS;;WAQrB,CAAC;AAEF,eAAO,MAAM,UAAU;;WAItB,CAAC;AAEF,eAAO,MAAM,YAAY;;WAKxB,CAAC;AAEF,eAAO,MAAM,SAAS;;;WAAuB,OAAO,GAAG,SAAS;YAE/D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW;;WAQvB,CAAC;AAeF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE;IAChE,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACpC,kBAAkB;IAClB,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CAClC,+BAUA;AAED,iFAAiF;AACjF,eAAO,MAAM,UAAU;;WAQtB,CAAC;AAEF;;uBAEuB;AACvB,eAAO,MAAM,WAAW;;WAavB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;gBAA2B,OAAO,GAAG,SAAS;YAIlE,CAAC"}
package/dist/kit/Panel.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  import styled from "styled-components";
2
3
  import { v } from "../theme/tokens.js";
3
4
  /** Panel: the standard bordered surface; brand-tinted inset on the top edge. */
@@ -31,6 +32,41 @@ export const PanelActions = styled.div `
31
32
  export const PanelBody = styled.div `
32
33
  padding: ${(p) => (p.$pad === false ? 0 : "14px 16px")};
33
34
  `;
35
+ /**
36
+ * PanelFooter: the band under a panel's body — a quiet line on the left saying
37
+ * what will happen (`PanelFooter` children), the buttons on the right
38
+ * (`PanelActions`, which pushes itself to the end).
39
+ */
40
+ export const PanelFooter = styled.footer `
41
+ display: flex;
42
+ align-items: center;
43
+ gap: 10px;
44
+ padding: 10px 16px;
45
+ border-top: 1px solid ${v.line};
46
+ font-size: 11.5px;
47
+ color: ${v.faint};
48
+ `;
49
+ const SettingRow = styled.div `
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: space-between;
53
+ gap: 16px;
54
+ padding: 12px 16px;
55
+ & + & { border-top: 1px solid ${v.line}; }
56
+ .text { min-width: 0; flex: 1 1 auto; }
57
+ .label { font-size: 12.5px; font-weight: 600; }
58
+ .desc { margin-top: 2px; font-size: 11.5px; color: ${v.faint}; line-height: 1.45; }
59
+ .control { flex: none; display: flex; align-items: center; gap: 8px; }
60
+ `;
61
+ /**
62
+ * PanelSettingRow: one independent fact and its control inside a settings
63
+ * panel — label and description on the left, the control (a Toggle, a Select,
64
+ * a button) on the right. Rows hairline-separate themselves; put them in a
65
+ * `PanelBody $pad={false}` so they sit flush to the panel's edges.
66
+ */
67
+ export function PanelSettingRow({ label, description, children }) {
68
+ return (_jsxs(SettingRow, { children: [_jsxs("div", { className: "text", children: [_jsx("div", { className: "label", children: label }), description ? _jsx("div", { className: "desc", children: description }) : null] }), children ? _jsx("div", { className: "control", children: children }) : null] }));
69
+ }
34
70
  /** MicroLabel: uppercase mono kicker used for section heads and field labels. */
35
71
  export const MicroLabel = styled.span `
36
72
  display: block;
@@ -1 +1 @@
1
- {"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../src/kit/Panel.tsx"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAEvC,gFAAgF;AAChF,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAA;gBACnB,CAAC,CAAC,OAAO;sBACH,CAAC,CAAC,IAAI;mBACT,CAAC,CAAC,MAAM;gCACK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI;;CAEnD,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;6BAKT,CAAC,CAAC,IAAI;;;CAGlC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAA;;;;CAIlC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAKrC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAgC;aACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;CACvD,CAAC;AAEF,iFAAiF;AACjF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAA;;iBAEpB,CAAC,CAAC,IAAI;;;;;WAKZ,CAAC,CAAC,KAAK;CACjB,CAAC;AAEF;;uBAEuB;AACvB,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAA;;;;WAIzB,CAAC,CAAC,KAAK;;;;;;;;;CASjB,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAqC;;;IAGlE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,gDAAgD,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,GAAG,CAAC;CAC/I,CAAC"}
1
+ {"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../src/kit/Panel.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAEvC,gFAAgF;AAChF,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAA;gBACnB,CAAC,CAAC,OAAO;sBACH,CAAC,CAAC,IAAI;mBACT,CAAC,CAAC,MAAM;gCACK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI;;CAEnD,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;6BAKT,CAAC,CAAC,IAAI;;;CAGlC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAA;;;;CAIlC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAKrC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAgC;aACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;CACvD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;0BAKd,CAAC,CAAC,IAAI;;WAErB,CAAC,CAAC,KAAK;CACjB,CAAC;AAEF,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;kCAMK,CAAC,CAAC,IAAI;;;uDAGe,CAAC,CAAC,KAAK;;CAE7D,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAK7D;IACC,OAAO,CACL,MAAC,UAAU,eACT,eAAK,SAAS,EAAC,MAAM,aACnB,cAAK,SAAS,EAAC,OAAO,YAAE,KAAK,GAAO,EACnC,WAAW,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,MAAM,YAAE,WAAW,GAAO,CAAC,CAAC,CAAC,IAAI,IAC3D,EACL,QAAQ,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,SAAS,YAAE,QAAQ,GAAO,CAAC,CAAC,CAAC,IAAI,IACjD,CACd,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAA;;iBAEpB,CAAC,CAAC,IAAI;;;;;WAKZ,CAAC,CAAC,KAAK;CACjB,CAAC;AAEF;;uBAEuB;AACvB,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAA;;;;WAIzB,CAAC,CAAC,KAAK;;;;;;;;;CASjB,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAqC;;;IAGlE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,gDAAgD,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,GAAG,CAAC;CAC/I,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { type ReactNode } from "react";
2
+ export type PipelineState = "pending" | "running" | "done" | "failed" | "skipped";
3
+ export interface PipelineStep {
4
+ /** unique within its group (a fan-out repeats the same ids in every group) */
5
+ id: string;
6
+ label: ReactNode;
7
+ state: PipelineState;
8
+ /** the line under the label: counters, a duration, why it was skipped */
9
+ meta?: ReactNode | undefined;
10
+ /** 0..1 for a determinate bar under the step; "indeterminate" for work that cannot know its total. Shown only while running */
11
+ progress?: number | "indeterminate" | undefined;
12
+ /** which fan-out group this step belongs to; omit for a trunk step */
13
+ group?: string | undefined;
14
+ }
15
+ export interface PipelineSplit {
16
+ before: PipelineStep[];
17
+ lanes: {
18
+ key: string;
19
+ steps: PipelineStep[];
20
+ }[];
21
+ after: PipelineStep[];
22
+ }
23
+ /**
24
+ * Cuts the steps into those before the fan-out, one lane per group, and those
25
+ * after. Lanes are keyed rather than adjacent, so a producer that emits
26
+ * position-major (group A's step 1, group B's step 1, A's step 2…) still gets a
27
+ * row per group; lane order follows first appearance. The grouped block is
28
+ * assumed contiguous — slicing rather than filtering keeps that visible.
29
+ */
30
+ export declare function splitPipeline(steps: PipelineStep[]): PipelineSplit;
31
+ /**
32
+ * PipelineFlow: ordered steps with a state each, drawn as a connected row (a
33
+ * stack when narrow). A step's `meta` is the line under it and `progress` the
34
+ * bar under a running step (`"indeterminate"` sweeps, for work that finds out
35
+ * its size by finishing). Steps carrying a `group` are lifted into a row per
36
+ * group between the trunk steps that bracket them; `groups` names the lanes.
37
+ */
38
+ export declare function PipelineFlow({ steps, groups, label }: {
39
+ steps: PipelineStep[];
40
+ /** lane titles by group key; a lane without one shows its key */
41
+ groups?: Record<string, ReactNode> | undefined;
42
+ label?: string | undefined;
43
+ }): import("react").JSX.Element | null;
44
+ //# sourceMappingURL=PipelineFlow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PipelineFlow.d.ts","sourceRoot":"","sources":["../../src/kit/PipelineFlow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA8E,KAAK,SAAS,EAAkB,MAAM,OAAO,CAAC;AAkBnI,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElF,MAAM,WAAW,YAAY;IAC3B,8EAA8E;IAC9E,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,yEAAyE;IACzE,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,+HAA+H;IAC/H,QAAQ,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;IAChD,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,EAAE,CAAA;KAAE,EAAE,CAAC;IAChD,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,aAAa,CAoBlE;AA6MD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAkB,EAAE,EAAE;IAClE,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,sCAiBA"}