ima2-gen 2.0.6-preview-260629 → 2.0.13
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/CHANGELOG.md +3 -0
- package/bin/commands/edit.js +6 -6
- package/bin/commands/gen.js +6 -6
- package/bin/commands/multimode.js +4 -4
- package/bin/commands/node.js +2 -2
- package/bin/commands/prompt-sub/build.js +1 -1
- package/bin/lib/error-hints.js +1 -1
- package/config.js +2 -2
- package/docs/CLI.md +1 -1
- package/docs/FAQ.md +3 -0
- package/docs/migration/runtime-test-inventory.md +2 -1
- package/lib/agentSettings.js +1 -1
- package/lib/grokVideoAdapter.js +3 -3
- package/lib/grokVideoPlannerPrompt.js +94 -53
- package/lib/imageModels.js +4 -4
- package/lib/oauthProxy/runtime.js +1 -1
- package/lib/promptBuilder/constants.js +1 -1
- package/lib/promptBuilder/requestSchema.js +1 -1
- package/node_modules/@ai-sdk/gateway/CHANGELOG.md +1628 -0
- package/node_modules/@ai-sdk/gateway/LICENSE +13 -0
- package/node_modules/@ai-sdk/gateway/README.md +44 -0
- package/node_modules/@ai-sdk/gateway/dist/index.d.mts +602 -0
- package/node_modules/@ai-sdk/gateway/dist/index.d.ts +602 -0
- package/node_modules/@ai-sdk/gateway/dist/index.js +1520 -0
- package/node_modules/@ai-sdk/gateway/dist/index.js.map +1 -0
- package/node_modules/@ai-sdk/gateway/dist/index.mjs +1539 -0
- package/node_modules/@ai-sdk/gateway/dist/index.mjs.map +1 -0
- package/node_modules/@ai-sdk/gateway/docs/00-ai-gateway.mdx +742 -0
- package/node_modules/@ai-sdk/gateway/package.json +80 -0
- package/node_modules/@ai-sdk/gateway/src/errors/as-gateway-error.ts +74 -0
- package/node_modules/@ai-sdk/gateway/src/errors/create-gateway-error.ts +132 -0
- package/node_modules/@ai-sdk/gateway/src/errors/extract-api-call-response.ts +15 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-authentication-error.ts +84 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-error.ts +47 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-internal-server-error.ts +33 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-invalid-request-error.ts +33 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-model-not-found-error.ts +47 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-rate-limit-error.ts +33 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-response-error.ts +42 -0
- package/node_modules/@ai-sdk/gateway/src/errors/gateway-timeout-error.ts +59 -0
- package/node_modules/@ai-sdk/gateway/src/errors/index.ts +17 -0
- package/node_modules/@ai-sdk/gateway/src/errors/parse-auth-method.ts +23 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-config.ts +7 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-embedding-model-settings.ts +25 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-embedding-model.ts +109 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-fetch-metadata.ts +129 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-image-model-settings.ts +19 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-image-model.ts +169 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-language-model-settings.ts +171 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-language-model.ts +212 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-model-entry.ts +58 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-provider-options.ts +80 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-provider.ts +329 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-tools.ts +26 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-video-model-settings.ts +25 -0
- package/node_modules/@ai-sdk/gateway/src/gateway-video-model.ts +259 -0
- package/node_modules/@ai-sdk/gateway/src/index.ts +32 -0
- package/node_modules/@ai-sdk/gateway/src/tool/parallel-search.ts +295 -0
- package/node_modules/@ai-sdk/gateway/src/tool/perplexity-search.ts +294 -0
- package/node_modules/@ai-sdk/gateway/src/vercel-environment.ts +6 -0
- package/node_modules/@ai-sdk/gateway/src/version.ts +6 -0
- package/node_modules/@ai-sdk/provider/CHANGELOG.md +979 -0
- package/node_modules/@ai-sdk/provider/LICENSE +13 -0
- package/node_modules/@ai-sdk/provider/README.md +1 -0
- package/node_modules/@ai-sdk/provider/dist/index.d.mts +4030 -0
- package/node_modules/@ai-sdk/provider/dist/index.d.ts +4030 -0
- package/node_modules/@ai-sdk/provider/dist/index.js +448 -0
- package/node_modules/@ai-sdk/provider/dist/index.js.map +1 -0
- package/node_modules/@ai-sdk/provider/dist/index.mjs +404 -0
- package/node_modules/@ai-sdk/provider/dist/index.mjs.map +1 -0
- package/node_modules/@ai-sdk/provider/package.json +63 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v2/embedding-model-v2-embedding.ts +5 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v2/embedding-model-v2.ts +113 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v2/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v3/embedding-model-v3-call-options.ts +26 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v3/embedding-model-v3-embedding.ts +5 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v3/embedding-model-v3-result.ts +48 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v3/embedding-model-v3.ts +54 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model/v3/index.ts +4 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model-middleware/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model-middleware/v3/embedding-model-v3-middleware.ts +69 -0
- package/node_modules/@ai-sdk/provider/src/embedding-model-middleware/v3/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/errors/ai-sdk-error.ts +62 -0
- package/node_modules/@ai-sdk/provider/src/errors/api-call-error.ts +59 -0
- package/node_modules/@ai-sdk/provider/src/errors/empty-response-body-error.ts +17 -0
- package/node_modules/@ai-sdk/provider/src/errors/get-error-message.ts +15 -0
- package/node_modules/@ai-sdk/provider/src/errors/index.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/errors/invalid-argument-error.ts +32 -0
- package/node_modules/@ai-sdk/provider/src/errors/invalid-prompt-error.ts +33 -0
- package/node_modules/@ai-sdk/provider/src/errors/invalid-response-data-error.ts +31 -0
- package/node_modules/@ai-sdk/provider/src/errors/json-parse-error.ts +29 -0
- package/node_modules/@ai-sdk/provider/src/errors/load-api-key-error.ts +17 -0
- package/node_modules/@ai-sdk/provider/src/errors/load-setting-error.ts +17 -0
- package/node_modules/@ai-sdk/provider/src/errors/no-content-generated-error.ts +22 -0
- package/node_modules/@ai-sdk/provider/src/errors/no-such-model-error.ts +47 -0
- package/node_modules/@ai-sdk/provider/src/errors/too-many-embedding-values-for-call-error.ts +40 -0
- package/node_modules/@ai-sdk/provider/src/errors/type-validation-error.ts +108 -0
- package/node_modules/@ai-sdk/provider/src/errors/unsupported-functionality-error.ts +26 -0
- package/node_modules/@ai-sdk/provider/src/image-model/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v2/image-model-v2-call-options.ts +60 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v2/image-model-v2-call-warning.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v2/image-model-v2.ts +104 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v2/index.ts +6 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v3/image-model-v3-call-options.ts +74 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v3/image-model-v3-file.ts +44 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v3/image-model-v3-usage.ts +19 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v3/image-model-v3.ts +110 -0
- package/node_modules/@ai-sdk/provider/src/image-model/v3/index.ts +7 -0
- package/node_modules/@ai-sdk/provider/src/image-model-middleware/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/image-model-middleware/v3/image-model-v3-middleware.ts +61 -0
- package/node_modules/@ai-sdk/provider/src/image-model-middleware/v3/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/index.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/json-value/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/json-value/is-json.ts +40 -0
- package/node_modules/@ai-sdk/provider/src/json-value/json-value.ts +17 -0
- package/node_modules/@ai-sdk/provider/src/language-model/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/index.ts +18 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-call-options.ts +127 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-call-warning.ts +23 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-content.ts +14 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-data-content.ts +4 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-file.ts +25 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-finish-reason.ts +20 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-function-tool.ts +37 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-prompt.ts +218 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-provider-defined-tool.ts +24 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-reasoning.ts +14 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-response-metadata.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-source.ts +67 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-stream-part.ts +102 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-text.ts +15 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-tool-call.ts +35 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-tool-choice.ts +5 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-tool-result.ts +40 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2-usage.ts +34 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v2/language-model-v2.ts +137 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/index.ts +21 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-call-options.ts +125 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-content.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-data-content.ts +4 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-file.ts +32 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-finish-reason.ts +33 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-function-tool.ts +53 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-generate-result.ts +63 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-prompt.ts +422 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-provider-tool.ts +28 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-reasoning.ts +14 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-response-metadata.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-source.ts +67 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-stream-part.ts +106 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-stream-result.ts +32 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-text.ts +15 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-tool-approval-request.ts +27 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-tool-call.ts +41 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-tool-choice.ts +5 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-tool-result.ts +51 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3-usage.ts +59 -0
- package/node_modules/@ai-sdk/provider/src/language-model/v3/language-model-v3.ts +61 -0
- package/node_modules/@ai-sdk/provider/src/language-model-middleware/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/language-model-middleware/v2/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/language-model-middleware/v2/language-model-v2-middleware.ts +82 -0
- package/node_modules/@ai-sdk/provider/src/language-model-middleware/v3/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/language-model-middleware/v3/language-model-v3-middleware.ts +84 -0
- package/node_modules/@ai-sdk/provider/src/provider/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/provider/v2/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/provider/v2/provider-v2.ts +64 -0
- package/node_modules/@ai-sdk/provider/src/provider/v3/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/provider/v3/provider-v3.ts +93 -0
- package/node_modules/@ai-sdk/provider/src/reranking-model/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/reranking-model/v3/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/reranking-model/v3/reranking-model-v3-call-options.ts +40 -0
- package/node_modules/@ai-sdk/provider/src/reranking-model/v3/reranking-model-v3.ts +90 -0
- package/node_modules/@ai-sdk/provider/src/shared/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/shared/v2/index.ts +3 -0
- package/node_modules/@ai-sdk/provider/src/shared/v2/shared-v2-headers.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/shared/v2/shared-v2-provider-metadata.ts +27 -0
- package/node_modules/@ai-sdk/provider/src/shared/v2/shared-v2-provider-options.ts +24 -0
- package/node_modules/@ai-sdk/provider/src/shared/v3/index.ts +4 -0
- package/node_modules/@ai-sdk/provider/src/shared/v3/shared-v3-headers.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/shared/v3/shared-v3-provider-metadata.ts +24 -0
- package/node_modules/@ai-sdk/provider/src/shared/v3/shared-v3-provider-options.ts +24 -0
- package/node_modules/@ai-sdk/provider/src/shared/v3/shared-v3-warning.ts +50 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/v2/index.ts +3 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/v2/speech-model-v2-call-options.ts +62 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/v2/speech-model-v2-call-warning.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/v2/speech-model-v2.ts +89 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/v3/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/v3/speech-model-v3-call-options.ts +62 -0
- package/node_modules/@ai-sdk/provider/src/speech-model/v3/speech-model-v3.ts +89 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/v2/index.ts +3 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/v2/transcription-model-v2-call-options.ts +48 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/v2/transcription-model-v2-call-warning.ts +16 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/v2/transcription-model-v2.ts +117 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/v3/index.ts +2 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/v3/transcription-model-v3-call-options.ts +45 -0
- package/node_modules/@ai-sdk/provider/src/transcription-model/v3/transcription-model-v3.ts +117 -0
- package/node_modules/@ai-sdk/provider/src/video-model/index.ts +1 -0
- package/node_modules/@ai-sdk/provider/src/video-model/v3/index.ts +6 -0
- package/node_modules/@ai-sdk/provider/src/video-model/v3/video-model-v3-call-options.ts +81 -0
- package/node_modules/@ai-sdk/provider/src/video-model/v3/video-model-v3-file.ts +40 -0
- package/node_modules/@ai-sdk/provider/src/video-model/v3/video-model-v3.ts +132 -0
- package/node_modules/@ai-sdk/provider-utils/CHANGELOG.md +1560 -0
- package/node_modules/@ai-sdk/provider-utils/README.md +1 -0
- package/node_modules/@ai-sdk/provider-utils/dist/index.d.mts +1433 -0
- package/node_modules/@ai-sdk/provider-utils/dist/index.d.ts +1433 -0
- package/node_modules/@ai-sdk/provider-utils/dist/index.js +2844 -0
- package/node_modules/@ai-sdk/provider-utils/dist/index.js.map +1 -0
- package/node_modules/@ai-sdk/provider-utils/dist/index.mjs +2756 -0
- package/node_modules/@ai-sdk/provider-utils/dist/index.mjs.map +1 -0
- package/node_modules/@ai-sdk/provider-utils/dist/test/index.d.mts +17 -0
- package/node_modules/@ai-sdk/provider-utils/dist/test/index.d.ts +17 -0
- package/node_modules/@ai-sdk/provider-utils/dist/test/index.js +110 -0
- package/node_modules/@ai-sdk/provider-utils/dist/test/index.js.map +1 -0
- package/node_modules/@ai-sdk/provider-utils/dist/test/index.mjs +77 -0
- package/node_modules/@ai-sdk/provider-utils/dist/test/index.mjs.map +1 -0
- package/node_modules/@ai-sdk/provider-utils/package.json +81 -0
- package/node_modules/@ai-sdk/provider-utils/src/add-additional-properties-to-json-schema.ts +53 -0
- package/node_modules/@ai-sdk/provider-utils/src/combine-headers.ts +11 -0
- package/node_modules/@ai-sdk/provider-utils/src/convert-async-iterator-to-readable-stream.ts +47 -0
- package/node_modules/@ai-sdk/provider-utils/src/convert-image-model-file-to-data-uri.ts +19 -0
- package/node_modules/@ai-sdk/provider-utils/src/convert-to-form-data.ts +61 -0
- package/node_modules/@ai-sdk/provider-utils/src/create-tool-name-mapping.ts +82 -0
- package/node_modules/@ai-sdk/provider-utils/src/delay.ts +47 -0
- package/node_modules/@ai-sdk/provider-utils/src/delayed-promise.ts +61 -0
- package/node_modules/@ai-sdk/provider-utils/src/download-blob.ts +52 -0
- package/node_modules/@ai-sdk/provider-utils/src/download-error.ts +39 -0
- package/node_modules/@ai-sdk/provider-utils/src/extract-response-headers.ts +9 -0
- package/node_modules/@ai-sdk/provider-utils/src/fetch-function.ts +4 -0
- package/node_modules/@ai-sdk/provider-utils/src/generate-id.ts +57 -0
- package/node_modules/@ai-sdk/provider-utils/src/get-error-message.ts +15 -0
- package/node_modules/@ai-sdk/provider-utils/src/get-from-api.ts +97 -0
- package/node_modules/@ai-sdk/provider-utils/src/get-runtime-environment-user-agent.ts +24 -0
- package/node_modules/@ai-sdk/provider-utils/src/handle-fetch-error.ts +72 -0
- package/node_modules/@ai-sdk/provider-utils/src/index.ts +73 -0
- package/node_modules/@ai-sdk/provider-utils/src/inject-json-instruction.ts +63 -0
- package/node_modules/@ai-sdk/provider-utils/src/is-abort-error.ts +8 -0
- package/node_modules/@ai-sdk/provider-utils/src/is-async-iterable.ts +3 -0
- package/node_modules/@ai-sdk/provider-utils/src/is-non-nullable.ts +12 -0
- package/node_modules/@ai-sdk/provider-utils/src/is-url-supported.ts +40 -0
- package/node_modules/@ai-sdk/provider-utils/src/load-api-key.ts +45 -0
- package/node_modules/@ai-sdk/provider-utils/src/load-optional-setting.ts +30 -0
- package/node_modules/@ai-sdk/provider-utils/src/load-setting.ts +62 -0
- package/node_modules/@ai-sdk/provider-utils/src/maybe-promise-like.ts +3 -0
- package/node_modules/@ai-sdk/provider-utils/src/media-type-to-extension.ts +22 -0
- package/node_modules/@ai-sdk/provider-utils/src/normalize-headers.ts +38 -0
- package/node_modules/@ai-sdk/provider-utils/src/parse-json-event-stream.ts +33 -0
- package/node_modules/@ai-sdk/provider-utils/src/parse-json.ts +122 -0
- package/node_modules/@ai-sdk/provider-utils/src/parse-provider-options.ts +32 -0
- package/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts +166 -0
- package/node_modules/@ai-sdk/provider-utils/src/provider-tool-factory.ts +125 -0
- package/node_modules/@ai-sdk/provider-utils/src/read-response-with-size-limit.ts +97 -0
- package/node_modules/@ai-sdk/provider-utils/src/remove-undefined-entries.ts +12 -0
- package/node_modules/@ai-sdk/provider-utils/src/resolve.ts +17 -0
- package/node_modules/@ai-sdk/provider-utils/src/response-handler.ts +186 -0
- package/node_modules/@ai-sdk/provider-utils/src/schema.ts +267 -0
- package/node_modules/@ai-sdk/provider-utils/src/secure-json-parse.ts +96 -0
- package/node_modules/@ai-sdk/provider-utils/src/strip-file-extension.ts +13 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/convert-array-to-async-iterable.ts +9 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/convert-array-to-readable-stream.ts +15 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/convert-async-iterable-to-array.ts +9 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/convert-readable-stream-to-array.ts +14 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/convert-response-stream-to-array.ts +9 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/index.ts +7 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/is-node-version.ts +4 -0
- package/node_modules/@ai-sdk/provider-utils/src/test/mock-id.ts +8 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/LICENSE +16 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/README.md +24 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/get-relative-path.ts +7 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/index.ts +1 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/options.ts +98 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parse-def.ts +109 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parse-types.ts +57 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/any.ts +5 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/array.ts +38 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/bigint.ts +44 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/boolean.ts +7 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/branded.ts +7 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/catch.ts +7 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/date.ts +64 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/default.ts +14 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/effects.ts +14 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/enum.ts +13 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/intersection.ts +52 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/literal.ts +29 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/map.ts +47 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/native-enum.ts +31 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/never.ts +9 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/null.ts +9 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/nullable.ts +42 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/number.ts +44 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/object.ts +88 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/optional.ts +23 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/pipeline.ts +29 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/promise.ts +11 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/readonly.ts +7 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/record.ts +71 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/set.ts +35 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/string.ts +426 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/tuple.ts +61 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/undefined.ts +11 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/union.ts +144 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/unknown.ts +7 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/refs.ts +39 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/select-parser.ts +115 -0
- package/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/zod3-to-json-schema.ts +93 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/assistant-model-message.ts +39 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/content-part.ts +379 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/data-content.ts +4 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/execute-tool.ts +27 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/index.ts +40 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/model-message.ts +14 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/provider-options.ts +9 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/system-model-message.ts +20 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/tool-approval-request.ts +16 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/tool-approval-response.ts +27 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/tool-call.ts +31 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/tool-model-message.ts +23 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/tool-result.ts +35 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/tool.ts +324 -0
- package/node_modules/@ai-sdk/provider-utils/src/types/user-model-message.ts +22 -0
- package/node_modules/@ai-sdk/provider-utils/src/uint8-utils.ts +26 -0
- package/node_modules/@ai-sdk/provider-utils/src/validate-download-url.ts +143 -0
- package/node_modules/@ai-sdk/provider-utils/src/validate-types.ts +87 -0
- package/node_modules/@ai-sdk/provider-utils/src/version.ts +6 -0
- package/node_modules/@ai-sdk/provider-utils/src/with-user-agent-suffix.ts +27 -0
- package/node_modules/@ai-sdk/provider-utils/src/without-trailing-slash.ts +3 -0
- package/node_modules/@ai-sdk/provider-utils/test.d.ts +1 -0
- package/node_modules/@opentelemetry/api/LICENSE +201 -0
- package/node_modules/@opentelemetry/api/README.md +116 -0
- package/node_modules/@opentelemetry/api/build/esm/api/context.d.ts +41 -0
- package/node_modules/@opentelemetry/api/build/esm/api/context.js +110 -0
- package/node_modules/@opentelemetry/api/build/esm/api/context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/api/diag.d.ts +30 -0
- package/node_modules/@opentelemetry/api/build/esm/api/diag.js +121 -0
- package/node_modules/@opentelemetry/api/build/esm/api/diag.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/api/metrics.d.ts +28 -0
- package/node_modules/@opentelemetry/api/build/esm/api/metrics.js +60 -0
- package/node_modules/@opentelemetry/api/build/esm/api/metrics.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/api/propagation.d.ts +49 -0
- package/node_modules/@opentelemetry/api/build/esm/api/propagation.js +89 -0
- package/node_modules/@opentelemetry/api/build/esm/api/propagation.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/api/trace.d.ts +40 -0
- package/node_modules/@opentelemetry/api/build/esm/api/trace.js +77 -0
- package/node_modules/@opentelemetry/api/build/esm/api/trace.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.d.ts +29 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js +56 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.d.ts +12 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js +98 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.d.ts +5 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.js +20 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/types.d.ts +60 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/types.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/utils.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/utils.js +47 -0
- package/node_modules/@opentelemetry/api/build/esm/baggage/utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Attributes.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Attributes.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Attributes.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Exception.d.ts +26 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Exception.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Exception.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Time.d.ts +20 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Time.js +2 -0
- package/node_modules/@opentelemetry/api/build/esm/common/Time.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.d.ts +9 -0
- package/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js +67 -0
- package/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/context/context.d.ts +6 -0
- package/node_modules/@opentelemetry/api/build/esm/context/context.js +52 -0
- package/node_modules/@opentelemetry/api/build/esm/context/context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/context/types.d.ts +52 -0
- package/node_modules/@opentelemetry/api/build/esm/context/types.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/context/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/context-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esm/context-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esm/context-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.d.ts +20 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js +102 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.d.ts +38 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.js +59 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js +41 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.d.ts +8 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.js +31 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/types.d.ts +100 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/types.js +41 -0
- package/node_modules/@opentelemetry/api/build/esm/diag/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/diag-api.d.ts +9 -0
- package/node_modules/@opentelemetry/api/build/esm/diag-api.js +26 -0
- package/node_modules/@opentelemetry/api/build/esm/diag-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/index.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.d.ts +64 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.js +92 -0
- package/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/index.d.ts +54 -0
- package/node_modules/@opentelemetry/api/build/esm/index.js +53 -0
- package/node_modules/@opentelemetry/api/build/esm/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/internal/global-utils.d.ts +18 -0
- package/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js +59 -0
- package/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/internal/semver.d.ts +34 -0
- package/node_modules/@opentelemetry/api/build/esm/internal/semver.js +118 -0
- package/node_modules/@opentelemetry/api/build/esm/internal/semver.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/Meter.d.ts +110 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/Meter.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/Meter.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.d.ts +17 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/Metric.d.ts +115 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/Metric.js +22 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/Metric.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.d.ts +82 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js +181 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.d.ts +11 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js +31 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.d.ts +31 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esm/metrics-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.js +35 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/browser/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/browser/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/browser/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js +19 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/node/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/node/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/platform/node/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js +34 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.d.ts +84 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js +38 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esm/propagation-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.d.ts +28 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js +68 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.d.ts +14 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js +76 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js +32 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.d.ts +27 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js +53 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.d.ts +25 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js +54 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/Sampler.d.ts +31 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/Sampler.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/Sampler.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.d.ts +49 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.js +39 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.d.ts +23 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/attributes.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/attributes.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/attributes.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/context-utils.d.ts +41 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js +73 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.d.ts +22 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.js +102 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.js +41 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.js +20 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.d.ts +5 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js +24 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/link.d.ts +26 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/link.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/link.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span.d.ts +120 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span_context.d.ts +53 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span_context.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span_context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span_kind.d.ts +27 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span_kind.js +43 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/span_kind.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.d.ts +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js +42 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/status.d.ts +25 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/status.js +20 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/status.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.d.ts +7 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js +23 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/trace_state.d.ts +38 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/trace_state.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/trace_state.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer.d.ts +71 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.d.ts +21 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.js +17 -0
- package/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/trace-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esm/trace-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esm/trace-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esm/version.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esm/version.js +18 -0
- package/node_modules/@opentelemetry/api/build/esm/version.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/context.d.ts +41 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/context.js +77 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/diag.d.ts +30 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/diag.js +89 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/diag.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/metrics.d.ts +28 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/metrics.js +57 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/metrics.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/propagation.d.ts +49 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/propagation.js +85 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/propagation.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/trace.d.ts +40 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/trace.js +75 -0
- package/node_modules/@opentelemetry/api/build/esnext/api/trace.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.d.ts +29 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.js +56 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.d.ts +12 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.js +51 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.d.ts +5 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.js +20 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/types.d.ts +60 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/types.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/utils.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/utils.js +46 -0
- package/node_modules/@opentelemetry/api/build/esnext/baggage/utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Attributes.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Attributes.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Attributes.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Exception.d.ts +26 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Exception.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Exception.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Time.d.ts +20 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Time.js +2 -0
- package/node_modules/@opentelemetry/api/build/esnext/common/Time.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.d.ts +9 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.js +34 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/context.d.ts +6 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/context.js +51 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/types.d.ts +52 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/types.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/context/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/context-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esnext/context-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esnext/context-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.d.ts +20 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.js +55 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.d.ts +38 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.js +53 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.js +41 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.d.ts +8 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.js +31 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/types.d.ts +100 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/types.js +41 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag-api.d.ts +9 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag-api.js +26 -0
- package/node_modules/@opentelemetry/api/build/esnext/diag-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/index.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.d.ts +64 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.js +88 -0
- package/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/index.d.ts +54 -0
- package/node_modules/@opentelemetry/api/build/esnext/index.js +53 -0
- package/node_modules/@opentelemetry/api/build/esnext/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.d.ts +18 -0
- package/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.js +58 -0
- package/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/internal/semver.d.ts +34 -0
- package/node_modules/@opentelemetry/api/build/esnext/internal/semver.js +118 -0
- package/node_modules/@opentelemetry/api/build/esnext/internal/semver.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.d.ts +110 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.d.ts +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.d.ts +115 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.js +22 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.d.ts +82 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.js +113 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.d.ts +11 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.js +27 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.d.ts +31 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esnext/metrics-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.js +35 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.js +19 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/node/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/node/index.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/platform/node/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.js +30 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.d.ts +84 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.js +38 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esnext/propagation-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.d.ts +28 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.js +65 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.d.ts +14 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.js +71 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.js +28 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.d.ts +27 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.js +51 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.d.ts +25 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.js +50 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.d.ts +31 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.d.ts +49 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.js +39 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.d.ts +23 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/attributes.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/attributes.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/attributes.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.d.ts +41 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.js +73 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.d.ts +22 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.js +99 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.js +41 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.js +20 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.d.ts +5 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.js +24 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/link.d.ts +26 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/link.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/link.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span.d.ts +120 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span_context.d.ts +53 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span_context.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span_context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.d.ts +27 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.js +43 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.d.ts +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.js +42 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/status.d.ts +25 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/status.js +20 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/status.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.d.ts +7 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.js +23 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.d.ts +38 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer.d.ts +71 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.d.ts +21 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.js +17 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace-api.js +21 -0
- package/node_modules/@opentelemetry/api/build/esnext/trace-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/esnext/version.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/esnext/version.js +18 -0
- package/node_modules/@opentelemetry/api/build/esnext/version.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/api/context.d.ts +41 -0
- package/node_modules/@opentelemetry/api/build/src/api/context.js +81 -0
- package/node_modules/@opentelemetry/api/build/src/api/context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/api/diag.d.ts +30 -0
- package/node_modules/@opentelemetry/api/build/src/api/diag.js +93 -0
- package/node_modules/@opentelemetry/api/build/src/api/diag.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/api/metrics.d.ts +28 -0
- package/node_modules/@opentelemetry/api/build/src/api/metrics.js +61 -0
- package/node_modules/@opentelemetry/api/build/src/api/metrics.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/api/propagation.d.ts +49 -0
- package/node_modules/@opentelemetry/api/build/src/api/propagation.js +89 -0
- package/node_modules/@opentelemetry/api/build/src/api/propagation.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/api/trace.d.ts +40 -0
- package/node_modules/@opentelemetry/api/build/src/api/trace.js +79 -0
- package/node_modules/@opentelemetry/api/build/src/api/trace.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.d.ts +29 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js +63 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.d.ts +12 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js +55 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.d.ts +5 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js +23 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/types.d.ts +60 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/types.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/utils.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/utils.js +51 -0
- package/node_modules/@opentelemetry/api/build/src/baggage/utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/common/Attributes.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/src/common/Attributes.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/common/Attributes.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/common/Exception.d.ts +26 -0
- package/node_modules/@opentelemetry/api/build/src/common/Exception.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/common/Exception.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/common/Time.d.ts +20 -0
- package/node_modules/@opentelemetry/api/build/src/common/Time.js +3 -0
- package/node_modules/@opentelemetry/api/build/src/common/Time.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.d.ts +9 -0
- package/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js +38 -0
- package/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/context/context.d.ts +6 -0
- package/node_modules/@opentelemetry/api/build/src/context/context.js +55 -0
- package/node_modules/@opentelemetry/api/build/src/context/context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/context/types.d.ts +52 -0
- package/node_modules/@opentelemetry/api/build/src/context/types.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/context/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/context-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/src/context-api.js +24 -0
- package/node_modules/@opentelemetry/api/build/src/context-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.d.ts +20 -0
- package/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js +59 -0
- package/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.d.ts +38 -0
- package/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js +57 -0
- package/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js +45 -0
- package/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.d.ts +8 -0
- package/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.js +35 -0
- package/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/diag/types.d.ts +100 -0
- package/node_modules/@opentelemetry/api/build/src/diag/types.js +44 -0
- package/node_modules/@opentelemetry/api/build/src/diag/types.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/diag-api.d.ts +9 -0
- package/node_modules/@opentelemetry/api/build/src/diag-api.js +29 -0
- package/node_modules/@opentelemetry/api/build/src/diag-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/index.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/index.js +22 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.d.ts +64 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.js +93 -0
- package/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/index.d.ts +54 -0
- package/node_modules/@opentelemetry/api/build/src/index.js +81 -0
- package/node_modules/@opentelemetry/api/build/src/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/internal/global-utils.d.ts +18 -0
- package/node_modules/@opentelemetry/api/build/src/internal/global-utils.js +64 -0
- package/node_modules/@opentelemetry/api/build/src/internal/global-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/internal/semver.d.ts +34 -0
- package/node_modules/@opentelemetry/api/build/src/internal/semver.js +122 -0
- package/node_modules/@opentelemetry/api/build/src/internal/semver.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/Meter.d.ts +110 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/Meter.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/Meter.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.d.ts +17 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/Metric.d.ts +115 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/Metric.js +25 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/Metric.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.d.ts +82 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js +127 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.d.ts +11 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js +31 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.d.ts +31 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/metrics-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/src/metrics-api.js +24 -0
- package/node_modules/@opentelemetry/api/build/src/metrics-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js +38 -0
- package/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/platform/browser/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/src/platform/browser/index.js +29 -0
- package/node_modules/@opentelemetry/api/build/src/platform/browser/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/platform/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/src/platform/index.js +29 -0
- package/node_modules/@opentelemetry/api/build/src/platform/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js +22 -0
- package/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/platform/node/index.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/src/platform/node/index.js +29 -0
- package/node_modules/@opentelemetry/api/build/src/platform/node/index.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js +34 -0
- package/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.d.ts +84 -0
- package/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js +41 -0
- package/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/propagation-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/src/propagation-api.js +24 -0
- package/node_modules/@opentelemetry/api/build/src/propagation-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.d.ts +28 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js +69 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.d.ts +14 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js +75 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.d.ts +13 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js +32 -0
- package/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.d.ts +27 -0
- package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js +55 -0
- package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.d.ts +25 -0
- package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js +54 -0
- package/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/Sampler.d.ts +31 -0
- package/node_modules/@opentelemetry/api/build/src/trace/Sampler.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/Sampler.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.d.ts +49 -0
- package/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js +42 -0
- package/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.d.ts +23 -0
- package/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/attributes.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/src/trace/attributes.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/attributes.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/context-utils.d.ts +41 -0
- package/node_modules/@opentelemetry/api/build/src/trace/context-utils.js +82 -0
- package/node_modules/@opentelemetry/api/build/src/trace/context-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.d.ts +22 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js +103 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.d.ts +15 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js +46 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/utils.d.ts +3 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js +24 -0
- package/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.d.ts +5 -0
- package/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js +27 -0
- package/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/link.d.ts +26 -0
- package/node_modules/@opentelemetry/api/build/src/trace/link.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/link.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span.d.ts +120 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span_context.d.ts +53 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span_context.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span_context.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span_kind.d.ts +27 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span_kind.js +46 -0
- package/node_modules/@opentelemetry/api/build/src/trace/span_kind.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.d.ts +17 -0
- package/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js +49 -0
- package/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/status.d.ts +25 -0
- package/node_modules/@opentelemetry/api/build/src/trace/status.js +23 -0
- package/node_modules/@opentelemetry/api/build/src/trace/status.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/trace_flags.d.ts +7 -0
- package/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js +26 -0
- package/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/trace_state.d.ts +38 -0
- package/node_modules/@opentelemetry/api/build/src/trace/trace_state.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/trace_state.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer.d.ts +71 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer_options.d.ts +10 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer_options.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer_options.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.d.ts +21 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.js +18 -0
- package/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/trace-api.d.ts +4 -0
- package/node_modules/@opentelemetry/api/build/src/trace-api.js +24 -0
- package/node_modules/@opentelemetry/api/build/src/trace-api.js.map +1 -0
- package/node_modules/@opentelemetry/api/build/src/version.d.ts +2 -0
- package/node_modules/@opentelemetry/api/build/src/version.js +21 -0
- package/node_modules/@opentelemetry/api/build/src/version.js.map +1 -0
- package/node_modules/@opentelemetry/api/package.json +113 -0
- package/node_modules/@standard-schema/spec/LICENSE +21 -0
- package/node_modules/@standard-schema/spec/README.md +198 -0
- package/node_modules/@standard-schema/spec/dist/index.cjs +18 -0
- package/node_modules/@standard-schema/spec/dist/index.d.cts +119 -0
- package/node_modules/@standard-schema/spec/dist/index.d.ts +119 -0
- package/node_modules/@standard-schema/spec/dist/index.js +0 -0
- package/node_modules/@standard-schema/spec/package.json +52 -0
- package/node_modules/@vercel/oidc/CHANGELOG.md +83 -0
- package/node_modules/@vercel/oidc/LICENSE +202 -0
- package/node_modules/@vercel/oidc/README.md +3 -0
- package/node_modules/@vercel/oidc/dist/auth-config.d.ts +30 -0
- package/node_modules/@vercel/oidc/dist/auth-config.js +84 -0
- package/node_modules/@vercel/oidc/dist/get-context.d.ts +6 -0
- package/node_modules/@vercel/oidc/dist/get-context.js +34 -0
- package/node_modules/@vercel/oidc/dist/get-vercel-oidc-token.d.ts +49 -0
- package/node_modules/@vercel/oidc/dist/get-vercel-oidc-token.js +80 -0
- package/node_modules/@vercel/oidc/dist/get-vercel-oidc-token.test.d.ts +1 -0
- package/node_modules/@vercel/oidc/dist/get-vercel-oidc-token.test.js +245 -0
- package/node_modules/@vercel/oidc/dist/index-browser.d.ts +3 -0
- package/node_modules/@vercel/oidc/dist/index-browser.js +38 -0
- package/node_modules/@vercel/oidc/dist/index-browser.test.d.ts +1 -0
- package/node_modules/@vercel/oidc/dist/index-browser.test.js +33 -0
- package/node_modules/@vercel/oidc/dist/index.d.ts +2 -0
- package/node_modules/@vercel/oidc/dist/index.js +33 -0
- package/node_modules/@vercel/oidc/dist/oauth.d.ts +17 -0
- package/node_modules/@vercel/oidc/dist/oauth.js +88 -0
- package/node_modules/@vercel/oidc/dist/token-error.d.ts +5 -0
- package/node_modules/@vercel/oidc/dist/token-error.js +40 -0
- package/node_modules/@vercel/oidc/dist/token-io.d.ts +2 -0
- package/node_modules/@vercel/oidc/dist/token-io.js +78 -0
- package/node_modules/@vercel/oidc/dist/token-util.d.ts +21 -0
- package/node_modules/@vercel/oidc/dist/token-util.js +198 -0
- package/node_modules/@vercel/oidc/dist/token-util.test.d.ts +1 -0
- package/node_modules/@vercel/oidc/dist/token-util.test.js +229 -0
- package/node_modules/@vercel/oidc/dist/token.d.ts +1 -0
- package/node_modules/@vercel/oidc/dist/token.js +53 -0
- package/node_modules/@vercel/oidc/dist/token.test.d.ts +1 -0
- package/node_modules/@vercel/oidc/dist/token.test.js +84 -0
- package/node_modules/@vercel/oidc/docs/README.md +104 -0
- package/node_modules/@vercel/oidc/package.json +52 -0
- package/node_modules/ai/CHANGELOG.md +7350 -0
- package/node_modules/ai/LICENSE +13 -0
- package/node_modules/ai/README.md +248 -0
- package/node_modules/ai/dist/index.d.mts +6429 -0
- package/node_modules/ai/dist/index.d.ts +6429 -0
- package/node_modules/ai/dist/index.js +13548 -0
- package/node_modules/ai/dist/index.js.map +1 -0
- package/node_modules/ai/dist/index.mjs +13514 -0
- package/node_modules/ai/dist/index.mjs.map +1 -0
- package/node_modules/ai/dist/internal/index.d.mts +314 -0
- package/node_modules/ai/dist/internal/index.d.ts +314 -0
- package/node_modules/ai/dist/internal/index.js +1316 -0
- package/node_modules/ai/dist/internal/index.js.map +1 -0
- package/node_modules/ai/dist/internal/index.mjs +1300 -0
- package/node_modules/ai/dist/internal/index.mjs.map +1 -0
- package/node_modules/ai/dist/test/index.d.mts +133 -0
- package/node_modules/ai/dist/test/index.d.ts +133 -0
- package/node_modules/ai/dist/test/index.js +275 -0
- package/node_modules/ai/dist/test/index.js.map +1 -0
- package/node_modules/ai/dist/test/index.mjs +245 -0
- package/node_modules/ai/dist/test/index.mjs.map +1 -0
- package/node_modules/ai/docs/00-introduction/index.mdx +76 -0
- package/node_modules/ai/docs/02-foundations/01-overview.mdx +43 -0
- package/node_modules/ai/docs/02-foundations/02-providers-and-models.mdx +156 -0
- package/node_modules/ai/docs/02-foundations/03-prompts.mdx +616 -0
- package/node_modules/ai/docs/02-foundations/04-tools.mdx +251 -0
- package/node_modules/ai/docs/02-foundations/05-streaming.mdx +62 -0
- package/node_modules/ai/docs/02-foundations/06-provider-options.mdx +337 -0
- package/node_modules/ai/docs/02-foundations/index.mdx +49 -0
- package/node_modules/ai/docs/02-getting-started/00-choosing-a-provider.mdx +110 -0
- package/node_modules/ai/docs/02-getting-started/01-navigating-the-library.mdx +85 -0
- package/node_modules/ai/docs/02-getting-started/02-nextjs-app-router.mdx +559 -0
- package/node_modules/ai/docs/02-getting-started/03-nextjs-pages-router.mdx +542 -0
- package/node_modules/ai/docs/02-getting-started/04-svelte.mdx +627 -0
- package/node_modules/ai/docs/02-getting-started/05-nuxt.mdx +566 -0
- package/node_modules/ai/docs/02-getting-started/06-nodejs.mdx +512 -0
- package/node_modules/ai/docs/02-getting-started/07-expo.mdx +766 -0
- package/node_modules/ai/docs/02-getting-started/08-tanstack-start.mdx +583 -0
- package/node_modules/ai/docs/02-getting-started/09-coding-agents.mdx +179 -0
- package/node_modules/ai/docs/02-getting-started/index.mdx +44 -0
- package/node_modules/ai/docs/03-agents/01-overview.mdx +96 -0
- package/node_modules/ai/docs/03-agents/02-building-agents.mdx +449 -0
- package/node_modules/ai/docs/03-agents/03-workflows.mdx +386 -0
- package/node_modules/ai/docs/03-agents/04-loop-control.mdx +394 -0
- package/node_modules/ai/docs/03-agents/05-configuring-call-options.mdx +286 -0
- package/node_modules/ai/docs/03-agents/06-memory.mdx +222 -0
- package/node_modules/ai/docs/03-agents/06-subagents.mdx +362 -0
- package/node_modules/ai/docs/03-agents/index.mdx +46 -0
- package/node_modules/ai/docs/03-ai-sdk-core/01-overview.mdx +31 -0
- package/node_modules/ai/docs/03-ai-sdk-core/05-generating-text.mdx +707 -0
- package/node_modules/ai/docs/03-ai-sdk-core/10-generating-structured-data.mdx +498 -0
- package/node_modules/ai/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +1144 -0
- package/node_modules/ai/docs/03-ai-sdk-core/16-mcp-tools.mdx +377 -0
- package/node_modules/ai/docs/03-ai-sdk-core/20-prompt-engineering.mdx +146 -0
- package/node_modules/ai/docs/03-ai-sdk-core/25-settings.mdx +198 -0
- package/node_modules/ai/docs/03-ai-sdk-core/30-embeddings.mdx +245 -0
- package/node_modules/ai/docs/03-ai-sdk-core/31-reranking.mdx +218 -0
- package/node_modules/ai/docs/03-ai-sdk-core/35-image-generation.mdx +342 -0
- package/node_modules/ai/docs/03-ai-sdk-core/36-transcription.mdx +227 -0
- package/node_modules/ai/docs/03-ai-sdk-core/37-speech.mdx +169 -0
- package/node_modules/ai/docs/03-ai-sdk-core/38-video-generation.mdx +366 -0
- package/node_modules/ai/docs/03-ai-sdk-core/40-middleware.mdx +485 -0
- package/node_modules/ai/docs/03-ai-sdk-core/45-provider-management.mdx +349 -0
- package/node_modules/ai/docs/03-ai-sdk-core/50-error-handling.mdx +149 -0
- package/node_modules/ai/docs/03-ai-sdk-core/55-testing.mdx +219 -0
- package/node_modules/ai/docs/03-ai-sdk-core/60-telemetry.mdx +391 -0
- package/node_modules/ai/docs/03-ai-sdk-core/65-devtools.mdx +107 -0
- package/node_modules/ai/docs/03-ai-sdk-core/65-event-listeners.mdx +915 -0
- package/node_modules/ai/docs/03-ai-sdk-core/index.mdx +93 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/01-overview.mdx +44 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/02-chatbot.mdx +1313 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/03-chatbot-message-persistence.mdx +535 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/03-chatbot-resume-streams.mdx +263 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/03-chatbot-tool-usage.mdx +682 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/04-generative-user-interfaces.mdx +389 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/05-completion.mdx +181 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/08-object-generation.mdx +344 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/20-streaming-data.mdx +397 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/21-error-handling.mdx +190 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/21-transport.mdx +174 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/24-reading-ui-message-streams.mdx +104 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/25-message-metadata.mdx +152 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/50-stream-protocol.mdx +477 -0
- package/node_modules/ai/docs/04-ai-sdk-ui/index.mdx +64 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/01-overview.mdx +45 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/02-streaming-react-components.mdx +209 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/03-generative-ui-state.mdx +279 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/03-saving-and-restoring-states.mdx +105 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/04-multistep-interfaces.mdx +282 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/05-streaming-values.mdx +157 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/06-loading-state.mdx +273 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/08-error-handling.mdx +94 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/09-authentication.mdx +42 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/10-migrating-to-ui.mdx +722 -0
- package/node_modules/ai/docs/05-ai-sdk-rsc/index.mdx +63 -0
- package/node_modules/ai/docs/06-advanced/01-prompt-engineering.mdx +96 -0
- package/node_modules/ai/docs/06-advanced/02-stopping-streams.mdx +184 -0
- package/node_modules/ai/docs/06-advanced/03-backpressure.mdx +173 -0
- package/node_modules/ai/docs/06-advanced/04-caching.mdx +169 -0
- package/node_modules/ai/docs/06-advanced/05-multiple-streamables.mdx +68 -0
- package/node_modules/ai/docs/06-advanced/06-rate-limiting.mdx +60 -0
- package/node_modules/ai/docs/06-advanced/07-rendering-ui-with-language-models.mdx +225 -0
- package/node_modules/ai/docs/06-advanced/08-model-as-router.mdx +120 -0
- package/node_modules/ai/docs/06-advanced/09-multistep-interfaces.mdx +115 -0
- package/node_modules/ai/docs/06-advanced/09-sequential-generations.mdx +55 -0
- package/node_modules/ai/docs/06-advanced/10-vercel-deployment-guide.mdx +117 -0
- package/node_modules/ai/docs/06-advanced/index.mdx +11 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +2715 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +3656 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/05-embed.mdx +197 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +191 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/06-rerank.mdx +309 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/10-generate-image.mdx +251 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/11-transcribe.mdx +152 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +221 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/13-generate-video.mdx +264 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/15-agent.mdx +235 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +973 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/17-create-agent-ui-stream.mdx +154 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/18-create-agent-ui-stream-response.mdx +173 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/18-pipe-agent-ui-stream-to-response.mdx +150 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/20-tool.mdx +209 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +223 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +416 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/24-mcp-stdio-transport.mdx +68 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/25-json-schema.mdx +94 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/26-zod-schema.mdx +109 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/27-valibot-schema.mdx +58 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/28-output.mdx +342 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +415 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +246 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/32-validate-ui-messages.mdx +101 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/33-safe-validate-ui-messages.mdx +113 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/40-provider-registry.mdx +198 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/42-custom-provider.mdx +157 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/50-cosine-similarity.mdx +52 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/60-wrap-language-model.mdx +59 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/61-wrap-image-model.mdx +64 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/65-language-model-v2-middleware.mdx +74 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/66-extract-reasoning-middleware.mdx +68 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/67-simulate-streaming-middleware.mdx +71 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/68-default-settings-middleware.mdx +80 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/69-add-tool-input-examples-middleware.mdx +155 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/70-extract-json-middleware.mdx +147 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/70-step-count-is.mdx +84 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/71-has-tool-call.mdx +120 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/75-simulate-readable-stream.mdx +94 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/80-smooth-stream.mdx +145 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/90-generate-id.mdx +30 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/91-create-id-generator.mdx +89 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/92-default-generated-file.mdx +68 -0
- package/node_modules/ai/docs/07-reference/01-ai-sdk-core/index.mdx +160 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/01-use-chat.mdx +493 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/02-use-completion.mdx +185 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/03-use-object.mdx +196 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/31-convert-to-model-messages.mdx +231 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/32-prune-messages.mdx +108 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/40-create-ui-message-stream.mdx +162 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/41-create-ui-message-stream-response.mdx +119 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/42-pipe-ui-message-stream-to-response.mdx +77 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/43-read-ui-message-stream.mdx +57 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/46-infer-ui-tools.mdx +99 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/47-infer-ui-tool.mdx +75 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/50-direct-chat-transport.mdx +333 -0
- package/node_modules/ai/docs/07-reference/02-ai-sdk-ui/index.mdx +89 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/01-stream-ui.mdx +767 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/02-create-ai.mdx +90 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/03-create-streamable-ui.mdx +91 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/04-create-streamable-value.mdx +78 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/05-read-streamable-value.mdx +79 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/06-get-ai-state.mdx +50 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/07-get-mutable-ai-state.mdx +70 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/08-use-ai-state.mdx +26 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/09-use-actions.mdx +42 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/10-use-ui-state.mdx +35 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/11-use-streamable-value.mdx +46 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/20-render.mdx +266 -0
- package/node_modules/ai/docs/07-reference/03-ai-sdk-rsc/index.mdx +67 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-api-call-error.mdx +31 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-download-error.mdx +28 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-empty-response-body-error.mdx +24 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-invalid-argument-error.mdx +26 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-invalid-data-content-error.mdx +26 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-invalid-message-role-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-invalid-prompt-error.mdx +47 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-invalid-response-data-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-approval-error.mdx +24 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-input-error.mdx +27 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-json-parse-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-load-api-key-error.mdx +24 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-load-setting-error.mdx +24 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-message-conversion-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-content-generated-error.mdx +24 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-image-generated-error.mdx +36 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-object-generated-error.mdx +43 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-output-generated-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-speech-generated-error.mdx +24 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-such-model-error.mdx +26 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-such-provider-error.mdx +28 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-such-tool-error.mdx +26 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-transcript-generated-error.mdx +24 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-no-video-generated-error.mdx +39 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-retry-error.mdx +27 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-too-many-embedding-values-for-call-error.mdx +27 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-tool-call-not-found-for-approval-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-tool-call-repair-error.mdx +28 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-type-validation-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-ui-message-stream-error.mdx +67 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/ai-unsupported-functionality-error.mdx +25 -0
- package/node_modules/ai/docs/07-reference/05-ai-sdk-errors/index.mdx +39 -0
- package/node_modules/ai/docs/07-reference/index.mdx +28 -0
- package/node_modules/ai/docs/08-migration-guides/00-versioning.mdx +46 -0
- package/node_modules/ai/docs/08-migration-guides/24-migration-guide-6-0.mdx +823 -0
- package/node_modules/ai/docs/08-migration-guides/25-migration-guide-5-0-data.mdx +882 -0
- package/node_modules/ai/docs/08-migration-guides/26-migration-guide-5-0.mdx +3427 -0
- package/node_modules/ai/docs/08-migration-guides/27-migration-guide-4-2.mdx +99 -0
- package/node_modules/ai/docs/08-migration-guides/28-migration-guide-4-1.mdx +14 -0
- package/node_modules/ai/docs/08-migration-guides/29-migration-guide-4-0.mdx +1157 -0
- package/node_modules/ai/docs/08-migration-guides/36-migration-guide-3-4.mdx +14 -0
- package/node_modules/ai/docs/08-migration-guides/37-migration-guide-3-3.mdx +64 -0
- package/node_modules/ai/docs/08-migration-guides/38-migration-guide-3-2.mdx +46 -0
- package/node_modules/ai/docs/08-migration-guides/39-migration-guide-3-1.mdx +168 -0
- package/node_modules/ai/docs/08-migration-guides/index.mdx +22 -0
- package/node_modules/ai/docs/09-troubleshooting/01-azure-stream-slow.mdx +33 -0
- package/node_modules/ai/docs/09-troubleshooting/03-server-actions-in-client-components.mdx +40 -0
- package/node_modules/ai/docs/09-troubleshooting/04-strange-stream-output.mdx +36 -0
- package/node_modules/ai/docs/09-troubleshooting/05-streamable-ui-errors.mdx +16 -0
- package/node_modules/ai/docs/09-troubleshooting/05-tool-invocation-missing-result.mdx +106 -0
- package/node_modules/ai/docs/09-troubleshooting/06-streaming-not-working-when-deployed.mdx +31 -0
- package/node_modules/ai/docs/09-troubleshooting/06-streaming-not-working-when-proxied.mdx +31 -0
- package/node_modules/ai/docs/09-troubleshooting/06-timeout-on-vercel.mdx +60 -0
- package/node_modules/ai/docs/09-troubleshooting/07-unclosed-streams.mdx +34 -0
- package/node_modules/ai/docs/09-troubleshooting/08-use-chat-failed-to-parse-stream.mdx +26 -0
- package/node_modules/ai/docs/09-troubleshooting/09-client-stream-error.mdx +25 -0
- package/node_modules/ai/docs/09-troubleshooting/10-use-chat-tools-no-response.mdx +32 -0
- package/node_modules/ai/docs/09-troubleshooting/11-use-chat-custom-request-options.mdx +149 -0
- package/node_modules/ai/docs/09-troubleshooting/12-typescript-performance-zod.mdx +46 -0
- package/node_modules/ai/docs/09-troubleshooting/12-use-chat-an-error-occurred.mdx +59 -0
- package/node_modules/ai/docs/09-troubleshooting/13-repeated-assistant-messages.mdx +73 -0
- package/node_modules/ai/docs/09-troubleshooting/14-stream-abort-handling.mdx +73 -0
- package/node_modules/ai/docs/09-troubleshooting/14-tool-calling-with-structured-outputs.mdx +48 -0
- package/node_modules/ai/docs/09-troubleshooting/15-abort-breaks-resumable-streams.mdx +55 -0
- package/node_modules/ai/docs/09-troubleshooting/15-stream-text-not-working.mdx +33 -0
- package/node_modules/ai/docs/09-troubleshooting/16-streaming-status-delay.mdx +63 -0
- package/node_modules/ai/docs/09-troubleshooting/17-use-chat-stale-body-data.mdx +141 -0
- package/node_modules/ai/docs/09-troubleshooting/18-ontoolcall-type-narrowing.mdx +66 -0
- package/node_modules/ai/docs/09-troubleshooting/19-unsupported-model-version.mdx +50 -0
- package/node_modules/ai/docs/09-troubleshooting/20-no-object-generated-content-filter.mdx +76 -0
- package/node_modules/ai/docs/09-troubleshooting/21-missing-tool-results-error.mdx +82 -0
- package/node_modules/ai/docs/09-troubleshooting/30-model-is-not-assignable-to-type.mdx +21 -0
- package/node_modules/ai/docs/09-troubleshooting/40-typescript-cannot-find-namespace-jsx.mdx +24 -0
- package/node_modules/ai/docs/09-troubleshooting/50-react-maximum-update-depth-exceeded.mdx +39 -0
- package/node_modules/ai/docs/09-troubleshooting/60-jest-cannot-find-module-ai-rsc.mdx +22 -0
- package/node_modules/ai/docs/09-troubleshooting/70-high-memory-usage-with-images.mdx +108 -0
- package/node_modules/ai/docs/09-troubleshooting/index.mdx +11 -0
- package/node_modules/ai/internal.d.ts +1 -0
- package/node_modules/ai/package.json +115 -0
- package/node_modules/ai/src/agent/agent.ts +156 -0
- package/node_modules/ai/src/agent/create-agent-ui-stream-response.ts +61 -0
- package/node_modules/ai/src/agent/create-agent-ui-stream.ts +84 -0
- package/node_modules/ai/src/agent/index.ts +37 -0
- package/node_modules/ai/src/agent/infer-agent-tools.ts +7 -0
- package/node_modules/ai/src/agent/infer-agent-ui-message.ts +11 -0
- package/node_modules/ai/src/agent/pipe-agent-ui-stream-to-response.ts +64 -0
- package/node_modules/ai/src/agent/tool-loop-agent-settings.ts +244 -0
- package/node_modules/ai/src/agent/tool-loop-agent.ts +206 -0
- package/node_modules/ai/src/embed/embed-many-result.ts +53 -0
- package/node_modules/ai/src/embed/embed-many.ts +386 -0
- package/node_modules/ai/src/embed/embed-result.ts +50 -0
- package/node_modules/ai/src/embed/embed.ts +217 -0
- package/node_modules/ai/src/embed/index.ts +4 -0
- package/node_modules/ai/src/error/index.ts +37 -0
- package/node_modules/ai/src/error/invalid-argument-error.ts +34 -0
- package/node_modules/ai/src/error/invalid-stream-part-error.ts +28 -0
- package/node_modules/ai/src/error/invalid-tool-approval-error.ts +26 -0
- package/node_modules/ai/src/error/invalid-tool-input-error.ts +33 -0
- package/node_modules/ai/src/error/missing-tool-result-error.ts +28 -0
- package/node_modules/ai/src/error/no-image-generated-error.ts +39 -0
- package/node_modules/ai/src/error/no-object-generated-error.ts +70 -0
- package/node_modules/ai/src/error/no-output-generated-error.ts +26 -0
- package/node_modules/ai/src/error/no-speech-generated-error.ts +28 -0
- package/node_modules/ai/src/error/no-such-tool-error.ts +35 -0
- package/node_modules/ai/src/error/no-transcript-generated-error.ts +30 -0
- package/node_modules/ai/src/error/no-video-generated-error.ts +57 -0
- package/node_modules/ai/src/error/tool-call-not-found-for-approval-error.ts +32 -0
- package/node_modules/ai/src/error/tool-call-repair-error.ts +30 -0
- package/node_modules/ai/src/error/ui-message-stream-error.ts +48 -0
- package/node_modules/ai/src/error/unsupported-model-version-error.ts +23 -0
- package/node_modules/ai/src/error/verify-no-object-generated-error.ts +27 -0
- package/node_modules/ai/src/generate-image/generate-image-result.ts +42 -0
- package/node_modules/ai/src/generate-image/generate-image.ts +361 -0
- package/node_modules/ai/src/generate-image/index.ts +18 -0
- package/node_modules/ai/src/generate-object/generate-object-result.ts +67 -0
- package/node_modules/ai/src/generate-object/generate-object.ts +517 -0
- package/node_modules/ai/src/generate-object/index.ts +9 -0
- package/node_modules/ai/src/generate-object/inject-json-instruction.ts +30 -0
- package/node_modules/ai/src/generate-object/output-strategy.ts +415 -0
- package/node_modules/ai/src/generate-object/parse-and-validate-object-result.ts +111 -0
- package/node_modules/ai/src/generate-object/repair-text.ts +12 -0
- package/node_modules/ai/src/generate-object/stream-object-result.ts +120 -0
- package/node_modules/ai/src/generate-object/stream-object.ts +985 -0
- package/node_modules/ai/src/generate-object/validate-object-generation-input.ts +144 -0
- package/node_modules/ai/src/generate-speech/generate-speech-result.ts +30 -0
- package/node_modules/ai/src/generate-speech/generate-speech.ts +191 -0
- package/node_modules/ai/src/generate-speech/generated-audio-file.ts +65 -0
- package/node_modules/ai/src/generate-speech/index.ts +3 -0
- package/node_modules/ai/src/generate-text/callback-events.ts +332 -0
- package/node_modules/ai/src/generate-text/collect-tool-approvals.ts +116 -0
- package/node_modules/ai/src/generate-text/content-part.ts +25 -0
- package/node_modules/ai/src/generate-text/execute-tool-call.ts +197 -0
- package/node_modules/ai/src/generate-text/extract-reasoning-content.ts +17 -0
- package/node_modules/ai/src/generate-text/extract-text-content.ts +15 -0
- package/node_modules/ai/src/generate-text/generate-text-result.ts +168 -0
- package/node_modules/ai/src/generate-text/generate-text.ts +1535 -0
- package/node_modules/ai/src/generate-text/generated-file.ts +70 -0
- package/node_modules/ai/src/generate-text/index.ts +74 -0
- package/node_modules/ai/src/generate-text/is-approval-needed.ts +29 -0
- package/node_modules/ai/src/generate-text/output-utils.ts +23 -0
- package/node_modules/ai/src/generate-text/output.ts +590 -0
- package/node_modules/ai/src/generate-text/parse-tool-call.ts +188 -0
- package/node_modules/ai/src/generate-text/prepare-step.ts +103 -0
- package/node_modules/ai/src/generate-text/prune-messages.ts +167 -0
- package/node_modules/ai/src/generate-text/reasoning-output.ts +20 -0
- package/node_modules/ai/src/generate-text/reasoning.ts +8 -0
- package/node_modules/ai/src/generate-text/response-message.ts +10 -0
- package/node_modules/ai/src/generate-text/run-tools-transformation.ts +442 -0
- package/node_modules/ai/src/generate-text/smooth-stream.ts +162 -0
- package/node_modules/ai/src/generate-text/step-result.ts +290 -0
- package/node_modules/ai/src/generate-text/stop-condition.ts +29 -0
- package/node_modules/ai/src/generate-text/stream-text-result.ts +463 -0
- package/node_modules/ai/src/generate-text/stream-text.ts +2807 -0
- package/node_modules/ai/src/generate-text/to-response-messages.ts +163 -0
- package/node_modules/ai/src/generate-text/tool-approval-request-output.ts +21 -0
- package/node_modules/ai/src/generate-text/tool-call-repair-function.ts +27 -0
- package/node_modules/ai/src/generate-text/tool-call.ts +47 -0
- package/node_modules/ai/src/generate-text/tool-error.ts +34 -0
- package/node_modules/ai/src/generate-text/tool-output-denied.ts +21 -0
- package/node_modules/ai/src/generate-text/tool-output.ts +7 -0
- package/node_modules/ai/src/generate-text/tool-result.ts +36 -0
- package/node_modules/ai/src/generate-text/tool-set.ts +14 -0
- package/node_modules/ai/src/generate-video/generate-video-result.ts +36 -0
- package/node_modules/ai/src/generate-video/generate-video.ts +402 -0
- package/node_modules/ai/src/generate-video/index.ts +3 -0
- package/node_modules/ai/src/global.ts +36 -0
- package/node_modules/ai/src/index.ts +49 -0
- package/node_modules/ai/src/logger/index.ts +6 -0
- package/node_modules/ai/src/logger/log-warnings.ts +140 -0
- package/node_modules/ai/src/middleware/add-tool-input-examples-middleware.ts +90 -0
- package/node_modules/ai/src/middleware/default-embedding-settings-middleware.ts +22 -0
- package/node_modules/ai/src/middleware/default-settings-middleware.ts +33 -0
- package/node_modules/ai/src/middleware/extract-json-middleware.ts +197 -0
- package/node_modules/ai/src/middleware/extract-reasoning-middleware.ts +249 -0
- package/node_modules/ai/src/middleware/index.ts +10 -0
- package/node_modules/ai/src/middleware/simulate-streaming-middleware.ts +79 -0
- package/node_modules/ai/src/middleware/wrap-embedding-model.ts +86 -0
- package/node_modules/ai/src/middleware/wrap-image-model.ts +85 -0
- package/node_modules/ai/src/middleware/wrap-language-model.ts +104 -0
- package/node_modules/ai/src/middleware/wrap-provider.ts +51 -0
- package/node_modules/ai/src/model/as-embedding-model-v3.ts +24 -0
- package/node_modules/ai/src/model/as-image-model-v3.ts +24 -0
- package/node_modules/ai/src/model/as-language-model-v3.ts +103 -0
- package/node_modules/ai/src/model/as-provider-v3.ts +36 -0
- package/node_modules/ai/src/model/as-speech-model-v3.ts +24 -0
- package/node_modules/ai/src/model/as-transcription-model-v3.ts +24 -0
- package/node_modules/ai/src/model/resolve-model.ts +159 -0
- package/node_modules/ai/src/prompt/call-settings.ts +148 -0
- package/node_modules/ai/src/prompt/content-part.ts +215 -0
- package/node_modules/ai/src/prompt/convert-to-language-model-prompt.ts +526 -0
- package/node_modules/ai/src/prompt/create-tool-model-output.ts +34 -0
- package/node_modules/ai/src/prompt/data-content.ts +134 -0
- package/node_modules/ai/src/prompt/index.ts +27 -0
- package/node_modules/ai/src/prompt/invalid-data-content-error.ts +29 -0
- package/node_modules/ai/src/prompt/invalid-message-role-error.ts +27 -0
- package/node_modules/ai/src/prompt/message-conversion-error.ts +28 -0
- package/node_modules/ai/src/prompt/message.ts +68 -0
- package/node_modules/ai/src/prompt/prepare-call-settings.ts +108 -0
- package/node_modules/ai/src/prompt/prepare-tools-and-tool-choice.ts +86 -0
- package/node_modules/ai/src/prompt/prompt.ts +43 -0
- package/node_modules/ai/src/prompt/split-data-url.ts +17 -0
- package/node_modules/ai/src/prompt/standardize-prompt.ts +99 -0
- package/node_modules/ai/src/prompt/wrap-gateway-error.ts +29 -0
- package/node_modules/ai/src/registry/custom-provider.ts +176 -0
- package/node_modules/ai/src/registry/index.ts +7 -0
- package/node_modules/ai/src/registry/no-such-provider-error.ts +41 -0
- package/node_modules/ai/src/registry/provider-registry.ts +328 -0
- package/node_modules/ai/src/rerank/index.ts +2 -0
- package/node_modules/ai/src/rerank/rerank-result.ts +70 -0
- package/node_modules/ai/src/rerank/rerank.ts +239 -0
- package/node_modules/ai/src/telemetry/assemble-operation-name.ts +21 -0
- package/node_modules/ai/src/telemetry/get-base-telemetry-attributes.ts +53 -0
- package/node_modules/ai/src/telemetry/get-global-telemetry-integration.ts +85 -0
- package/node_modules/ai/src/telemetry/get-tracer.ts +20 -0
- package/node_modules/ai/src/telemetry/index.ts +4 -0
- package/node_modules/ai/src/telemetry/noop-tracer.ts +69 -0
- package/node_modules/ai/src/telemetry/record-span.ts +75 -0
- package/node_modules/ai/src/telemetry/select-telemetry-attributes.ts +78 -0
- package/node_modules/ai/src/telemetry/stringify-for-telemetry.ts +33 -0
- package/node_modules/ai/src/telemetry/telemetry-integration-registry.ts +17 -0
- package/node_modules/ai/src/telemetry/telemetry-integration.ts +24 -0
- package/node_modules/ai/src/telemetry/telemetry-settings.ts +53 -0
- package/node_modules/ai/src/test/mock-embedding-model-v2.ts +35 -0
- package/node_modules/ai/src/test/mock-embedding-model-v3.ts +48 -0
- package/node_modules/ai/src/test/mock-image-model-v2.ts +28 -0
- package/node_modules/ai/src/test/mock-image-model-v3.ts +28 -0
- package/node_modules/ai/src/test/mock-language-model-v2.ts +72 -0
- package/node_modules/ai/src/test/mock-language-model-v3.ts +77 -0
- package/node_modules/ai/src/test/mock-provider-v2.ts +68 -0
- package/node_modules/ai/src/test/mock-provider-v3.ts +80 -0
- package/node_modules/ai/src/test/mock-reranking-model-v3.ts +25 -0
- package/node_modules/ai/src/test/mock-server-response.ts +69 -0
- package/node_modules/ai/src/test/mock-speech-model-v2.ts +24 -0
- package/node_modules/ai/src/test/mock-speech-model-v3.ts +24 -0
- package/node_modules/ai/src/test/mock-tracer.ts +156 -0
- package/node_modules/ai/src/test/mock-transcription-model-v2.ts +24 -0
- package/node_modules/ai/src/test/mock-transcription-model-v3.ts +24 -0
- package/node_modules/ai/src/test/mock-values.ts +4 -0
- package/node_modules/ai/src/test/mock-video-model-v3.ts +28 -0
- package/node_modules/ai/src/test/not-implemented.ts +3 -0
- package/node_modules/ai/src/text-stream/create-text-stream-response.ts +30 -0
- package/node_modules/ai/src/text-stream/index.ts +2 -0
- package/node_modules/ai/src/text-stream/pipe-text-stream-to-response.ts +38 -0
- package/node_modules/ai/src/transcribe/index.ts +2 -0
- package/node_modules/ai/src/transcribe/transcribe-result.ts +60 -0
- package/node_modules/ai/src/transcribe/transcribe.ts +187 -0
- package/node_modules/ai/src/types/embedding-model-middleware.ts +3 -0
- package/node_modules/ai/src/types/embedding-model.ts +18 -0
- package/node_modules/ai/src/types/image-model-middleware.ts +3 -0
- package/node_modules/ai/src/types/image-model-response-metadata.ts +16 -0
- package/node_modules/ai/src/types/image-model.ts +19 -0
- package/node_modules/ai/src/types/index.ts +29 -0
- package/node_modules/ai/src/types/json-value.ts +15 -0
- package/node_modules/ai/src/types/language-model-middleware.ts +3 -0
- package/node_modules/ai/src/types/language-model-request-metadata.ts +6 -0
- package/node_modules/ai/src/types/language-model-response-metadata.ts +21 -0
- package/node_modules/ai/src/types/language-model.ts +104 -0
- package/node_modules/ai/src/types/provider-metadata.ts +16 -0
- package/node_modules/ai/src/types/provider.ts +55 -0
- package/node_modules/ai/src/types/reranking-model.ts +6 -0
- package/node_modules/ai/src/types/speech-model-response-metadata.ts +21 -0
- package/node_modules/ai/src/types/speech-model.ts +6 -0
- package/node_modules/ai/src/types/transcription-model-response-metadata.ts +16 -0
- package/node_modules/ai/src/types/transcription-model.ts +9 -0
- package/node_modules/ai/src/types/usage.ts +200 -0
- package/node_modules/ai/src/types/video-model-response-metadata.ts +28 -0
- package/node_modules/ai/src/types/video-model.ts +11 -0
- package/node_modules/ai/src/types/warning.ts +7 -0
- package/node_modules/ai/src/ui/call-completion-api.ts +157 -0
- package/node_modules/ai/src/ui/chat-transport.ts +83 -0
- package/node_modules/ai/src/ui/chat.ts +751 -0
- package/node_modules/ai/src/ui/convert-file-list-to-file-ui-parts.ts +36 -0
- package/node_modules/ai/src/ui/convert-to-model-messages.ts +376 -0
- package/node_modules/ai/src/ui/default-chat-transport.ts +36 -0
- package/node_modules/ai/src/ui/direct-chat-transport.ts +118 -0
- package/node_modules/ai/src/ui/http-chat-transport.ts +284 -0
- package/node_modules/ai/src/ui/index.ts +71 -0
- package/node_modules/ai/src/ui/last-assistant-message-is-complete-with-approval-responses.ts +44 -0
- package/node_modules/ai/src/ui/last-assistant-message-is-complete-with-tool-calls.ts +39 -0
- package/node_modules/ai/src/ui/process-text-stream.ts +16 -0
- package/node_modules/ai/src/ui/process-ui-message-stream.ts +793 -0
- package/node_modules/ai/src/ui/text-stream-chat-transport.ts +23 -0
- package/node_modules/ai/src/ui/transform-text-to-ui-message-stream.ts +27 -0
- package/node_modules/ai/src/ui/ui-messages.ts +536 -0
- package/node_modules/ai/src/ui/use-completion.ts +84 -0
- package/node_modules/ai/src/ui/validate-ui-messages.ts +506 -0
- package/node_modules/ai/src/ui-message-stream/create-ui-message-stream-response.ts +44 -0
- package/node_modules/ai/src/ui-message-stream/create-ui-message-stream.ts +145 -0
- package/node_modules/ai/src/ui-message-stream/get-response-ui-message-id.ts +35 -0
- package/node_modules/ai/src/ui-message-stream/handle-ui-message-stream-finish.ts +170 -0
- package/node_modules/ai/src/ui-message-stream/index.ts +14 -0
- package/node_modules/ai/src/ui-message-stream/json-to-sse-transform-stream.ts +17 -0
- package/node_modules/ai/src/ui-message-stream/pipe-ui-message-stream-to-response.ts +51 -0
- package/node_modules/ai/src/ui-message-stream/read-ui-message-stream.ts +87 -0
- package/node_modules/ai/src/ui-message-stream/ui-message-chunks.ts +346 -0
- package/node_modules/ai/src/ui-message-stream/ui-message-stream-headers.ts +7 -0
- package/node_modules/ai/src/ui-message-stream/ui-message-stream-on-finish-callback.ts +32 -0
- package/node_modules/ai/src/ui-message-stream/ui-message-stream-on-step-finish-callback.ts +25 -0
- package/node_modules/ai/src/ui-message-stream/ui-message-stream-response-init.ts +14 -0
- package/node_modules/ai/src/ui-message-stream/ui-message-stream-writer.ts +24 -0
- package/node_modules/ai/src/util/as-array.ts +3 -0
- package/node_modules/ai/src/util/async-iterable-stream.ts +94 -0
- package/node_modules/ai/src/util/consume-stream.ts +31 -0
- package/node_modules/ai/src/util/cosine-similarity.ts +46 -0
- package/node_modules/ai/src/util/create-resolvable-promise.ts +30 -0
- package/node_modules/ai/src/util/create-stitchable-stream.ts +112 -0
- package/node_modules/ai/src/util/data-url.ts +17 -0
- package/node_modules/ai/src/util/deep-partial.ts +84 -0
- package/node_modules/ai/src/util/detect-media-type.ts +226 -0
- package/node_modules/ai/src/util/download/create-download.ts +13 -0
- package/node_modules/ai/src/util/download/download-function.ts +45 -0
- package/node_modules/ai/src/util/download/download.ts +69 -0
- package/node_modules/ai/src/util/error-handler.ts +1 -0
- package/node_modules/ai/src/util/fix-json.ts +401 -0
- package/node_modules/ai/src/util/get-potential-start-index.ts +39 -0
- package/node_modules/ai/src/util/index.ts +12 -0
- package/node_modules/ai/src/util/is-deep-equal-data.ts +48 -0
- package/node_modules/ai/src/util/is-non-empty-object.ts +5 -0
- package/node_modules/ai/src/util/job.ts +1 -0
- package/node_modules/ai/src/util/log-v2-compatibility-warning.ts +21 -0
- package/node_modules/ai/src/util/merge-abort-signals.ts +43 -0
- package/node_modules/ai/src/util/merge-objects.ts +79 -0
- package/node_modules/ai/src/util/notify.ts +22 -0
- package/node_modules/ai/src/util/now.ts +4 -0
- package/node_modules/ai/src/util/parse-partial-json.ts +30 -0
- package/node_modules/ai/src/util/prepare-headers.ts +14 -0
- package/node_modules/ai/src/util/prepare-retries.ts +47 -0
- package/node_modules/ai/src/util/retry-error.ts +41 -0
- package/node_modules/ai/src/util/retry-with-exponential-backoff.ts +154 -0
- package/node_modules/ai/src/util/serial-job-executor.ts +36 -0
- package/node_modules/ai/src/util/simulate-readable-stream.ts +39 -0
- package/node_modules/ai/src/util/split-array.ts +20 -0
- package/node_modules/ai/src/util/value-of.ts +65 -0
- package/node_modules/ai/src/util/write-to-server-response.ts +49 -0
- package/node_modules/ai/src/version.ts +5 -0
- package/node_modules/ai/test.d.ts +1 -0
- package/node_modules/ansi-regex/index.d.ts +37 -0
- package/node_modules/ansi-regex/index.js +10 -0
- package/node_modules/ansi-regex/license +9 -0
- package/node_modules/ansi-regex/package.json +55 -0
- package/node_modules/ansi-regex/readme.md +78 -0
- package/node_modules/ansi-styles/index.d.ts +345 -0
- package/node_modules/ansi-styles/index.js +163 -0
- package/node_modules/ansi-styles/license +9 -0
- package/node_modules/ansi-styles/package.json +56 -0
- package/node_modules/ansi-styles/readme.md +152 -0
- package/node_modules/cliui/CHANGELOG.md +139 -0
- package/node_modules/cliui/LICENSE.txt +14 -0
- package/node_modules/cliui/README.md +141 -0
- package/node_modules/cliui/build/index.cjs +302 -0
- package/node_modules/cliui/build/index.d.cts +43 -0
- package/node_modules/cliui/build/lib/index.js +287 -0
- package/node_modules/cliui/build/lib/string-utils.js +27 -0
- package/node_modules/cliui/index.mjs +13 -0
- package/node_modules/cliui/package.json +83 -0
- package/node_modules/color-convert/CHANGELOG.md +54 -0
- package/node_modules/color-convert/LICENSE +21 -0
- package/node_modules/color-convert/README.md +68 -0
- package/node_modules/color-convert/conversions.js +839 -0
- package/node_modules/color-convert/index.js +81 -0
- package/node_modules/color-convert/package.json +48 -0
- package/node_modules/color-convert/route.js +97 -0
- package/node_modules/color-name/LICENSE +8 -0
- package/node_modules/color-name/README.md +11 -0
- package/node_modules/color-name/index.js +152 -0
- package/node_modules/color-name/package.json +28 -0
- package/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
- package/node_modules/emoji-regex/README.md +73 -0
- package/node_modules/emoji-regex/es2015/index.js +6 -0
- package/node_modules/emoji-regex/es2015/text.js +6 -0
- package/node_modules/emoji-regex/index.d.ts +23 -0
- package/node_modules/emoji-regex/index.js +6 -0
- package/node_modules/emoji-regex/package.json +50 -0
- package/node_modules/emoji-regex/text.js +6 -0
- package/node_modules/escalade/dist/index.js +22 -0
- package/node_modules/escalade/dist/index.mjs +22 -0
- package/node_modules/escalade/index.d.mts +11 -0
- package/node_modules/escalade/index.d.ts +15 -0
- package/node_modules/escalade/license +9 -0
- package/node_modules/escalade/package.json +74 -0
- package/node_modules/escalade/readme.md +211 -0
- package/node_modules/escalade/sync/index.d.mts +9 -0
- package/node_modules/escalade/sync/index.d.ts +13 -0
- package/node_modules/escalade/sync/index.js +18 -0
- package/node_modules/escalade/sync/index.mjs +18 -0
- package/node_modules/eventsource-parser/LICENSE +21 -0
- package/node_modules/eventsource-parser/README.md +126 -0
- package/node_modules/eventsource-parser/dist/index.cjs +166 -0
- package/node_modules/eventsource-parser/dist/index.cjs.map +1 -0
- package/node_modules/eventsource-parser/dist/index.d.cts +146 -0
- package/node_modules/eventsource-parser/dist/index.d.ts +146 -0
- package/node_modules/eventsource-parser/dist/index.js +166 -0
- package/node_modules/eventsource-parser/dist/index.js.map +1 -0
- package/node_modules/eventsource-parser/dist/stream.cjs +28 -0
- package/node_modules/eventsource-parser/dist/stream.cjs.map +1 -0
- package/node_modules/eventsource-parser/dist/stream.d.cts +121 -0
- package/node_modules/eventsource-parser/dist/stream.d.ts +121 -0
- package/node_modules/eventsource-parser/dist/stream.js +29 -0
- package/node_modules/eventsource-parser/dist/stream.js.map +1 -0
- package/node_modules/eventsource-parser/package.json +92 -0
- package/node_modules/eventsource-parser/src/errors.ts +44 -0
- package/node_modules/eventsource-parser/src/index.ts +3 -0
- package/node_modules/eventsource-parser/src/parse.ts +395 -0
- package/node_modules/eventsource-parser/src/stream.ts +88 -0
- package/node_modules/eventsource-parser/src/types.ts +97 -0
- package/node_modules/eventsource-parser/stream.js +2 -0
- package/node_modules/get-caller-file/LICENSE.md +6 -0
- package/node_modules/get-caller-file/README.md +41 -0
- package/node_modules/get-caller-file/index.d.ts +2 -0
- package/node_modules/get-caller-file/index.js +22 -0
- package/node_modules/get-caller-file/index.js.map +1 -0
- package/node_modules/get-caller-file/package.json +42 -0
- package/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
- package/node_modules/is-fullwidth-code-point/index.js +50 -0
- package/node_modules/is-fullwidth-code-point/license +9 -0
- package/node_modules/is-fullwidth-code-point/package.json +42 -0
- package/node_modules/is-fullwidth-code-point/readme.md +39 -0
- package/node_modules/json-schema/LICENSE +195 -0
- package/node_modules/json-schema/README.md +3 -0
- package/node_modules/json-schema/lib/links.js +65 -0
- package/node_modules/json-schema/lib/validate.js +271 -0
- package/node_modules/json-schema/package.json +24 -0
- package/node_modules/openai-oauth/LICENSE +661 -0
- package/node_modules/openai-oauth/README.md +76 -0
- package/node_modules/openai-oauth/dist/chunk-2AENSHRT.js +22847 -0
- package/node_modules/openai-oauth/dist/cli.d.ts +1 -0
- package/node_modules/openai-oauth/dist/cli.js +361 -0
- package/node_modules/openai-oauth/dist/index.d.ts +155 -0
- package/node_modules/openai-oauth/dist/index.js +10 -0
- package/node_modules/openai-oauth/package.json +47 -0
- package/node_modules/require-directory/.jshintrc +67 -0
- package/node_modules/require-directory/.npmignore +1 -0
- package/node_modules/require-directory/.travis.yml +3 -0
- package/node_modules/require-directory/LICENSE +22 -0
- package/node_modules/require-directory/README.markdown +184 -0
- package/node_modules/require-directory/index.js +86 -0
- package/node_modules/require-directory/package.json +40 -0
- package/node_modules/string-width/index.d.ts +29 -0
- package/node_modules/string-width/index.js +47 -0
- package/node_modules/string-width/license +9 -0
- package/node_modules/string-width/package.json +56 -0
- package/node_modules/string-width/readme.md +50 -0
- package/node_modules/strip-ansi/index.d.ts +17 -0
- package/node_modules/strip-ansi/index.js +4 -0
- package/node_modules/strip-ansi/license +9 -0
- package/node_modules/strip-ansi/package.json +54 -0
- package/node_modules/strip-ansi/readme.md +46 -0
- package/node_modules/wrap-ansi/index.js +216 -0
- package/node_modules/wrap-ansi/license +9 -0
- package/node_modules/wrap-ansi/package.json +62 -0
- package/node_modules/wrap-ansi/readme.md +91 -0
- package/node_modules/y18n/CHANGELOG.md +100 -0
- package/node_modules/y18n/LICENSE +13 -0
- package/node_modules/y18n/README.md +127 -0
- package/node_modules/y18n/build/index.cjs +203 -0
- package/node_modules/y18n/build/lib/cjs.js +6 -0
- package/node_modules/y18n/build/lib/index.js +174 -0
- package/node_modules/y18n/build/lib/platform-shims/node.js +19 -0
- package/node_modules/y18n/index.mjs +8 -0
- package/node_modules/y18n/package.json +70 -0
- package/node_modules/yargs/LICENSE +21 -0
- package/node_modules/yargs/README.md +204 -0
- package/node_modules/yargs/browser.d.ts +5 -0
- package/node_modules/yargs/browser.mjs +7 -0
- package/node_modules/yargs/build/index.cjs +1 -0
- package/node_modules/yargs/build/lib/argsert.js +62 -0
- package/node_modules/yargs/build/lib/command.js +449 -0
- package/node_modules/yargs/build/lib/completion-templates.js +48 -0
- package/node_modules/yargs/build/lib/completion.js +243 -0
- package/node_modules/yargs/build/lib/middleware.js +88 -0
- package/node_modules/yargs/build/lib/parse-command.js +32 -0
- package/node_modules/yargs/build/lib/typings/common-types.js +9 -0
- package/node_modules/yargs/build/lib/typings/yargs-parser-types.js +1 -0
- package/node_modules/yargs/build/lib/usage.js +584 -0
- package/node_modules/yargs/build/lib/utils/apply-extends.js +59 -0
- package/node_modules/yargs/build/lib/utils/is-promise.js +5 -0
- package/node_modules/yargs/build/lib/utils/levenshtein.js +34 -0
- package/node_modules/yargs/build/lib/utils/maybe-async-result.js +17 -0
- package/node_modules/yargs/build/lib/utils/obj-filter.js +10 -0
- package/node_modules/yargs/build/lib/utils/process-argv.js +17 -0
- package/node_modules/yargs/build/lib/utils/set-blocking.js +12 -0
- package/node_modules/yargs/build/lib/utils/which-module.js +10 -0
- package/node_modules/yargs/build/lib/validation.js +305 -0
- package/node_modules/yargs/build/lib/yargs-factory.js +1512 -0
- package/node_modules/yargs/build/lib/yerror.js +9 -0
- package/node_modules/yargs/helpers/helpers.mjs +10 -0
- package/node_modules/yargs/helpers/index.js +14 -0
- package/node_modules/yargs/helpers/package.json +3 -0
- package/node_modules/yargs/index.cjs +53 -0
- package/node_modules/yargs/index.mjs +8 -0
- package/node_modules/yargs/lib/platform-shims/browser.mjs +95 -0
- package/node_modules/yargs/lib/platform-shims/esm.mjs +73 -0
- package/node_modules/yargs/locales/be.json +46 -0
- package/node_modules/yargs/locales/cs.json +51 -0
- package/node_modules/yargs/locales/de.json +46 -0
- package/node_modules/yargs/locales/en.json +55 -0
- package/node_modules/yargs/locales/es.json +46 -0
- package/node_modules/yargs/locales/fi.json +49 -0
- package/node_modules/yargs/locales/fr.json +53 -0
- package/node_modules/yargs/locales/hi.json +49 -0
- package/node_modules/yargs/locales/hu.json +46 -0
- package/node_modules/yargs/locales/id.json +50 -0
- package/node_modules/yargs/locales/it.json +46 -0
- package/node_modules/yargs/locales/ja.json +51 -0
- package/node_modules/yargs/locales/ko.json +49 -0
- package/node_modules/yargs/locales/nb.json +44 -0
- package/node_modules/yargs/locales/nl.json +49 -0
- package/node_modules/yargs/locales/nn.json +44 -0
- package/node_modules/yargs/locales/pirate.json +13 -0
- package/node_modules/yargs/locales/pl.json +49 -0
- package/node_modules/yargs/locales/pt.json +45 -0
- package/node_modules/yargs/locales/pt_BR.json +48 -0
- package/node_modules/yargs/locales/ru.json +51 -0
- package/node_modules/yargs/locales/th.json +46 -0
- package/node_modules/yargs/locales/tr.json +48 -0
- package/node_modules/yargs/locales/uk_UA.json +51 -0
- package/node_modules/yargs/locales/uz.json +52 -0
- package/node_modules/yargs/locales/zh_CN.json +48 -0
- package/node_modules/yargs/locales/zh_TW.json +51 -0
- package/node_modules/yargs/package.json +123 -0
- package/node_modules/yargs/yargs +9 -0
- package/node_modules/yargs/yargs.mjs +10 -0
- package/node_modules/yargs-parser/CHANGELOG.md +308 -0
- package/node_modules/yargs-parser/LICENSE.txt +14 -0
- package/node_modules/yargs-parser/README.md +518 -0
- package/node_modules/yargs-parser/browser.js +29 -0
- package/node_modules/yargs-parser/build/index.cjs +1050 -0
- package/node_modules/yargs-parser/build/lib/index.js +62 -0
- package/node_modules/yargs-parser/build/lib/string-utils.js +65 -0
- package/node_modules/yargs-parser/build/lib/tokenize-arg-string.js +40 -0
- package/node_modules/yargs-parser/build/lib/yargs-parser-types.js +12 -0
- package/node_modules/yargs-parser/build/lib/yargs-parser.js +1045 -0
- package/node_modules/yargs-parser/package.json +92 -0
- package/package.json +7 -6
- package/routes/capabilities.js +1 -1
- package/skills/ima2/SKILL.md +199 -30
- package/ui/dist/.vite/manifest.json +12 -12
- package/ui/dist/assets/{AgentWorkspace-CKjpho46.js → AgentWorkspace-DAg_7zpY.js} +1 -1
- package/ui/dist/assets/{CardNewsWorkspace-BW52bztP.js → CardNewsWorkspace-Cdxn1ohU.js} +1 -1
- package/ui/dist/assets/{GenerationRequestLogPanel-BPc4gDcY.js → GenerationRequestLogPanel-C_qvEUi2.js} +1 -1
- package/ui/dist/assets/{NodeCanvas-d7dH6h99.js → NodeCanvas-C67sLboA.js} +1 -1
- package/ui/dist/assets/{PromptBuilderPanel-CWbdfzpF.js → PromptBuilderPanel-DjvVdAie.js} +1 -1
- package/ui/dist/assets/{PromptImportDialog-DORdifOt.js → PromptImportDialog-DeQXsEEv.js} +2 -2
- package/ui/dist/assets/{PromptImportDiscoverySection-XA3ZzwAo.js → PromptImportDiscoverySection-CrwyUKYI.js} +1 -1
- package/ui/dist/assets/{PromptImportFolderSection-BjALahD0.js → PromptImportFolderSection-CToGMqYE.js} +1 -1
- package/ui/dist/assets/{PromptLibraryPanel-Co9xIawD.js → PromptLibraryPanel-Db3xEPM_.js} +2 -2
- package/ui/dist/assets/{SettingsWorkspace-BS_gSTTl.js → SettingsWorkspace-BDk_1W-V.js} +1 -1
- package/ui/dist/assets/{index-TRRNueAb.js → index-CoxMOXAU.js} +10 -10
- package/ui/dist/assets/{index-bMxZBOnc.js → index-p8egnGHk.js} +1 -1
- package/ui/dist/index.html +1 -1
- package/vendor/openai-oauth-1.0.2-ima2.1.tgz +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as c,j as o,u as ye,f as on,w as sn,x as ln,y as cn,z as Bt,B as me,C as un,D as jt,E as dn,b as j,F as hn,c as fn,G as pn,H as mn,J as vn}from"./index-TRRNueAb.js";const De=2,Le=1e-6;function bn({paths:e,points:t,radius:n,makeId:a=()=>crypto.randomUUID()}){if(e.length===0||t.length===0||n<=0)return{paths:e,changed:!1};let r=!1;const l=[];for(const s of e){const i=gn(s,t,n,a);(i.length!==1||i[0]!==s)&&(r=!0),l.push(...i)}return{paths:l,changed:r}}function gn(e,t,n,a=()=>crypto.randomUUID()){if(e.points.length<De||t.length===0||n<=0)return[e];const r=[];let l=je(e.points[0],t,n)?[]:[e.points[0]];for(let i=1;i<e.points.length;i+=1){const d=e.points[i-1],u=e.points[i],b=je(u,t,n),f=xn(d,u,t,n);if(f){l.length===0&&!je(d,t,n)&&(l=[d]),l.length>0&&f.leftT>Le&&ft(l,Te(d,u,f.leftT)),l.length>=De&&r.push(l),l=[],f.rightT<1-Le&&!b&&(l=[Te(d,u,f.rightT),u]);continue}if(b){l.length>=De&&r.push(l),l=[];continue}l.length===0&&!je(d,t,n)&&(l=[d]),ft(l,u)}if(l.length>=De&&r.push(l),r.length===0)return[];if(r.length===1&&r[0].length===e.points.length)return[e];const s=e.tool==="arrow"?r.length-1:-1;return r.map((i,d)=>({...e,id:d===0?e.id:a(),tool:e.tool==="arrow"&&d!==s?"pen":e.tool,points:i}))}function je(e,t,n){if(t.length===1)return xe(e,t[0])<=n;for(let a=1;a<t.length;a+=1)if(yn(e,t[a-1],t[a])<=n)return!0;return!1}function xe(e,t){const n=e.x-t.x,a=e.y-t.y;return Math.sqrt(n*n+a*a)}function xn(e,t,n,a){const r=xe(e,t);if(r<=Le)return je(e,n,a)?{leftT:0,rightT:1}:null;let l=null,s=Number.POSITIVE_INFINITY;for(const d of n){const u=ht(d,e,t),b=Te(e,t,u),f=xe(d,b);f<s&&(s=f,l=u)}for(let d=1;d<n.length;d+=1){const u=[0,.25,.5,.75,1];for(const b of u){const f=Te(n[d-1],n[d],b),_=ht(f,e,t),B=Te(e,t,_),A=xe(f,B);A<s&&(s=A,l=_)}}if(l===null||s>a)return null;const i=Math.max(a/r,.01);return{leftT:Math.max(0,l-i),rightT:Math.min(1,l+i)}}function ht(e,t,n){const a=n.x-t.x,r=n.y-t.y,l=e.x-t.x,s=e.y-t.y,i=a*a+r*r;return i===0?0:Math.max(0,Math.min(1,(l*a+s*r)/i))}function Te(e,t,n){return{x:e.x+(t.x-e.x)*n,y:e.y+(t.y-e.y)*n}}function ft(e,t){const n=e.at(-1);(!n||xe(n,t)>Le)&&e.push(t)}function yn(e,t,n){const a=n.x-t.x,r=n.y-t.y,l=e.x-t.x,s=e.y-t.y,i=a*a+r*r;if(i===0)return xe(e,t);const d=Math.max(0,Math.min(1,(l*a+s*r)/i));return xe(e,{x:t.x+d*a,y:t.y+d*r})}function st(e,t){return`${e}:${t}`}function lt(e){const t=e.indexOf(":");if(t<=0)return null;const n=e.slice(0,t),a=e.slice(t+1);return!a||n!=="path"&&n!=="box"&&n!=="memo"?null:{kind:n,id:a}}function Tt(e){return st("path",e.id)}function Pt(e){return st("box",e.id)}function Dt(e){return st("memo",e.id)}function pe(e,t,n){const a=lt(e);return a?.kind===t&&a.id===n}const At="ima2.canvas.annotationStyle.v1",It=["#ef4444","#f97316","#eab308","#22c55e","#38bdf8","#6366f1","#a855f7","#111827","#ffffff"],Nt=[2,3,5,8],Ee={color:"#ef4444",strokeWidth:3};function kn(){if(typeof window>"u")return Ee;try{const e=window.localStorage.getItem(At);if(!e)return Ee;const t=JSON.parse(e),n=typeof t.color=="string"&&It.includes(t.color)?t.color:Ee.color,a=typeof t.strokeWidth=="number"&&Nt.includes(t.strokeWidth)?t.strokeWidth:Ee.strokeWidth;return{color:n,strokeWidth:a}}catch{return Ee}}function wn(e){if(!(typeof window>"u"))try{window.localStorage.setItem(At,JSON.stringify(e))}catch{}}const pt=kn(),tt={activeTool:"select",toolColor:pt.color,strokeWidth:pt.strokeWidth,paths:[],boxes:[],memos:[],activeMemoId:null,activePath:null,activeBox:null,eraserMode:"object",activeEraserStroke:null,eraserBaseline:null,selectionBox:null,selectedIds:[],past:[],future:[],memoBaseline:null,moveBaseline:null,isDirty:!1};function ge(e){return{paths:e.paths,boxes:e.boxes,memos:e.memos}}function be(e){return{...e,past:[...e.past.slice(-49),ge(e)],future:[]}}function Ge(e,t){return{...e,past:[...e.past.slice(-49),t],future:[]}}function Cn(e,t){return JSON.stringify(e)===JSON.stringify(t)}function mt(e,t){return{...e,...t,activeMemoId:null,activePath:null,activeBox:null,selectionBox:null,selectedIds:[],isDirty:!0}}function _n(e,t,n){const{start:a,current:r}=e,l=Math.min(a.x,r.x),s=Math.min(a.y,r.y),i=Math.abs(r.x-a.x),d=Math.abs(r.y-a.y);return i<.01||d<.01?null:{id:crypto.randomUUID(),x:l,y:s,width:i,height:d,color:t,strokeWidth:n}}function Mn(e,t){return{...e,x:Math.min(1-e.width,Math.max(0,e.x+t.x)),y:Math.min(1-e.height,Math.max(0,e.y+t.y))}}function Ze(e,t){return{x:Math.min(1,Math.max(0,e.x+t.x)),y:Math.min(1,Math.max(0,e.y+t.y))}}function En(e,t){switch(t.type){case"SET_TOOL":return{...e,activeTool:t.tool};case"SET_ERASER_MODE":return{...e,eraserMode:t.mode};case"SET_STYLE":return{...e,toolColor:t.style.color,strokeWidth:t.style.strokeWidth};case"START_PATH":return{...e,isDirty:!0,activePath:{id:crypto.randomUUID(),tool:e.activeTool,points:[t.point],color:e.toolColor,strokeWidth:e.strokeWidth}};case"ADD_POINT":return e.activePath?{...e,activePath:{...e.activePath,points:[...e.activePath.points,t.point]}}:e;case"END_PATH":return!e.activePath||e.activePath.points.length<2?{...e,activePath:null}:{...be(e),isDirty:!0,paths:[...e.paths,e.activePath],activePath:null};case"START_BOX":return{...e,isDirty:!0,activeBox:{start:t.point,current:t.point}};case"UPDATE_BOX":return e.activeBox?{...e,activeBox:{...e.activeBox,current:t.point}}:e;case"END_BOX":{if(!e.activeBox)return e;const n=_n(e.activeBox,e.toolColor,e.strokeWidth);return n?{...be(e),isDirty:!0,boxes:[...e.boxes,n],activeBox:null}:{...e,activeBox:null}}case"CREATE_MEMO":{const n=crypto.randomUUID(),a={id:n,x:t.point.x,y:t.point.y,text:"",color:e.toolColor};return{...be(e),isDirty:!0,memos:[...e.memos,a],activeMemoId:n}}case"UPDATE_MEMO":return{...e,isDirty:!0,memos:e.memos.map(n=>n.id===t.id?{...n,text:t.text}:n)};case"COMMIT_MEMO_EDIT":return e.memoBaseline?Cn(e.memoBaseline,ge(e))?{...e,memoBaseline:null,activeMemoId:null}:{...Ge(e,e.memoBaseline),memoBaseline:null,activeMemoId:null,isDirty:!0}:{...e,activeMemoId:null};case"DELETE_MEMO":return{...be(e),isDirty:!0,memos:e.memos.filter(n=>n.id!==t.id),activeMemoId:e.activeMemoId===t.id?null:e.activeMemoId,selectedIds:e.selectedIds.filter(n=>!pe(n,"memo",t.id))};case"FOCUS_MEMO":return{...e,activeMemoId:t.id,memoBaseline:t.id&&e.activeMemoId!==t.id&&!e.memoBaseline?ge(e):e.memoBaseline};case"CLEAR":return{...be(e),isDirty:!0,paths:[],boxes:[],memos:[],activeMemoId:null,activePath:null,activeBox:null,selectionBox:null,selectedIds:[]};case"LOAD":return{...tt,activeTool:e.activeTool,eraserMode:e.eraserMode,toolColor:e.toolColor,strokeWidth:e.strokeWidth,...t.payload};case"MARK_SAVED":return{...e,isDirty:!1};case"RESET_LOCAL":return{...tt,activeTool:e.activeTool,eraserMode:e.eraserMode,toolColor:e.toolColor,strokeWidth:e.strokeWidth};case"UNDO":{const n=e.past.at(-1);return n?{...mt(e,n),past:e.past.slice(0,-1),future:[ge(e),...e.future]}:e}case"REDO":{const n=e.future[0];return n?{...mt(e,n),past:[...e.past.slice(-49),ge(e)],future:e.future.slice(1)}:e}case"SELECT_ONE":return{...e,selectedIds:[t.id],selectionBox:null};case"TOGGLE_SELECTED":return{...e,selectedIds:e.selectedIds.includes(t.id)?e.selectedIds.filter(n=>n!==t.id):[...e.selectedIds,t.id],selectionBox:null};case"CLEAR_SELECTION":return{...e,selectedIds:[],selectionBox:null};case"DELETE_SELECTED":return e.selectedIds.length===0?e:{...be(e),isDirty:!0,paths:e.paths.filter(n=>!e.selectedIds.some(a=>pe(a,"path",n.id))),boxes:e.boxes.filter(n=>!e.selectedIds.some(a=>pe(a,"box",n.id))),memos:e.memos.filter(n=>!e.selectedIds.some(a=>pe(a,"memo",n.id))),selectedIds:[]};case"MOVE_SELECTED":return e.selectedIds.length===0?e:{...e,isDirty:!0,paths:e.paths.map(n=>e.selectedIds.some(a=>pe(a,"path",n.id))?{...n,points:n.points.map(a=>Ze(a,t.delta))}:n),boxes:e.boxes.map(n=>e.selectedIds.some(a=>pe(a,"box",n.id))?Mn(n,t.delta):n),memos:e.memos.map(n=>e.selectedIds.some(a=>pe(a,"memo",n.id))?{...n,x:Ze(n,t.delta).x,y:Ze(n,t.delta).y}:n)};case"START_SELECTED_MOVE":return{...e,moveBaseline:ge(e)};case"COMMIT_SELECTED_MOVE":return e.moveBaseline?{...Ge(e,e.moveBaseline),moveBaseline:null,isDirty:!0}:e;case"START_SELECTION_BOX":return{...e,selectionBox:{start:t.point,current:t.point},selectedIds:[]};case"UPDATE_SELECTION_BOX":return e.selectionBox?{...e,selectionBox:{...e.selectionBox,current:t.point}}:e;case"END_SELECTION_BOX":return{...e,selectionBox:null,selectedIds:t.ids};case"ERASE_OBJECT":{const n=lt(t.id);return!n||!(n.kind==="path"?e.paths.some(r=>r.id===n.id):n.kind==="box"?e.boxes.some(r=>r.id===n.id):e.memos.some(r=>r.id===n.id))?e:{...be(e),isDirty:!0,paths:n.kind==="path"?e.paths.filter(r=>r.id!==n.id):e.paths,boxes:n.kind==="box"?e.boxes.filter(r=>r.id!==n.id):e.boxes,memos:n.kind==="memo"?e.memos.filter(r=>r.id!==n.id):e.memos,selectedIds:e.selectedIds.filter(r=>r!==t.id)}}case"START_ERASER_STROKE":return{...e,activeEraserStroke:{points:[t.point],radius:.018},eraserBaseline:ge(e)};case"UPDATE_ERASER_STROKE":return e.activeEraserStroke?{...e,activeEraserStroke:{...e.activeEraserStroke,points:[...e.activeEraserStroke.points,t.point]}}:e;case"END_ERASER_STROKE":{if(!e.activeEraserStroke||!e.eraserBaseline)return{...e,activeEraserStroke:null,eraserBaseline:null};const n=bn({paths:e.paths,points:e.activeEraserStroke.points,radius:e.activeEraserStroke.radius});return n.changed?{...Ge(e,e.eraserBaseline),paths:n.paths,activeEraserStroke:null,eraserBaseline:null,selectedIds:[],isDirty:!0}:{...e,activeEraserStroke:null,eraserBaseline:null}}default:return e}}function Sn(){const[e,t]=c.useReducer(En,tt),n=c.useMemo(()=>e.paths.length>0||e.boxes.length>0||e.memos.length>0,[e.paths.length,e.boxes.length,e.memos.length]),a=e.past.length>0,r=e.future.length>0,l=c.useCallback(p=>t({type:"SET_TOOL",tool:p}),[]),s=c.useCallback(p=>{wn(p),t({type:"SET_STYLE",style:p})},[]),i=c.useCallback(()=>t({type:"CLEAR"}),[]),d=c.useCallback(p=>t({type:"LOAD",payload:p}),[]),u=c.useCallback(()=>t({type:"MARK_SAVED"}),[]),b=c.useCallback(()=>t({type:"RESET_LOCAL"}),[]),f=c.useCallback(()=>t({type:"UNDO"}),[]),_=c.useCallback(()=>t({type:"REDO"}),[]),B=c.useCallback(()=>t({type:"COMMIT_MEMO_EDIT"}),[]),A=c.useCallback(()=>t({type:"START_SELECTED_MOVE"}),[]),O=c.useCallback(()=>t({type:"COMMIT_SELECTED_MOVE"}),[]),T=c.useCallback(p=>{e.activeTool==="pen"||e.activeTool==="arrow"?t({type:"START_PATH",point:p}):e.activeTool==="box"&&t({type:"START_BOX",point:p})},[e.activeTool]),N=c.useCallback(p=>{e.activePath?t({type:"ADD_POINT",point:p}):e.activeBox&&t({type:"UPDATE_BOX",point:p})},[e.activePath,e.activeBox]),m=c.useCallback(()=>{e.activePath?t({type:"END_PATH"}):e.activeBox&&t({type:"END_BOX"})},[e.activePath,e.activeBox]),C=c.useCallback(p=>t({type:"CREATE_MEMO",point:p}),[]),E=c.useCallback((p,R)=>t({type:"UPDATE_MEMO",id:p,text:R}),[]),y=c.useCallback(p=>t({type:"DELETE_MEMO",id:p}),[]),v=c.useCallback(p=>t({type:"FOCUS_MEMO",id:p}),[]),Z=c.useCallback(p=>t({type:"SET_ERASER_MODE",mode:p}),[]),I=c.useCallback(p=>t({type:"SELECT_ONE",id:p}),[]),U=c.useCallback(p=>t({type:"TOGGLE_SELECTED",id:p}),[]),g=c.useCallback(()=>t({type:"CLEAR_SELECTION"}),[]),S=c.useCallback(()=>t({type:"DELETE_SELECTED"}),[]),D=c.useCallback(p=>t({type:"MOVE_SELECTED",delta:p}),[]),P=c.useCallback(p=>t({type:"START_SELECTION_BOX",point:p}),[]),V=c.useCallback(p=>t({type:"UPDATE_SELECTION_BOX",point:p}),[]),Y=c.useCallback(p=>t({type:"END_SELECTION_BOX",ids:p}),[]),te=c.useCallback(p=>t({type:"ERASE_OBJECT",id:p}),[]),ne=c.useCallback(p=>t({type:"START_ERASER_STROKE",point:p}),[]),se=c.useCallback(p=>t({type:"UPDATE_ERASER_STROKE",point:p}),[]),ue=c.useCallback(()=>t({type:"END_ERASER_STROKE"}),[]),L=c.useCallback(()=>({paths:e.paths,boxes:e.boxes,memos:e.memos}),[e.paths,e.boxes,e.memos]);return{...e,canUndo:a,canRedo:r,hasAnnotations:n,setTool:l,setStyle:s,setEraserMode:Z,startDrawing:T,moveDrawing:N,endDrawing:m,createMemo:C,updateMemo:E,commitMemoEdit:B,deleteMemo:y,focusMemo:v,clear:i,load:d,toPayload:L,markSaved:u,resetLocal:b,undo:f,redo:_,selectOne:I,toggleSelected:U,clearSelection:g,deleteSelected:S,moveSelected:D,startSelectedMove:A,commitSelectedMove:O,startSelectionBox:P,updateSelectionBox:V,endSelectionBox:Y,eraseObjectAtPoint:te,startEraserStroke:ne,updateEraserStroke:se,endEraserStroke:ue}}function Ae(e,t){return{x:e.x*t.width,y:e.y*t.height}}function nt(e,t,n){if(t.points.length<2)return;const a=Ae(t.points[0],n);e.save(),e.beginPath(),e.strokeStyle=t.color,e.lineWidth=t.strokeWidth,e.lineCap="round",e.lineJoin="round",e.moveTo(a.x,a.y);for(const r of t.points.slice(1)){const l=Ae(r,n);e.lineTo(l.x,l.y)}if(e.stroke(),t.tool==="arrow"){const r=Ae(t.points[t.points.length-1],n),l=Ae(t.points[t.points.length-2],n);Tn(e,l,r,t.color,t.strokeWidth)}e.restore()}function at(e,t,n,a){const r="start"in t?{x:Math.min(t.start.x,t.current.x),y:Math.min(t.start.y,t.current.y),width:Math.abs(t.current.x-t.start.x),height:Math.abs(t.current.y-t.start.y),color:"#64c8ff",strokeWidth:2}:t;e.save(),e.strokeStyle=r.color,e.lineWidth=a==="active"?Math.max(2,r.strokeWidth):r.strokeWidth,a==="active"&&e.setLineDash([8,6]),e.strokeRect(r.x*n.width,r.y*n.height,r.width*n.width,r.height*n.height),e.restore()}function Bn(e,t,n){const a=t.x*n.width,r=t.y*n.height,l=Math.min(260,Math.max(150,n.width*.22)),s=12,i=18;e.save(),e.font="14px sans-serif";const d=Pn(e,t.text.trim()||" ",l-s*2),u=Math.max(52,s*2+d.length*i);e.fillStyle="rgba(255, 246, 179, 0.96)",e.strokeStyle="rgba(44, 37, 12, 0.28)",e.lineWidth=1,Dn(e,a,r,l,u,8),e.fill(),e.stroke(),e.fillStyle="#2f2a13",e.textBaseline="top",d.forEach((b,f)=>{e.fillText(b,a+s,r+s+f*i)}),e.restore()}function jn(e,t){const n=lt(e);if(!n)return null;if(n.kind==="box")return t.boxes.find(u=>u.id===n.id)??null;const a=n.kind==="memo"?t.memos.find(u=>u.id===n.id):null;if(a)return{id:a.id,x:a.x,y:a.y,width:.18,height:.12,color:a.color,strokeWidth:1};if(n.kind!=="path")return null;const r=t.paths.find(u=>u.id===n.id);if(!r||r.points.length===0)return null;const l=r.points.map(u=>u.x),s=r.points.map(u=>u.y),i=Math.min(...l),d=Math.min(...s);return{id:r.id,x:i,y:d,width:Math.max(.01,Math.max(...l)-i),height:Math.max(.01,Math.max(...s)-d),color:r.color,strokeWidth:r.strokeWidth}}function vt(e,t,n){const a="start"in t?{x:Math.min(t.start.x,t.current.x),y:Math.min(t.start.y,t.current.y),width:Math.abs(t.current.x-t.start.x),height:Math.abs(t.current.y-t.start.y)}:t;e.save(),e.strokeStyle="#64c8ff",e.lineWidth=2,e.setLineDash([5,5]),e.strokeRect(a.x*n.width,a.y*n.height,a.width*n.width,a.height*n.height),e.restore()}function Tn(e,t,n,a,r){const l=Math.atan2(n.y-t.y,n.x-t.x),s=Math.max(12,r*4),i=Math.PI/7;e.save(),e.fillStyle=a,e.beginPath(),e.moveTo(n.x,n.y),e.lineTo(n.x-s*Math.cos(l-i),n.y-s*Math.sin(l-i)),e.lineTo(n.x-s*Math.cos(l+i),n.y-s*Math.sin(l+i)),e.closePath(),e.fill(),e.restore()}function Pn(e,t,n){const a=t.split(/\s+/).filter(Boolean);if(a.length===0)return[""];const r=[];let l="";for(const s of a){const i=l?`${l} ${s}`:s;if(e.measureText(i).width<=n||l===""){l=i;continue}r.push(l),l=s}return l&&r.push(l),r}function Dn(e,t,n,a,r,l){const s=Math.min(l,a/2,r/2);e.beginPath(),e.moveTo(t+s,n),e.lineTo(t+a-s,n),e.quadraticCurveTo(t+a,n,t+a,n+s),e.lineTo(t+a,n+r-s),e.quadraticCurveTo(t+a,n+r,t+a-s,n+r),e.lineTo(t+s,n+r),e.quadraticCurveTo(t,n+r,t,n+r-s),e.lineTo(t,n+s),e.quadraticCurveTo(t,n,t+s,n),e.closePath()}function An({paths:e,boxes:t,memos:n=[],selectedIds:a=[],selectionBox:r=null,activePath:l,activeBox:s}){const i=c.useRef(null);return c.useEffect(()=>{const d=i.current;if(!d)return;const u=d.getBoundingClientRect(),b=window.devicePixelRatio||1;d.width=Math.max(1,Math.round(u.width*b)),d.height=Math.max(1,Math.round(u.height*b));const f=d.getContext("2d");if(!f)return;f.setTransform(b,0,0,b,0,0),f.clearRect(0,0,u.width,u.height);const _={width:u.width,height:u.height};for(const B of e)nt(f,B,_);for(const B of t)at(f,B,_,"committed");for(const B of a){const A=jn(B,{paths:e,boxes:t,memos:n});A&&vt(f,A,_)}r&&vt(f,r,_),l&&nt(f,l,_),s&&at(f,s,_,"active")},[e,t,n,a,r,l,s]),o.jsx("canvas",{ref:i,className:"canvas-annotation-layer","aria-hidden":"true"})}function Ie(e){e.stopPropagation()}function In({memos:e,activeMemoId:t,onUpdate:n,onDelete:a,onFocus:r,onCommit:l}){return o.jsx("div",{className:"canvas-memo-overlay",children:e.map(s=>o.jsx("textarea",{className:`canvas-memo${t===s.id?" canvas-memo--active":""}`,value:s.text,style:{left:`${s.x*100}%`,top:`${s.y*100}%`},autoFocus:t===s.id,onFocus:()=>r(s.id),onPointerDown:Ie,onPointerMove:Ie,onPointerUp:Ie,onPointerCancel:Ie,onChange:i=>n(s.id,i.currentTarget.value),onBlur:()=>{l?.(),s.text.trim()===""&&a(s.id)},"aria-label":"Canvas memo"},s.id))})}function Nn({annotationFrameRef:e,imageElementRef:t,frameClassName:n,frameStyle:a,imageKey:r,imageSrc:l,fallbackImage:s,alt:i,canvasOpen:d,maskOverlayUrl:u,cleanupLayer:b,annotations:f,onOpenCanvas:_,onPointerDown:B,onPointerMove:A,onPointerUp:O,onPointerLeave:T}){return o.jsxs("div",{ref:e,className:n,onPointerDown:B,onPointerMove:A,onPointerUp:O,onPointerCancel:O,onPointerLeave:T,style:a,children:[o.jsx("img",{ref:t,className:"result-img",src:l??s,alt:i,decoding:"async",onDoubleClick:N=>{N.stopPropagation(),_()}},r),d&&u?o.jsx("img",{className:"canvas-background-cleanup-mask",src:u,alt:"","aria-hidden":"true",decoding:"async"}):null,d?b:null,d&&o.jsxs(o.Fragment,{children:[o.jsx(An,{paths:f.paths,boxes:f.boxes,memos:f.memos,selectedIds:f.selectedIds,selectionBox:f.selectionBox,activePath:f.activePath,activeBox:f.activeBox}),o.jsx(In,{memos:f.memos,activeMemoId:f.activeMemoId,onUpdate:f.updateMemo,onDelete:f.deleteMemo,onFocus:f.focusMemo,onCommit:f.commitMemoEdit})]})]})}function Rn(e){return`${e.x*100} ${e.y*100}`}function Ln(e){return e.map(Rn).join(" ")}function On({seeds:e,brushStrokes:t,brushCursor:n,brushRadius:a,active:r}){if(!r&&e.length===0&&t.length===0)return null;const l=a*100;return o.jsxs("svg",{className:"canvas-cleanup-overlay",viewBox:"0 0 100 100",preserveAspectRatio:"none","aria-hidden":"true",children:[t.map(s=>o.jsx("polyline",{className:`canvas-cleanup-overlay__stroke canvas-cleanup-overlay__stroke--${s.intent}`,points:Ln(s.points),strokeWidth:Math.max(.3,s.radius*200),vectorEffect:"non-scaling-stroke"},s.id)),r&&n?o.jsx("circle",{className:"canvas-cleanup-cursor",cx:n.x*100,cy:n.y*100,r:Math.max(.6,l),vectorEffect:"non-scaling-stroke"}):null]})}function $n({mode:e,matteColor:t,onModeChange:n,onMatteColorChange:a}){const{t:r}=ye();return o.jsxs("div",{className:"canvas-toolbar__bg",role:"group","aria-label":r("canvas.toolbar.bgGroup"),children:[o.jsx("button",{type:"button",className:`canvas-toolbar__bg-tab${e==="alpha"?" active":""}`,onClick:()=>n("alpha"),children:r("canvas.toolbar.bgAlpha")}),o.jsx("button",{type:"button",className:`canvas-toolbar__bg-tab${e==="matte"?" active":""}`,onClick:()=>n("matte"),children:r("canvas.toolbar.bgMatte")}),e==="matte"?o.jsx("input",{type:"color","aria-label":r("canvas.toolbar.bgMatteColor"),value:t,onChange:l=>a(l.target.value)}):null]})}function bt({label:e,value:t,options:n,onChange:a}){return o.jsxs("div",{className:"canvas-toolbar__segmented-row",children:[o.jsx("span",{className:"canvas-toolbar__segmented-label",children:e}),o.jsx("div",{className:"canvas-toolbar__segmented",role:"group","aria-label":e,children:n.map(r=>o.jsx("button",{type:"button",className:"canvas-toolbar__segmented-button","data-value":r.value,"aria-pressed":t===r.value,onClick:()=>a(r.value),children:r.label},r.value))})]})}function Un({seedCount:e,tolerance:t,stats:n,hasPreview:a,isPickingSeed:r,intent:l,tool:s,brushRadius:i,isPreviewing:d,isApplying:u,keepOpen:b,disabled:f,onAutoSample:_,onPickSeed:B,onIntentChange:A,onToolChange:O,onBrushRadiusChange:T,onToleranceChange:N,onPreview:m,onApply:C,onReset:E}){const{t:y}=ye(),[v,Z]=c.useState(!1),I=c.useRef(null),U=n?Math.round(n.removedPercent*1e3)/10:0,g=r||s==="brush";return c.useEffect(()=>{if(!v)return;const S=D=>{b||I.current?.contains(D.target)||Z(!1)};return window.addEventListener("pointerdown",S),()=>window.removeEventListener("pointerdown",S)},[b,v]),o.jsxs("div",{className:"canvas-toolbar__cleanup",ref:I,children:[o.jsx("button",{type:"button",className:`canvas-toolbar__button${v||a?" canvas-toolbar__button--active":""}`,onClick:()=>Z(S=>!S),disabled:f,"aria-expanded":v,"aria-label":y("canvas.toolbar.cleanup"),title:y("canvas.toolbar.cleanup"),children:o.jsx(Wn,{})}),v?o.jsxs("div",{className:"canvas-toolbar__cleanup-panel",role:"group","aria-label":y("canvas.toolbar.cleanup"),children:[o.jsxs("div",{className:"canvas-toolbar__cleanup-row",children:[o.jsx("span",{className:"canvas-toolbar__cleanup-title",children:y("canvas.toolbar.cleanup")}),o.jsx("span",{className:"canvas-toolbar__cleanup-meta",children:y("canvas.toolbar.cleanupSeedCount",{n:e})})]}),o.jsx(bt,{label:y("canvas.toolbar.cleanupMark"),value:l,options:[{value:"remove",label:y("canvas.toolbar.cleanupRemove")},{value:"preserve",label:y("canvas.toolbar.cleanupPreserve")}],onChange:A}),o.jsx(bt,{label:y("canvas.toolbar.cleanupInput"),value:s,options:[{value:"click",label:y("canvas.toolbar.cleanupClick")},{value:"brush",label:y("canvas.toolbar.cleanupBrush")}],onChange:O}),o.jsxs("label",{className:"canvas-toolbar__cleanup-slider",children:[o.jsx("span",{children:y("canvas.toolbar.cleanupTolerance")}),o.jsx("input",{type:"range",min:"0",max:"96",value:t,onChange:S=>N(Number(S.target.value))}),o.jsx("output",{children:t})]}),s==="brush"?o.jsxs("label",{className:"canvas-toolbar__cleanup-slider",children:[o.jsx("span",{children:y("canvas.toolbar.cleanupBrushSize")}),o.jsx("input",{type:"range",min:"0.006",max:"0.06",step:"0.002",value:i,onChange:S=>T(Number(S.target.value))}),o.jsx("output",{children:Math.round(i*1e3)})]}):null,o.jsxs("div",{className:"canvas-toolbar__cleanup-actions",children:[o.jsx("button",{type:"button",onClick:_,children:y("canvas.toolbar.cleanupAutoSample")}),o.jsx("button",{type:"button",className:r?"active":"",onClick:B,children:y(g?"canvas.toolbar.cleanupActive":"canvas.toolbar.cleanupPickSeed")})]}),o.jsxs("div",{className:"canvas-toolbar__cleanup-actions",children:[o.jsx("button",{type:"button",onClick:m,disabled:d||e===0,children:y(d?"canvas.toolbar.cleanupPreviewing":"canvas.toolbar.cleanupPreview")}),o.jsx("button",{type:"button",onClick:C,disabled:u||!a&&e===0,children:y(u?"canvas.toolbar.cleanupApplying":"canvas.toolbar.cleanupApply")}),o.jsx("button",{type:"button",onClick:E,disabled:!a&&e===0,children:y("canvas.toolbar.cleanupReset")})]}),g?o.jsx("div",{className:"canvas-toolbar__cleanup-status canvas-toolbar__cleanup-status--active",children:y(s==="brush"?"canvas.toolbar.cleanupBrushHint":"canvas.toolbar.cleanupPickHint")}):n&&!a?o.jsx("div",{className:"canvas-toolbar__cleanup-status canvas-toolbar__cleanup-status--active",children:y("canvas.toolbar.cleanupMaskHint")}):null,n?o.jsx("div",{className:"canvas-toolbar__cleanup-status",children:y("canvas.toolbar.cleanupRemoved",{n:U})}):null]}):null]})}function Wn(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M5 7.5h14"}),o.jsx("path",{d:"M7 12h10"}),o.jsx("path",{d:"M10 16.5h4"}),o.jsx("path",{d:"M7.5 5.5 9 4l1.5 1.5L9 7 7.5 5.5Z"}),o.jsx("path",{d:"M13.5 11 15 9.5l1.5 1.5L15 12.5 13.5 11Z"}),o.jsx("path",{d:"M4.5 15.5 6 14l1.5 1.5L6 17 4.5 15.5Z"})]})}function Hn({style:e,onStyleChange:t}){const{t:n}=ye(),[a,r]=c.useState(!1),l=c.useRef(null);return c.useEffect(()=>{if(!a)return;const s=i=>{l.current?.contains(i.target)||r(!1)};return window.addEventListener("pointerdown",s),()=>window.removeEventListener("pointerdown",s)},[a]),o.jsxs("div",{ref:l,className:`canvas-toolbar__split-button${a?" canvas-toolbar__split-button--active":""}`,onKeyDown:s=>{s.key==="Escape"&&a&&(s.preventDefault(),s.stopPropagation(),r(!1))},children:[o.jsxs("button",{type:"button",className:"canvas-toolbar__button canvas-toolbar__style-trigger",onClick:()=>r(s=>!s),"aria-haspopup":"dialog","aria-expanded":a,"aria-label":n("canvas.toolbar.style"),title:n("canvas.toolbar.style"),children:[o.jsx("span",{className:"canvas-style-trigger__swatch",style:{background:e.color},"aria-hidden":"true"}),o.jsx("span",{className:"canvas-style-trigger__width",style:{height:`${Math.min(8,Math.max(2,e.strokeWidth))}px`},"aria-hidden":"true"})]}),a?o.jsxs("div",{className:"canvas-style-popover",role:"dialog","aria-label":n("canvas.toolbar.style"),children:[o.jsx("div",{className:"canvas-style-popover__row",role:"group","aria-label":n("canvas.toolbar.color"),children:It.map(s=>o.jsx("button",{type:"button",className:`canvas-style-swatch${e.color===s?" canvas-style-swatch--active":""}`,style:{background:s},onClick:()=>t({...e,color:s}),"aria-pressed":e.color===s,"aria-label":s,title:s},s))}),o.jsx("div",{className:"canvas-style-popover__row",role:"group","aria-label":n("canvas.toolbar.strokeWidth"),children:Nt.map(s=>o.jsx("button",{type:"button",className:`canvas-style-width${e.strokeWidth===s?" canvas-style-width--active":""}`,onClick:()=>t({...e,strokeWidth:s}),"aria-pressed":e.strokeWidth===s,"aria-label":`${s}px`,title:`${s}px`,children:o.jsx("span",{style:{height:`${s}px`,background:e.color}})},s))})]}):null]})}function Fn({tools:e,activeTool:t,onToolChange:n}){const[a,r]=c.useState(!1),l=c.useRef(null),s=e.find(d=>d.id===t)??e[0],i=s.icon;return c.useEffect(()=>{if(!a)return;const d=u=>{l.current?.contains(u.target)||r(!1)};return window.addEventListener("pointerdown",d),()=>window.removeEventListener("pointerdown",d)},[a]),o.jsxs("div",{ref:l,className:"canvas-tool-picker",children:[o.jsxs("button",{type:"button",className:`canvas-toolbar__button canvas-tool-picker__trigger${t!=="eraser"?" canvas-toolbar__button--active":""}`,onClick:()=>r(d=>!d),"aria-label":`${s.label} (${s.shortcut})`,"aria-pressed":t===s.id,"aria-haspopup":"menu","aria-expanded":a,title:`${s.label} (${s.shortcut})`,children:[o.jsx(i,{}),o.jsx("span",{className:"canvas-toolbar__shortcut","aria-hidden":"true",children:s.shortcut})]}),a?o.jsx("div",{className:"canvas-tool-picker__menu",role:"menu",children:e.map(d=>{const u=d.icon,b=t===d.id;return o.jsxs("button",{type:"button",className:`canvas-tool-picker__item${b?" active":""}`,role:"menuitemradio","aria-checked":b,onClick:()=>{n(d.id),r(!1)},children:[o.jsx(u,{}),o.jsx("span",{children:d.label}),o.jsx("kbd",{children:d.shortcut})]},d.id)})}):null]})}function Vn({activeTool:e,hasAnnotations:t,hasExportableContent:n,onToolChange:a,eraserMode:r="object",onEraserModeChange:l,style:s,onStyleChange:i,onClear:d,onApply:u,onExport:b,onUndo:f,onRedo:_,canUndo:B,canRedo:A,onDeleteSelected:O,selectedCount:T=0,onEditWithMask:N,canEditWithMask:m,isEditingWithMask:C,isApplying:E,isExporting:y,exportBackground:v="alpha",exportMatteColor:Z="#ffffff",onExportBackgroundChange:I,onExportMatteColorChange:U,cleanupTolerance:g=28,cleanupSeedCount:S=0,cleanupStats:D=null,cleanupHasPreview:P=!1,isCleanupPickingSeed:V=!1,isCleanupActive:Y=!1,cleanupIntent:te="remove",cleanupTool:ne="click",cleanupBrushRadius:se=.018,isCleanupPreviewing:ue=!1,isCleanupApplying:L=!1,onCleanupAutoSample:p,onCleanupPickSeed:R,onCleanupIntentChange:J,onCleanupToolChange:ae,onCleanupBrushRadiusChange:le,onCleanupToleranceChange:K,onCleanupPreview:q,onCleanupApply:G,onCleanupReset:z}){const{t:w}=ye(),[$,ee]=c.useState(!1),W=c.useRef(null),ce=n??t??!1,X=w(r==="object"?"canvas.toolbar.objectEraser":"canvas.toolbar.brushEraser"),F=[{id:"select",shortcut:"1",label:w("canvas.toolbar.select"),icon:Kn},{id:"pen",shortcut:"2",label:w("canvas.toolbar.pen"),icon:zn},{id:"box",shortcut:"3",label:w("canvas.toolbar.box"),icon:Xn},{id:"arrow",shortcut:"4",label:w("canvas.toolbar.arrow"),icon:qn},{id:"memo",shortcut:"5",label:w("canvas.toolbar.memo"),icon:Yn}];c.useEffect(()=>{if(!$)return;const re=we=>{W.current?.contains(we.target)||ee(!1)};return window.addEventListener("pointerdown",re),()=>window.removeEventListener("pointerdown",re)},[$]);const de=re=>{l?.(re),a("eraser"),ee(!1)};return o.jsxs("div",{className:"canvas-toolbar","aria-label":w("canvas.toolbar.label"),children:[o.jsx(Fn,{tools:F,activeTool:e,onToolChange:a}),o.jsx(Hn,{style:s,onStyleChange:i}),o.jsxs("div",{ref:W,className:`canvas-toolbar__split-button${e==="eraser"?" canvas-toolbar__split-button--active":""}`,onKeyDown:re=>{re.key==="Escape"&&$&&(re.preventDefault(),ee(!1))},children:[o.jsxs("button",{type:"button",className:`canvas-toolbar__button canvas-toolbar__button--split-main${e==="eraser"?" canvas-toolbar__button--active":""}`,onClick:()=>a("eraser"),"aria-label":`${X} (6)`,"aria-pressed":e==="eraser",title:`${X} (6)`,children:[o.jsx(Gn,{}),o.jsx("span",{className:"canvas-toolbar__shortcut","aria-hidden":"true",children:"6"})]}),o.jsx("button",{type:"button",className:"canvas-toolbar__button canvas-toolbar__button--split-menu",onClick:()=>ee(re=>!re),"aria-label":w("canvas.toolbar.eraserMenu"),"aria-haspopup":"menu","aria-expanded":$,"aria-controls":"canvas-eraser-menu",title:w("canvas.toolbar.eraserMenu"),children:o.jsx(Zn,{})}),$?o.jsxs("div",{id:"canvas-eraser-menu",className:"canvas-toolbar__eraser-menu",role:"menu",children:[o.jsx("button",{type:"button",className:`canvas-toolbar__eraser-menu-item${r==="object"?" canvas-toolbar__eraser-menu-item--active":""}`,role:"menuitemradio","aria-checked":r==="object",onClick:()=>de("object"),children:w("canvas.toolbar.objectEraser")}),o.jsx("button",{type:"button",className:`canvas-toolbar__eraser-menu-item${r==="brush"?" canvas-toolbar__eraser-menu-item--active":""}`,role:"menuitemradio","aria-checked":r==="brush",onClick:()=>de("brush"),children:w("canvas.toolbar.brushEraser")})]}):null]}),o.jsx("span",{className:"canvas-toolbar__divider","aria-hidden":"true"}),u?o.jsx("button",{type:"button",className:`canvas-toolbar__button canvas-toolbar__button--primary${E?" canvas-toolbar__button--busy":""}`,onClick:u,disabled:!ce||E,"aria-label":w("canvas.toolbar.apply"),title:w("canvas.toolbar.apply"),children:o.jsx(Jn,{})}):null,N?o.jsx("button",{type:"button",className:`canvas-toolbar__button canvas-toolbar__button--primary canvas-toolbar__button--mask${C?" canvas-toolbar__button--busy":""}`,onClick:N,disabled:!m||C,"aria-label":w(m?"canvas.toolbar.editMask":"canvas.toolbar.editMaskDisabled"),title:w(m?"canvas.toolbar.editMask":"canvas.toolbar.editMaskDisabled"),children:o.jsx(na,{})}):null,f?o.jsx("button",{type:"button",className:"canvas-toolbar__button",onClick:f,disabled:!B,"aria-label":w("canvas.toolbar.undo"),title:w("canvas.toolbar.undo"),children:o.jsx(ea,{})}):null,_?o.jsx("button",{type:"button",className:"canvas-toolbar__button",onClick:_,disabled:!A,"aria-label":w("canvas.toolbar.redo"),title:w("canvas.toolbar.redo"),children:o.jsx(ta,{})}):null,O?o.jsx("button",{type:"button",className:"canvas-toolbar__button canvas-toolbar__button--danger",onClick:O,disabled:T===0,"aria-label":w("canvas.toolbar.deleteSelected"),title:w("canvas.toolbar.deleteSelected"),children:o.jsx(gt,{})}):null,b&&I&&U?o.jsx($n,{mode:v,matteColor:Z,onModeChange:I,onMatteColorChange:U}):null,p&&R&&J&&ae&&le&&K&&q&&G&&z?o.jsx(Un,{seedCount:S,tolerance:g,stats:D,hasPreview:P,isPickingSeed:V,intent:te,tool:ne,brushRadius:se,isPreviewing:ue,isApplying:L,keepOpen:Y,disabled:E||y,onAutoSample:p,onPickSeed:R,onIntentChange:J,onToolChange:ae,onBrushRadiusChange:le,onToleranceChange:K,onPreview:q,onApply:G,onReset:z}):null,b?o.jsx("button",{type:"button",className:`canvas-toolbar__button${y?" canvas-toolbar__button--busy":""}`,onClick:b,disabled:!ce||y,"aria-label":w("canvas.toolbar.export"),title:w("canvas.toolbar.export"),children:o.jsx(Qn,{})}):null,o.jsx("button",{type:"button",className:"canvas-toolbar__button canvas-toolbar__button--danger",onClick:d,disabled:!ce,"aria-label":w("canvas.toolbar.clear"),title:w("canvas.toolbar.clear"),children:o.jsx(gt,{})})]})}function Kn(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M8 12.5V7a2 2 0 0 1 4 0v4"}),o.jsx("path",{d:"M12 11V5a2 2 0 0 1 4 0v7"}),o.jsx("path",{d:"M16 12V8a2 2 0 0 1 4 0v5.5A6.5 6.5 0 0 1 13.5 20H12a6 6 0 0 1-4.24-1.76L4.7 15.18a1.7 1.7 0 0 1 2.4-2.4L9 14.68"})]})}function zn(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"m4 20 4.2-1.1L19.5 7.6a2.2 2.2 0 0 0-3.1-3.1L5.1 15.8 4 20Z"}),o.jsx("path",{d:"m14.5 6.5 3 3"})]})}function Xn(){return o.jsx("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:o.jsx("rect",{x:"5",y:"5",width:"14",height:"14",rx:"2"})})}function qn(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M5 19 19 5"}),o.jsx("path",{d:"M10 5h9v9"})]})}function Yn(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M6 4h12v16H6z"}),o.jsx("path",{d:"M9 8h6"}),o.jsx("path",{d:"M9 12h5"}),o.jsx("path",{d:"M9 16h3"})]})}function Gn(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"m4 15 8.5-8.5a2.1 2.1 0 0 1 3 0l2 2a2.1 2.1 0 0 1 0 3L10 19H6.5L4 16.5V15Z"}),o.jsx("path",{d:"M10 19h10"}),o.jsx("path",{d:"m8.5 10.5 5 5"})]})}function Zn(){return o.jsx("svg",{className:"canvas-toolbar__icon canvas-toolbar__icon--small",viewBox:"0 0 24 24","aria-hidden":"true",children:o.jsx("path",{d:"m7 14 5-5 5 5"})})}function Jn(){return o.jsx("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:o.jsx("path",{d:"M5 12.5 10 17 19 7"})})}function Qn(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M12 4v11"}),o.jsx("path",{d:"m8 11 4 4 4-4"}),o.jsx("path",{d:"M5 20h14"})]})}function gt(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M4 7h16"}),o.jsx("path",{d:"M9 7V5h6v2"}),o.jsx("path",{d:"M7 7l1 13h8l1-13"}),o.jsx("path",{d:"M10 11v5"}),o.jsx("path",{d:"M14 11v5"})]})}function ea(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M9 7 5 11l4 4"}),o.jsx("path",{d:"M5 11h9a5 5 0 0 1 0 10h-2"})]})}function ta(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"m15 7 4 4-4 4"}),o.jsx("path",{d:"M19 11h-9a5 5 0 0 0 0 10h2"})]})}function na(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("rect",{x:"5",y:"5",width:"14",height:"14",rx:"2"}),o.jsx("path",{d:"M9 9h6v6H9z"})]})}function aa({annotations:e,backgroundCleanup:t,backgroundCleanupPreview:n,canvasState:a,actions:r}){return o.jsx(Vn,{activeTool:e.activeTool,eraserMode:e.eraserMode,onEraserModeChange:e.setEraserMode,style:{color:e.toolColor,strokeWidth:e.strokeWidth},onStyleChange:e.setStyle,hasExportableContent:e.hasAnnotations,onToolChange:e.setTool,onClear:e.clear,onApply:()=>{r.handleApplyCanvas()},onExport:()=>{r.handleExportCanvas()},onUndo:e.undo,onRedo:e.redo,canUndo:e.canUndo,canRedo:e.canRedo,onDeleteSelected:e.deleteSelected,selectedCount:e.selectedIds.length,onEditWithMask:()=>{r.handleEditWithMask()},canEditWithMask:e.boxes.length>0,isEditingWithMask:a.isEditingWithMask,isApplying:a.isApplying,isExporting:a.isExporting,exportBackground:a.exportBackground,exportMatteColor:a.exportMatteColor,onExportBackgroundChange:r.setExportBackground,onExportMatteColorChange:r.setExportMatteColor,cleanupTolerance:t.backgroundCleanupTolerance,cleanupSeedCount:t.backgroundCleanupSeeds.length,cleanupStats:t.backgroundCleanupStats,cleanupHasPreview:!!n,isCleanupPickingSeed:t.isBackgroundCleanupPickingSeed,isCleanupActive:t.isBackgroundCleanupActive,cleanupIntent:t.cleanupIntent,cleanupTool:t.cleanupTool,cleanupBrushRadius:t.cleanupBrushRadius,isCleanupPreviewing:t.isBackgroundCleanupPreviewing,isCleanupApplying:t.isBackgroundCleanupApplying,onCleanupAutoSample:t.handleBackgroundCleanupAutoSample,onCleanupPickSeed:t.handleBackgroundCleanupPickSeed,onCleanupIntentChange:t.setCleanupIntent,onCleanupToolChange:l=>{t.setCleanupTool(l),t.setIsBackgroundCleanupActive(!0)},onCleanupBrushRadiusChange:t.setCleanupBrushRadius,onCleanupToleranceChange:t.handleBackgroundCleanupToleranceChange,onCleanupPreview:()=>{t.runBackgroundCleanupPreview()},onCleanupApply:()=>{t.handleBackgroundCleanupApply()},onCleanupReset:t.handleBackgroundCleanupReset})}function ra({currentImage:e,canvasDisplayImage:t,canvasOpen:n,displayQuality:a,displaySize:r,displayModel:l,onAfterDeleteFocus:s,onCopyPrompt:i}){const{t:d}=ye(),u=[e.elapsed!=null?`${e.elapsed}s`:null,e.usage?d("canvas.tokens",{n:e.usage.total_tokens??"?"}):null,on(e.reasoningEffort),a,r,l].filter(b=>!!b).join(" · ");return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"result-meta",children:u}),o.jsx(sn,{imageOverride:n?t:null,onAfterDeleteFocus:s}),e.prompt?o.jsx(ln,{prompt:e.prompt,onCopy:i}):null]})}function oa({zoom:e,onZoomIn:t,onZoomOut:n,onZoomReset:a}){const{t:r}=ye(),l=Math.round(e*100);return o.jsxs("div",{className:"canvas-toolbar__zoom",role:"group","aria-label":r("canvas.toolbar.zoomGroup"),children:[o.jsx("button",{type:"button",className:"canvas-toolbar__zoom-button",onClick:n,"aria-label":r("canvas.toolbar.zoomOut"),title:r("canvas.toolbar.zoomOut"),children:o.jsx(sa,{})}),o.jsxs("button",{type:"button",className:"canvas-toolbar__zoom-value",onClick:a,"aria-label":r("canvas.toolbar.zoomReset"),title:r("canvas.toolbar.zoomReset"),children:[l,"%"]}),o.jsx("button",{type:"button",className:"canvas-toolbar__zoom-button",onClick:t,"aria-label":r("canvas.toolbar.zoomIn"),title:r("canvas.toolbar.zoomIn"),children:o.jsx(la,{})})]})}function sa(){return o.jsx("svg",{className:"canvas-toolbar__icon canvas-toolbar__icon--small",viewBox:"0 0 24 24","aria-hidden":"true",children:o.jsx("path",{d:"M5 12h14"})})}function la(){return o.jsxs("svg",{className:"canvas-toolbar__icon canvas-toolbar__icon--small",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M12 5v14"}),o.jsx("path",{d:"M5 12h14"})]})}function ca({zoom:e,closeLabel:t,blankCanvasLabel:n,blankCanvasAriaLabel:a,blankCanvasShortcut:r,blankCanvasBusy:l,shortcutHint:s,onZoomIn:i,onZoomOut:d,onZoomReset:u,onCreateBlankCanvas:b,onClose:f}){return o.jsxs("div",{className:"canvas-mode-topbar",children:[o.jsxs("div",{className:"canvas-mode-topbar__stack",children:[o.jsx("span",{className:"canvas-mode-topbar__label",children:"Canvas Mode"}),o.jsx(oa,{zoom:e,onZoomIn:i,onZoomOut:d,onZoomReset:u}),o.jsx("span",{className:"canvas-mode-topbar__shortcuts",children:s})]}),o.jsx("div",{className:"canvas-mode-topbar__center",children:o.jsxs("button",{type:"button",className:"canvas-mode-blank",onClick:b,disabled:l,"aria-label":a,title:a,children:[o.jsx("span",{"aria-hidden":"true",children:"+"}),o.jsx("span",{children:n}),o.jsx("kbd",{children:r})]})}),o.jsxs("button",{type:"button",className:"canvas-mode-close",onClick:f,"aria-label":t,children:[o.jsx("kbd",{children:"ESC"}),o.jsx("span",{children:t})]})]})}function Je(e,t,n){return Math.max(t,Math.min(n,e))}function ia({zoom:e,panX:t,panY:n}){const a=Je(100/Math.max(1,e),18,100),r=a/2,l=Je(50-t/40,r,100-r),s=Je(50-n/40,r,100-r);return{width:`${a}%`,height:`${a}%`,left:`${l}%`,top:`${s}%`}}function ua({imageSrc:e,zoom:t,panX:n,panY:a,resetLabel:r,onReset:l}){return o.jsxs("button",{type:"button",className:"canvas-viewport-minimap",onClick:l,"aria-label":r,title:r,children:[o.jsx("img",{src:e,alt:"","aria-hidden":"true"}),o.jsx("span",{className:"canvas-viewport-minimap__window",style:ia({zoom:t,panX:n,panY:a}),"aria-hidden":"true"})]})}function Ne(e){return Math.min(1,Math.max(0,e))}function da(e){return new Promise((t,n)=>{e.toBlob(a=>{a?t(a):n(new Error("mask_blob_unavailable"))},"image/png")})}async function ha(e){const t=e.imageElement.naturalWidth,n=e.imageElement.naturalHeight;if(!t||!n)throw new Error("mask_source_size_unavailable");if(e.boxes.length===0)throw new Error("mask_boxes_required");const a=document.createElement("canvas");a.width=t,a.height=n;const r=a.getContext("2d");if(!r)throw new Error("mask_context_unavailable");r.fillStyle="rgba(0, 0, 0, 1)",r.fillRect(0,0,t,n),r.globalCompositeOperation="destination-out";for(const l of e.boxes){const s=Ne(l.x)*t,i=Ne(l.y)*n,d=Ne(l.width)*t,u=Ne(l.height)*n;d>0&&u>0&&r.fillRect(s,i,d,u)}return da(a)}async function fa(e){const t=e.naturalWidth,n=e.naturalHeight;if(!t||!n)throw new Error("image_source_size_unavailable");const a=document.createElement("canvas");a.width=t,a.height=n;const r=a.getContext("2d");if(!r)throw new Error("image_context_unavailable");return r.drawImage(e,0,0,t,n),a.toDataURL("image/png")}function ct(e){return new Promise((t,n)=>{const a=new FileReader;a.onerror=()=>n(new Error("mask_blob_read_failed")),a.onload=()=>t(String(a.result)),a.readAsDataURL(e)})}const pa=`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='8' fill='white' fill-opacity='0.16' stroke='black' stroke-width='3'/%3E%3Ccircle cx='14' cy='14' r='8' fill='none' stroke='white' stroke-width='1.5'/%3E%3Ccircle cx='14' cy='14' r='2' fill='white' stroke='black' stroke-width='1'/%3E%3C/svg%3E") 14 14, auto`,ma=`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='8' fill='white' fill-opacity='0.18' stroke='black' stroke-width='3'/%3E%3Ccircle cx='14' cy='14' r='8' fill='none' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E") 14 14, auto`;function va(e){return e==="low"?"l":e==="medium"?"m":e==="high"?"h":e??null}function ba(e){if(!e)return null;const t=e.match(/^(\d+)x\1$/);return t?`${t[1]}²`:e.replace("x","×")}function ga(e){const t=e.url??e.image;if(!e.canvasVersion||!e.canvasMergedAt||t.startsWith("data:"))return t;const n=t.includes("?")?"&":"?";return`${t}${n}canvasMergedAt=${e.canvasMergedAt}`}function xa(e){const t=e.canvasSourceFilename??e.filename;return t?`/generated/${encodeURIComponent(t)}`:e.url??e.image}async function xt(e){const t=xa(e);if(t.startsWith("data:image/png;"))return t;const n=new Image;return await new Promise((a,r)=>{n.onload=()=>a(),n.onerror=()=>r(new Error("clean_source_load_failed")),n.src=t}),fa(n)}function it(e,t){return!e.canvasVersion||e.prompt||!t?.prompt?e:{...e,prompt:t.prompt}}function ya(e,t){if(!t?.filename)return null;const n=e.find(a=>a.canvasVersion&&(a.canvasSourceFilename===t.filename||a.canvasEditableFilename===t.filename))??null;return n?it(n,t):null}function ka(e,t){if(cn(e)){const n=e.images[0];if(!n)throw new Error("edit_empty_response");return{...n,prompt:t,reasoningEffort:e.reasoningEffort,provider:e.provider,quality:e.quality,size:e.size,moderation:e.moderation,model:e.model,usage:e.usage,kind:"edit",createdAt:Date.now()}}return{image:e.image,url:e.filename?`/generated/${e.filename}`:e.image,thumb:e.image,filename:e.filename,prompt:t,elapsed:e.elapsed,reasoningEffort:e.reasoningEffort,provider:e.provider,quality:e.quality,size:e.size,moderation:e.moderation,model:e.model,usage:e.usage,revisedPrompt:e.revisedPrompt??null,promptMode:e.promptMode??null,kind:"edit",createdAt:Date.now()}}const Qe=new WeakMap;function wa(e){if(!e.complete||!e.naturalWidth||!e.naturalHeight)return!1;const t=Qe.get(e);if(t&&t.src===e.currentSrc&&t.width===e.naturalWidth&&t.height===e.naturalHeight)return t.result;const n=64,a=Math.min(n,e.naturalWidth),r=Math.min(n,e.naturalHeight),l=document.createElement("canvas");l.width=a,l.height=r;const s=l.getContext("2d",{willReadFrequently:!0});if(!s)return!1;try{s.drawImage(e,0,0,a,r);const i=s.getImageData(0,0,a,r).data;for(let d=3;d<i.length;d+=4)if(i[d]<250)return Qe.set(e,{src:e.currentSrc,width:e.naturalWidth,height:e.naturalHeight,result:!0}),!0;return Qe.set(e,{src:e.currentSrc,width:e.naturalWidth,height:e.naturalHeight,result:!1}),!1}catch{return!1}}function Ca(e,t){if(e.width!==t.width||e.height!==t.height||e.data.length!==t.data.length)throw new Error("cleanup_mask_size_mismatch")}function yt(e,t){return{width:e,height:t,data:new Uint8Array(e*t)}}function rt(e){return{width:e.width,height:e.height,data:new Uint8Array(e.data)}}function _a(e,t){Ca(e,t);for(let n=0;n<e.data.length;n+=1)(t.data[n]??0)>0&&(e.data[n]=0)}function Se(e,t){if(!e)return null;const n=rt(e);return t&&_a(n,t),n}function Ma(e,t){if(e.width!==t.width||e.height!==t.height)throw new Error("cleanup_mask_size_mismatch");const n=new ImageData(new Uint8ClampedArray(e.data),e.width,e.height);for(let a=0;a<t.data.length;a+=1)(t.data[a]??0)>0&&(n.data[a*4+3]=0);return n}const ut=[{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}],Ea=1024;function Sa(e){return Math.max(0,Math.min(255,Math.round(e)))}function Rt(e,t,n){const a=Math.max(0,Math.min(t-1,Math.round(e.x*(t-1))));return Math.max(0,Math.min(n-1,Math.round(e.y*(n-1))))*t+a}function Ba(e,t){return(t.length>0?t:ut).map(a=>{const r=Rt(a,e.width,e.height)*4;return{r:e.data[r]??0,g:e.data[r+1]??0,b:e.data[r+2]??0}})}function ja(e,t,n,a){for(const r of n)if(Math.max(Math.abs((e[t]??0)-r.r),Math.abs((e[t+1]??0)-r.g),Math.abs((e[t+2]??0)-r.b))<=a)return!0;return!1}function Be(e,t,n,a,r,l,s){if(e<0||e>=a.length||a[e])return r;const i=e*4;return(t.data[i+3]??0)===0?(a[e]=1,r):ja(t.data,i,l,s)?(a[e]=1,n[r]=e,r+1):r}function et(){return ut.map(e=>({...e}))}function kt(e,t,n,a){if(e.width!==t.width||e.height!==t.height)throw new Error("cleanup_mask_size_mismatch");const{width:r,height:l}=t,s=r*l,i=new Uint8Array(s),d=new Int32Array(s),u=Ba(t,n),b=Sa(a);let f=0;for(const _ of n.length>0?n:ut)f=Be(Rt(_,r,l),t,d,i,f,u,b);for(;f>0;){const _=d[--f];e.data[_]=255;const B=_%r;B>0&&(f=Be(_-1,t,d,i,f,u,b)),B<r-1&&(f=Be(_+1,t,d,i,f,u,b)),_>=r&&(f=Be(_-r,t,d,i,f,u,b)),_<s-r&&(f=Be(_+r,t,d,i,f,u,b))}}function Ta(e,t){const n=new ImageData(new Uint8ClampedArray(e.data),e.width,e.height),a=Ma(n,t),r=t.data.reduce((l,s)=>l+(s>0?1:0),0);return{imageData:{width:e.width,height:e.height,data:a.data},stats:{width:e.width,height:e.height,removedPixels:r,removedPercent:t.data.length>0?r/t.data.length:0}}}function Lt(e){return new Promise((t,n)=>{e.toBlob(a=>{a?t(a):n(new Error("background_cleanup_blob_failed"))},"image/png")})}function Ot(e,t){const n=e.naturalWidth,a=e.naturalHeight;if(n<=0||a<=0)throw new Error("background_cleanup_image_not_ready");const r=t&&t>0?Math.min(1,t/Math.max(n,a)):1,l=Math.max(1,Math.round(n*r)),s=Math.max(1,Math.round(a*r)),i=document.createElement("canvas");i.width=l,i.height=s;const d=i.getContext("2d",{willReadFrequently:!0});if(!d)throw new Error("background_cleanup_context_failed");return d.drawImage(e,0,0,l,s),{canvas:i,context:d,width:l,height:s}}async function wt({imageElement:e,mask:t}){try{const{canvas:n,context:a,width:r,height:l}=Ot(e),s=a.getImageData(0,0,r,l),i=Ta({width:r,height:l,data:s.data},t),d=a.createImageData(r,l);d.data.set(i.imageData.data),a.putImageData(d,0,0);const u=await Lt(n);return{blob:u,dataUrl:await ct(u),stats:i.stats}}catch(n){throw n instanceof Error?n:new Error("background_cleanup_failed")}}async function Pa({imageElement:e,mask:t}){try{const{width:n,height:a}=Ot(e,Ea),r=document.createElement("canvas");r.width=n,r.height=a;const l=r.getContext("2d");if(!l)throw new Error("background_cleanup_context_failed");const s=l.createImageData(n,a);let i=0;for(let u=0;u<a;u+=1)for(let b=0;b<n;b+=1){const f=Math.min(t.width-1,Math.floor(b/n*t.width)),_=Math.min(t.height-1,Math.floor(u/a*t.height));if((t.data[_*t.width+f]??0)===0)continue;const B=(u*n+b)*4;s.data[B]=168,s.data[B+1]=85,s.data[B+2]=247,s.data[B+3]=150,i+=1}l.putImageData(s,0,0);const d=await Lt(r);return{dataUrl:await ct(d),stats:{width:t.width,height:t.height,removedPixels:t.data.reduce((u,b)=>u+(b>0?1:0),0),removedPercent:t.data.length>0?i/(n*a):0}}}catch(n){throw n instanceof Error?n:new Error("background_cleanup_failed")}}function Ct(e){return{...e,seeds:e.seeds.map(t=>({intent:t.intent,point:{...t.point}})),brushStrokes:e.brushStrokes.map(t=>({...t,points:t.points.map(n=>({...n}))})),brushCursor:e.brushCursor?{...e.brushCursor}:null,removeMask:e.removeMask?rt(e.removeMask):null,preserveMask:e.preserveMask?rt(e.preserveMask):null}}function Da(){return`cleanup_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function Re(e){return Math.max(0,Math.min(1,e))}function Aa(e){const t=[],n=Math.max(0,e.radius*.55);for(const a of e.points)t.push({...a}),!(n<=0)&&t.push({x:Re(a.x-n),y:a.y},{x:Re(a.x+n),y:a.y},{x:a.x,y:Re(a.y-n)},{x:a.x,y:Re(a.y+n)});return t}function Ia(e){const t=e.naturalWidth,n=e.naturalHeight;if(t<=0||n<=0)throw new Error("background_cleanup_image_not_ready");const a=document.createElement("canvas");a.width=t,a.height=n;const r=a.getContext("2d",{willReadFrequently:!0});if(!r)throw new Error("background_cleanup_context_failed");r.drawImage(e,0,0,t,n);const l=r.getImageData(0,0,t,n);return{width:t,height:n,data:l.data}}function Na({canvasOpen:e,currentImage:t,canvasDisplayImage:n,imageElementRef:a,canvasSourceImageRef:r,lastMergedDataUrlRef:l,setCanvasSaveState:s,setCanvasVersionItem:i,applyMergedCanvasImage:d,attachCanvasVersionReference:u,showToast:b,t:f}){const[_,B]=c.useState(!1),[A,O]=c.useState("remove"),[T,N]=c.useState("click"),[m,C]=c.useState("flat-flood-fill"),[E,y]=c.useState([]),[v,Z]=c.useState([]),[I,U]=c.useState(28),[g,S]=c.useState(null),[D,P]=c.useState(null),[V,Y]=c.useState(null),[te,ne]=c.useState(!1),[se,ue]=c.useState(.018),[L,p]=c.useState(null),[R,J]=c.useState(!1),[ae,le]=c.useState(!1),K=c.useRef(null),q=c.useRef(null),G=c.useRef(null),z=c.useRef({past:[],future:[]}),w=c.useRef(0),$=c.useRef(null),ee=c.useCallback(()=>Ct({intent:A,tool:T,engine:m,seeds:E,brushStrokes:v,brushRadius:se,tolerance:I,removeMask:K.current,preserveMask:q.current,preview:g,maskOverlay:D,stats:V,active:te,brushCursor:L}),[v,D,g,E,V,I,L,se,m,A,T,te]),W=c.useCallback(()=>{z.current={past:[...z.current.past.slice(-19),ee()],future:[]}},[ee]),ce=c.useCallback(x=>{const k=Ct(x);K.current=k.removeMask,q.current=k.preserveMask,G.current=null,O(k.intent),N(k.tool),C(k.engine),y(k.seeds),Z(k.brushStrokes),ue(k.brushRadius),U(k.tolerance),S(k.preview),P(k.maskOverlay),Y(k.stats),ne(k.active),p(k.brushCursor),J(!1),le(!1)},[]),X=c.useCallback(async()=>{if(!a.current||!t)return;const x=Se(K.current,q.current);if(!x){P(null),Y(null);return}const k=w.current+1;w.current=k,J(!0);try{const M=await Pa({imageElement:a.current,mask:x});if(w.current!==k)return;P(M),Y(M.stats)}catch{if(w.current!==k)return;b(f("canvas.toolbar.cleanupFailed"),!0)}finally{w.current===k&&J(!1)}},[t,a,b,f]),F=c.useCallback(async(x,k,M)=>{if(!a.current)return;const Q=Ia(a.current),ie=yt(Q.width,Q.height),ke=yt(Q.width,Q.height);for(const fe of x){const Ce=fe.intent==="remove"?ie:ke;kt(Ce,Q,[fe.point],M)}for(const fe of k){const Ce=fe.intent==="remove"?ie:ke;kt(Ce,Q,Aa(fe),M)}K.current=ie,q.current=ke},[a]),de=c.useCallback(()=>{w.current+=1,$.current!=null&&(window.clearTimeout($.current),$.current=null),K.current=null,q.current=null,G.current=null,z.current={past:[],future:[]},y([]),Z([]),S(null),P(null),Y(null),ne(!1),p(null),J(!1),le(!1)},[]),re=c.useCallback(()=>{const x=z.current.past.pop();return x?(z.current.future=[ee(),...z.current.future.slice(0,19)],ce(x),!0):!1},[ee,ce]),we=c.useCallback(()=>{const x=z.current.future.shift();return x?(z.current.past=[...z.current.past.slice(-19),ee()],ce(x),!0):!1},[ee,ce]),Pe=c.useCallback(x=>{W();const k=[...E,{point:x,intent:A}];y(k),S(null),F(k,v,I).then(X)},[v,E,I,A,W,F,X]),Oe=c.useCallback(()=>{W();const x=et().map(k=>({point:k,intent:"remove"}));y(x),S(null),ne(!1),F(x,v,I).then(X)},[v,I,W,F,X]),$e=c.useCallback(()=>{W(),N("click"),ne(x=>!x)},[W]),Ue=c.useCallback(x=>{W(),$.current!=null&&window.clearTimeout($.current),U(x),S(null),$.current=window.setTimeout(()=>{$.current=null,F(E,v,x).then(X)},180)},[v,E,W,F,X]),H=c.useCallback(async()=>{if(!a.current||!t)return null;let x=Se(K.current,q.current);if(!x){const M=et().map(Q=>({point:Q,intent:"remove"}));y(M),await F(M,v,I),x=Se(K.current,q.current)}if(!x)return null;W();const k=w.current+1;w.current=k,J(!0);try{const M=await wt({imageElement:a.current,mask:x});return w.current!==k?null:(S(M),P(null),Y(M.stats),M)}catch{return w.current!==k||b(f("canvas.toolbar.cleanupFailed"),!0),null}finally{w.current===k&&J(!1)}},[v,I,t,a,W,F,b,f]),We=c.useCallback(()=>{W(),de()},[W,de]),He=c.useCallback(x=>{W();const k={id:Da(),intent:A,points:[{...x}],radius:se};G.current=k,p(x),Z(M=>[...M,k])},[se,A,W]),Fe=c.useCallback(x=>{const k=G.current;if(!k){p(x);return}k.points=[...k.points,{...x}],p(x),Z(M=>M.map(Q=>Q.id===k.id?{...k,points:k.points.map(ie=>({...ie}))}:Q)),F(E,v.map(M=>M.id===k.id?k:M),I).then(X)},[v,E,I,F,X]),Ve=c.useCallback(()=>{G.current=null,F(E,v,I).then(X)},[v,E,I,F,X]),ve=c.useCallback(async()=>{if(!t||!a.current)return;const x=r.current??t;if(!x?.filename){b(f("canvas.toolbar.cleanupFailed"),!0);return}let k=Se(K.current,q.current);if(!k){const M=et().map(Q=>({point:Q,intent:"remove"}));y(M),await F(M,v,I),k=Se(K.current,q.current)}if(k){le(!0),s("saving");try{W();const M=await wt({imageElement:a.current,mask:k}),Q=await Bt({sourceFilename:x.canvasSourceFilename??x.filename,image:M.blob,prompt:x.prompt}),ie=it(Q.item,x);l.current=M.dataUrl,i(ie),d(ie),await u(ie),s("saved"),S(null),P(null),Y(M.stats),ne(!1),b(f("canvas.toolbar.cleanupApplied"))}catch{s("error"),b(f("canvas.toolbar.cleanupFailed"),!0)}finally{le(!1)}}},[d,u,v,I,r,t,a,l,W,F,s,i,b,f]),he=c.useCallback(()=>te?(G.current=null,ne(!1),p(null),!0):!1,[te]);return c.useEffect(()=>{const x=a.current;if(!x||!e){B(!1);return}const k=()=>B(wa(x));if(x.complete)k();else return x.addEventListener("load",k),()=>x.removeEventListener("load",k)},[e,n?.canvasMergedAt,n?.filename,n?.image,n?.url,g?.dataUrl,a]),{imageHasAlpha:_,backgroundCleanupSeeds:E,backgroundCleanupBrushStrokes:v,backgroundCleanupTolerance:I,backgroundCleanupPreview:g,backgroundCleanupMaskOverlay:D,backgroundCleanupStats:V,cleanupIntent:A,setCleanupIntent:O,cleanupTool:T,setCleanupTool:N,cleanupClickEngine:m,setCleanupClickEngine:C,cleanupBrushRadius:se,setCleanupBrushRadius:ue,cleanupBrushCursor:L,setCleanupBrushCursor:p,isBackgroundCleanupActive:te,setIsBackgroundCleanupActive:ne,isBackgroundCleanupPickingSeed:te&&T==="click",isBackgroundCleanupPreviewing:R,isBackgroundCleanupApplying:ae,hasActiveCleanupStroke:!!G.current,canUndoBackgroundCleanup:z.current.past.length>0,canRedoBackgroundCleanup:z.current.future.length>0,resetBackgroundCleanup:de,undoBackgroundCleanup:re,redoBackgroundCleanup:we,addBackgroundCleanupClick:Pe,addBackgroundCleanupSeed:Pe,runBackgroundCleanupPreview:H,handleBackgroundCleanupAutoSample:Oe,handleBackgroundCleanupPickSeed:$e,handleBackgroundCleanupToleranceChange:Ue,handleBackgroundCleanupReset:We,handleBackgroundCleanupApply:ve,handleBackgroundCleanupEscape:he,startBackgroundCleanupBrushStroke:He,updateBackgroundCleanupBrushStroke:Fe,endBackgroundCleanupBrushStroke:Ve}}function _t(e){return Math.min(1,Math.max(0,e))}function Mt(e,t){const n=t.getBoundingClientRect();return{x:_t((e.clientX-n.left)/n.width),y:_t((e.clientY-n.top)/n.height)}}const Ra=.18,La=.12;function Oa(e){return{id:"selection-box",x:Math.min(e.start.x,e.current.x),y:Math.min(e.start.y,e.current.y),width:Math.abs(e.current.x-e.start.x),height:Math.abs(e.current.y-e.start.y),color:"#64c8ff",strokeWidth:2}}function ot(e,t,n=0){return e.x>=t.x-n&&e.x<=t.x+t.width+n&&e.y>=t.y-n&&e.y<=t.y+t.height+n}function $t(e){return{id:e.id,x:e.x,y:e.y,width:Ra,height:La,color:e.color,strokeWidth:1}}function $a(e,t,n){const a=n.x-t.x,r=n.y-t.y,l=e.x-t.x,s=e.y-t.y,i=a*a+r*r;if(i===0)return Math.hypot(e.x-t.x,e.y-t.y);const d=Math.max(0,Math.min(1,(l*a+s*r)/i));return Math.hypot(e.x-(t.x+d*a),e.y-(t.y+d*r))}function Ua(e,t,n){for(let a=1;a<t.points.length;a+=1)if($a(e,t.points[a-1],t.points[a])<=n)return!0;return!1}function Et(e,t){return e.x<=t.x+t.width&&e.x+e.width>=t.x&&e.y<=t.y+t.height&&e.y+e.height>=t.y}function Wa(e,t){return e.points.some(n=>ot(n,t))}function St(e){const t=e.tolerance??.015;for(const n of[...e.memos].reverse())if(ot(e.point,$t(n),t))return Dt(n);for(const n of[...e.boxes].reverse())if(ot(e.point,n,t))return Pt(n);for(const n of[...e.paths].reverse())if(Ua(e.point,n,t))return Tt(n);return null}function Ha(e){const t=[];for(const n of e.annotations.paths)Wa(n,e.box)&&t.push(Tt(n));for(const n of e.annotations.boxes)Et(n,e.box)&&t.push(Pt(n));for(const n of e.annotations.memos)Et($t(n),e.box)&&t.push(Dt(n));return t}function Fa({canvasOpen:e,canvasZoom:t,canvasPanX:n,canvasPanY:a,spaceHeld:r,canDragViewportWithSelect:l,isBackgroundCleanupActive:s,cleanupTool:i,annotationFrameRef:d,annotations:u,setCanvasPan:b,addBackgroundCleanupClick:f,startBackgroundCleanupBrushStroke:_,updateBackgroundCleanupBrushStroke:B,endBackgroundCleanupBrushStroke:A,setCleanupBrushCursor:O}){const T=c.useRef({mode:null,lastPoint:null,didMove:!1}),N=c.useRef({active:!1,startX:0,startY:0,basePanX:0,basePanY:0,pointerId:null}),[m,C]=c.useState(!1),E=g=>{g.currentTarget.setPointerCapture(g.pointerId),N.current={active:!0,startX:g.clientX,startY:g.clientY,basePanX:n,basePanY:a,pointerId:g.pointerId},C(!0)};return{viewportPanActive:m,resetPointerSession:()=>{T.current={mode:null,lastPoint:null,didMove:!1},N.current={active:!1,startX:0,startY:0,basePanX:0,basePanY:0,pointerId:null},C(!1)},handleAnnotationPointerDown:g=>{if(!e||me(g.target)||!d.current)return;const S=g.button===1;if(r||S){g.preventDefault(),E(g);return}g.preventDefault();const D=Mt(g,d.current);if(s){i==="click"?f(D):(g.currentTarget.setPointerCapture(g.pointerId),_(D));return}if(u.activeTool==="select"){const P=St({point:D,paths:u.paths,boxes:u.boxes,memos:u.memos});if(P)g.shiftKey?u.toggleSelected(P):u.selectOne(P),u.startSelectedMove(),T.current={mode:"move",lastPoint:D,didMove:!1};else if(l&&t>1.01){E(g);return}else u.clearSelection(),u.startSelectionBox(D),T.current={mode:"box",lastPoint:D,didMove:!1};g.currentTarget.setPointerCapture(g.pointerId);return}if(u.activeTool==="memo"){u.createMemo(D),requestAnimationFrame(()=>{d.current?.querySelector(".canvas-memo--active")?.focus()});return}if(u.activeTool==="eraser"){if(u.eraserMode==="object"){const P=St({point:D,paths:u.paths,boxes:u.boxes,memos:u.memos});P&&u.eraseObjectAtPoint(P);return}g.currentTarget.setPointerCapture(g.pointerId),u.startEraserStroke(D);return}g.currentTarget.setPointerCapture(g.pointerId),u.startDrawing(D)},handleAnnotationPointerMove:g=>{if(!e||me(g.target)||!d.current)return;if(N.current.active){const D=g.clientX-N.current.startX,P=g.clientY-N.current.startY;b(N.current.basePanX+D,N.current.basePanY+P);return}const S=Mt(g,d.current);if(s){i==="brush"?B(S):O(S);return}if(u.activeTool==="select"){if(T.current.mode==="move"&&T.current.lastPoint){const D={x:S.x-T.current.lastPoint.x,y:S.y-T.current.lastPoint.y};(Math.abs(D.x)>5e-4||Math.abs(D.y)>5e-4)&&(u.moveSelected(D),T.current.didMove=!0),T.current.lastPoint=S}else T.current.mode==="box"&&u.updateSelectionBox(S);return}if(u.activeTool!=="memo"){if(u.activeTool==="eraser"){u.eraserMode==="brush"&&u.updateEraserStroke(S);return}u.moveDrawing(S)}},handleAnnotationPointerUp:g=>{if(e&&!me(g.target)){if(N.current.active&&N.current.pointerId===g.pointerId){g.currentTarget.hasPointerCapture(g.pointerId)&&g.currentTarget.releasePointerCapture(g.pointerId),N.current={active:!1,startX:0,startY:0,basePanX:0,basePanY:0,pointerId:null},C(!1);return}if(g.currentTarget.hasPointerCapture(g.pointerId)&&g.currentTarget.releasePointerCapture(g.pointerId),s){i==="brush"&&A();return}if(u.activeTool==="select"){T.current.mode==="move"&&T.current.didMove&&u.commitSelectedMove(),T.current.mode==="box"&&u.selectionBox&&u.endSelectionBox(Ha({box:Oa(u.selectionBox),annotations:u.toPayload()})),T.current={mode:null,lastPoint:null,didMove:!1};return}if(u.activeTool!=="memo"){if(u.activeTool==="eraser"){u.eraserMode==="brush"&&u.endEraserStroke();return}u.endDrawing()}}},handleAnnotationPointerLeave:()=>{s&&O(null)}}}function Va({canvasOpen:e,canvasZoom:t,currentImage:n,annotations:a,undoBackgroundCleanup:r,redoBackgroundCleanup:l,handleBackgroundCleanupEscape:s,handleCloseCanvas:i,selectHistoryShortcutTarget:d,trashHistoryItem:u,permanentlyDeleteHistoryItemByShortcut:b,setCanvasZoom:f,resetCanvasZoom:_,onCreateBlankCanvas:B,isCreatingBlankCanvas:A}){const[O,T]=c.useState(!1);return c.useEffect(()=>{if(!e)return;const m=v=>{v.preventDefault()},C=v=>{v.ctrlKey&&v.preventDefault()},E={passive:!1,capture:!0},y={passive:!1};return window.addEventListener("wheel",C,E),window.addEventListener("gesturestart",m,y),window.addEventListener("gesturechange",m,y),window.addEventListener("gestureend",m,y),()=>{window.removeEventListener("wheel",C,E),window.removeEventListener("gesturestart",m,y),window.removeEventListener("gesturechange",m,y),window.removeEventListener("gestureend",m,y)}},[e]),c.useEffect(()=>{if(!e)return;const m=E=>{E.code==="Space"&&(me(E.target)||(O||T(!0),E.preventDefault()))},C=E=>{E.code==="Space"&&T(!1)};return window.addEventListener("keydown",m),window.addEventListener("keyup",C),()=>{window.removeEventListener("keydown",m),window.removeEventListener("keyup",C)}},[e,O]),c.useEffect(()=>{if(!e)return;const m=C=>{if(!C.defaultPrevented){if(me(C.target)){C.key==="Escape"&&(C.preventDefault(),C.target.blur(),a.focusMemo(null));return}if(C.key==="Escape"){if(C.preventDefault(),s())return;i();return}if(C.shiftKey&&!C.metaKey&&!C.ctrlKey&&!C.altKey&&C.key.toLowerCase()==="b"){C.preventDefault(),!A&&!C.repeat&&B();return}if((C.metaKey||C.ctrlKey)&&C.key.toLowerCase()==="z"){if(C.preventDefault(),C.shiftKey){if(l())return;a.redo();return}if(r())return;a.undo()}}};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[a,a.focusMemo,a.redo,a.undo,e,i,s,A,B,l,r]),{spaceHeld:O,handleViewerKeyDown:m=>{if(me(m.target)){m.key==="Escape"&&(m.preventDefault(),m.target.blur(),a.focusMemo(null));return}if(e&&["1","2","3","4","5","6"].includes(m.key)){m.preventDefault();const C=["select","pen","box","arrow","memo","eraser"];a.setTool(C[Number(m.key)-1]);return}if(e&&m.key==="Escape"){if(m.preventDefault(),m.stopPropagation(),s())return;i();return}if(e&&m.key==="]"){m.preventDefault(),f(t+.1);return}if(e&&m.key==="["){m.preventDefault(),f(t-.1);return}if(e&&m.key==="0"){m.preventDefault(),_();return}if(m.key==="Delete"||m.key==="Backspace"){if(!n||m.target!==m.currentTarget)return;if(m.preventDefault(),m.shiftKey){b(n);return}u(n);return}m.key!=="ArrowLeft"&&m.key!=="ArrowRight"&&m.key!=="Home"&&m.key!=="End"||m.target===m.currentTarget&&(me(m.target)||(m.preventDefault(),m.key==="ArrowLeft"?d("previous"):m.key==="ArrowRight"?d("next"):m.key==="Home"?d("first"):m.key==="End"&&d("last")))}}}function Ka(e,t){return new Promise((n,a)=>{e.toBlob(r=>{if(r){n(r);return}a(new Error("canvas_blob_unavailable"))},t)})}async function Ut(e){const t=document.createElement("canvas");t.width=e.imageElement.naturalWidth,t.height=e.imageElement.naturalHeight;const n=t.getContext("2d");if(!n)throw new Error("canvas_context_unavailable");e.background?.mode==="matte"&&(n.fillStyle=e.background.color,n.fillRect(0,0,t.width,t.height)),n.drawImage(e.imageElement,0,0,t.width,t.height);const a={width:t.width,height:t.height};for(const l of e.paths)nt(n,l,a);for(const l of e.boxes)at(n,l,a,"committed");for(const l of e.memos)Bn(n,l,a);return{blob:await Ka(t,"image/png"),dataUrl:t.toDataURL("image/png")}}const za=["left","center","right"],Xa=["top","middle","bottom"];function qa(e,t){const n=za[Math.min(2,Math.max(0,Math.floor(e*3)))],a=Xa[Math.min(2,Math.max(0,Math.floor(t*3)))];return`${a==="middle"&&n==="center"?"center":`${a} ${n}`} area (x: ${Math.round(e*100)}%, y: ${Math.round(t*100)}% from top-left)`}function Ya(e){const t=e.map(n=>({...n,text:n.text.trim()})).filter(n=>n.text.length>0);return t.length===0?"":["Apply the following annotation instructions at the specified image locations (percentages are relative to image width and height):",...t.map((n,a)=>`${a+1}. At the ${qa(n.x,n.y)}: ${n.text}`),"Do not render any annotation text, sticky notes, boxes, arrows, or markup in the output image."].join(`
|
|
1
|
+
import{a as c,j as o,u as ye,f as on,w as sn,x as ln,y as cn,z as Bt,B as me,C as un,D as jt,E as dn,b as j,F as hn,c as fn,G as pn,H as mn,J as vn}from"./index-CoxMOXAU.js";const De=2,Le=1e-6;function bn({paths:e,points:t,radius:n,makeId:a=()=>crypto.randomUUID()}){if(e.length===0||t.length===0||n<=0)return{paths:e,changed:!1};let r=!1;const l=[];for(const s of e){const i=gn(s,t,n,a);(i.length!==1||i[0]!==s)&&(r=!0),l.push(...i)}return{paths:l,changed:r}}function gn(e,t,n,a=()=>crypto.randomUUID()){if(e.points.length<De||t.length===0||n<=0)return[e];const r=[];let l=je(e.points[0],t,n)?[]:[e.points[0]];for(let i=1;i<e.points.length;i+=1){const d=e.points[i-1],u=e.points[i],b=je(u,t,n),f=xn(d,u,t,n);if(f){l.length===0&&!je(d,t,n)&&(l=[d]),l.length>0&&f.leftT>Le&&ft(l,Te(d,u,f.leftT)),l.length>=De&&r.push(l),l=[],f.rightT<1-Le&&!b&&(l=[Te(d,u,f.rightT),u]);continue}if(b){l.length>=De&&r.push(l),l=[];continue}l.length===0&&!je(d,t,n)&&(l=[d]),ft(l,u)}if(l.length>=De&&r.push(l),r.length===0)return[];if(r.length===1&&r[0].length===e.points.length)return[e];const s=e.tool==="arrow"?r.length-1:-1;return r.map((i,d)=>({...e,id:d===0?e.id:a(),tool:e.tool==="arrow"&&d!==s?"pen":e.tool,points:i}))}function je(e,t,n){if(t.length===1)return xe(e,t[0])<=n;for(let a=1;a<t.length;a+=1)if(yn(e,t[a-1],t[a])<=n)return!0;return!1}function xe(e,t){const n=e.x-t.x,a=e.y-t.y;return Math.sqrt(n*n+a*a)}function xn(e,t,n,a){const r=xe(e,t);if(r<=Le)return je(e,n,a)?{leftT:0,rightT:1}:null;let l=null,s=Number.POSITIVE_INFINITY;for(const d of n){const u=ht(d,e,t),b=Te(e,t,u),f=xe(d,b);f<s&&(s=f,l=u)}for(let d=1;d<n.length;d+=1){const u=[0,.25,.5,.75,1];for(const b of u){const f=Te(n[d-1],n[d],b),_=ht(f,e,t),B=Te(e,t,_),A=xe(f,B);A<s&&(s=A,l=_)}}if(l===null||s>a)return null;const i=Math.max(a/r,.01);return{leftT:Math.max(0,l-i),rightT:Math.min(1,l+i)}}function ht(e,t,n){const a=n.x-t.x,r=n.y-t.y,l=e.x-t.x,s=e.y-t.y,i=a*a+r*r;return i===0?0:Math.max(0,Math.min(1,(l*a+s*r)/i))}function Te(e,t,n){return{x:e.x+(t.x-e.x)*n,y:e.y+(t.y-e.y)*n}}function ft(e,t){const n=e.at(-1);(!n||xe(n,t)>Le)&&e.push(t)}function yn(e,t,n){const a=n.x-t.x,r=n.y-t.y,l=e.x-t.x,s=e.y-t.y,i=a*a+r*r;if(i===0)return xe(e,t);const d=Math.max(0,Math.min(1,(l*a+s*r)/i));return xe(e,{x:t.x+d*a,y:t.y+d*r})}function st(e,t){return`${e}:${t}`}function lt(e){const t=e.indexOf(":");if(t<=0)return null;const n=e.slice(0,t),a=e.slice(t+1);return!a||n!=="path"&&n!=="box"&&n!=="memo"?null:{kind:n,id:a}}function Tt(e){return st("path",e.id)}function Pt(e){return st("box",e.id)}function Dt(e){return st("memo",e.id)}function pe(e,t,n){const a=lt(e);return a?.kind===t&&a.id===n}const At="ima2.canvas.annotationStyle.v1",It=["#ef4444","#f97316","#eab308","#22c55e","#38bdf8","#6366f1","#a855f7","#111827","#ffffff"],Nt=[2,3,5,8],Ee={color:"#ef4444",strokeWidth:3};function kn(){if(typeof window>"u")return Ee;try{const e=window.localStorage.getItem(At);if(!e)return Ee;const t=JSON.parse(e),n=typeof t.color=="string"&&It.includes(t.color)?t.color:Ee.color,a=typeof t.strokeWidth=="number"&&Nt.includes(t.strokeWidth)?t.strokeWidth:Ee.strokeWidth;return{color:n,strokeWidth:a}}catch{return Ee}}function wn(e){if(!(typeof window>"u"))try{window.localStorage.setItem(At,JSON.stringify(e))}catch{}}const pt=kn(),tt={activeTool:"select",toolColor:pt.color,strokeWidth:pt.strokeWidth,paths:[],boxes:[],memos:[],activeMemoId:null,activePath:null,activeBox:null,eraserMode:"object",activeEraserStroke:null,eraserBaseline:null,selectionBox:null,selectedIds:[],past:[],future:[],memoBaseline:null,moveBaseline:null,isDirty:!1};function ge(e){return{paths:e.paths,boxes:e.boxes,memos:e.memos}}function be(e){return{...e,past:[...e.past.slice(-49),ge(e)],future:[]}}function Ge(e,t){return{...e,past:[...e.past.slice(-49),t],future:[]}}function Cn(e,t){return JSON.stringify(e)===JSON.stringify(t)}function mt(e,t){return{...e,...t,activeMemoId:null,activePath:null,activeBox:null,selectionBox:null,selectedIds:[],isDirty:!0}}function _n(e,t,n){const{start:a,current:r}=e,l=Math.min(a.x,r.x),s=Math.min(a.y,r.y),i=Math.abs(r.x-a.x),d=Math.abs(r.y-a.y);return i<.01||d<.01?null:{id:crypto.randomUUID(),x:l,y:s,width:i,height:d,color:t,strokeWidth:n}}function Mn(e,t){return{...e,x:Math.min(1-e.width,Math.max(0,e.x+t.x)),y:Math.min(1-e.height,Math.max(0,e.y+t.y))}}function Ze(e,t){return{x:Math.min(1,Math.max(0,e.x+t.x)),y:Math.min(1,Math.max(0,e.y+t.y))}}function En(e,t){switch(t.type){case"SET_TOOL":return{...e,activeTool:t.tool};case"SET_ERASER_MODE":return{...e,eraserMode:t.mode};case"SET_STYLE":return{...e,toolColor:t.style.color,strokeWidth:t.style.strokeWidth};case"START_PATH":return{...e,isDirty:!0,activePath:{id:crypto.randomUUID(),tool:e.activeTool,points:[t.point],color:e.toolColor,strokeWidth:e.strokeWidth}};case"ADD_POINT":return e.activePath?{...e,activePath:{...e.activePath,points:[...e.activePath.points,t.point]}}:e;case"END_PATH":return!e.activePath||e.activePath.points.length<2?{...e,activePath:null}:{...be(e),isDirty:!0,paths:[...e.paths,e.activePath],activePath:null};case"START_BOX":return{...e,isDirty:!0,activeBox:{start:t.point,current:t.point}};case"UPDATE_BOX":return e.activeBox?{...e,activeBox:{...e.activeBox,current:t.point}}:e;case"END_BOX":{if(!e.activeBox)return e;const n=_n(e.activeBox,e.toolColor,e.strokeWidth);return n?{...be(e),isDirty:!0,boxes:[...e.boxes,n],activeBox:null}:{...e,activeBox:null}}case"CREATE_MEMO":{const n=crypto.randomUUID(),a={id:n,x:t.point.x,y:t.point.y,text:"",color:e.toolColor};return{...be(e),isDirty:!0,memos:[...e.memos,a],activeMemoId:n}}case"UPDATE_MEMO":return{...e,isDirty:!0,memos:e.memos.map(n=>n.id===t.id?{...n,text:t.text}:n)};case"COMMIT_MEMO_EDIT":return e.memoBaseline?Cn(e.memoBaseline,ge(e))?{...e,memoBaseline:null,activeMemoId:null}:{...Ge(e,e.memoBaseline),memoBaseline:null,activeMemoId:null,isDirty:!0}:{...e,activeMemoId:null};case"DELETE_MEMO":return{...be(e),isDirty:!0,memos:e.memos.filter(n=>n.id!==t.id),activeMemoId:e.activeMemoId===t.id?null:e.activeMemoId,selectedIds:e.selectedIds.filter(n=>!pe(n,"memo",t.id))};case"FOCUS_MEMO":return{...e,activeMemoId:t.id,memoBaseline:t.id&&e.activeMemoId!==t.id&&!e.memoBaseline?ge(e):e.memoBaseline};case"CLEAR":return{...be(e),isDirty:!0,paths:[],boxes:[],memos:[],activeMemoId:null,activePath:null,activeBox:null,selectionBox:null,selectedIds:[]};case"LOAD":return{...tt,activeTool:e.activeTool,eraserMode:e.eraserMode,toolColor:e.toolColor,strokeWidth:e.strokeWidth,...t.payload};case"MARK_SAVED":return{...e,isDirty:!1};case"RESET_LOCAL":return{...tt,activeTool:e.activeTool,eraserMode:e.eraserMode,toolColor:e.toolColor,strokeWidth:e.strokeWidth};case"UNDO":{const n=e.past.at(-1);return n?{...mt(e,n),past:e.past.slice(0,-1),future:[ge(e),...e.future]}:e}case"REDO":{const n=e.future[0];return n?{...mt(e,n),past:[...e.past.slice(-49),ge(e)],future:e.future.slice(1)}:e}case"SELECT_ONE":return{...e,selectedIds:[t.id],selectionBox:null};case"TOGGLE_SELECTED":return{...e,selectedIds:e.selectedIds.includes(t.id)?e.selectedIds.filter(n=>n!==t.id):[...e.selectedIds,t.id],selectionBox:null};case"CLEAR_SELECTION":return{...e,selectedIds:[],selectionBox:null};case"DELETE_SELECTED":return e.selectedIds.length===0?e:{...be(e),isDirty:!0,paths:e.paths.filter(n=>!e.selectedIds.some(a=>pe(a,"path",n.id))),boxes:e.boxes.filter(n=>!e.selectedIds.some(a=>pe(a,"box",n.id))),memos:e.memos.filter(n=>!e.selectedIds.some(a=>pe(a,"memo",n.id))),selectedIds:[]};case"MOVE_SELECTED":return e.selectedIds.length===0?e:{...e,isDirty:!0,paths:e.paths.map(n=>e.selectedIds.some(a=>pe(a,"path",n.id))?{...n,points:n.points.map(a=>Ze(a,t.delta))}:n),boxes:e.boxes.map(n=>e.selectedIds.some(a=>pe(a,"box",n.id))?Mn(n,t.delta):n),memos:e.memos.map(n=>e.selectedIds.some(a=>pe(a,"memo",n.id))?{...n,x:Ze(n,t.delta).x,y:Ze(n,t.delta).y}:n)};case"START_SELECTED_MOVE":return{...e,moveBaseline:ge(e)};case"COMMIT_SELECTED_MOVE":return e.moveBaseline?{...Ge(e,e.moveBaseline),moveBaseline:null,isDirty:!0}:e;case"START_SELECTION_BOX":return{...e,selectionBox:{start:t.point,current:t.point},selectedIds:[]};case"UPDATE_SELECTION_BOX":return e.selectionBox?{...e,selectionBox:{...e.selectionBox,current:t.point}}:e;case"END_SELECTION_BOX":return{...e,selectionBox:null,selectedIds:t.ids};case"ERASE_OBJECT":{const n=lt(t.id);return!n||!(n.kind==="path"?e.paths.some(r=>r.id===n.id):n.kind==="box"?e.boxes.some(r=>r.id===n.id):e.memos.some(r=>r.id===n.id))?e:{...be(e),isDirty:!0,paths:n.kind==="path"?e.paths.filter(r=>r.id!==n.id):e.paths,boxes:n.kind==="box"?e.boxes.filter(r=>r.id!==n.id):e.boxes,memos:n.kind==="memo"?e.memos.filter(r=>r.id!==n.id):e.memos,selectedIds:e.selectedIds.filter(r=>r!==t.id)}}case"START_ERASER_STROKE":return{...e,activeEraserStroke:{points:[t.point],radius:.018},eraserBaseline:ge(e)};case"UPDATE_ERASER_STROKE":return e.activeEraserStroke?{...e,activeEraserStroke:{...e.activeEraserStroke,points:[...e.activeEraserStroke.points,t.point]}}:e;case"END_ERASER_STROKE":{if(!e.activeEraserStroke||!e.eraserBaseline)return{...e,activeEraserStroke:null,eraserBaseline:null};const n=bn({paths:e.paths,points:e.activeEraserStroke.points,radius:e.activeEraserStroke.radius});return n.changed?{...Ge(e,e.eraserBaseline),paths:n.paths,activeEraserStroke:null,eraserBaseline:null,selectedIds:[],isDirty:!0}:{...e,activeEraserStroke:null,eraserBaseline:null}}default:return e}}function Sn(){const[e,t]=c.useReducer(En,tt),n=c.useMemo(()=>e.paths.length>0||e.boxes.length>0||e.memos.length>0,[e.paths.length,e.boxes.length,e.memos.length]),a=e.past.length>0,r=e.future.length>0,l=c.useCallback(p=>t({type:"SET_TOOL",tool:p}),[]),s=c.useCallback(p=>{wn(p),t({type:"SET_STYLE",style:p})},[]),i=c.useCallback(()=>t({type:"CLEAR"}),[]),d=c.useCallback(p=>t({type:"LOAD",payload:p}),[]),u=c.useCallback(()=>t({type:"MARK_SAVED"}),[]),b=c.useCallback(()=>t({type:"RESET_LOCAL"}),[]),f=c.useCallback(()=>t({type:"UNDO"}),[]),_=c.useCallback(()=>t({type:"REDO"}),[]),B=c.useCallback(()=>t({type:"COMMIT_MEMO_EDIT"}),[]),A=c.useCallback(()=>t({type:"START_SELECTED_MOVE"}),[]),O=c.useCallback(()=>t({type:"COMMIT_SELECTED_MOVE"}),[]),T=c.useCallback(p=>{e.activeTool==="pen"||e.activeTool==="arrow"?t({type:"START_PATH",point:p}):e.activeTool==="box"&&t({type:"START_BOX",point:p})},[e.activeTool]),N=c.useCallback(p=>{e.activePath?t({type:"ADD_POINT",point:p}):e.activeBox&&t({type:"UPDATE_BOX",point:p})},[e.activePath,e.activeBox]),m=c.useCallback(()=>{e.activePath?t({type:"END_PATH"}):e.activeBox&&t({type:"END_BOX"})},[e.activePath,e.activeBox]),C=c.useCallback(p=>t({type:"CREATE_MEMO",point:p}),[]),E=c.useCallback((p,R)=>t({type:"UPDATE_MEMO",id:p,text:R}),[]),y=c.useCallback(p=>t({type:"DELETE_MEMO",id:p}),[]),v=c.useCallback(p=>t({type:"FOCUS_MEMO",id:p}),[]),Z=c.useCallback(p=>t({type:"SET_ERASER_MODE",mode:p}),[]),I=c.useCallback(p=>t({type:"SELECT_ONE",id:p}),[]),U=c.useCallback(p=>t({type:"TOGGLE_SELECTED",id:p}),[]),g=c.useCallback(()=>t({type:"CLEAR_SELECTION"}),[]),S=c.useCallback(()=>t({type:"DELETE_SELECTED"}),[]),D=c.useCallback(p=>t({type:"MOVE_SELECTED",delta:p}),[]),P=c.useCallback(p=>t({type:"START_SELECTION_BOX",point:p}),[]),V=c.useCallback(p=>t({type:"UPDATE_SELECTION_BOX",point:p}),[]),Y=c.useCallback(p=>t({type:"END_SELECTION_BOX",ids:p}),[]),te=c.useCallback(p=>t({type:"ERASE_OBJECT",id:p}),[]),ne=c.useCallback(p=>t({type:"START_ERASER_STROKE",point:p}),[]),se=c.useCallback(p=>t({type:"UPDATE_ERASER_STROKE",point:p}),[]),ue=c.useCallback(()=>t({type:"END_ERASER_STROKE"}),[]),L=c.useCallback(()=>({paths:e.paths,boxes:e.boxes,memos:e.memos}),[e.paths,e.boxes,e.memos]);return{...e,canUndo:a,canRedo:r,hasAnnotations:n,setTool:l,setStyle:s,setEraserMode:Z,startDrawing:T,moveDrawing:N,endDrawing:m,createMemo:C,updateMemo:E,commitMemoEdit:B,deleteMemo:y,focusMemo:v,clear:i,load:d,toPayload:L,markSaved:u,resetLocal:b,undo:f,redo:_,selectOne:I,toggleSelected:U,clearSelection:g,deleteSelected:S,moveSelected:D,startSelectedMove:A,commitSelectedMove:O,startSelectionBox:P,updateSelectionBox:V,endSelectionBox:Y,eraseObjectAtPoint:te,startEraserStroke:ne,updateEraserStroke:se,endEraserStroke:ue}}function Ae(e,t){return{x:e.x*t.width,y:e.y*t.height}}function nt(e,t,n){if(t.points.length<2)return;const a=Ae(t.points[0],n);e.save(),e.beginPath(),e.strokeStyle=t.color,e.lineWidth=t.strokeWidth,e.lineCap="round",e.lineJoin="round",e.moveTo(a.x,a.y);for(const r of t.points.slice(1)){const l=Ae(r,n);e.lineTo(l.x,l.y)}if(e.stroke(),t.tool==="arrow"){const r=Ae(t.points[t.points.length-1],n),l=Ae(t.points[t.points.length-2],n);Tn(e,l,r,t.color,t.strokeWidth)}e.restore()}function at(e,t,n,a){const r="start"in t?{x:Math.min(t.start.x,t.current.x),y:Math.min(t.start.y,t.current.y),width:Math.abs(t.current.x-t.start.x),height:Math.abs(t.current.y-t.start.y),color:"#64c8ff",strokeWidth:2}:t;e.save(),e.strokeStyle=r.color,e.lineWidth=a==="active"?Math.max(2,r.strokeWidth):r.strokeWidth,a==="active"&&e.setLineDash([8,6]),e.strokeRect(r.x*n.width,r.y*n.height,r.width*n.width,r.height*n.height),e.restore()}function Bn(e,t,n){const a=t.x*n.width,r=t.y*n.height,l=Math.min(260,Math.max(150,n.width*.22)),s=12,i=18;e.save(),e.font="14px sans-serif";const d=Pn(e,t.text.trim()||" ",l-s*2),u=Math.max(52,s*2+d.length*i);e.fillStyle="rgba(255, 246, 179, 0.96)",e.strokeStyle="rgba(44, 37, 12, 0.28)",e.lineWidth=1,Dn(e,a,r,l,u,8),e.fill(),e.stroke(),e.fillStyle="#2f2a13",e.textBaseline="top",d.forEach((b,f)=>{e.fillText(b,a+s,r+s+f*i)}),e.restore()}function jn(e,t){const n=lt(e);if(!n)return null;if(n.kind==="box")return t.boxes.find(u=>u.id===n.id)??null;const a=n.kind==="memo"?t.memos.find(u=>u.id===n.id):null;if(a)return{id:a.id,x:a.x,y:a.y,width:.18,height:.12,color:a.color,strokeWidth:1};if(n.kind!=="path")return null;const r=t.paths.find(u=>u.id===n.id);if(!r||r.points.length===0)return null;const l=r.points.map(u=>u.x),s=r.points.map(u=>u.y),i=Math.min(...l),d=Math.min(...s);return{id:r.id,x:i,y:d,width:Math.max(.01,Math.max(...l)-i),height:Math.max(.01,Math.max(...s)-d),color:r.color,strokeWidth:r.strokeWidth}}function vt(e,t,n){const a="start"in t?{x:Math.min(t.start.x,t.current.x),y:Math.min(t.start.y,t.current.y),width:Math.abs(t.current.x-t.start.x),height:Math.abs(t.current.y-t.start.y)}:t;e.save(),e.strokeStyle="#64c8ff",e.lineWidth=2,e.setLineDash([5,5]),e.strokeRect(a.x*n.width,a.y*n.height,a.width*n.width,a.height*n.height),e.restore()}function Tn(e,t,n,a,r){const l=Math.atan2(n.y-t.y,n.x-t.x),s=Math.max(12,r*4),i=Math.PI/7;e.save(),e.fillStyle=a,e.beginPath(),e.moveTo(n.x,n.y),e.lineTo(n.x-s*Math.cos(l-i),n.y-s*Math.sin(l-i)),e.lineTo(n.x-s*Math.cos(l+i),n.y-s*Math.sin(l+i)),e.closePath(),e.fill(),e.restore()}function Pn(e,t,n){const a=t.split(/\s+/).filter(Boolean);if(a.length===0)return[""];const r=[];let l="";for(const s of a){const i=l?`${l} ${s}`:s;if(e.measureText(i).width<=n||l===""){l=i;continue}r.push(l),l=s}return l&&r.push(l),r}function Dn(e,t,n,a,r,l){const s=Math.min(l,a/2,r/2);e.beginPath(),e.moveTo(t+s,n),e.lineTo(t+a-s,n),e.quadraticCurveTo(t+a,n,t+a,n+s),e.lineTo(t+a,n+r-s),e.quadraticCurveTo(t+a,n+r,t+a-s,n+r),e.lineTo(t+s,n+r),e.quadraticCurveTo(t,n+r,t,n+r-s),e.lineTo(t,n+s),e.quadraticCurveTo(t,n,t+s,n),e.closePath()}function An({paths:e,boxes:t,memos:n=[],selectedIds:a=[],selectionBox:r=null,activePath:l,activeBox:s}){const i=c.useRef(null);return c.useEffect(()=>{const d=i.current;if(!d)return;const u=d.getBoundingClientRect(),b=window.devicePixelRatio||1;d.width=Math.max(1,Math.round(u.width*b)),d.height=Math.max(1,Math.round(u.height*b));const f=d.getContext("2d");if(!f)return;f.setTransform(b,0,0,b,0,0),f.clearRect(0,0,u.width,u.height);const _={width:u.width,height:u.height};for(const B of e)nt(f,B,_);for(const B of t)at(f,B,_,"committed");for(const B of a){const A=jn(B,{paths:e,boxes:t,memos:n});A&&vt(f,A,_)}r&&vt(f,r,_),l&&nt(f,l,_),s&&at(f,s,_,"active")},[e,t,n,a,r,l,s]),o.jsx("canvas",{ref:i,className:"canvas-annotation-layer","aria-hidden":"true"})}function Ie(e){e.stopPropagation()}function In({memos:e,activeMemoId:t,onUpdate:n,onDelete:a,onFocus:r,onCommit:l}){return o.jsx("div",{className:"canvas-memo-overlay",children:e.map(s=>o.jsx("textarea",{className:`canvas-memo${t===s.id?" canvas-memo--active":""}`,value:s.text,style:{left:`${s.x*100}%`,top:`${s.y*100}%`},autoFocus:t===s.id,onFocus:()=>r(s.id),onPointerDown:Ie,onPointerMove:Ie,onPointerUp:Ie,onPointerCancel:Ie,onChange:i=>n(s.id,i.currentTarget.value),onBlur:()=>{l?.(),s.text.trim()===""&&a(s.id)},"aria-label":"Canvas memo"},s.id))})}function Nn({annotationFrameRef:e,imageElementRef:t,frameClassName:n,frameStyle:a,imageKey:r,imageSrc:l,fallbackImage:s,alt:i,canvasOpen:d,maskOverlayUrl:u,cleanupLayer:b,annotations:f,onOpenCanvas:_,onPointerDown:B,onPointerMove:A,onPointerUp:O,onPointerLeave:T}){return o.jsxs("div",{ref:e,className:n,onPointerDown:B,onPointerMove:A,onPointerUp:O,onPointerCancel:O,onPointerLeave:T,style:a,children:[o.jsx("img",{ref:t,className:"result-img",src:l??s,alt:i,decoding:"async",onDoubleClick:N=>{N.stopPropagation(),_()}},r),d&&u?o.jsx("img",{className:"canvas-background-cleanup-mask",src:u,alt:"","aria-hidden":"true",decoding:"async"}):null,d?b:null,d&&o.jsxs(o.Fragment,{children:[o.jsx(An,{paths:f.paths,boxes:f.boxes,memos:f.memos,selectedIds:f.selectedIds,selectionBox:f.selectionBox,activePath:f.activePath,activeBox:f.activeBox}),o.jsx(In,{memos:f.memos,activeMemoId:f.activeMemoId,onUpdate:f.updateMemo,onDelete:f.deleteMemo,onFocus:f.focusMemo,onCommit:f.commitMemoEdit})]})]})}function Rn(e){return`${e.x*100} ${e.y*100}`}function Ln(e){return e.map(Rn).join(" ")}function On({seeds:e,brushStrokes:t,brushCursor:n,brushRadius:a,active:r}){if(!r&&e.length===0&&t.length===0)return null;const l=a*100;return o.jsxs("svg",{className:"canvas-cleanup-overlay",viewBox:"0 0 100 100",preserveAspectRatio:"none","aria-hidden":"true",children:[t.map(s=>o.jsx("polyline",{className:`canvas-cleanup-overlay__stroke canvas-cleanup-overlay__stroke--${s.intent}`,points:Ln(s.points),strokeWidth:Math.max(.3,s.radius*200),vectorEffect:"non-scaling-stroke"},s.id)),r&&n?o.jsx("circle",{className:"canvas-cleanup-cursor",cx:n.x*100,cy:n.y*100,r:Math.max(.6,l),vectorEffect:"non-scaling-stroke"}):null]})}function $n({mode:e,matteColor:t,onModeChange:n,onMatteColorChange:a}){const{t:r}=ye();return o.jsxs("div",{className:"canvas-toolbar__bg",role:"group","aria-label":r("canvas.toolbar.bgGroup"),children:[o.jsx("button",{type:"button",className:`canvas-toolbar__bg-tab${e==="alpha"?" active":""}`,onClick:()=>n("alpha"),children:r("canvas.toolbar.bgAlpha")}),o.jsx("button",{type:"button",className:`canvas-toolbar__bg-tab${e==="matte"?" active":""}`,onClick:()=>n("matte"),children:r("canvas.toolbar.bgMatte")}),e==="matte"?o.jsx("input",{type:"color","aria-label":r("canvas.toolbar.bgMatteColor"),value:t,onChange:l=>a(l.target.value)}):null]})}function bt({label:e,value:t,options:n,onChange:a}){return o.jsxs("div",{className:"canvas-toolbar__segmented-row",children:[o.jsx("span",{className:"canvas-toolbar__segmented-label",children:e}),o.jsx("div",{className:"canvas-toolbar__segmented",role:"group","aria-label":e,children:n.map(r=>o.jsx("button",{type:"button",className:"canvas-toolbar__segmented-button","data-value":r.value,"aria-pressed":t===r.value,onClick:()=>a(r.value),children:r.label},r.value))})]})}function Un({seedCount:e,tolerance:t,stats:n,hasPreview:a,isPickingSeed:r,intent:l,tool:s,brushRadius:i,isPreviewing:d,isApplying:u,keepOpen:b,disabled:f,onAutoSample:_,onPickSeed:B,onIntentChange:A,onToolChange:O,onBrushRadiusChange:T,onToleranceChange:N,onPreview:m,onApply:C,onReset:E}){const{t:y}=ye(),[v,Z]=c.useState(!1),I=c.useRef(null),U=n?Math.round(n.removedPercent*1e3)/10:0,g=r||s==="brush";return c.useEffect(()=>{if(!v)return;const S=D=>{b||I.current?.contains(D.target)||Z(!1)};return window.addEventListener("pointerdown",S),()=>window.removeEventListener("pointerdown",S)},[b,v]),o.jsxs("div",{className:"canvas-toolbar__cleanup",ref:I,children:[o.jsx("button",{type:"button",className:`canvas-toolbar__button${v||a?" canvas-toolbar__button--active":""}`,onClick:()=>Z(S=>!S),disabled:f,"aria-expanded":v,"aria-label":y("canvas.toolbar.cleanup"),title:y("canvas.toolbar.cleanup"),children:o.jsx(Wn,{})}),v?o.jsxs("div",{className:"canvas-toolbar__cleanup-panel",role:"group","aria-label":y("canvas.toolbar.cleanup"),children:[o.jsxs("div",{className:"canvas-toolbar__cleanup-row",children:[o.jsx("span",{className:"canvas-toolbar__cleanup-title",children:y("canvas.toolbar.cleanup")}),o.jsx("span",{className:"canvas-toolbar__cleanup-meta",children:y("canvas.toolbar.cleanupSeedCount",{n:e})})]}),o.jsx(bt,{label:y("canvas.toolbar.cleanupMark"),value:l,options:[{value:"remove",label:y("canvas.toolbar.cleanupRemove")},{value:"preserve",label:y("canvas.toolbar.cleanupPreserve")}],onChange:A}),o.jsx(bt,{label:y("canvas.toolbar.cleanupInput"),value:s,options:[{value:"click",label:y("canvas.toolbar.cleanupClick")},{value:"brush",label:y("canvas.toolbar.cleanupBrush")}],onChange:O}),o.jsxs("label",{className:"canvas-toolbar__cleanup-slider",children:[o.jsx("span",{children:y("canvas.toolbar.cleanupTolerance")}),o.jsx("input",{type:"range",min:"0",max:"96",value:t,onChange:S=>N(Number(S.target.value))}),o.jsx("output",{children:t})]}),s==="brush"?o.jsxs("label",{className:"canvas-toolbar__cleanup-slider",children:[o.jsx("span",{children:y("canvas.toolbar.cleanupBrushSize")}),o.jsx("input",{type:"range",min:"0.006",max:"0.06",step:"0.002",value:i,onChange:S=>T(Number(S.target.value))}),o.jsx("output",{children:Math.round(i*1e3)})]}):null,o.jsxs("div",{className:"canvas-toolbar__cleanup-actions",children:[o.jsx("button",{type:"button",onClick:_,children:y("canvas.toolbar.cleanupAutoSample")}),o.jsx("button",{type:"button",className:r?"active":"",onClick:B,children:y(g?"canvas.toolbar.cleanupActive":"canvas.toolbar.cleanupPickSeed")})]}),o.jsxs("div",{className:"canvas-toolbar__cleanup-actions",children:[o.jsx("button",{type:"button",onClick:m,disabled:d||e===0,children:y(d?"canvas.toolbar.cleanupPreviewing":"canvas.toolbar.cleanupPreview")}),o.jsx("button",{type:"button",onClick:C,disabled:u||!a&&e===0,children:y(u?"canvas.toolbar.cleanupApplying":"canvas.toolbar.cleanupApply")}),o.jsx("button",{type:"button",onClick:E,disabled:!a&&e===0,children:y("canvas.toolbar.cleanupReset")})]}),g?o.jsx("div",{className:"canvas-toolbar__cleanup-status canvas-toolbar__cleanup-status--active",children:y(s==="brush"?"canvas.toolbar.cleanupBrushHint":"canvas.toolbar.cleanupPickHint")}):n&&!a?o.jsx("div",{className:"canvas-toolbar__cleanup-status canvas-toolbar__cleanup-status--active",children:y("canvas.toolbar.cleanupMaskHint")}):null,n?o.jsx("div",{className:"canvas-toolbar__cleanup-status",children:y("canvas.toolbar.cleanupRemoved",{n:U})}):null]}):null]})}function Wn(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M5 7.5h14"}),o.jsx("path",{d:"M7 12h10"}),o.jsx("path",{d:"M10 16.5h4"}),o.jsx("path",{d:"M7.5 5.5 9 4l1.5 1.5L9 7 7.5 5.5Z"}),o.jsx("path",{d:"M13.5 11 15 9.5l1.5 1.5L15 12.5 13.5 11Z"}),o.jsx("path",{d:"M4.5 15.5 6 14l1.5 1.5L6 17 4.5 15.5Z"})]})}function Hn({style:e,onStyleChange:t}){const{t:n}=ye(),[a,r]=c.useState(!1),l=c.useRef(null);return c.useEffect(()=>{if(!a)return;const s=i=>{l.current?.contains(i.target)||r(!1)};return window.addEventListener("pointerdown",s),()=>window.removeEventListener("pointerdown",s)},[a]),o.jsxs("div",{ref:l,className:`canvas-toolbar__split-button${a?" canvas-toolbar__split-button--active":""}`,onKeyDown:s=>{s.key==="Escape"&&a&&(s.preventDefault(),s.stopPropagation(),r(!1))},children:[o.jsxs("button",{type:"button",className:"canvas-toolbar__button canvas-toolbar__style-trigger",onClick:()=>r(s=>!s),"aria-haspopup":"dialog","aria-expanded":a,"aria-label":n("canvas.toolbar.style"),title:n("canvas.toolbar.style"),children:[o.jsx("span",{className:"canvas-style-trigger__swatch",style:{background:e.color},"aria-hidden":"true"}),o.jsx("span",{className:"canvas-style-trigger__width",style:{height:`${Math.min(8,Math.max(2,e.strokeWidth))}px`},"aria-hidden":"true"})]}),a?o.jsxs("div",{className:"canvas-style-popover",role:"dialog","aria-label":n("canvas.toolbar.style"),children:[o.jsx("div",{className:"canvas-style-popover__row",role:"group","aria-label":n("canvas.toolbar.color"),children:It.map(s=>o.jsx("button",{type:"button",className:`canvas-style-swatch${e.color===s?" canvas-style-swatch--active":""}`,style:{background:s},onClick:()=>t({...e,color:s}),"aria-pressed":e.color===s,"aria-label":s,title:s},s))}),o.jsx("div",{className:"canvas-style-popover__row",role:"group","aria-label":n("canvas.toolbar.strokeWidth"),children:Nt.map(s=>o.jsx("button",{type:"button",className:`canvas-style-width${e.strokeWidth===s?" canvas-style-width--active":""}`,onClick:()=>t({...e,strokeWidth:s}),"aria-pressed":e.strokeWidth===s,"aria-label":`${s}px`,title:`${s}px`,children:o.jsx("span",{style:{height:`${s}px`,background:e.color}})},s))})]}):null]})}function Fn({tools:e,activeTool:t,onToolChange:n}){const[a,r]=c.useState(!1),l=c.useRef(null),s=e.find(d=>d.id===t)??e[0],i=s.icon;return c.useEffect(()=>{if(!a)return;const d=u=>{l.current?.contains(u.target)||r(!1)};return window.addEventListener("pointerdown",d),()=>window.removeEventListener("pointerdown",d)},[a]),o.jsxs("div",{ref:l,className:"canvas-tool-picker",children:[o.jsxs("button",{type:"button",className:`canvas-toolbar__button canvas-tool-picker__trigger${t!=="eraser"?" canvas-toolbar__button--active":""}`,onClick:()=>r(d=>!d),"aria-label":`${s.label} (${s.shortcut})`,"aria-pressed":t===s.id,"aria-haspopup":"menu","aria-expanded":a,title:`${s.label} (${s.shortcut})`,children:[o.jsx(i,{}),o.jsx("span",{className:"canvas-toolbar__shortcut","aria-hidden":"true",children:s.shortcut})]}),a?o.jsx("div",{className:"canvas-tool-picker__menu",role:"menu",children:e.map(d=>{const u=d.icon,b=t===d.id;return o.jsxs("button",{type:"button",className:`canvas-tool-picker__item${b?" active":""}`,role:"menuitemradio","aria-checked":b,onClick:()=>{n(d.id),r(!1)},children:[o.jsx(u,{}),o.jsx("span",{children:d.label}),o.jsx("kbd",{children:d.shortcut})]},d.id)})}):null]})}function Vn({activeTool:e,hasAnnotations:t,hasExportableContent:n,onToolChange:a,eraserMode:r="object",onEraserModeChange:l,style:s,onStyleChange:i,onClear:d,onApply:u,onExport:b,onUndo:f,onRedo:_,canUndo:B,canRedo:A,onDeleteSelected:O,selectedCount:T=0,onEditWithMask:N,canEditWithMask:m,isEditingWithMask:C,isApplying:E,isExporting:y,exportBackground:v="alpha",exportMatteColor:Z="#ffffff",onExportBackgroundChange:I,onExportMatteColorChange:U,cleanupTolerance:g=28,cleanupSeedCount:S=0,cleanupStats:D=null,cleanupHasPreview:P=!1,isCleanupPickingSeed:V=!1,isCleanupActive:Y=!1,cleanupIntent:te="remove",cleanupTool:ne="click",cleanupBrushRadius:se=.018,isCleanupPreviewing:ue=!1,isCleanupApplying:L=!1,onCleanupAutoSample:p,onCleanupPickSeed:R,onCleanupIntentChange:J,onCleanupToolChange:ae,onCleanupBrushRadiusChange:le,onCleanupToleranceChange:K,onCleanupPreview:q,onCleanupApply:G,onCleanupReset:z}){const{t:w}=ye(),[$,ee]=c.useState(!1),W=c.useRef(null),ce=n??t??!1,X=w(r==="object"?"canvas.toolbar.objectEraser":"canvas.toolbar.brushEraser"),F=[{id:"select",shortcut:"1",label:w("canvas.toolbar.select"),icon:Kn},{id:"pen",shortcut:"2",label:w("canvas.toolbar.pen"),icon:zn},{id:"box",shortcut:"3",label:w("canvas.toolbar.box"),icon:Xn},{id:"arrow",shortcut:"4",label:w("canvas.toolbar.arrow"),icon:qn},{id:"memo",shortcut:"5",label:w("canvas.toolbar.memo"),icon:Yn}];c.useEffect(()=>{if(!$)return;const re=we=>{W.current?.contains(we.target)||ee(!1)};return window.addEventListener("pointerdown",re),()=>window.removeEventListener("pointerdown",re)},[$]);const de=re=>{l?.(re),a("eraser"),ee(!1)};return o.jsxs("div",{className:"canvas-toolbar","aria-label":w("canvas.toolbar.label"),children:[o.jsx(Fn,{tools:F,activeTool:e,onToolChange:a}),o.jsx(Hn,{style:s,onStyleChange:i}),o.jsxs("div",{ref:W,className:`canvas-toolbar__split-button${e==="eraser"?" canvas-toolbar__split-button--active":""}`,onKeyDown:re=>{re.key==="Escape"&&$&&(re.preventDefault(),ee(!1))},children:[o.jsxs("button",{type:"button",className:`canvas-toolbar__button canvas-toolbar__button--split-main${e==="eraser"?" canvas-toolbar__button--active":""}`,onClick:()=>a("eraser"),"aria-label":`${X} (6)`,"aria-pressed":e==="eraser",title:`${X} (6)`,children:[o.jsx(Gn,{}),o.jsx("span",{className:"canvas-toolbar__shortcut","aria-hidden":"true",children:"6"})]}),o.jsx("button",{type:"button",className:"canvas-toolbar__button canvas-toolbar__button--split-menu",onClick:()=>ee(re=>!re),"aria-label":w("canvas.toolbar.eraserMenu"),"aria-haspopup":"menu","aria-expanded":$,"aria-controls":"canvas-eraser-menu",title:w("canvas.toolbar.eraserMenu"),children:o.jsx(Zn,{})}),$?o.jsxs("div",{id:"canvas-eraser-menu",className:"canvas-toolbar__eraser-menu",role:"menu",children:[o.jsx("button",{type:"button",className:`canvas-toolbar__eraser-menu-item${r==="object"?" canvas-toolbar__eraser-menu-item--active":""}`,role:"menuitemradio","aria-checked":r==="object",onClick:()=>de("object"),children:w("canvas.toolbar.objectEraser")}),o.jsx("button",{type:"button",className:`canvas-toolbar__eraser-menu-item${r==="brush"?" canvas-toolbar__eraser-menu-item--active":""}`,role:"menuitemradio","aria-checked":r==="brush",onClick:()=>de("brush"),children:w("canvas.toolbar.brushEraser")})]}):null]}),o.jsx("span",{className:"canvas-toolbar__divider","aria-hidden":"true"}),u?o.jsx("button",{type:"button",className:`canvas-toolbar__button canvas-toolbar__button--primary${E?" canvas-toolbar__button--busy":""}`,onClick:u,disabled:!ce||E,"aria-label":w("canvas.toolbar.apply"),title:w("canvas.toolbar.apply"),children:o.jsx(Jn,{})}):null,N?o.jsx("button",{type:"button",className:`canvas-toolbar__button canvas-toolbar__button--primary canvas-toolbar__button--mask${C?" canvas-toolbar__button--busy":""}`,onClick:N,disabled:!m||C,"aria-label":w(m?"canvas.toolbar.editMask":"canvas.toolbar.editMaskDisabled"),title:w(m?"canvas.toolbar.editMask":"canvas.toolbar.editMaskDisabled"),children:o.jsx(na,{})}):null,f?o.jsx("button",{type:"button",className:"canvas-toolbar__button",onClick:f,disabled:!B,"aria-label":w("canvas.toolbar.undo"),title:w("canvas.toolbar.undo"),children:o.jsx(ea,{})}):null,_?o.jsx("button",{type:"button",className:"canvas-toolbar__button",onClick:_,disabled:!A,"aria-label":w("canvas.toolbar.redo"),title:w("canvas.toolbar.redo"),children:o.jsx(ta,{})}):null,O?o.jsx("button",{type:"button",className:"canvas-toolbar__button canvas-toolbar__button--danger",onClick:O,disabled:T===0,"aria-label":w("canvas.toolbar.deleteSelected"),title:w("canvas.toolbar.deleteSelected"),children:o.jsx(gt,{})}):null,b&&I&&U?o.jsx($n,{mode:v,matteColor:Z,onModeChange:I,onMatteColorChange:U}):null,p&&R&&J&&ae&&le&&K&&q&&G&&z?o.jsx(Un,{seedCount:S,tolerance:g,stats:D,hasPreview:P,isPickingSeed:V,intent:te,tool:ne,brushRadius:se,isPreviewing:ue,isApplying:L,keepOpen:Y,disabled:E||y,onAutoSample:p,onPickSeed:R,onIntentChange:J,onToolChange:ae,onBrushRadiusChange:le,onToleranceChange:K,onPreview:q,onApply:G,onReset:z}):null,b?o.jsx("button",{type:"button",className:`canvas-toolbar__button${y?" canvas-toolbar__button--busy":""}`,onClick:b,disabled:!ce||y,"aria-label":w("canvas.toolbar.export"),title:w("canvas.toolbar.export"),children:o.jsx(Qn,{})}):null,o.jsx("button",{type:"button",className:"canvas-toolbar__button canvas-toolbar__button--danger",onClick:d,disabled:!ce,"aria-label":w("canvas.toolbar.clear"),title:w("canvas.toolbar.clear"),children:o.jsx(gt,{})})]})}function Kn(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M8 12.5V7a2 2 0 0 1 4 0v4"}),o.jsx("path",{d:"M12 11V5a2 2 0 0 1 4 0v7"}),o.jsx("path",{d:"M16 12V8a2 2 0 0 1 4 0v5.5A6.5 6.5 0 0 1 13.5 20H12a6 6 0 0 1-4.24-1.76L4.7 15.18a1.7 1.7 0 0 1 2.4-2.4L9 14.68"})]})}function zn(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"m4 20 4.2-1.1L19.5 7.6a2.2 2.2 0 0 0-3.1-3.1L5.1 15.8 4 20Z"}),o.jsx("path",{d:"m14.5 6.5 3 3"})]})}function Xn(){return o.jsx("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:o.jsx("rect",{x:"5",y:"5",width:"14",height:"14",rx:"2"})})}function qn(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M5 19 19 5"}),o.jsx("path",{d:"M10 5h9v9"})]})}function Yn(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M6 4h12v16H6z"}),o.jsx("path",{d:"M9 8h6"}),o.jsx("path",{d:"M9 12h5"}),o.jsx("path",{d:"M9 16h3"})]})}function Gn(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"m4 15 8.5-8.5a2.1 2.1 0 0 1 3 0l2 2a2.1 2.1 0 0 1 0 3L10 19H6.5L4 16.5V15Z"}),o.jsx("path",{d:"M10 19h10"}),o.jsx("path",{d:"m8.5 10.5 5 5"})]})}function Zn(){return o.jsx("svg",{className:"canvas-toolbar__icon canvas-toolbar__icon--small",viewBox:"0 0 24 24","aria-hidden":"true",children:o.jsx("path",{d:"m7 14 5-5 5 5"})})}function Jn(){return o.jsx("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:o.jsx("path",{d:"M5 12.5 10 17 19 7"})})}function Qn(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M12 4v11"}),o.jsx("path",{d:"m8 11 4 4 4-4"}),o.jsx("path",{d:"M5 20h14"})]})}function gt(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M4 7h16"}),o.jsx("path",{d:"M9 7V5h6v2"}),o.jsx("path",{d:"M7 7l1 13h8l1-13"}),o.jsx("path",{d:"M10 11v5"}),o.jsx("path",{d:"M14 11v5"})]})}function ea(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M9 7 5 11l4 4"}),o.jsx("path",{d:"M5 11h9a5 5 0 0 1 0 10h-2"})]})}function ta(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"m15 7 4 4-4 4"}),o.jsx("path",{d:"M19 11h-9a5 5 0 0 0 0 10h2"})]})}function na(){return o.jsxs("svg",{className:"canvas-toolbar__icon",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("rect",{x:"5",y:"5",width:"14",height:"14",rx:"2"}),o.jsx("path",{d:"M9 9h6v6H9z"})]})}function aa({annotations:e,backgroundCleanup:t,backgroundCleanupPreview:n,canvasState:a,actions:r}){return o.jsx(Vn,{activeTool:e.activeTool,eraserMode:e.eraserMode,onEraserModeChange:e.setEraserMode,style:{color:e.toolColor,strokeWidth:e.strokeWidth},onStyleChange:e.setStyle,hasExportableContent:e.hasAnnotations,onToolChange:e.setTool,onClear:e.clear,onApply:()=>{r.handleApplyCanvas()},onExport:()=>{r.handleExportCanvas()},onUndo:e.undo,onRedo:e.redo,canUndo:e.canUndo,canRedo:e.canRedo,onDeleteSelected:e.deleteSelected,selectedCount:e.selectedIds.length,onEditWithMask:()=>{r.handleEditWithMask()},canEditWithMask:e.boxes.length>0,isEditingWithMask:a.isEditingWithMask,isApplying:a.isApplying,isExporting:a.isExporting,exportBackground:a.exportBackground,exportMatteColor:a.exportMatteColor,onExportBackgroundChange:r.setExportBackground,onExportMatteColorChange:r.setExportMatteColor,cleanupTolerance:t.backgroundCleanupTolerance,cleanupSeedCount:t.backgroundCleanupSeeds.length,cleanupStats:t.backgroundCleanupStats,cleanupHasPreview:!!n,isCleanupPickingSeed:t.isBackgroundCleanupPickingSeed,isCleanupActive:t.isBackgroundCleanupActive,cleanupIntent:t.cleanupIntent,cleanupTool:t.cleanupTool,cleanupBrushRadius:t.cleanupBrushRadius,isCleanupPreviewing:t.isBackgroundCleanupPreviewing,isCleanupApplying:t.isBackgroundCleanupApplying,onCleanupAutoSample:t.handleBackgroundCleanupAutoSample,onCleanupPickSeed:t.handleBackgroundCleanupPickSeed,onCleanupIntentChange:t.setCleanupIntent,onCleanupToolChange:l=>{t.setCleanupTool(l),t.setIsBackgroundCleanupActive(!0)},onCleanupBrushRadiusChange:t.setCleanupBrushRadius,onCleanupToleranceChange:t.handleBackgroundCleanupToleranceChange,onCleanupPreview:()=>{t.runBackgroundCleanupPreview()},onCleanupApply:()=>{t.handleBackgroundCleanupApply()},onCleanupReset:t.handleBackgroundCleanupReset})}function ra({currentImage:e,canvasDisplayImage:t,canvasOpen:n,displayQuality:a,displaySize:r,displayModel:l,onAfterDeleteFocus:s,onCopyPrompt:i}){const{t:d}=ye(),u=[e.elapsed!=null?`${e.elapsed}s`:null,e.usage?d("canvas.tokens",{n:e.usage.total_tokens??"?"}):null,on(e.reasoningEffort),a,r,l].filter(b=>!!b).join(" · ");return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"result-meta",children:u}),o.jsx(sn,{imageOverride:n?t:null,onAfterDeleteFocus:s}),e.prompt?o.jsx(ln,{prompt:e.prompt,onCopy:i}):null]})}function oa({zoom:e,onZoomIn:t,onZoomOut:n,onZoomReset:a}){const{t:r}=ye(),l=Math.round(e*100);return o.jsxs("div",{className:"canvas-toolbar__zoom",role:"group","aria-label":r("canvas.toolbar.zoomGroup"),children:[o.jsx("button",{type:"button",className:"canvas-toolbar__zoom-button",onClick:n,"aria-label":r("canvas.toolbar.zoomOut"),title:r("canvas.toolbar.zoomOut"),children:o.jsx(sa,{})}),o.jsxs("button",{type:"button",className:"canvas-toolbar__zoom-value",onClick:a,"aria-label":r("canvas.toolbar.zoomReset"),title:r("canvas.toolbar.zoomReset"),children:[l,"%"]}),o.jsx("button",{type:"button",className:"canvas-toolbar__zoom-button",onClick:t,"aria-label":r("canvas.toolbar.zoomIn"),title:r("canvas.toolbar.zoomIn"),children:o.jsx(la,{})})]})}function sa(){return o.jsx("svg",{className:"canvas-toolbar__icon canvas-toolbar__icon--small",viewBox:"0 0 24 24","aria-hidden":"true",children:o.jsx("path",{d:"M5 12h14"})})}function la(){return o.jsxs("svg",{className:"canvas-toolbar__icon canvas-toolbar__icon--small",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M12 5v14"}),o.jsx("path",{d:"M5 12h14"})]})}function ca({zoom:e,closeLabel:t,blankCanvasLabel:n,blankCanvasAriaLabel:a,blankCanvasShortcut:r,blankCanvasBusy:l,shortcutHint:s,onZoomIn:i,onZoomOut:d,onZoomReset:u,onCreateBlankCanvas:b,onClose:f}){return o.jsxs("div",{className:"canvas-mode-topbar",children:[o.jsxs("div",{className:"canvas-mode-topbar__stack",children:[o.jsx("span",{className:"canvas-mode-topbar__label",children:"Canvas Mode"}),o.jsx(oa,{zoom:e,onZoomIn:i,onZoomOut:d,onZoomReset:u}),o.jsx("span",{className:"canvas-mode-topbar__shortcuts",children:s})]}),o.jsx("div",{className:"canvas-mode-topbar__center",children:o.jsxs("button",{type:"button",className:"canvas-mode-blank",onClick:b,disabled:l,"aria-label":a,title:a,children:[o.jsx("span",{"aria-hidden":"true",children:"+"}),o.jsx("span",{children:n}),o.jsx("kbd",{children:r})]})}),o.jsxs("button",{type:"button",className:"canvas-mode-close",onClick:f,"aria-label":t,children:[o.jsx("kbd",{children:"ESC"}),o.jsx("span",{children:t})]})]})}function Je(e,t,n){return Math.max(t,Math.min(n,e))}function ia({zoom:e,panX:t,panY:n}){const a=Je(100/Math.max(1,e),18,100),r=a/2,l=Je(50-t/40,r,100-r),s=Je(50-n/40,r,100-r);return{width:`${a}%`,height:`${a}%`,left:`${l}%`,top:`${s}%`}}function ua({imageSrc:e,zoom:t,panX:n,panY:a,resetLabel:r,onReset:l}){return o.jsxs("button",{type:"button",className:"canvas-viewport-minimap",onClick:l,"aria-label":r,title:r,children:[o.jsx("img",{src:e,alt:"","aria-hidden":"true"}),o.jsx("span",{className:"canvas-viewport-minimap__window",style:ia({zoom:t,panX:n,panY:a}),"aria-hidden":"true"})]})}function Ne(e){return Math.min(1,Math.max(0,e))}function da(e){return new Promise((t,n)=>{e.toBlob(a=>{a?t(a):n(new Error("mask_blob_unavailable"))},"image/png")})}async function ha(e){const t=e.imageElement.naturalWidth,n=e.imageElement.naturalHeight;if(!t||!n)throw new Error("mask_source_size_unavailable");if(e.boxes.length===0)throw new Error("mask_boxes_required");const a=document.createElement("canvas");a.width=t,a.height=n;const r=a.getContext("2d");if(!r)throw new Error("mask_context_unavailable");r.fillStyle="rgba(0, 0, 0, 1)",r.fillRect(0,0,t,n),r.globalCompositeOperation="destination-out";for(const l of e.boxes){const s=Ne(l.x)*t,i=Ne(l.y)*n,d=Ne(l.width)*t,u=Ne(l.height)*n;d>0&&u>0&&r.fillRect(s,i,d,u)}return da(a)}async function fa(e){const t=e.naturalWidth,n=e.naturalHeight;if(!t||!n)throw new Error("image_source_size_unavailable");const a=document.createElement("canvas");a.width=t,a.height=n;const r=a.getContext("2d");if(!r)throw new Error("image_context_unavailable");return r.drawImage(e,0,0,t,n),a.toDataURL("image/png")}function ct(e){return new Promise((t,n)=>{const a=new FileReader;a.onerror=()=>n(new Error("mask_blob_read_failed")),a.onload=()=>t(String(a.result)),a.readAsDataURL(e)})}const pa=`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='8' fill='white' fill-opacity='0.16' stroke='black' stroke-width='3'/%3E%3Ccircle cx='14' cy='14' r='8' fill='none' stroke='white' stroke-width='1.5'/%3E%3Ccircle cx='14' cy='14' r='2' fill='white' stroke='black' stroke-width='1'/%3E%3C/svg%3E") 14 14, auto`,ma=`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='8' fill='white' fill-opacity='0.18' stroke='black' stroke-width='3'/%3E%3Ccircle cx='14' cy='14' r='8' fill='none' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E") 14 14, auto`;function va(e){return e==="low"?"l":e==="medium"?"m":e==="high"?"h":e??null}function ba(e){if(!e)return null;const t=e.match(/^(\d+)x\1$/);return t?`${t[1]}²`:e.replace("x","×")}function ga(e){const t=e.url??e.image;if(!e.canvasVersion||!e.canvasMergedAt||t.startsWith("data:"))return t;const n=t.includes("?")?"&":"?";return`${t}${n}canvasMergedAt=${e.canvasMergedAt}`}function xa(e){const t=e.canvasSourceFilename??e.filename;return t?`/generated/${encodeURIComponent(t)}`:e.url??e.image}async function xt(e){const t=xa(e);if(t.startsWith("data:image/png;"))return t;const n=new Image;return await new Promise((a,r)=>{n.onload=()=>a(),n.onerror=()=>r(new Error("clean_source_load_failed")),n.src=t}),fa(n)}function it(e,t){return!e.canvasVersion||e.prompt||!t?.prompt?e:{...e,prompt:t.prompt}}function ya(e,t){if(!t?.filename)return null;const n=e.find(a=>a.canvasVersion&&(a.canvasSourceFilename===t.filename||a.canvasEditableFilename===t.filename))??null;return n?it(n,t):null}function ka(e,t){if(cn(e)){const n=e.images[0];if(!n)throw new Error("edit_empty_response");return{...n,prompt:t,reasoningEffort:e.reasoningEffort,provider:e.provider,quality:e.quality,size:e.size,moderation:e.moderation,model:e.model,usage:e.usage,kind:"edit",createdAt:Date.now()}}return{image:e.image,url:e.filename?`/generated/${e.filename}`:e.image,thumb:e.image,filename:e.filename,prompt:t,elapsed:e.elapsed,reasoningEffort:e.reasoningEffort,provider:e.provider,quality:e.quality,size:e.size,moderation:e.moderation,model:e.model,usage:e.usage,revisedPrompt:e.revisedPrompt??null,promptMode:e.promptMode??null,kind:"edit",createdAt:Date.now()}}const Qe=new WeakMap;function wa(e){if(!e.complete||!e.naturalWidth||!e.naturalHeight)return!1;const t=Qe.get(e);if(t&&t.src===e.currentSrc&&t.width===e.naturalWidth&&t.height===e.naturalHeight)return t.result;const n=64,a=Math.min(n,e.naturalWidth),r=Math.min(n,e.naturalHeight),l=document.createElement("canvas");l.width=a,l.height=r;const s=l.getContext("2d",{willReadFrequently:!0});if(!s)return!1;try{s.drawImage(e,0,0,a,r);const i=s.getImageData(0,0,a,r).data;for(let d=3;d<i.length;d+=4)if(i[d]<250)return Qe.set(e,{src:e.currentSrc,width:e.naturalWidth,height:e.naturalHeight,result:!0}),!0;return Qe.set(e,{src:e.currentSrc,width:e.naturalWidth,height:e.naturalHeight,result:!1}),!1}catch{return!1}}function Ca(e,t){if(e.width!==t.width||e.height!==t.height||e.data.length!==t.data.length)throw new Error("cleanup_mask_size_mismatch")}function yt(e,t){return{width:e,height:t,data:new Uint8Array(e*t)}}function rt(e){return{width:e.width,height:e.height,data:new Uint8Array(e.data)}}function _a(e,t){Ca(e,t);for(let n=0;n<e.data.length;n+=1)(t.data[n]??0)>0&&(e.data[n]=0)}function Se(e,t){if(!e)return null;const n=rt(e);return t&&_a(n,t),n}function Ma(e,t){if(e.width!==t.width||e.height!==t.height)throw new Error("cleanup_mask_size_mismatch");const n=new ImageData(new Uint8ClampedArray(e.data),e.width,e.height);for(let a=0;a<t.data.length;a+=1)(t.data[a]??0)>0&&(n.data[a*4+3]=0);return n}const ut=[{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}],Ea=1024;function Sa(e){return Math.max(0,Math.min(255,Math.round(e)))}function Rt(e,t,n){const a=Math.max(0,Math.min(t-1,Math.round(e.x*(t-1))));return Math.max(0,Math.min(n-1,Math.round(e.y*(n-1))))*t+a}function Ba(e,t){return(t.length>0?t:ut).map(a=>{const r=Rt(a,e.width,e.height)*4;return{r:e.data[r]??0,g:e.data[r+1]??0,b:e.data[r+2]??0}})}function ja(e,t,n,a){for(const r of n)if(Math.max(Math.abs((e[t]??0)-r.r),Math.abs((e[t+1]??0)-r.g),Math.abs((e[t+2]??0)-r.b))<=a)return!0;return!1}function Be(e,t,n,a,r,l,s){if(e<0||e>=a.length||a[e])return r;const i=e*4;return(t.data[i+3]??0)===0?(a[e]=1,r):ja(t.data,i,l,s)?(a[e]=1,n[r]=e,r+1):r}function et(){return ut.map(e=>({...e}))}function kt(e,t,n,a){if(e.width!==t.width||e.height!==t.height)throw new Error("cleanup_mask_size_mismatch");const{width:r,height:l}=t,s=r*l,i=new Uint8Array(s),d=new Int32Array(s),u=Ba(t,n),b=Sa(a);let f=0;for(const _ of n.length>0?n:ut)f=Be(Rt(_,r,l),t,d,i,f,u,b);for(;f>0;){const _=d[--f];e.data[_]=255;const B=_%r;B>0&&(f=Be(_-1,t,d,i,f,u,b)),B<r-1&&(f=Be(_+1,t,d,i,f,u,b)),_>=r&&(f=Be(_-r,t,d,i,f,u,b)),_<s-r&&(f=Be(_+r,t,d,i,f,u,b))}}function Ta(e,t){const n=new ImageData(new Uint8ClampedArray(e.data),e.width,e.height),a=Ma(n,t),r=t.data.reduce((l,s)=>l+(s>0?1:0),0);return{imageData:{width:e.width,height:e.height,data:a.data},stats:{width:e.width,height:e.height,removedPixels:r,removedPercent:t.data.length>0?r/t.data.length:0}}}function Lt(e){return new Promise((t,n)=>{e.toBlob(a=>{a?t(a):n(new Error("background_cleanup_blob_failed"))},"image/png")})}function Ot(e,t){const n=e.naturalWidth,a=e.naturalHeight;if(n<=0||a<=0)throw new Error("background_cleanup_image_not_ready");const r=t&&t>0?Math.min(1,t/Math.max(n,a)):1,l=Math.max(1,Math.round(n*r)),s=Math.max(1,Math.round(a*r)),i=document.createElement("canvas");i.width=l,i.height=s;const d=i.getContext("2d",{willReadFrequently:!0});if(!d)throw new Error("background_cleanup_context_failed");return d.drawImage(e,0,0,l,s),{canvas:i,context:d,width:l,height:s}}async function wt({imageElement:e,mask:t}){try{const{canvas:n,context:a,width:r,height:l}=Ot(e),s=a.getImageData(0,0,r,l),i=Ta({width:r,height:l,data:s.data},t),d=a.createImageData(r,l);d.data.set(i.imageData.data),a.putImageData(d,0,0);const u=await Lt(n);return{blob:u,dataUrl:await ct(u),stats:i.stats}}catch(n){throw n instanceof Error?n:new Error("background_cleanup_failed")}}async function Pa({imageElement:e,mask:t}){try{const{width:n,height:a}=Ot(e,Ea),r=document.createElement("canvas");r.width=n,r.height=a;const l=r.getContext("2d");if(!l)throw new Error("background_cleanup_context_failed");const s=l.createImageData(n,a);let i=0;for(let u=0;u<a;u+=1)for(let b=0;b<n;b+=1){const f=Math.min(t.width-1,Math.floor(b/n*t.width)),_=Math.min(t.height-1,Math.floor(u/a*t.height));if((t.data[_*t.width+f]??0)===0)continue;const B=(u*n+b)*4;s.data[B]=168,s.data[B+1]=85,s.data[B+2]=247,s.data[B+3]=150,i+=1}l.putImageData(s,0,0);const d=await Lt(r);return{dataUrl:await ct(d),stats:{width:t.width,height:t.height,removedPixels:t.data.reduce((u,b)=>u+(b>0?1:0),0),removedPercent:t.data.length>0?i/(n*a):0}}}catch(n){throw n instanceof Error?n:new Error("background_cleanup_failed")}}function Ct(e){return{...e,seeds:e.seeds.map(t=>({intent:t.intent,point:{...t.point}})),brushStrokes:e.brushStrokes.map(t=>({...t,points:t.points.map(n=>({...n}))})),brushCursor:e.brushCursor?{...e.brushCursor}:null,removeMask:e.removeMask?rt(e.removeMask):null,preserveMask:e.preserveMask?rt(e.preserveMask):null}}function Da(){return`cleanup_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function Re(e){return Math.max(0,Math.min(1,e))}function Aa(e){const t=[],n=Math.max(0,e.radius*.55);for(const a of e.points)t.push({...a}),!(n<=0)&&t.push({x:Re(a.x-n),y:a.y},{x:Re(a.x+n),y:a.y},{x:a.x,y:Re(a.y-n)},{x:a.x,y:Re(a.y+n)});return t}function Ia(e){const t=e.naturalWidth,n=e.naturalHeight;if(t<=0||n<=0)throw new Error("background_cleanup_image_not_ready");const a=document.createElement("canvas");a.width=t,a.height=n;const r=a.getContext("2d",{willReadFrequently:!0});if(!r)throw new Error("background_cleanup_context_failed");r.drawImage(e,0,0,t,n);const l=r.getImageData(0,0,t,n);return{width:t,height:n,data:l.data}}function Na({canvasOpen:e,currentImage:t,canvasDisplayImage:n,imageElementRef:a,canvasSourceImageRef:r,lastMergedDataUrlRef:l,setCanvasSaveState:s,setCanvasVersionItem:i,applyMergedCanvasImage:d,attachCanvasVersionReference:u,showToast:b,t:f}){const[_,B]=c.useState(!1),[A,O]=c.useState("remove"),[T,N]=c.useState("click"),[m,C]=c.useState("flat-flood-fill"),[E,y]=c.useState([]),[v,Z]=c.useState([]),[I,U]=c.useState(28),[g,S]=c.useState(null),[D,P]=c.useState(null),[V,Y]=c.useState(null),[te,ne]=c.useState(!1),[se,ue]=c.useState(.018),[L,p]=c.useState(null),[R,J]=c.useState(!1),[ae,le]=c.useState(!1),K=c.useRef(null),q=c.useRef(null),G=c.useRef(null),z=c.useRef({past:[],future:[]}),w=c.useRef(0),$=c.useRef(null),ee=c.useCallback(()=>Ct({intent:A,tool:T,engine:m,seeds:E,brushStrokes:v,brushRadius:se,tolerance:I,removeMask:K.current,preserveMask:q.current,preview:g,maskOverlay:D,stats:V,active:te,brushCursor:L}),[v,D,g,E,V,I,L,se,m,A,T,te]),W=c.useCallback(()=>{z.current={past:[...z.current.past.slice(-19),ee()],future:[]}},[ee]),ce=c.useCallback(x=>{const k=Ct(x);K.current=k.removeMask,q.current=k.preserveMask,G.current=null,O(k.intent),N(k.tool),C(k.engine),y(k.seeds),Z(k.brushStrokes),ue(k.brushRadius),U(k.tolerance),S(k.preview),P(k.maskOverlay),Y(k.stats),ne(k.active),p(k.brushCursor),J(!1),le(!1)},[]),X=c.useCallback(async()=>{if(!a.current||!t)return;const x=Se(K.current,q.current);if(!x){P(null),Y(null);return}const k=w.current+1;w.current=k,J(!0);try{const M=await Pa({imageElement:a.current,mask:x});if(w.current!==k)return;P(M),Y(M.stats)}catch{if(w.current!==k)return;b(f("canvas.toolbar.cleanupFailed"),!0)}finally{w.current===k&&J(!1)}},[t,a,b,f]),F=c.useCallback(async(x,k,M)=>{if(!a.current)return;const Q=Ia(a.current),ie=yt(Q.width,Q.height),ke=yt(Q.width,Q.height);for(const fe of x){const Ce=fe.intent==="remove"?ie:ke;kt(Ce,Q,[fe.point],M)}for(const fe of k){const Ce=fe.intent==="remove"?ie:ke;kt(Ce,Q,Aa(fe),M)}K.current=ie,q.current=ke},[a]),de=c.useCallback(()=>{w.current+=1,$.current!=null&&(window.clearTimeout($.current),$.current=null),K.current=null,q.current=null,G.current=null,z.current={past:[],future:[]},y([]),Z([]),S(null),P(null),Y(null),ne(!1),p(null),J(!1),le(!1)},[]),re=c.useCallback(()=>{const x=z.current.past.pop();return x?(z.current.future=[ee(),...z.current.future.slice(0,19)],ce(x),!0):!1},[ee,ce]),we=c.useCallback(()=>{const x=z.current.future.shift();return x?(z.current.past=[...z.current.past.slice(-19),ee()],ce(x),!0):!1},[ee,ce]),Pe=c.useCallback(x=>{W();const k=[...E,{point:x,intent:A}];y(k),S(null),F(k,v,I).then(X)},[v,E,I,A,W,F,X]),Oe=c.useCallback(()=>{W();const x=et().map(k=>({point:k,intent:"remove"}));y(x),S(null),ne(!1),F(x,v,I).then(X)},[v,I,W,F,X]),$e=c.useCallback(()=>{W(),N("click"),ne(x=>!x)},[W]),Ue=c.useCallback(x=>{W(),$.current!=null&&window.clearTimeout($.current),U(x),S(null),$.current=window.setTimeout(()=>{$.current=null,F(E,v,x).then(X)},180)},[v,E,W,F,X]),H=c.useCallback(async()=>{if(!a.current||!t)return null;let x=Se(K.current,q.current);if(!x){const M=et().map(Q=>({point:Q,intent:"remove"}));y(M),await F(M,v,I),x=Se(K.current,q.current)}if(!x)return null;W();const k=w.current+1;w.current=k,J(!0);try{const M=await wt({imageElement:a.current,mask:x});return w.current!==k?null:(S(M),P(null),Y(M.stats),M)}catch{return w.current!==k||b(f("canvas.toolbar.cleanupFailed"),!0),null}finally{w.current===k&&J(!1)}},[v,I,t,a,W,F,b,f]),We=c.useCallback(()=>{W(),de()},[W,de]),He=c.useCallback(x=>{W();const k={id:Da(),intent:A,points:[{...x}],radius:se};G.current=k,p(x),Z(M=>[...M,k])},[se,A,W]),Fe=c.useCallback(x=>{const k=G.current;if(!k){p(x);return}k.points=[...k.points,{...x}],p(x),Z(M=>M.map(Q=>Q.id===k.id?{...k,points:k.points.map(ie=>({...ie}))}:Q)),F(E,v.map(M=>M.id===k.id?k:M),I).then(X)},[v,E,I,F,X]),Ve=c.useCallback(()=>{G.current=null,F(E,v,I).then(X)},[v,E,I,F,X]),ve=c.useCallback(async()=>{if(!t||!a.current)return;const x=r.current??t;if(!x?.filename){b(f("canvas.toolbar.cleanupFailed"),!0);return}let k=Se(K.current,q.current);if(!k){const M=et().map(Q=>({point:Q,intent:"remove"}));y(M),await F(M,v,I),k=Se(K.current,q.current)}if(k){le(!0),s("saving");try{W();const M=await wt({imageElement:a.current,mask:k}),Q=await Bt({sourceFilename:x.canvasSourceFilename??x.filename,image:M.blob,prompt:x.prompt}),ie=it(Q.item,x);l.current=M.dataUrl,i(ie),d(ie),await u(ie),s("saved"),S(null),P(null),Y(M.stats),ne(!1),b(f("canvas.toolbar.cleanupApplied"))}catch{s("error"),b(f("canvas.toolbar.cleanupFailed"),!0)}finally{le(!1)}}},[d,u,v,I,r,t,a,l,W,F,s,i,b,f]),he=c.useCallback(()=>te?(G.current=null,ne(!1),p(null),!0):!1,[te]);return c.useEffect(()=>{const x=a.current;if(!x||!e){B(!1);return}const k=()=>B(wa(x));if(x.complete)k();else return x.addEventListener("load",k),()=>x.removeEventListener("load",k)},[e,n?.canvasMergedAt,n?.filename,n?.image,n?.url,g?.dataUrl,a]),{imageHasAlpha:_,backgroundCleanupSeeds:E,backgroundCleanupBrushStrokes:v,backgroundCleanupTolerance:I,backgroundCleanupPreview:g,backgroundCleanupMaskOverlay:D,backgroundCleanupStats:V,cleanupIntent:A,setCleanupIntent:O,cleanupTool:T,setCleanupTool:N,cleanupClickEngine:m,setCleanupClickEngine:C,cleanupBrushRadius:se,setCleanupBrushRadius:ue,cleanupBrushCursor:L,setCleanupBrushCursor:p,isBackgroundCleanupActive:te,setIsBackgroundCleanupActive:ne,isBackgroundCleanupPickingSeed:te&&T==="click",isBackgroundCleanupPreviewing:R,isBackgroundCleanupApplying:ae,hasActiveCleanupStroke:!!G.current,canUndoBackgroundCleanup:z.current.past.length>0,canRedoBackgroundCleanup:z.current.future.length>0,resetBackgroundCleanup:de,undoBackgroundCleanup:re,redoBackgroundCleanup:we,addBackgroundCleanupClick:Pe,addBackgroundCleanupSeed:Pe,runBackgroundCleanupPreview:H,handleBackgroundCleanupAutoSample:Oe,handleBackgroundCleanupPickSeed:$e,handleBackgroundCleanupToleranceChange:Ue,handleBackgroundCleanupReset:We,handleBackgroundCleanupApply:ve,handleBackgroundCleanupEscape:he,startBackgroundCleanupBrushStroke:He,updateBackgroundCleanupBrushStroke:Fe,endBackgroundCleanupBrushStroke:Ve}}function _t(e){return Math.min(1,Math.max(0,e))}function Mt(e,t){const n=t.getBoundingClientRect();return{x:_t((e.clientX-n.left)/n.width),y:_t((e.clientY-n.top)/n.height)}}const Ra=.18,La=.12;function Oa(e){return{id:"selection-box",x:Math.min(e.start.x,e.current.x),y:Math.min(e.start.y,e.current.y),width:Math.abs(e.current.x-e.start.x),height:Math.abs(e.current.y-e.start.y),color:"#64c8ff",strokeWidth:2}}function ot(e,t,n=0){return e.x>=t.x-n&&e.x<=t.x+t.width+n&&e.y>=t.y-n&&e.y<=t.y+t.height+n}function $t(e){return{id:e.id,x:e.x,y:e.y,width:Ra,height:La,color:e.color,strokeWidth:1}}function $a(e,t,n){const a=n.x-t.x,r=n.y-t.y,l=e.x-t.x,s=e.y-t.y,i=a*a+r*r;if(i===0)return Math.hypot(e.x-t.x,e.y-t.y);const d=Math.max(0,Math.min(1,(l*a+s*r)/i));return Math.hypot(e.x-(t.x+d*a),e.y-(t.y+d*r))}function Ua(e,t,n){for(let a=1;a<t.points.length;a+=1)if($a(e,t.points[a-1],t.points[a])<=n)return!0;return!1}function Et(e,t){return e.x<=t.x+t.width&&e.x+e.width>=t.x&&e.y<=t.y+t.height&&e.y+e.height>=t.y}function Wa(e,t){return e.points.some(n=>ot(n,t))}function St(e){const t=e.tolerance??.015;for(const n of[...e.memos].reverse())if(ot(e.point,$t(n),t))return Dt(n);for(const n of[...e.boxes].reverse())if(ot(e.point,n,t))return Pt(n);for(const n of[...e.paths].reverse())if(Ua(e.point,n,t))return Tt(n);return null}function Ha(e){const t=[];for(const n of e.annotations.paths)Wa(n,e.box)&&t.push(Tt(n));for(const n of e.annotations.boxes)Et(n,e.box)&&t.push(Pt(n));for(const n of e.annotations.memos)Et($t(n),e.box)&&t.push(Dt(n));return t}function Fa({canvasOpen:e,canvasZoom:t,canvasPanX:n,canvasPanY:a,spaceHeld:r,canDragViewportWithSelect:l,isBackgroundCleanupActive:s,cleanupTool:i,annotationFrameRef:d,annotations:u,setCanvasPan:b,addBackgroundCleanupClick:f,startBackgroundCleanupBrushStroke:_,updateBackgroundCleanupBrushStroke:B,endBackgroundCleanupBrushStroke:A,setCleanupBrushCursor:O}){const T=c.useRef({mode:null,lastPoint:null,didMove:!1}),N=c.useRef({active:!1,startX:0,startY:0,basePanX:0,basePanY:0,pointerId:null}),[m,C]=c.useState(!1),E=g=>{g.currentTarget.setPointerCapture(g.pointerId),N.current={active:!0,startX:g.clientX,startY:g.clientY,basePanX:n,basePanY:a,pointerId:g.pointerId},C(!0)};return{viewportPanActive:m,resetPointerSession:()=>{T.current={mode:null,lastPoint:null,didMove:!1},N.current={active:!1,startX:0,startY:0,basePanX:0,basePanY:0,pointerId:null},C(!1)},handleAnnotationPointerDown:g=>{if(!e||me(g.target)||!d.current)return;const S=g.button===1;if(r||S){g.preventDefault(),E(g);return}g.preventDefault();const D=Mt(g,d.current);if(s){i==="click"?f(D):(g.currentTarget.setPointerCapture(g.pointerId),_(D));return}if(u.activeTool==="select"){const P=St({point:D,paths:u.paths,boxes:u.boxes,memos:u.memos});if(P)g.shiftKey?u.toggleSelected(P):u.selectOne(P),u.startSelectedMove(),T.current={mode:"move",lastPoint:D,didMove:!1};else if(l&&t>1.01){E(g);return}else u.clearSelection(),u.startSelectionBox(D),T.current={mode:"box",lastPoint:D,didMove:!1};g.currentTarget.setPointerCapture(g.pointerId);return}if(u.activeTool==="memo"){u.createMemo(D),requestAnimationFrame(()=>{d.current?.querySelector(".canvas-memo--active")?.focus()});return}if(u.activeTool==="eraser"){if(u.eraserMode==="object"){const P=St({point:D,paths:u.paths,boxes:u.boxes,memos:u.memos});P&&u.eraseObjectAtPoint(P);return}g.currentTarget.setPointerCapture(g.pointerId),u.startEraserStroke(D);return}g.currentTarget.setPointerCapture(g.pointerId),u.startDrawing(D)},handleAnnotationPointerMove:g=>{if(!e||me(g.target)||!d.current)return;if(N.current.active){const D=g.clientX-N.current.startX,P=g.clientY-N.current.startY;b(N.current.basePanX+D,N.current.basePanY+P);return}const S=Mt(g,d.current);if(s){i==="brush"?B(S):O(S);return}if(u.activeTool==="select"){if(T.current.mode==="move"&&T.current.lastPoint){const D={x:S.x-T.current.lastPoint.x,y:S.y-T.current.lastPoint.y};(Math.abs(D.x)>5e-4||Math.abs(D.y)>5e-4)&&(u.moveSelected(D),T.current.didMove=!0),T.current.lastPoint=S}else T.current.mode==="box"&&u.updateSelectionBox(S);return}if(u.activeTool!=="memo"){if(u.activeTool==="eraser"){u.eraserMode==="brush"&&u.updateEraserStroke(S);return}u.moveDrawing(S)}},handleAnnotationPointerUp:g=>{if(e&&!me(g.target)){if(N.current.active&&N.current.pointerId===g.pointerId){g.currentTarget.hasPointerCapture(g.pointerId)&&g.currentTarget.releasePointerCapture(g.pointerId),N.current={active:!1,startX:0,startY:0,basePanX:0,basePanY:0,pointerId:null},C(!1);return}if(g.currentTarget.hasPointerCapture(g.pointerId)&&g.currentTarget.releasePointerCapture(g.pointerId),s){i==="brush"&&A();return}if(u.activeTool==="select"){T.current.mode==="move"&&T.current.didMove&&u.commitSelectedMove(),T.current.mode==="box"&&u.selectionBox&&u.endSelectionBox(Ha({box:Oa(u.selectionBox),annotations:u.toPayload()})),T.current={mode:null,lastPoint:null,didMove:!1};return}if(u.activeTool!=="memo"){if(u.activeTool==="eraser"){u.eraserMode==="brush"&&u.endEraserStroke();return}u.endDrawing()}}},handleAnnotationPointerLeave:()=>{s&&O(null)}}}function Va({canvasOpen:e,canvasZoom:t,currentImage:n,annotations:a,undoBackgroundCleanup:r,redoBackgroundCleanup:l,handleBackgroundCleanupEscape:s,handleCloseCanvas:i,selectHistoryShortcutTarget:d,trashHistoryItem:u,permanentlyDeleteHistoryItemByShortcut:b,setCanvasZoom:f,resetCanvasZoom:_,onCreateBlankCanvas:B,isCreatingBlankCanvas:A}){const[O,T]=c.useState(!1);return c.useEffect(()=>{if(!e)return;const m=v=>{v.preventDefault()},C=v=>{v.ctrlKey&&v.preventDefault()},E={passive:!1,capture:!0},y={passive:!1};return window.addEventListener("wheel",C,E),window.addEventListener("gesturestart",m,y),window.addEventListener("gesturechange",m,y),window.addEventListener("gestureend",m,y),()=>{window.removeEventListener("wheel",C,E),window.removeEventListener("gesturestart",m,y),window.removeEventListener("gesturechange",m,y),window.removeEventListener("gestureend",m,y)}},[e]),c.useEffect(()=>{if(!e)return;const m=E=>{E.code==="Space"&&(me(E.target)||(O||T(!0),E.preventDefault()))},C=E=>{E.code==="Space"&&T(!1)};return window.addEventListener("keydown",m),window.addEventListener("keyup",C),()=>{window.removeEventListener("keydown",m),window.removeEventListener("keyup",C)}},[e,O]),c.useEffect(()=>{if(!e)return;const m=C=>{if(!C.defaultPrevented){if(me(C.target)){C.key==="Escape"&&(C.preventDefault(),C.target.blur(),a.focusMemo(null));return}if(C.key==="Escape"){if(C.preventDefault(),s())return;i();return}if(C.shiftKey&&!C.metaKey&&!C.ctrlKey&&!C.altKey&&C.key.toLowerCase()==="b"){C.preventDefault(),!A&&!C.repeat&&B();return}if((C.metaKey||C.ctrlKey)&&C.key.toLowerCase()==="z"){if(C.preventDefault(),C.shiftKey){if(l())return;a.redo();return}if(r())return;a.undo()}}};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[a,a.focusMemo,a.redo,a.undo,e,i,s,A,B,l,r]),{spaceHeld:O,handleViewerKeyDown:m=>{if(me(m.target)){m.key==="Escape"&&(m.preventDefault(),m.target.blur(),a.focusMemo(null));return}if(e&&["1","2","3","4","5","6"].includes(m.key)){m.preventDefault();const C=["select","pen","box","arrow","memo","eraser"];a.setTool(C[Number(m.key)-1]);return}if(e&&m.key==="Escape"){if(m.preventDefault(),m.stopPropagation(),s())return;i();return}if(e&&m.key==="]"){m.preventDefault(),f(t+.1);return}if(e&&m.key==="["){m.preventDefault(),f(t-.1);return}if(e&&m.key==="0"){m.preventDefault(),_();return}if(m.key==="Delete"||m.key==="Backspace"){if(!n||m.target!==m.currentTarget)return;if(m.preventDefault(),m.shiftKey){b(n);return}u(n);return}m.key!=="ArrowLeft"&&m.key!=="ArrowRight"&&m.key!=="Home"&&m.key!=="End"||m.target===m.currentTarget&&(me(m.target)||(m.preventDefault(),m.key==="ArrowLeft"?d("previous"):m.key==="ArrowRight"?d("next"):m.key==="Home"?d("first"):m.key==="End"&&d("last")))}}}function Ka(e,t){return new Promise((n,a)=>{e.toBlob(r=>{if(r){n(r);return}a(new Error("canvas_blob_unavailable"))},t)})}async function Ut(e){const t=document.createElement("canvas");t.width=e.imageElement.naturalWidth,t.height=e.imageElement.naturalHeight;const n=t.getContext("2d");if(!n)throw new Error("canvas_context_unavailable");e.background?.mode==="matte"&&(n.fillStyle=e.background.color,n.fillRect(0,0,t.width,t.height)),n.drawImage(e.imageElement,0,0,t.width,t.height);const a={width:t.width,height:t.height};for(const l of e.paths)nt(n,l,a);for(const l of e.boxes)at(n,l,a,"committed");for(const l of e.memos)Bn(n,l,a);return{blob:await Ka(t,"image/png"),dataUrl:t.toDataURL("image/png")}}const za=["left","center","right"],Xa=["top","middle","bottom"];function qa(e,t){const n=za[Math.min(2,Math.max(0,Math.floor(e*3)))],a=Xa[Math.min(2,Math.max(0,Math.floor(t*3)))];return`${a==="middle"&&n==="center"?"center":`${a} ${n}`} area (x: ${Math.round(e*100)}%, y: ${Math.round(t*100)}% from top-left)`}function Ya(e){const t=e.map(n=>({...n,text:n.text.trim()})).filter(n=>n.text.length>0);return t.length===0?"":["Apply the following annotation instructions at the specified image locations (percentages are relative to image width and height):",...t.map((n,a)=>`${a+1}. At the ${qa(n.x,n.y)}: ${n.text}`),"Do not render any annotation text, sticky notes, boxes, arrows, or markup in the output image."].join(`
|
|
2
2
|
`)}async function Ga(e){return(await Ut(e)).blob}function Za(e={},t=new Date){const n=t.toISOString().slice(0,19).replace(/[-:T]/g,""),a=e.matte?"-flat":"";return`canvas-export-${n}${a}.png`}function Ja(e,t){const n=URL.createObjectURL(e);try{const a=document.createElement("a");a.href=n,a.download=t,a.click()}finally{URL.revokeObjectURL(n)}}function Qa({imageElementRef:e,currentImage:t,canvasDisplayImage:n,canvasSourceImageRef:a,lastMergedDataUrlRef:r,lastCleanDataUrlRef:l,canvasVersionItem:s,annotations:i,exportBackground:d,exportMatteColor:u,quality:b,format:f,moderation:_,provider:B,imageModel:A,reasoningEffort:O,promptMode:T,webSearchEnabled:N,getResolvedSize:m,setCanvasVersionItem:C,setCanvasSaveState:E,setIsApplying:y,setIsExporting:v,setIsEditingWithMask:Z,applyMergedCanvasImage:I,addGeneratedHistoryItem:U,attachCanvasVersionReference:g,closeCanvas:S,resetCanvasSession:D,showToast:P,t:V}){const Y=c.useCallback(async()=>{if(!e.current||!t)return null;const L=a.current??t;if(!L?.filename)return P(V("canvas.version.failed"),!0),null;y(!0),E("saving");try{const p=await Ut({imageElement:e.current,paths:i.paths,boxes:i.boxes,memos:i.memos});r.current=p.dataUrl;const R=await xt(L);l.current=R;const J=s?.filename?await un(s.filename,{image:p.blob,sourceFilename:L.canvasSourceFilename??L.filename,prompt:L.prompt}):await Bt({sourceFilename:L.filename,image:p.blob,prompt:L.prompt}),ae=it(J.item,L);return C(ae),I(ae),await g(ae,R),await jt(L.filename).catch(()=>{}),i.resetLocal(),i.markSaved(),E("saved"),P(V("canvas.version.saved")),ae}catch{return E("error"),P(V("canvas.version.failed"),!0),null}finally{y(!1)}},[i,I,g,a,s?.filename,t,e,r,l,E,C,y,P,V]);return{saveCanvasVersionAndUseReference:Y,handleApplyCanvas:async()=>{await Y()},handleCloseCanvas:async()=>{(i.hasAnnotations||i.isDirty)&&!await Y()||(S(),D())},handleExportCanvas:async()=>{if(!(!e.current||!t)){v(!0);try{const L=d==="matte",p=await Ga({imageElement:e.current,paths:i.paths,boxes:i.boxes,memos:i.memos,background:L?{mode:"matte",color:u}:{mode:"alpha"}});Ja(p,Za({matte:L}))}catch{P(V("canvas.toolbar.exportFailed"),!0)}finally{v(!1)}}},handleEditWithMask:async()=>{if(!(!e.current||!n||i.boxes.length===0)){Z(!0);try{const L=i.memos;let p=l.current;if(i.isDirty||i.hasAnnotations){if(!await Y())return;p=l.current}p||(p=await xt(a.current??n));const R=i.boxes.filter(w=>i.selectedIds.some($=>pe($,"box",w.id))),J=await ha({imageElement:e.current,boxes:R.length>0?R:i.boxes}),ae=Ya(L),K=[(n.prompt??t?.prompt??"").trim(),ae].filter(Boolean).join(`
|
|
3
3
|
|
|
4
4
|
`);if(!K.trim()){P(V("toast.noPromptToFork"),!0);return}const q=n.size??t?.size??null,G=q&&/^\d+x\d+$/.test(q)?q:m(),z=await dn({image:p,mask:await ct(J),prompt:K,quality:b,size:G,format:f,moderation:_,provider:B,n:1,model:A,reasoningEffort:O,mode:T,webSearchEnabled:N});await U(ka(z,K))}catch(L){const p=L.code;P(V(p==="EDIT_MASK_NOT_SUPPORTED"?"canvas.toolbar.editMaskUnsupported":"canvas.toolbar.editMaskFailed"),!0)}finally{Z(!1)}}}}}function tr(e){const t=j(h=>h.currentImage),n=j(h=>h.history),a=j(h=>h.importLocalImageToHistory),[r,l]=c.useState(!1),s=j(h=>{const oe=h.multimodePreviewFlightId;return oe?h.multimodeSequences[oe]??null:null}),i=j(h=>h.selectHistoryShortcutTarget),d=j(h=>h.trashHistoryItem),u=j(h=>h.permanentlyDeleteHistoryItemByShortcut),b=j(h=>h.markGeneratedResultsSeen),f=j(h=>h.activeGenerations),_=j(h=>h.quality),B=j(h=>h.format),A=j(h=>h.moderation),O=j(h=>h.provider),T=j(h=>h.imageModel),N=j(h=>h.reasoningEffort),m=j(h=>h.promptMode),C=j(h=>h.webSearchEnabled),E=j(h=>h.getResolvedSize),y=j(h=>h.showToast),v=j(h=>h.canvasOpen),Z=j(h=>h.openCanvas),I=j(h=>h.closeCanvas),U=j(h=>h.canvasZoom),g=j(h=>h.canvasPanX),S=j(h=>h.canvasPanY),D=j(h=>h.setCanvasPan),P=j(h=>h.setCanvasZoom),V=j(h=>h.resetCanvasZoom),Y=j(h=>h.canvasExportBackground),te=j(h=>h.canvasExportMatteColor),ne=j(h=>h.setCanvasExportBackground),se=j(h=>h.setCanvasExportMatteColor),ue=j(h=>h.applyMergedCanvasImage),L=j(h=>h.addGeneratedHistoryItem),p=j(h=>h.attachCanvasVersionReference),{t:R}=ye(),{creatingBlankCanvas:J,createBlankCanvas:ae}=hn(),le=c.useRef(null),K=c.useRef(null),q=c.useRef(null),G=c.useRef(null),z=c.useRef(null),w=c.useRef(null),$=c.useRef(null),ee=c.useRef(null),W=c.useRef(null),[ce,X]=c.useState(null),[F,de]=c.useState("idle"),[re,we]=c.useState(!1),[Pe,Oe]=c.useState(!1),[$e,Ue]=c.useState(!1),H=Sn(),We=()=>{t?.prompt&&(navigator.clipboard.writeText(t.prompt),y(R("toast.promptCopied")))},He=va(t?.quality),Fe=ba(t?.size),Ve=fn(t?.model),ve=t?.filename??t?.url??t?.image??null,he=ya(n,t),x=v?ce??he??t:t,k=x?ga(x):null,M=Na({canvasOpen:v,currentImage:t,canvasDisplayImage:x,imageElementRef:K,canvasSourceImageRef:$,lastMergedDataUrlRef:ee,setCanvasSaveState:de,setCanvasVersionItem:X,applyMergedCanvasImage:ue,attachCanvasVersionReference:p,showToast:y,t:R}),{imageHasAlpha:Q,backgroundCleanupSeeds:ie,backgroundCleanupPreview:ke,backgroundCleanupMaskOverlay:fe,backgroundCleanupBrushStrokes:Ce,cleanupTool:Wt,cleanupBrushRadius:Ht,cleanupBrushCursor:Ft,isBackgroundCleanupActive:_e}=M,Ke=M.backgroundCleanupPreview?.dataUrl??k,ze=()=>{$.current=null,z.current=null,w.current!=null&&(window.clearTimeout(w.current),w.current=null),X(null),de("idle"),M.resetBackgroundCleanup(),ee.current=null,W.current=null,en()};c.useEffect(()=>{if(!v){G.current=ve,ze();return}if(G.current===null){G.current=ve,$.current=t,X(he);return}G.current!==ve&&(H.resetLocal(),ze(),$.current=t,X(he),G.current=ve)},[H.resetLocal,v,t,ve,he]),c.useEffect(()=>{!v||!t||$.current||($.current=t,X(he))},[v,t,he]),c.useEffect(()=>{if(!v||!t?.filename||t.canvasVersion)return;const h=t.filename;if(z.current===h)return;z.current=h;let oe=!1;return pn(h).then(Me=>{!oe&&Me.annotations&&H.load(Me.annotations)}).catch(()=>{}),()=>{oe=!0}},[H.load,v,t?.canvasVersion,t?.filename]),c.useEffect(()=>{if(!v||!t?.filename||t.canvasVersion||!H.isDirty)return;const h=t.filename;return w.current!=null&&window.clearTimeout(w.current),w.current=window.setTimeout(()=>{const oe=H.toPayload();(H.hasAnnotations?mn(h,oe):jt(h)).then(()=>H.markSaved()).catch(()=>{})},500),()=>{w.current!=null&&(window.clearTimeout(w.current),w.current=null)}},[H,H.hasAnnotations,H.isDirty,v,t?.canvasVersion,t?.filename]);const Vt=h=>{me(h.target)||(b(),h.currentTarget.focus())},Kt=c.useCallback(()=>{window.requestAnimationFrame(()=>q.current?.focus())},[]),zt=h=>{if(v){if(h.preventDefault(),h.ctrlKey){P(U-h.deltaY*.01);return}D(g-h.deltaX,S-h.deltaY)}},Xt=c.useCallback(h=>{Array.from(h.dataTransfer.types).includes("Files")&&(h.preventDefault(),l(oe=>oe||!0))},[]),qt=c.useCallback(h=>{h.currentTarget.contains(h.relatedTarget)||l(!1)},[]),Yt=c.useCallback(async h=>{if(!Array.from(h.dataTransfer.types).includes("Files"))return;h.preventDefault(),l(!1);const oe=Array.from(h.dataTransfer.files).filter(Me=>/^image\/(png|jpeg|webp)$/.test(Me.type));oe.length!==0&&await a(oe[0])},[a]),{handleApplyCanvas:Gt,handleCloseCanvas:dt,handleExportCanvas:Zt,handleEditWithMask:Jt}=Qa({imageElementRef:K,currentImage:t,canvasDisplayImage:x,canvasSourceImageRef:$,lastMergedDataUrlRef:ee,lastCleanDataUrlRef:W,canvasVersionItem:ce,annotations:H,exportBackground:Y,exportMatteColor:te,quality:_,format:B,moderation:A,provider:O,imageModel:T,reasoningEffort:N,promptMode:m,webSearchEnabled:C,getResolvedSize:E,setCanvasVersionItem:X,setCanvasSaveState:de,setIsApplying:we,setIsExporting:Oe,setIsEditingWithMask:Ue,applyMergedCanvasImage:ue,addGeneratedHistoryItem:L,attachCanvasVersionReference:p,closeCanvas:I,resetCanvasSession:ze,showToast:y,t:R}),{spaceHeld:Xe,handleViewerKeyDown:Qt}=Va({canvasOpen:v,canvasZoom:U,currentImage:t,annotations:H,undoBackgroundCleanup:M.undoBackgroundCleanup,redoBackgroundCleanup:M.redoBackgroundCleanup,handleBackgroundCleanupEscape:M.handleBackgroundCleanupEscape,handleCloseCanvas:dt,selectHistoryShortcutTarget:i,trashHistoryItem:d,permanentlyDeleteHistoryItemByShortcut:u,setCanvasZoom:P,resetCanvasZoom:V,onCreateBlankCanvas:ae,isCreatingBlankCanvas:J}),qe=v&&U>1.01&&H.activeTool==="select"&&!_e,{viewportPanActive:Ye,resetPointerSession:en,handleAnnotationPointerDown:tn,handleAnnotationPointerMove:nn,handleAnnotationPointerUp:an,handleAnnotationPointerLeave:rn}=Fa({canvasOpen:v,canvasZoom:U,canvasPanX:g,canvasPanY:S,spaceHeld:Xe,canDragViewportWithSelect:qe,isBackgroundCleanupActive:_e,cleanupTool:Wt,annotationFrameRef:le,annotations:H,setCanvasPan:D,addBackgroundCleanupClick:M.addBackgroundCleanupClick,startBackgroundCleanupBrushStroke:M.startBackgroundCleanupBrushStroke,updateBackgroundCleanupBrushStroke:M.updateBackgroundCleanupBrushStroke,endBackgroundCleanupBrushStroke:M.endBackgroundCleanupBrushStroke,setCleanupBrushCursor:M.setCleanupBrushCursor});return o.jsxs("main",{className:`canvas${v?" canvas--mode-open":""}${r?" canvas--drop-active":""}${Xe?" canvas--space-held":""}${Ye?" canvas--pan-active":""}${qe?" canvas--zoom-hand":""}`,onDragOver:Xt,onDragLeave:qt,onDrop:Yt,children:[r?o.jsx("div",{className:"canvas__drop-overlay","aria-hidden":!0,children:o.jsx("span",{className:"canvas__drop-hint",children:R("canvas.drop.hint")})}):null,v&&o.jsx(ca,{zoom:U,closeLabel:R("canvas.close"),blankCanvasLabel:R("canvas.blank.title"),blankCanvasAriaLabel:`${R(J?"canvas.blank.creating":"canvas.blank.create")} (Shift+B)`,blankCanvasShortcut:"Shift+B",blankCanvasBusy:J,shortcutHint:R("canvas.toolbar.zoomShortcutHint"),onZoomIn:()=>P(U+.1),onZoomOut:()=>P(U-.1),onZoomReset:V,onCreateBlankCanvas:()=>{ae()},onClose:()=>{dt()}}),o.jsx("div",{className:`progress-bar${f>0?" active":""}`}),s?o.jsx(vn,{}):t?o.jsxs("div",{ref:q,className:"result-container visible",tabIndex:0,onMouseDown:Vt,onWheel:zt,onKeyDown:Qt,"aria-label":R("canvas.imageViewerAria"),children:[o.jsx(Nn,{annotationFrameRef:le,imageElementRef:K,frameClassName:`canvas-annotation-frame${(Q||ke)&&v?" canvas-annotation-frame--alpha":""}${_e&&v?" canvas-annotation-frame--cleanup-picking":""}${fe&&v?" canvas-annotation-frame--cleanup-mask":""}`,frameStyle:{cursor:Ye?"grabbing":Xe||qe?"grab":v?_e?"crosshair":H.activeTool==="select"?"default":H.activeTool==="eraser"?H.eraserMode==="object"?pa:ma:"crosshair":"zoom-in",transform:v?`translate(${g}px, ${S}px) scale(${U})`:void 0,transition:v&&!Ye?"transform 0.2s ease":void 0},imageKey:`${x?.filename??x?.url??x?.image}:${x?.canvasMergedAt??""}`,imageSrc:Ke??t.image,fallbackImage:t.image,alt:R("canvas.resultAlt"),canvasOpen:v,maskOverlayUrl:fe?.dataUrl??null,cleanupLayer:o.jsx(On,{seeds:ie,brushStrokes:Ce,brushCursor:Ft,brushRadius:Ht,active:_e}),annotations:H,onOpenCanvas:Z,onPointerDown:tn,onPointerMove:nn,onPointerUp:an,onPointerLeave:rn}),v&&Ke?o.jsx(ua,{imageSrc:Ke,zoom:U,panX:g,panY:S,resetLabel:R("canvas.toolbar.zoomReset"),onReset:V}):null,v&&o.jsx(aa,{annotations:H,backgroundCleanup:M,backgroundCleanupPreview:ke,canvasState:{exportBackground:Y,exportMatteColor:te,isApplying:re,isExporting:Pe,isEditingWithMask:$e},actions:{handleApplyCanvas:Gt,handleExportCanvas:Zt,handleEditWithMask:Jt,setExportBackground:ne,setExportMatteColor:se}}),v&&F!=="idle"?o.jsx("div",{className:`canvas-save-state canvas-save-state--${F}`,children:R(F==="saving"?"canvas.version.saving":F==="saved"?"canvas.version.saved":"canvas.version.failed")}):null,o.jsx(ra,{currentImage:t,canvasDisplayImage:x,canvasOpen:v,displayQuality:He,displaySize:Fe,displayModel:Ve,onAfterDeleteFocus:Kt,onCopyPrompt:We})]}):null]})}export{tr as CanvasModeWorkspace};
|
package/ui/dist/index.html
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
}
|
|
35
35
|
})();
|
|
36
36
|
</script>
|
|
37
|
-
<script type="module" crossorigin src="/assets/index-
|
|
37
|
+
<script type="module" crossorigin src="/assets/index-CoxMOXAU.js"></script>
|
|
38
38
|
<link rel="stylesheet" crossorigin href="/assets/index-2oG6in1i.css">
|
|
39
39
|
</head>
|
|
40
40
|
<body>
|
|
Binary file
|