@kubohiroya/turbowarp-extension-data-editor 0.3.0 → 0.3.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.
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@kubohiroya/turbowarp-extension-data-editor",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "repository": "https://github.com/kubohiroya/turbowarp-extension-data-editor",
5
- "revision": "9409867dc58d56cd652afa83f2361810dc8da826",
5
+ "revision": "b5da552d5e5a9a4b3cde49f6410d463df48eb62f",
6
6
  "sourceState": "commit",
7
- "sourceSha256": "7aae735fe9bd33f5fcc3ca055186be84aa89de1fb6b31c66b68d1cca3c3731f3",
7
+ "sourceSha256": "0e297f919ee81101e825bea99a6c20203fbd918a555e1c19e4b14f0132a2b1b7",
8
8
  "capabilities": {
9
9
  "preparedSource": 1
10
10
  }
@@ -5,4 +5,4 @@ export declare function FormHelp({ description, id }: {
5
5
  description: unknown;
6
6
  id?: string;
7
7
  }): React.ReactElement | null;
8
- export declare const formStyles = "\n[data-editor-form]{--editor-accent:var(--block-editor-accent,#426ad6);--editor-line:var(--block-editor-border,#dde3ed);--editor-muted:var(--block-editor-muted,var(--block-editor-text,#637086));color:var(--block-editor-text,#25334a);font:14px/1.5 system-ui,sans-serif;min-width:0}\n[data-editor-form] *,[data-editor-form] *:before,[data-editor-form] *:after{box-sizing:border-box}\n[data-editor-form] fieldset{min-width:0}\n[data-editor-form] fieldset.editor-form-binding,[data-editor-form] .editor-form-section,[data-editor-form] .rjsf fieldset{padding:0;border:0;margin:0 0 18px}\n[data-editor-form] .editor-form-section>legend,[data-editor-form] .rjsf fieldset>legend{font-size:15px;font-weight:650;padding:0;margin:0 0 10px;color:inherit}\n[data-editor-form] .editor-form-field,[data-editor-form] .rjsf .form-group{margin:0 0 14px;min-width:0}\n[data-editor-form] .editor-form-field>label,[data-editor-form] .rjsf .control-label{display:block;font-size:13px;font-weight:600;margin:0 0 6px;color:inherit}\n[data-editor-form] .required{color:var(--editor-accent);margin-left:3px}\n[data-editor-form] input:not([type=checkbox]):not([type=radio]),[data-editor-form] select,[data-editor-form] textarea{display:block;width:100%;min-height:38px;margin:0;padding:8px 11px;border:1px solid var(--editor-line);border-radius:7px;background:var(--block-editor-input,white);color:inherit;font:inherit;box-shadow:0 1px 2px #172b4d05}\n[data-editor-form] textarea{min-height:76px;resize:vertical}\n[data-editor-form] input:focus-visible,[data-editor-form] select:focus-visible,[data-editor-form] textarea:focus-visible,[data-editor-form] button:focus-visible,[data-editor-form] summary:focus-visible{outline:2px solid var(--editor-accent);outline-offset:2px}\n[data-editor-form] input[readonly]{background:var(--block-editor-subtle,var(--block-editor-background,#f5f7fb));color:var(--editor-muted)}\n[data-editor-form] input[type=checkbox]{width:17px;height:17px;margin:0;accent-color:var(--editor-accent)}\n[data-editor-form] .editor-form-field>label.editor-form-toggle,[data-editor-form] .rjsf .checkbox>label{display:flex;align-items:center;gap:8px;font-weight:500;margin:8px 0}\n[data-editor-form] button{font:inherit;cursor:pointer;border:1px solid var(--editor-line);border-radius:6px;background:var(--block-editor-input,white);color:inherit;padding:6px 10px;margin:0}\n[data-editor-form] button:disabled{cursor:default;opacity:.5}\n[data-editor-form] .editor-form-hint,[data-editor-form] .editor-form-help{color:var(--editor-muted);font-size:12px;line-height:1.5;margin:5px 0 10px}\n[data-editor-form] .editor-form-help>summary{cursor:pointer;width:fit-content;font-weight:500}\n[data-editor-form] .editor-form-help p{margin:8px 0}\n[data-editor-form] .block-editor-layout-tabs>[role=tablist]{display:flex;gap:4px;flex-wrap:wrap;padding:5px;background:var(--block-editor-subtle,var(--block-editor-background,#f1f4f9));border:1px solid var(--editor-line);border-radius:9px;margin:4px 0 20px}\n[data-editor-form] .block-editor-layout-tabs>[role=tablist]>button{border:0;border-radius:6px;background:transparent;color:var(--editor-muted);padding:8px 18px;margin:0;font-weight:550;text-decoration:none;min-width:76px}\n[data-editor-form] .block-editor-layout-tabs>[role=tablist]>[aria-selected=true]{background:var(--block-editor-input,white);color:var(--editor-accent);box-shadow:0 1px 4px #1d30431a}\n[data-editor-form] .editor-form-error-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;margin-left:7px;padding:0 5px;border-radius:10px;background:#fff0f0;color:#b53d45;font-size:11px}\n[data-editor-form] fieldset.block-editor-layout-group{border:1px solid var(--editor-line);border-radius:10px;padding:16px 18px 4px;margin:0 0 18px;background:var(--block-editor-background,white)}\n[data-editor-form] fieldset.block-editor-layout-group>legend{padding:0 6px;font-size:13px;font-weight:650}\n[data-editor-form] .block-editor-layout-grid{display:grid;gap:0 18px;grid-template-columns:repeat(var(--editor-columns),minmax(0,1fr));align-items:start}\n[data-editor-form] .block-editor-layout-grid>*{min-width:0}\n[data-editor-form] .block-editor-layout-tabs>[hidden]{display:none!important}\n[data-editor-form] .editor-form-toolbar{display:flex;align-items:start;justify-content:space-between;gap:12px;margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid var(--editor-line)}\n[data-editor-form] .editor-form-modes{display:flex;gap:3px;border:1px solid var(--editor-line);border-radius:8px;padding:3px;background:var(--block-editor-subtle,var(--block-editor-background,#f1f4f9))}\n[data-editor-form] .editor-form-modes>button{border:0;border-radius:5px;padding:5px 14px;background:transparent;color:var(--editor-muted);margin:0}\n[data-editor-form] .editor-form-modes>[aria-pressed=true]{background:var(--block-editor-input,white);color:var(--editor-accent);box-shadow:0 1px 3px #1d30431a}\n[data-editor-form] .editor-form-tools{font-size:12px;color:var(--editor-muted);margin:0 0 12px}\n[data-editor-form] .editor-form-tools>summary{cursor:pointer;padding:5px 0;list-style-position:inside}\n[data-editor-form] .editor-form-tools[open]{padding:10px 12px;border:1px solid var(--editor-line);border-radius:8px;background:var(--block-editor-subtle,var(--block-editor-background,#f7f9fc))}\n[data-editor-form] .editor-form-tools button{border:1px solid var(--editor-line);border-radius:6px;background:var(--block-editor-input,white);padding:5px 9px;margin:5px 5px 5px 0;color:inherit}\n[data-editor-form] .editor-form-tools label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:5px 0}\n[data-editor-form] .editor-form-invalid{font-size:12px;color:#b53d45;margin:5px 0}\n[data-editor-form] [data-source-error=true]>input,[data-editor-form] [data-source-error=true]>textarea{border-color:#b53d45}\n[data-editor-form] .editor-form-array-item{display:flex;align-items:start;gap:10px}\n[data-editor-form] .editor-form-array-item>.editor-form-field{flex:1;min-width:0}\n@media(max-width:600px){[data-editor-form] .block-editor-layout-grid{grid-template-columns:minmax(0,1fr)}[data-editor-form] fieldset.block-editor-layout-group{padding:12px 12px 0}[data-editor-form] .block-editor-layout-tabs>[role=tablist]>button{padding:7px 12px;min-width:60px}[data-editor-form] .editor-form-toolbar{flex-wrap:wrap}}\n";
8
+ export declare const formStyles = "\n[data-editor-form]{--editor-accent:var(--block-editor-accent,#426ad6);--editor-line:var(--block-editor-border,#dde3ed);--editor-muted:var(--block-editor-muted,var(--block-editor-text,#637086));color:var(--block-editor-text,#25334a);font:14px/1.5 system-ui,sans-serif;min-width:0}\n[data-editor-form] *,[data-editor-form] *:before,[data-editor-form] *:after{box-sizing:border-box}\n[data-editor-form] fieldset{min-width:0}\n[data-editor-form] fieldset.editor-form-binding,[data-editor-form] .editor-form-section,[data-editor-form] .rjsf fieldset{padding:0;border:0;margin:0 0 18px}\n[data-editor-form] .editor-form-section>legend,[data-editor-form] .rjsf fieldset>legend{font-size:15px;font-weight:650;padding:0;margin:0 0 10px;color:inherit}\n[data-editor-form] .editor-form-field,[data-editor-form] .rjsf .form-group{margin:0 0 14px;min-width:0}\n[data-editor-form] .editor-form-field>label,[data-editor-form] .rjsf .control-label{display:block;font-size:13px;font-weight:600;margin:0 0 6px;color:inherit}\n[data-editor-form] .required{color:var(--editor-accent);margin-left:3px}\n[data-editor-form] input:not([type=checkbox]):not([type=radio]),[data-editor-form] select,[data-editor-form] textarea{display:block;width:100%;min-height:38px;margin:0;padding:8px 11px;border:1px solid var(--editor-line);border-radius:7px;background:var(--block-editor-input,white);color:inherit;font:inherit;box-shadow:0 1px 2px #172b4d05}\n[data-editor-form] textarea{min-height:76px;resize:vertical}\n[data-editor-form] input:focus-visible,[data-editor-form] select:focus-visible,[data-editor-form] textarea:focus-visible,[data-editor-form] button:focus-visible,[data-editor-form] summary:focus-visible{outline:2px solid var(--editor-accent);outline-offset:2px}\n[data-editor-form] input[readonly]{background:var(--block-editor-subtle,var(--block-editor-background,#f5f7fb));color:var(--editor-muted)}\n[data-editor-form] input[type=checkbox]{width:17px;height:17px;margin:0;accent-color:var(--editor-accent)}\n[data-editor-form] .editor-form-field>label.editor-form-toggle,[data-editor-form] .rjsf .checkbox>label{display:flex;align-items:center;gap:8px;font-weight:500;margin:8px 0}\n[data-editor-form] button{font:inherit;cursor:pointer;border:1px solid var(--editor-line);border-radius:6px;background:var(--block-editor-input,white);color:inherit;padding:6px 10px;margin:0}\n[data-editor-form] button:disabled{cursor:default;opacity:.5}\n[data-editor-form] .editor-form-hint,[data-editor-form] .editor-form-help{color:var(--editor-muted);font-size:12px;line-height:1.5;margin:5px 0 10px}\n[data-editor-form] .editor-form-help>summary{display:list-item;list-style:disclosure-closed inside;cursor:pointer;width:fit-content;font-weight:500}\n[data-editor-form] .editor-form-help[open]>summary{list-style-type:disclosure-open}\n[data-editor-form] .editor-form-help p{margin:8px 0}\n[data-editor-form] .block-editor-layout-tabs>[role=tablist]{display:flex;gap:4px;flex-wrap:wrap;padding:5px;background:var(--block-editor-subtle,var(--block-editor-background,#f1f4f9));border:1px solid var(--editor-line);border-radius:9px;margin:4px 0 20px}\n[data-editor-form] .block-editor-layout-tabs>[role=tablist]>button{border:0;border-radius:6px;background:transparent;color:var(--editor-muted);padding:8px 18px;margin:0;font-weight:550;text-decoration:none;min-width:76px}\n[data-editor-form] .block-editor-layout-tabs>[role=tablist]>[aria-selected=true]{background:var(--block-editor-input,white);color:var(--editor-accent);box-shadow:0 1px 4px #1d30431a}\n[data-editor-form] .editor-form-error-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;margin-left:7px;padding:0 5px;border-radius:10px;background:#fff0f0;color:#b53d45;font-size:11px}\n[data-editor-form] fieldset.block-editor-layout-group{border:1px solid var(--editor-line);border-radius:10px;padding:16px 18px 4px;margin:0 0 18px;background:var(--block-editor-background,white)}\n[data-editor-form] fieldset.block-editor-layout-group>legend{padding:0 6px;font-size:13px;font-weight:650}\n[data-editor-form] .block-editor-layout-grid{display:grid;gap:0 18px;grid-template-columns:repeat(var(--editor-columns),minmax(0,1fr));align-items:start}\n[data-editor-form] .block-editor-layout-grid>*{min-width:0}\n[data-editor-form] .block-editor-layout-tabs>[hidden]{display:none!important}\n[data-editor-form] .editor-form-toolbar{display:flex;align-items:start;justify-content:space-between;gap:12px;margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid var(--editor-line)}\n[data-editor-form] .editor-form-modes{display:flex;gap:3px;border:1px solid var(--editor-line);border-radius:8px;padding:3px;background:var(--block-editor-subtle,var(--block-editor-background,#f1f4f9))}\n[data-editor-form] .editor-form-modes>button{border:0;border-radius:5px;padding:5px 14px;background:transparent;color:var(--editor-muted);margin:0}\n[data-editor-form] .editor-form-modes>[aria-pressed=true]{background:var(--block-editor-input,white);color:var(--editor-accent);box-shadow:0 1px 3px #1d30431a}\n[data-editor-form] .editor-form-tools{font-size:12px;color:var(--editor-muted);margin:0 0 12px}\n[data-editor-form] .editor-form-tools>summary{cursor:pointer;padding:5px 0;list-style-position:inside}\n[data-editor-form] .editor-form-tools[open]{padding:10px 12px;border:1px solid var(--editor-line);border-radius:8px;background:var(--block-editor-subtle,var(--block-editor-background,#f7f9fc))}\n[data-editor-form] .editor-form-tools button{border:1px solid var(--editor-line);border-radius:6px;background:var(--block-editor-input,white);padding:5px 9px;margin:5px 5px 5px 0;color:inherit}\n[data-editor-form] .editor-form-tools label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:5px 0}\n[data-editor-form] .editor-form-invalid{font-size:12px;color:#b53d45;margin:5px 0}\n[data-editor-form] [data-source-error=true]>input,[data-editor-form] [data-source-error=true]>textarea{border-color:#b53d45}\n[data-editor-form] .editor-form-array-item{display:flex;align-items:start;gap:10px}\n[data-editor-form] .editor-form-array-item>.editor-form-field{flex:1;min-width:0}\n@media(max-width:600px){[data-editor-form] .block-editor-layout-grid{grid-template-columns:minmax(0,1fr)}[data-editor-form] fieldset.block-editor-layout-group{padding:12px 12px 0}[data-editor-form] .block-editor-layout-tabs>[role=tablist]>button{padding:7px 12px;min-width:60px}[data-editor-form] .editor-form-toolbar{flex-wrap:wrap}}\n";
@@ -7,10 +7,10 @@ export function propertyLabel(key) {
7
7
  return text ? text[0].toUpperCase() + text.slice(1) : '設定';
8
8
  }
