@tai42/studio-sdk 16.0.0 → 16.0.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.
- package/dist/components/explorer-body.d.ts +49 -0
- package/dist/components/explorer-body.d.ts.map +1 -0
- package/dist/components/explorer-body.js +67 -0
- package/dist/components/explorer-body.js.map +1 -0
- package/dist/components/explorer-page-size.d.ts +4 -0
- package/dist/components/explorer-page-size.d.ts.map +1 -0
- package/dist/components/explorer-page-size.js +36 -0
- package/dist/components/explorer-page-size.js.map +1 -0
- package/dist/components/explorer-tag-filter.d.ts +17 -0
- package/dist/components/explorer-tag-filter.d.ts.map +1 -0
- package/dist/components/explorer-tag-filter.js +29 -0
- package/dist/components/explorer-tag-filter.js.map +1 -0
- package/dist/components/explorer-tags.d.ts +22 -0
- package/dist/components/explorer-tags.d.ts.map +1 -0
- package/dist/components/explorer-tags.js +51 -0
- package/dist/components/explorer-tags.js.map +1 -0
- package/dist/components/explorer-view.d.ts +3 -17
- package/dist/components/explorer-view.d.ts.map +1 -1
- package/dist/components/explorer-view.js +53 -170
- package/dist/components/explorer-view.js.map +1 -1
- package/dist/components/extension-combo-builder.d.ts +0 -5
- package/dist/components/extension-combo-builder.d.ts.map +1 -1
- package/dist/components/extension-combo-builder.js +4 -42
- package/dist/components/extension-combo-builder.js.map +1 -1
- package/dist/components/extension-combo-parts.d.ts +44 -0
- package/dist/components/extension-combo-parts.d.ts.map +1 -0
- package/dist/components/extension-combo-parts.js +57 -0
- package/dist/components/extension-combo-parts.js.map +1 -0
- package/dist/components/fleet-report.d.ts.map +1 -1
- package/dist/components/fleet-report.js +51 -37
- package/dist/components/fleet-report.js.map +1 -1
- package/dist/components/icons/chrome-marks.d.ts +50 -0
- package/dist/components/icons/chrome-marks.d.ts.map +1 -0
- package/dist/components/icons/chrome-marks.js +51 -0
- package/dist/components/icons/chrome-marks.js.map +1 -0
- package/dist/components/icons/icon-frame.d.ts +29 -0
- package/dist/components/icons/icon-frame.d.ts.map +1 -0
- package/dist/components/icons/icon-frame.js +19 -0
- package/dist/components/icons/icon-frame.js.map +1 -0
- package/dist/components/icons/index.d.ts +40 -0
- package/dist/components/icons/index.d.ts.map +1 -0
- package/dist/components/icons/index.js +6 -0
- package/dist/components/icons/index.js.map +1 -0
- package/dist/components/icons/nav-map.d.ts +14 -0
- package/dist/components/icons/nav-map.d.ts.map +1 -0
- package/dist/components/icons/nav-map.js +28 -0
- package/dist/components/icons/nav-map.js.map +1 -0
- package/dist/components/icons/nav-marks.d.ts +44 -0
- package/dist/components/icons/nav-marks.d.ts.map +1 -0
- package/dist/components/icons/nav-marks.js +45 -0
- package/dist/components/icons/nav-marks.js.map +1 -0
- package/dist/components/icons/status-marks.d.ts +21 -0
- package/dist/components/icons/status-marks.d.ts.map +1 -0
- package/dist/components/icons/status-marks.js +22 -0
- package/dist/components/icons/status-marks.js.map +1 -0
- package/dist/components/icons/theme-marks.d.ts +9 -0
- package/dist/components/icons/theme-marks.d.ts.map +1 -0
- package/dist/components/icons/theme-marks.js +10 -0
- package/dist/components/icons/theme-marks.js.map +1 -0
- package/dist/components/json-diff.d.ts.map +1 -1
- package/dist/components/json-diff.js +1 -3
- package/dist/components/json-diff.js.map +1 -1
- package/dist/components/json-tree-context.d.ts +13 -0
- package/dist/components/json-tree-context.d.ts.map +1 -0
- package/dist/components/json-tree-context.js +15 -0
- package/dist/components/json-tree-context.js.map +1 -0
- package/dist/components/json-tree-model.d.ts +56 -0
- package/dist/components/json-tree-model.d.ts.map +1 -0
- package/dist/components/json-tree-model.js +125 -0
- package/dist/components/json-tree-model.js.map +1 -0
- package/dist/components/json-tree-nodes.d.ts +30 -0
- package/dist/components/json-tree-nodes.d.ts.map +1 -0
- package/dist/components/json-tree-nodes.js +118 -0
- package/dist/components/json-tree-nodes.js.map +1 -0
- package/dist/components/json-tree.d.ts.map +1 -1
- package/dist/components/json-tree.js +7 -295
- package/dist/components/json-tree.js.map +1 -1
- package/dist/components/json-value-format.d.ts +20 -0
- package/dist/components/json-value-format.d.ts.map +1 -0
- package/dist/components/json-value-format.js +63 -0
- package/dist/components/json-value-format.js.map +1 -0
- package/dist/components/markdown-blocks.d.ts +38 -0
- package/dist/components/markdown-blocks.d.ts.map +1 -0
- package/dist/components/markdown-blocks.js +168 -0
- package/dist/components/markdown-blocks.js.map +1 -0
- package/dist/components/markdown-inline.d.ts +24 -0
- package/dist/components/markdown-inline.d.ts.map +1 -0
- package/dist/components/markdown-inline.js +257 -0
- package/dist/components/markdown-inline.js.map +1 -0
- package/dist/components/markdown.d.ts +3 -52
- package/dist/components/markdown.d.ts.map +1 -1
- package/dist/components/markdown.js +4 -376
- package/dist/components/markdown.js.map +1 -1
- package/dist/components/observer-registry.d.ts +38 -0
- package/dist/components/observer-registry.d.ts.map +1 -0
- package/dist/components/observer-registry.js +131 -0
- package/dist/components/observer-registry.js.map +1 -0
- package/dist/components/overflow-measure.d.ts +38 -0
- package/dist/components/overflow-measure.d.ts.map +1 -0
- package/dist/components/overflow-measure.js +54 -0
- package/dist/components/overflow-measure.js.map +1 -0
- package/dist/components/prose-regions.d.ts +81 -0
- package/dist/components/prose-regions.d.ts.map +1 -0
- package/dist/components/prose-regions.js +128 -0
- package/dist/components/prose-regions.js.map +1 -0
- package/dist/components/scroll-region.d.ts.map +1 -1
- package/dist/components/scroll-region.js +3 -298
- package/dist/components/scroll-region.js.map +1 -1
- package/dist/components/tab-stop-parse.d.ts +53 -0
- package/dist/components/tab-stop-parse.d.ts.map +1 -0
- package/dist/components/tab-stop-parse.js +202 -0
- package/dist/components/tab-stop-parse.js.map +1 -0
- package/dist/components/templated-text-field.d.ts.map +1 -1
- package/dist/components/templated-text-field.js +10 -148
- package/dist/components/templated-text-field.js.map +1 -1
- package/dist/components/templated-text-kwargs-editor.d.ts +24 -0
- package/dist/components/templated-text-kwargs-editor.d.ts.map +1 -0
- package/dist/components/templated-text-kwargs-editor.js +48 -0
- package/dist/components/templated-text-kwargs-editor.js.map +1 -0
- package/dist/components/templated-text-kwargs.d.ts +37 -0
- package/dist/components/templated-text-kwargs.d.ts.map +1 -0
- package/dist/components/templated-text-kwargs.js +66 -0
- package/dist/components/templated-text-kwargs.js.map +1 -0
- package/dist/components/templated-text-source.d.ts +33 -0
- package/dist/components/templated-text-source.d.ts.map +1 -0
- package/dist/components/templated-text-source.js +53 -0
- package/dist/components/templated-text-source.js.map +1 -0
- package/dist/components/tool-picker-parts.d.ts +39 -0
- package/dist/components/tool-picker-parts.d.ts.map +1 -0
- package/dist/components/tool-picker-parts.js +87 -0
- package/dist/components/tool-picker-parts.js.map +1 -0
- package/dist/components/tool-picker.d.ts +1 -2
- package/dist/components/tool-picker.d.ts.map +1 -1
- package/dist/components/tool-picker.js +4 -66
- package/dist/components/tool-picker.js.map +1 -1
- package/dist/components/version-history-panel.d.ts.map +1 -1
- package/dist/components/version-history-panel.js +7 -34
- package/dist/components/version-history-panel.js.map +1 -1
- package/dist/components/version-history-rows.d.ts +48 -0
- package/dist/components/version-history-rows.d.ts.map +1 -0
- package/dist/components/version-history-rows.js +51 -0
- package/dist/components/version-history-rows.js.map +1 -0
- package/dist/guards.d.ts +6 -0
- package/dist/guards.d.ts.map +1 -0
- package/dist/guards.js +8 -0
- package/dist/guards.js.map +1 -0
- package/dist/hooks/interactions-connection.d.ts +43 -0
- package/dist/hooks/interactions-connection.d.ts.map +1 -0
- package/dist/hooks/interactions-connection.js +171 -0
- package/dist/hooks/interactions-connection.js.map +1 -0
- package/dist/hooks/interactions-stream.d.ts +80 -0
- package/dist/hooks/interactions-stream.d.ts.map +1 -0
- package/dist/hooks/interactions-stream.js +233 -0
- package/dist/hooks/interactions-stream.js.map +1 -0
- package/dist/hooks/useApi.d.ts +2192 -2192
- package/dist/hooks/useApi.d.ts.map +1 -1
- package/dist/hooks/useSse.d.ts +3 -6
- package/dist/hooks/useSse.d.ts.map +1 -1
- package/dist/hooks/useSse.js +38 -451
- package/dist/hooks/useSse.js.map +1 -1
- package/dist/navigation/app-link.d.ts +25 -0
- package/dist/navigation/app-link.d.ts.map +1 -0
- package/dist/navigation/app-link.js +33 -0
- package/dist/navigation/app-link.js.map +1 -0
- package/dist/navigation/context.d.ts +3 -20
- package/dist/navigation/context.d.ts.map +1 -1
- package/dist/navigation/context.js +7 -267
- package/dist/navigation/context.js.map +1 -1
- package/dist/navigation/entry-state.d.ts +23 -0
- package/dist/navigation/entry-state.d.ts.map +1 -0
- package/dist/navigation/entry-state.js +39 -0
- package/dist/navigation/entry-state.js.map +1 -0
- package/dist/navigation/guard-registry.d.ts +30 -0
- package/dist/navigation/guard-registry.d.ts.map +1 -0
- package/dist/navigation/guard-registry.js +46 -0
- package/dist/navigation/guard-registry.js.map +1 -0
- package/dist/navigation/guarded-navigation.d.ts +24 -0
- package/dist/navigation/guarded-navigation.d.ts.map +1 -0
- package/dist/navigation/guarded-navigation.js +102 -0
- package/dist/navigation/guarded-navigation.js.map +1 -0
- package/dist/navigation/index.d.ts +3 -2
- package/dist/navigation/index.d.ts.map +1 -1
- package/dist/navigation/index.js +2 -1
- package/dist/navigation/index.js.map +1 -1
- package/dist/navigation/types.d.ts +8 -11
- package/dist/navigation/types.d.ts.map +1 -1
- package/dist/navigation/use-back-forward-guard.d.ts +5 -0
- package/dist/navigation/use-back-forward-guard.d.ts.map +1 -0
- package/dist/navigation/use-back-forward-guard.js +82 -0
- package/dist/navigation/use-back-forward-guard.js.map +1 -0
- package/dist/plugin/registry.d.ts +6 -15
- package/dist/plugin/registry.d.ts.map +1 -1
- package/dist/plugin/registry.js +83 -75
- package/dist/plugin/registry.js.map +1 -1
- package/dist/schema-form/SecretRefField.d.ts +2 -3
- package/dist/schema-form/SecretRefField.d.ts.map +1 -1
- package/dist/schema-form/SecretRefField.js +23 -12
- package/dist/schema-form/SecretRefField.js.map +1 -1
- package/dist/schema-form/classify.d.ts +1 -122
- package/dist/schema-form/classify.d.ts.map +1 -1
- package/dist/schema-form/classify.js +174 -237
- package/dist/schema-form/classify.js.map +1 -1
- package/dist/schema-form/default-value.d.ts.map +1 -1
- package/dist/schema-form/default-value.js +42 -19
- package/dist/schema-form/default-value.js.map +1 -1
- package/dist/schema-form/enum-field.d.ts +1 -1
- package/dist/schema-form/enum-field.d.ts.map +1 -1
- package/dist/schema-form/field-model.d.ts +121 -0
- package/dist/schema-form/field-model.d.ts.map +1 -0
- package/dist/schema-form/field-model.js +2 -0
- package/dist/schema-form/field-model.js.map +1 -0
- package/dist/schema-form/field-node.d.ts.map +1 -1
- package/dist/schema-form/field-node.js +25 -14
- package/dist/schema-form/field-node.js.map +1 -1
- package/dist/schema-form/media-field.d.ts +1 -1
- package/dist/schema-form/media-field.d.ts.map +1 -1
- package/dist/schema-form/media-field.js +47 -28
- package/dist/schema-form/media-field.js.map +1 -1
- package/dist/schema-form/string-annotations.d.ts +20 -0
- package/dist/schema-form/string-annotations.d.ts.map +1 -0
- package/dist/schema-form/string-annotations.js +105 -0
- package/dist/schema-form/string-annotations.js.map +1 -0
- package/dist/schema-form/string-field.d.ts +1 -1
- package/dist/schema-form/string-field.d.ts.map +1 -1
- package/dist/schema-form/union-field.d.ts +1 -1
- package/dist/schema-form/union-field.d.ts.map +1 -1
- package/dist/schema-form/union-field.js.map +1 -1
- package/dist/schema-form/union.d.ts +1 -1
- package/dist/schema-form/union.d.ts.map +1 -1
- package/dist/schema-form/validate.d.ts.map +1 -1
- package/dist/schema-form/validate.js +126 -105
- package/dist/schema-form/validate.js.map +1 -1
- package/dist/state-binding/AdapterMapping.d.ts.map +1 -1
- package/dist/state-binding/AdapterMapping.js +0 -0
- package/dist/state-binding/AdapterMapping.js.map +1 -1
- package/dist/state-binding/StateAttachRow.d.ts.map +1 -1
- package/dist/state-binding/StateAttachRow.js +52 -36
- package/dist/state-binding/StateAttachRow.js.map +1 -1
- package/dist/state-binding/adapter-mapping-row.d.ts +17 -0
- package/dist/state-binding/adapter-mapping-row.d.ts.map +1 -0
- package/dist/state-binding/adapter-mapping-row.js +87 -0
- package/dist/state-binding/adapter-mapping-row.js.map +1 -0
- package/dist/structured-output/StructuredOutput.d.ts.map +1 -1
- package/dist/structured-output/StructuredOutput.js +1 -3
- package/dist/structured-output/StructuredOutput.js.map +1 -1
- package/package.json +2 -2
- package/src/components/explorer-body.tsx +239 -0
- package/src/components/explorer-page-size.ts +39 -0
- package/src/components/explorer-tag-filter.tsx +80 -0
- package/src/components/explorer-tags.ts +64 -0
- package/src/components/explorer-view.tsx +114 -366
- package/src/components/extension-combo-builder.tsx +35 -152
- package/src/components/extension-combo-parts.tsx +237 -0
- package/src/components/fleet-report.tsx +97 -54
- package/src/components/icons/chrome-marks.tsx +195 -0
- package/src/components/icons/icon-frame.tsx +50 -0
- package/src/components/icons/index.ts +84 -0
- package/src/components/icons/nav-map.ts +55 -0
- package/src/components/icons/nav-marks.tsx +205 -0
- package/src/components/icons/status-marks.tsx +46 -0
- package/src/components/icons/theme-marks.tsx +33 -0
- package/src/components/json-diff.tsx +1 -4
- package/src/components/json-tree-context.ts +26 -0
- package/src/components/json-tree-model.ts +139 -0
- package/src/components/json-tree-nodes.tsx +224 -0
- package/src/components/json-tree.tsx +15 -434
- package/src/components/json-value-format.ts +64 -0
- package/src/components/markdown-blocks.ts +198 -0
- package/src/components/markdown-inline.tsx +365 -0
- package/src/components/markdown.tsx +5 -471
- package/src/components/observer-registry.ts +139 -0
- package/src/components/overflow-measure.ts +69 -0
- package/src/components/prose-regions.ts +153 -0
- package/src/components/scroll-region.tsx +20 -360
- package/src/components/tab-stop-parse.ts +217 -0
- package/src/components/templated-text-field.tsx +38 -330
- package/src/components/templated-text-kwargs-editor.tsx +147 -0
- package/src/components/templated-text-kwargs.ts +92 -0
- package/src/components/templated-text-source.tsx +226 -0
- package/src/components/tool-picker-parts.tsx +184 -0
- package/src/components/tool-picker.tsx +22 -114
- package/src/components/version-history-panel.tsx +38 -142
- package/src/components/version-history-rows.tsx +220 -0
- package/src/guards.ts +7 -0
- package/src/hooks/interactions-connection.ts +227 -0
- package/src/hooks/interactions-stream.ts +274 -0
- package/src/hooks/useSse.ts +50 -477
- package/src/navigation/app-link.tsx +70 -0
- package/src/navigation/context.tsx +11 -330
- package/src/navigation/entry-state.ts +42 -0
- package/src/navigation/guard-registry.ts +65 -0
- package/src/navigation/guarded-navigation.ts +147 -0
- package/src/navigation/index.ts +2 -2
- package/src/navigation/types.ts +8 -11
- package/src/navigation/use-back-forward-guard.ts +90 -0
- package/src/plugin/registry.ts +111 -90
- package/src/schema-form/SecretRefField.tsx +121 -71
- package/src/schema-form/classify.ts +244 -395
- package/src/schema-form/default-value.ts +48 -17
- package/src/schema-form/enum-field.tsx +1 -1
- package/src/schema-form/field-model.ts +133 -0
- package/src/schema-form/field-node.tsx +94 -38
- package/src/schema-form/media-field.tsx +134 -65
- package/src/schema-form/string-annotations.ts +111 -0
- package/src/schema-form/string-field.tsx +1 -1
- package/src/schema-form/union-field.tsx +2 -1
- package/src/schema-form/union.ts +1 -1
- package/src/schema-form/validate.ts +184 -103
- package/src/state-binding/AdapterMapping.tsx +0 -0
- package/src/state-binding/StateAttachRow.tsx +222 -147
- package/src/state-binding/adapter-mapping-row.tsx +232 -0
- package/src/structured-output/StructuredOutput.tsx +1 -4
- package/dist/components/icons.d.ts +0 -160
- package/dist/components/icons.d.ts.map +0 -1
- package/dist/components/icons.js +0 -160
- package/dist/components/icons.js.map +0 -1
- package/src/components/icons.tsx +0 -586
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The low-level parsing behind `tabStopsIn`: balanced-bracket and value scanning,
|
|
3
|
+
* a tag's attribute value, the binding/import RESOLVER (name → its home file and
|
|
4
|
+
* definition, expanded across hops), and the two per-tag predicates —
|
|
5
|
+
* `tagDeclaresTab` (is this a tab stop?) and `taiClassesOf` (which `tai-*` classes
|
|
6
|
+
* does it wear?).
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The text from `start` to the character closing the bracket it opens, quotes
|
|
10
|
+
* respected so a brace inside a string neither opens nor closes anything.
|
|
11
|
+
*/
|
|
12
|
+
export declare function balancedFrom(source: string, start: number, open: string, close: string): string;
|
|
13
|
+
export declare function readAssignmentValue(source: string, start: number): string;
|
|
14
|
+
/**
|
|
15
|
+
* The index of the `>` closing an opening tag whose attribute run starts at
|
|
16
|
+
* `from`, quotes and brace depth tracked so a `>` inside a `className` expression
|
|
17
|
+
* (`{x > 0 ? a : b}`) is not mistaken for it.
|
|
18
|
+
*/
|
|
19
|
+
export declare function scanToTagClose(source: string, from: number): number;
|
|
20
|
+
/** One opening JSX tag: its element name and everything between that and the `>`. */
|
|
21
|
+
export interface OpeningTag {
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly attributes: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The value written for `attribute`, unquoted or unbraced; `undefined` when the
|
|
27
|
+
* tag does not write it at all, which is the difference between "no `tabIndex`"
|
|
28
|
+
* and "`tabIndex={-1}`".
|
|
29
|
+
*/
|
|
30
|
+
export declare function attributeValue(attributes: string, attribute: string): string | undefined;
|
|
31
|
+
/** Resolves a referenced name to the file it is bound in and its definition text. */
|
|
32
|
+
export interface TabStopResolver {
|
|
33
|
+
/** Where a name is bound: the file itself, or the file it is imported from. */
|
|
34
|
+
homeOf(file: string, name: string): string | undefined;
|
|
35
|
+
/** The definition text of `name` bound in `home`, if any. */
|
|
36
|
+
definitionOf(home: string, name: string): string | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* `text` with the definition of every name it references appended, to `depth`
|
|
39
|
+
* hops — a class reaches its element through as many as three (the tag names a
|
|
40
|
+
* helper, the helper names a table, the table holds the literal).
|
|
41
|
+
*/
|
|
42
|
+
expand(text: string, file: string, depth: number, seen: Set<string>): string;
|
|
43
|
+
}
|
|
44
|
+
/** A resolver over pre-scanned per-file binding and import maps. */
|
|
45
|
+
export declare function createTabStopResolver(bindings: ReadonlyMap<string, Map<string, string>>, imports: ReadonlyMap<string, Map<string, string>>): TabStopResolver;
|
|
46
|
+
/**
|
|
47
|
+
* Whether the tag is a keyboard tab stop: a natively focusable element, an element
|
|
48
|
+
* with a non-negative `tabIndex`, or one spreading a props object that declares one.
|
|
49
|
+
*/
|
|
50
|
+
export declare function tagDeclaresTab(tag: OpeningTag, file: string, resolver: TabStopResolver): boolean;
|
|
51
|
+
/** The `tai-*` classes the tag wears, expanded through its bindings to `depth` 3. */
|
|
52
|
+
export declare function taiClassesOf(tag: OpeningTag, file: string, resolver: TabStopResolver): string[];
|
|
53
|
+
//# sourceMappingURL=tab-stop-parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-stop-parse.d.ts","sourceRoot":"","sources":["../../src/components/tab-stop-parse.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAwB/F;AAWD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBzE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBnE;AAED,qFAAqF;AACrF,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAYxF;AAWD,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACvD,6DAA6D;IAC7D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7D;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CAC9E;AAED,oEAAoE;AACpE,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAClD,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAChD,eAAe,CA2BjB;AAkBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAQhG;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,MAAM,EAAE,CAc/F"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The low-level parsing behind `tabStopsIn`: balanced-bracket and value scanning,
|
|
3
|
+
* a tag's attribute value, the binding/import RESOLVER (name → its home file and
|
|
4
|
+
* definition, expanded across hops), and the two per-tag predicates —
|
|
5
|
+
* `tagDeclaresTab` (is this a tab stop?) and `taiClassesOf` (which `tai-*` classes
|
|
6
|
+
* does it wear?).
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The text from `start` to the character closing the bracket it opens, quotes
|
|
10
|
+
* respected so a brace inside a string neither opens nor closes anything.
|
|
11
|
+
*/
|
|
12
|
+
export function balancedFrom(source, start, open, close) {
|
|
13
|
+
let depth = 0;
|
|
14
|
+
let quote;
|
|
15
|
+
for (let index = start; index < source.length; index += 1) {
|
|
16
|
+
const character = source[index];
|
|
17
|
+
if (quote !== undefined) {
|
|
18
|
+
if (character === '\\') {
|
|
19
|
+
index += 1;
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
if (character === quote)
|
|
23
|
+
quote = undefined;
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (character === '"' || character === "'" || character === '`') {
|
|
27
|
+
quote = character;
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
if (character === open)
|
|
31
|
+
depth += 1;
|
|
32
|
+
else if (character === close) {
|
|
33
|
+
depth -= 1;
|
|
34
|
+
if (depth === 0)
|
|
35
|
+
return source.slice(start, index + 1);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return source.slice(start);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The RHS of a `const`/`let` assignment beginning at `start`: text up to the
|
|
42
|
+
* top-level `;`, with brackets and quotes tracked so a `;` inside either does not
|
|
43
|
+
* end it.
|
|
44
|
+
*/
|
|
45
|
+
const QUOTE_CHARS = '"\'`';
|
|
46
|
+
const OPEN_BRACKETS = '{([';
|
|
47
|
+
const CLOSE_BRACKETS = '})]';
|
|
48
|
+
export function readAssignmentValue(source, start) {
|
|
49
|
+
let end = start;
|
|
50
|
+
let depth = 0;
|
|
51
|
+
let quote;
|
|
52
|
+
for (; end < source.length; end += 1) {
|
|
53
|
+
const character = source[end] ?? '';
|
|
54
|
+
if (quote !== undefined) {
|
|
55
|
+
if (character === '\\')
|
|
56
|
+
end += 1;
|
|
57
|
+
else if (character === quote)
|
|
58
|
+
quote = undefined;
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (QUOTE_CHARS.includes(character))
|
|
62
|
+
quote = character;
|
|
63
|
+
else if (OPEN_BRACKETS.includes(character))
|
|
64
|
+
depth += 1;
|
|
65
|
+
else if (CLOSE_BRACKETS.includes(character))
|
|
66
|
+
depth -= 1;
|
|
67
|
+
else if (character === ';' && depth === 0)
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
return source.slice(start, end);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The index of the `>` closing an opening tag whose attribute run starts at
|
|
74
|
+
* `from`, quotes and brace depth tracked so a `>` inside a `className` expression
|
|
75
|
+
* (`{x > 0 ? a : b}`) is not mistaken for it.
|
|
76
|
+
*/
|
|
77
|
+
export function scanToTagClose(source, from) {
|
|
78
|
+
let end = from;
|
|
79
|
+
let depth = 0;
|
|
80
|
+
let quote;
|
|
81
|
+
for (; end < source.length; end += 1) {
|
|
82
|
+
const character = source[end];
|
|
83
|
+
if (quote !== undefined) {
|
|
84
|
+
if (character === '\\')
|
|
85
|
+
end += 1;
|
|
86
|
+
else if (character === quote)
|
|
87
|
+
quote = undefined;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (character === '"' || character === "'" || character === '`')
|
|
91
|
+
quote = character;
|
|
92
|
+
else if (character === '{')
|
|
93
|
+
depth += 1;
|
|
94
|
+
else if (character === '}')
|
|
95
|
+
depth -= 1;
|
|
96
|
+
else if (character === '>' && depth === 0)
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
return end;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The value written for `attribute`, unquoted or unbraced; `undefined` when the
|
|
103
|
+
* tag does not write it at all, which is the difference between "no `tabIndex`"
|
|
104
|
+
* and "`tabIndex={-1}`".
|
|
105
|
+
*/
|
|
106
|
+
export function attributeValue(attributes, attribute) {
|
|
107
|
+
const written = new RegExp(String.raw `(?<![\w-])${attribute}\s*=`).exec(attributes);
|
|
108
|
+
if (written === null)
|
|
109
|
+
return undefined;
|
|
110
|
+
let index = written.index + written[0].length;
|
|
111
|
+
while (/\s/.test(attributes[index] ?? ''))
|
|
112
|
+
index += 1;
|
|
113
|
+
const opener = attributes[index];
|
|
114
|
+
if (opener === '"' || opener === "'") {
|
|
115
|
+
const close = attributes.indexOf(opener, index + 1);
|
|
116
|
+
return attributes.slice(index + 1, close === -1 ? attributes.length : close);
|
|
117
|
+
}
|
|
118
|
+
if (opener === '{')
|
|
119
|
+
return balancedFrom(attributes, index, '{', '}').slice(1, -1);
|
|
120
|
+
return '';
|
|
121
|
+
}
|
|
122
|
+
/** The elements that are in the tab order with no `tabIndex` of their own. */
|
|
123
|
+
const NATIVELY_FOCUSABLE = new Set(['button', 'a', 'input', 'textarea', 'select', 'summary']);
|
|
124
|
+
/** A `tabIndex` that takes the element OUT of the tab order. */
|
|
125
|
+
const NEGATIVE_TAB_INDEX = /^\s*-/;
|
|
126
|
+
/** A props object that puts its target in the tab order. */
|
|
127
|
+
const SPREADS_TAB_INDEX = /tabIndex\s*:\s*(?!\s*-)/;
|
|
128
|
+
/** A resolver over pre-scanned per-file binding and import maps. */
|
|
129
|
+
export function createTabStopResolver(bindings, imports) {
|
|
130
|
+
function homeOf(file, name) {
|
|
131
|
+
if (bindings.get(file)?.has(name) === true)
|
|
132
|
+
return file;
|
|
133
|
+
return imports.get(file)?.get(name);
|
|
134
|
+
}
|
|
135
|
+
function definitionOf(home, name) {
|
|
136
|
+
return bindings.get(home)?.get(name);
|
|
137
|
+
}
|
|
138
|
+
function expand(text, file, depth, seen) {
|
|
139
|
+
if (depth === 0)
|
|
140
|
+
return text;
|
|
141
|
+
let out = text;
|
|
142
|
+
for (const match of text.matchAll(/(?<![\w.$])([A-Za-z_$][\w$]*)/g)) {
|
|
143
|
+
const name = match[1] ?? '';
|
|
144
|
+
const home = homeOf(file, name);
|
|
145
|
+
if (home === undefined)
|
|
146
|
+
continue;
|
|
147
|
+
const key = `${home}#${name}`;
|
|
148
|
+
if (seen.has(key))
|
|
149
|
+
continue;
|
|
150
|
+
seen.add(key);
|
|
151
|
+
const definition = definitionOf(home, name);
|
|
152
|
+
if (definition !== undefined)
|
|
153
|
+
out += `\n${expand(definition, home, depth - 1, seen)}`;
|
|
154
|
+
}
|
|
155
|
+
return out;
|
|
156
|
+
}
|
|
157
|
+
return { homeOf, definitionOf, expand };
|
|
158
|
+
}
|
|
159
|
+
/** Whether a spread props object on the tag declares a non-negative `tabIndex`. */
|
|
160
|
+
function spreadDeclaresTab(tag, file, resolver) {
|
|
161
|
+
for (const spread of tag.attributes.matchAll(/\{\s*\.\.\.\s*([A-Za-z_$][\w$]*)/g)) {
|
|
162
|
+
const home = resolver.homeOf(file, spread[1] ?? '');
|
|
163
|
+
if (home === undefined)
|
|
164
|
+
continue;
|
|
165
|
+
const definition = resolver.definitionOf(home, spread[1] ?? '');
|
|
166
|
+
if (definition !== undefined &&
|
|
167
|
+
SPREADS_TAB_INDEX.test(resolver.expand(definition, home, 2, new Set()))) {
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Whether the tag is a keyboard tab stop: a natively focusable element, an element
|
|
175
|
+
* with a non-negative `tabIndex`, or one spreading a props object that declares one.
|
|
176
|
+
*/
|
|
177
|
+
export function tagDeclaresTab(tag, file, resolver) {
|
|
178
|
+
const native = NATIVELY_FOCUSABLE.has(tag.name) &&
|
|
179
|
+
(tag.name !== 'a' || /(?<![\w-])href\s*=/.test(tag.attributes));
|
|
180
|
+
if (native)
|
|
181
|
+
return true;
|
|
182
|
+
const written = attributeValue(tag.attributes, 'tabIndex');
|
|
183
|
+
if (written !== undefined && !NEGATIVE_TAB_INDEX.test(written))
|
|
184
|
+
return true;
|
|
185
|
+
return spreadDeclaresTab(tag, file, resolver);
|
|
186
|
+
}
|
|
187
|
+
/** The `tai-*` classes the tag wears, expanded through its bindings to `depth` 3. */
|
|
188
|
+
export function taiClassesOf(tag, file, resolver) {
|
|
189
|
+
const className = attributeValue(tag.attributes, 'className');
|
|
190
|
+
if (className === undefined)
|
|
191
|
+
return [];
|
|
192
|
+
return [
|
|
193
|
+
...new Set([
|
|
194
|
+
...resolver
|
|
195
|
+
.expand(className, file, 3, new Set())
|
|
196
|
+
.matchAll(/(?<![\w-])(tai-[a-z][\w-]*)(?![\w])/g),
|
|
197
|
+
]
|
|
198
|
+
.map((match) => `.${match[1] ?? ''}`)
|
|
199
|
+
.filter((name) => !name.endsWith('-'))),
|
|
200
|
+
];
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=tab-stop-parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-stop-parse.js","sourceRoot":"","sources":["../../src/components/tab-stop-parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templated-text-field.d.ts","sourceRoot":"","sources":["../../src/components/templated-text-field.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"templated-text-field.d.ts","sourceRoot":"","sources":["../../src/components/templated-text-field.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAavD,gDAAgD;AAChD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,2EAA2E;AAC3E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IACzD,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAC5D,4CAA4C;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,8DAA8D;IAC9D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IACvC,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;;OAQG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,qFAAqF;IACrF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,SAAS,CAAC;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,GAAG,MAAM,CAIxE;AAED,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,WAAW,EACX,KAAK,EACL,QAAgB,EAChB,SAAc,EACd,gBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,aAAqB,EACrB,sBAA8B,EAC9B,YAAY,EACZ,QAAgB,EAChB,WAAW,GACZ,EAAE,uBAAuB,GAAG,SAAS,CAiFrC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
/**
|
|
3
3
|
* `TemplatedTextField` — the ONE control that authors a {@link TemplatedText}
|
|
4
4
|
* value: an authored-text field that is either inline `content` (text written in
|
|
@@ -26,12 +26,10 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
26
26
|
* `storagePresenceLoading`.
|
|
27
27
|
*/
|
|
28
28
|
import { useState } from 'react';
|
|
29
|
-
import { Button, ErrorState, Skeleton } from './primitives';
|
|
30
29
|
import { Field } from './field';
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import { CloseIcon } from './icons';
|
|
30
|
+
import { initialMode, objectToRows, templatedValueFrom, } from './templated-text-kwargs';
|
|
31
|
+
import { KwargsEditor, ReadOnlyKwargs } from './templated-text-kwargs-editor';
|
|
32
|
+
import { TemplatedTextSource } from './templated-text-source';
|
|
35
33
|
/** A short one-line rendering of a templated-text value, for read-only summaries. */
|
|
36
34
|
export function templatedTextSummary(value) {
|
|
37
35
|
if (value === null)
|
|
@@ -40,101 +38,13 @@ export function templatedTextSummary(value) {
|
|
|
40
38
|
return `template: ${value.id}`;
|
|
41
39
|
return value.content ?? '';
|
|
42
40
|
}
|
|
43
|
-
/** The row's canonical string form, matched against `value` to detect an untouched row. */
|
|
44
|
-
function stringifyRowValue(raw) {
|
|
45
|
-
return typeof raw === 'string' ? raw : JSON.stringify(raw);
|
|
46
|
-
}
|
|
47
|
-
/** Parse a cell as JSON when it can be (numbers/bools/objects), else keep the string. */
|
|
48
|
-
function parseCellValue(raw) {
|
|
49
|
-
const trimmed = raw.trim();
|
|
50
|
-
if (trimmed.length === 0)
|
|
51
|
-
return '';
|
|
52
|
-
try {
|
|
53
|
-
return JSON.parse(trimmed);
|
|
54
|
-
}
|
|
55
|
-
catch {
|
|
56
|
-
return raw;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
/** Collapse the kwargs rows into an object, dropping rows with a blank key. */
|
|
60
|
-
function rowsToObject(rows) {
|
|
61
|
-
const out = {};
|
|
62
|
-
for (const row of rows) {
|
|
63
|
-
const key = row.key.trim();
|
|
64
|
-
if (key.length === 0)
|
|
65
|
-
continue;
|
|
66
|
-
// An untouched seeded row re-emits its stored value verbatim (no JSON-type coerce);
|
|
67
|
-
// an edited or added row is parsed from the cell text.
|
|
68
|
-
out[key] =
|
|
69
|
-
row.original !== undefined && stringifyRowValue(row.original) === row.value
|
|
70
|
-
? row.original
|
|
71
|
-
: parseCellValue(row.value);
|
|
72
|
-
}
|
|
73
|
-
return out;
|
|
74
|
-
}
|
|
75
|
-
/** Seed rows from a stored kwargs object (stringifying non-string values). */
|
|
76
|
-
function objectToRows(kwargs) {
|
|
77
|
-
if (kwargs === undefined)
|
|
78
|
-
return [];
|
|
79
|
-
return Object.entries(kwargs).map(([key, raw]) => ({
|
|
80
|
-
key,
|
|
81
|
-
value: stringifyRowValue(raw),
|
|
82
|
-
original: raw,
|
|
83
|
-
}));
|
|
84
|
-
}
|
|
85
|
-
/** The add/remove kwargs editor, revealed on demand and open when kwargs already exist. */
|
|
86
|
-
function KwargsEditor({ label, rows, disabled, onChange, }) {
|
|
87
|
-
const [open, setOpen] = useState(rows.length > 0);
|
|
88
|
-
const groupLabel = `${label} render parameters`;
|
|
89
|
-
if (!open) {
|
|
90
|
-
// Wrapped so the ghost button keeps its content width and stays left-aligned
|
|
91
|
-
// in the field's column, marking it as this field's own disclosure rather than
|
|
92
|
-
// a full-width control floating between two fields.
|
|
93
|
-
return (_jsx("div", { children: _jsx(Button, { type: "button", variant: "ghost", disabled: disabled, onClick: () => {
|
|
94
|
-
setOpen(true);
|
|
95
|
-
onChange([...rows, { key: '', value: '' }]);
|
|
96
|
-
}, children: "Add render parameters" }) }));
|
|
97
|
-
}
|
|
98
|
-
return (_jsxs("div", { role: "group", "aria-label": groupLabel, style: { display: 'flex', flexDirection: 'column', gap: 'var(--tai-space-2)' }, children: [_jsx("span", { style: { fontSize: 'var(--tai-text-sm)', color: 'var(--tai-color-text-muted)' }, children: "Render parameters" }), rows.map((row, index) => (_jsxs("div", { style: { display: 'flex', gap: 'var(--tai-space-2)', alignItems: 'center' }, children: [_jsx(TextInput, { "aria-label": `${groupLabel} key ${String(index + 1)}`, placeholder: "name", value: row.key, autoComplete: "off", disabled: disabled, onChange: (event) => {
|
|
99
|
-
const next = [...rows];
|
|
100
|
-
next[index] = { ...row, key: event.target.value };
|
|
101
|
-
onChange(next);
|
|
102
|
-
} }), _jsx(TextInput, { "aria-label": `${groupLabel} value ${String(index + 1)}`, placeholder: "value", value: row.value, autoComplete: "off", disabled: disabled, onChange: (event) => {
|
|
103
|
-
const next = [...rows];
|
|
104
|
-
next[index] = { ...row, value: event.target.value };
|
|
105
|
-
onChange(next);
|
|
106
|
-
} }), _jsx(Button, { type: "button", variant: "ghost", "aria-label": `Remove ${groupLabel} ${String(index + 1)}`, disabled: disabled, onClick: () => {
|
|
107
|
-
onChange(rows.filter((_, position) => position !== index));
|
|
108
|
-
}, children: _jsx(CloseIcon, { "aria-hidden": "true" }) })] }, index))), _jsx("div", { children: _jsx(Button, { type: "button", variant: "ghost", disabled: disabled, onClick: () => {
|
|
109
|
-
onChange([...rows, { key: '', value: '' }]);
|
|
110
|
-
}, children: "Add parameter" }) })] }));
|
|
111
|
-
}
|
|
112
|
-
/** The initial mode: stored when the seed carries an `id`, inline otherwise. */
|
|
113
|
-
function initialMode(value) {
|
|
114
|
-
return value?.id !== undefined ? 'stored' : 'inline';
|
|
115
|
-
}
|
|
116
41
|
export function TemplatedTextField({ label, value, onChange, description, error, required = false, templates = [], templatesLoading = false, templatesError, onTemplatesRetry, resolveError, storageAbsent = false, storagePresenceLoading = false, renderInline, disabled = false, placeholder, }) {
|
|
117
42
|
const [mode, setMode] = useState(() => initialMode(value));
|
|
118
43
|
const [inlineDraft, setInlineDraft] = useState(() => value?.content ?? '');
|
|
119
44
|
const [storedDraft, setStoredDraft] = useState(() => value?.id ?? '');
|
|
120
45
|
const [kwargsRows, setKwargsRows] = useState(() => objectToRows(value?.kwargs));
|
|
121
46
|
const emit = (nextMode, nextInline, nextStored, nextKwargs) => {
|
|
122
|
-
|
|
123
|
-
const kw = Object.keys(kwargs).length > 0 ? { kwargs } : {};
|
|
124
|
-
if (nextMode === 'stored') {
|
|
125
|
-
const id = nextStored.trim();
|
|
126
|
-
if (id === '') {
|
|
127
|
-
onChange(required ? { id: '', ...kw } : null);
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
onChange({ id, ...kw });
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
if (nextInline.trim() === '') {
|
|
134
|
-
onChange(required ? { content: '', ...kw } : null);
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
onChange({ content: nextInline, ...kw });
|
|
47
|
+
onChange(templatedValueFrom(nextMode, nextInline, nextStored, nextKwargs, required));
|
|
138
48
|
};
|
|
139
49
|
const changeMode = (next) => {
|
|
140
50
|
setMode(next);
|
|
@@ -152,53 +62,10 @@ export function TemplatedTextField({ label, value, onChange, description, error,
|
|
|
152
62
|
setKwargsRows(next);
|
|
153
63
|
emit(mode, inlineDraft, storedDraft, next);
|
|
154
64
|
};
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}));
|
|
159
|
-
// A stored id the catalog does not offer cannot be picked from the list; it is
|
|
160
|
-
// shown as an unresolved note rather than silently blanked.
|
|
161
|
-
const unresolvedId = mode === 'stored' &&
|
|
162
|
-
storedDraft.trim() !== '' &&
|
|
163
|
-
!templatesLoading &&
|
|
164
|
-
templatesError === undefined &&
|
|
165
|
-
!templates.some((template) => template.id === storedDraft.trim())
|
|
166
|
-
? storedDraft.trim()
|
|
167
|
-
: undefined;
|
|
168
|
-
// The inline editor, shared by the present-storage inline mode and the
|
|
169
|
-
// absent-storage inline-only rendering: the caller's rich editor when supplied,
|
|
170
|
-
// else a plain textarea.
|
|
171
|
-
const inlineEditor = renderInline !== undefined ? (renderInline({ label, value: inlineDraft, onChange: changeInline, error, hideLabel: true })) : (_jsx(Field, { label: label, hideLabel: true, error: error, children: _jsx(Textarea, { value: inlineDraft, placeholder: placeholder, disabled: disabled, onChange: (event) => {
|
|
172
|
-
changeInline(event.target.value);
|
|
173
|
-
} }) }));
|
|
174
|
-
// A stored `id` already authored on the value: with storage absent it is shown
|
|
175
|
-
// read-only rather than resolved, browsed, converted, or dropped.
|
|
176
|
-
const authoredStoredId = value?.id;
|
|
177
|
-
const showsReadOnlyStored = storageAbsent && authoredStoredId !== undefined;
|
|
178
|
-
// The source region. While presence is unknown a placeholder stands in, so the
|
|
179
|
-
// toggle is never shown and then removed. With storage absent the stored source
|
|
180
|
-
// cannot work and is not offered: an inline or empty value edits inline; a value
|
|
181
|
-
// carrying an `id` is shown read-only with an unavailability note. With storage
|
|
182
|
-
// present the full inline/stored toggle and picker render.
|
|
183
|
-
let source;
|
|
184
|
-
if (storagePresenceLoading) {
|
|
185
|
-
source = _jsx(Skeleton, { height: 36 });
|
|
186
|
-
}
|
|
187
|
-
else if (storageAbsent) {
|
|
188
|
-
source = showsReadOnlyStored ? (_jsxs(_Fragment, { children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 'var(--tai-space-1)' }, children: [_jsx("span", { style: { fontSize: 'var(--tai-text-sm)', color: 'var(--tai-color-text-muted)' }, children: "Stored template" }), _jsx("code", { style: { fontFamily: 'var(--tai-font-mono)', wordBreak: 'break-all' }, children: authoredStoredId })] }), _jsx("p", { style: {
|
|
189
|
-
margin: 0,
|
|
190
|
-
fontSize: 'var(--tai-text-sm)',
|
|
191
|
-
color: 'var(--tai-color-text-muted)',
|
|
192
|
-
}, children: "Stored templates are unavailable \u2014 this deployment has no storage backend." })] })) : (inlineEditor);
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
source = (_jsxs(_Fragment, { children: [_jsx(RadioGroup, { "aria-label": `${label} source`, variant: "segmented", value: mode, disabled: disabled, options: [
|
|
196
|
-
{ value: 'inline', label: 'Inline text' },
|
|
197
|
-
{ value: 'stored', label: 'Stored template' },
|
|
198
|
-
], onValueChange: (next) => {
|
|
199
|
-
changeMode(next);
|
|
200
|
-
} }), mode === 'inline' ? (inlineEditor) : templatesError !== undefined ? (_jsx(ErrorState, { message: templatesError, onRetry: onTemplatesRetry })) : templatesLoading ? (_jsx(Skeleton, { height: 36 })) : (_jsx(Field, { label: label, hideLabel: true, error: error, children: _jsx(Select, { placeholder: templates.length === 0 ? 'No templates available' : 'Select a template', value: storedDraft, disabled: disabled || templates.length === 0, options: templateOptions, onValueChange: changeStored }) })), unresolvedId !== undefined ? (_jsx("p", { role: "alert", style: { margin: 0, color: 'var(--tai-color-err-text)' }, children: resolveError ?? `The stored template "${unresolvedId}" is not available.` })) : null] }));
|
|
201
|
-
}
|
|
65
|
+
// A stored `id` already authored on the value is shown read-only when storage is
|
|
66
|
+
// absent — never resolved, browsed, converted, or dropped.
|
|
67
|
+
const showsReadOnlyStored = storageAbsent && value?.id !== undefined;
|
|
68
|
+
const source = (_jsx(TemplatedTextSource, { label: label, mode: mode, inlineDraft: inlineDraft, storedDraft: storedDraft, error: error, disabled: disabled, placeholder: placeholder, renderInline: renderInline, templates: templates, templatesLoading: templatesLoading, templatesError: templatesError, onTemplatesRetry: onTemplatesRetry, resolveError: resolveError, storageAbsent: storageAbsent, storagePresenceLoading: storagePresenceLoading, authoredStoredId: value?.id, onModeChange: changeMode, onInlineChange: changeInline, onStoredChange: changeStored }));
|
|
202
69
|
// ONE coherent group per field: the label + description form the group header, and
|
|
203
70
|
// the source region and the render-parameters disclosure sit under it — so the
|
|
204
71
|
// controls unambiguously belong to THIS field, read label → description → source →
|
|
@@ -207,11 +74,6 @@ export function TemplatedTextField({ label, value, onChange, description, error,
|
|
|
207
74
|
// visually-hidden `<label for>` (see `hideLabel`). The container-name redundancy
|
|
208
75
|
// `Field` accepts by design (a redundant container is audible, an unnamed group is
|
|
209
76
|
// silent).
|
|
210
|
-
|
|
211
|
-
// A read-only stored value shows its render parameters as read-only text — the values
|
|
212
|
-
// in normal weight, NOT the muted disabled inputs a reader could mistake for empty
|
|
213
|
-
// placeholders — matching the read-only treatment of the id above; every editable
|
|
214
|
-
// rendering keeps the full add/remove editor.
|
|
215
|
-
return (_jsxs(Field, { label: label, description: description, group: true, children: [source, showsReadOnlyStored ? (kwargsRows.length > 0 ? (_jsxs("div", { role: "group", "aria-label": `${label} render parameters`, style: { display: 'flex', flexDirection: 'column', gap: 'var(--tai-space-1)' }, children: [_jsx("span", { style: { fontSize: 'var(--tai-text-sm)', color: 'var(--tai-color-text-muted)' }, children: "Render parameters" }), kwargsRows.map((row) => (_jsxs("div", { style: { fontFamily: 'var(--tai-font-mono)', wordBreak: 'break-all' }, children: [_jsx("code", { children: row.key }), _jsx("span", { style: { color: 'var(--tai-color-text-muted)' }, children: ": " }), _jsx("code", { children: row.value })] }, row.key)))] })) : null) : (_jsx(KwargsEditor, { label: label, rows: kwargsRows, disabled: disabled, onChange: changeKwargs }))] }));
|
|
77
|
+
return (_jsxs(Field, { label: label, description: description, group: true, children: [source, showsReadOnlyStored ? (_jsx(ReadOnlyKwargs, { label: label, rows: kwargsRows })) : (_jsx(KwargsEditor, { label: label, rows: kwargsRows, disabled: disabled, onChange: changeKwargs }))] }));
|
|
216
78
|
}
|
|
217
79
|
//# sourceMappingURL=templated-text-field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templated-text-field.js","sourceRoot":"","sources":["../../src/components/templated-text-field.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"templated-text-field.js","sourceRoot":"","sources":["../../src/components/templated-text-field.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The render-parameters UI for `TemplatedTextField`: the add/remove editor
|
|
3
|
+
* (`KwargsEditor`) for editable values, and the read-only listing
|
|
4
|
+
* (`ReadOnlyKwargs`) shown beside a read-only stored id.
|
|
5
|
+
*/
|
|
6
|
+
import { type ReactNode } from 'react';
|
|
7
|
+
import type { KwargRow } from './templated-text-kwargs';
|
|
8
|
+
/** The add/remove kwargs editor, revealed on demand and open when kwargs already exist. */
|
|
9
|
+
export declare function KwargsEditor({ label, rows, disabled, onChange, }: {
|
|
10
|
+
readonly label: string;
|
|
11
|
+
readonly rows: readonly KwargRow[];
|
|
12
|
+
readonly disabled: boolean;
|
|
13
|
+
readonly onChange: (rows: KwargRow[]) => void;
|
|
14
|
+
}): ReactNode;
|
|
15
|
+
/**
|
|
16
|
+
* The render parameters of a read-only stored value, as read-only text — the
|
|
17
|
+
* values in normal weight, NOT the muted disabled inputs a reader could mistake
|
|
18
|
+
* for empty placeholders. Renders nothing when there are no kwargs.
|
|
19
|
+
*/
|
|
20
|
+
export declare function ReadOnlyKwargs({ label, rows, }: {
|
|
21
|
+
readonly label: string;
|
|
22
|
+
readonly rows: readonly KwargRow[];
|
|
23
|
+
}): ReactNode;
|
|
24
|
+
//# sourceMappingURL=templated-text-kwargs-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templated-text-kwargs-editor.d.ts","sourceRoot":"","sources":["../../src/components/templated-text-kwargs-editor.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,2FAA2F;AAC3F,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;CAC/C,GAAG,SAAS,CA0FZ;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,IAAI,GACL,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,CAAC;CACpC,GAAG,SAAS,CAoBZ"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* The render-parameters UI for `TemplatedTextField`: the add/remove editor
|
|
4
|
+
* (`KwargsEditor`) for editable values, and the read-only listing
|
|
5
|
+
* (`ReadOnlyKwargs`) shown beside a read-only stored id.
|
|
6
|
+
*/
|
|
7
|
+
import { useState } from 'react';
|
|
8
|
+
import { Button } from './primitives';
|
|
9
|
+
import { TextInput } from './inputs';
|
|
10
|
+
import { CloseIcon } from './icons';
|
|
11
|
+
/** The add/remove kwargs editor, revealed on demand and open when kwargs already exist. */
|
|
12
|
+
export function KwargsEditor({ label, rows, disabled, onChange, }) {
|
|
13
|
+
const [open, setOpen] = useState(rows.length > 0);
|
|
14
|
+
const groupLabel = `${label} render parameters`;
|
|
15
|
+
if (!open) {
|
|
16
|
+
// Wrapped so the ghost button keeps its content width and stays left-aligned
|
|
17
|
+
// in the field's column, marking it as this field's own disclosure rather than
|
|
18
|
+
// a full-width control floating between two fields.
|
|
19
|
+
return (_jsx("div", { children: _jsx(Button, { type: "button", variant: "ghost", disabled: disabled, onClick: () => {
|
|
20
|
+
setOpen(true);
|
|
21
|
+
onChange([...rows, { key: '', value: '' }]);
|
|
22
|
+
}, children: "Add render parameters" }) }));
|
|
23
|
+
}
|
|
24
|
+
return (_jsxs("div", { role: "group", "aria-label": groupLabel, style: { display: 'flex', flexDirection: 'column', gap: 'var(--tai-space-2)' }, children: [_jsx("span", { style: { fontSize: 'var(--tai-text-sm)', color: 'var(--tai-color-text-muted)' }, children: "Render parameters" }), rows.map((row, index) => (_jsxs("div", { style: { display: 'flex', gap: 'var(--tai-space-2)', alignItems: 'center' }, children: [_jsx(TextInput, { "aria-label": `${groupLabel} key ${String(index + 1)}`, placeholder: "name", value: row.key, autoComplete: "off", disabled: disabled, onChange: (event) => {
|
|
25
|
+
const next = [...rows];
|
|
26
|
+
next[index] = { ...row, key: event.target.value };
|
|
27
|
+
onChange(next);
|
|
28
|
+
} }), _jsx(TextInput, { "aria-label": `${groupLabel} value ${String(index + 1)}`, placeholder: "value", value: row.value, autoComplete: "off", disabled: disabled, onChange: (event) => {
|
|
29
|
+
const next = [...rows];
|
|
30
|
+
next[index] = { ...row, value: event.target.value };
|
|
31
|
+
onChange(next);
|
|
32
|
+
} }), _jsx(Button, { type: "button", variant: "ghost", "aria-label": `Remove ${groupLabel} ${String(index + 1)}`, disabled: disabled, onClick: () => {
|
|
33
|
+
onChange(rows.filter((_, position) => position !== index));
|
|
34
|
+
}, children: _jsx(CloseIcon, { "aria-hidden": "true" }) })] }, index))), _jsx("div", { children: _jsx(Button, { type: "button", variant: "ghost", disabled: disabled, onClick: () => {
|
|
35
|
+
onChange([...rows, { key: '', value: '' }]);
|
|
36
|
+
}, children: "Add parameter" }) })] }));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The render parameters of a read-only stored value, as read-only text — the
|
|
40
|
+
* values in normal weight, NOT the muted disabled inputs a reader could mistake
|
|
41
|
+
* for empty placeholders. Renders nothing when there are no kwargs.
|
|
42
|
+
*/
|
|
43
|
+
export function ReadOnlyKwargs({ label, rows, }) {
|
|
44
|
+
if (rows.length === 0)
|
|
45
|
+
return null;
|
|
46
|
+
return (_jsxs("div", { role: "group", "aria-label": `${label} render parameters`, style: { display: 'flex', flexDirection: 'column', gap: 'var(--tai-space-1)' }, children: [_jsx("span", { style: { fontSize: 'var(--tai-text-sm)', color: 'var(--tai-color-text-muted)' }, children: "Render parameters" }), rows.map((row) => (_jsxs("div", { style: { fontFamily: 'var(--tai-font-mono)', wordBreak: 'break-all' }, children: [_jsx("code", { children: row.key }), _jsx("span", { style: { color: 'var(--tai-color-text-muted)' }, children: ": " }), _jsx("code", { children: row.value })] }, row.key)))] }));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=templated-text-kwargs-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templated-text-kwargs-editor.js","sourceRoot":"","sources":["../../src/components/templated-text-kwargs-editor.tsx"],"names":[],"mappings":"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"}
|