netra-artifacts 0.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/LICENSE +21 -0
- package/README.md +239 -0
- package/dist/artifacts/artifactEnvelope.d.ts +46 -0
- package/dist/artifacts/artifactEnvelope.d.ts.map +1 -0
- package/dist/artifacts/artifactEnvelope.js +217 -0
- package/dist/artifacts/artifactEnvelope.js.map +1 -0
- package/dist/artifacts/artifactStatus.d.ts +9 -0
- package/dist/artifacts/artifactStatus.d.ts.map +1 -0
- package/dist/artifacts/artifactStatus.js +10 -0
- package/dist/artifacts/artifactStatus.js.map +1 -0
- package/dist/artifacts/artifactStore.d.ts +15 -0
- package/dist/artifacts/artifactStore.d.ts.map +1 -0
- package/dist/artifacts/artifactStore.js +35 -0
- package/dist/artifacts/artifactStore.js.map +1 -0
- package/dist/artifacts/htmlArtifact.d.ts +10 -0
- package/dist/artifacts/htmlArtifact.d.ts.map +1 -0
- package/dist/artifacts/htmlArtifact.js +20 -0
- package/dist/artifacts/htmlArtifact.js.map +1 -0
- package/dist/artifacts/index.d.ts +5 -0
- package/dist/artifacts/index.d.ts.map +1 -0
- package/dist/artifacts/index.js +5 -0
- package/dist/artifacts/index.js.map +1 -0
- package/dist/circuit-breaker/circuitBreaker.d.ts +35 -0
- package/dist/circuit-breaker/circuitBreaker.d.ts.map +1 -0
- package/dist/circuit-breaker/circuitBreaker.js +59 -0
- package/dist/circuit-breaker/circuitBreaker.js.map +1 -0
- package/dist/circuit-breaker/index.d.ts +3 -0
- package/dist/circuit-breaker/index.d.ts.map +1 -0
- package/dist/circuit-breaker/index.js +3 -0
- package/dist/circuit-breaker/index.js.map +1 -0
- package/dist/circuit-breaker/memoryCircuitStore.d.ts +24 -0
- package/dist/circuit-breaker/memoryCircuitStore.d.ts.map +1 -0
- package/dist/circuit-breaker/memoryCircuitStore.js +12 -0
- package/dist/circuit-breaker/memoryCircuitStore.js.map +1 -0
- package/dist/classifier/classifierPrompt.d.ts +7 -0
- package/dist/classifier/classifierPrompt.d.ts.map +1 -0
- package/dist/classifier/classifierPrompt.js +43 -0
- package/dist/classifier/classifierPrompt.js.map +1 -0
- package/dist/classifier/classifyMode.d.ts +21 -0
- package/dist/classifier/classifyMode.d.ts.map +1 -0
- package/dist/classifier/classifyMode.js +50 -0
- package/dist/classifier/classifyMode.js.map +1 -0
- package/dist/classifier/index.d.ts +4 -0
- package/dist/classifier/index.d.ts.map +1 -0
- package/dist/classifier/index.js +4 -0
- package/dist/classifier/index.js.map +1 -0
- package/dist/classifier/rules.d.ts +13 -0
- package/dist/classifier/rules.d.ts.map +1 -0
- package/dist/classifier/rules.js +118 -0
- package/dist/classifier/rules.js.map +1 -0
- package/dist/client/ArtifactChat.d.ts +15 -0
- package/dist/client/ArtifactChat.d.ts.map +1 -0
- package/dist/client/ArtifactChat.js +62 -0
- package/dist/client/ArtifactChat.js.map +1 -0
- package/dist/client/ArtifactMessage.d.ts +24 -0
- package/dist/client/ArtifactMessage.d.ts.map +1 -0
- package/dist/client/ArtifactMessage.js +29 -0
- package/dist/client/ArtifactMessage.js.map +1 -0
- package/dist/client/MarkdownMessage.d.ts +12 -0
- package/dist/client/MarkdownMessage.d.ts.map +1 -0
- package/dist/client/MarkdownMessage.js +141 -0
- package/dist/client/MarkdownMessage.js.map +1 -0
- package/dist/client/index.d.ts +8 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +8 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/useArtifactStream.d.ts +9 -0
- package/dist/client/useArtifactStream.d.ts.map +1 -0
- package/dist/client/useArtifactStream.js +210 -0
- package/dist/client/useArtifactStream.js.map +1 -0
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +4 -0
- package/dist/client.js.map +1 -0
- package/dist/constants/defaults.d.ts +17 -0
- package/dist/constants/defaults.d.ts.map +1 -0
- package/dist/constants/defaults.js +38 -0
- package/dist/constants/defaults.js.map +1 -0
- package/dist/constants/events.d.ts +16 -0
- package/dist/constants/events.d.ts.map +1 -0
- package/dist/constants/events.js +16 -0
- package/dist/constants/events.js.map +1 -0
- package/dist/constants/index.d.ts +4 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +4 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/sandbox.d.ts +19 -0
- package/dist/constants/sandbox.d.ts.map +1 -0
- package/dist/constants/sandbox.js +24 -0
- package/dist/constants/sandbox.js.map +1 -0
- package/dist/core/createArtifactResponse.d.ts +5 -0
- package/dist/core/createArtifactResponse.d.ts.map +1 -0
- package/dist/core/createArtifactResponse.js +16 -0
- package/dist/core/createArtifactResponse.js.map +1 -0
- package/dist/core/createArtifactStream.d.ts +9 -0
- package/dist/core/createArtifactStream.d.ts.map +1 -0
- package/dist/core/createArtifactStream.js +34 -0
- package/dist/core/createArtifactStream.js.map +1 -0
- package/dist/core/createIds.d.ts +3 -0
- package/dist/core/createIds.d.ts.map +1 -0
- package/dist/core/createIds.js +13 -0
- package/dist/core/createIds.js.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/lifecycle.d.ts +35 -0
- package/dist/core/lifecycle.d.ts.map +1 -0
- package/dist/core/lifecycle.js +81 -0
- package/dist/core/lifecycle.js.map +1 -0
- package/dist/core/parseArtifactEnvelope.d.ts +2 -0
- package/dist/core/parseArtifactEnvelope.d.ts.map +1 -0
- package/dist/core/parseArtifactEnvelope.js +3 -0
- package/dist/core/parseArtifactEnvelope.js.map +1 -0
- package/dist/errors/ArtifactParseError.d.ts +10 -0
- package/dist/errors/ArtifactParseError.d.ts.map +1 -0
- package/dist/errors/ArtifactParseError.js +10 -0
- package/dist/errors/ArtifactParseError.js.map +1 -0
- package/dist/errors/ClassificationError.d.ts +13 -0
- package/dist/errors/ClassificationError.d.ts.map +1 -0
- package/dist/errors/ClassificationError.js +13 -0
- package/dist/errors/ClassificationError.js.map +1 -0
- package/dist/errors/StreamError.d.ts +11 -0
- package/dist/errors/StreamError.d.ts.map +1 -0
- package/dist/errors/StreamError.js +11 -0
- package/dist/errors/StreamError.js.map +1 -0
- package/dist/errors/index.d.ts +4 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +4 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/iframe/HtmlArtifactCard.d.ts +9 -0
- package/dist/iframe/HtmlArtifactCard.d.ts.map +1 -0
- package/dist/iframe/HtmlArtifactCard.js +117 -0
- package/dist/iframe/HtmlArtifactCard.js.map +1 -0
- package/dist/iframe/HtmlArtifactCodeView.d.ts +7 -0
- package/dist/iframe/HtmlArtifactCodeView.d.ts.map +1 -0
- package/dist/iframe/HtmlArtifactCodeView.js +20 -0
- package/dist/iframe/HtmlArtifactCodeView.js.map +1 -0
- package/dist/iframe/HtmlArtifactModal.d.ts +16 -0
- package/dist/iframe/HtmlArtifactModal.d.ts.map +1 -0
- package/dist/iframe/HtmlArtifactModal.js +99 -0
- package/dist/iframe/HtmlArtifactModal.js.map +1 -0
- package/dist/iframe/HtmlArtifactPreview.d.ts +15 -0
- package/dist/iframe/HtmlArtifactPreview.d.ts.map +1 -0
- package/dist/iframe/HtmlArtifactPreview.js +214 -0
- package/dist/iframe/HtmlArtifactPreview.js.map +1 -0
- package/dist/iframe/HtmlArtifactToolbar.d.ts +20 -0
- package/dist/iframe/HtmlArtifactToolbar.d.ts.map +1 -0
- package/dist/iframe/HtmlArtifactToolbar.js +14 -0
- package/dist/iframe/HtmlArtifactToolbar.js.map +1 -0
- package/dist/iframe/iframeSizing.d.ts +22 -0
- package/dist/iframe/iframeSizing.d.ts.map +1 -0
- package/dist/iframe/iframeSizing.js +74 -0
- package/dist/iframe/iframeSizing.js.map +1 -0
- package/dist/iframe/iframeSrcDoc.d.ts +34 -0
- package/dist/iframe/iframeSrcDoc.d.ts.map +1 -0
- package/dist/iframe/iframeSrcDoc.js +236 -0
- package/dist/iframe/iframeSrcDoc.js.map +1 -0
- package/dist/iframe/index.d.ts +15 -0
- package/dist/iframe/index.d.ts.map +1 -0
- package/dist/iframe/index.js +9 -0
- package/dist/iframe/index.js.map +1 -0
- package/dist/iframe/styles.d.ts +10 -0
- package/dist/iframe/styles.d.ts.map +1 -0
- package/dist/iframe/styles.js +181 -0
- package/dist/iframe/styles.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/htmlArtifactPrompt.d.ts +15 -0
- package/dist/prompts/htmlArtifactPrompt.d.ts.map +1 -0
- package/dist/prompts/htmlArtifactPrompt.js +248 -0
- package/dist/prompts/htmlArtifactPrompt.js.map +1 -0
- package/dist/prompts/index.d.ts +4 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +4 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/markdownPrompt.d.ts +3 -0
- package/dist/prompts/markdownPrompt.d.ts.map +1 -0
- package/dist/prompts/markdownPrompt.js +10 -0
- package/dist/prompts/markdownPrompt.js.map +1 -0
- package/dist/prompts/systemPrompt.d.ts +3 -0
- package/dist/prompts/systemPrompt.d.ts.map +1 -0
- package/dist/prompts/systemPrompt.js +3 -0
- package/dist/prompts/systemPrompt.js.map +1 -0
- package/dist/sanitizer/dangerousPatterns.d.ts +41 -0
- package/dist/sanitizer/dangerousPatterns.d.ts.map +1 -0
- package/dist/sanitizer/dangerousPatterns.js +41 -0
- package/dist/sanitizer/dangerousPatterns.js.map +1 -0
- package/dist/sanitizer/index.d.ts +4 -0
- package/dist/sanitizer/index.d.ts.map +1 -0
- package/dist/sanitizer/index.js +4 -0
- package/dist/sanitizer/index.js.map +1 -0
- package/dist/sanitizer/sanitizeConfig.d.ts +4 -0
- package/dist/sanitizer/sanitizeConfig.d.ts.map +1 -0
- package/dist/sanitizer/sanitizeConfig.js +10 -0
- package/dist/sanitizer/sanitizeConfig.js.map +1 -0
- package/dist/sanitizer/sanitizeHtml.d.ts +20 -0
- package/dist/sanitizer/sanitizeHtml.d.ts.map +1 -0
- package/dist/sanitizer/sanitizeHtml.js +81 -0
- package/dist/sanitizer/sanitizeHtml.js.map +1 -0
- package/dist/server/config.d.ts +6 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/config.js +68 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/createArtifactStreamResponse.d.ts +9 -0
- package/dist/server/createArtifactStreamResponse.d.ts.map +1 -0
- package/dist/server/createArtifactStreamResponse.js +104 -0
- package/dist/server/createArtifactStreamResponse.js.map +1 -0
- package/dist/server/createHtmlArtifactStream.d.ts +30 -0
- package/dist/server/createHtmlArtifactStream.d.ts.map +1 -0
- package/dist/server/createHtmlArtifactStream.js +115 -0
- package/dist/server/createHtmlArtifactStream.js.map +1 -0
- package/dist/server/createMarkdownStream.d.ts +13 -0
- package/dist/server/createMarkdownStream.d.ts.map +1 -0
- package/dist/server/createMarkdownStream.js +27 -0
- package/dist/server/createMarkdownStream.js.map +1 -0
- package/dist/server/createSseResponse.d.ts +7 -0
- package/dist/server/createSseResponse.d.ts.map +1 -0
- package/dist/server/createSseResponse.js +11 -0
- package/dist/server/createSseResponse.js.map +1 -0
- package/dist/server/index.d.ts +12 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +12 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +3 -0
- package/dist/server.js.map +1 -0
- package/dist/stream/assembleDocument.d.ts +42 -0
- package/dist/stream/assembleDocument.d.ts.map +1 -0
- package/dist/stream/assembleDocument.js +104 -0
- package/dist/stream/assembleDocument.js.map +1 -0
- package/dist/stream/buffering.d.ts +37 -0
- package/dist/stream/buffering.d.ts.map +1 -0
- package/dist/stream/buffering.js +97 -0
- package/dist/stream/buffering.js.map +1 -0
- package/dist/stream/debounce.d.ts +12 -0
- package/dist/stream/debounce.d.ts.map +1 -0
- package/dist/stream/debounce.js +36 -0
- package/dist/stream/debounce.js.map +1 -0
- package/dist/stream/decoder.d.ts +17 -0
- package/dist/stream/decoder.d.ts.map +1 -0
- package/dist/stream/decoder.js +71 -0
- package/dist/stream/decoder.js.map +1 -0
- package/dist/stream/encoder.d.ts +12 -0
- package/dist/stream/encoder.d.ts.map +1 -0
- package/dist/stream/encoder.js +19 -0
- package/dist/stream/encoder.js.map +1 -0
- package/dist/stream/events.d.ts +20 -0
- package/dist/stream/events.d.ts.map +1 -0
- package/dist/stream/events.js +65 -0
- package/dist/stream/events.js.map +1 -0
- package/dist/stream/index.d.ts +9 -0
- package/dist/stream/index.d.ts.map +1 -0
- package/dist/stream/index.js +9 -0
- package/dist/stream/index.js.map +1 -0
- package/dist/stream/predictiveHtmlParser.d.ts +52 -0
- package/dist/stream/predictiveHtmlParser.d.ts.map +1 -0
- package/dist/stream/predictiveHtmlParser.js +252 -0
- package/dist/stream/predictiveHtmlParser.js.map +1 -0
- package/dist/stream/sse.d.ts +7 -0
- package/dist/stream/sse.d.ts.map +1 -0
- package/dist/stream/sse.js +33 -0
- package/dist/stream/sse.js.map +1 -0
- package/dist/types/artifact.d.ts +88 -0
- package/dist/types/artifact.d.ts.map +1 -0
- package/dist/types/artifact.js +2 -0
- package/dist/types/artifact.js.map +1 -0
- package/dist/types/client.d.ts +98 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/client.js +2 -0
- package/dist/types/client.js.map +1 -0
- package/dist/types/config.d.ts +23 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/errors.d.ts +9 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +2 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/server.d.ts +111 -0
- package/dist/types/server.d.ts.map +1 -0
- package/dist/types/server.js +2 -0
- package/dist/types/server.js.map +1 -0
- package/dist/types/stream.d.ts +60 -0
- package/dist/types/stream.d.ts.map +1 -0
- package/dist/types/stream.js +7 -0
- package/dist/types/stream.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/invariant.d.ts +6 -0
- package/dist/utils/invariant.d.ts.map +1 -0
- package/dist/utils/invariant.js +10 -0
- package/dist/utils/invariant.js.map +1 -0
- package/dist/utils/isBrowser.d.ts +3 -0
- package/dist/utils/isBrowser.d.ts.map +1 -0
- package/dist/utils/isBrowser.js +3 -0
- package/dist/utils/isBrowser.js.map +1 -0
- package/dist/utils/mergeConfig.d.ts +6 -0
- package/dist/utils/mergeConfig.d.ts.map +1 -0
- package/dist/utils/mergeConfig.js +17 -0
- package/dist/utils/mergeConfig.js.map +1 -0
- package/dist/utils/noop.d.ts +3 -0
- package/dist/utils/noop.d.ts.map +1 -0
- package/dist/utils/noop.js +3 -0
- package/dist/utils/noop.js.map +1 -0
- package/dist/utils/safeJsonParse.d.ts +7 -0
- package/dist/utils/safeJsonParse.d.ts.map +1 -0
- package/dist/utils/safeJsonParse.js +62 -0
- package/dist/utils/safeJsonParse.js.map +1 -0
- package/dist-cjs/artifacts/artifactEnvelope.js +224 -0
- package/dist-cjs/artifacts/artifactEnvelope.js.map +1 -0
- package/dist-cjs/artifacts/artifactStatus.js +14 -0
- package/dist-cjs/artifacts/artifactStatus.js.map +1 -0
- package/dist-cjs/artifacts/artifactStore.js +39 -0
- package/dist-cjs/artifacts/artifactStore.js.map +1 -0
- package/dist-cjs/artifacts/htmlArtifact.js +24 -0
- package/dist-cjs/artifacts/htmlArtifact.js.map +1 -0
- package/dist-cjs/artifacts/index.js +21 -0
- package/dist-cjs/artifacts/index.js.map +1 -0
- package/dist-cjs/circuit-breaker/circuitBreaker.js +63 -0
- package/dist-cjs/circuit-breaker/circuitBreaker.js.map +1 -0
- package/dist-cjs/circuit-breaker/index.js +19 -0
- package/dist-cjs/circuit-breaker/index.js.map +1 -0
- package/dist-cjs/circuit-breaker/memoryCircuitStore.js +16 -0
- package/dist-cjs/circuit-breaker/memoryCircuitStore.js.map +1 -0
- package/dist-cjs/classifier/classifierPrompt.js +47 -0
- package/dist-cjs/classifier/classifierPrompt.js.map +1 -0
- package/dist-cjs/classifier/classifyMode.js +53 -0
- package/dist-cjs/classifier/classifyMode.js.map +1 -0
- package/dist-cjs/classifier/index.js +20 -0
- package/dist-cjs/classifier/index.js.map +1 -0
- package/dist-cjs/classifier/rules.js +121 -0
- package/dist-cjs/classifier/rules.js.map +1 -0
- package/dist-cjs/client/ArtifactChat.js +98 -0
- package/dist-cjs/client/ArtifactChat.js.map +1 -0
- package/dist-cjs/client/ArtifactMessage.js +32 -0
- package/dist-cjs/client/ArtifactMessage.js.map +1 -0
- package/dist-cjs/client/MarkdownMessage.js +177 -0
- package/dist-cjs/client/MarkdownMessage.js.map +1 -0
- package/dist-cjs/client/index.js +20 -0
- package/dist-cjs/client/index.js.map +1 -0
- package/dist-cjs/client/useArtifactStream.js +246 -0
- package/dist-cjs/client/useArtifactStream.js.map +1 -0
- package/dist-cjs/client.js +20 -0
- package/dist-cjs/client.js.map +1 -0
- package/dist-cjs/constants/defaults.js +41 -0
- package/dist-cjs/constants/defaults.js.map +1 -0
- package/dist-cjs/constants/events.js +19 -0
- package/dist-cjs/constants/events.js.map +1 -0
- package/dist-cjs/constants/index.js +20 -0
- package/dist-cjs/constants/index.js.map +1 -0
- package/dist-cjs/constants/sandbox.js +27 -0
- package/dist-cjs/constants/sandbox.js.map +1 -0
- package/dist-cjs/core/createArtifactResponse.js +20 -0
- package/dist-cjs/core/createArtifactResponse.js.map +1 -0
- package/dist-cjs/core/createArtifactStream.js +37 -0
- package/dist-cjs/core/createArtifactStream.js.map +1 -0
- package/dist-cjs/core/createIds.js +17 -0
- package/dist-cjs/core/createIds.js.map +1 -0
- package/dist-cjs/core/index.js +22 -0
- package/dist-cjs/core/index.js.map +1 -0
- package/dist-cjs/core/lifecycle.js +86 -0
- package/dist-cjs/core/lifecycle.js.map +1 -0
- package/dist-cjs/core/parseArtifactEnvelope.js +8 -0
- package/dist-cjs/core/parseArtifactEnvelope.js.map +1 -0
- package/dist-cjs/errors/ArtifactParseError.js +14 -0
- package/dist-cjs/errors/ArtifactParseError.js.map +1 -0
- package/dist-cjs/errors/ClassificationError.js +17 -0
- package/dist-cjs/errors/ClassificationError.js.map +1 -0
- package/dist-cjs/errors/StreamError.js +15 -0
- package/dist-cjs/errors/StreamError.js.map +1 -0
- package/dist-cjs/errors/index.js +20 -0
- package/dist-cjs/errors/index.js.map +1 -0
- package/dist-cjs/iframe/HtmlArtifactCard.js +153 -0
- package/dist-cjs/iframe/HtmlArtifactCard.js.map +1 -0
- package/dist-cjs/iframe/HtmlArtifactCodeView.js +23 -0
- package/dist-cjs/iframe/HtmlArtifactCodeView.js.map +1 -0
- package/dist-cjs/iframe/HtmlArtifactModal.js +135 -0
- package/dist-cjs/iframe/HtmlArtifactModal.js.map +1 -0
- package/dist-cjs/iframe/HtmlArtifactPreview.js +250 -0
- package/dist-cjs/iframe/HtmlArtifactPreview.js.map +1 -0
- package/dist-cjs/iframe/HtmlArtifactToolbar.js +17 -0
- package/dist-cjs/iframe/HtmlArtifactToolbar.js.map +1 -0
- package/dist-cjs/iframe/iframeSizing.js +77 -0
- package/dist-cjs/iframe/iframeSizing.js.map +1 -0
- package/dist-cjs/iframe/iframeSrcDoc.js +241 -0
- package/dist-cjs/iframe/iframeSrcDoc.js.map +1 -0
- package/dist-cjs/iframe/index.js +22 -0
- package/dist-cjs/iframe/index.js.map +1 -0
- package/dist-cjs/iframe/styles.js +218 -0
- package/dist-cjs/iframe/styles.js.map +1 -0
- package/dist-cjs/index.js +52 -0
- package/dist-cjs/index.js.map +1 -0
- package/dist-cjs/package.json +3 -0
- package/dist-cjs/prompts/htmlArtifactPrompt.js +252 -0
- package/dist-cjs/prompts/htmlArtifactPrompt.js.map +1 -0
- package/dist-cjs/prompts/index.js +20 -0
- package/dist-cjs/prompts/index.js.map +1 -0
- package/dist-cjs/prompts/markdownPrompt.js +13 -0
- package/dist-cjs/prompts/markdownPrompt.js.map +1 -0
- package/dist-cjs/prompts/systemPrompt.js +6 -0
- package/dist-cjs/prompts/systemPrompt.js.map +1 -0
- package/dist-cjs/sanitizer/dangerousPatterns.js +44 -0
- package/dist-cjs/sanitizer/dangerousPatterns.js.map +1 -0
- package/dist-cjs/sanitizer/index.js +43 -0
- package/dist-cjs/sanitizer/index.js.map +1 -0
- package/dist-cjs/sanitizer/sanitizeConfig.js +13 -0
- package/dist-cjs/sanitizer/sanitizeConfig.js.map +1 -0
- package/dist-cjs/sanitizer/sanitizeHtml.js +86 -0
- package/dist-cjs/sanitizer/sanitizeHtml.js.map +1 -0
- package/dist-cjs/server/config.js +72 -0
- package/dist-cjs/server/config.js.map +1 -0
- package/dist-cjs/server/createArtifactStreamResponse.js +107 -0
- package/dist-cjs/server/createArtifactStreamResponse.js.map +1 -0
- package/dist-cjs/server/createHtmlArtifactStream.js +119 -0
- package/dist-cjs/server/createHtmlArtifactStream.js.map +1 -0
- package/dist-cjs/server/createMarkdownStream.js +31 -0
- package/dist-cjs/server/createMarkdownStream.js.map +1 -0
- package/dist-cjs/server/createSseResponse.js +14 -0
- package/dist-cjs/server/createSseResponse.js.map +1 -0
- package/dist-cjs/server/index.js +34 -0
- package/dist-cjs/server/index.js.map +1 -0
- package/dist-cjs/server.js +19 -0
- package/dist-cjs/server.js.map +1 -0
- package/dist-cjs/stream/assembleDocument.js +109 -0
- package/dist-cjs/stream/assembleDocument.js.map +1 -0
- package/dist-cjs/stream/buffering.js +102 -0
- package/dist-cjs/stream/buffering.js.map +1 -0
- package/dist-cjs/stream/debounce.js +39 -0
- package/dist-cjs/stream/debounce.js.map +1 -0
- package/dist-cjs/stream/decoder.js +75 -0
- package/dist-cjs/stream/decoder.js.map +1 -0
- package/dist-cjs/stream/encoder.js +24 -0
- package/dist-cjs/stream/encoder.js.map +1 -0
- package/dist-cjs/stream/events.js +69 -0
- package/dist-cjs/stream/events.js.map +1 -0
- package/dist-cjs/stream/index.js +25 -0
- package/dist-cjs/stream/index.js.map +1 -0
- package/dist-cjs/stream/predictiveHtmlParser.js +256 -0
- package/dist-cjs/stream/predictiveHtmlParser.js.map +1 -0
- package/dist-cjs/stream/sse.js +36 -0
- package/dist-cjs/stream/sse.js.map +1 -0
- package/dist-cjs/types/artifact.js +3 -0
- package/dist-cjs/types/artifact.js.map +1 -0
- package/dist-cjs/types/client.js +3 -0
- package/dist-cjs/types/client.js.map +1 -0
- package/dist-cjs/types/config.js +3 -0
- package/dist-cjs/types/config.js.map +1 -0
- package/dist-cjs/types/errors.js +3 -0
- package/dist-cjs/types/errors.js.map +1 -0
- package/dist-cjs/types/index.js +3 -0
- package/dist-cjs/types/index.js.map +1 -0
- package/dist-cjs/types/server.js +3 -0
- package/dist-cjs/types/server.js.map +1 -0
- package/dist-cjs/types/stream.js +8 -0
- package/dist-cjs/types/stream.js.map +1 -0
- package/dist-cjs/utils/index.js +22 -0
- package/dist-cjs/utils/index.js.map +1 -0
- package/dist-cjs/utils/invariant.js +13 -0
- package/dist-cjs/utils/invariant.js.map +1 -0
- package/dist-cjs/utils/isBrowser.js +6 -0
- package/dist-cjs/utils/isBrowser.js.map +1 -0
- package/dist-cjs/utils/mergeConfig.js +20 -0
- package/dist-cjs/utils/mergeConfig.js.map +1 -0
- package/dist-cjs/utils/noop.js +7 -0
- package/dist-cjs/utils/noop.js.map +1 -0
- package/dist-cjs/utils/safeJsonParse.js +65 -0
- package/dist-cjs/utils/safeJsonParse.js.map +1 -0
- package/package.json +115 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createArtifactResponse.js","sourceRoot":"","sources":["../../src/core/createArtifactResponse.ts"],"names":[],"mappings":";;;AAUA,wDAQC;AAlBD,4DAA4D;AAC/C,QAAA,WAAW,GAA2B;IACjD,cAAc,EAAE,kCAAkC;IAClD,eAAe,EAAE,wBAAwB;IACzC,UAAU,EAAE,YAAY;IACxB,uDAAuD;IACvD,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEF,wEAAwE;AACxE,SAAgB,sBAAsB,CACpC,MAAkC,EAClC,IAAmB;IAEnB,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;QAC1B,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG;QAC3B,OAAO,EAAE,EAAE,GAAG,mBAAW,EAAE,GAAI,IAAI,EAAE,OAAkC,EAAE;KAC1E,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createArtifactStream = createArtifactStream;
|
|
4
|
+
const encoder_js_1 = require("../stream/encoder.js");
|
|
5
|
+
const events_js_1 = require("../stream/events.js");
|
|
6
|
+
/**
|
|
7
|
+
* Turn an event-emitting producer into an SSE byte stream. The producer is
|
|
8
|
+
* responsible for emitting its own `done` event on success; this wrapper
|
|
9
|
+
* guarantees the stream is always closed and that an uncaught producer error
|
|
10
|
+
* becomes a terminal `error` + `done` pair rather than a hung connection.
|
|
11
|
+
*/
|
|
12
|
+
function createArtifactStream(producer) {
|
|
13
|
+
const encoder = new TextEncoder();
|
|
14
|
+
return new ReadableStream({
|
|
15
|
+
async start(controller) {
|
|
16
|
+
let closed = false;
|
|
17
|
+
const emit = (e) => {
|
|
18
|
+
if (closed)
|
|
19
|
+
return;
|
|
20
|
+
controller.enqueue((0, encoder_js_1.encodeSseEventBytes)(e, encoder));
|
|
21
|
+
};
|
|
22
|
+
try {
|
|
23
|
+
await producer(emit);
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
27
|
+
emit(events_js_1.event.error(message, false));
|
|
28
|
+
emit(events_js_1.event.done());
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
closed = true;
|
|
32
|
+
controller.close();
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=createArtifactStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createArtifactStream.js","sourceRoot":"","sources":["../../src/core/createArtifactStream.ts"],"names":[],"mappings":";;AAUA,oDAyBC;AAnCD,qDAA2D;AAC3D,mDAA4C;AAG5C;;;;;GAKG;AACH,SAAgB,oBAAoB,CAClC,QAAgC;IAEhC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAElC,OAAO,IAAI,cAAc,CAAa;QACpC,KAAK,CAAC,KAAK,CAAC,UAAU;YACpB,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,MAAM,IAAI,GAAS,CAAC,CAAC,EAAE,EAAE;gBACvB,IAAI,MAAM;oBAAE,OAAO;gBACnB,UAAU,CAAC,OAAO,CAAC,IAAA,gCAAmB,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACtD,CAAC,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,IAAI,CAAC,iBAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBAClC,IAAI,CAAC,iBAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACrB,CAAC;oBAAS,CAAC;gBACT,MAAM,GAAG,IAAI,CAAC;gBACd,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createMessageId = createMessageId;
|
|
4
|
+
exports.createArtifactId = createArtifactId;
|
|
5
|
+
function randomId() {
|
|
6
|
+
const g = globalThis;
|
|
7
|
+
if (g.crypto?.randomUUID)
|
|
8
|
+
return g.crypto.randomUUID();
|
|
9
|
+
return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
|
|
10
|
+
}
|
|
11
|
+
function createMessageId() {
|
|
12
|
+
return `msg_${randomId()}`;
|
|
13
|
+
}
|
|
14
|
+
function createArtifactId() {
|
|
15
|
+
return `art_${randomId()}`;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=createIds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createIds.js","sourceRoot":"","sources":["../../src/core/createIds.ts"],"names":[],"mappings":";;AAMA,0CAEC;AAED,4CAEC;AAZD,SAAS,QAAQ;IACf,MAAM,CAAC,GAAG,UAAwD,CAAC;IACnE,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACvD,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACjF,CAAC;AAED,SAAgB,eAAe;IAC7B,OAAO,OAAO,QAAQ,EAAE,EAAE,CAAC;AAC7B,CAAC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,OAAO,QAAQ,EAAE,EAAE,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./createIds.js"), exports);
|
|
18
|
+
__exportStar(require("./lifecycle.js"), exports);
|
|
19
|
+
__exportStar(require("./createArtifactStream.js"), exports);
|
|
20
|
+
__exportStar(require("./createArtifactResponse.js"), exports);
|
|
21
|
+
__exportStar(require("./parseArtifactEnvelope.js"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,iDAA+B;AAC/B,4DAA0C;AAC1C,8DAA4C;AAC5C,6DAA2C"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArtifactLifecycle = exports.MessageLifecycle = void 0;
|
|
4
|
+
const events_js_1 = require("../stream/events.js");
|
|
5
|
+
const createIds_js_1 = require("./createIds.js");
|
|
6
|
+
/**
|
|
7
|
+
* Helper that manages a single assistant message's lifecycle, accumulating
|
|
8
|
+
* content so `done` can carry the full text without the caller re-tracking it.
|
|
9
|
+
*/
|
|
10
|
+
class MessageLifecycle {
|
|
11
|
+
emit;
|
|
12
|
+
id;
|
|
13
|
+
content = "";
|
|
14
|
+
started = false;
|
|
15
|
+
finished = false;
|
|
16
|
+
constructor(emit, id = (0, createIds_js_1.createMessageId)()) {
|
|
17
|
+
this.emit = emit;
|
|
18
|
+
this.id = id;
|
|
19
|
+
}
|
|
20
|
+
start() {
|
|
21
|
+
if (this.started)
|
|
22
|
+
return;
|
|
23
|
+
this.started = true;
|
|
24
|
+
this.emit(events_js_1.event.messageStart(this.id));
|
|
25
|
+
}
|
|
26
|
+
delta(text) {
|
|
27
|
+
if (!text || this.finished)
|
|
28
|
+
return;
|
|
29
|
+
if (!this.started)
|
|
30
|
+
this.start();
|
|
31
|
+
this.content += text;
|
|
32
|
+
this.emit(events_js_1.event.messageDelta(this.id, text));
|
|
33
|
+
}
|
|
34
|
+
/** Idempotent — emits `message_done` at most once. */
|
|
35
|
+
done(finalContent) {
|
|
36
|
+
if (this.finished)
|
|
37
|
+
return this.content;
|
|
38
|
+
if (!this.started)
|
|
39
|
+
this.start();
|
|
40
|
+
if (finalContent !== undefined && this.content === "") {
|
|
41
|
+
this.content = finalContent;
|
|
42
|
+
}
|
|
43
|
+
this.finished = true;
|
|
44
|
+
this.emit(events_js_1.event.messageDone(this.id, this.content));
|
|
45
|
+
return this.content;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.MessageLifecycle = MessageLifecycle;
|
|
49
|
+
/** Helper managing one artifact's lifecycle (start → deltas → snapshots → done). */
|
|
50
|
+
class ArtifactLifecycle {
|
|
51
|
+
emit;
|
|
52
|
+
id;
|
|
53
|
+
started = false;
|
|
54
|
+
finished = false;
|
|
55
|
+
constructor(emit, id = (0, createIds_js_1.createArtifactId)()) {
|
|
56
|
+
this.emit = emit;
|
|
57
|
+
this.id = id;
|
|
58
|
+
}
|
|
59
|
+
start(title) {
|
|
60
|
+
if (this.started)
|
|
61
|
+
return;
|
|
62
|
+
this.started = true;
|
|
63
|
+
this.emit(events_js_1.event.artifactStart(this.id, title, "html"));
|
|
64
|
+
}
|
|
65
|
+
delta(html) {
|
|
66
|
+
if (!html || this.finished)
|
|
67
|
+
return;
|
|
68
|
+
this.emit(events_js_1.event.artifactDelta(this.id, html));
|
|
69
|
+
}
|
|
70
|
+
snapshot(html) {
|
|
71
|
+
if (this.finished)
|
|
72
|
+
return;
|
|
73
|
+
this.emit(events_js_1.event.artifactSnapshot(this.id, html));
|
|
74
|
+
}
|
|
75
|
+
/** Idempotent — emits `artifact_done` at most once. */
|
|
76
|
+
done(html) {
|
|
77
|
+
if (this.finished)
|
|
78
|
+
return;
|
|
79
|
+
if (!this.started)
|
|
80
|
+
this.start("Untitled artifact");
|
|
81
|
+
this.finished = true;
|
|
82
|
+
this.emit(events_js_1.event.artifactDone(this.id, html));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.ArtifactLifecycle = ArtifactLifecycle;
|
|
86
|
+
//# sourceMappingURL=lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/core/lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StreamingEnvelopeParser = exports.parseArtifactEnvelope = void 0;
|
|
4
|
+
// Re-exported from the artifacts module so it's reachable from the core API too.
|
|
5
|
+
var artifactEnvelope_js_1 = require("../artifacts/artifactEnvelope.js");
|
|
6
|
+
Object.defineProperty(exports, "parseArtifactEnvelope", { enumerable: true, get: function () { return artifactEnvelope_js_1.parseArtifactEnvelope; } });
|
|
7
|
+
Object.defineProperty(exports, "StreamingEnvelopeParser", { enumerable: true, get: function () { return artifactEnvelope_js_1.StreamingEnvelopeParser; } });
|
|
8
|
+
//# sourceMappingURL=parseArtifactEnvelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseArtifactEnvelope.js","sourceRoot":"","sources":["../../src/core/parseArtifactEnvelope.ts"],"names":[],"mappings":";;;AAAA,iFAAiF;AACjF,wEAI0C;AAHxC,4HAAA,qBAAqB,OAAA;AACrB,8HAAA,uBAAuB,OAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArtifactParseError = void 0;
|
|
4
|
+
/** Raised when the model envelope cannot be parsed. Always recoverable. */
|
|
5
|
+
class ArtifactParseError extends Error {
|
|
6
|
+
code = "ARTIFACT_PARSE_ERROR";
|
|
7
|
+
recoverable = true;
|
|
8
|
+
constructor(message, options) {
|
|
9
|
+
super(message, options);
|
|
10
|
+
this.name = "ArtifactParseError";
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.ArtifactParseError = ArtifactParseError;
|
|
14
|
+
//# sourceMappingURL=ArtifactParseError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArtifactParseError.js","sourceRoot":"","sources":["../../src/errors/ArtifactParseError.ts"],"names":[],"mappings":";;;AAEA,2EAA2E;AAC3E,MAAa,kBAAmB,SAAQ,KAAK;IAClC,IAAI,GAAsB,sBAAsB,CAAC;IACjD,WAAW,GAAG,IAAI,CAAC;IAE5B,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AARD,gDAQC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClassificationError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Raised when classification fails. Always recoverable — the server falls back
|
|
6
|
+
* to heuristic rules and ultimately to markdown.
|
|
7
|
+
*/
|
|
8
|
+
class ClassificationError extends Error {
|
|
9
|
+
code = "CLASSIFICATION_ERROR";
|
|
10
|
+
recoverable = true;
|
|
11
|
+
constructor(message, options) {
|
|
12
|
+
super(message, options);
|
|
13
|
+
this.name = "ClassificationError";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.ClassificationError = ClassificationError;
|
|
17
|
+
//# sourceMappingURL=ClassificationError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClassificationError.js","sourceRoot":"","sources":["../../src/errors/ClassificationError.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,KAAK;IACnC,IAAI,GAAsB,sBAAsB,CAAC;IACjD,WAAW,GAAG,IAAI,CAAC;IAE5B,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AARD,kDAQC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StreamError = void 0;
|
|
4
|
+
/** Raised on transport/streaming failures. May or may not be recoverable. */
|
|
5
|
+
class StreamError extends Error {
|
|
6
|
+
code = "STREAM_ERROR";
|
|
7
|
+
recoverable;
|
|
8
|
+
constructor(message, options) {
|
|
9
|
+
super(message, options);
|
|
10
|
+
this.name = "StreamError";
|
|
11
|
+
this.recoverable = options?.recoverable ?? false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.StreamError = StreamError;
|
|
15
|
+
//# sourceMappingURL=StreamError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamError.js","sourceRoot":"","sources":["../../src/errors/StreamError.ts"],"names":[],"mappings":";;;AAEA,6EAA6E;AAC7E,MAAa,WAAY,SAAQ,KAAK;IAC3B,IAAI,GAAsB,cAAc,CAAC;IACzC,WAAW,CAAU;IAE9B,YACE,OAAe,EACf,OAAoD;QAEpD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,KAAK,CAAC;IACnD,CAAC;CACF;AAZD,kCAYC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ArtifactParseError.js"), exports);
|
|
18
|
+
__exportStar(require("./StreamError.js"), exports);
|
|
19
|
+
__exportStar(require("./ClassificationError.js"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,mDAAiC;AACjC,2DAAyC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.HtmlArtifactCard = HtmlArtifactCard;
|
|
38
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
|
+
const React = __importStar(require("react"));
|
|
40
|
+
const HtmlArtifactToolbar_js_1 = require("./HtmlArtifactToolbar.js");
|
|
41
|
+
const HtmlArtifactPreview_js_1 = require("./HtmlArtifactPreview.js");
|
|
42
|
+
const HtmlArtifactCodeView_js_1 = require("./HtmlArtifactCodeView.js");
|
|
43
|
+
const HtmlArtifactModal_js_1 = require("./HtmlArtifactModal.js");
|
|
44
|
+
const iframeSrcDoc_js_1 = require("./iframeSrcDoc.js");
|
|
45
|
+
const styles_js_1 = require("./styles.js");
|
|
46
|
+
const RADIUS = { md: 14, xl: 18, "2xl": 22, "3xl": 28 };
|
|
47
|
+
/**
|
|
48
|
+
* The seamless artifact card: a refined header (window dots, segmented
|
|
49
|
+
* preview/code tabs, pill copy/download/fullscreen actions), a sandboxed iframe
|
|
50
|
+
* preview that streams in layer-by-layer, and a premium ring + layered-shadow
|
|
51
|
+
* frame. No flat white box, no host-CSS dependency.
|
|
52
|
+
*/
|
|
53
|
+
function HtmlArtifactCard(props) {
|
|
54
|
+
(0, styles_js_1.useArtifactStyles)();
|
|
55
|
+
const { artifact, variant = "elevated", radius = "2xl", showToolbar = true, defaultTab = "preview", allowFullscreen = true, allowCopy = true, allowDownload = true, allowPdf = true, presentation = "card", theme, previewOptions, className, } = props;
|
|
56
|
+
const [tab, setTab] = React.useState(defaultTab);
|
|
57
|
+
const [copied, setCopied] = React.useState(false);
|
|
58
|
+
const [fullscreen, setFullscreen] = React.useState(false);
|
|
59
|
+
const streaming = artifact.status === "streaming";
|
|
60
|
+
const errored = artifact.status === "error";
|
|
61
|
+
// While streaming, feed the raw growing HTML to the preview's progressive
|
|
62
|
+
// balancer (it repairs each partial frame into a valid, renderable document).
|
|
63
|
+
// The accumulated raw stream beats the server's coarser snapshots here; we
|
|
64
|
+
// fall back to a snapshot only if no raw deltas have arrived (buffered model).
|
|
65
|
+
const previewHtml = streaming
|
|
66
|
+
? artifact.html || artifact.snapshot
|
|
67
|
+
: artifact.html || artifact.snapshot;
|
|
68
|
+
const sourceHtml = artifact.html || artifact.snapshot;
|
|
69
|
+
const onCopy = React.useCallback(() => {
|
|
70
|
+
if (typeof navigator === "undefined" || !navigator.clipboard)
|
|
71
|
+
return;
|
|
72
|
+
navigator.clipboard.writeText(sourceHtml).then(() => {
|
|
73
|
+
setCopied(true);
|
|
74
|
+
setTimeout(() => setCopied(false), 1600);
|
|
75
|
+
}, () => { });
|
|
76
|
+
}, [sourceHtml]);
|
|
77
|
+
const onDownload = React.useCallback(() => {
|
|
78
|
+
if (typeof document === "undefined")
|
|
79
|
+
return;
|
|
80
|
+
const blob = new Blob([sourceHtml], { type: "text/html;charset=utf-8" });
|
|
81
|
+
const url = URL.createObjectURL(blob);
|
|
82
|
+
const a = document.createElement("a");
|
|
83
|
+
const safeName = artifact.title.replace(/[^a-z0-9-_]+/gi, "-").toLowerCase() || "artifact";
|
|
84
|
+
a.href = url;
|
|
85
|
+
a.download = `${safeName}.html`;
|
|
86
|
+
document.body.appendChild(a);
|
|
87
|
+
a.click();
|
|
88
|
+
a.remove();
|
|
89
|
+
URL.revokeObjectURL(url);
|
|
90
|
+
}, [sourceHtml, artifact.title]);
|
|
91
|
+
// Export to PDF via the browser's native print pipeline ("Save as PDF").
|
|
92
|
+
// Renders the sanitized artifact into a hidden, same-origin iframe and prints
|
|
93
|
+
// just that frame — no extra dependencies, no scripts in the printed output.
|
|
94
|
+
const onDownloadPdf = React.useCallback(() => {
|
|
95
|
+
if (typeof document === "undefined" || !sourceHtml)
|
|
96
|
+
return;
|
|
97
|
+
const printable = (0, iframeSrcDoc_js_1.buildSrcDoc)(sourceHtml, {
|
|
98
|
+
sanitize: true,
|
|
99
|
+
seamless: false,
|
|
100
|
+
sanitizeOptions: previewOptions,
|
|
101
|
+
});
|
|
102
|
+
const frame = document.createElement("iframe");
|
|
103
|
+
Object.assign(frame.style, {
|
|
104
|
+
position: "fixed",
|
|
105
|
+
right: "0",
|
|
106
|
+
bottom: "0",
|
|
107
|
+
width: "0",
|
|
108
|
+
height: "0",
|
|
109
|
+
border: "0",
|
|
110
|
+
opacity: "0",
|
|
111
|
+
});
|
|
112
|
+
frame.setAttribute("aria-hidden", "true");
|
|
113
|
+
frame.title = `${artifact.title} (PDF)`;
|
|
114
|
+
frame.srcdoc = printable;
|
|
115
|
+
const remove = () => {
|
|
116
|
+
if (document.body.contains(frame))
|
|
117
|
+
frame.remove();
|
|
118
|
+
};
|
|
119
|
+
frame.onload = () => {
|
|
120
|
+
const win = frame.contentWindow;
|
|
121
|
+
if (!win)
|
|
122
|
+
return remove();
|
|
123
|
+
win.addEventListener?.("afterprint", () => setTimeout(remove, 300));
|
|
124
|
+
try {
|
|
125
|
+
win.focus();
|
|
126
|
+
win.print();
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
remove();
|
|
130
|
+
}
|
|
131
|
+
// Safety net if afterprint never fires (some browsers).
|
|
132
|
+
setTimeout(remove, 60_000);
|
|
133
|
+
};
|
|
134
|
+
document.body.appendChild(frame);
|
|
135
|
+
}, [sourceHtml, artifact.title, previewOptions]);
|
|
136
|
+
// Seamless ("camouflage") presentation: a transparent, chromeless iframe that
|
|
137
|
+
// sits inline like native chat content — no card frame, no window, no border.
|
|
138
|
+
// A faint action row appears only on hover so the clean UI stays clean.
|
|
139
|
+
if (presentation === "seamless") {
|
|
140
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: `aha-scope${className ? ` ${className}` : ""}`, children: [(0, jsx_runtime_1.jsxs)("div", { className: "aha-seamless", children: [(0, jsx_runtime_1.jsx)(HtmlArtifactPreview_js_1.HtmlArtifactPreview, { html: previewHtml, streaming: streaming, errored: errored, title: artifact.title, theme: theme, bare: true, options: { minHeight: 0, ...previewOptions } }), showToolbar && !streaming && ((0, jsx_runtime_1.jsxs)("div", { className: "aha-seamless-actions", children: [allowCopy && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: "aha-iconbtn", onClick: onCopy, title: "Copy HTML", "aria-label": "Copy HTML", children: copied ? CHECK_ICON : COPY_ICON })), allowPdf && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: "aha-iconbtn", onClick: onDownloadPdf, title: "Download PDF", "aria-label": "Download PDF", children: PDF_ICON })), allowFullscreen && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: "aha-iconbtn", onClick: () => setFullscreen(true), title: "Fullscreen", "aria-label": "Fullscreen", children: EXPAND_ICON }))] }))] }), allowFullscreen && ((0, jsx_runtime_1.jsx)(HtmlArtifactModal_js_1.HtmlArtifactModal, { open: fullscreen, onClose: () => setFullscreen(false), title: artifact.title, children: (0, jsx_runtime_1.jsx)(HtmlArtifactPreview_js_1.HtmlArtifactPreview, { html: previewHtml, streaming: streaming, errored: errored, title: artifact.title, theme: theme, options: { ...previewOptions, autoResize: false, minHeight: 640, maxHeight: 100000 } }) }))] }));
|
|
141
|
+
}
|
|
142
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: `aha-scope${className ? ` ${className}` : ""}`, children: [(0, jsx_runtime_1.jsxs)("div", { className: "aha-card", "data-variant": variant, style: { ["--aha-radius"]: `${RADIUS[radius]}px` }, children: [showToolbar && ((0, jsx_runtime_1.jsx)(HtmlArtifactToolbar_js_1.HtmlArtifactToolbar, { title: artifact.title, tab: tab, onTabChange: setTab, allowCopy: allowCopy, allowDownload: allowDownload, allowPdf: allowPdf, allowFullscreen: allowFullscreen, copied: copied, streaming: streaming, onCopy: onCopy, onDownload: onDownload, onDownloadPdf: onDownloadPdf, onFullscreen: () => setFullscreen(true) })), tab === "preview" ? ((0, jsx_runtime_1.jsx)(HtmlArtifactPreview_js_1.HtmlArtifactPreview, { html: previewHtml, streaming: streaming, errored: errored, title: artifact.title, theme: theme, options: previewOptions })) : ((0, jsx_runtime_1.jsx)(HtmlArtifactCodeView_js_1.HtmlArtifactCodeView, { html: sourceHtml, maxHeight: previewOptions?.maxHeight ?? 900 }))] }), allowFullscreen && ((0, jsx_runtime_1.jsx)(HtmlArtifactModal_js_1.HtmlArtifactModal, { open: fullscreen, onClose: () => setFullscreen(false), title: artifact.title, children: (0, jsx_runtime_1.jsx)(HtmlArtifactPreview_js_1.HtmlArtifactPreview, { html: previewHtml, streaming: streaming, errored: errored, title: artifact.title, theme: theme, options: {
|
|
143
|
+
...previewOptions,
|
|
144
|
+
autoResize: false,
|
|
145
|
+
minHeight: 640,
|
|
146
|
+
maxHeight: 100000,
|
|
147
|
+
} }) }))] }));
|
|
148
|
+
}
|
|
149
|
+
const COPY_ICON = ((0, jsx_runtime_1.jsxs)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [(0, jsx_runtime_1.jsx)("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2.5" }), (0, jsx_runtime_1.jsx)("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })] }));
|
|
150
|
+
const CHECK_ICON = ((0, jsx_runtime_1.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: (0, jsx_runtime_1.jsx)("polyline", { points: "20 6 9 17 4 12" }) }));
|
|
151
|
+
const EXPAND_ICON = ((0, jsx_runtime_1.jsxs)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [(0, jsx_runtime_1.jsx)("polyline", { points: "15 3 21 3 21 9" }), (0, jsx_runtime_1.jsx)("polyline", { points: "9 21 3 21 3 15" }), (0, jsx_runtime_1.jsx)("line", { x1: "21", y1: "3", x2: "14", y2: "10" }), (0, jsx_runtime_1.jsx)("line", { x1: "3", y1: "21", x2: "10", y2: "14" })] }));
|
|
152
|
+
const PDF_ICON = ((0, jsx_runtime_1.jsxs)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [(0, jsx_runtime_1.jsx)("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), (0, jsx_runtime_1.jsx)("polyline", { points: "14 2 14 8 20 8" }), (0, jsx_runtime_1.jsx)("path", { d: "M9 15h1.2a1.3 1.3 0 0 0 0-2.6H9V18" }), (0, jsx_runtime_1.jsx)("path", { d: "M15.5 12.4H14V18" }), (0, jsx_runtime_1.jsx)("path", { d: "M14 15.4h1.3" })] }));
|
|
153
|
+
//# sourceMappingURL=HtmlArtifactCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HtmlArtifactCard.js","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.HtmlArtifactCodeView = HtmlArtifactCodeView;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const pre = {
|
|
7
|
+
margin: 0,
|
|
8
|
+
padding: "18px 20px",
|
|
9
|
+
overflow: "auto",
|
|
10
|
+
fontSize: 12.5,
|
|
11
|
+
lineHeight: 1.65,
|
|
12
|
+
fontFamily: 'ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace',
|
|
13
|
+
color: "#cdd6e4",
|
|
14
|
+
background: "radial-gradient(1200px 400px at 0% 0%, #11151c 0%, #0b0d12 60%, #090a0e 100%)",
|
|
15
|
+
whiteSpace: "pre",
|
|
16
|
+
tabSize: 2,
|
|
17
|
+
boxShadow: "inset 0 1px 0 rgba(255,255,255,0.04)",
|
|
18
|
+
};
|
|
19
|
+
/** Read-only source view of the artifact HTML. */
|
|
20
|
+
function HtmlArtifactCodeView({ html, maxHeight = 900, }) {
|
|
21
|
+
return ((0, jsx_runtime_1.jsx)("pre", { style: { ...pre, maxHeight }, children: (0, jsx_runtime_1.jsx)("code", { children: html }) }));
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=HtmlArtifactCodeView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HtmlArtifactCodeView.js","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactCodeView.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AA0Bb,oDASC;;AA1BD,MAAM,GAAG,GAAwB;IAC/B,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,UAAU,EACR,wFAAwF;IAC1F,KAAK,EAAE,SAAS;IAChB,UAAU,EACR,+EAA+E;IACjF,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,sCAAsC;CAClD,CAAC;AAEF,kDAAkD;AAClD,SAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,SAAS,GAAG,GAAG,GACW;IAC1B,OAAO,CACL,gCAAK,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,YAC/B,2CAAO,IAAI,GAAQ,GACf,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.HtmlArtifactModal = HtmlArtifactModal;
|
|
38
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
|
+
const React = __importStar(require("react"));
|
|
40
|
+
const styles_js_1 = require("./styles.js");
|
|
41
|
+
const DEVICES = [
|
|
42
|
+
{
|
|
43
|
+
id: "mobile",
|
|
44
|
+
label: "Mobile",
|
|
45
|
+
width: 390,
|
|
46
|
+
icon: ((0, jsx_runtime_1.jsxs)("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [(0, jsx_runtime_1.jsx)("rect", { x: "7", y: "3", width: "10", height: "18", rx: "2" }), (0, jsx_runtime_1.jsx)("line", { x1: "11", y1: "18", x2: "13", y2: "18" })] })),
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: "tablet",
|
|
50
|
+
label: "Tablet",
|
|
51
|
+
width: 834,
|
|
52
|
+
icon: ((0, jsx_runtime_1.jsxs)("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [(0, jsx_runtime_1.jsx)("rect", { x: "4", y: "3", width: "16", height: "18", rx: "2" }), (0, jsx_runtime_1.jsx)("line", { x1: "11", y1: "18", x2: "13", y2: "18" })] })),
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: "desktop",
|
|
56
|
+
label: "Desktop",
|
|
57
|
+
width: null,
|
|
58
|
+
icon: ((0, jsx_runtime_1.jsxs)("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [(0, jsx_runtime_1.jsx)("rect", { x: "2", y: "4", width: "20", height: "13", rx: "2" }), (0, jsx_runtime_1.jsx)("line", { x1: "8", y1: "21", x2: "16", y2: "21" }), (0, jsx_runtime_1.jsx)("line", { x1: "12", y1: "17", x2: "12", y2: "21" })] })),
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
/**
|
|
62
|
+
* Premium fullscreen viewer with a responsive testbench: switch the artifact
|
|
63
|
+
* between phone / tablet / desktop widths (its own media queries then react —
|
|
64
|
+
* navs collapse to burgers, grids reflow), and an "invert" view that flips
|
|
65
|
+
* light↔dark (hue-preserving) so a transparent, light-on-dark camouflage
|
|
66
|
+
* artifact is crystal-clear on a light surface too.
|
|
67
|
+
*/
|
|
68
|
+
function HtmlArtifactModal({ open, onClose, title, children }) {
|
|
69
|
+
(0, styles_js_1.useArtifactStyles)();
|
|
70
|
+
const [device, setDevice] = React.useState("desktop");
|
|
71
|
+
const [inverted, setInverted] = React.useState(false);
|
|
72
|
+
React.useEffect(() => {
|
|
73
|
+
if (!open)
|
|
74
|
+
return;
|
|
75
|
+
const onKey = (e) => {
|
|
76
|
+
if (e.key === "Escape")
|
|
77
|
+
onClose();
|
|
78
|
+
};
|
|
79
|
+
document.addEventListener("keydown", onKey);
|
|
80
|
+
const prevOverflow = document.body.style.overflow;
|
|
81
|
+
document.body.style.overflow = "hidden";
|
|
82
|
+
return () => {
|
|
83
|
+
document.removeEventListener("keydown", onKey);
|
|
84
|
+
document.body.style.overflow = prevOverflow;
|
|
85
|
+
};
|
|
86
|
+
}, [open, onClose]);
|
|
87
|
+
if (!open)
|
|
88
|
+
return null;
|
|
89
|
+
const width = DEVICES.find((d) => d.id === device)?.width ?? null;
|
|
90
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "aha-scope", role: "dialog", "aria-modal": "true", "aria-label": title ?? "Artifact", onClick: onClose, style: {
|
|
91
|
+
position: "fixed",
|
|
92
|
+
inset: 0,
|
|
93
|
+
zIndex: 2147483000,
|
|
94
|
+
display: "flex",
|
|
95
|
+
flexDirection: "column",
|
|
96
|
+
padding: "clamp(8px, 3vw, 44px)",
|
|
97
|
+
background: "radial-gradient(120% 120% at 50% 0%, rgba(10,10,14,.55), rgba(10,10,14,.78))",
|
|
98
|
+
backdropFilter: "blur(8px)",
|
|
99
|
+
animation: "aha-fade .2s ease both",
|
|
100
|
+
}, children: (0, jsx_runtime_1.jsxs)("div", { onClick: (e) => e.stopPropagation(), className: "aha-card", style: {
|
|
101
|
+
["--aha-radius"]: "18px",
|
|
102
|
+
display: "flex",
|
|
103
|
+
flexDirection: "column",
|
|
104
|
+
flex: 1,
|
|
105
|
+
minHeight: 0,
|
|
106
|
+
margin: "0 auto",
|
|
107
|
+
width: "100%",
|
|
108
|
+
maxWidth: 1280,
|
|
109
|
+
}, children: [(0, jsx_runtime_1.jsxs)("div", { className: "aha-toolbar", children: [(0, jsx_runtime_1.jsxs)("span", { className: "aha-dots", "aria-hidden": true, children: [(0, jsx_runtime_1.jsx)("span", { className: "aha-dot", style: { background: "#ff5f57" } }), (0, jsx_runtime_1.jsx)("span", { className: "aha-dot", style: { background: "#febc2e" } }), (0, jsx_runtime_1.jsx)("span", { className: "aha-dot", style: { background: "#28c840" } })] }), (0, jsx_runtime_1.jsx)("strong", { className: "aha-title", children: title ?? "Artifact" }), (0, jsx_runtime_1.jsx)("div", { style: { flex: 1 } }), (0, jsx_runtime_1.jsx)("div", { className: "aha-seg", role: "tablist", "aria-label": "Preview width", children: DEVICES.map((d) => ((0, jsx_runtime_1.jsxs)("button", { type: "button", role: "tab", "aria-selected": device === d.id, "data-active": device === d.id, onClick: () => setDevice(d.id), title: d.label, style: { display: "inline-flex", alignItems: "center", gap: 6 }, children: [d.icon, (0, jsx_runtime_1.jsx)("span", { style: { fontSize: 12 }, children: d.label })] }, d.id))) }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "aha-iconbtn", onClick: () => setInverted((v) => !v), title: inverted ? "Normal colors" : "Invert (light view)", "aria-label": "Invert colors", "data-active": inverted, style: inverted ? { background: "var(--aha-hover)", color: "var(--aha-fg)" } : undefined, children: (0, jsx_runtime_1.jsxs)("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [(0, jsx_runtime_1.jsx)("circle", { cx: "12", cy: "12", r: "9" }), (0, jsx_runtime_1.jsx)("path", { d: "M12 3a9 9 0 0 0 0 18z", fill: "currentColor", stroke: "none" })] }) }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "aha-iconbtn", onClick: onClose, "aria-label": "Close", style: { fontSize: 18 }, children: "\u00D7" })] }), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
110
|
+
flex: 1,
|
|
111
|
+
minHeight: 0,
|
|
112
|
+
overflow: "auto",
|
|
113
|
+
display: "flex",
|
|
114
|
+
justifyContent: "center",
|
|
115
|
+
padding: width ? "clamp(12px,2vw,28px)" : 0,
|
|
116
|
+
background: inverted
|
|
117
|
+
? "#ffffff"
|
|
118
|
+
: "repeating-linear-gradient(45deg, rgba(255,255,255,0.015) 0 10px, transparent 10px 20px)",
|
|
119
|
+
transition: "background .25s ease",
|
|
120
|
+
}, children: (0, jsx_runtime_1.jsx)("div", { style: {
|
|
121
|
+
width: width ?? "100%",
|
|
122
|
+
maxWidth: "100%",
|
|
123
|
+
flex: width ? "0 0 auto" : "1 1 auto",
|
|
124
|
+
minHeight: 0,
|
|
125
|
+
alignSelf: "stretch",
|
|
126
|
+
borderRadius: width ? 16 : 0,
|
|
127
|
+
overflow: "hidden",
|
|
128
|
+
boxShadow: width ? "0 20px 60px -20px rgba(0,0,0,.6)" : "none",
|
|
129
|
+
// Hue-preserving light/dark flip — light-on-dark artifacts become
|
|
130
|
+
// dark-on-light without scrambling brand hues.
|
|
131
|
+
filter: inverted ? "invert(1) hue-rotate(180deg)" : "none",
|
|
132
|
+
transition: "width .3s cubic-bezier(.4,0,.2,1)",
|
|
133
|
+
}, children: children }) })] }) }));
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=HtmlArtifactModal.js.map
|