@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,195 @@
|
|
|
1
|
+
/** App-chrome and control marks: search, navigation controls, list actions,
|
|
2
|
+
* ordering arrows, and the reveal/mask pair. */
|
|
3
|
+
import { Icon, type IconComponent } from './icon-frame';
|
|
4
|
+
|
|
5
|
+
/** A magnifier. */
|
|
6
|
+
export const SearchIcon: IconComponent = (props) => (
|
|
7
|
+
<Icon {...props}>
|
|
8
|
+
<circle cx="10.5" cy="10.5" r="6.5" />
|
|
9
|
+
<path d="M15.3 15.3 20.5 20.5" />
|
|
10
|
+
</Icon>
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
/** Sign out: a door with an outbound arrow. */
|
|
14
|
+
export const SignOutIcon: IconComponent = (props) => (
|
|
15
|
+
<Icon {...props}>
|
|
16
|
+
<path d="M9.5 20.5H5.5A1.5 1.5 0 0 1 4 19V5a1.5 1.5 0 0 1 1.5-1.5h4" />
|
|
17
|
+
<path d="M15.5 16.5 20 12l-4.5-4.5" />
|
|
18
|
+
<path d="M20 12H9.5" />
|
|
19
|
+
</Icon>
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
/** The three-bar menu / drawer toggle. */
|
|
23
|
+
export const MenuIcon: IconComponent = (props) => (
|
|
24
|
+
<Icon {...props}>
|
|
25
|
+
<path d="M3.5 6.5h17" />
|
|
26
|
+
<path d="M3.5 12h17" />
|
|
27
|
+
<path d="M3.5 17.5h17" />
|
|
28
|
+
</Icon>
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
/** Dismiss. */
|
|
32
|
+
export const CloseIcon: IconComponent = (props) => (
|
|
33
|
+
<Icon {...props}>
|
|
34
|
+
<path d="M5.5 5.5 18.5 18.5" />
|
|
35
|
+
<path d="M18.5 5.5 5.5 18.5" />
|
|
36
|
+
</Icon>
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
/** A funnel. */
|
|
40
|
+
export const FilterIcon: IconComponent = (props) => (
|
|
41
|
+
<Icon {...props}>
|
|
42
|
+
<path d="M3.5 5h17l-6.6 7.8V19l-3.8 2v-8.2z" />
|
|
43
|
+
</Icon>
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
/** Back / previous. */
|
|
47
|
+
export const ArrowLeftIcon: IconComponent = (props) => (
|
|
48
|
+
<Icon {...props}>
|
|
49
|
+
<path d="M20 12H4.5" />
|
|
50
|
+
<path d="M11 5 4 12l7 7" />
|
|
51
|
+
</Icon>
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
/** Move the item one place earlier in an ordered list. */
|
|
55
|
+
export const ArrowUpIcon: IconComponent = (props) => (
|
|
56
|
+
<Icon {...props}>
|
|
57
|
+
<path d="M12 20V4.5" />
|
|
58
|
+
<path d="M5 11 12 4l7 7" />
|
|
59
|
+
</Icon>
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
/** Move the item one place later in an ordered list. */
|
|
63
|
+
export const ArrowDownIcon: IconComponent = (props) => (
|
|
64
|
+
<Icon {...props}>
|
|
65
|
+
<path d="M12 4v15.5" />
|
|
66
|
+
<path d="M5 13 12 20l7-7" />
|
|
67
|
+
</Icon>
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
/** Expand / collapse affordance. */
|
|
71
|
+
export const ChevronDownIcon: IconComponent = (props) => (
|
|
72
|
+
<Icon {...props}>
|
|
73
|
+
<path d="M5.5 9 12 15.5 18.5 9" />
|
|
74
|
+
</Icon>
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
/** Disclosure / breadcrumb separator. */
|
|
78
|
+
export const ChevronRightIcon: IconComponent = (props) => (
|
|
79
|
+
<Icon {...props}>
|
|
80
|
+
<path d="M9 5.5 15.5 12 9 18.5" />
|
|
81
|
+
</Icon>
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
/** A bare tick, for selection and confirmation. */
|
|
85
|
+
export const CheckIcon: IconComponent = (props) => (
|
|
86
|
+
<Icon {...props}>
|
|
87
|
+
<path d="M4.5 12.5 9.5 17.5 19.5 6.5" />
|
|
88
|
+
</Icon>
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
/** A bare dash, for a partial selection — the tick's mixed-state counterpart. */
|
|
92
|
+
export const MinusIcon: IconComponent = (props) => (
|
|
93
|
+
<Icon {...props}>
|
|
94
|
+
<path d="M5.5 12h13" />
|
|
95
|
+
</Icon>
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
/** Add / insert: the dash crossed by an upright, for an append or attach affordance. */
|
|
99
|
+
export const PlusIcon: IconComponent = (props) => (
|
|
100
|
+
<Icon {...props}>
|
|
101
|
+
<path d="M5.5 12h13" />
|
|
102
|
+
<path d="M12 5.5v13" />
|
|
103
|
+
</Icon>
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
/** Edit: a pencil laid across the surface it writes on. */
|
|
107
|
+
export const EditIcon: IconComponent = (props) => (
|
|
108
|
+
<Icon {...props}>
|
|
109
|
+
<path d="M4 20h4L18.5 9.5a2 2 0 0 0-2.83-2.83L5 17.2z" />
|
|
110
|
+
<path d="M14 8 16 10" />
|
|
111
|
+
</Icon>
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
/** Detach / unmount: a plug pulled from its socket, the two prongs above the gap. */
|
|
115
|
+
export const UnplugIcon: IconComponent = (props) => (
|
|
116
|
+
<Icon {...props}>
|
|
117
|
+
<path d="M15.5 8.5 20 4" />
|
|
118
|
+
<path d="M10.5 6.5 6 11l7 7 4.5-4.5z" />
|
|
119
|
+
<path d="M13.5 3.5 11 6M18 8.5 20.5 11M8.5 15.5 4 20" />
|
|
120
|
+
</Icon>
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
/** Copy to clipboard: a sheet duplicated behind another. */
|
|
124
|
+
export const CopyIcon: IconComponent = (props) => (
|
|
125
|
+
<Icon {...props}>
|
|
126
|
+
<rect x="8.5" y="8.5" width="12" height="12" rx="2" />
|
|
127
|
+
<path d="M15.5 5.5V5A1.5 1.5 0 0 0 14 3.5H5A1.5 1.5 0 0 0 3.5 5v9A1.5 1.5 0 0 0 5 15.5h.5" />
|
|
128
|
+
</Icon>
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
/** Opens in a new tab / leaves the app. */
|
|
132
|
+
export const ExternalLinkIcon: IconComponent = (props) => (
|
|
133
|
+
<Icon {...props}>
|
|
134
|
+
<path d="M13.5 4.5h6v6" />
|
|
135
|
+
<path d="M19.5 4.5 11 13" />
|
|
136
|
+
<path d="M18 14v4.5A1.5 1.5 0 0 1 16.5 20h-11A1.5 1.5 0 0 1 4 18.5v-11A1.5 1.5 0 0 1 5.5 6H10" />
|
|
137
|
+
</Icon>
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
/** Ascending sort: an up arrow beside narrow-to-wide rows. */
|
|
141
|
+
export const SortAscIcon: IconComponent = (props) => (
|
|
142
|
+
<Icon {...props}>
|
|
143
|
+
<path d="M6.5 20V5" />
|
|
144
|
+
<path d="M3.5 8.5 6.5 5l3 3.5" />
|
|
145
|
+
<path d="M12.5 7h3" />
|
|
146
|
+
<path d="M12.5 12h5.5" />
|
|
147
|
+
<path d="M12.5 17h8" />
|
|
148
|
+
</Icon>
|
|
149
|
+
);
|
|
150
|
+
|
|
151
|
+
/** Descending sort: a down arrow beside wide-to-narrow rows. */
|
|
152
|
+
export const SortDescIcon: IconComponent = (props) => (
|
|
153
|
+
<Icon {...props}>
|
|
154
|
+
<path d="M6.5 4v15" />
|
|
155
|
+
<path d="M3.5 15.5 6.5 19l3-3.5" />
|
|
156
|
+
<path d="M12.5 7h8" />
|
|
157
|
+
<path d="M12.5 12h5.5" />
|
|
158
|
+
<path d="M12.5 17h3" />
|
|
159
|
+
</Icon>
|
|
160
|
+
);
|
|
161
|
+
|
|
162
|
+
/** Reveal a masked value. */
|
|
163
|
+
export const EyeIcon: IconComponent = (props) => (
|
|
164
|
+
<Icon {...props}>
|
|
165
|
+
<path d="M2 12s3.8-7 10-7 10 7 10 7-3.8 7-10 7-10-7-10-7z" />
|
|
166
|
+
<circle cx="12" cy="12" r="3.2" />
|
|
167
|
+
</Icon>
|
|
168
|
+
);
|
|
169
|
+
|
|
170
|
+
/** Mask a revealed value. */
|
|
171
|
+
export const EyeOffIcon: IconComponent = (props) => (
|
|
172
|
+
<Icon {...props}>
|
|
173
|
+
<path d="M17.9 17.9A9.9 9.9 0 0 1 12 19.8c-6.2 0-10-7-10-7a18.3 18.3 0 0 1 4.6-5.4" />
|
|
174
|
+
<path d="M9.9 4.4A9.1 9.1 0 0 1 12 4.2c6.2 0 10 7 10 7a18.4 18.4 0 0 1-2.1 3.1" />
|
|
175
|
+
<path d="M14.1 14.1a3.2 3.2 0 1 1-4.4-4.4" />
|
|
176
|
+
<path d="M2.6 2.6 21.4 21.4" />
|
|
177
|
+
</Icon>
|
|
178
|
+
);
|
|
179
|
+
|
|
180
|
+
/** Folder: a tabbed folder, for the tool-organization tree and breadcrumbs. */
|
|
181
|
+
export const FolderIcon: IconComponent = (props) => (
|
|
182
|
+
<Icon {...props}>
|
|
183
|
+
<path d="M3 6.5a2 2 0 0 1 2-2h4l2 2.5h6a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" />
|
|
184
|
+
</Icon>
|
|
185
|
+
);
|
|
186
|
+
|
|
187
|
+
/** Grid: a 2x2 tile array — the card-view half of the list/card toggle. */
|
|
188
|
+
export const GridIcon: IconComponent = (props) => (
|
|
189
|
+
<Icon {...props}>
|
|
190
|
+
<rect x="4" y="4" width="7" height="7" rx="1.5" />
|
|
191
|
+
<rect x="13" y="4" width="7" height="7" rx="1.5" />
|
|
192
|
+
<rect x="4" y="13" width="7" height="7" rx="1.5" />
|
|
193
|
+
<rect x="13" y="13" width="7" height="7" rx="1.5" />
|
|
194
|
+
</Icon>
|
|
195
|
+
);
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shared SVG frame every mark is drawn in, and the icon prop/component
|
|
3
|
+
* types. Marks import `Icon` from here; it is deliberately not re-exported from
|
|
4
|
+
* the barrel, so it is never mistaken for a mark.
|
|
5
|
+
*/
|
|
6
|
+
import type { ReactElement, SVGProps } from 'react';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Props of every icon: the full SVG surface, so `style`, events and ARIA pass
|
|
10
|
+
* through. `className` is APPENDED to the `tai-icon` sizing class rather than
|
|
11
|
+
* replacing it — the same merge every other design-system primitive does.
|
|
12
|
+
*/
|
|
13
|
+
export type IconProps = SVGProps<SVGSVGElement>;
|
|
14
|
+
|
|
15
|
+
/** The shape every exported icon satisfies. */
|
|
16
|
+
export type IconComponent = (props: IconProps) => ReactElement;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The shared frame every mark is drawn in. Defaults are declared BEFORE the prop
|
|
20
|
+
* spread so a caller can override any of them, while `className` is destructured
|
|
21
|
+
* out of the spread so the caller's class is merged with `tai-icon` instead of
|
|
22
|
+
* replacing it.
|
|
23
|
+
*
|
|
24
|
+
* The accessibility defaults are DERIVED from whether the caller gave the icon a
|
|
25
|
+
* name rather than fixed. A hard-coded `aria-hidden="true"` is not self-serving:
|
|
26
|
+
* it makes `<Icon aria-label="Warning" />` — the form a caller naturally reaches
|
|
27
|
+
* for — a named-but-hidden element, which exposes nothing and fails nowhere. So
|
|
28
|
+
* `aria-hidden` is emitted only for an icon with NO accessible name, and an icon
|
|
29
|
+
* that has one is given the `role="img"` that makes the name reachable.
|
|
30
|
+
*/
|
|
31
|
+
export function Icon({ className, children, ...props }: IconProps): ReactElement {
|
|
32
|
+
const named = props['aria-label'] !== undefined || props['aria-labelledby'] !== undefined;
|
|
33
|
+
return (
|
|
34
|
+
<svg
|
|
35
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
36
|
+
viewBox="0 0 24 24"
|
|
37
|
+
fill="none"
|
|
38
|
+
stroke="currentColor"
|
|
39
|
+
strokeWidth="1.6"
|
|
40
|
+
strokeLinecap="round"
|
|
41
|
+
strokeLinejoin="round"
|
|
42
|
+
aria-hidden={named ? undefined : 'true'}
|
|
43
|
+
role={named ? 'img' : undefined}
|
|
44
|
+
className={className === undefined ? 'tai-icon' : `tai-icon ${className}`}
|
|
45
|
+
{...props}
|
|
46
|
+
>
|
|
47
|
+
{children}
|
|
48
|
+
</svg>
|
|
49
|
+
);
|
|
50
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The design system's icon set — the ONLY sanctioned source of iconography in
|
|
3
|
+
* Studio (Unicode glyphs as icons are banned).
|
|
4
|
+
*
|
|
5
|
+
* Every mark is hand-authored inline SVG on a 24-unit grid with ~2 units of
|
|
6
|
+
* optical padding, drawn stroke-only in `currentColor` at a uniform 1.6 stroke.
|
|
7
|
+
* Because the paint is `currentColor` an icon inherits the ink of whatever it
|
|
8
|
+
* sits in — a token color at FULL opacity, never a dimmed one; to mute an icon,
|
|
9
|
+
* mute the surrounding text color, never the icon's alpha.
|
|
10
|
+
*
|
|
11
|
+
* Sizing is owned by the `tai-icon` class (16 px square, no shrink), which every
|
|
12
|
+
* icon applies unconditionally. A caller-supplied `className` is APPENDED to it,
|
|
13
|
+
* the way every other design-system primitive treats the prop — an inline `<svg>`
|
|
14
|
+
* with a `viewBox` and no width/height has no intrinsic size, so a `className`
|
|
15
|
+
* that replaced `tai-icon` would not make the mark slightly wrong, it would blow
|
|
16
|
+
* it up to the replaced-element default.
|
|
17
|
+
*
|
|
18
|
+
* Icons are decorative by default (`aria-hidden="true"`): they accompany a text
|
|
19
|
+
* label or sit inside a control that carries its own accessible name. An icon
|
|
20
|
+
* that is the ONLY carrier of meaning is given a name by the caller —
|
|
21
|
+
* `<AlertTriangleIcon aria-label="Warning" />` — and NAMING IT IS ENOUGH: the
|
|
22
|
+
* frame derives the other two attributes from the name, so `aria-hidden` is
|
|
23
|
+
* dropped and `role="img"` supplied. A name and `aria-hidden` can therefore
|
|
24
|
+
* never ship together by omission. Both derived attributes are still
|
|
25
|
+
* overridable through the prop spread, and the older explicit three-prop form
|
|
26
|
+
* (`aria-hidden={false} role="img" aria-label="…"`) keeps working unchanged.
|
|
27
|
+
*
|
|
28
|
+
* {@link NAV_ICONS} is PUBLISHED SURFACE: the canonical route-token → icon
|
|
29
|
+
* mapping, exported so a navigation surface renders the agreed mark for a route
|
|
30
|
+
* instead of choosing one. Studio's own shell renders its nav as text and reads
|
|
31
|
+
* none of it; the map is exhaustive over {@link RouteToken} regardless, so a new
|
|
32
|
+
* route fails the build here until it has a mark.
|
|
33
|
+
*/
|
|
34
|
+
export {
|
|
35
|
+
ArrowDownIcon,
|
|
36
|
+
ArrowLeftIcon,
|
|
37
|
+
ArrowUpIcon,
|
|
38
|
+
CheckIcon,
|
|
39
|
+
ChevronDownIcon,
|
|
40
|
+
ChevronRightIcon,
|
|
41
|
+
CloseIcon,
|
|
42
|
+
CopyIcon,
|
|
43
|
+
EditIcon,
|
|
44
|
+
ExternalLinkIcon,
|
|
45
|
+
EyeIcon,
|
|
46
|
+
EyeOffIcon,
|
|
47
|
+
FilterIcon,
|
|
48
|
+
FolderIcon,
|
|
49
|
+
GridIcon,
|
|
50
|
+
MenuIcon,
|
|
51
|
+
MinusIcon,
|
|
52
|
+
PlusIcon,
|
|
53
|
+
SearchIcon,
|
|
54
|
+
SignOutIcon,
|
|
55
|
+
SortAscIcon,
|
|
56
|
+
SortDescIcon,
|
|
57
|
+
UnplugIcon,
|
|
58
|
+
} from './chrome-marks';
|
|
59
|
+
export type { IconComponent, IconProps } from './icon-frame';
|
|
60
|
+
export { NAV_ICONS } from './nav-map';
|
|
61
|
+
export {
|
|
62
|
+
AgentsIcon,
|
|
63
|
+
ConnectorsIcon,
|
|
64
|
+
ConversationsIcon,
|
|
65
|
+
DashboardIcon,
|
|
66
|
+
DatabaseIcon,
|
|
67
|
+
ExtensionsIcon,
|
|
68
|
+
HooksIcon,
|
|
69
|
+
InteractionsIcon,
|
|
70
|
+
ManifestIcon,
|
|
71
|
+
MarketplaceIcon,
|
|
72
|
+
NotificationsIcon,
|
|
73
|
+
PluginIcon,
|
|
74
|
+
PresetsIcon,
|
|
75
|
+
SchedulingIcon,
|
|
76
|
+
ServedEndpointsIcon,
|
|
77
|
+
SettingsIcon,
|
|
78
|
+
StorageIcon,
|
|
79
|
+
SystemIcon,
|
|
80
|
+
TemplatesIcon,
|
|
81
|
+
ToolsIcon,
|
|
82
|
+
} from './nav-marks';
|
|
83
|
+
export { AlertTriangleIcon, CheckCircleIcon, PendingIcon, XCircleIcon } from './status-marks';
|
|
84
|
+
export { MonitorIcon, MoonIcon, SunIcon } from './theme-marks';
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The canonical route-token → icon mapping. Exhaustive over {@link RouteToken}
|
|
3
|
+
* (bar `login`, which is not a listed destination), so adding a route fails the
|
|
4
|
+
* build here until it has a mark.
|
|
5
|
+
*/
|
|
6
|
+
import type { RouteToken } from '../../navigation/types';
|
|
7
|
+
import type { IconComponent } from './icon-frame';
|
|
8
|
+
import {
|
|
9
|
+
AgentsIcon,
|
|
10
|
+
ConnectorsIcon,
|
|
11
|
+
ConversationsIcon,
|
|
12
|
+
DashboardIcon,
|
|
13
|
+
DatabaseIcon,
|
|
14
|
+
ExtensionsIcon,
|
|
15
|
+
HooksIcon,
|
|
16
|
+
InteractionsIcon,
|
|
17
|
+
ManifestIcon,
|
|
18
|
+
MarketplaceIcon,
|
|
19
|
+
NotificationsIcon,
|
|
20
|
+
PresetsIcon,
|
|
21
|
+
SchedulingIcon,
|
|
22
|
+
ServedEndpointsIcon,
|
|
23
|
+
SettingsIcon,
|
|
24
|
+
StorageIcon,
|
|
25
|
+
SystemIcon,
|
|
26
|
+
TemplatesIcon,
|
|
27
|
+
ToolsIcon,
|
|
28
|
+
} from './nav-marks';
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The canonical mark for every navigable route token. `login` is excluded: it is
|
|
32
|
+
* not a destination the navigation surfaces list. Keyed by the token type, so
|
|
33
|
+
* adding a route to {@link RouteToken} fails the build here until it gets a mark.
|
|
34
|
+
*/
|
|
35
|
+
export const NAV_ICONS: Readonly<Record<Exclude<RouteToken, 'login'>, IconComponent>> = {
|
|
36
|
+
observability: DashboardIcon,
|
|
37
|
+
tools: ToolsIcon,
|
|
38
|
+
agents: AgentsIcon,
|
|
39
|
+
presets: PresetsIcon,
|
|
40
|
+
states: DatabaseIcon,
|
|
41
|
+
extensions: ExtensionsIcon,
|
|
42
|
+
templates: TemplatesIcon,
|
|
43
|
+
connectors: ConnectorsIcon,
|
|
44
|
+
servedEndpoints: ServedEndpointsIcon,
|
|
45
|
+
hooks: HooksIcon,
|
|
46
|
+
storage: StorageIcon,
|
|
47
|
+
scheduling: SchedulingIcon,
|
|
48
|
+
interactions: InteractionsIcon,
|
|
49
|
+
notifications: NotificationsIcon,
|
|
50
|
+
conversations: ConversationsIcon,
|
|
51
|
+
marketplace: MarketplaceIcon,
|
|
52
|
+
manifest: ManifestIcon,
|
|
53
|
+
settings: SettingsIcon,
|
|
54
|
+
system: SystemIcon,
|
|
55
|
+
};
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/** The route-destination marks — one per navigable Studio route, plus the
|
|
2
|
+
* plugin-provenance mark for plugin-contributed navigation. */
|
|
3
|
+
import { Icon, type IconComponent } from './icon-frame';
|
|
4
|
+
|
|
5
|
+
/** Observability: a dial gauge — arc, base and needle. */
|
|
6
|
+
export const DashboardIcon: IconComponent = (props) => (
|
|
7
|
+
<Icon {...props}>
|
|
8
|
+
<path d="M3 17.5a9 9 0 0 1 18 0" />
|
|
9
|
+
<path d="M3 17.5h18" />
|
|
10
|
+
<path d="M12 17.5 16.4 11.9" />
|
|
11
|
+
</Icon>
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
/** Tools: an open-ended spanner over its handle. */
|
|
15
|
+
export const ToolsIcon: IconComponent = (props) => (
|
|
16
|
+
<Icon {...props}>
|
|
17
|
+
<path d="M14.6 6.2a1 1 0 0 0 0 1.5l1.7 1.7a1 1 0 0 0 1.5 0l3.2-3.2a5.9 5.9 0 0 1-7.4 7.4l-6.8 6.8a2.1 2.1 0 0 1-3-3l6.8-6.8a5.9 5.9 0 0 1 7.4-7.4z" />
|
|
18
|
+
</Icon>
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
/** Agents: a bot — antenna, panel head with eyes and mouth, side ports. */
|
|
22
|
+
export const AgentsIcon: IconComponent = (props) => (
|
|
23
|
+
<Icon {...props}>
|
|
24
|
+
<path d="M12 4.6V7.4" />
|
|
25
|
+
<circle cx="12" cy="3.2" r="1.4" />
|
|
26
|
+
<rect x="4.4" y="7.4" width="15.2" height="12.4" rx="3" />
|
|
27
|
+
<path d="M2.6 12.6v2.8" />
|
|
28
|
+
<path d="M21.4 12.6v2.8" />
|
|
29
|
+
<path d="M9.2 11.6v1.8" />
|
|
30
|
+
<path d="M14.8 11.6v1.8" />
|
|
31
|
+
<path d="M9.6 16.6h4.8" />
|
|
32
|
+
</Icon>
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
/** Presets: three sliders, each with its knob at a different stop. */
|
|
36
|
+
export const PresetsIcon: IconComponent = (props) => (
|
|
37
|
+
<Icon {...props}>
|
|
38
|
+
<path d="M3 6.8h6.5" />
|
|
39
|
+
<path d="M13.5 6.8H21" />
|
|
40
|
+
<circle cx="11.5" cy="6.8" r="2" />
|
|
41
|
+
<path d="M3 12h10.5" />
|
|
42
|
+
<path d="M17.5 12H21" />
|
|
43
|
+
<circle cx="15.5" cy="12" r="2" />
|
|
44
|
+
<path d="M3 17.2h4.5" />
|
|
45
|
+
<path d="M11.5 17.2H21" />
|
|
46
|
+
<circle cx="9.5" cy="17.2" r="2" />
|
|
47
|
+
</Icon>
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
/** Extensions: a jigsaw piece — knob above, socket to the right. */
|
|
51
|
+
export const ExtensionsIcon: IconComponent = (props) => (
|
|
52
|
+
<Icon {...props}>
|
|
53
|
+
<path d="M9.5 6.5a2.2 2.2 0 0 1 4.4 0v.7h4.3a1.3 1.3 0 0 1 1.3 1.3v3.4H18a2.2 2.2 0 0 0 0 4.4h1.5v2.8a1.3 1.3 0 0 1-1.3 1.3H5.8a1.3 1.3 0 0 1-1.3-1.3V8.5a1.3 1.3 0 0 1 1.3-1.3h3.7z" />
|
|
54
|
+
</Icon>
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
/** Templates: a stack of two sheets, the front one offset. */
|
|
58
|
+
export const TemplatesIcon: IconComponent = (props) => (
|
|
59
|
+
<Icon {...props}>
|
|
60
|
+
<path d="M8 8V5a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-3" />
|
|
61
|
+
<rect x="3" y="8" width="13" height="13" rx="2" />
|
|
62
|
+
</Icon>
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
/** Connectors: a two-pin power plug on its lead. */
|
|
66
|
+
export const ConnectorsIcon: IconComponent = (props) => (
|
|
67
|
+
<Icon {...props}>
|
|
68
|
+
<path d="M9 3v5" />
|
|
69
|
+
<path d="M15 3v5" />
|
|
70
|
+
<path d="M6.5 8h11v3.5a5.5 5.5 0 0 1-11 0z" />
|
|
71
|
+
<path d="M12 17v4" />
|
|
72
|
+
</Icon>
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
/** Hooks: a webhook fan-out — one source branching to two subscribers. */
|
|
76
|
+
export const HooksIcon: IconComponent = (props) => (
|
|
77
|
+
<Icon {...props}>
|
|
78
|
+
<circle cx="12" cy="5.8" r="2.6" />
|
|
79
|
+
<circle cx="5.4" cy="18.2" r="2.6" />
|
|
80
|
+
<circle cx="18.6" cy="18.2" r="2.6" />
|
|
81
|
+
<path d="M10.7 8.1 6.7 15.9" />
|
|
82
|
+
<path d="M13.3 8.1 17.3 15.9" />
|
|
83
|
+
<path d="M8 18.2h8" />
|
|
84
|
+
</Icon>
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
/** Storage: a database cylinder with two shelves. */
|
|
88
|
+
export const StorageIcon: IconComponent = (props) => (
|
|
89
|
+
<Icon {...props}>
|
|
90
|
+
<ellipse cx="12" cy="6" rx="7.5" ry="3" />
|
|
91
|
+
<path d="M4.5 6v12c0 1.66 3.36 3 7.5 3s7.5-1.34 7.5-3V6" />
|
|
92
|
+
<path d="M4.5 12c0 1.66 3.36 3 7.5 3s7.5-1.34 7.5-3" />
|
|
93
|
+
</Icon>
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
/** States: a stacked-disk cylinder — one document store per subject. */
|
|
97
|
+
export const DatabaseIcon: IconComponent = (props) => (
|
|
98
|
+
<Icon {...props}>
|
|
99
|
+
<ellipse cx="12" cy="5" rx="8" ry="3" />
|
|
100
|
+
<path d="M4 5v6c0 1.66 3.58 3 8 3s8-1.34 8-3V5" />
|
|
101
|
+
<path d="M4 11v6c0 1.66 3.58 3 8 3s8-1.34 8-3v-6" />
|
|
102
|
+
</Icon>
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
/** Scheduling: a calendar grid with its binding posts. */
|
|
106
|
+
export const SchedulingIcon: IconComponent = (props) => (
|
|
107
|
+
<Icon {...props}>
|
|
108
|
+
<rect x="3" y="5" width="18" height="16" rx="2" />
|
|
109
|
+
<path d="M3 10h18" />
|
|
110
|
+
<path d="M8 3v4" />
|
|
111
|
+
<path d="M16 3v4" />
|
|
112
|
+
<path d="M7.6 14h.01" />
|
|
113
|
+
<path d="M12 14h.01" />
|
|
114
|
+
<path d="M16.4 14h.01" />
|
|
115
|
+
<path d="M7.6 17.6h.01" />
|
|
116
|
+
<path d="M12 17.6h.01" />
|
|
117
|
+
</Icon>
|
|
118
|
+
);
|
|
119
|
+
|
|
120
|
+
/** Interactions: two overlapping speech bubbles — a conversation. */
|
|
121
|
+
export const InteractionsIcon: IconComponent = (props) => (
|
|
122
|
+
<Icon {...props}>
|
|
123
|
+
<path d="M4.5 3h7a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H8l-3 3v-3h-.5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z" />
|
|
124
|
+
<path d="M12.5 9h7a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H19v3l-3-3h-3.5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2z" />
|
|
125
|
+
</Icon>
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
/** Notifications: a bell with its clapper. */
|
|
129
|
+
export const NotificationsIcon: IconComponent = (props) => (
|
|
130
|
+
<Icon {...props}>
|
|
131
|
+
<path d="M18 8.5a6 6 0 0 0-12 0c0 6-2.5 7.5-2.5 7.5h17S18 14.5 18 8.5z" />
|
|
132
|
+
<path d="M13.7 19a2 2 0 0 1-3.4 0" />
|
|
133
|
+
</Icon>
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
/** Conversations: one speech bubble holding transcript lines. */
|
|
137
|
+
export const ConversationsIcon: IconComponent = (props) => (
|
|
138
|
+
<Icon {...props}>
|
|
139
|
+
<path d="M4 5.5A2.5 2.5 0 0 1 6.5 3h11A2.5 2.5 0 0 1 20 5.5v8a2.5 2.5 0 0 1-2.5 2.5H10l-4.5 3.5V16h-1A2.5 2.5 0 0 1 4 13.5z" />
|
|
140
|
+
<path d="M8 7.5h8" />
|
|
141
|
+
<path d="M8 10.5h8" />
|
|
142
|
+
<path d="M8 13.5h4" />
|
|
143
|
+
</Icon>
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
/** Marketplace: a shopping bag. */
|
|
147
|
+
export const MarketplaceIcon: IconComponent = (props) => (
|
|
148
|
+
<Icon {...props}>
|
|
149
|
+
<path d="M4.6 8h14.8l-1 12.1a1 1 0 0 1-1 .9H6.6a1 1 0 0 1-1-.9L4.6 8z" />
|
|
150
|
+
<path d="M8.5 11V6.6a3.5 3.5 0 0 1 7 0V11" />
|
|
151
|
+
</Icon>
|
|
152
|
+
);
|
|
153
|
+
|
|
154
|
+
/** Manifest: a document with a folded corner and its entries. */
|
|
155
|
+
export const ManifestIcon: IconComponent = (props) => (
|
|
156
|
+
<Icon {...props}>
|
|
157
|
+
<path d="M13.5 3H6.5A1.5 1.5 0 0 0 5 4.5v15A1.5 1.5 0 0 0 6.5 21h11a1.5 1.5 0 0 0 1.5-1.5V8.5z" />
|
|
158
|
+
<path d="M13.5 3v5.5H19" />
|
|
159
|
+
<path d="M8.5 12.5h7" />
|
|
160
|
+
<path d="M8.5 16.5h7" />
|
|
161
|
+
<path d="M8.5 8.5h2" />
|
|
162
|
+
</Icon>
|
|
163
|
+
);
|
|
164
|
+
|
|
165
|
+
/** Settings: an eight-tooth cog around its bore. */
|
|
166
|
+
export const SettingsIcon: IconComponent = (props) => (
|
|
167
|
+
<Icon {...props}>
|
|
168
|
+
<path d="M9.5 5.9 10.3 3.2 13.7 3.2 14.5 5.9 17 4.5 19.5 7 18.1 9.5 20.8 10.3 20.8 13.7 18.1 14.5 19.5 17 17 19.5 14.5 18.1 13.7 20.8 10.3 20.8 9.5 18.1 7 19.5 4.5 17 5.9 14.5 3.2 13.7 3.2 10.3 5.9 9.5 4.5 7 7 4.5Z" />
|
|
169
|
+
<circle cx="12" cy="12" r="3.2" />
|
|
170
|
+
</Icon>
|
|
171
|
+
);
|
|
172
|
+
|
|
173
|
+
/** System: a processor die with its pins. */
|
|
174
|
+
export const SystemIcon: IconComponent = (props) => (
|
|
175
|
+
<Icon {...props}>
|
|
176
|
+
<rect x="6.5" y="6.5" width="11" height="11" rx="1.6" />
|
|
177
|
+
<rect x="9.8" y="9.8" width="4.4" height="4.4" rx="1" />
|
|
178
|
+
<path d="M9.5 3v3.5" />
|
|
179
|
+
<path d="M14.5 3v3.5" />
|
|
180
|
+
<path d="M9.5 17.5V21" />
|
|
181
|
+
<path d="M14.5 17.5V21" />
|
|
182
|
+
<path d="M3 9.5h3.5" />
|
|
183
|
+
<path d="M3 14.5h3.5" />
|
|
184
|
+
<path d="M17.5 9.5H21" />
|
|
185
|
+
<path d="M17.5 14.5H21" />
|
|
186
|
+
</Icon>
|
|
187
|
+
);
|
|
188
|
+
|
|
189
|
+
/** Served endpoints: a broadcast node radiating to the tools it serves. */
|
|
190
|
+
export const ServedEndpointsIcon: IconComponent = (props) => (
|
|
191
|
+
<Icon {...props}>
|
|
192
|
+
<circle cx="12" cy="12" r="2.5" />
|
|
193
|
+
<path d="M7.8 7.8a6 6 0 0 0 0 8.4" />
|
|
194
|
+
<path d="M16.2 7.8a6 6 0 0 1 0 8.4" />
|
|
195
|
+
<path d="M5 5a9 9 0 0 0 0 14" />
|
|
196
|
+
<path d="M19 5a9 9 0 0 1 0 14" />
|
|
197
|
+
</Icon>
|
|
198
|
+
);
|
|
199
|
+
|
|
200
|
+
/** Plugin: a puzzle piece — the host's provenance mark for plugin-contributed nav. */
|
|
201
|
+
export const PluginIcon: IconComponent = (props) => (
|
|
202
|
+
<Icon {...props}>
|
|
203
|
+
<path d="M10 4a2 2 0 0 1 4 0c0 .8.7 1.4 1.5 1.4H18a1 1 0 0 1 1 1v2.6c0 .8.6 1.5 1.4 1.5a2 2 0 0 1 0 4c-.8 0-1.4.7-1.4 1.5V19a1 1 0 0 1-1 1h-2.6c-.8 0-1.4-.6-1.4-1.4a2 2 0 0 0-4 0c0 .8-.6 1.4-1.4 1.4H6a1 1 0 0 1-1-1v-2.5C5 15.7 4.4 15 3.6 15a2 2 0 0 1 0-4c.8 0 1.4-.7 1.4-1.5V6a1 1 0 0 1 1-1h2.5C9.3 5 10 4.4 10 3.6z" />
|
|
204
|
+
</Icon>
|
|
205
|
+
);
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** Status marks — success, warning, failure and the pending/running ring. */
|
|
2
|
+
import { Icon, type IconComponent } from './icon-frame';
|
|
3
|
+
|
|
4
|
+
/** Success. */
|
|
5
|
+
export const CheckCircleIcon: IconComponent = (props) => (
|
|
6
|
+
<Icon {...props}>
|
|
7
|
+
<circle cx="12" cy="12" r="9" />
|
|
8
|
+
<path d="M8 12.3 10.9 15.2 16 9.5" />
|
|
9
|
+
</Icon>
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
/** Warning. */
|
|
13
|
+
export const AlertTriangleIcon: IconComponent = (props) => (
|
|
14
|
+
<Icon {...props}>
|
|
15
|
+
<path d="M10.6 3.9 2.7 17.9a1.6 1.6 0 0 0 1.4 2.4h15.8a1.6 1.6 0 0 0 1.4-2.4L13.4 3.9a1.6 1.6 0 0 0-2.8 0z" />
|
|
16
|
+
<path d="M12 9.6v4" />
|
|
17
|
+
<path d="M12 16.9h.01" />
|
|
18
|
+
</Icon>
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
/** Failure. */
|
|
22
|
+
export const XCircleIcon: IconComponent = (props) => (
|
|
23
|
+
<Icon {...props}>
|
|
24
|
+
<circle cx="12" cy="12" r="9" />
|
|
25
|
+
<path d="M15 9 9 15" />
|
|
26
|
+
<path d="M9 9 15 15" />
|
|
27
|
+
</Icon>
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Pending / running / queued — a clock hand inside a dashed ring.
|
|
32
|
+
*
|
|
33
|
+
* The dash period has to TILE the circumference or the ring closes on a seam.
|
|
34
|
+
* At r = 9 the circumference is 2π·9 = 56.5487. A 3.2/3.2 array (period 6.4)
|
|
35
|
+
* fits 8.84 times, so the ring shut with a 2.15 gap instead of 3.2 — and with
|
|
36
|
+
* the inherited round linecap eating 1.6 at each end that seam rendered ~0.37 px
|
|
37
|
+
* wide at 16 px, reading as joined while every other gap read as a gap. Eight
|
|
38
|
+
* whole periods divide it exactly: 56.5487 / 8 = 7.0686, halved for the dash and
|
|
39
|
+
* the gap = 3.5343 each, giving 16 even segments and no seam.
|
|
40
|
+
*/
|
|
41
|
+
export const PendingIcon: IconComponent = (props) => (
|
|
42
|
+
<Icon {...props}>
|
|
43
|
+
<circle cx="12" cy="12" r="9" strokeDasharray="3.5343 3.5343" />
|
|
44
|
+
<path d="M12 7.5V12l3 2" />
|
|
45
|
+
</Icon>
|
|
46
|
+
);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** The theme trio — one mark per option of the light / dark / system control. */
|
|
2
|
+
import { Icon, type IconComponent } from './icon-frame';
|
|
3
|
+
|
|
4
|
+
/** Light theme. */
|
|
5
|
+
export const SunIcon: IconComponent = (props) => (
|
|
6
|
+
<Icon {...props}>
|
|
7
|
+
<circle cx="12" cy="12" r="4.2" />
|
|
8
|
+
<path d="M12 2.6v2.4" />
|
|
9
|
+
<path d="M12 19v2.4" />
|
|
10
|
+
<path d="M2.6 12H5" />
|
|
11
|
+
<path d="M19 12h2.4" />
|
|
12
|
+
<path d="M5.3 5.3 7 7" />
|
|
13
|
+
<path d="M17 17 18.7 18.7" />
|
|
14
|
+
<path d="M18.7 5.3 17 7" />
|
|
15
|
+
<path d="M7 17 5.3 18.7" />
|
|
16
|
+
</Icon>
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
/** Dark theme. */
|
|
20
|
+
export const MoonIcon: IconComponent = (props) => (
|
|
21
|
+
<Icon {...props}>
|
|
22
|
+
<path d="M20.5 14.3A9 9 0 0 1 9.7 3.5a9 9 0 1 0 10.8 10.8z" />
|
|
23
|
+
</Icon>
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
/** Follow the operating system. */
|
|
27
|
+
export const MonitorIcon: IconComponent = (props) => (
|
|
28
|
+
<Icon {...props}>
|
|
29
|
+
<rect x="3" y="4" width="18" height="12.5" rx="2" />
|
|
30
|
+
<path d="M8 21h8" />
|
|
31
|
+
<path d="M12 16.5V21" />
|
|
32
|
+
</Icon>
|
|
33
|
+
);
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
import type { AriaAttributes, InputHTMLAttributes, Ref, TextareaHTMLAttributes } from 'react';
|
|
41
41
|
|
|
42
42
|
import { controlClassName, INPUT_CLASS, TEXTAREA_CLASS } from './control-styles';
|
|
43
|
-
import {
|
|
43
|
+
import { type FieldControlProps, useFieldControl } from './field';
|
|
44
44
|
|
|
45
45
|
/** The three attributes a `Field` and its control can both want to own. */
|
|
46
46
|
interface WiredControlAttributes {
|