@tai42/studio-sdk 16.0.0 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/code-block.js +1 -1
- package/dist/components/code-block.js.map +1 -1
- package/dist/components/confirm-dialog.js +1 -1
- package/dist/components/confirm-dialog.js.map +1 -1
- package/dist/components/copy-field.js +1 -1
- package/dist/components/copy-field.js.map +1 -1
- package/dist/components/date-range-picker.d.ts.map +1 -1
- package/dist/components/date-range-picker.js.map +1 -1
- package/dist/components/dialog.d.ts.map +1 -1
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/dirty-guard.d.ts.map +1 -1
- package/dist/components/dirty-guard.js +1 -1
- package/dist/components/dirty-guard.js.map +1 -1
- 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 +1 -6
- package/dist/components/extension-combo-builder.d.ts.map +1 -1
- package/dist/components/extension-combo-builder.js +4 -79
- 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 +52 -0
- package/dist/components/extension-combo-parts.js.map +1 -0
- package/dist/components/field.d.ts +8 -0
- package/dist/components/field.d.ts.map +1 -1
- package/dist/components/field.js +0 -8
- package/dist/components/field.js.map +1 -1
- package/dist/components/fleet-report.d.ts +1 -1
- 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/folder-nav.d.ts.map +1 -1
- package/dist/components/folder-nav.js +1 -1
- package/dist/components/folder-nav.js.map +1 -1
- package/dist/components/form-dialog.d.ts.map +1 -1
- package/dist/components/form-dialog.js +1 -1
- package/dist/components/form-dialog.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 +39 -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/inputs.js.map +1 -1
- 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 +35 -0
- package/dist/components/json-tree-nodes.d.ts.map +1 -0
- package/dist/components/json-tree-nodes.js +113 -0
- package/dist/components/json-tree-nodes.js.map +1 -0
- package/dist/components/json-tree.d.ts +20 -0
- package/dist/components/json-tree.d.ts.map +1 -1
- package/dist/components/json-tree.js +7 -315
- 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/page-fill.d.ts.map +1 -1
- package/dist/components/page-fill.js.map +1 -1
- 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/radio-group.d.ts.map +1 -1
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/scroll-region.d.ts +24 -0
- package/dist/components/scroll-region.d.ts.map +1 -1
- package/dist/components/scroll-region.js +3 -322
- 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/table.d.ts +1 -1
- package/dist/components/table.d.ts.map +1 -1
- package/dist/components/tags.d.ts.map +1 -1
- package/dist/components/tags.js +1 -1
- package/dist/components/tags.js.map +1 -1
- package/dist/components/templated-text-field.d.ts +1 -1
- package/dist/components/templated-text-field.d.ts.map +1 -1
- package/dist/components/templated-text-field.js +10 -174
- 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/components/view-toggle.d.ts.map +1 -1
- package/dist/components/view-toggle.js.map +1 -1
- package/dist/element-slot.d.ts +11 -0
- package/dist/element-slot.d.ts.map +1 -1
- package/dist/element-slot.js +0 -11
- package/dist/element-slot.js.map +1 -1
- 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 +2259 -2189
- package/dist/hooks/useApi.d.ts.map +1 -1
- package/dist/hooks/useApi.js +0 -11
- package/dist/hooks/useApi.js.map +1 -1
- package/dist/hooks/useAuth.d.ts +6 -0
- package/dist/hooks/useAuth.d.ts.map +1 -1
- package/dist/hooks/useAuth.js +0 -6
- package/dist/hooks/useAuth.js.map +1 -1
- package/dist/hooks/useCapabilities.d.ts +18 -2
- package/dist/hooks/useCapabilities.d.ts.map +1 -1
- package/dist/hooks/useCapabilities.js +1 -17
- package/dist/hooks/useCapabilities.js.map +1 -1
- package/dist/hooks/useSse.d.ts +34 -6
- package/dist/hooks/useSse.d.ts.map +1 -1
- package/dist/hooks/useSse.js +27 -471
- package/dist/hooks/useSse.js.map +1 -1
- package/dist/hooks/useSystemKinds.d.ts +1 -1
- package/dist/hooks/useSystemKinds.d.ts.map +1 -1
- package/dist/hooks/useSystemKinds.js +0 -18
- package/dist/hooks/useSystemKinds.js.map +1 -1
- package/dist/hooks/useTheme.d.ts +15 -0
- package/dist/hooks/useTheme.d.ts.map +1 -1
- package/dist/hooks/useTheme.js +0 -15
- package/dist/hooks/useTheme.js.map +1 -1
- package/dist/hooks/useToolDisplayNames.d.ts +0 -14
- package/dist/hooks/useToolDisplayNames.d.ts.map +1 -1
- package/dist/hooks/useToolDisplayNames.js +0 -14
- package/dist/hooks/useToolDisplayNames.js.map +1 -1
- package/dist/host.d.ts +3 -3
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +2 -9
- package/dist/host.js.map +1 -1
- package/dist/index.d.ts +103 -103
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -62
- package/dist/index.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 +5 -4
- 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 +12 -0
- package/dist/navigation/use-back-forward-guard.d.ts.map +1 -0
- package/dist/navigation/use-back-forward-guard.js +75 -0
- package/dist/navigation/use-back-forward-guard.js.map +1 -0
- package/dist/navigation/use-search-commit.d.ts.map +1 -1
- package/dist/navigation/use-search-commit.js.map +1 -1
- package/dist/plugin/host-state.d.ts.map +1 -1
- package/dist/plugin/host-state.js.map +1 -1
- 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.map +1 -1
- package/dist/schema-editor/SchemaEditor.js.map +1 -1
- package/dist/schema-editor/index.d.ts +3 -3
- package/dist/schema-editor/index.d.ts.map +1 -1
- package/dist/schema-editor/index.js +1 -6
- package/dist/schema-editor/index.js.map +1 -1
- package/dist/schema-form/SecretRefField.d.ts +18 -3
- package/dist/schema-form/SecretRefField.d.ts.map +1 -1
- package/dist/schema-form/SecretRefField.js +21 -26
- package/dist/schema-form/SecretRefField.js.map +1 -1
- package/dist/schema-form/classify.d.ts +1 -113
- package/dist/schema-form/classify.d.ts.map +1 -1
- package/dist/schema-form/classify.js +174 -246
- package/dist/schema-form/classify.js.map +1 -1
- package/dist/schema-form/context.d.ts +6 -0
- package/dist/schema-form/context.d.ts.map +1 -1
- package/dist/schema-form/context.js +0 -6
- package/dist/schema-form/context.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-group.d.ts +6 -0
- package/dist/schema-form/field-group.d.ts.map +1 -1
- package/dist/schema-form/field-group.js +0 -6
- package/dist/schema-form/field-group.js.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/index.d.ts +8 -8
- package/dist/schema-form/index.d.ts.map +1 -1
- package/dist/schema-form/index.js +3 -34
- package/dist/schema-form/index.js.map +1 -1
- package/dist/schema-form/json-field.d.ts +19 -0
- package/dist/schema-form/json-field.d.ts.map +1 -1
- package/dist/schema-form/json-field.js +0 -19
- package/dist/schema-form/json-field.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 +49 -30
- package/dist/schema-form/media-field.js.map +1 -1
- package/dist/schema-form/record-field.d.ts +12 -0
- package/dist/schema-form/record-field.d.ts.map +1 -1
- package/dist/schema-form/record-field.js +1 -13
- package/dist/schema-form/record-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/string-field.js +1 -1
- package/dist/schema-form/string-field.js.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 +8 -1
- package/dist/schema-form/union.d.ts.map +1 -1
- package/dist/schema-form/union.js +0 -7
- package/dist/schema-form/union.js.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/BindingJqField.d.ts.map +1 -1
- package/dist/state-binding/BindingJqField.js +2 -2
- package/dist/state-binding/BindingJqField.js.map +1 -1
- package/dist/state-binding/InputInjectionRow.d.ts.map +1 -1
- package/dist/state-binding/InputInjectionRow.js +3 -3
- package/dist/state-binding/InputInjectionRow.js.map +1 -1
- package/dist/state-binding/StateAttachRow.d.ts.map +1 -1
- package/dist/state-binding/StateAttachRow.js +57 -41
- package/dist/state-binding/StateAttachRow.js.map +1 -1
- package/dist/state-binding/StateBindingSection.d.ts.map +1 -1
- package/dist/state-binding/StateBindingSection.js.map +1 -1
- package/dist/state-binding/SubjectScopeFields.d.ts.map +1 -1
- package/dist/state-binding/SubjectScopeFields.js.map +1 -1
- package/dist/state-binding/UpdateRow.d.ts.map +1 -1
- package/dist/state-binding/UpdateRow.js +2 -2
- package/dist/state-binding/UpdateRow.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/state-binding/index.d.ts +21 -21
- package/dist/state-binding/index.d.ts.map +1 -1
- package/dist/state-binding/index.js +9 -15
- package/dist/state-binding/index.js.map +1 -1
- package/dist/state-binding/templated-text-catalog.d.ts.map +1 -1
- package/dist/state-binding/templated-text-catalog.js.map +1 -1
- package/dist/state-binding/types.d.ts +2 -2
- package/dist/state-binding/types.d.ts.map +1 -1
- 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/code-block.tsx +1 -1
- package/src/components/confirm-dialog.tsx +1 -1
- package/src/components/copy-field.tsx +1 -1
- package/src/components/date-range-picker.tsx +1 -1
- package/src/components/dialog.tsx +1 -1
- package/src/components/dirty-guard.tsx +3 -3
- 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 +115 -367
- package/src/components/extension-combo-builder.tsx +35 -153
- package/src/components/extension-combo-parts.tsx +236 -0
- package/src/components/field.tsx +1 -1
- package/src/components/fleet-report.tsx +98 -55
- package/src/components/folder-nav.tsx +2 -2
- package/src/components/form-dialog.tsx +2 -2
- 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/inputs.tsx +1 -1
- 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 +6 -472
- package/src/components/observer-registry.ts +139 -0
- package/src/components/overflow-measure.ts +69 -0
- package/src/components/page-fill.tsx +1 -1
- package/src/components/prose-regions.ts +153 -0
- package/src/components/radio-group.tsx +1 -1
- package/src/components/scroll-region.tsx +22 -361
- package/src/components/tab-stop-parse.ts +217 -0
- package/src/components/table.tsx +1 -1
- package/src/components/tags.tsx +2 -2
- package/src/components/templated-text-field.tsx +39 -332
- 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 +39 -143
- package/src/components/version-history-rows.tsx +220 -0
- package/src/components/view-toggle.tsx +1 -1
- package/src/element-slot.ts +1 -1
- 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/useApi.ts +1 -1
- package/src/hooks/useAuth.ts +1 -1
- package/src/hooks/useCapabilities.ts +3 -3
- package/src/hooks/useSse.ts +51 -478
- package/src/hooks/useSystemKinds.tsx +2 -2
- package/src/hooks/useTheme.ts +1 -1
- package/src/hooks/useToolDisplayNames.tsx +2 -2
- package/src/host.ts +7 -7
- package/src/index.ts +292 -292
- package/src/navigation/app-link.tsx +70 -0
- package/src/navigation/context.tsx +12 -331
- 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 +14 -14
- package/src/navigation/types.ts +8 -11
- package/src/navigation/use-back-forward-guard.ts +90 -0
- package/src/navigation/use-search-commit.ts +1 -1
- package/src/plugin/host-state.ts +1 -1
- package/src/plugin/registry.ts +111 -90
- package/src/schema-editor/SchemaEditor.tsx +1 -1
- package/src/schema-editor/index.ts +3 -3
- package/src/schema-form/SecretRefField.tsx +122 -72
- package/src/schema-form/classify.ts +245 -396
- package/src/schema-form/context.ts +1 -1
- package/src/schema-form/default-value.ts +48 -17
- package/src/schema-form/enum-field.tsx +1 -1
- package/src/schema-form/field-group.tsx +1 -1
- package/src/schema-form/field-model.ts +133 -0
- package/src/schema-form/field-node.tsx +95 -39
- package/src/schema-form/index.ts +10 -10
- package/src/schema-form/json-field.tsx +1 -1
- package/src/schema-form/media-field.tsx +136 -67
- package/src/schema-form/record-field.tsx +2 -2
- package/src/schema-form/string-annotations.ts +111 -0
- package/src/schema-form/string-field.tsx +2 -2
- package/src/schema-form/union-field.tsx +3 -2
- package/src/schema-form/union.ts +1 -1
- package/src/schema-form/validate.ts +185 -104
- package/src/state-binding/AdapterMapping.tsx +0 -0
- package/src/state-binding/BindingJqField.tsx +3 -3
- package/src/state-binding/InputInjectionRow.tsx +4 -4
- package/src/state-binding/StateAttachRow.tsx +229 -154
- package/src/state-binding/StateBindingSection.tsx +1 -1
- package/src/state-binding/SubjectScopeFields.tsx +1 -1
- package/src/state-binding/UpdateRow.tsx +3 -3
- package/src/state-binding/adapter-mapping-row.tsx +232 -0
- package/src/state-binding/index.ts +43 -43
- package/src/state-binding/templated-text-catalog.ts +0 -1
- package/src/state-binding/types.ts +2 -2
- 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
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Field } from './field';
|
|
3
|
+
import { Textarea } from './inputs';
|
|
4
|
+
import { ErrorState, Skeleton } from './primitives';
|
|
5
|
+
import { RadioGroup } from './radio-group';
|
|
6
|
+
import { Select } from './select';
|
|
7
|
+
/** A labeled read-only reference to a stored template id, plus the note that
|
|
8
|
+
* stored templates are unavailable here — NOT an editable field. */
|
|
9
|
+
function ReadOnlyStoredReference({ id }) {
|
|
10
|
+
return (_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: id })] }), _jsx("p", { style: { margin: 0, fontSize: 'var(--tai-text-sm)', color: 'var(--tai-color-text-muted)' }, children: "Stored templates are unavailable \u2014 this deployment has no storage backend." })] }));
|
|
11
|
+
}
|
|
12
|
+
/** The inline/stored toggle, the mode's editor, and the unresolved-id note, for
|
|
13
|
+
* the storage-present configuration. */
|
|
14
|
+
function PresentStorageSource({ label, mode, disabled, inlineEditor, error, storedDraft, templates, templateOptions, templatesLoading, templatesError, onTemplatesRetry, unresolvedId, resolveError, onModeChange, onStoredChange, }) {
|
|
15
|
+
return (_jsxs(_Fragment, { children: [_jsx(RadioGroup, { "aria-label": `${label} source`, variant: "segmented", value: mode, disabled: disabled, options: [
|
|
16
|
+
{ value: 'inline', label: 'Inline text' },
|
|
17
|
+
{ value: 'stored', label: 'Stored template' },
|
|
18
|
+
], onValueChange: (next) => {
|
|
19
|
+
onModeChange(next);
|
|
20
|
+
} }), 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: onStoredChange }) })), 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] }));
|
|
21
|
+
}
|
|
22
|
+
export function TemplatedTextSource({ label, mode, inlineDraft, storedDraft, error, disabled, placeholder, renderInline, templates, templatesLoading, templatesError, onTemplatesRetry, resolveError, storageAbsent, storagePresenceLoading, authoredStoredId, onModeChange, onInlineChange, onStoredChange, }) {
|
|
23
|
+
const templateOptions = templates.map((template) => ({
|
|
24
|
+
value: template.id,
|
|
25
|
+
label: template.label ?? template.id,
|
|
26
|
+
}));
|
|
27
|
+
// A stored id the catalog does not offer cannot be picked from the list; it is
|
|
28
|
+
// shown as an unresolved note rather than silently blanked.
|
|
29
|
+
const unresolvedId = mode === 'stored' &&
|
|
30
|
+
storedDraft.trim() !== '' &&
|
|
31
|
+
!templatesLoading &&
|
|
32
|
+
templatesError === undefined &&
|
|
33
|
+
!templates.some((template) => template.id === storedDraft.trim())
|
|
34
|
+
? storedDraft.trim()
|
|
35
|
+
: undefined;
|
|
36
|
+
// The inline editor, shared by the present-storage inline mode and the
|
|
37
|
+
// absent-storage inline-only rendering: the caller's rich editor when supplied,
|
|
38
|
+
// else a plain textarea.
|
|
39
|
+
const inlineEditor = renderInline !== undefined ? (renderInline({ label, value: inlineDraft, onChange: onInlineChange, error, hideLabel: true })) : (_jsx(Field, { label: label, hideLabel: true, error: error, children: _jsx(Textarea, { value: inlineDraft, placeholder: placeholder, disabled: disabled, onChange: (event) => {
|
|
40
|
+
onInlineChange(event.target.value);
|
|
41
|
+
} }) }));
|
|
42
|
+
// While presence is unknown a placeholder stands in, so the toggle is never
|
|
43
|
+
// shown and then removed. With storage absent the stored source cannot work and
|
|
44
|
+
// is not offered: an inline or empty value edits inline; a value carrying an
|
|
45
|
+
// `id` is shown read-only. With storage present the full toggle and picker render.
|
|
46
|
+
if (storagePresenceLoading)
|
|
47
|
+
return _jsx(Skeleton, { height: 36 });
|
|
48
|
+
if (storageAbsent) {
|
|
49
|
+
return authoredStoredId !== undefined ? (_jsx(ReadOnlyStoredReference, { id: authoredStoredId })) : (inlineEditor);
|
|
50
|
+
}
|
|
51
|
+
return (_jsx(PresentStorageSource, { label: label, mode: mode, disabled: disabled, inlineEditor: inlineEditor, error: error, storedDraft: storedDraft, templates: templates, templateOptions: templateOptions, templatesLoading: templatesLoading, templatesError: templatesError, onTemplatesRetry: onTemplatesRetry, unresolvedId: unresolvedId, resolveError: resolveError, onModeChange: onModeChange, onStoredChange: onStoredChange }));
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=templated-text-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templated-text-source.js","sourceRoot":"","sources":["../../src/components/templated-text-source.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pieces of `ToolPicker`: the tool `Select` itself (grouped or flat), the tag
|
|
3
|
+
* filter field, and the selected tool's capability badges. The picker owns the
|
|
4
|
+
* state and composes these; the option-label and grouping helpers live here too.
|
|
5
|
+
*/
|
|
6
|
+
import type { ReactNode } from 'react';
|
|
7
|
+
/** The shared informational note every badge surface carries: declared, never enforced. */
|
|
8
|
+
export declare const BADGES_NOTE = "Declared capability labels \u2014 informational only. They describe what the tool touches; the server never enforces them.";
|
|
9
|
+
export declare const ALL_TAGS = "__all_tags__";
|
|
10
|
+
interface ToolSelectProps {
|
|
11
|
+
readonly tagsByTool: Readonly<Record<string, readonly string[]>> | undefined;
|
|
12
|
+
readonly filtered: readonly string[];
|
|
13
|
+
readonly value: string | null;
|
|
14
|
+
readonly onChange: (toolName: string) => void;
|
|
15
|
+
readonly placeholder: string;
|
|
16
|
+
readonly ariaLabel: string | undefined;
|
|
17
|
+
readonly disabled: boolean | undefined;
|
|
18
|
+
readonly displayNames: Readonly<Record<string, string>> | undefined;
|
|
19
|
+
readonly agentToolNames: ReadonlySet<string> | undefined;
|
|
20
|
+
}
|
|
21
|
+
/** The tool select: grouped by tag when `tagsByTool` is present, else a flat list.
|
|
22
|
+
* Either branch is a `Select`, which claims the enclosing `Field`'s control id. */
|
|
23
|
+
export declare function ToolSelect({ tagsByTool, filtered, value, onChange, placeholder, ariaLabel, disabled, displayNames, agentToolNames, }: ToolSelectProps): ReactNode;
|
|
24
|
+
/** The tag filter: an "All tags" sentinel plus one option per distinct tag. */
|
|
25
|
+
export declare function TagFilterField({ allTags, tagFilter, onTagFilterChange, disabled, }: {
|
|
26
|
+
readonly allTags: readonly string[];
|
|
27
|
+
readonly tagFilter: string;
|
|
28
|
+
readonly onTagFilterChange: (value: string) => void;
|
|
29
|
+
readonly disabled: boolean | undefined;
|
|
30
|
+
}): ReactNode;
|
|
31
|
+
/** The selected tool's DECLARED capability badges, read-only and informational.
|
|
32
|
+
* Renders nothing unless the selected tool carries badges. */
|
|
33
|
+
export declare function SelectedToolBadges({ value, badgesByTool, idPrefix, }: {
|
|
34
|
+
readonly value: string | null;
|
|
35
|
+
readonly badgesByTool: Readonly<Record<string, readonly string[]>> | undefined;
|
|
36
|
+
readonly idPrefix: string;
|
|
37
|
+
}): ReactNode;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=tool-picker-parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-picker-parts.d.ts","sourceRoot":"","sources":["../../src/components/tool-picker-parts.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC,2FAA2F;AAC3F,eAAO,MAAM,WAAW,+HACiG,CAAC;AAO1H,eAAO,MAAM,QAAQ,iBAAiB,CAAC;AAkDvC,UAAU,eAAe;IACvB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;IAC7E,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IACpE,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;CAC1D;AAED;oFACoF;AACpF,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,GACf,EAAE,eAAe,GAAG,SAAS,CA6B7B;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC,GAAG,SAAS,CAcZ;AAED;+DAC+D;AAC/D,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,YAAY,EACZ,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;IAC/E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GAAG,SAAS,CAmBZ"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { toolDisplayLabel } from '../hooks/useToolDisplayNames';
|
|
3
|
+
import { Badge } from './badge';
|
|
4
|
+
import { Field } from './field';
|
|
5
|
+
import { Select } from './select';
|
|
6
|
+
import { Tooltip } from './tooltip';
|
|
7
|
+
/** The shared informational note every badge surface carries: declared, never enforced. */
|
|
8
|
+
export const BADGES_NOTE = 'Declared capability labels — informational only. They describe what the tool touches; the server never enforces them.';
|
|
9
|
+
const NO_DISPLAY_NAMES = {};
|
|
10
|
+
const UNTAGGED = 'Untagged';
|
|
11
|
+
// Radix `Select.Item` forbids an empty-string value, so the "no filter" choice
|
|
12
|
+
// uses a sentinel rather than ''. A tool literally tagged this string would just
|
|
13
|
+
// never be filtered out — harmless for a UI convenience whose authority is the server.
|
|
14
|
+
export const ALL_TAGS = '__all_tags__';
|
|
15
|
+
/** The group a tool sorts into: its alphabetically-first tag, else "Untagged". */
|
|
16
|
+
function groupFor(name, tagsByTool) {
|
|
17
|
+
const tags = [...(tagsByTool[name] ?? [])].sort((a, b) => a.localeCompare(b));
|
|
18
|
+
return tags[0] ?? UNTAGGED;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The option label: `Display Name (raw)` when a distinct non-empty display name maps
|
|
22
|
+
* the name, else the bare name; either way suffixed " (agent)" for an agent run tool.
|
|
23
|
+
*/
|
|
24
|
+
function optionLabel(name, displayNames, agentToolNames) {
|
|
25
|
+
const base = toolDisplayLabel(displayNames ?? NO_DISPLAY_NAMES, name);
|
|
26
|
+
return agentToolNames?.has(name) === true ? `${base} (agent)` : base;
|
|
27
|
+
}
|
|
28
|
+
/** Build the grouped option clusters (sorted group labels, "Untagged" last). */
|
|
29
|
+
function buildGroups(names, tagsByTool, displayNames, agentToolNames) {
|
|
30
|
+
const byGroup = new Map();
|
|
31
|
+
for (const name of names) {
|
|
32
|
+
const group = groupFor(name, tagsByTool);
|
|
33
|
+
const bucket = byGroup.get(group) ?? [];
|
|
34
|
+
bucket.push(name);
|
|
35
|
+
byGroup.set(group, bucket);
|
|
36
|
+
}
|
|
37
|
+
return [...byGroup.entries()]
|
|
38
|
+
.sort(([a], [b]) => {
|
|
39
|
+
if (a === UNTAGGED)
|
|
40
|
+
return 1;
|
|
41
|
+
if (b === UNTAGGED)
|
|
42
|
+
return -1;
|
|
43
|
+
return a.localeCompare(b);
|
|
44
|
+
})
|
|
45
|
+
.map(([label, groupNames]) => ({
|
|
46
|
+
label,
|
|
47
|
+
options: groupNames.map((name) => ({
|
|
48
|
+
value: name,
|
|
49
|
+
label: optionLabel(name, displayNames, agentToolNames),
|
|
50
|
+
})),
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
/** The tool select: grouped by tag when `tagsByTool` is present, else a flat list.
|
|
54
|
+
* Either branch is a `Select`, which claims the enclosing `Field`'s control id. */
|
|
55
|
+
export function ToolSelect({ tagsByTool, filtered, value, onChange, placeholder, ariaLabel, disabled, displayNames, agentToolNames, }) {
|
|
56
|
+
if (tagsByTool !== undefined) {
|
|
57
|
+
return (_jsx(Select, { groups: buildGroups(filtered, tagsByTool, displayNames, agentToolNames), value: value ?? '', onValueChange: onChange, placeholder: placeholder, "aria-label": ariaLabel, disabled: disabled }));
|
|
58
|
+
}
|
|
59
|
+
return (_jsx(Select
|
|
60
|
+
// Keep Radix controlled even when the caller's value is null: `''` matches no
|
|
61
|
+
// item (placeholder still shows) and avoids the uncontrolled→controlled warning
|
|
62
|
+
// a subsequent selection would otherwise trigger.
|
|
63
|
+
, {
|
|
64
|
+
// Keep Radix controlled even when the caller's value is null: `''` matches no
|
|
65
|
+
// item (placeholder still shows) and avoids the uncontrolled→controlled warning
|
|
66
|
+
// a subsequent selection would otherwise trigger.
|
|
67
|
+
options: filtered.map((name) => ({
|
|
68
|
+
value: name,
|
|
69
|
+
label: optionLabel(name, displayNames, agentToolNames),
|
|
70
|
+
})), value: value ?? '', onValueChange: onChange, placeholder: placeholder, "aria-label": ariaLabel, disabled: disabled }));
|
|
71
|
+
}
|
|
72
|
+
/** The tag filter: an "All tags" sentinel plus one option per distinct tag. */
|
|
73
|
+
export function TagFilterField({ allTags, tagFilter, onTagFilterChange, disabled, }) {
|
|
74
|
+
return (_jsx(Field, { label: "Filter by tag", children: _jsx(Select, { options: [
|
|
75
|
+
{ value: ALL_TAGS, label: 'All tags' },
|
|
76
|
+
...allTags.map((tag) => ({ value: tag, label: tag })),
|
|
77
|
+
], value: tagFilter, onValueChange: onTagFilterChange, disabled: disabled }) }));
|
|
78
|
+
}
|
|
79
|
+
/** The selected tool's DECLARED capability badges, read-only and informational.
|
|
80
|
+
* Renders nothing unless the selected tool carries badges. */
|
|
81
|
+
export function SelectedToolBadges({ value, badgesByTool, idPrefix, }) {
|
|
82
|
+
if (value === null || badgesByTool === undefined || (badgesByTool[value]?.length ?? 0) === 0) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
return (_jsx(Tooltip, { content: BADGES_NOTE, children: _jsx("span", { className: "tai-row", "data-testid": `${idPrefix}-badges`, style: { gap: 'var(--tai-space-1)' }, children: (badgesByTool[value] ?? []).map((badge) => (_jsx(Badge, { variant: "neutral", children: badge }, badge))) }) }));
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=tool-picker-parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-picker-parts.js","sourceRoot":"","sources":["../../src/components/tool-picker-parts.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const BADGES_NOTE = "Declared capability labels \u2014 informational only. They describe what the tool touches; the server never enforces them.";
|
|
1
|
+
export { BADGES_NOTE } from './tool-picker-parts';
|
|
3
2
|
export interface ToolPickerProps {
|
|
4
3
|
readonly toolNames: readonly string[];
|
|
5
4
|
readonly value: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-picker.d.ts","sourceRoot":"","sources":["../../src/components/tool-picker.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-picker.d.ts","sourceRoot":"","sources":["../../src/components/tool-picker.tsx"],"names":[],"mappings":"AAsCA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,sFAAsF;IACtF,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAClE,wFAAwF;IACxF,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CACrE;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAA8B,EAC9B,QAAwB,EACxB,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,YAAY,GACb,EAAE,eAAe,+BA+CjB"}
|
|
@@ -33,57 +33,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
33
33
|
* every one renders as TEXT (React escapes it) — never an HTML sink. Pinned by a test.
|
|
34
34
|
*/
|
|
35
35
|
import { useState } from 'react';
|
|
36
|
-
import { toolDisplayLabel } from '../hooks/useToolDisplayNames';
|
|
37
|
-
import { Badge } from './badge';
|
|
38
36
|
import { Field } from './field';
|
|
39
|
-
import {
|
|
40
|
-
|
|
41
|
-
/** The shared informational note every badge surface carries: declared, never enforced. */
|
|
42
|
-
export const BADGES_NOTE = 'Declared capability labels — informational only. They describe what the tool touches; the server never enforces them.';
|
|
43
|
-
const NO_DISPLAY_NAMES = {};
|
|
44
|
-
const UNTAGGED = 'Untagged';
|
|
45
|
-
// Radix `Select.Item` forbids an empty-string value, so the "no filter" choice
|
|
46
|
-
// uses a sentinel rather than ''. A tool literally tagged this string would just
|
|
47
|
-
// never be filtered out — harmless for a UI convenience whose authority is the server.
|
|
48
|
-
const ALL_TAGS = '__all_tags__';
|
|
49
|
-
/** The group a tool sorts into: its alphabetically-first tag, else "Untagged". */
|
|
50
|
-
function groupFor(name, tagsByTool) {
|
|
51
|
-
const tags = [...(tagsByTool[name] ?? [])].sort((a, b) => a.localeCompare(b));
|
|
52
|
-
return tags[0] ?? UNTAGGED;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* The option label: `Display Name (raw)` when a distinct non-empty display name maps
|
|
56
|
-
* the name, else the bare name; either way suffixed " (agent)" for an agent run tool.
|
|
57
|
-
*/
|
|
58
|
-
function optionLabel(name, displayNames, agentToolNames) {
|
|
59
|
-
const base = toolDisplayLabel(displayNames ?? NO_DISPLAY_NAMES, name);
|
|
60
|
-
return agentToolNames?.has(name) === true ? `${base} (agent)` : base;
|
|
61
|
-
}
|
|
62
|
-
/** Build the grouped option clusters (sorted group labels, "Untagged" last). */
|
|
63
|
-
function buildGroups(names, tagsByTool, displayNames, agentToolNames) {
|
|
64
|
-
const byGroup = new Map();
|
|
65
|
-
for (const name of names) {
|
|
66
|
-
const group = groupFor(name, tagsByTool);
|
|
67
|
-
const bucket = byGroup.get(group) ?? [];
|
|
68
|
-
bucket.push(name);
|
|
69
|
-
byGroup.set(group, bucket);
|
|
70
|
-
}
|
|
71
|
-
return [...byGroup.entries()]
|
|
72
|
-
.sort(([a], [b]) => {
|
|
73
|
-
if (a === UNTAGGED)
|
|
74
|
-
return 1;
|
|
75
|
-
if (b === UNTAGGED)
|
|
76
|
-
return -1;
|
|
77
|
-
return a.localeCompare(b);
|
|
78
|
-
})
|
|
79
|
-
.map(([label, groupNames]) => ({
|
|
80
|
-
label,
|
|
81
|
-
options: groupNames.map((name) => ({
|
|
82
|
-
value: name,
|
|
83
|
-
label: optionLabel(name, displayNames, agentToolNames),
|
|
84
|
-
})),
|
|
85
|
-
}));
|
|
86
|
-
}
|
|
37
|
+
import { ALL_TAGS, SelectedToolBadges, TagFilterField, ToolSelect } from './tool-picker-parts';
|
|
38
|
+
export { BADGES_NOTE } from './tool-picker-parts';
|
|
87
39
|
export function ToolPicker({ toolNames, value, onChange, disabled, placeholder = 'Select a tool…', idPrefix = 'tool-picker', label, 'aria-label': ariaLabel, excludeNames, tagsByTool, agentToolNames, displayNames, badgesByTool, }) {
|
|
88
40
|
const [tagFilter, setTagFilter] = useState(ALL_TAGS);
|
|
89
41
|
const excluded = new Set(excludeNames ?? []);
|
|
@@ -95,21 +47,7 @@ export function ToolPicker({ toolNames, value, onChange, disabled, placeholder =
|
|
|
95
47
|
const filtered = tagsByTool !== undefined && tagFilter !== ALL_TAGS
|
|
96
48
|
? available.filter((name) => (tagsByTool[name] ?? []).includes(tagFilter))
|
|
97
49
|
: available;
|
|
98
|
-
const toolSelect =
|
|
99
|
-
|
|
100
|
-
// item (placeholder still shows) and avoids the uncontrolled→controlled warning
|
|
101
|
-
// a subsequent selection would otherwise trigger.
|
|
102
|
-
, {
|
|
103
|
-
// Keep Radix controlled even when the caller's value is null: `''` matches no
|
|
104
|
-
// item (placeholder still shows) and avoids the uncontrolled→controlled warning
|
|
105
|
-
// a subsequent selection would otherwise trigger.
|
|
106
|
-
options: filtered.map((name) => ({
|
|
107
|
-
value: name,
|
|
108
|
-
label: optionLabel(name, displayNames, agentToolNames),
|
|
109
|
-
})), value: value ?? '', onValueChange: onChange, placeholder: placeholder, "aria-label": ariaLabel, disabled: disabled }));
|
|
110
|
-
return (_jsxs("div", { "data-testid": idPrefix, className: "tai-stack tai-stack-2", children: [tagsByTool !== undefined && allTags.length > 0 ? (_jsx(Field, { label: "Filter by tag", children: _jsx(Select, { options: [
|
|
111
|
-
{ value: ALL_TAGS, label: 'All tags' },
|
|
112
|
-
...allTags.map((tag) => ({ value: tag, label: tag })),
|
|
113
|
-
], value: tagFilter, onValueChange: setTagFilter, disabled: disabled }) })) : null, label !== undefined ? _jsx(Field, { label: label, children: toolSelect }) : toolSelect, value !== null && badgesByTool !== undefined && (badgesByTool[value]?.length ?? 0) > 0 ? (_jsx(Tooltip, { content: BADGES_NOTE, children: _jsx("span", { className: "tai-row", "data-testid": `${idPrefix}-badges`, style: { gap: 'var(--tai-space-1)' }, children: (badgesByTool[value] ?? []).map((badge) => (_jsx(Badge, { variant: "neutral", children: badge }, badge))) }) })) : null] }));
|
|
50
|
+
const toolSelect = (_jsx(ToolSelect, { tagsByTool: tagsByTool, filtered: filtered, value: value, onChange: onChange, placeholder: placeholder, ariaLabel: ariaLabel, disabled: disabled, displayNames: displayNames, agentToolNames: agentToolNames }));
|
|
51
|
+
return (_jsxs("div", { "data-testid": idPrefix, className: "tai-stack tai-stack-2", children: [tagsByTool !== undefined && allTags.length > 0 ? (_jsx(TagFilterField, { allTags: allTags, tagFilter: tagFilter, onTagFilterChange: setTagFilter, disabled: disabled })) : null, label !== undefined ? _jsx(Field, { label: label, children: toolSelect }) : toolSelect, _jsx(SelectedToolBadges, { value: value, badgesByTool: badgesByTool, idPrefix: idPrefix })] }));
|
|
114
52
|
}
|
|
115
53
|
//# sourceMappingURL=tool-picker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-picker.js","sourceRoot":"","sources":["../../src/components/tool-picker.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tool-picker.js","sourceRoot":"","sources":["../../src/components/tool-picker.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE/F,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAsClD,MAAM,UAAU,UAAU,CAAC,EACzB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,GAAG,gBAAgB,EAC9B,QAAQ,GAAG,aAAa,EACxB,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,YAAY,GACI;IAChB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAS,QAAQ,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAElE,gFAAgF;IAChF,MAAM,OAAO,GACX,UAAU,KAAK,SAAS;QACtB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC9E,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACnB,CAAC;IAER,MAAM,QAAQ,GACZ,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ;QAChD,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1E,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,UAAU,GAAG,CACjB,KAAC,UAAU,IACT,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;IAEF,OAAO,CACL,8BAAkB,QAAQ,EAAE,SAAS,EAAC,uBAAuB,aAC1D,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAChD,KAAC,cAAc,IACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,YAAY,EAC/B,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAC,KAAK,IAAC,KAAK,EAAE,KAAK,YAAG,UAAU,GAAS,CAAC,CAAC,CAAC,UAAU,EAC7E,KAAC,kBAAkB,IAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAI,IAChF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-history-panel.d.ts","sourceRoot":"","sources":["../../src/components/version-history-panel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"version-history-panel.d.ts","sourceRoot":"","sources":["../../src/components/version-history-panel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AAgBpE,8EAA8E;AAC9E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,gFAAgF;IAChF,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAClD,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,qDAAqD;IACrD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;AA6ED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,UAAU,EACV,MAAM,EACN,eAAe,EACf,aAAa,EACb,QAAgB,EAChB,0BAA0B,EAC1B,UAAU,GACX,EAAE,wBAAwB,GAAG,SAAS,CAoItC"}
|
|
@@ -30,13 +30,11 @@ import { useEffect, useRef, useState } from 'react';
|
|
|
30
30
|
import { errorMessage } from '../errors';
|
|
31
31
|
import { Dialog } from './dialog';
|
|
32
32
|
import { Field } from './field';
|
|
33
|
-
import { CheckCircleIcon, PendingIcon } from './icons';
|
|
34
|
-
import { JsonDiff } from './json-diff';
|
|
35
|
-
import { JsonTree } from './json-tree';
|
|
36
33
|
import { Button, Card, ErrorState, Spinner } from './primitives';
|
|
37
34
|
import { ScrollRegion } from './scroll-region';
|
|
38
|
-
import { Table, TBody,
|
|
39
|
-
import {
|
|
35
|
+
import { Table, TBody, TH, THead, TR } from './table';
|
|
36
|
+
import { TagsInput } from './tags';
|
|
37
|
+
import { CompareDialog, RollbackConfirmDialog, SelectedVersionBody, VersionRow, } from './version-history-rows';
|
|
40
38
|
/** The initially-selected version: the current one, else the first listed. */
|
|
41
39
|
function initialSelection(versions) {
|
|
42
40
|
const current = versions.find((entry) => entry.is_current);
|
|
@@ -114,35 +112,10 @@ export function VersionHistoryPanel({ versions, onRollback, onView, rollbackPend
|
|
|
114
112
|
const editingEntry = versions.find((entry) => entry.version === editingTags);
|
|
115
113
|
const fromBody = versions.find((entry) => entry.version === comparePair?.from)?.body;
|
|
116
114
|
const toBody = versions.find((entry) => entry.version === comparePair?.to)?.body;
|
|
117
|
-
return (_jsxs("div", { className: "tai-stack", children: [_jsx(Card, { children: _jsx(ScrollRegion, { label: "Version history", children: _jsxs(Table, { children: [_jsx(THead, { children: _jsxs(TR, { children: [_jsx(TH, { numeric: true, children: "Version" }), _jsx(TH, { children: "Created" }), _jsx(TH, { children: "Status" }), showTags ? _jsx(TH, { children: "Tags" }) : null, _jsx(TH, { children: "Actions" })] }) }), _jsx(TBody, { children: versions.map((entry) => (
|
|
118
|
-
view(entry.version);
|
|
119
|
-
}, children: "View" }), canCompare ? (_jsx(Button
|
|
120
|
-
// The name starts with the word the button is SHOWING,
|
|
121
|
-
// which is what WCAG 2.5.3 (Label in Name) asks: a constant
|
|
122
|
-
// "Compare …" would leave a button reading "Comparing…"
|
|
123
|
-
// named "Compare", and a voice-control user naming a control
|
|
124
|
-
// they cannot see. The button stays ENABLED while armed —
|
|
125
|
-
// unlike an Edit action, a second click on the armed row is
|
|
126
|
-
// the disarm, so there is nothing to take away.
|
|
127
|
-
, { "aria-label": `${compareFrom === entry.version ? 'Comparing' : 'Compare'} version ${String(entry.version)}`, onClick: () => {
|
|
128
|
-
compare(entry.version);
|
|
129
|
-
}, children: compareFrom === entry.version ? 'Comparing…' : 'Compare' })) : null, onEditTags !== undefined && !readOnly ? (_jsx(Button, { "aria-label": `Edit tags for version ${String(entry.version)}`, onClick: () => {
|
|
130
|
-
setEditingTags(entry.version);
|
|
131
|
-
}, children: "Edit tags" })) : null, readOnly ? null : (_jsx(Button, { variant: "secondary", "aria-label": `Roll back to version ${String(entry.version)}`, disabled: entry.is_current, onClick: () => {
|
|
132
|
-
setConfirming(entry.version);
|
|
133
|
-
}, children: "Roll back" }))] }) })] }, entry.version))) })] }) }) }), compareFrom !== null && comparePair === null ? (_jsxs("p", { role: "status", className: "tai-muted", children: ["Comparing from version ", compareFrom, " \u2014 pick another version, or Compare again to cancel."] })) : null, selectedEntry !== undefined ? (_jsxs("section", { className: "tai-stack tai-stack-2", children: [_jsxs("h3", { className: "tai-section-title", children: ["Version ", selectedEntry.version, " body"] }), _jsx(Card, { children: _jsx(JsonTree, { data: selectedEntry.body, label: `Version ${String(selectedEntry.version)} body` }) })] })) : null, comparePair !== null ? (_jsxs(Dialog, { title: `v${String(comparePair.from)} compared with v${String(comparePair.to)}`, description: "A structural diff of the two version bodies. Arrays compare whole.", open: true, onOpenChange: (next) => {
|
|
134
|
-
if (!next)
|
|
135
|
-
closeCompare();
|
|
136
|
-
}, children: [_jsx(ScrollRegion, { label: "Version diff", children: _jsx(JsonDiff, { before: fromBody, after: toBody }) }), _jsx("div", { className: "tai-dialog-actions", children: _jsx(Button, { onClick: closeCompare, children: "Close" }) })] })) : null, editingEntry !== undefined && onEditTags !== undefined ? (_jsx(EditTagsDialog, { version: editingEntry.version, initialTags: editingEntry.tags ?? [], onSave: onEditTags, onClose: () => {
|
|
115
|
+
return (_jsxs("div", { className: "tai-stack", children: [_jsx(Card, { children: _jsx(ScrollRegion, { label: "Version history", children: _jsxs(Table, { children: [_jsx(THead, { children: _jsxs(TR, { children: [_jsx(TH, { numeric: true, children: "Version" }), _jsx(TH, { children: "Created" }), _jsx(TH, { children: "Status" }), showTags ? _jsx(TH, { children: "Tags" }) : null, _jsx(TH, { children: "Actions" })] }) }), _jsx(TBody, { children: versions.map((entry) => (_jsx(VersionRow, { entry: entry, showTags: showTags, canCompare: canCompare, compareArmed: compareFrom === entry.version, readOnly: readOnly, canEditTags: onEditTags !== undefined, onView: view, onCompare: compare, onEditTags: setEditingTags, onRollback: setConfirming }, entry.version))) })] }) }) }), compareFrom !== null && comparePair === null ? (_jsxs("p", { role: "status", className: "tai-muted", children: ["Comparing from version ", compareFrom, " \u2014 pick another version, or Compare again to cancel."] })) : null, selectedEntry !== undefined ? _jsx(SelectedVersionBody, { entry: selectedEntry }) : null, comparePair !== null ? (_jsx(CompareDialog, { from: comparePair.from, to: comparePair.to, fromBody: fromBody, toBody: toBody, onClose: closeCompare })) : null, editingEntry !== undefined && onEditTags !== undefined ? (_jsx(EditTagsDialog, { version: editingEntry.version, initialTags: editingEntry.tags ?? [], onSave: onEditTags, onClose: () => {
|
|
137
116
|
setEditingTags(null);
|
|
138
|
-
} })) : null, confirming !== null ? (
|
|
139
|
-
(
|
|
140
|
-
|
|
141
|
-
setConfirming(null);
|
|
142
|
-
}, children: [rollbackError !== undefined ? _jsx(ErrorState, { message: rollbackError }) : null, _jsxs("div", { className: "tai-dialog-actions", children: [_jsx(Button, { onClick: () => {
|
|
143
|
-
setConfirming(null);
|
|
144
|
-
}, children: "Cancel" }), _jsxs(Button, { variant: "primary", disabled: rollbackPending, onClick: () => {
|
|
145
|
-
onRollback(confirming);
|
|
146
|
-
}, children: [rollbackPending ? _jsx(Spinner, { label: "Rolling back" }) : null, "Roll back"] })] })] })) : null] }));
|
|
117
|
+
} })) : null, confirming !== null ? (_jsx(RollbackConfirmDialog, { version: confirming, rollbackPending: rollbackPending, rollbackError: rollbackError, extraDescription: rollbackConfirmDescription, onCancel: () => {
|
|
118
|
+
setConfirming(null);
|
|
119
|
+
}, onConfirm: onRollback })) : null] }));
|
|
147
120
|
}
|
|
148
121
|
//# sourceMappingURL=version-history-panel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-history-panel.js","sourceRoot":"","sources":["../../src/components/version-history-panel.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"version-history-panel.js","sourceRoot":"","sources":["../../src/components/version-history-panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The row and dialog pieces of `VersionHistoryPanel`: one version's table row and
|
|
3
|
+
* action cluster (`VersionRow`), the selected version's body (`SelectedVersionBody`),
|
|
4
|
+
* the two-version compare dialog (`CompareDialog`), and the rollback confirm
|
|
5
|
+
* dialog (`RollbackConfirmDialog`). All generic and kind-agnostic.
|
|
6
|
+
*/
|
|
7
|
+
import type { ReactNode } from 'react';
|
|
8
|
+
import type { VersionHistoryEntry } from './version-history-panel';
|
|
9
|
+
interface VersionRowProps {
|
|
10
|
+
readonly entry: VersionHistoryEntry;
|
|
11
|
+
readonly showTags: boolean;
|
|
12
|
+
readonly canCompare: boolean;
|
|
13
|
+
/** This row is the armed Compare source. */
|
|
14
|
+
readonly compareArmed: boolean;
|
|
15
|
+
readonly readOnly: boolean;
|
|
16
|
+
/** An edit-tags affordance is available (the consumer supplied `onEditTags`). */
|
|
17
|
+
readonly canEditTags: boolean;
|
|
18
|
+
readonly onView: (version: number) => void;
|
|
19
|
+
readonly onCompare: (version: number) => void;
|
|
20
|
+
readonly onEditTags: (version: number) => void;
|
|
21
|
+
readonly onRollback: (version: number) => void;
|
|
22
|
+
}
|
|
23
|
+
/** One version's row: its number, timestamp, status mark, optional tags, and the
|
|
24
|
+
* View / Compare / Edit tags / Roll back action cluster. */
|
|
25
|
+
export declare function VersionRow({ entry, showTags, canCompare, compareArmed, readOnly, canEditTags, onView, onCompare, onEditTags, onRollback, }: VersionRowProps): ReactNode;
|
|
26
|
+
/** The selected version's opaque body, rendered through `JsonTree`. */
|
|
27
|
+
export declare function SelectedVersionBody({ entry }: {
|
|
28
|
+
readonly entry: VersionHistoryEntry;
|
|
29
|
+
}): ReactNode;
|
|
30
|
+
/** A structural diff of two version bodies, in a dialog. */
|
|
31
|
+
export declare function CompareDialog({ from, to, fromBody, toBody, onClose, }: {
|
|
32
|
+
readonly from: number;
|
|
33
|
+
readonly to: number;
|
|
34
|
+
readonly fromBody: unknown;
|
|
35
|
+
readonly toBody: unknown;
|
|
36
|
+
readonly onClose: () => void;
|
|
37
|
+
}): ReactNode;
|
|
38
|
+
/** The rollback confirmation, surfacing any rollback failure verbatim. */
|
|
39
|
+
export declare function RollbackConfirmDialog({ version, rollbackPending, rollbackError, extraDescription, onCancel, onConfirm, }: {
|
|
40
|
+
readonly version: number;
|
|
41
|
+
readonly rollbackPending: boolean | undefined;
|
|
42
|
+
readonly rollbackError: string | undefined;
|
|
43
|
+
readonly extraDescription: string | undefined;
|
|
44
|
+
readonly onCancel: () => void;
|
|
45
|
+
readonly onConfirm: (version: number) => void;
|
|
46
|
+
}): ReactNode;
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=version-history-rows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-history-rows.d.ts","sourceRoot":"","sources":["../../src/components/version-history-rows.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,UAAU,eAAe;IACvB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED;6DAC6D;AAC7D,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,MAAM,EACN,SAAS,EACT,UAAU,EACV,UAAU,GACX,EAAE,eAAe,GAAG,SAAS,CAiF7B;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,GAAG,SAAS,CASjG;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,EAAE,EACF,QAAQ,EACR,MAAM,EACN,OAAO,GACR,EAAE;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B,GAAG,SAAS,CAmBZ;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C,GAAG,SAAS,CA6BZ"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Dialog } from './dialog';
|
|
3
|
+
import { CheckCircleIcon, PendingIcon } from './icons';
|
|
4
|
+
import { JsonDiff } from './json-diff';
|
|
5
|
+
import { JsonTree } from './json-tree';
|
|
6
|
+
import { Button, Card, ErrorState, Spinner } from './primitives';
|
|
7
|
+
import { ScrollRegion } from './scroll-region';
|
|
8
|
+
import { TD, TR } from './table';
|
|
9
|
+
import { TagChips } from './tags';
|
|
10
|
+
/** One version's row: its number, timestamp, status mark, optional tags, and the
|
|
11
|
+
* View / Compare / Edit tags / Roll back action cluster. */
|
|
12
|
+
export function VersionRow({ entry, showTags, canCompare, compareArmed, readOnly, canEditTags, onView, onCompare, onEditTags, onRollback, }) {
|
|
13
|
+
return (_jsxs(TR, { "data-testid": `version-row-${String(entry.version)}`, children: [_jsx(TD, { className: "tai-table-id", numeric: true, children: entry.version }), _jsx(TD, { className: "tai-mono", children: entry.created_at }), _jsx(TD, { children: entry.is_current ? (_jsxs("span", { className: "tai-status tai-status-ok", children: [_jsx(CheckCircleIcon, {}), "Current"] })) : (_jsxs("span", { className: "tai-status tai-status-pending", children: [_jsx(PendingIcon, {}), "Historical"] })) }), showTags ? (_jsx(TD, { children: (entry.tags ?? []).length > 0 ? (_jsx(TagChips, { tags: entry.tags ?? [] })) : (_jsx("span", { className: "tai-muted", children: "\u2014" })) })) : null, _jsx(TD, { children: _jsxs("div", { className: "tai-row", children: [_jsx(Button, { "aria-label": `View version ${String(entry.version)}`, onClick: () => {
|
|
14
|
+
onView(entry.version);
|
|
15
|
+
}, children: "View" }), canCompare ? (_jsx(Button
|
|
16
|
+
// The name starts with the word the button is SHOWING, which is what
|
|
17
|
+
// WCAG 2.5.3 (Label in Name) asks: a constant "Compare …" would leave a
|
|
18
|
+
// button reading "Comparing…" named "Compare", and a voice-control user
|
|
19
|
+
// naming a control they cannot see. The button stays ENABLED while armed
|
|
20
|
+
// — unlike an Edit action, a second click on the armed row is the disarm,
|
|
21
|
+
// so there is nothing to take away.
|
|
22
|
+
, { "aria-label": `${compareArmed ? 'Comparing' : 'Compare'} version ${String(entry.version)}`, onClick: () => {
|
|
23
|
+
onCompare(entry.version);
|
|
24
|
+
}, children: compareArmed ? 'Comparing…' : 'Compare' })) : null, canEditTags && !readOnly ? (_jsx(Button, { "aria-label": `Edit tags for version ${String(entry.version)}`, onClick: () => {
|
|
25
|
+
onEditTags(entry.version);
|
|
26
|
+
}, children: "Edit tags" })) : null, readOnly ? null : (_jsx(Button, { variant: "secondary", "aria-label": `Roll back to version ${String(entry.version)}`, disabled: entry.is_current, onClick: () => {
|
|
27
|
+
onRollback(entry.version);
|
|
28
|
+
}, children: "Roll back" }))] }) })] }));
|
|
29
|
+
}
|
|
30
|
+
/** The selected version's opaque body, rendered through `JsonTree`. */
|
|
31
|
+
export function SelectedVersionBody({ entry }) {
|
|
32
|
+
return (_jsxs("section", { className: "tai-stack tai-stack-2", children: [_jsxs("h3", { className: "tai-section-title", children: ["Version ", entry.version, " body"] }), _jsx(Card, { children: _jsx(JsonTree, { data: entry.body, label: `Version ${String(entry.version)} body` }) })] }));
|
|
33
|
+
}
|
|
34
|
+
/** A structural diff of two version bodies, in a dialog. */
|
|
35
|
+
export function CompareDialog({ from, to, fromBody, toBody, onClose, }) {
|
|
36
|
+
return (_jsxs(Dialog, { title: `v${String(from)} compared with v${String(to)}`, description: "A structural diff of the two version bodies. Arrays compare whole.", open: true, onOpenChange: (next) => {
|
|
37
|
+
if (!next)
|
|
38
|
+
onClose();
|
|
39
|
+
}, children: [_jsx(ScrollRegion, { label: "Version diff", children: _jsx(JsonDiff, { before: fromBody, after: toBody }) }), _jsx("div", { className: "tai-dialog-actions", children: _jsx(Button, { onClick: onClose, children: "Close" }) })] }));
|
|
40
|
+
}
|
|
41
|
+
/** The rollback confirmation, surfacing any rollback failure verbatim. */
|
|
42
|
+
export function RollbackConfirmDialog({ version, rollbackPending, rollbackError, extraDescription, onCancel, onConfirm, }) {
|
|
43
|
+
return (_jsxs(Dialog, { title: "Roll back version", description: `Make version ${String(version)} the active version? The version history is preserved.` +
|
|
44
|
+
(extraDescription !== undefined ? ` ${extraDescription}` : ''), open: true, onOpenChange: (next) => {
|
|
45
|
+
if (!next)
|
|
46
|
+
onCancel();
|
|
47
|
+
}, children: [rollbackError !== undefined ? _jsx(ErrorState, { message: rollbackError }) : null, _jsxs("div", { className: "tai-dialog-actions", children: [_jsx(Button, { onClick: onCancel, children: "Cancel" }), _jsxs(Button, { variant: "primary", disabled: rollbackPending, onClick: () => {
|
|
48
|
+
onConfirm(version);
|
|
49
|
+
}, children: [rollbackPending ? _jsx(Spinner, { label: "Rolling back" }) : null, "Roll back"] })] })] }));
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=version-history-rows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-history-rows.js","sourceRoot":"","sources":["../../src/components/version-history-rows.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-toggle.d.ts","sourceRoot":"","sources":["../../src/components/view-toggle.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"view-toggle.d.ts","sourceRoot":"","sources":["../../src/components/view-toggle.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAC;AAK9D,qCAAqC;AACrC,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAOxC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjD,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,aAAa,EACb,YAAY,EAAE,SAAS,EACvB,QAAQ,GACT,EAAE,eAAe,GAAG,SAAS,CAgB7B;AAcD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,QAAiB,GAC1B,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,CAc/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-toggle.js","sourceRoot":"","sources":["../../src/components/view-toggle.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"view-toggle.js","sourceRoot":"","sources":["../../src/components/view-toggle.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAkB,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK3C,MAAM,OAAO,GAAG;IACd,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,KAAC,QAAQ,KAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE;IACpF,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,KAAC,QAAQ,KAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE;CAC7E,CAAC;AAUX,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,aAAa,EACb,YAAY,EAAE,SAAS,EACvB,QAAQ,GACQ;IAChB,OAAO,CACL,KAAC,UAAU,IACT,OAAO,EAAC,WAAW,EACnB,WAAW,EAAC,YAAY,gBACZ,SAAS,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,0EAA0E;YAC1E,2EAA2E;YAC3E,aAAa,CAAC,IAAgB,CAAC,CAAC;QAClC,CAAC,EACD,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAE/C,SAAS,cAAc,CAAC,OAAe,EAAE,QAAkB;IACzD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC;QACtE,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,GAAG,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,+EAA+E;IACjF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,OAAe,EACf,WAAqB,MAAM;IAE3B,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAW,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,IAAc,EAAE,EAAE;QACjB,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC;YACH,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IACF,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACzB,CAAC"}
|