@tai42/studio-sdk 15.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 +2409 -2293
- 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-editor/SchemaEditor.d.ts +8 -1
- package/dist/schema-editor/SchemaEditor.d.ts.map +1 -1
- package/dist/schema-editor/SchemaEditor.js +2 -2
- package/dist/schema-editor/SchemaEditor.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-editor/SchemaEditor.tsx +9 -1
- 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
|
@@ -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
|
* `ExplorerView<T>` — the shared current-directory explorer every entity screen
|
|
4
4
|
* composes: a breadcrumb over a flat {@link Folder} tree, optional search + tag
|
|
@@ -9,131 +9,58 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
9
9
|
* dir / tags / search in the URL or in local state; only the view mode persists
|
|
10
10
|
* internally (per `viewSurface`).
|
|
11
11
|
*
|
|
12
|
-
* The tag glue lives
|
|
12
|
+
* The tag glue lives in `explorer-tags` as exported helpers ({@link buildTagVocabulary},
|
|
13
13
|
* {@link matchesSelectedTags}, {@link UNTAGGED_TOKEN}) so every consuming screen
|
|
14
14
|
* shares one vocabulary/untagged-sentinel/OR-match rule rather than copying it.
|
|
15
15
|
*/
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import { childFolders, FolderBreadcrumb, FolderRow } from './folder-nav';
|
|
16
|
+
import { useEffect, useState } from 'react';
|
|
17
|
+
import { childFolders, FolderBreadcrumb } from './folder-nav';
|
|
19
18
|
import { SearchIcon } from './icons';
|
|
20
19
|
import { TextInput } from './inputs';
|
|
21
20
|
import { openTargetProps } from './open-target';
|
|
22
|
-
import {
|
|
23
|
-
import { ScrollRegion } from './scroll-region';
|
|
24
|
-
import { Select } from './select';
|
|
25
|
-
import { Table, TBody, TD, TH, THead, TR } from './table';
|
|
21
|
+
import { EmptyState } from './primitives';
|
|
26
22
|
import { useViewMode, ViewToggle } from './view-toggle';
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (tags.length === 0) {
|
|
39
|
-
untagged += 1;
|
|
40
|
-
continue;
|
|
41
|
-
}
|
|
42
|
-
for (const tag of tags)
|
|
43
|
-
counts.set(tag, (counts.get(tag) ?? 0) + 1);
|
|
44
|
-
}
|
|
45
|
-
const vocabulary = [...counts.entries()]
|
|
46
|
-
.sort(([a], [b]) => a.localeCompare(b))
|
|
47
|
-
.map(([label, count]) => ({ token: label, label, count }));
|
|
48
|
-
if (untagged > 0) {
|
|
49
|
-
vocabulary.push({ token: UNTAGGED_TOKEN, label: untaggedLabel, count: untagged });
|
|
50
|
-
}
|
|
51
|
-
for (const token of selectedTags) {
|
|
52
|
-
if (!vocabulary.some((entry) => entry.token === token)) {
|
|
53
|
-
vocabulary.push({
|
|
54
|
-
token,
|
|
55
|
-
label: token === UNTAGGED_TOKEN ? untaggedLabel : token,
|
|
56
|
-
count: 0,
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return vocabulary;
|
|
61
|
-
}
|
|
62
|
-
/** OR semantics: an empty selection matches everything; otherwise an item
|
|
63
|
-
* matches when it carries any selected tag, or is untagged and UNTAGGED_TOKEN
|
|
64
|
-
* is selected. */
|
|
65
|
-
export function matchesSelectedTags(itemTags, selected) {
|
|
66
|
-
if (selected.size === 0)
|
|
67
|
-
return true;
|
|
68
|
-
if (itemTags.length === 0)
|
|
69
|
-
return selected.has(UNTAGGED_TOKEN);
|
|
70
|
-
return itemTags.some((tag) => selected.has(tag));
|
|
71
|
-
}
|
|
72
|
-
/** A togglable tag chip; `aria-pressed` reflects whether the tag filters the list. */
|
|
73
|
-
function TagChip({ entry, active, onToggle, }) {
|
|
74
|
-
return (_jsxs("button", { type: "button", className: "tai-chip", "aria-pressed": active, "aria-label": `${entry.label} (${String(entry.count)})`, onClick: onToggle, children: [_jsx("span", { children: entry.label }), _jsx("span", { children: entry.count })] }));
|
|
75
|
-
}
|
|
76
|
-
/** The filter row: every selected chip plus as many unselected chips as fit under
|
|
77
|
-
* the cap, with the remainder collapsed into a STATIC "+N more" count. An unset
|
|
78
|
-
* cap shows every chip. */
|
|
79
|
-
function TagFilterRow({ vocabulary, selectedSet, onToggle, filterLabel, maxVisibleTags, }) {
|
|
80
|
-
const visible = [];
|
|
81
|
-
let hidden = 0;
|
|
82
|
-
let unselectedShown = 0;
|
|
83
|
-
for (const entry of vocabulary) {
|
|
84
|
-
if (selectedSet.has(entry.token)) {
|
|
85
|
-
visible.push(entry);
|
|
86
|
-
}
|
|
87
|
-
else if (maxVisibleTags === undefined || unselectedShown < maxVisibleTags) {
|
|
88
|
-
visible.push(entry);
|
|
89
|
-
unselectedShown += 1;
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
hidden += 1;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return (_jsxs("div", { role: "group", "aria-label": filterLabel, className: "tai-row", children: [visible.map((entry) => (_jsx(TagChip, { entry: entry, active: selectedSet.has(entry.token), onToggle: () => {
|
|
96
|
-
onToggle(entry.token);
|
|
97
|
-
} }, entry.token))), hidden > 0 ? (_jsx("span", { className: "tai-chip tai-chip-static", children: `+${String(hidden)} more` })) : null] }));
|
|
98
|
-
}
|
|
99
|
-
/** A first-class folder entry — a `FolderRow` (icon + name, navigates inward)
|
|
100
|
-
* beside its optional actions, in the layout shared by the row cell and the card. */
|
|
101
|
-
function FolderEntry({ folder, onNavigate, renderFolderActions, }) {
|
|
102
|
-
return (_jsxs("div", { className: "tai-explorer-folder", children: [_jsx(FolderRow, { folder: folder, onOpen: onNavigate }), renderFolderActions ? renderFolderActions(folder) : null] }));
|
|
103
|
-
}
|
|
104
|
-
/** The page-size choices, and the default. */
|
|
105
|
-
const PAGE_SIZES = [12, 24, 48, 96];
|
|
106
|
-
const DEFAULT_PAGE_SIZE = 24;
|
|
107
|
-
const PAGE_SIZE_STORAGE_PREFIX = 'tai-studio.page-size.';
|
|
108
|
-
function readStoredPageSize(surface) {
|
|
109
|
-
try {
|
|
110
|
-
const raw = globalThis.localStorage.getItem(PAGE_SIZE_STORAGE_PREFIX + surface);
|
|
111
|
-
const parsed = raw === null ? Number.NaN : Number(raw);
|
|
112
|
-
if (PAGE_SIZES.includes(parsed))
|
|
113
|
-
return parsed;
|
|
114
|
-
}
|
|
115
|
-
catch {
|
|
116
|
-
// No storage (private mode / non-browser) — fall back to the default.
|
|
117
|
-
}
|
|
118
|
-
return DEFAULT_PAGE_SIZE;
|
|
23
|
+
import { buildTagVocabulary, matchesSelectedTags } from './explorer-tags';
|
|
24
|
+
import { usePageSize } from './explorer-page-size';
|
|
25
|
+
import { TagFilterRow } from './explorer-tag-filter';
|
|
26
|
+
import { ExplorerBody } from './explorer-body';
|
|
27
|
+
export { UNTAGGED_TOKEN, buildTagVocabulary, matchesSelectedTags } from './explorer-tags';
|
|
28
|
+
/** The header row: the optional search field, the item count, and the
|
|
29
|
+
* list/card view toggle. */
|
|
30
|
+
function ExplorerControls({ itemCount, countLabel, label, search, viewMode, onViewModeChange, }) {
|
|
31
|
+
return (_jsxs("div", { className: "tai-explorer-controls", children: [_jsxs("div", { className: "tai-row", children: [search !== undefined ? (_jsxs("span", { className: "tai-search-field", children: [_jsx(SearchIcon, {}), _jsx(TextInput, { value: search.value, "aria-label": search.label, placeholder: search.placeholder, onChange: (event) => {
|
|
32
|
+
search.onChange(event.target.value);
|
|
33
|
+
} })] })) : null, _jsx("span", { className: "tai-muted", children: `${String(itemCount)} ${countLabel}` })] }), _jsx(ViewToggle, { value: viewMode, onValueChange: onViewModeChange, "aria-label": `${label} view` })] }));
|
|
119
34
|
}
|
|
120
35
|
/**
|
|
121
|
-
* The
|
|
122
|
-
*
|
|
123
|
-
*
|
|
36
|
+
* The pointer-open props for one item's row/card, via the shared house pattern
|
|
37
|
+
* ({@link openTargetProps}): present only when `onOpenItem` is set, it yields to
|
|
38
|
+
* the item's own nested interactive elements (its name link, an actions kebab)
|
|
39
|
+
* and to a text-selection drag. The accessible activation path stays that nested
|
|
40
|
+
* name link, so no `keyboard` here — the row is never itself a focus stop.
|
|
124
41
|
*/
|
|
125
|
-
function
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
42
|
+
function itemOpenProps(item, onOpenItem) {
|
|
43
|
+
return openTargetProps({
|
|
44
|
+
onOpen: onOpenItem === undefined
|
|
45
|
+
? undefined
|
|
46
|
+
: () => {
|
|
47
|
+
onOpenItem(item);
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/** The current folder's filtered items and the tag vocabulary over the folder. */
|
|
52
|
+
function filterInFolder(inFolder, tags, selectedSet, search, query) {
|
|
53
|
+
return inFolder.filter((item) => {
|
|
54
|
+
if (tags !== undefined && selectedSet !== undefined && selectedSet.size > 0) {
|
|
55
|
+
if (!matchesSelectedTags(tags.getTags(item), selectedSet))
|
|
56
|
+
return false;
|
|
131
57
|
}
|
|
132
|
-
|
|
133
|
-
|
|
58
|
+
if (search !== undefined && query !== '') {
|
|
59
|
+
if (!search.matches(item, query))
|
|
60
|
+
return false;
|
|
134
61
|
}
|
|
135
|
-
|
|
136
|
-
|
|
62
|
+
return true;
|
|
63
|
+
});
|
|
137
64
|
}
|
|
138
65
|
export function ExplorerView({ items, getItemKey, getFolderId, folders, currentFolderId, onNavigate, rootLabel, viewSurface, label, columns, renderRow, renderCard, onOpenItem, tags, search, renderFolderActions, emptyStates, }) {
|
|
139
66
|
const [viewMode, setViewMode] = useViewMode(viewSurface);
|
|
@@ -157,17 +84,7 @@ export function ExplorerView({ items, getItemKey, getFolderId, folders, currentF
|
|
|
157
84
|
const subfolders = childFolders(folders, currentFolderId);
|
|
158
85
|
const inFolder = items.filter((item) => getFolderId(item) === currentFolderId);
|
|
159
86
|
const selectedSet = tags !== undefined ? new Set(tags.selected) : undefined;
|
|
160
|
-
const filtered = inFolder
|
|
161
|
-
if (tags !== undefined && selectedSet !== undefined && selectedSet.size > 0) {
|
|
162
|
-
if (!matchesSelectedTags(tags.getTags(item), selectedSet))
|
|
163
|
-
return false;
|
|
164
|
-
}
|
|
165
|
-
if (search !== undefined && query !== '') {
|
|
166
|
-
if (!search.matches(item, query))
|
|
167
|
-
return false;
|
|
168
|
-
}
|
|
169
|
-
return true;
|
|
170
|
-
});
|
|
87
|
+
const filtered = filterInFolder(inFolder, tags, selectedSet, search, query);
|
|
171
88
|
const vocabulary = tags !== undefined
|
|
172
89
|
? buildTagVocabulary(inFolder, tags.getTags, tags.selected, tags.untaggedLabel)
|
|
173
90
|
: [];
|
|
@@ -179,18 +96,7 @@ export function ExplorerView({ items, getItemKey, getFolderId, folders, currentF
|
|
|
179
96
|
: [...tags.selected, token];
|
|
180
97
|
tags.onChange(next);
|
|
181
98
|
};
|
|
182
|
-
|
|
183
|
-
// ({@link openTargetProps}): present only when `onOpenItem` is set, it yields to
|
|
184
|
-
// the item's own nested interactive elements (its name link, an actions kebab)
|
|
185
|
-
// and to a text-selection drag. The accessible activation path stays that nested
|
|
186
|
-
// name link, so no `keyboard` here — the row is never itself a focus stop.
|
|
187
|
-
const openProps = (item) => openTargetProps({
|
|
188
|
-
onOpen: onOpenItem === undefined
|
|
189
|
-
? undefined
|
|
190
|
-
: () => {
|
|
191
|
-
onOpenItem(item);
|
|
192
|
-
},
|
|
193
|
-
});
|
|
99
|
+
const openProps = (item) => itemOpenProps(item, onOpenItem);
|
|
194
100
|
const hasEntries = subfolders.length > 0 || filtered.length > 0;
|
|
195
101
|
// Subfolders (sorted first) then filtered items, as ONE entries array both views
|
|
196
102
|
// slice by page — so a page can straddle the folder→item boundary.
|
|
@@ -207,41 +113,18 @@ export function ExplorerView({ items, getItemKey, getFolderId, folders, currentF
|
|
|
207
113
|
setPage(effectivePage);
|
|
208
114
|
const pageStart = (effectivePage - 1) * pageSize;
|
|
209
115
|
const pageEntries = entries.slice(pageStart, pageStart + pageSize);
|
|
210
|
-
const footer = entries.length > 0 ? (_jsxs("nav", { className: "tai-explorer-pagination", "aria-label": `${label} pagination`, children: [_jsx("span", { className: "tai-muted", children: `${String(pageStart + 1)}–${String(Math.min(pageStart + pageSize, entries.length))} of ${String(entries.length)} entries` }), _jsxs("div", { className: "tai-row", children: [_jsx(Select, { "aria-label": "Items per page", value: String(pageSize), onValueChange: (value) => {
|
|
211
|
-
setPageSize(Number(value));
|
|
212
|
-
}, options: PAGE_SIZES.map((size) => ({
|
|
213
|
-
value: String(size),
|
|
214
|
-
label: `${String(size)} per page`,
|
|
215
|
-
})) }), _jsx(Button, { variant: "ghost", "aria-label": "Previous page", "aria-disabled": effectivePage <= 1, onClick: () => {
|
|
216
|
-
if (effectivePage <= 1)
|
|
217
|
-
return;
|
|
218
|
-
setPage(effectivePage - 1);
|
|
219
|
-
}, children: "Prev" }), _jsx(Button, { variant: "ghost", "aria-label": "Next page", "aria-disabled": effectivePage >= pageCount, onClick: () => {
|
|
220
|
-
if (effectivePage >= pageCount)
|
|
221
|
-
return;
|
|
222
|
-
setPage(effectivePage + 1);
|
|
223
|
-
}, children: "Next" }), _jsx("span", { className: "tai-muted", children: `Page ${String(effectivePage)} of ${String(pageCount)}` })] })] })) : null;
|
|
224
|
-
let body;
|
|
225
|
-
if (!hasEntries) {
|
|
226
|
-
// The current folder renders nothing. A filter emptied it (`inFolder` non-empty)
|
|
227
|
-
// → "no match"; otherwise the folder is genuinely empty. The ladder decides on
|
|
228
|
-
// the full, unsliced sets, never on a page.
|
|
229
|
-
body = (_jsx(EmptyState, { ...(inFolder.length > 0 ? emptyStates.noMatch : emptyStates.emptyFolder) }));
|
|
230
|
-
}
|
|
231
|
-
else if (viewMode === 'cards') {
|
|
232
|
-
body = (_jsxs(_Fragment, { children: [_jsx(EntityCardGrid, { "aria-label": label, children: pageEntries.map((entry) => entry.kind === 'folder' ? (_jsx("div", { role: "listitem", children: _jsx(Card, { interactive: true, children: _jsx(FolderEntry, { folder: entry.folder, onNavigate: onNavigate, renderFolderActions: renderFolderActions }) }) }, `folder:${entry.folder.id}`)) : (_jsx("div", { role: "listitem", ...openProps(entry.item), children: renderCard(entry.item) }, `item:${getItemKey(entry.item)}`))) }), footer] }));
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
// Folder rows share the item table, spanning every column, sorted above items —
|
|
236
|
-
// so a folder-with-only-subfolders is folder ROWS, never a header-only table.
|
|
237
|
-
// A too-wide table scrolls inside its own box rather than widening the page.
|
|
238
|
-
body = (_jsxs(_Fragment, { children: [_jsx(ScrollRegion, { label: label, children: _jsxs(Table, { children: [_jsx(THead, { children: _jsx(TR, { children: columns.map((column) => (_jsx(TH, { numeric: column.numeric, children: column.header }, column.key))) }) }), _jsx(TBody, { children: pageEntries.map((entry) => entry.kind === 'folder' ? (_jsx(TR, { children: _jsx(TD, { colSpan: columns.length, children: _jsx(FolderEntry, { folder: entry.folder, onNavigate: onNavigate, renderFolderActions: renderFolderActions }) }) }, `folder:${entry.folder.id}`)) : (_jsx(TR, { ...openProps(entry.item), children: renderRow(entry.item) }, `item:${getItemKey(entry.item)}`))) })] }) }), footer] }));
|
|
239
|
-
}
|
|
240
116
|
// Every surface label is a regular English plural (Tools/Templates/Resources/
|
|
241
117
|
// Flows), so a count of one drops the trailing "s".
|
|
242
118
|
const countLabel = items.length === 1 ? label.toLowerCase().replace(/s$/, '') : label.toLowerCase();
|
|
243
|
-
return (_jsxs("div", { className: "tai-explorer", children: [
|
|
244
|
-
|
|
245
|
-
|
|
119
|
+
return (_jsxs("div", { className: "tai-explorer", children: [_jsx(ExplorerControls, { itemCount: items.length, countLabel: countLabel, label: label, search: search, viewMode: viewMode, onViewModeChange: setViewMode }), _jsx(FolderBreadcrumb, { folders: folders, currentFolderId: currentFolderId, onNavigate: onNavigate, rootLabel: rootLabel }), tags !== undefined && selectedSet !== undefined && vocabulary.length > 0 ? (_jsx(TagFilterRow, { vocabulary: vocabulary, selectedSet: selectedSet, onToggle: toggleTag, filterLabel: tags.filterLabel, maxVisibleTags: tags.maxVisibleTags })) : null, _jsx(ExplorerBody, { hasEntries: hasEntries, inFolderCount: inFolder.length, emptyStates: emptyStates, viewMode: viewMode, label: label, columns: columns, pageEntries: pageEntries, getItemKey: getItemKey, renderRow: renderRow, renderCard: renderCard, openProps: openProps, onNavigate: onNavigate, renderFolderActions: renderFolderActions, pager: {
|
|
120
|
+
label,
|
|
121
|
+
pageStart,
|
|
122
|
+
pageSize,
|
|
123
|
+
total: entries.length,
|
|
124
|
+
effectivePage,
|
|
125
|
+
pageCount,
|
|
126
|
+
onPageChange: setPage,
|
|
127
|
+
onPageSizeChange: setPageSize,
|
|
128
|
+
} })] }));
|
|
246
129
|
}
|
|
247
130
|
//# sourceMappingURL=explorer-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explorer-view.js","sourceRoot":"","sources":["../../src/components/explorer-view.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"explorer-view.js","sourceRoot":"","sources":["../../src/components/explorer-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -34,11 +34,6 @@
|
|
|
34
34
|
*
|
|
35
35
|
* SAFETY: an extension name is server-supplied, so every name renders as TEXT through
|
|
36
36
|
* the DS `Badge`/`Checkbox` (React escapes it) — never an HTML sink.
|
|
37
|
-
*
|
|
38
|
-
* Geometry and ink come from the design-system classes: each committed combo is a
|
|
39
|
-
* `tai-card` row, the invalid notes are `tai-field-error` (icon + message, never
|
|
40
|
-
* color alone), and Remove is a labelled `Button` carrying `CloseIcon` beside the
|
|
41
|
-
* word, under an accessible name that names the combo it removes.
|
|
42
37
|
*/
|
|
43
38
|
import { type ReactNode } from 'react';
|
|
44
39
|
import type { Extension, PresetExtensionElement } from '@tai42/api-client';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-combo-builder.d.ts","sourceRoot":"","sources":["../../src/components/extension-combo-builder.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"extension-combo-builder.d.ts","sourceRoot":"","sources":["../../src/components/extension-combo-builder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAa3E,MAAM,WAAW,0BAA0B;IACzC,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,SAAS,SAAS,EAAE,CAAC;IACzC,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,SAAS,sBAAsB,EAAE,EAAE,CAAC;IACpD,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,EAAE,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAoC,EACpC,gBAAgB,EAChB,cAAqB,GACtB,EAAE,0BAA0B,GAAG,SAAS,CAwGxC"}
|
|
@@ -35,41 +35,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
35
35
|
*
|
|
36
36
|
* SAFETY: an extension name is server-supplied, so every name renders as TEXT through
|
|
37
37
|
* the DS `Badge`/`Checkbox` (React escapes it) — never an HTML sink.
|
|
38
|
-
*
|
|
39
|
-
* Geometry and ink come from the design-system classes: each committed combo is a
|
|
40
|
-
* `tai-card` row, the invalid notes are `tai-field-error` (icon + message, never
|
|
41
|
-
* color alone), and Remove is a labelled `Button` carrying `CloseIcon` beside the
|
|
42
|
-
* word, under an accessible name that names the combo it removes.
|
|
43
38
|
*/
|
|
44
|
-
import {
|
|
39
|
+
import { useEffect, useState } from 'react';
|
|
45
40
|
import { comboElementNames, extensionElementName } from '../extension-combos';
|
|
46
|
-
import {
|
|
47
|
-
import {
|
|
48
|
-
import { ExtensionPicker } from './extension-picker';
|
|
49
|
-
import { CloseIcon, XCircleIcon } from './icons';
|
|
50
|
-
import { Button } from './primitives';
|
|
51
|
-
/** The one config-taking extension this builder authors inline. */
|
|
52
|
-
const OUTPUT_SCHEMA = 'output_schema';
|
|
53
|
-
/** Two combos are equal when their NAME sequences match (config is not part of identity). */
|
|
54
|
-
function sameNames(a, b) {
|
|
55
|
-
return a.length === b.length && a.every((name, index) => name === b[index]);
|
|
56
|
-
}
|
|
57
|
-
/** The stored `output_schema` config schema for a combo, if it carries one. */
|
|
58
|
-
function outputSchemaConfig(combo) {
|
|
59
|
-
for (const element of combo) {
|
|
60
|
-
if (typeof element !== 'string' && element.name === OUTPUT_SCHEMA) {
|
|
61
|
-
const schema = element.config.schema;
|
|
62
|
-
return typeof schema === 'object' && schema !== null && !Array.isArray(schema)
|
|
63
|
-
? schema
|
|
64
|
-
: {};
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
/** The element names in a combo that are absent from the known catalog. */
|
|
70
|
-
function unknownNames(combo, availableNames) {
|
|
71
|
-
return comboElementNames(combo).filter((name) => !availableNames.has(name));
|
|
72
|
-
}
|
|
41
|
+
import {} from '../schema-editor';
|
|
42
|
+
import { CommittedComboList, ComboDraftEditor, OUTPUT_SCHEMA, outputSchemaConfig, sameNames, unknownNames, } from './extension-combo-parts';
|
|
73
43
|
export function ExtensionComboBuilder({ available, value, onChange, disabled, idPrefix = 'extension-combo-builder', onValidityChange, availableReady = true, }) {
|
|
74
44
|
const [draft, setDraft] = useState([]);
|
|
75
45
|
const [draftConfig, setDraftConfig] = useState({ schema: null, valid: true });
|
|
@@ -137,14 +107,6 @@ export function ExtensionComboBuilder({ available, value, onChange, disabled, id
|
|
|
137
107
|
if (editing !== null && (editing === index || editing > index))
|
|
138
108
|
resetDraft();
|
|
139
109
|
};
|
|
140
|
-
return (_jsxs("div", { "data-testid": idPrefix, className: "tai-stack", children: [value
|
|
141
|
-
const names = comboElementNames(combo);
|
|
142
|
-
const unknown = availableReady ? unknownNames(combo, availableNames) : [];
|
|
143
|
-
return (_jsxs("li", { className: "tai-card tai-stack tai-stack-2", children: [_jsxs("div", { className: "tai-row", children: [_jsx("span", { className: "tai-row", style: { flex: 1 }, children: names.map((name, position) => (_jsxs(Fragment, { children: [position > 0 ? (_jsx("span", { "aria-hidden": true, className: "tai-muted", children: "+" })) : null, _jsx(Badge, { variant: unknown.includes(name) ? 'danger' : 'primary', children: name })] }, `${name}-${String(position)}`))) }), _jsx(Button, { type: "button", "aria-label": `${editing === index ? 'Editing' : 'Edit'} extension set ${names.join('+')}`, disabled: disabled === true || editing === index, onClick: () => {
|
|
144
|
-
startEdit(index);
|
|
145
|
-
}, children: editing === index ? 'Editing' : 'Edit' }), _jsxs(Button, { type: "button", "aria-label": `Remove extension set ${names.join('+')}`, disabled: disabled, onClick: () => {
|
|
146
|
-
removeCombo(index);
|
|
147
|
-
}, children: [_jsx(CloseIcon, {}), "Remove"] })] }), unknown.length > 0 ? (_jsxs("p", { role: "alert", className: "tai-field-error", children: [_jsx(XCircleIcon, {}), unknown.length === 1 ? 'Unknown extension: ' : 'Unknown extensions: ', unknown.join(', '), "."] })) : null] }, index));
|
|
148
|
-
}) })) : (_jsx("p", { className: "tai-muted", children: "No extension sets." })), _jsxs("div", { className: "tai-stack tai-stack-2", children: [_jsx(ExtensionPicker, { available: available, value: draft, onChange: setDraft, disabled: disabled, idPrefix: `${idPrefix}-draft` }), draftHasOutputSchema ? (_jsx(SchemaEditor, { value: draftConfig.schema, onChange: setDraftConfig, requireTitle: false, label: "Output schema", description: "The JSON Schema the output_schema extension enforces on this extension set's result.", disabled: disabled, idPrefix: `${idPrefix}-output-schema` }, editing === null ? 'new' : `edit-${String(editing)}`)) : null, isDuplicate ? (_jsxs("p", { role: "alert", className: "tai-field-error", children: [_jsx(XCircleIcon, {}), "This extension set is already added."] })) : null, _jsxs("div", { className: "tai-row", children: [_jsx(Button, { type: "button", variant: "primary", onClick: commitCombo, disabled: !canAdd, children: editing === null ? 'Add extension set' : 'Update extension set' }), editing !== null ? (_jsx(Button, { type: "button", onClick: resetDraft, disabled: disabled, children: "Cancel edit" })) : null] })] })] }));
|
|
110
|
+
return (_jsxs("div", { "data-testid": idPrefix, className: "tai-stack", children: [_jsx(CommittedComboList, { value: value, availableReady: availableReady, availableNames: availableNames, editing: editing, disabled: disabled, onEdit: startEdit, onRemove: removeCombo }), _jsx(ComboDraftEditor, { available: available, draft: draft, onDraftChange: setDraft, draftHasOutputSchema: draftHasOutputSchema, draftConfig: draftConfig, onDraftConfigChange: setDraftConfig, isDuplicate: isDuplicate, canAdd: canAdd, editing: editing, disabled: disabled, idPrefix: idPrefix, onCommit: commitCombo, onReset: resetDraft })] }));
|
|
149
111
|
}
|
|
150
112
|
//# sourceMappingURL=extension-combo-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-combo-builder.js","sourceRoot":"","sources":["../../src/components/extension-combo-builder.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"extension-combo-builder.js","sourceRoot":"","sources":["../../src/components/extension-combo-builder.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pieces of `ExtensionComboBuilder`: the committed-combo list
|
|
3
|
+
* (`CommittedComboList`), the under-construction combo editor (`ComboDraftEditor`),
|
|
4
|
+
* and the shared combo helpers. The builder owns the state and composes these.
|
|
5
|
+
*/
|
|
6
|
+
import { type ReactNode } from 'react';
|
|
7
|
+
import type { Extension, PresetExtensionElement } from '@tai42/api-client';
|
|
8
|
+
import { type SchemaEditorChange } from '../schema-editor';
|
|
9
|
+
/** The one config-taking extension this builder authors inline. */
|
|
10
|
+
export declare const OUTPUT_SCHEMA = "output_schema";
|
|
11
|
+
/** Two combos are equal when their NAME sequences match (config is not part of identity). */
|
|
12
|
+
export declare function sameNames(a: readonly string[], b: readonly string[]): boolean;
|
|
13
|
+
/** The stored `output_schema` config schema for a combo, if it carries one. */
|
|
14
|
+
export declare function outputSchemaConfig(combo: readonly PresetExtensionElement[]): Record<string, unknown> | null;
|
|
15
|
+
/** The element names in a combo that are absent from the known catalog. */
|
|
16
|
+
export declare function unknownNames(combo: readonly PresetExtensionElement[], availableNames: ReadonlySet<string>): string[];
|
|
17
|
+
/** The current combos, each a row of name badges with per-combo Edit and Remove. */
|
|
18
|
+
export declare function CommittedComboList({ value, availableReady, availableNames, editing, disabled, onEdit, onRemove, }: {
|
|
19
|
+
readonly value: readonly PresetExtensionElement[][];
|
|
20
|
+
readonly availableReady: boolean;
|
|
21
|
+
readonly availableNames: ReadonlySet<string>;
|
|
22
|
+
readonly editing: number | null;
|
|
23
|
+
readonly disabled: boolean | undefined;
|
|
24
|
+
readonly onEdit: (index: number) => void;
|
|
25
|
+
readonly onRemove: (index: number) => void;
|
|
26
|
+
}): ReactNode;
|
|
27
|
+
/** The combo under construction: the extension picker, the inline output-schema
|
|
28
|
+
* editor when present, the duplicate note, and the Add/Update + Cancel actions. */
|
|
29
|
+
export declare function ComboDraftEditor({ available, draft, onDraftChange, draftHasOutputSchema, draftConfig, onDraftConfigChange, isDuplicate, canAdd, editing, disabled, idPrefix, onCommit, onReset, }: {
|
|
30
|
+
readonly available: readonly Extension[];
|
|
31
|
+
readonly draft: string[];
|
|
32
|
+
readonly onDraftChange: (draft: string[]) => void;
|
|
33
|
+
readonly draftHasOutputSchema: boolean;
|
|
34
|
+
readonly draftConfig: SchemaEditorChange;
|
|
35
|
+
readonly onDraftConfigChange: (change: SchemaEditorChange) => void;
|
|
36
|
+
readonly isDuplicate: boolean;
|
|
37
|
+
readonly canAdd: boolean;
|
|
38
|
+
readonly editing: number | null;
|
|
39
|
+
readonly disabled: boolean | undefined;
|
|
40
|
+
readonly idPrefix: string;
|
|
41
|
+
readonly onCommit: () => void;
|
|
42
|
+
readonly onReset: () => void;
|
|
43
|
+
}): ReactNode;
|
|
44
|
+
//# sourceMappingURL=extension-combo-parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension-combo-parts.d.ts","sourceRoot":"","sources":["../../src/components/extension-combo-parts.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAgB,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAMzE,mEAAmE;AACnE,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,6FAA6F;AAC7F,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAE7E;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,sBAAsB,EAAE,GACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAUhC;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,sBAAsB,EAAE,EACxC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,GAClC,MAAM,EAAE,CAEV;AA4ED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,cAAc,EACd,cAAc,EACd,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,SAAS,sBAAsB,EAAE,EAAE,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C,GAAG,SAAS,CAqBZ;AAED;oFACoF;AACpF,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,KAAK,EACL,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,GACR,EAAE;IACD,QAAQ,CAAC,SAAS,EAAE,SAAS,SAAS,EAAE,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B,GAAG,SAAS,CA6CZ"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* The pieces of `ExtensionComboBuilder`: the committed-combo list
|
|
4
|
+
* (`CommittedComboList`), the under-construction combo editor (`ComboDraftEditor`),
|
|
5
|
+
* and the shared combo helpers. The builder owns the state and composes these.
|
|
6
|
+
*/
|
|
7
|
+
import { Fragment } from 'react';
|
|
8
|
+
import { comboElementNames } from '../extension-combos';
|
|
9
|
+
import { SchemaEditor } from '../schema-editor';
|
|
10
|
+
import { Badge } from './badge';
|
|
11
|
+
import { ExtensionPicker } from './extension-picker';
|
|
12
|
+
import { CloseIcon, XCircleIcon } from './icons';
|
|
13
|
+
import { Button } from './primitives';
|
|
14
|
+
/** The one config-taking extension this builder authors inline. */
|
|
15
|
+
export const OUTPUT_SCHEMA = 'output_schema';
|
|
16
|
+
/** Two combos are equal when their NAME sequences match (config is not part of identity). */
|
|
17
|
+
export function sameNames(a, b) {
|
|
18
|
+
return a.length === b.length && a.every((name, index) => name === b[index]);
|
|
19
|
+
}
|
|
20
|
+
/** The stored `output_schema` config schema for a combo, if it carries one. */
|
|
21
|
+
export function outputSchemaConfig(combo) {
|
|
22
|
+
for (const element of combo) {
|
|
23
|
+
if (typeof element !== 'string' && element.name === OUTPUT_SCHEMA) {
|
|
24
|
+
const schema = element.config.schema;
|
|
25
|
+
return typeof schema === 'object' && schema !== null && !Array.isArray(schema)
|
|
26
|
+
? schema
|
|
27
|
+
: {};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
/** The element names in a combo that are absent from the known catalog. */
|
|
33
|
+
export function unknownNames(combo, availableNames) {
|
|
34
|
+
return comboElementNames(combo).filter((name) => !availableNames.has(name));
|
|
35
|
+
}
|
|
36
|
+
/** One committed combo's row: its name badges and the Edit / Remove pair, with an
|
|
37
|
+
* inline unknown-name note. */
|
|
38
|
+
function CommittedComboRow({ combo, index, editing, disabled, unknown, onEdit, onRemove, }) {
|
|
39
|
+
const names = comboElementNames(combo);
|
|
40
|
+
return (_jsxs("li", { className: "tai-card tai-stack tai-stack-2", children: [_jsxs("div", { className: "tai-row", children: [_jsx("span", { className: "tai-row", style: { flex: 1 }, children: names.map((name, position) => (_jsxs(Fragment, { children: [position > 0 ? (_jsx("span", { "aria-hidden": true, className: "tai-muted", children: "+" })) : null, _jsx(Badge, { variant: unknown.includes(name) ? 'danger' : 'primary', children: name })] }, `${name}-${String(position)}`))) }), _jsx(Button, { type: "button", "aria-label": `${editing === index ? 'Editing' : 'Edit'} extension set ${names.join('+')}`, disabled: disabled === true || editing === index, onClick: () => {
|
|
41
|
+
onEdit(index);
|
|
42
|
+
}, children: editing === index ? 'Editing' : 'Edit' }), _jsxs(Button, { type: "button", "aria-label": `Remove extension set ${names.join('+')}`, disabled: disabled, onClick: () => {
|
|
43
|
+
onRemove(index);
|
|
44
|
+
}, children: [_jsx(CloseIcon, {}), "Remove"] })] }), unknown.length > 0 ? (_jsxs("p", { role: "alert", className: "tai-field-error", children: [_jsx(XCircleIcon, {}), unknown.length === 1 ? 'Unknown extension: ' : 'Unknown extensions: ', unknown.join(', '), "."] })) : null] }));
|
|
45
|
+
}
|
|
46
|
+
/** The current combos, each a row of name badges with per-combo Edit and Remove. */
|
|
47
|
+
export function CommittedComboList({ value, availableReady, availableNames, editing, disabled, onEdit, onRemove, }) {
|
|
48
|
+
if (value.length === 0)
|
|
49
|
+
return _jsx("p", { className: "tai-muted", children: "No extension sets." });
|
|
50
|
+
return (_jsx("ul", { className: "tai-stack tai-stack-2", children: value.map((combo, index) => (_jsx(CommittedComboRow, { combo: combo, index: index, editing: editing, disabled: disabled, unknown: availableReady ? unknownNames(combo, availableNames) : [], onEdit: onEdit, onRemove: onRemove }, index))) }));
|
|
51
|
+
}
|
|
52
|
+
/** The combo under construction: the extension picker, the inline output-schema
|
|
53
|
+
* editor when present, the duplicate note, and the Add/Update + Cancel actions. */
|
|
54
|
+
export function ComboDraftEditor({ available, draft, onDraftChange, draftHasOutputSchema, draftConfig, onDraftConfigChange, isDuplicate, canAdd, editing, disabled, idPrefix, onCommit, onReset, }) {
|
|
55
|
+
return (_jsxs("div", { className: "tai-stack tai-stack-2", children: [_jsx(ExtensionPicker, { available: available, value: draft, onChange: onDraftChange, disabled: disabled, idPrefix: `${idPrefix}-draft` }), draftHasOutputSchema ? (_jsx(SchemaEditor, { value: draftConfig.schema, onChange: onDraftConfigChange, requireTitle: false, label: "Output schema", description: "The JSON Schema the output_schema extension enforces on this extension set's result.", disabled: disabled, idPrefix: `${idPrefix}-output-schema` }, editing === null ? 'new' : `edit-${String(editing)}`)) : null, isDuplicate ? (_jsxs("p", { role: "alert", className: "tai-field-error", children: [_jsx(XCircleIcon, {}), "This extension set is already added."] })) : null, _jsxs("div", { className: "tai-row", children: [_jsx(Button, { type: "button", variant: "primary", onClick: onCommit, disabled: !canAdd, children: editing === null ? 'Add extension set' : 'Update extension set' }), editing !== null ? (_jsx(Button, { type: "button", onClick: onReset, disabled: disabled, children: "Cancel edit" })) : null] })] }));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=extension-combo-parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension-combo-parts.js","sourceRoot":"","sources":["../../src/components/extension-combo-parts.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleet-report.d.ts","sourceRoot":"","sources":["../../src/components/fleet-report.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"fleet-report.d.ts","sourceRoot":"","sources":["../../src/components/fleet-report.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EACV,kBAAkB,EAGnB,MAAM,mBAAmB,CAAC;AAyC3B;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC;CAC/D;AAyGD,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,MAAe,EAAE,EAAE,gBAAgB,GAAG,SAAS,CAwBrF"}
|