9
9
  export function FormHelp({ description, id }) {
10
- if (typeof description !== 'string' || !description)
10
+ if (typeof description !== 'string' || !description.trim())
11
11
  return null;
12
12
  return description.length > 130 ? React.createElement("details", { className: "editor-form-help", id: id },
13
- React.createElement("summary", null, "\u8AAC\u660E"),
13
+ React.createElement("summary", null, "\u8AAC\u660E\u3092\u8868\u793A"),
14
14
  React.createElement("p", null, description))
15
15
  : React.createElement("p", { className: "editor-form-hint", id: id }, description);
16
16
  }
@@ -33,7 +33,8 @@ export const formStyles = `
33
33
  [data-editor-form] button{font:inherit;cursor:pointer;border:1px solid var(--editor-line);border-radius:6px;background:var(--block-editor-input,white);color:inherit;padding:6px 10px;margin:0}
34
34
  [data-editor-form] button:disabled{cursor:default;opacity:.5}
35
35
  [data-editor-form] .editor-form-hint,[data-editor-form] .editor-form-help{color:var(--editor-muted);font-size:12px;line-height:1.5;margin:5px 0 10px}
36
- [data-editor-form] .editor-form-help>summary{cursor:pointer;width:fit-content;font-weight:500}
36
+ [data-editor-form] .editor-form-help>summary{display:list-item;list-style:disclosure-closed inside;cursor:pointer;width:fit-content;font-weight:500}
37
+ [data-editor-form] .editor-form-help[open]>summary{list-style-type:disclosure-open}
37
38
  [data-editor-form] .editor-form-help p{margin:8px 0}
38
39
  [data-editor-form] .block-editor-layout-tabs>[role=tablist]{display:flex;gap:4px;flex-wrap:wrap;padding:5px;background:var(--block-editor-subtle,var(--block-editor-background,#f1f4f9));border:1px solid var(--editor-line);border-radius:9px;margin:4px 0 20px}
39
40
  [data-editor-form] .block-editor-layout-tabs>[role=tablist]>button{border:0;border-radius:6px;background:transparent;color:var(--editor-muted);padding:8px 18px;margin:0;font-weight:550;text-decoration:none;min-width:76px}
@@ -135,7 +135,7 @@ function Tree({ value, path, schema, ui, variant, invalidNumbers, required, chan
135
135
  const allowed = presentationTypes(schema, ref => sourceReference(variant, ref));
136
136
  const fixedType = allowed.size === 1 && allowed.has(type);
137
137
  const readonly = commonLayout && (hints.readOnly === true || uiHints['ui:readonly'] === true || uiHints['ui:disabled'] === true);
138
- const props = { 'aria-label': label, ...(commonLayout ? { id, disabled: readonly, 'aria-describedby': typeof hints.description === 'string' ? `${id}-help` : undefined } : {}) };
138
+ const props = { 'aria-label': label, ...(commonLayout ? { id, disabled: readonly, 'aria-describedby': typeof hints.description === 'string' && hints.description.trim() ? `${id}-help` : undefined } : {}) };
139
139
  const typeControl = !commonLayout || !fixedType ? React.createElement("select", { "data-source-type-control": "", "aria-label": `Type ${path || '/'}`, disabled: readonly, value: type, onChange: e => change(initial(e.target.value)) }, (commonLayout && allowed.size ? [...new Set([type, ...allowed])] : jsonTypes).map(t => React.createElement("option", { key: t }, t))) : null;
140
140
  const seed = (hint) => cloneJson(presentationInitial(hint));
141
141
  let field;
@@ -2088,7 +2088,7 @@
2088
2088
  "format": "esm"
2089
2089
  },
2090
2090
  "dist/form-presentation.js": {
2091
- "bytes": 7310,
2091
+ "bytes": 7473,
2092
2092
  "imports": [
2093
2093
  {
2094
2094
  "path": "react",
@@ -3767,7 +3767,7 @@
3767
3767
  "format": "esm"
3768
3768
  },
3769
3769
  "dist/source-view.js": {
3770
- "bytes": 30052,
3770
+ "bytes": 30080,
3771
3771
  "imports": [
3772
3772
  {
3773
3773
  "path": "react",
@@ -14405,7 +14405,7 @@
14405
14405
  "imports": [],
14406
14406
  "exports": [],
14407
14407
  "inputs": {},
14408
- "bytes": 1928529
14408
+ "bytes": 1928761
14409
14409
  },
14410
14410
  "dist/webpack4/rjsf.js": {
14411
14411
  "imports": [
@@ -15492,7 +15492,7 @@
15492
15492
  "bytesInOutput": 7705
15493
15493
  },
15494
15494
  "dist/form-presentation.js": {
15495
- "bytesInOutput": 7085
15495
+ "bytesInOutput": 7248
15496
15496
  },
15497
15497
  "dist/layout.js": {
15498
15498
  "bytesInOutput": 2839
@@ -15720,7 +15720,7 @@
15720
15720
  "bytesInOutput": 449
15721
15721
  },
15722
15722
  "dist/source-view.js": {
15723
- "bytesInOutput": 27558
15723
+ "bytesInOutput": 27586
15724
15724
  },
15725
15725
  "dist/schema-presentation.js": {
15726
15726
  "bytesInOutput": 4862
@@ -16809,7 +16809,7 @@
16809
16809
  "bytesInOutput": 11025
16810
16810
  }
16811
16811
  },
16812
- "bytes": 896744
16812
+ "bytes": 896935
16813
16813
  },
16814
16814
  "dist/webpack4/react.js.map": {
16815
16815
  "imports": [],
@@ -5049,12 +5049,12 @@ function propertyLabel(key) {
5049
5049
  return text ? text[0].toUpperCase() + text.slice(1) : "\u8A2D\u5B9A";
5050
5050
  }
5051
5051
  function FormHelp({ description, id }) {
5052
- if (typeof description !== "string" || !description)
5052
+ if (typeof description !== "string" || !description.trim())
5053
5053
  return null;
5054
5054
  return description.length > 130 ? React.createElement(
5055
5055
  "details",
5056
5056
  { className: "editor-form-help", id },
5057
- React.createElement("summary", null, "\u8AAC\u660E"),
5057
+ React.createElement("summary", null, "\u8AAC\u660E\u3092\u8868\u793A"),
5058
5058
  React.createElement("p", null, description)
5059
5059
  ) : React.createElement("p", { className: "editor-form-hint", id }, description);
5060
5060
  }
@@ -5076,7 +5076,8 @@ var formStyles = `
5076
5076
  [data-editor-form] button{font:inherit;cursor:pointer;border:1px solid var(--editor-line);border-radius:6px;background:var(--block-editor-input,white);color:inherit;padding:6px 10px;margin:0}
