@xeonr/platform-ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/kit/Badge.d.ts +19 -0
- package/dist/kit/Badge.d.ts.map +1 -0
- package/dist/kit/Badge.js +61 -0
- package/dist/kit/Badge.js.map +1 -0
- package/dist/kit/Button.d.ts +28 -0
- package/dist/kit/Button.d.ts.map +1 -0
- package/dist/kit/Button.js +73 -0
- package/dist/kit/Button.js.map +1 -0
- package/dist/kit/DataTable.d.ts +23 -0
- package/dist/kit/DataTable.d.ts.map +1 -0
- package/dist/kit/DataTable.js +59 -0
- package/dist/kit/DataTable.js.map +1 -0
- package/dist/kit/EmptyState.d.ts +10 -0
- package/dist/kit/EmptyState.d.ts.map +1 -0
- package/dist/kit/EmptyState.js +42 -0
- package/dist/kit/EmptyState.js.map +1 -0
- package/dist/kit/EntityHeader.d.ts +17 -0
- package/dist/kit/EntityHeader.d.ts.map +1 -0
- package/dist/kit/EntityHeader.js +61 -0
- package/dist/kit/EntityHeader.js.map +1 -0
- package/dist/kit/Form.d.ts +78 -0
- package/dist/kit/Form.d.ts.map +1 -0
- package/dist/kit/Form.js +210 -0
- package/dist/kit/Form.js.map +1 -0
- package/dist/kit/Icon.d.ts +102 -0
- package/dist/kit/Icon.d.ts.map +1 -0
- package/dist/kit/Icon.js +48 -0
- package/dist/kit/Icon.js.map +1 -0
- package/dist/kit/KV.d.ts +9 -0
- package/dist/kit/KV.d.ts.map +1 -0
- package/dist/kit/KV.js +23 -0
- package/dist/kit/KV.js.map +1 -0
- package/dist/kit/LogView.d.ts +21 -0
- package/dist/kit/LogView.d.ts.map +1 -0
- package/dist/kit/LogView.js +35 -0
- package/dist/kit/LogView.js.map +1 -0
- package/dist/kit/Modal.d.ts +50 -0
- package/dist/kit/Modal.d.ts.map +1 -0
- package/dist/kit/Modal.js +112 -0
- package/dist/kit/Modal.js.map +1 -0
- package/dist/kit/PageHeader.d.ts +30 -0
- package/dist/kit/PageHeader.d.ts.map +1 -0
- package/dist/kit/PageHeader.js +67 -0
- package/dist/kit/PageHeader.js.map +1 -0
- package/dist/kit/Panel.d.ts +26 -0
- package/dist/kit/Panel.d.ts.map +1 -0
- package/dist/kit/Panel.js +49 -0
- package/dist/kit/Panel.js.map +1 -0
- package/dist/kit/Secret.d.ts +9 -0
- package/dist/kit/Secret.d.ts.map +1 -0
- package/dist/kit/Secret.js +39 -0
- package/dist/kit/Secret.js.map +1 -0
- package/dist/kit/Skeleton.d.ts +12 -0
- package/dist/kit/Skeleton.d.ts.map +1 -0
- package/dist/kit/Skeleton.js +21 -0
- package/dist/kit/Skeleton.js.map +1 -0
- package/dist/kit/Toast.d.ts +17 -0
- package/dist/kit/Toast.d.ts.map +1 -0
- package/dist/kit/Toast.js +64 -0
- package/dist/kit/Toast.js.map +1 -0
- package/dist/theme/ThemeProvider.d.ts +16 -0
- package/dist/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/theme/ThemeProvider.js +105 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/tokens.d.ts +62 -0
- package/dist/theme/tokens.d.ts.map +1 -0
- package/dist/theme/tokens.js +171 -0
- package/dist/theme/tokens.js.map +1 -0
- package/package.json +49 -0
- package/scripts/check-colour-literals.mjs +221 -0
package/dist/kit/Form.js
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import styled, { css } from "styled-components";
|
|
3
|
+
import { v } from "../theme/tokens.js";
|
|
4
|
+
import { MicroLabel } from "./Panel.js";
|
|
5
|
+
export const FormGrid = styled.div `
|
|
6
|
+
display: grid;
|
|
7
|
+
grid-template-columns: repeat(${(p) => p.$cols ?? 2}, minmax(0, 1fr));
|
|
8
|
+
gap: 14px;
|
|
9
|
+
@media (max-width: 640px) { grid-template-columns: 1fr; }
|
|
10
|
+
`;
|
|
11
|
+
export const FieldWrap = styled.label `
|
|
12
|
+
display: block;
|
|
13
|
+
min-width: 0;
|
|
14
|
+
${(p) => (p.$span ? css `grid-column: span ${p.$span};` : "")}
|
|
15
|
+
`;
|
|
16
|
+
const HintText = styled.span `
|
|
17
|
+
display: block;
|
|
18
|
+
margin-top: 4px;
|
|
19
|
+
font-size: 11px;
|
|
20
|
+
color: ${v.faint};
|
|
21
|
+
`;
|
|
22
|
+
export function Field({ label, hint, span, children }) {
|
|
23
|
+
return (_jsxs(FieldWrap, { ...(span !== undefined ? { $span: span } : {}), children: [_jsx(MicroLabel, { style: { marginBottom: 6 }, children: label }), children, hint ? _jsx(HintText, { children: hint }) : null] }));
|
|
24
|
+
}
|
|
25
|
+
const ctl = css `
|
|
26
|
+
width: 100%;
|
|
27
|
+
height: 32px;
|
|
28
|
+
padding: 0 10px;
|
|
29
|
+
border-radius: ${v.rCtl};
|
|
30
|
+
background: ${v.field};
|
|
31
|
+
border: 1px solid ${v.fieldLine};
|
|
32
|
+
color: ${v.text};
|
|
33
|
+
font-size: 12.5px;
|
|
34
|
+
transition: border-color 0.14s ease, box-shadow 0.14s ease;
|
|
35
|
+
&::placeholder { color: ${v.faint}; }
|
|
36
|
+
&:focus { outline: none; border-color: ${v.brand55}; box-shadow: 0 0 0 3px ${v.brand08}; }
|
|
37
|
+
&:disabled { opacity: 0.55; }
|
|
38
|
+
`;
|
|
39
|
+
export const Input = styled.input `${ctl}`;
|
|
40
|
+
export const MonoInput = styled.input `${ctl} font-family: ${v.mono}; font-size: 11.5px;`;
|
|
41
|
+
export const Select = styled.select `
|
|
42
|
+
${ctl}
|
|
43
|
+
appearance: none;
|
|
44
|
+
background-image: linear-gradient(45deg, transparent 50%, ${v.faint} 50%), linear-gradient(135deg, ${v.faint} 50%, transparent 50%);
|
|
45
|
+
background-position: calc(100% - 16px) 14px, calc(100% - 11px) 14px;
|
|
46
|
+
background-size: 5px 5px;
|
|
47
|
+
background-repeat: no-repeat;
|
|
48
|
+
padding-right: 28px;
|
|
49
|
+
`;
|
|
50
|
+
export const TextArea = styled.textarea `
|
|
51
|
+
${ctl}
|
|
52
|
+
height: auto;
|
|
53
|
+
min-height: 76px;
|
|
54
|
+
padding: 8px 10px;
|
|
55
|
+
resize: vertical;
|
|
56
|
+
line-height: 1.5;
|
|
57
|
+
${(p) => (p.$mono ? css `font-family: ${v.mono}; font-size: 11.5px;` : "")}
|
|
58
|
+
`;
|
|
59
|
+
/** Segmented: pill group for small closed enums (kinds, sources, themes). */
|
|
60
|
+
const SegWrap = styled.div `
|
|
61
|
+
display: inline-flex;
|
|
62
|
+
padding: 3px;
|
|
63
|
+
gap: 2px;
|
|
64
|
+
background: ${v.field};
|
|
65
|
+
border: 1px solid ${v.fieldLine};
|
|
66
|
+
border-radius: ${v.rCtl};
|
|
67
|
+
`;
|
|
68
|
+
const SegBtn = styled.button `
|
|
69
|
+
height: 24px;
|
|
70
|
+
padding: 0 10px;
|
|
71
|
+
border-radius: 6px;
|
|
72
|
+
font-size: 11.5px;
|
|
73
|
+
font-weight: 600;
|
|
74
|
+
color: ${(p) => (p.$on ? v.onBrand : v.muted)};
|
|
75
|
+
background: ${(p) => (p.$on ? v.grad : "transparent")};
|
|
76
|
+
transition: background 0.14s ease, color 0.14s ease;
|
|
77
|
+
&:hover { color: ${(p) => (p.$on ? v.onBrand : v.text)}; }
|
|
78
|
+
`;
|
|
79
|
+
export function Segmented({ options, value, onChange }) {
|
|
80
|
+
return (_jsx(SegWrap, { role: "radiogroup", children: options.map((o) => (_jsx(SegBtn, { type: "button", role: "radio", "aria-checked": o.value === value, "$on": o.value === value, onClick: () => onChange(o.value), children: o.label }, o.value))) }));
|
|
81
|
+
}
|
|
82
|
+
/** Toggle: drawn checkbox, gradient fill when on. */
|
|
83
|
+
const ToggleWrap = styled.label `
|
|
84
|
+
display: inline-flex;
|
|
85
|
+
align-items: center;
|
|
86
|
+
gap: 9px;
|
|
87
|
+
cursor: ${(p) => (p.$disabled ? "not-allowed" : "pointer")};
|
|
88
|
+
opacity: ${(p) => (p.$disabled ? 0.55 : 1)};
|
|
89
|
+
font-size: 12.5px;
|
|
90
|
+
user-select: none;
|
|
91
|
+
input { position: absolute; opacity: 0; pointer-events: none; }
|
|
92
|
+
`;
|
|
93
|
+
const Box = styled.span `
|
|
94
|
+
width: 16px; height: 16px; border-radius: 5px;
|
|
95
|
+
border: 1.5px solid ${(p) => (p.$on ? "transparent" : v.line2)};
|
|
96
|
+
background: ${(p) => (p.$on ? v.grad : "transparent")};
|
|
97
|
+
display: grid; place-items: center;
|
|
98
|
+
transition: background 0.14s ease, border-color 0.14s ease;
|
|
99
|
+
&::after {
|
|
100
|
+
content: "";
|
|
101
|
+
width: 8px; height: 5px;
|
|
102
|
+
border-left: 2px solid ${v.onBrand};
|
|
103
|
+
border-bottom: 2px solid ${v.onBrand};
|
|
104
|
+
transform: rotate(-45deg) translateY(-1px);
|
|
105
|
+
opacity: ${(p) => (p.$on ? 1 : 0)};
|
|
106
|
+
}
|
|
107
|
+
`;
|
|
108
|
+
export function Toggle({ checked, onChange, label, disabled }) {
|
|
109
|
+
return (_jsxs(ToggleWrap, { "$disabled": disabled, children: [_jsx("input", { type: "checkbox", checked: checked, disabled: disabled, onChange: (e) => { if (!disabled)
|
|
110
|
+
onChange(e.target.checked); } }), _jsx(Box, { "$on": checked, "aria-hidden": true }), _jsx("span", { children: label })] }));
|
|
111
|
+
}
|
|
112
|
+
/** FormSection: bordered settings card with a title band, auth-style. */
|
|
113
|
+
const SectionWrap = styled.section `
|
|
114
|
+
background: ${v.surface};
|
|
115
|
+
border: 1px solid ${v.line};
|
|
116
|
+
border-radius: ${v.rPanel};
|
|
117
|
+
overflow: hidden;
|
|
118
|
+
`;
|
|
119
|
+
const SectionHead = styled.div `
|
|
120
|
+
display: flex;
|
|
121
|
+
align-items: center;
|
|
122
|
+
gap: 8px;
|
|
123
|
+
padding: 12px 16px;
|
|
124
|
+
border-bottom: 1px solid ${v.line};
|
|
125
|
+
`;
|
|
126
|
+
const SectionTitle = styled.h4 `
|
|
127
|
+
margin: 0;
|
|
128
|
+
font-size: 12.5px;
|
|
129
|
+
font-weight: 600;
|
|
130
|
+
`;
|
|
131
|
+
const SectionDesc = styled.p `
|
|
132
|
+
margin: 2px 0 0;
|
|
133
|
+
font-size: 11.5px;
|
|
134
|
+
color: ${v.muted};
|
|
135
|
+
`;
|
|
136
|
+
const SectionBody = styled.div `padding: 14px 16px;`;
|
|
137
|
+
export function FormSection({ title, desc, badge, children }) {
|
|
138
|
+
return (_jsxs(SectionWrap, { children: [_jsxs(SectionHead, { children: [_jsxs("div", { style: { minWidth: 0 }, children: [_jsx(SectionTitle, { children: title }), desc ? _jsx(SectionDesc, { children: desc }) : null] }), badge ? _jsx("span", { style: { marginLeft: "auto" }, children: badge }) : null] }), _jsx(SectionBody, { children: children })] }));
|
|
139
|
+
}
|
|
140
|
+
/** KVEditor: name/value rows for env-var-shaped maps. validateKey mirrors server
|
|
141
|
+
* rules so a bad name is flagged in place instead of on submit. */
|
|
142
|
+
const KVRows = styled.div `
|
|
143
|
+
display: flex;
|
|
144
|
+
flex-direction: column;
|
|
145
|
+
gap: 6px;
|
|
146
|
+
`;
|
|
147
|
+
const KVRow = styled.div `
|
|
148
|
+
display: grid;
|
|
149
|
+
grid-template-columns: minmax(0, 2fr) minmax(0, 3fr) auto;
|
|
150
|
+
gap: 6px;
|
|
151
|
+
align-items: center;
|
|
152
|
+
`;
|
|
153
|
+
const KVProblem = styled.span `
|
|
154
|
+
font-size: 10.5px;
|
|
155
|
+
color: ${v.danger};
|
|
156
|
+
`;
|
|
157
|
+
const KVRemove = styled.button `
|
|
158
|
+
width: 26px; height: 26px;
|
|
159
|
+
border-radius: 6px;
|
|
160
|
+
color: ${v.faint};
|
|
161
|
+
font-size: 14px;
|
|
162
|
+
line-height: 1;
|
|
163
|
+
&:hover { background: ${v.hover}; color: ${v.danger}; }
|
|
164
|
+
`;
|
|
165
|
+
const KVAdd = styled.button `
|
|
166
|
+
align-self: flex-start;
|
|
167
|
+
padding: 4px 8px;
|
|
168
|
+
border-radius: 6px;
|
|
169
|
+
font-size: 11.5px;
|
|
170
|
+
font-weight: 600;
|
|
171
|
+
color: ${v.muted};
|
|
172
|
+
&:hover { background: ${v.hover}; color: ${v.text}; }
|
|
173
|
+
`;
|
|
174
|
+
export function KVEditor({ rows, onChange, disabled, keyPlaceholder = "NAME", valuePlaceholder = "value", addLabel = "+ Add variable", secret, validateKey }) {
|
|
175
|
+
const set = (i, patch) => onChange(rows.map((r, j) => (j === i ? { ...r, ...patch } : r)));
|
|
176
|
+
return (_jsxs(KVRows, { children: [rows.map((r, i) => {
|
|
177
|
+
const problem = r.k && validateKey ? validateKey(r.k) : null;
|
|
178
|
+
return (_jsxs("div", { children: [_jsxs(KVRow, { children: [_jsx(MonoInput, { value: r.k, disabled: disabled, placeholder: keyPlaceholder, spellCheck: false, onChange: (e) => set(i, { k: e.target.value }) }), _jsx(MonoInput, { value: r.v, disabled: disabled, type: secret ? "password" : "text", placeholder: valuePlaceholder, spellCheck: false, autoComplete: secret ? "off" : undefined, onChange: (e) => set(i, { v: e.target.value }) }), _jsx(KVRemove, { type: "button", "aria-label": "Remove row", disabled: disabled, onClick: () => onChange(rows.filter((_, j) => j !== i)), children: "\u00D7" })] }), problem ? _jsxs(KVProblem, { children: [r.k, ": ", problem] }) : null] }, i));
|
|
179
|
+
}), _jsx(KVAdd, { type: "button", disabled: disabled, onClick: () => onChange([...rows, { k: "", v: "" }]), children: addLabel })] }));
|
|
180
|
+
}
|
|
181
|
+
/** Rows → wire map, dropping blank names and trimming keys. */
|
|
182
|
+
export function kvToMap(rows) {
|
|
183
|
+
const out = {};
|
|
184
|
+
for (const r of rows) {
|
|
185
|
+
const k = r.k.trim();
|
|
186
|
+
if (k)
|
|
187
|
+
out[k] = r.v;
|
|
188
|
+
}
|
|
189
|
+
return out;
|
|
190
|
+
}
|
|
191
|
+
/** Wire map → rows (for prefill/readback). */
|
|
192
|
+
export function mapToKv(m) {
|
|
193
|
+
return Object.entries(m ?? {}).map(([k, val]) => ({ k, v: val }));
|
|
194
|
+
}
|
|
195
|
+
export const FormActions = styled.div `
|
|
196
|
+
display: flex;
|
|
197
|
+
justify-content: flex-end;
|
|
198
|
+
align-items: center;
|
|
199
|
+
gap: 8px;
|
|
200
|
+
margin-top: 16px;
|
|
201
|
+
`;
|
|
202
|
+
export const InlineError = styled.div `
|
|
203
|
+
margin-top: 10px;
|
|
204
|
+
padding: 9px 12px;
|
|
205
|
+
border-radius: ${v.rCtl};
|
|
206
|
+
background: ${v.dangerBg};
|
|
207
|
+
color: ${v.danger};
|
|
208
|
+
font-size: 12px;
|
|
209
|
+
`;
|
|
210
|
+
//# sourceMappingURL=Form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.js","sourceRoot":"","sources":["../../src/kit/Form.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAa,CAAC;AAEzC,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAgC;;kCAEhC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;;;CAGpD,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAgC;;;IAGjE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAA,qBAAqB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;CAC7D,CAAC;AAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAA;;;;WAIjB,CAAC,CAAC,KAAK;CACjB,CAAC;AAEF,MAAM,UAAU,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAmG;IACpJ,OAAO,CACL,MAAC,SAAS,OAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aACxD,KAAC,UAAU,IAAC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,YAAG,KAAK,GAAc,EAC3D,QAAQ,EACR,IAAI,CAAC,CAAC,CAAC,KAAC,QAAQ,cAAE,IAAI,GAAY,CAAC,CAAC,CAAC,IAAI,IAChC,CACb,CAAC;AACJ,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,CAAA;;;;mBAII,CAAC,CAAC,IAAI;gBACT,CAAC,CAAC,KAAK;sBACD,CAAC,CAAC,SAAS;WACtB,CAAC,CAAC,IAAI;;;4BAGW,CAAC,CAAC,KAAK;2CACQ,CAAC,CAAC,OAAO,2BAA2B,CAAC,CAAC,OAAO;;CAEvF,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA,GAAG,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAA,GAAG,GAAG,iBAAiB,CAAC,CAAC,IAAI,sBAAsB,CAAC;AACzF,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC/B,GAAG;;8DAEuD,CAAC,CAAC,KAAK,kCAAkC,CAAC,CAAC,KAAK;;;;;CAK7G,CAAC;AACF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAiC;IACpE,GAAG;;;;;;IAMH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAA,gBAAgB,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;CAC1E,CAAC;AAEF,6EAA6E;AAC7E,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;;;;gBAIV,CAAC,CAAC,KAAK;sBACD,CAAC,CAAC,SAAS;mBACd,CAAC,CAAC,IAAI;CACxB,CAAC;AACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAkB;;;;;;WAMnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;;qBAElC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;CACvD,CAAC;AAEF,MAAM,UAAU,SAAS,CAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAIrE;IACC,OAAO,CACL,KAAC,OAAO,IAAC,IAAI,EAAC,YAAY,YACvB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAClB,KAAC,MAAM,IAAe,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,kBAAe,CAAC,CAAC,KAAK,KAAK,KAAK,SAAO,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YACvI,CAAC,CAAC,KAAK,IADG,CAAC,CAAC,KAAK,CAEX,CACV,CAAC,GACM,CACX,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAqC;;;;YAIxD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;aAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;;;;CAI3C,CAAC;AACF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAkB;;wBAEjB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAChD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;;;;;;6BAM1B,CAAC,CAAC,OAAO;+BACP,CAAC,CAAC,OAAO;;eAEzB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;CAEpC,CAAC;AAEF,MAAM,UAAU,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAK1D;IACC,OAAO,CACL,MAAC,UAAU,iBAAY,QAAQ,aAC7B,gBAAO,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ;oBAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAI,EAChI,KAAC,GAAG,WAAM,OAAO,wBAAgB,EACjC,yBAAO,KAAK,GAAQ,IACT,CACd,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAA;gBAClB,CAAC,CAAC,OAAO;sBACH,CAAC,CAAC,IAAI;mBACT,CAAC,CAAC,MAAM;;CAE1B,CAAC;AACF,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;6BAKD,CAAC,CAAC,IAAI;CAClC,CAAC;AACF,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAA;;;;CAI7B,CAAC;AACF,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAA;;;WAGjB,CAAC,CAAC,KAAK;CACjB,CAAC;AACF,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA,qBAAqB,CAAC;AAEpD,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAoG;IAC5J,OAAO,CACL,MAAC,WAAW,eACV,MAAC,WAAW,eACV,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,aACzB,KAAC,YAAY,cAAE,KAAK,GAAgB,EACnC,IAAI,CAAC,CAAC,CAAC,KAAC,WAAW,cAAE,IAAI,GAAe,CAAC,CAAC,CAAC,IAAI,IAC5C,EACL,KAAK,CAAC,CAAC,CAAC,eAAM,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,YAAG,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,IACvD,EACd,KAAC,WAAW,cAAE,QAAQ,GAAe,IACzB,CACf,CAAC;AACJ,CAAC;AAED;mEACmE;AACnE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIxB,CAAC;AACF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAKvB,CAAC;AACF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAA;;WAElB,CAAC,CAAC,MAAM;CAClB,CAAC;AACF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAA;;;WAGnB,CAAC,CAAC,KAAK;;;0BAGQ,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,MAAM;CACpD,CAAC;AACF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;WAMhB,CAAC,CAAC,KAAK;0BACQ,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,IAAI;CAClD,CAAC;AAIF,MAAM,UAAU,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,EAAE,gBAAgB,GAAG,OAAO,EAAE,QAAQ,GAAG,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAWzJ;IACC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,KAAsB,EAAE,EAAE,CAChD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,CACL,MAAC,MAAM,eACJ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC7D,OAAO,CACL,0BACE,MAAC,KAAK,eACJ,KAAC,SAAS,IACR,KAAK,EAAE,CAAC,CAAC,CAAC,EACV,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,cAAc,EAC3B,UAAU,EAAE,KAAK,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAC9C,EACF,KAAC,SAAS,IACR,KAAK,EAAE,CAAC,CAAC,CAAC,EACV,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EAClC,WAAW,EAAE,gBAAgB,EAC7B,UAAU,EAAE,KAAK,EACjB,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACxC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAC9C,EACF,KAAC,QAAQ,IACP,IAAI,EAAC,QAAQ,gBACF,YAAY,EACvB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,uBAG9C,IACL,EACP,OAAO,CAAC,CAAC,CAAC,MAAC,SAAS,eAAE,CAAC,CAAC,CAAC,QAAI,OAAO,IAAa,CAAC,CAAC,CAAC,IAAI,KA3BjD,CAAC,CA4BL,CACP,CAAC;YACJ,CAAC,CAAC,EACF,KAAC,KAAK,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,YAC1F,QAAQ,GACH,IACD,CACV,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,OAAO,CAAC,IAAc;IACpC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,OAAO,CAAC,CAAqC;IAC3D,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAMpC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;mBAGlB,CAAC,CAAC,IAAI;gBACT,CAAC,CAAC,QAAQ;WACf,CAAC,CAAC,MAAM;;CAElB,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { IconDefinition } from "@fortawesome/fontawesome-svg-core";
|
|
2
|
+
declare const MAP: {
|
|
3
|
+
home: IconDefinition;
|
|
4
|
+
overview: IconDefinition;
|
|
5
|
+
products: IconDefinition;
|
|
6
|
+
grid: IconDefinition;
|
|
7
|
+
launcher: IconDefinition;
|
|
8
|
+
search: IconDefinition;
|
|
9
|
+
theme: IconDefinition;
|
|
10
|
+
sun: IconDefinition;
|
|
11
|
+
moon: IconDefinition;
|
|
12
|
+
system: IconDefinition;
|
|
13
|
+
"sign-out": IconDefinition;
|
|
14
|
+
menu: IconDefinition;
|
|
15
|
+
more: IconDefinition;
|
|
16
|
+
bell: IconDefinition;
|
|
17
|
+
docs: IconDefinition;
|
|
18
|
+
close: IconDefinition;
|
|
19
|
+
"chevron-down": IconDefinition;
|
|
20
|
+
"chevron-right": IconDefinition;
|
|
21
|
+
"chevron-left": IconDefinition;
|
|
22
|
+
"arrow-right": IconDefinition;
|
|
23
|
+
"arrow-left": IconDefinition;
|
|
24
|
+
external: IconDefinition;
|
|
25
|
+
members: IconDefinition;
|
|
26
|
+
team: IconDefinition;
|
|
27
|
+
user: IconDefinition;
|
|
28
|
+
organisation: IconDefinition;
|
|
29
|
+
role: IconDefinition;
|
|
30
|
+
invite: IconDefinition;
|
|
31
|
+
key: IconDefinition;
|
|
32
|
+
tokens: IconDefinition;
|
|
33
|
+
lock: IconDefinition;
|
|
34
|
+
shield: IconDefinition;
|
|
35
|
+
functions: IconDefinition;
|
|
36
|
+
build: IconDefinition;
|
|
37
|
+
deploys: IconDefinition;
|
|
38
|
+
code: IconDefinition;
|
|
39
|
+
logs: IconDefinition;
|
|
40
|
+
list: IconDefinition;
|
|
41
|
+
activity: IconDefinition;
|
|
42
|
+
settings: IconDefinition;
|
|
43
|
+
sliders: IconDefinition;
|
|
44
|
+
stats: IconDefinition;
|
|
45
|
+
jobs: IconDefinition;
|
|
46
|
+
play: IconDefinition;
|
|
47
|
+
sandboxes: IconDefinition;
|
|
48
|
+
terminal: IconDefinition;
|
|
49
|
+
pools: IconDefinition;
|
|
50
|
+
environments: IconDefinition;
|
|
51
|
+
workspaces: IconDefinition;
|
|
52
|
+
folder: IconDefinition;
|
|
53
|
+
"folder-open": IconDefinition;
|
|
54
|
+
egress: IconDefinition;
|
|
55
|
+
namespaces: IconDefinition;
|
|
56
|
+
database: IconDefinition;
|
|
57
|
+
pipelines: IconDefinition;
|
|
58
|
+
tunnels: IconDefinition;
|
|
59
|
+
ports: IconDefinition;
|
|
60
|
+
server: IconDefinition;
|
|
61
|
+
box: IconDefinition;
|
|
62
|
+
globe: IconDefinition;
|
|
63
|
+
git: IconDefinition;
|
|
64
|
+
fork: IconDefinition;
|
|
65
|
+
snapshot: IconDefinition;
|
|
66
|
+
copy: IconDefinition;
|
|
67
|
+
check: IconDefinition;
|
|
68
|
+
add: IconDefinition;
|
|
69
|
+
delete: IconDefinition;
|
|
70
|
+
edit: IconDefinition;
|
|
71
|
+
download: IconDefinition;
|
|
72
|
+
upload: IconDefinition;
|
|
73
|
+
file: IconDefinition;
|
|
74
|
+
"file-code": IconDefinition;
|
|
75
|
+
archive: IconDefinition;
|
|
76
|
+
pin: IconDefinition;
|
|
77
|
+
rerun: IconDefinition;
|
|
78
|
+
promote: IconDefinition;
|
|
79
|
+
stop: IconDefinition;
|
|
80
|
+
suspend: IconDefinition;
|
|
81
|
+
resume: IconDefinition;
|
|
82
|
+
sync: IconDefinition;
|
|
83
|
+
filter: IconDefinition;
|
|
84
|
+
clock: IconDefinition;
|
|
85
|
+
spinner: IconDefinition;
|
|
86
|
+
warn: IconDefinition;
|
|
87
|
+
error: IconDefinition;
|
|
88
|
+
info: IconDefinition;
|
|
89
|
+
reveal: IconDefinition;
|
|
90
|
+
hide: IconDefinition;
|
|
91
|
+
};
|
|
92
|
+
export type IconName = keyof typeof MAP;
|
|
93
|
+
export declare function extendIcons(more: Record<string, IconDefinition>): void;
|
|
94
|
+
export declare function Icon({ name, spin, size, style, className }: {
|
|
95
|
+
name: IconName | (string & {});
|
|
96
|
+
spin?: boolean | undefined;
|
|
97
|
+
size?: number | undefined;
|
|
98
|
+
style?: React.CSSProperties | undefined;
|
|
99
|
+
className?: string | undefined;
|
|
100
|
+
}): import("react").JSX.Element;
|
|
101
|
+
export {};
|
|
102
|
+
//# sourceMappingURL=Icon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/kit/Icon.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAoBxE,QAAA,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBiC,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,GAAG,CAAC;AAMxC,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,CAEtE;AAKD,wBAAgB,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;IAC3D,IAAI,EAAE,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,+BASA"}
|
package/dist/kit/Icon.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
3
|
+
import { faGaugeHigh, faBolt, faRocket, faCode, faListUl, faUsers, faUserGroup, faKey, faClockRotateLeft, faGear, faMagnifyingGlass, faCircleHalfStroke, faRightFromBracket, faXmark, faChevronDown, faChevronRight, faChevronLeft, faCopy, faCheck, faPlus, faTrash, faPen, faDownload, faUpload, faFile, faFileCode, faFileZipper, faCodeBranch, faTriangleExclamation, faCircleExclamation, faCircleInfo, faGlobe, faArrowRotateRight, faArrowUpRightFromSquare, faFilter, faClock, faBox, faUser, faCircleNotch, faBars, faEllipsis, faLock, faEye, faEyeSlash, faServer, faFolder, faFolderOpen, faCircleUp, faPlay, faShieldHalved, faChartLine, faTerminal, faCubes, faLayerGroup, faThumbtack, faNetworkWired, faStop, faPause, faArrowsRotate, faCamera, faHouse, faTableCells, faDatabase, faEnvelope, faBell, faSun, faMoon, faDesktop, faArrowRight, faArrowLeft, faGrip, faSitemap, faDiagramProject, faBuilding, faIdBadge, faSliders, faBook, } from "@fortawesome/free-solid-svg-icons";
|
|
4
|
+
// One semantic icon map (ported pattern from the xmb kit): call sites name the
|
|
5
|
+
// concept, never the glyph, so swapping the underlying set is a one-file change.
|
|
6
|
+
// This is the union of the container-platform and functions maps plus the
|
|
7
|
+
// console shell's needs; product consoles add their own names via
|
|
8
|
+
// `extendIcons` rather than forking this file.
|
|
9
|
+
const MAP = {
|
|
10
|
+
// navigation / shell
|
|
11
|
+
home: faHouse, overview: faGaugeHigh, products: faTableCells, grid: faTableCells, launcher: faGrip,
|
|
12
|
+
search: faMagnifyingGlass, theme: faCircleHalfStroke, sun: faSun, moon: faMoon, system: faDesktop,
|
|
13
|
+
"sign-out": faRightFromBracket, menu: faBars, more: faEllipsis, bell: faBell, docs: faBook,
|
|
14
|
+
close: faXmark, "chevron-down": faChevronDown, "chevron-right": faChevronRight, "chevron-left": faChevronLeft,
|
|
15
|
+
"arrow-right": faArrowRight, "arrow-left": faArrowLeft, external: faArrowUpRightFromSquare,
|
|
16
|
+
// teams / identity
|
|
17
|
+
members: faUsers, team: faUserGroup, user: faUser, organisation: faBuilding, role: faIdBadge,
|
|
18
|
+
invite: faEnvelope, key: faKey, tokens: faKey, lock: faLock, shield: faShieldHalved,
|
|
19
|
+
// product nouns (generic enough to share)
|
|
20
|
+
functions: faBolt, build: faBolt, deploys: faRocket, code: faCode, logs: faListUl, list: faListUl,
|
|
21
|
+
activity: faClockRotateLeft, settings: faGear, sliders: faSliders, stats: faChartLine,
|
|
22
|
+
jobs: faPlay, play: faPlay, sandboxes: faTerminal, terminal: faTerminal, pools: faCubes,
|
|
23
|
+
environments: faLayerGroup, workspaces: faFolder, folder: faFolder, "folder-open": faFolderOpen,
|
|
24
|
+
egress: faShieldHalved, namespaces: faUsers, database: faDatabase, pipelines: faDiagramProject,
|
|
25
|
+
tunnels: faSitemap, ports: faNetworkWired, server: faServer, box: faBox, globe: faGlobe,
|
|
26
|
+
git: faCodeBranch, fork: faCodeBranch, snapshot: faCamera,
|
|
27
|
+
// actions
|
|
28
|
+
copy: faCopy, check: faCheck, add: faPlus, delete: faTrash, edit: faPen, download: faDownload,
|
|
29
|
+
upload: faUpload, file: faFile, "file-code": faFileCode, archive: faFileZipper, pin: faThumbtack,
|
|
30
|
+
rerun: faArrowRotateRight, promote: faCircleUp, stop: faStop, suspend: faPause, resume: faPlay,
|
|
31
|
+
sync: faArrowsRotate, filter: faFilter, clock: faClock, spinner: faCircleNotch,
|
|
32
|
+
// status
|
|
33
|
+
warn: faTriangleExclamation, error: faCircleExclamation, info: faCircleInfo, reveal: faEye, hide: faEyeSlash,
|
|
34
|
+
};
|
|
35
|
+
// Product consoles register extra glyphs under their own names at startup.
|
|
36
|
+
// Registered names are accepted by `Icon` at runtime; typed access stays on
|
|
37
|
+
// IconName so the shared kit never depends on a product's vocabulary.
|
|
38
|
+
const EXTRA = {};
|
|
39
|
+
export function extendIcons(more) {
|
|
40
|
+
Object.assign(EXTRA, more);
|
|
41
|
+
}
|
|
42
|
+
function lookup(name) {
|
|
43
|
+
return MAP[name] ?? EXTRA[name] ?? faCircleInfo;
|
|
44
|
+
}
|
|
45
|
+
export function Icon({ name, spin, size, style, className }) {
|
|
46
|
+
return (_jsx(FontAwesomeIcon, { icon: lookup(name), spin: spin, className: className, style: { width: size ?? "1em", height: size ?? "1em", ...style } }));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=Icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../src/kit/Icon.tsx"],"names":[],"mappings":"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"}
|
package/dist/kit/KV.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KV.d.ts","sourceRoot":"","sources":["../../src/kit/KV.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAoBvC,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,SAAS,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAAE,EAAE,CAAA;CAAE,+BAWrG"}
|
package/dist/kit/KV.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment } from "react";
|
|
3
|
+
import styled from "styled-components";
|
|
4
|
+
import { v } from "../theme/tokens.js";
|
|
5
|
+
const Grid = styled.div `
|
|
6
|
+
display: grid;
|
|
7
|
+
grid-template-columns: minmax(110px, max-content) 1fr;
|
|
8
|
+
gap: 7px 14px;
|
|
9
|
+
font-size: 12px;
|
|
10
|
+
align-items: baseline;
|
|
11
|
+
`;
|
|
12
|
+
const K = styled.span `color: ${v.faint};`;
|
|
13
|
+
const V = styled.span `
|
|
14
|
+
color: ${v.text};
|
|
15
|
+
font-variant-numeric: tabular-nums;
|
|
16
|
+
min-width: 0;
|
|
17
|
+
word-break: break-all;
|
|
18
|
+
${(p) => (p.$mono ? `font-family: ${v.mono}; font-size: 11.5px;` : "")}
|
|
19
|
+
`;
|
|
20
|
+
export function KVGrid({ items }) {
|
|
21
|
+
return (_jsx(Grid, { children: items.map((it) => (_jsxs(Fragment, { children: [_jsx(K, { children: it.k }), _jsx(V, { "$mono": it.mono, children: it.v ?? "—" })] }, it.k))) }));
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=KV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KV.js","sourceRoot":"","sources":["../../src/kit/KV.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAEvC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAMtB,CAAC;AAEF,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAA,UAAU,CAAC,CAAC,KAAK,GAAG,CAAC;AAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAA6C;WACvD,CAAC,CAAC,IAAI;;;;IAIb,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;CACvE,CAAC;AAEF,MAAM,UAAU,MAAM,CAAC,EAAE,KAAK,EAAwE;IACpG,OAAO,CACL,KAAC,IAAI,cACF,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CACjB,MAAC,QAAQ,eACP,KAAC,CAAC,cAAE,EAAE,CAAC,CAAC,GAAK,EACb,KAAC,CAAC,aAAQ,EAAE,CAAC,IAAI,YAAG,EAAE,CAAC,CAAC,IAAI,GAAG,GAAK,KAFvB,EAAE,CAAC,CAAC,CAGR,CACZ,CAAC,GACG,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface LogLine {
|
|
2
|
+
at?: string | undefined;
|
|
3
|
+
text: string;
|
|
4
|
+
stderr?: boolean | undefined;
|
|
5
|
+
}
|
|
6
|
+
export declare function LogSurface({ lines, height, follow, placeholder }: {
|
|
7
|
+
lines: LogLine[];
|
|
8
|
+
height?: number | undefined;
|
|
9
|
+
follow?: boolean | undefined;
|
|
10
|
+
placeholder?: string | undefined;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
/** LogPanel: LogSurface inside a Panel with a follow toggle and status slot. */
|
|
13
|
+
export declare function LogPanel({ title, lines, status, height, actions, placeholder }: {
|
|
14
|
+
title: string;
|
|
15
|
+
lines: LogLine[];
|
|
16
|
+
status?: React.ReactNode | undefined;
|
|
17
|
+
height?: number | undefined;
|
|
18
|
+
actions?: React.ReactNode | undefined;
|
|
19
|
+
placeholder?: string | undefined;
|
|
20
|
+
}): import("react").JSX.Element;
|
|
21
|
+
//# sourceMappingURL=LogView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogView.d.ts","sourceRoot":"","sources":["../../src/kit/LogView.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,OAAO;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAmBD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAa,EAAE,WAAmC,EAAE,EAAE;IAChG,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,+BAgBA;AAED,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,+BAiBA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef, useState } from "react";
|
|
3
|
+
import styled from "styled-components";
|
|
4
|
+
import { v } from "../theme/tokens.js";
|
|
5
|
+
import { PanelHead, PanelTitle, PanelActions, Panel } from "./Panel.js";
|
|
6
|
+
import { AppButton } from "./Button.js";
|
|
7
|
+
const Sur = styled.pre `
|
|
8
|
+
margin: 0;
|
|
9
|
+
padding: 12px 16px;
|
|
10
|
+
background: ${v.logBg};
|
|
11
|
+
color: ${v.logText};
|
|
12
|
+
font-family: ${v.mono};
|
|
13
|
+
font-size: 11.5px;
|
|
14
|
+
line-height: 1.75;
|
|
15
|
+
overflow: auto;
|
|
16
|
+
height: ${(p) => p.$h ?? 420}px;
|
|
17
|
+
white-space: pre-wrap;
|
|
18
|
+
word-break: break-word;
|
|
19
|
+
`;
|
|
20
|
+
const Ts = styled.span `color: ${v.logDim}; user-select: none;`;
|
|
21
|
+
const Err = styled.span `color: ${v.danger};`;
|
|
22
|
+
export function LogSurface({ lines, height, follow = true, placeholder = "waiting for output…" }) {
|
|
23
|
+
const ref = useRef(null);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (follow && ref.current)
|
|
26
|
+
ref.current.scrollTop = ref.current.scrollHeight;
|
|
27
|
+
}, [lines, follow]);
|
|
28
|
+
return (_jsxs(Sur, { ref: ref, "$h": height, children: [lines.length === 0 ? _jsx(Ts, { children: placeholder }) : null, lines.map((l, i) => (_jsxs("div", { children: [l.at ? _jsxs(Ts, { children: [l.at, " "] }) : null, l.stderr ? _jsx(Err, { children: l.text }) : l.text] }, i)))] }));
|
|
29
|
+
}
|
|
30
|
+
/** LogPanel: LogSurface inside a Panel with a follow toggle and status slot. */
|
|
31
|
+
export function LogPanel({ title, lines, status, height, actions, placeholder }) {
|
|
32
|
+
const [follow, setFollow] = useState(true);
|
|
33
|
+
return (_jsxs(Panel, { children: [_jsxs(PanelHead, { children: [_jsx(PanelTitle, { children: title }), status, _jsxs(PanelActions, { children: [actions, _jsx(AppButton, { size: "xs", variant: follow ? "quiet" : "ghost", onClick: () => setFollow(!follow), children: follow ? "Following" : "Follow" })] })] }), _jsx(LogSurface, { lines: lines, height: height, follow: follow, ...(placeholder !== undefined ? { placeholder } : {}) })] }));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=LogView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogView.js","sourceRoot":"","sources":["../../src/kit/LogView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
declare const sizes: {
|
|
3
|
+
readonly sm: 420;
|
|
4
|
+
readonly md: 560;
|
|
5
|
+
readonly lg: 760;
|
|
6
|
+
};
|
|
7
|
+
export declare function EntityModal({ title, sub, size, onClose, dismissable, children }: {
|
|
8
|
+
title: string;
|
|
9
|
+
sub?: string | undefined;
|
|
10
|
+
size?: keyof typeof sizes | undefined;
|
|
11
|
+
onClose: () => void;
|
|
12
|
+
/** false for one-time-secret flows: no backdrop/Esc close, explicit button only */
|
|
13
|
+
dismissable?: boolean | undefined;
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
}): import("react").JSX.Element;
|
|
16
|
+
/**
|
|
17
|
+
* ConfirmDialog: two-step confirmation for destructive actions. Pass typedValue
|
|
18
|
+
* to require the operator to type the entity name (function deletes, team
|
|
19
|
+
* deletes) before the destructive button arms.
|
|
20
|
+
*/
|
|
21
|
+
export declare function ConfirmDialog({ title, body, actionLabel, typedValue, danger, busy, extra, onConfirm, onClose }: {
|
|
22
|
+
title: string;
|
|
23
|
+
body: ReactNode;
|
|
24
|
+
actionLabel: string;
|
|
25
|
+
typedValue?: string | undefined;
|
|
26
|
+
danger?: boolean | undefined;
|
|
27
|
+
busy?: boolean | undefined;
|
|
28
|
+
extra?: ReactNode | undefined;
|
|
29
|
+
onConfirm: () => void;
|
|
30
|
+
onClose: () => void;
|
|
31
|
+
}): import("react").JSX.Element;
|
|
32
|
+
/**
|
|
33
|
+
* PromptDialog: a one-field modal for naming things (new file, rename) — the
|
|
34
|
+
* kit's replacement for window.prompt, which cannot be styled or validated.
|
|
35
|
+
*/
|
|
36
|
+
export declare function PromptDialog({ title, body, label, initial, placeholder, actionLabel, busy, validate, onSubmit, onClose }: {
|
|
37
|
+
title: string;
|
|
38
|
+
body?: ReactNode | undefined;
|
|
39
|
+
label: string;
|
|
40
|
+
initial?: string | undefined;
|
|
41
|
+
placeholder?: string;
|
|
42
|
+
actionLabel?: string | undefined;
|
|
43
|
+
busy?: boolean | undefined;
|
|
44
|
+
/** returns why the value is invalid, or null */
|
|
45
|
+
validate?: ((value: string) => string | null) | undefined;
|
|
46
|
+
onSubmit: (value: string) => void;
|
|
47
|
+
onClose: () => void;
|
|
48
|
+
}): import("react").JSX.Element;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=Modal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/kit/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAsBpE,QAAA,MAAM,KAAK;;;;CAAyC,CAAC;AAgDrD,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAW,EAAE,OAAO,EAAE,WAAkB,EAAE,QAAQ,EAAE,EAAE;IAC9F,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,OAAO,KAAK,GAAG,SAAS,CAAC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,mFAAmF;IACnF,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAkCA;AASD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAa,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;IACtH,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,+BAqBA;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAY,EAAE,WAAW,EAAE,WAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IACrI,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,+BA6BA"}
|