@tai42/studio-sdk 0.2.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/LICENSE +202 -0
- package/NOTICE +15 -0
- package/README.md +318 -0
- package/SECURITY.md +51 -0
- package/dist/components/badge.d.ts +13 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +14 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/checkbox.d.ts +24 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +31 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/code-block.d.ts +7 -0
- package/dist/components/code-block.d.ts.map +1 -0
- package/dist/components/code-block.js +23 -0
- package/dist/components/code-block.js.map +1 -0
- package/dist/components/completion-input.d.ts +31 -0
- package/dist/components/completion-input.d.ts.map +1 -0
- package/dist/components/completion-input.js +61 -0
- package/dist/components/completion-input.js.map +1 -0
- package/dist/components/components.css +2212 -0
- package/dist/components/confirm-dialog.d.ts +40 -0
- package/dist/components/confirm-dialog.d.ts.map +1 -0
- package/dist/components/confirm-dialog.js +11 -0
- package/dist/components/confirm-dialog.js.map +1 -0
- package/dist/components/control-styles.d.ts +12 -0
- package/dist/components/control-styles.d.ts.map +1 -0
- package/dist/components/control-styles.js +14 -0
- package/dist/components/control-styles.js.map +1 -0
- package/dist/components/copy-field.d.ts +8 -0
- package/dist/components/copy-field.d.ts.map +1 -0
- package/dist/components/copy-field.js +106 -0
- package/dist/components/copy-field.js.map +1 -0
- package/dist/components/dialog.d.ts +21 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js +25 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/drawer.d.ts +22 -0
- package/dist/components/drawer.d.ts.map +1 -0
- package/dist/components/drawer.js +32 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/error-boundary.d.ts +33 -0
- package/dist/components/error-boundary.d.ts.map +1 -0
- package/dist/components/error-boundary.js +36 -0
- package/dist/components/error-boundary.js.map +1 -0
- package/dist/components/extension-combo-builder.d.ts +70 -0
- package/dist/components/extension-combo-builder.d.ts.map +1 -0
- package/dist/components/extension-combo-builder.js +154 -0
- package/dist/components/extension-combo-builder.js.map +1 -0
- package/dist/components/extension-grouping.d.ts +65 -0
- package/dist/components/extension-grouping.d.ts.map +1 -0
- package/dist/components/extension-grouping.js +78 -0
- package/dist/components/extension-grouping.js.map +1 -0
- package/dist/components/extension-picker.d.ts +35 -0
- package/dist/components/extension-picker.d.ts.map +1 -0
- package/dist/components/extension-picker.js +31 -0
- package/dist/components/extension-picker.js.map +1 -0
- package/dist/components/external-link.d.ts +19 -0
- package/dist/components/external-link.d.ts.map +1 -0
- package/dist/components/external-link.js +12 -0
- package/dist/components/external-link.js.map +1 -0
- package/dist/components/field.d.ts +64 -0
- package/dist/components/field.d.ts.map +1 -0
- package/dist/components/field.js +56 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/fleet-report.d.ts +39 -0
- package/dist/components/fleet-report.d.ts.map +1 -0
- package/dist/components/fleet-report.js +50 -0
- package/dist/components/fleet-report.js.map +1 -0
- package/dist/components/fonts.css +22 -0
- package/dist/components/icons.d.ts +142 -0
- package/dist/components/icons.d.ts.map +1 -0
- package/dist/components/icons.js +139 -0
- package/dist/components/icons.js.map +1 -0
- package/dist/components/inputs.d.ts +52 -0
- package/dist/components/inputs.d.ts.map +1 -0
- package/dist/components/inputs.js +35 -0
- package/dist/components/inputs.js.map +1 -0
- package/dist/components/json-diff.d.ts +40 -0
- package/dist/components/json-diff.d.ts.map +1 -0
- package/dist/components/json-diff.js +119 -0
- package/dist/components/json-diff.js.map +1 -0
- package/dist/components/json-tree.d.ts +8 -0
- package/dist/components/json-tree.d.ts.map +1 -0
- package/dist/components/json-tree.js +70 -0
- package/dist/components/json-tree.js.map +1 -0
- package/dist/components/modal-focus.d.ts +15 -0
- package/dist/components/modal-focus.d.ts.map +1 -0
- package/dist/components/modal-focus.js +136 -0
- package/dist/components/modal-focus.js.map +1 -0
- package/dist/components/page-header.d.ts +56 -0
- package/dist/components/page-header.d.ts.map +1 -0
- package/dist/components/page-header.js +24 -0
- package/dist/components/page-header.js.map +1 -0
- package/dist/components/primitives.d.ts +186 -0
- package/dist/components/primitives.d.ts.map +1 -0
- package/dist/components/primitives.js +204 -0
- package/dist/components/primitives.js.map +1 -0
- package/dist/components/progress-bar.d.ts +29 -0
- package/dist/components/progress-bar.d.ts.map +1 -0
- package/dist/components/progress-bar.js +48 -0
- package/dist/components/progress-bar.js.map +1 -0
- package/dist/components/radio-group.d.ts +37 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group.js +56 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/reveal-input.d.ts +13 -0
- package/dist/components/reveal-input.d.ts.map +1 -0
- package/dist/components/reveal-input.js +31 -0
- package/dist/components/reveal-input.js.map +1 -0
- package/dist/components/scroll-region.d.ts +85 -0
- package/dist/components/scroll-region.d.ts.map +1 -0
- package/dist/components/scroll-region.js +574 -0
- package/dist/components/scroll-region.js.map +1 -0
- package/dist/components/select.d.ts +53 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +33 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/table.d.ts +59 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.js +20 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +15 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +13 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/tags.d.ts +46 -0
- package/dist/components/tags.d.ts.map +1 -0
- package/dist/components/tags.js +68 -0
- package/dist/components/tags.js.map +1 -0
- package/dist/components/tokens.css +392 -0
- package/dist/components/tokens.d.ts +15 -0
- package/dist/components/tokens.d.ts.map +1 -0
- package/dist/components/tokens.js +101 -0
- package/dist/components/tokens.js.map +1 -0
- package/dist/components/tool-picker.d.ts +24 -0
- package/dist/components/tool-picker.d.ts.map +1 -0
- package/dist/components/tool-picker.js +97 -0
- package/dist/components/tool-picker.js.map +1 -0
- package/dist/components/tooltip.d.ts +17 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js +18 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/version-history-panel.d.ts +71 -0
- package/dist/components/version-history-panel.d.ts.map +1 -0
- package/dist/components/version-history-panel.js +148 -0
- package/dist/components/version-history-panel.js.map +1 -0
- package/dist/download.d.ts +7 -0
- package/dist/download.d.ts.map +1 -0
- package/dist/download.js +18 -0
- package/dist/download.js.map +1 -0
- package/dist/element-slot.d.ts +4 -0
- package/dist/element-slot.d.ts.map +1 -0
- package/dist/element-slot.js +20 -0
- package/dist/element-slot.js.map +1 -0
- package/dist/elicitation/ElicitationForm.d.ts +34 -0
- package/dist/elicitation/ElicitationForm.d.ts.map +1 -0
- package/dist/elicitation/ElicitationForm.js +24 -0
- package/dist/elicitation/ElicitationForm.js.map +1 -0
- package/dist/errors.d.ts +9 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +15 -0
- package/dist/errors.js.map +1 -0
- package/dist/extension-combos.d.ts +13 -0
- package/dist/extension-combos.d.ts.map +1 -0
- package/dist/extension-combos.js +9 -0
- package/dist/extension-combos.js.map +1 -0
- package/dist/hooks/useApi.d.ts +1222 -0
- package/dist/hooks/useApi.d.ts.map +1 -0
- package/dist/hooks/useApi.js +22 -0
- package/dist/hooks/useApi.js.map +1 -0
- package/dist/hooks/useAuth.d.ts +13 -0
- package/dist/hooks/useAuth.d.ts.map +1 -0
- package/dist/hooks/useAuth.js +53 -0
- package/dist/hooks/useAuth.js.map +1 -0
- package/dist/hooks/useBreakpoint.d.ts +10 -0
- package/dist/hooks/useBreakpoint.d.ts.map +1 -0
- package/dist/hooks/useBreakpoint.js +66 -0
- package/dist/hooks/useBreakpoint.js.map +1 -0
- package/dist/hooks/useCapabilities.d.ts +88 -0
- package/dist/hooks/useCapabilities.d.ts.map +1 -0
- package/dist/hooks/useCapabilities.js +203 -0
- package/dist/hooks/useCapabilities.js.map +1 -0
- package/dist/hooks/useSse.d.ts +13 -0
- package/dist/hooks/useSse.d.ts.map +1 -0
- package/dist/hooks/useSse.js +298 -0
- package/dist/hooks/useSse.js.map +1 -0
- package/dist/hooks/useTheme.d.ts +20 -0
- package/dist/hooks/useTheme.d.ts.map +1 -0
- package/dist/hooks/useTheme.js +97 -0
- package/dist/hooks/useTheme.js.map +1 -0
- package/dist/hooks/useUnauthorized.d.ts +3 -0
- package/dist/hooks/useUnauthorized.d.ts.map +1 -0
- package/dist/hooks/useUnauthorized.js +18 -0
- package/dist/hooks/useUnauthorized.js.map +1 -0
- package/dist/host.d.ts +11 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +10 -0
- package/dist/host.js.map +1 -0
- package/dist/index.d.ts +118 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +91 -0
- package/dist/index.js.map +1 -0
- package/dist/navigation/context.d.ts +25 -0
- package/dist/navigation/context.d.ts.map +1 -0
- package/dist/navigation/context.js +45 -0
- package/dist/navigation/context.js.map +1 -0
- package/dist/navigation/index.d.ts +4 -0
- package/dist/navigation/index.d.ts.map +1 -0
- package/dist/navigation/index.js +2 -0
- package/dist/navigation/index.js.map +1 -0
- package/dist/navigation/types.d.ts +97 -0
- package/dist/navigation/types.d.ts.map +1 -0
- package/dist/navigation/types.js +16 -0
- package/dist/navigation/types.js.map +1 -0
- package/dist/plugin/host-state.d.ts +45 -0
- package/dist/plugin/host-state.d.ts.map +1 -0
- package/dist/plugin/host-state.js +62 -0
- package/dist/plugin/host-state.js.map +1 -0
- package/dist/plugin/registry.d.ts +35 -0
- package/dist/plugin/registry.d.ts.map +1 -0
- package/dist/plugin/registry.js +129 -0
- package/dist/plugin/registry.js.map +1 -0
- package/dist/plugin/types.d.ts +165 -0
- package/dist/plugin/types.d.ts.map +1 -0
- package/dist/plugin/types.js +2 -0
- package/dist/plugin/types.js.map +1 -0
- package/dist/plugin/version.d.ts +34 -0
- package/dist/plugin/version.d.ts.map +1 -0
- package/dist/plugin/version.js +37 -0
- package/dist/plugin/version.js.map +1 -0
- package/dist/query-keys.d.ts +31 -0
- package/dist/query-keys.d.ts.map +1 -0
- package/dist/query-keys.js +31 -0
- package/dist/query-keys.js.map +1 -0
- package/dist/schema-editor/SchemaEditor.d.ts +43 -0
- package/dist/schema-editor/SchemaEditor.d.ts.map +1 -0
- package/dist/schema-editor/SchemaEditor.js +106 -0
- package/dist/schema-editor/SchemaEditor.js.map +1 -0
- package/dist/schema-editor/index.d.ts +10 -0
- package/dist/schema-editor/index.d.ts.map +1 -0
- package/dist/schema-editor/index.js +8 -0
- package/dist/schema-editor/index.js.map +1 -0
- package/dist/schema-editor/lint.d.ts +37 -0
- package/dist/schema-editor/lint.d.ts.map +1 -0
- package/dist/schema-editor/lint.js +49 -0
- package/dist/schema-editor/lint.js.map +1 -0
- package/dist/schema-form/SchemaForm.d.ts +70 -0
- package/dist/schema-form/SchemaForm.d.ts.map +1 -0
- package/dist/schema-form/SchemaForm.js +13 -0
- package/dist/schema-form/SchemaForm.js.map +1 -0
- package/dist/schema-form/array-field.d.ts +20 -0
- package/dist/schema-form/array-field.d.ts.map +1 -0
- package/dist/schema-form/array-field.js +39 -0
- package/dist/schema-form/array-field.js.map +1 -0
- package/dist/schema-form/classify.d.ts +87 -0
- package/dist/schema-form/classify.d.ts.map +1 -0
- package/dist/schema-form/classify.js +199 -0
- package/dist/schema-form/classify.js.map +1 -0
- package/dist/schema-form/context.d.ts +4 -0
- package/dist/schema-form/context.d.ts.map +1 -0
- package/dist/schema-form/context.js +14 -0
- package/dist/schema-form/context.js.map +1 -0
- package/dist/schema-form/default-value.d.ts +8 -0
- package/dist/schema-form/default-value.d.ts.map +1 -0
- package/dist/schema-form/default-value.js +64 -0
- package/dist/schema-form/default-value.js.map +1 -0
- package/dist/schema-form/enum-field.d.ts +19 -0
- package/dist/schema-form/enum-field.d.ts.map +1 -0
- package/dist/schema-form/enum-field.js +26 -0
- package/dist/schema-form/enum-field.js.map +1 -0
- package/dist/schema-form/field-group.d.ts +9 -0
- package/dist/schema-form/field-group.d.ts.map +1 -0
- package/dist/schema-form/field-group.js +32 -0
- package/dist/schema-form/field-group.js.map +1 -0
- package/dist/schema-form/field-node.d.ts +24 -0
- package/dist/schema-form/field-node.d.ts.map +1 -0
- package/dist/schema-form/field-node.js +51 -0
- package/dist/schema-form/field-node.js.map +1 -0
- package/dist/schema-form/index.d.ts +13 -0
- package/dist/schema-form/index.d.ts.map +1 -0
- package/dist/schema-form/index.js +11 -0
- package/dist/schema-form/index.js.map +1 -0
- package/dist/schema-form/media-field.d.ts +24 -0
- package/dist/schema-form/media-field.d.ts.map +1 -0
- package/dist/schema-form/media-field.js +169 -0
- package/dist/schema-form/media-field.js.map +1 -0
- package/dist/schema-form/media.d.ts +40 -0
- package/dist/schema-form/media.d.ts.map +1 -0
- package/dist/schema-form/media.js +65 -0
- package/dist/schema-form/media.js.map +1 -0
- package/dist/schema-form/object-fields.d.ts +20 -0
- package/dist/schema-form/object-fields.d.ts.map +1 -0
- package/dist/schema-form/object-fields.js +24 -0
- package/dist/schema-form/object-fields.js.map +1 -0
- package/dist/schema-form/resolve.d.ts +41 -0
- package/dist/schema-form/resolve.d.ts.map +1 -0
- package/dist/schema-form/resolve.js +102 -0
- package/dist/schema-form/resolve.js.map +1 -0
- package/dist/schema-form/string-field.d.ts +20 -0
- package/dist/schema-form/string-field.d.ts.map +1 -0
- package/dist/schema-form/string-field.js +68 -0
- package/dist/schema-form/string-field.js.map +1 -0
- package/dist/schema-form/styles.d.ts +18 -0
- package/dist/schema-form/styles.d.ts.map +1 -0
- package/dist/schema-form/styles.js +18 -0
- package/dist/schema-form/styles.js.map +1 -0
- package/dist/schema-form/types.d.ts +67 -0
- package/dist/schema-form/types.d.ts.map +1 -0
- package/dist/schema-form/types.js +10 -0
- package/dist/schema-form/types.js.map +1 -0
- package/dist/schema-form/union-field.d.ts +24 -0
- package/dist/schema-form/union-field.d.ts.map +1 -0
- package/dist/schema-form/union-field.js +55 -0
- package/dist/schema-form/union-field.js.map +1 -0
- package/dist/schema-form/union.d.ts +4 -0
- package/dist/schema-form/union.d.ts.map +1 -0
- package/dist/schema-form/union.js +68 -0
- package/dist/schema-form/union.js.map +1 -0
- package/dist/schema-form/unsupported-notice.d.ts +18 -0
- package/dist/schema-form/unsupported-notice.d.ts.map +1 -0
- package/dist/schema-form/unsupported-notice.js +8 -0
- package/dist/schema-form/unsupported-notice.js.map +1 -0
- package/dist/schema-form/validate.d.ts +18 -0
- package/dist/schema-form/validate.d.ts.map +1 -0
- package/dist/schema-form/validate.js +162 -0
- package/dist/schema-form/validate.js.map +1 -0
- package/dist/structured-output/StructuredOutput.d.ts +27 -0
- package/dist/structured-output/StructuredOutput.d.ts.map +1 -0
- package/dist/structured-output/StructuredOutput.js +41 -0
- package/dist/structured-output/StructuredOutput.js.map +1 -0
- package/dist/testing.d.ts +80 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +207 -0
- package/dist/testing.js.map +1 -0
- package/package.json +101 -0
- package/src/components/badge.tsx +31 -0
- package/src/components/checkbox.tsx +93 -0
- package/src/components/code-block.tsx +37 -0
- package/src/components/completion-input.tsx +137 -0
- package/src/components/components.css +2212 -0
- package/src/components/confirm-dialog.tsx +77 -0
- package/src/components/control-styles.ts +14 -0
- package/src/components/copy-field.tsx +178 -0
- package/src/components/dialog.tsx +76 -0
- package/src/components/drawer.tsx +83 -0
- package/src/components/error-boundary.tsx +56 -0
- package/src/components/extension-combo-builder.tsx +305 -0
- package/src/components/extension-grouping.ts +116 -0
- package/src/components/extension-picker.tsx +97 -0
- package/src/components/external-link.tsx +40 -0
- package/src/components/field.tsx +169 -0
- package/src/components/fleet-report.tsx +136 -0
- package/src/components/fonts.css +22 -0
- package/src/components/icons.tsx +504 -0
- package/src/components/inputs.tsx +125 -0
- package/src/components/json-diff.tsx +192 -0
- package/src/components/json-tree.tsx +129 -0
- package/src/components/modal-focus.ts +150 -0
- package/src/components/page-header.tsx +107 -0
- package/src/components/primitives.tsx +489 -0
- package/src/components/progress-bar.tsx +100 -0
- package/src/components/radio-group.tsx +160 -0
- package/src/components/reveal-input.tsx +87 -0
- package/src/components/scroll-region.tsx +703 -0
- package/src/components/select.tsx +149 -0
- package/src/components/table.tsx +94 -0
- package/src/components/tabs.tsx +51 -0
- package/src/components/tags.tsx +137 -0
- package/src/components/tokens.css +392 -0
- package/src/components/tokens.ts +102 -0
- package/src/components/tool-picker.tsx +175 -0
- package/src/components/tooltip.tsx +46 -0
- package/src/components/version-history-panel.tsx +407 -0
- package/src/css.d.ts +2 -0
- package/src/download.ts +17 -0
- package/src/element-slot.ts +22 -0
- package/src/elicitation/ElicitationForm.tsx +87 -0
- package/src/errors.ts +12 -0
- package/src/extension-combos.ts +18 -0
- package/src/hooks/useApi.ts +27 -0
- package/src/hooks/useAuth.ts +67 -0
- package/src/hooks/useBreakpoint.ts +78 -0
- package/src/hooks/useCapabilities.ts +242 -0
- package/src/hooks/useSse.ts +314 -0
- package/src/hooks/useTheme.ts +133 -0
- package/src/hooks/useUnauthorized.ts +20 -0
- package/src/host.ts +15 -0
- package/src/index.ts +267 -0
- package/src/navigation/context.tsx +90 -0
- package/src/navigation/index.ts +9 -0
- package/src/navigation/types.ts +90 -0
- package/src/plugin/host-state.ts +93 -0
- package/src/plugin/registry.ts +174 -0
- package/src/plugin/types.ts +178 -0
- package/src/plugin/version.ts +44 -0
- package/src/query-keys.ts +34 -0
- package/src/schema-editor/SchemaEditor.tsx +186 -0
- package/src/schema-editor/index.ts +9 -0
- package/src/schema-editor/lint.ts +70 -0
- package/src/schema-form/SchemaForm.tsx +107 -0
- package/src/schema-form/array-field.tsx +110 -0
- package/src/schema-form/classify.ts +302 -0
- package/src/schema-form/context.ts +17 -0
- package/src/schema-form/default-value.ts +65 -0
- package/src/schema-form/enum-field.tsx +65 -0
- package/src/schema-form/field-group.tsx +71 -0
- package/src/schema-form/field-node.tsx +161 -0
- package/src/schema-form/index.ts +12 -0
- package/src/schema-form/media-field.tsx +281 -0
- package/src/schema-form/media.ts +69 -0
- package/src/schema-form/object-fields.tsx +74 -0
- package/src/schema-form/resolve.ts +114 -0
- package/src/schema-form/string-field.tsx +161 -0
- package/src/schema-form/styles.ts +20 -0
- package/src/schema-form/types.ts +71 -0
- package/src/schema-form/union-field.tsx +122 -0
- package/src/schema-form/union.ts +78 -0
- package/src/schema-form/unsupported-notice.tsx +39 -0
- package/src/schema-form/validate.ts +183 -0
- package/src/structured-output/StructuredOutput.tsx +81 -0
- package/src/testing.ts +235 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* `Checkbox` — a design-system wrapper over Radix Checkbox (role `checkbox`). An
|
|
4
|
+
* optional inline `label` renders a linked `<label>` so clicking the text toggles
|
|
5
|
+
* the box (buttons are labelable). When the box carries no visible label (a
|
|
6
|
+
* selection column in a table), pass `aria-label` so it still has an accessible
|
|
7
|
+
* name. Inside a `Field` the box picks up the field id + a11y wiring instead.
|
|
8
|
+
*
|
|
9
|
+
* Appearance is the `tai-checkbox` class: Radix stamps `data-state` on the root,
|
|
10
|
+
* and the stylesheet paints the checked and indeterminate grounds from it, so the
|
|
11
|
+
* mark shows for a controlled AND an uncontrolled box alike. The two filled
|
|
12
|
+
* states share that ground, so the MARK is what tells them apart: `CheckIcon` for
|
|
13
|
+
* checked, `MinusIcon` for indeterminate, both decorative behind the control's
|
|
14
|
+
* own name.
|
|
15
|
+
*/
|
|
16
|
+
import * as RadixCheckbox from '@radix-ui/react-checkbox';
|
|
17
|
+
import { useId } from 'react';
|
|
18
|
+
import { useFieldControl } from './field';
|
|
19
|
+
import { CheckIcon, MinusIcon } from './icons';
|
|
20
|
+
export function Checkbox({ checked, defaultChecked, onCheckedChange, disabled, label, 'aria-label': ariaLabel, name, value, }) {
|
|
21
|
+
const field = useFieldControl();
|
|
22
|
+
const generatedId = useId();
|
|
23
|
+
const id = field.id ?? generatedId;
|
|
24
|
+
const box = (_jsx(RadixCheckbox.Root, { id: id, className: "tai-checkbox", "aria-label": field.id === undefined && label === undefined ? ariaLabel : undefined, "aria-describedby": field['aria-describedby'], "aria-invalid": field['aria-invalid'], checked: checked, defaultChecked: defaultChecked, onCheckedChange: (next) => {
|
|
25
|
+
onCheckedChange?.(next === true);
|
|
26
|
+
}, disabled: disabled, name: name, value: value, children: _jsx(RadixCheckbox.Indicator, { "aria-hidden": "true", style: { display: 'flex' }, children: checked === 'indeterminate' ? _jsx(MinusIcon, {}) : _jsx(CheckIcon, {}) }) }));
|
|
27
|
+
if (label === undefined)
|
|
28
|
+
return box;
|
|
29
|
+
return (_jsxs("label", { htmlFor: id, className: "tai-choice", children: [box, _jsx("span", { children: label })] }));
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/components/checkbox.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAyB/C,MAAM,UAAU,QAAQ,CAAC,EACvB,OAAO,EACP,cAAc,EACd,eAAe,EACf,QAAQ,EACR,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,IAAI,EACJ,KAAK,GACS;IACd,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,KAAK,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,WAAW,CAAC;IAEnC,MAAM,GAAG,GAAG,CACV,KAAC,aAAa,CAAC,IAAI,IACjB,EAAE,EAAE,EAAE,EACN,SAAS,EAAC,cAAc,gBAIZ,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,sBAC/D,KAAK,CAAC,kBAAkB,CAAC,kBAC7B,KAAK,CAAC,cAAc,CAAC,EACnC,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,eAAe,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACnC,CAAC,EACD,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,YAKZ,KAAC,aAAa,CAAC,SAAS,mBAAa,MAAM,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,YACnE,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,KAAC,SAAS,KAAG,CAAC,CAAC,CAAC,KAAC,SAAS,KAAG,GACpC,GACP,CACtB,CAAC;IAEF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACpC,OAAO,CACL,iBAAO,OAAO,EAAE,EAAE,EAAE,SAAS,EAAC,YAAY,aACvC,GAAG,EACJ,yBAAO,KAAK,GAAQ,IACd,CACT,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface CodeBlockProps {
|
|
2
|
+
readonly code: string;
|
|
3
|
+
/** Optional language label, shown as a caption; purely informational. */
|
|
4
|
+
readonly language?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function CodeBlock({ code, language }: CodeBlockProps): import("react").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=code-block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../src/components/code-block.tsx"],"names":[],"mappings":"AAcA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,cAAc,+BAa3D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* `CodeBlock` — escaped, monospaced preformatted text for tool results and string
|
|
4
|
+
* payloads, on the design system's terminal ground (`tai-code-block`). The content
|
|
5
|
+
* is a React text child inside `<pre><code>`, so it is escaped by React and
|
|
6
|
+
* rendered verbatim; this component is NEVER an HTML sink (no
|
|
7
|
+
* `dangerouslySetInnerHTML`).
|
|
8
|
+
*
|
|
9
|
+
* The `<pre>` IS the scrolling box, so it carries the region attributes itself
|
|
10
|
+
* rather than sitting inside a `ScrollRegion` wrapper that would add a second
|
|
11
|
+
* scroller: a long line makes it a named keyboard target, a short one leaves it
|
|
12
|
+
* an ordinary block.
|
|
13
|
+
*/
|
|
14
|
+
import { useOverflowRegion } from './scroll-region';
|
|
15
|
+
/** The region's name when no language caption supplies one. */
|
|
16
|
+
const DEFAULT_LABEL = 'Code';
|
|
17
|
+
export function CodeBlock({ code, language }) {
|
|
18
|
+
// No consumer ref: the measurement's own callback ref is the only thing that
|
|
19
|
+
// needs the `<pre>`, and this component publishes no `ref` prop.
|
|
20
|
+
const region = useOverflowRegion(undefined, language ?? DEFAULT_LABEL);
|
|
21
|
+
return (_jsxs("div", { className: "tai-stack tai-stack-2", children: [language !== undefined ? _jsx("span", { className: "tai-label", children: language }) : null, _jsx("pre", { className: "tai-code-block", ...region, children: _jsx("code", { children: code }) })] }));
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=code-block.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../src/components/code-block.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAQpD,+DAA+D;AAC/D,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAkB;IAC1D,6EAA6E;IAC7E,iEAAiE;IACjE,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,EAAE,QAAQ,IAAI,aAAa,CAAC,CAAC;IAEvE,OAAO,CACL,eAAK,SAAS,EAAC,uBAAuB,aACnC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,WAAW,YAAE,QAAQ,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC9E,cAAK,SAAS,EAAC,gBAAgB,KAAK,MAAM,YACxC,yBAAO,IAAI,GAAQ,GACf,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `CompletionInput` — a text field wired to MCP `completion/complete`. As the
|
|
3
|
+
* human types, it asks the provided `fetchCompletions` (a thin wrapper over the
|
|
4
|
+
* MCP completions capability) for argument suggestions and renders them as a
|
|
5
|
+
* selectable list; picking one fills the field. A fetch failure clears the
|
|
6
|
+
* suggestions and surfaces through `onError` — never a silent swallow.
|
|
7
|
+
*
|
|
8
|
+
* The field is a `tai-input` and its popup wears the Select popup's classes
|
|
9
|
+
* (`tai-select-content` / `tai-select-item`), so a suggestion list and a select
|
|
10
|
+
* list are the same object to a reader.
|
|
11
|
+
*
|
|
12
|
+
* Reusable by any feature; the intended consumer is a `SchemaForm` string field
|
|
13
|
+
* that has a completion provider for its tool/prompt/resource argument.
|
|
14
|
+
*/
|
|
15
|
+
import type { ReactNode } from 'react';
|
|
16
|
+
export interface CompletionInputProps {
|
|
17
|
+
readonly value: string;
|
|
18
|
+
readonly onChange: (value: string) => void;
|
|
19
|
+
/** Fetch argument completions for the current input value. */
|
|
20
|
+
readonly fetchCompletions: (value: string) => Promise<readonly string[]>;
|
|
21
|
+
/** Surfaced (not swallowed) when a completion fetch fails. */
|
|
22
|
+
readonly onError?: (error: unknown) => void;
|
|
23
|
+
readonly placeholder?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A completion-backed text input. Suggestions refresh on every edit (a
|
|
27
|
+
* per-request sequence guard drops a stale response) and render as an ARIA
|
|
28
|
+
* listbox; selecting an option fills the field and clears the list.
|
|
29
|
+
*/
|
|
30
|
+
export declare function CompletionInput({ value, onChange, fetchCompletions, onError, placeholder, }: CompletionInputProps): ReactNode;
|
|
31
|
+
//# sourceMappingURL=completion-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion-input.d.ts","sourceRoot":"","sources":["../../src/components/completion-input.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAKtD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,8DAA8D;IAC9D,QAAQ,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IACzE,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAcD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,WAAW,GACZ,EAAE,oBAAoB,GAAG,SAAS,CAoFlC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useId, useRef, useState } from 'react';
|
|
3
|
+
import { useFieldControl } from './field';
|
|
4
|
+
const wrapStyle = { position: 'relative' };
|
|
5
|
+
/**
|
|
6
|
+
* The popup sits directly under the field rather than against its top edge. It
|
|
7
|
+
* is a `<ul>`, so it also drops the marker a host without a CSS reset would draw.
|
|
8
|
+
*/
|
|
9
|
+
const listStyle = {
|
|
10
|
+
marginTop: 'var(--tai-space-1)',
|
|
11
|
+
marginBottom: 0,
|
|
12
|
+
listStyle: 'none',
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* A completion-backed text input. Suggestions refresh on every edit (a
|
|
16
|
+
* per-request sequence guard drops a stale response) and render as an ARIA
|
|
17
|
+
* listbox; selecting an option fills the field and clears the list.
|
|
18
|
+
*/
|
|
19
|
+
export function CompletionInput({ value, onChange, fetchCompletions, onError, placeholder, }) {
|
|
20
|
+
const field = useFieldControl();
|
|
21
|
+
const listboxId = useId();
|
|
22
|
+
const [suggestions, setSuggestions] = useState([]);
|
|
23
|
+
// The list is only shown while the human is typing. Selecting an option (a
|
|
24
|
+
// programmatic value change) closes it until the next keystroke, so the field
|
|
25
|
+
// does not immediately re-suggest against the value it just accepted.
|
|
26
|
+
const [open, setOpen] = useState(false);
|
|
27
|
+
const seq = useRef(0);
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
const requestId = ++seq.current;
|
|
30
|
+
let cancelled = false;
|
|
31
|
+
fetchCompletions(value)
|
|
32
|
+
.then((values) => {
|
|
33
|
+
// Drop a stale response so a slow earlier request cannot overwrite a
|
|
34
|
+
// newer one's suggestions.
|
|
35
|
+
if (!cancelled && requestId === seq.current)
|
|
36
|
+
setSuggestions(values);
|
|
37
|
+
})
|
|
38
|
+
.catch((error) => {
|
|
39
|
+
if (cancelled || requestId !== seq.current)
|
|
40
|
+
return;
|
|
41
|
+
setSuggestions([]);
|
|
42
|
+
onError?.(error);
|
|
43
|
+
});
|
|
44
|
+
return () => {
|
|
45
|
+
cancelled = true;
|
|
46
|
+
};
|
|
47
|
+
}, [value, fetchCompletions, onError]);
|
|
48
|
+
const select = (suggestion) => {
|
|
49
|
+
setOpen(false);
|
|
50
|
+
setSuggestions([]);
|
|
51
|
+
onChange(suggestion);
|
|
52
|
+
};
|
|
53
|
+
const showList = open && suggestions.length > 0;
|
|
54
|
+
return (_jsxs("div", { style: wrapStyle, children: [_jsx("input", { ...field, className: "tai-input", type: "text", role: "combobox", "aria-expanded": showList, "aria-controls": listboxId, "aria-autocomplete": "list", value: value, placeholder: placeholder, onChange: (event) => {
|
|
55
|
+
setOpen(true);
|
|
56
|
+
onChange(event.target.value);
|
|
57
|
+
} }), showList && (_jsx("ul", { id: listboxId, role: "listbox", className: "tai-select-content tai-select-viewport", style: listStyle, children: suggestions.map((suggestion) => (_jsx("li", { role: "presentation", children: _jsx("button", { type: "button", role: "option", "aria-selected": false, className: "tai-select-item", onClick: () => {
|
|
58
|
+
select(suggestion);
|
|
59
|
+
}, children: suggestion }) }, suggestion))) }))] }));
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=completion-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion-input.js","sourceRoot":"","sources":["../../src/components/completion-input.tsx"],"names":[],"mappings":"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"}
|