@maxhealth.tech/prefab 0.3.11 → 0.3.12
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/CHANGELOG.md +15 -3
- package/dist/a2ui/catalog.js +1 -1
- package/dist/a2ui/catalog.js.map +1 -1
- package/dist/a2ui.min.js +1 -1
- package/dist/auto/form.d.ts.map +1 -1
- package/dist/auto/form.js +6 -1
- package/dist/auto/form.js.map +1 -1
- package/dist/components/form/index.d.ts +7 -3
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +8 -3
- package/dist/components/form/index.js.map +1 -1
- package/dist/core/component.d.ts +11 -1
- package/dist/core/component.d.ts.map +1 -1
- package/dist/core/component.js +4 -1
- package/dist/core/component.js.map +1 -1
- package/dist/core/version.d.ts +1 -1
- package/dist/core/version.js +1 -1
- package/dist/renderer/components/choice.d.ts +10 -0
- package/dist/renderer/components/choice.d.ts.map +1 -0
- package/dist/renderer/components/choice.js +261 -0
- package/dist/renderer/components/choice.js.map +1 -0
- package/dist/renderer/components/form.d.ts +24 -1
- package/dist/renderer/components/form.d.ts.map +1 -1
- package/dist/renderer/components/form.js +36 -239
- package/dist/renderer/components/form.js.map +1 -1
- package/dist/renderer/components/index.d.ts.map +1 -1
- package/dist/renderer/components/index.js +2 -0
- package/dist/renderer/components/index.js.map +1 -1
- package/dist/renderer.auto.min.js +10 -10
- package/dist/renderer.min.js +10 -10
- package/package.json +1 -1
package/dist/core/version.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* `release.yml` (see `scripts/changelog-release.ts` companion step). Identifies
|
|
10
10
|
* the app to an MCP Apps host (`appInfo.version`) and pins the CDN URL.
|
|
11
11
|
*/
|
|
12
|
-
export declare const VERSION = "0.3.
|
|
12
|
+
export declare const VERSION = "0.3.12";
|
|
13
13
|
/**
|
|
14
14
|
* Wire protocol version emitted in `$prefab.version`.
|
|
15
15
|
*
|
package/dist/core/version.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* `release.yml` (see `scripts/changelog-release.ts` companion step). Identifies
|
|
10
10
|
* the app to an MCP Apps host (`appInfo.version`) and pins the CDN URL.
|
|
11
11
|
*/
|
|
12
|
-
export const VERSION = '0.3.
|
|
12
|
+
export const VERSION = '0.3.12';
|
|
13
13
|
/**
|
|
14
14
|
* Wire protocol version emitted in `$prefab.version`.
|
|
15
15
|
*
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Choice control renderers - Select, Radio, Combobox, ChoiceCard.
|
|
3
|
+
*
|
|
4
|
+
* Split from `form.ts`, which had grown past the point where the controls that
|
|
5
|
+
* offer a fixed set of choices could be read as a group. They share `required`
|
|
6
|
+
* marking and label wrapping with the text inputs, so those helpers stay in
|
|
7
|
+
* `form.ts` and are imported here.
|
|
8
|
+
*/
|
|
9
|
+
export declare function registerChoiceComponents(): void;
|
|
10
|
+
//# sourceMappingURL=choice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"choice.d.ts","sourceRoot":"","sources":["../../../src/renderer/components/choice.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,wBAAgB,wBAAwB,IAAI,IAAI,CAc/C"}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Choice control renderers - Select, Radio, Combobox, ChoiceCard.
|
|
3
|
+
*
|
|
4
|
+
* Split from `form.ts`, which had grown past the point where the controls that
|
|
5
|
+
* offer a fixed set of choices could be read as a group. They share `required`
|
|
6
|
+
* marking and label wrapping with the text inputs, so those helpers stay in
|
|
7
|
+
* `form.ts` and are imported here.
|
|
8
|
+
*/
|
|
9
|
+
import { registerComponent, renderChildren, renderNode, resolveStr, el, makeDispatchCtx } from '../engine.js';
|
|
10
|
+
import { dispatchActions, fireAndForget } from '../actions.js';
|
|
11
|
+
import { stringifyValue } from '../../core/stringify.js';
|
|
12
|
+
import { withLabel, markRequired, applyInputStyle, renderContainerDiv, renderTextSpan, renderSeparatorHr } from './form.js';
|
|
13
|
+
export function registerChoiceComponents() {
|
|
14
|
+
registerComponent('Select', withLabel(renderSelect));
|
|
15
|
+
registerComponent('SelectOption', renderSelectOption);
|
|
16
|
+
registerComponent('SelectGroup', renderContainerDiv('pf-select-group'));
|
|
17
|
+
registerComponent('SelectLabel', renderTextSpan('pf-select-label'));
|
|
18
|
+
registerComponent('SelectSeparator', renderSeparatorHr);
|
|
19
|
+
registerComponent('Radio', renderRadio);
|
|
20
|
+
registerComponent('RadioGroup', renderRadioGroup);
|
|
21
|
+
registerComponent('Combobox', withLabel(renderCombobox));
|
|
22
|
+
registerComponent('ComboboxOption', renderComboboxOption);
|
|
23
|
+
registerComponent('ComboboxGroup', renderContainerDiv('pf-combobox-group'));
|
|
24
|
+
registerComponent('ComboboxLabel', renderTextSpan('pf-combobox-label'));
|
|
25
|
+
registerComponent('ComboboxSeparator', renderSeparatorHr);
|
|
26
|
+
registerComponent('ChoiceCard', renderChoiceCard);
|
|
27
|
+
}
|
|
28
|
+
function renderSelect(node, ctx) {
|
|
29
|
+
const wrapper = el('div', 'pf-select-wrapper');
|
|
30
|
+
const select = document.createElement('select');
|
|
31
|
+
select.className = 'pf-select';
|
|
32
|
+
if (node.name != null)
|
|
33
|
+
select.name = node.name;
|
|
34
|
+
if (node.multiple === true)
|
|
35
|
+
select.multiple = true;
|
|
36
|
+
markRequired(select, node);
|
|
37
|
+
applyInputStyle(select);
|
|
38
|
+
// Placeholder option
|
|
39
|
+
if (node.placeholder != null) {
|
|
40
|
+
const ph = document.createElement('option');
|
|
41
|
+
ph.value = '';
|
|
42
|
+
ph.textContent = resolveStr(node.placeholder, ctx);
|
|
43
|
+
ph.disabled = true;
|
|
44
|
+
ph.selected = true;
|
|
45
|
+
ph.hidden = true;
|
|
46
|
+
select.appendChild(ph);
|
|
47
|
+
}
|
|
48
|
+
// Support shorthand `options` array: [{label, value}]
|
|
49
|
+
const opts = node.options;
|
|
50
|
+
if (Array.isArray(opts)) {
|
|
51
|
+
for (const o of opts) {
|
|
52
|
+
const option = document.createElement('option');
|
|
53
|
+
option.value = o.value ?? '';
|
|
54
|
+
option.textContent = o.label ?? option.value;
|
|
55
|
+
select.appendChild(option);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Render SelectOption children
|
|
59
|
+
if (node.children) {
|
|
60
|
+
for (const child of node.children) {
|
|
61
|
+
if (child.type === 'SelectOption') {
|
|
62
|
+
const option = document.createElement('option');
|
|
63
|
+
option.value = child.value ?? '';
|
|
64
|
+
option.textContent = child.label ?? option.value;
|
|
65
|
+
select.appendChild(option);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
select.appendChild(renderNode(child, ctx));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const name = node.name;
|
|
73
|
+
if (name) {
|
|
74
|
+
const stateVal = ctx.store.get(name);
|
|
75
|
+
if (stateVal != null)
|
|
76
|
+
applySelectValue(select, stateVal);
|
|
77
|
+
select.addEventListener('change', () => {
|
|
78
|
+
const current = selectValue(select);
|
|
79
|
+
ctx.store.set(name, current);
|
|
80
|
+
if (node.onChange != null) {
|
|
81
|
+
fireAndForget(dispatchActions(node.onChange, { ...makeDispatchCtx(ctx), scope: { ...ctx.scope, $event: current } }), 'onChange');
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
wrapper.appendChild(select);
|
|
86
|
+
return wrapper;
|
|
87
|
+
}
|
|
88
|
+
/** The chosen value: an array on a multi-select, the single value otherwise. */
|
|
89
|
+
function selectValue(select) {
|
|
90
|
+
if (!select.multiple)
|
|
91
|
+
return select.value;
|
|
92
|
+
return Array.from(select.selectedOptions, o => o.value);
|
|
93
|
+
}
|
|
94
|
+
/** Restore a stored value, which for a multi-select is a list of them. */
|
|
95
|
+
function applySelectValue(select, stored) {
|
|
96
|
+
if (!select.multiple) {
|
|
97
|
+
select.value = stringifyValue(stored);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const chosen = new Set((Array.isArray(stored) ? stored : [stored]).map(v => stringifyValue(v)));
|
|
101
|
+
for (const option of select.options)
|
|
102
|
+
option.selected = chosen.has(option.value);
|
|
103
|
+
}
|
|
104
|
+
function renderSelectOption(_node, _ctx) {
|
|
105
|
+
// Handled inline by renderSelect
|
|
106
|
+
return el('span');
|
|
107
|
+
}
|
|
108
|
+
// ── Radio ────────────────────────────────────────────────────────────────────
|
|
109
|
+
function renderRadio(node, ctx) {
|
|
110
|
+
const label = el('label', 'pf-radio');
|
|
111
|
+
label.style.display = 'flex';
|
|
112
|
+
label.style.alignItems = 'center';
|
|
113
|
+
label.style.gap = '8px';
|
|
114
|
+
label.style.cursor = 'pointer';
|
|
115
|
+
const input = document.createElement('input');
|
|
116
|
+
input.type = 'radio';
|
|
117
|
+
input.value = resolveStr(node.value, ctx);
|
|
118
|
+
label.appendChild(input);
|
|
119
|
+
if (node.label != null) {
|
|
120
|
+
const text = el('span', 'pf-radio-label');
|
|
121
|
+
text.textContent = resolveStr(node.label, ctx);
|
|
122
|
+
label.appendChild(text);
|
|
123
|
+
}
|
|
124
|
+
return label;
|
|
125
|
+
}
|
|
126
|
+
// ── RadioGroup ───────────────────────────────────────────────────────────────
|
|
127
|
+
function renderRadioGroup(node, ctx) {
|
|
128
|
+
const e = el('fieldset', 'pf-radio-group');
|
|
129
|
+
markRequired(e, node);
|
|
130
|
+
e.style.border = 'none';
|
|
131
|
+
e.style.padding = '0';
|
|
132
|
+
e.style.display = 'flex';
|
|
133
|
+
e.style.flexDirection = 'column';
|
|
134
|
+
e.style.gap = '8px';
|
|
135
|
+
if (node.label != null) {
|
|
136
|
+
const legend = document.createElement('legend');
|
|
137
|
+
legend.textContent = resolveStr(node.label, ctx);
|
|
138
|
+
legend.style.fontWeight = '500';
|
|
139
|
+
legend.style.marginBottom = '4px';
|
|
140
|
+
e.appendChild(legend);
|
|
141
|
+
}
|
|
142
|
+
renderChildren(node, e, ctx);
|
|
143
|
+
// Wire up name attribute on child radios and pre-select from state
|
|
144
|
+
const name = resolveStr(node.name, ctx);
|
|
145
|
+
const stateVal = ctx.store.get(name);
|
|
146
|
+
for (const radio of Array.from(e.querySelectorAll('input[type="radio"]'))) {
|
|
147
|
+
;
|
|
148
|
+
radio.name = name;
|
|
149
|
+
if (stateVal != null && radio.value === stringifyValue(stateVal)) {
|
|
150
|
+
;
|
|
151
|
+
radio.checked = true;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
e.addEventListener('change', (evt) => {
|
|
155
|
+
const target = evt.target;
|
|
156
|
+
if (target.type === 'radio') {
|
|
157
|
+
ctx.store.set(name, target.value);
|
|
158
|
+
if (node.onChange != null) {
|
|
159
|
+
fireAndForget(dispatchActions(node.onChange, makeDispatchCtx(ctx)), 'onChange');
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
return e;
|
|
164
|
+
}
|
|
165
|
+
// ── Combobox ─────────────────────────────────────────────────────────────────
|
|
166
|
+
function renderCombobox(node, ctx) {
|
|
167
|
+
const e = el('div', 'pf-combobox');
|
|
168
|
+
const input = document.createElement('input');
|
|
169
|
+
input.className = 'pf-combobox-input';
|
|
170
|
+
input.type = 'text';
|
|
171
|
+
input.name = resolveStr(node.name, ctx);
|
|
172
|
+
markRequired(input, node);
|
|
173
|
+
if (node.placeholder != null)
|
|
174
|
+
input.placeholder = resolveStr(node.placeholder, ctx);
|
|
175
|
+
if (node.value !== undefined)
|
|
176
|
+
input.value = resolveStr(node.value, ctx);
|
|
177
|
+
// Read initial value from state
|
|
178
|
+
const cbName = input.name;
|
|
179
|
+
const cbStateVal = ctx.store.get(cbName);
|
|
180
|
+
if (cbStateVal != null)
|
|
181
|
+
input.value = stringifyValue(cbStateVal);
|
|
182
|
+
input.style.padding = '6px 12px';
|
|
183
|
+
input.style.borderRadius = '6px';
|
|
184
|
+
input.style.width = '100%';
|
|
185
|
+
input.style.boxSizing = 'border-box';
|
|
186
|
+
const dropdown = el('div', 'pf-combobox-dropdown');
|
|
187
|
+
dropdown.style.display = 'none';
|
|
188
|
+
dropdown.style.position = 'absolute';
|
|
189
|
+
dropdown.style.borderRadius = '6px';
|
|
190
|
+
dropdown.style.maxHeight = '200px';
|
|
191
|
+
dropdown.style.overflowY = 'auto';
|
|
192
|
+
dropdown.style.zIndex = '50';
|
|
193
|
+
renderChildren(node, dropdown, ctx);
|
|
194
|
+
input.addEventListener('focus', () => { dropdown.style.display = 'block'; });
|
|
195
|
+
input.addEventListener('blur', () => {
|
|
196
|
+
setTimeout(() => { dropdown.style.display = 'none'; }, 150);
|
|
197
|
+
});
|
|
198
|
+
if (node.searchable !== false) {
|
|
199
|
+
input.addEventListener('input', () => {
|
|
200
|
+
const q = input.value.toLowerCase();
|
|
201
|
+
for (const opt of Array.from(dropdown.querySelectorAll('.pf-combobox-option'))) {
|
|
202
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- textContent is string | null per DOM spec
|
|
203
|
+
const text = (opt.textContent ?? '').toLowerCase();
|
|
204
|
+
opt.style.display = text.includes(q) ? '' : 'none';
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
// Listen for option selection (custom event from ComboboxOption)
|
|
209
|
+
if (node.onChange != null) {
|
|
210
|
+
e.addEventListener('pf-combobox-select', () => {
|
|
211
|
+
fireAndForget(dispatchActions(node.onChange, { ...makeDispatchCtx(ctx), scope: { ...ctx.scope, $event: input.value } }), 'onChange');
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
e.style.position = 'relative';
|
|
215
|
+
e.appendChild(input);
|
|
216
|
+
e.appendChild(dropdown);
|
|
217
|
+
return e;
|
|
218
|
+
}
|
|
219
|
+
function renderComboboxOption(node, ctx) {
|
|
220
|
+
const e = el('div', 'pf-combobox-option');
|
|
221
|
+
e.style.padding = '6px 12px';
|
|
222
|
+
e.style.cursor = 'pointer';
|
|
223
|
+
e.textContent = resolveStr(node.label ?? node.value, ctx);
|
|
224
|
+
e.dataset.value = resolveStr(node.value, ctx);
|
|
225
|
+
e.addEventListener('mousedown', () => {
|
|
226
|
+
const combobox = e.closest('.pf-combobox');
|
|
227
|
+
const input = combobox?.querySelector('input');
|
|
228
|
+
if (input) {
|
|
229
|
+
input.value = e.dataset.value ?? '';
|
|
230
|
+
ctx.store.set(input.name, input.value);
|
|
231
|
+
combobox?.dispatchEvent(new CustomEvent('pf-combobox-select', { bubbles: false }));
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
return e;
|
|
235
|
+
}
|
|
236
|
+
// ── ChoiceCard ───────────────────────────────────────────────────────────────
|
|
237
|
+
function renderChoiceCard(node, ctx) {
|
|
238
|
+
const e = el('div', 'pf-choice-card');
|
|
239
|
+
e.style.padding = '16px';
|
|
240
|
+
e.style.cursor = 'pointer';
|
|
241
|
+
e.style.transition = 'border-color 0.2s';
|
|
242
|
+
e.dataset.value = resolveStr(node.value, ctx);
|
|
243
|
+
if (node.selected === true) {
|
|
244
|
+
e.dataset.selected = 'true';
|
|
245
|
+
}
|
|
246
|
+
if (node.label != null) {
|
|
247
|
+
const title = el('div', 'pf-choice-card-label');
|
|
248
|
+
title.textContent = resolveStr(node.label, ctx);
|
|
249
|
+
title.style.fontWeight = '600';
|
|
250
|
+
e.appendChild(title);
|
|
251
|
+
}
|
|
252
|
+
if (node.description != null) {
|
|
253
|
+
const desc = el('div', 'pf-choice-card-description');
|
|
254
|
+
desc.textContent = resolveStr(node.description, ctx);
|
|
255
|
+
desc.style.fontSize = '14px';
|
|
256
|
+
e.appendChild(desc);
|
|
257
|
+
}
|
|
258
|
+
renderChildren(node, e, ctx);
|
|
259
|
+
return e;
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=choice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"choice.js","sourceRoot":"","sources":["../../../src/renderer/components/choice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Form component renderers — Form, Input,
|
|
2
|
+
* Form component renderers — Form, Input, Textarea, Button, Checkbox, Switch,
|
|
3
|
+
* Slider and the date controls. The controls that offer a fixed set of choices
|
|
4
|
+
* live in `choice.ts` and share the helpers exported from here.
|
|
3
5
|
*/
|
|
6
|
+
import type { ComponentNode, RenderContext } from '../engine.js';
|
|
4
7
|
export declare function registerFormComponents(): void;
|
|
8
|
+
/**
|
|
9
|
+
* Add label support to a renderer that lays its control out vertically.
|
|
10
|
+
*
|
|
11
|
+
* Applied at registration rather than inside each renderer. Checkbox, Switch,
|
|
12
|
+
* Radio, RadioGroup and ChoiceCard place their own label beside the control, so
|
|
13
|
+
* they are deliberately not wrapped.
|
|
14
|
+
*/
|
|
15
|
+
export declare function withLabel(fn: (node: ComponentNode, ctx: RenderContext) => HTMLElement): (node: ComponentNode, ctx: RenderContext) => HTMLElement;
|
|
16
|
+
/**
|
|
17
|
+
* Mark a control as required, on the element and for assistive technology.
|
|
18
|
+
*
|
|
19
|
+
* `aria-required` is set even where the native attribute already implies it,
|
|
20
|
+
* because the wrappers around these controls are what a screen reader reaches
|
|
21
|
+
* first, and it is the only marker Combobox and RadioGroup can carry at all.
|
|
22
|
+
*/
|
|
23
|
+
export declare function markRequired(element: HTMLElement, node: ComponentNode): void;
|
|
24
|
+
export declare function applyInputStyle(e: HTMLElement): void;
|
|
25
|
+
export declare function renderContainerDiv(className: string): (node: ComponentNode, ctx: RenderContext) => HTMLElement;
|
|
26
|
+
export declare function renderTextSpan(className: string): (node: ComponentNode, ctx: RenderContext) => HTMLElement;
|
|
27
|
+
export declare function renderSeparatorHr(): HTMLElement;
|
|
5
28
|
//# sourceMappingURL=form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/renderer/components/form.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/renderer/components/form.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAKhE,wBAAgB,sBAAsB,IAAI,IAAI,CAgB7C;AAoDD;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,KAAK,WAAW,GAC3D,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,KAAK,WAAW,CAS1D;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAI5E;AA4LD,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,CAKpD;AAoBD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,KAAK,WAAW,CAM9G;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,KAAK,WAAW,CAM1G;AAED,wBAAgB,iBAAiB,IAAI,WAAW,CAM/C"}
|