5077
5077
  [data-editor-form] button:disabled{cursor:default;opacity:.5}
5078
5078
  [data-editor-form] .editor-form-hint,[data-editor-form] .editor-form-help{color:var(--editor-muted);font-size:12px;line-height:1.5;margin:5px 0 10px}
5079
- [data-editor-form] .editor-form-help>summary{cursor:pointer;width:fit-content;font-weight:500}
5079
+ [data-editor-form] .editor-form-help>summary{display:list-item;list-style:disclosure-closed inside;cursor:pointer;width:fit-content;font-weight:500}
5080
+ [data-editor-form] .editor-form-help[open]>summary{list-style-type:disclosure-open}
5080
5081
  [data-editor-form] .editor-form-help p{margin:8px 0}
5081
5082
  [data-editor-form] .block-editor-layout-tabs>[role=tablist]{display:flex;gap:4px;flex-wrap:wrap;padding:5px;background:var(--block-editor-subtle,var(--block-editor-background,#f1f4f9));border:1px solid var(--editor-line);border-radius:9px;margin:4px 0 20px}
5082
5083
  [data-editor-form] .block-editor-layout-tabs>[role=tablist]>button{border:0;border-radius:6px;background:transparent;color:var(--editor-muted);padding:8px 18px;margin:0;font-weight:550;text-decoration:none;min-width:76px}
@@ -12384,7 +12385,7 @@ function Tree({ value, path, schema: schema4, ui, variant, invalidNumbers, requi
12384
12385
  const allowed = presentationTypes(schema4, (ref) => sourceReference(variant, ref));
12385
12386
  const fixedType = allowed.size === 1 && allowed.has(type);
12386
12387
  const readonly = commonLayout && (hints.readOnly === true || uiHints["ui:readonly"] === true || uiHints["ui:disabled"] === true);
12387
- const props = { "aria-label": label, ...commonLayout ? { id, disabled: readonly, "aria-describedby": typeof hints.description === "string" ? `${id}-help` : void 0 } : {} };
12388
+ const props = { "aria-label": label, ...commonLayout ? { id, disabled: readonly, "aria-describedby": typeof hints.description === "string" && hints.description.trim() ? `${id}-help` : void 0 } : {} };
12388
12389
  const typeControl = !commonLayout || !fixedType ? React3.createElement("select", { "data-source-type-control": "", "aria-label": `Type ${path || "/"}`, disabled: readonly, value: type, onChange: (e2) => change(initial(e2.target.value)) }, (commonLayout && allowed.size ? [.../* @__PURE__ */ new Set([type, ...allowed])] : jsonTypes).map((t) => React3.createElement("option", { key: t }, t))) : null;
12389
12390
  const seed = (hint) => cloneJson(presentationInitial(hint));
12390
12391
  let field;